Wahdiat's blog

Just look! The day's almost as beautiful as you!

Month: November 2014

MANAJEMEN I/O (INPUT/OUTPUT)

Dalam sistem komputer manajemen I/O adalah bagian yang sangat diperlukan karena i/o adalah sarana user untuk bisa berkomunikasi dengan komputer. Seperti keyboard, mouse, monitor, speaker, disk drives, networking ports, dll.

Manajemen I/O harus memiliki subsistem yang dapat bersaing dengan dua kecenderungan. yaitu: gravitasi terhadap antarmuka standar untuk berbagai perangkat, sehingga lebih mudah untuk menambahkan perangkat baru yang dikembangkan untuk sistem yang ada, dan pengembangan jenis perangkat yang baru, dimana interface standar yang ada tidak selalu mudah untuk diterapkan. Device driver adalah modul yang dapat dipasang ke OS untuk menangani perangkat tertentu atau kategori perangkat sejenis.

 

I/O Hardware

  I/O secara kasar dapat dikategorikan sebagai penyimpanan, komunikasi, user-interface dan device yang lainnya. Device tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki device akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus , dan controller. Port adalah koneksi yang digunakan oleh device untuk berkomunikasi dengan mesin. Sedangkan Bus adalah koneksi yang menghubungkan beberapa device menggunakan kabel-kabel. Dan Controller adalah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan device.

13_01_TypicalBus.jpg

 

Application I/O Interface

Merupakan suatu mekanisme untuk mempermudah pengaksesan, sehingga sistem operasi melakukan standarisasi cara pengaksesan peralatan I/O.

Akses pengguna aplikasi untuk berbagai perangkat yang berbeda dilakukan melalui layering, dan melalui enkapsulasi semua kode perangkat yang spesifik ke driver perangkat, sementara lapisan aplikasi disajikan dengan interface umum untuk semua perangkat .

Beberapa hal yang berhubungan dengan Application I/O Interface:

  1. Block and Character Devices

  • Perangkat blok mengakses blok pada satu waktu, dan ditandai oleh “b” sebagai karakter pertama dalam long listings pada sistem UNIX. Operasi yang didukung termasuk read (), write (), dan seek ().

  • File peta memory  I / O dapat berlapis-lapis di atas driver block-device.

  • Perangkat karakter yang diakses satu byte pada suatu waktu, dan ditandai oleh “c” di UNIX long listings. Operasi yang didukung termasuk get () dan put (), dengan fungsi yang lebih canggih seperti membaca seluruh lini yang didukung oleh rutinitas higher-level library.

  1. Network Devices

Karena akses jaringan secara inheren berbeda dari akses disk lokal, kebanyakan sistem menyediakan antarmuka terpisah untuk perangkat jaringan. Salah satu yang banyak digunakan pada sistem operasi adalah interface socket. Socket bertindak seperti kabel atau pipa yang menghubungkan dua entitas jaringan. Data dapat dimasukkan ke dalam soket di salah satu ujung, dan dibacakan secara berurutan di ujung lain. Soket biasanya full-duplex, yang memungkinkan untuk transfer data.

  1. Clocks and Timers

Clock dan timer pada hardware komputer, memiliki tiga fungsi :

  • memberi informasi waktu saat ini

  • memberi informasi lamanya waktu sebuah proses

  • sebagai trigger untuk suatu operasi pada suatu waktu.

Fungsi ini sering digunakan oleh sistem operasi. Akan tetapi, sayangnya operasi waktu ini tidak di-standarisasi pada semua sistem. Programmable interrupt timer dapat digunakan untuk memicu operasi dan mengukur waktu yang berlalu. Hal ini dapat diatur untuk memicu interupsi pada rentang waktu tertentu di masa mendatang, atau untuk memicu interupsi berkala secara teratur. Sayangnya, ini terbatas dalam resolusi dengan frekuensi interupsi dari PIT, dan dapat dikenakan beberapa penyimpangan dari waktu ke waktu. Pendekatan alternatifnya adalah untuk menyediakan akses langsung ke frekuensi tinggi hardware counter, yang menyediakan resolusi dan akurasi yang lebih tinggi, tetapi yang tidak mendukung interupsi.

  1. Blocking and Non-blocking I/O

Dengan blocking I / O, proses akan dipindahkan ke antrian ketika menunggu permintaan I / O dibuat, dan pindah kembali ke antrian ready ketika permintaan selesai, sehingga memperbolehkan proses lain berjalan untuk sementara. Dengan non-blocking I / O, I / O mengirimkan permintaan untuk kembali dengan segera, tidak melihat apakah I / O operasi yang diminta telah berjalan atau tidak. Hal ini memungkinkan proses untuk memeriksa data yang tersedia tanpa mendapatkan gangguan sepenuhnya jika data tidak ada disana.

Kernel I/O subsystems

  1. I/O Scheduling

Dengan scheduling, kita dapatmeningkatkan kemampuan sistem secara menyeluruh, kita dapat membagi device dengan rata di antara proses-proses, dan dapat mengurangi waktu tunggu rata-rata untuk menyelesaikan I/O. Prioritas juga dapat berperan dalam  scheduling.

  1. Buffering

Buffer merupakan area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi. Buffering dilakukan untuk tiga buah alasan. Pertama adalah perbedaan kecepatan antara dua perangkat. Yang kedua adalah perbedaan ukuran transfer data. Dan yang terakhir untuk mendukung copy semantik.

  1. Caching

Caching melputi penjagaan salinan data di lokasi lebih cepat daripada akses dimana data tersebut biasanya disimpan. Buffering dan caching sangat mirip, kecuali buffer dapat memegang satu-satunya salinan item data yang diberikan, sedangkan cache hanya salinan duplikat beberapa data yang disimpan di tempat lain. Buffering dan caching berjalan hand-in-hand, dan seringkali ruang penyimpanan yang sama dapat digunakan untuk kedua tujuan.

  1. Spooling dan Device  Reservation

Spool adalah sebuah buffer yang menyimpan output untuk sebuah device, seperti printer, yang tidak dapat menerima interleaved data streams. Jika beberapa proses ingin mencetak pada saat yang sama, mereka masing-masing mengirimkan data cetak mereka ke file yang tersimpan di direktori spool. Ketika setiap file ditutup, maka aplikasi dapat melihat bahwa pekerjaan cetak sudah lengkap, dan scheduler cetak mengirimkan setiap file ke printer yang sesuai satu per satu. Dukungan diberikan untuk melihat antrian spool, menghapus pekerjaan dari antrian, bergerak dari satu pekerjaan antrian ke antrian yang lain, dan dalam beberapa kasus mengubah prioritas pekerjaan di antrian. Antrian Spool dapat bersifat umum atau khusus. OS juga dapat memberikan dukungan untuk proses untuk meminta / mendapatkan akses eksklusif untuk perangkat tertentu, dan / atau menunggu sampai perangkat menjadi tersedia.

  1. Error Handling

Permintaan I / O bisa gagal karena berbagai alasan, baik sementara karena buffer overflow atau permanen dikarenakan disk yang crash. Permintaan I / O biasanya mengembalikan kesalahan bit (atau lebih) yang menunjukkan masalah. Sistem UNIX juga mengatur variabel global errno untuk salah satu dari seratus atau lebih nilai yang didefinisikan dengan baik untuk menunjukkan kesalahan tertentu yang telah terjadi. Beberapa perangkat, seperti perangkat SCSI, mampu memberikan banyak informasi lebih rinci tentang kesalahan, dan bahkan menjaga error log on-board yang dapat diminta oleh host.

  1. I/O Protection

I / O sistem harus melindungi baik disengaja ataupun tidak disengaja. Aplikasi pengguna tidak diizinkan untuk menjalankan I / O dalam mode user. Semua I / O permintaan yang ditangani melalui panggilan sistem yang harus dilakukan dalam mode kernel. Daerah memori dipetakan dan I / O port harus dilindungi oleh sistem manajemen memori, tetapi untuk akses ke daerah-daerah tidak dapat sepenuhnya ditolak untuk program user. Sebaliknya sistem perlindungan memori membatasi akses sehingga hanya satu proses pada suatu waktu dapat mengakses bagian-bagian tertentu dari memori, seperti bagian dari  layar memori sesuai dengan jendela tertentu.

  1. Kernel Data Structure

Kernel mempertahankan sejumlah struktur data penting yang berkaitan dengan sistem I / O, seperti  open file table. Struktur ini adalah object-oriented, dan fleksibel untuk memungkinkan akses ke berbagai perangkat I / O melalui interface umum. Windows NT membawa objek-orientasi satu langkah lebih jauh, melaksanakan I / O sebagai pesan melalui sistem dari sumber melalui berbagai perantara ke perangkat.

 

I/O Requests to Hardware Operations

Pengguna meminta data menggunakan nama file, yang akhirnya harus dipetakan ke blok data tertentu dari perangkat tertentu yang dikelola oleh driver perangkat tertentu. DOS menggunakan pemisah khusus untuk menentukan perangkat tertentu. UNIX menggunakan mount table untuk memetakan prefiks nama file untuk dipasangkan ke perangkat yang lebih spesifik. Dimana beberapa entri dalam mount table sesuai prefiks yang berbeda dari nama file dipilih salah satu yang cocok dengan awalan terpanjang. UNIX menggunakan file perangkat khusus, biasanya terletak di /dev, untuk mewakili dan mengakses perangkat fisik secara langsung. Serangkaian tabel lookup dan maping membuat akses perangkat yang berbeda menjadi fleksibel, dan agak transparan kepada pengguna.

Manajemen I/O Pada Windows

Dalam windows sistem i/o menyediakan model driver berlapis yang dinamakan stack. Biasanya IRP akan berpindah dari satu driver ke driver lain dalam satu stack yang sama ke fasilitas komunikasi. Misalkan mouse ketika digunakan harus berkomunikasi dengan USB hub, kemudian USB hub harus berkomunikasi dengan USB Host Controller, selanjutnya USB Host Controller harus berkomunikasi melalui PCI bus ke seluruh hardware computer. Maka stack akan berisi mouse driver, USB hub, USB Host Controller, dan PCI bus. Pada windows semua kelas perangkat berbagi driver umum yang disebut “port driver”. Port driver mengimplementasikan operasi standard untuk suatu kelas dan “calls device-spesific routine” yang kemudian mengimplementasikan fungsi “device-spesific”.

i/o manager pada windows mempunyai 2 sub component yaitu: Plug and Play manager and power manager. PnP manager adalah teknologi PnP milik Microsoft yang berfungsi untuk mengenali dan mengadaptasi perubahan pada konfigurasi hardware. Agar Pnp bekerja maka perangkat dan drivernya harus memenuhi standar PnP. Pnp manager secara otomatis mengenali perangkat yang dipasang dan mendeteksi perubahan pada perangkat seiring sistem beroperasi. Pnp manager pun tetap mengawasi sumber daya yang digunakan oleh perangkat, dan juga potensi jika sumber daya tersebut digunakan serta menangani “loading” driver tersebut. Dilain sisi, power manager ikut berperan dalam mengurangi komsumsi tenaga pada perangkat. Sehingga suatu perangkat dapat diset dalam mode “low-power”(sleep mode) ketika tidak digunakan, dan dapat langsung dipakai ketika diperlukan.

Manajemen I/O Pada Linux

Dalam Linux system i/o kurang lebih mirip dengan yang terdapat pada Unix. User dapat membuka saluran akses ke perangkat sama seperti membuka file-perangkat lain yang tampak sebagai objek dalam file sistem. Linux membagi semua perangkat i/o menjadi 3 kelas: “block devices”, “character devices”, dan “network devices”.

“Block devices” yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri, sehingga memungkinkan membaca atau menulis blok-blok secara independen, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contoh : disk, tape, CD ROM, optical disk. Fungsi “block devices” sendiri didukung oleh 2 sistem component, block buffer cache dan request manager. Block buffer cache bertugas sebagai pool dari buffer i/o aktif dan cache dari “completed i/o”. “Request manager” adalah lapisan software yang mengelola konten read dan write buffer dari dan menuju block-device driver.

“Character devices” yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa membentuk suatu struktur blok. Contoh : terminal, line printer, pita kertas, kartu-kartu berlubang, mouse. Perangkat ini tidak memerlukan random access untuk sebuah block data. Akan tetapi, tiap perangkat telah memiliki berbagai fungsi yang telah terdaftar pada kernel yang diimplementasikan pada file operasi i/o.

Sedangkan “network devices” berbeda dengan block atau character devices, user harus berkomunikasi secara tidak langsung dengan cara harus membuka sambungan dengan subsistem jaringan kernel.

 

References:

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, “Operating System Concepts, Eighth Edition “, Chapter 13

  2. http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/13_IOSystems.html

Peranan Sistem Operasi pada Virtual Memory

  1. Fetch Policy

adalah yang menentukan apakah suatu page akan diambil kedalam main memory atau tidak. alternatif yang terkait dengan fetch policy yaitu demand paging dan prepaging.

  1. Demand Paging

Dengan demand paging, page akan diambil kedalam main memory ketika ada referensi yang dibuat pada suatu lokasi untuk page tersebut. jika disetujui oleh memory management policy yang lain, maka demand paging akan dilaksanakan.

  1. Prepaging

Dengan prepaging, page selain yang digunakan pada demand paging akan diambil kedalam main memory. Prepaging menggunakan karakteristik dari kebanyakan secondary memory device, seperti disk yang memiliki seek time dan rotational latency. Policy ini tidak efektif jika kebanyakan dari extra page page yang diambil tidak memiliki referensi apapun.

 

  1. Placement Policy

Adalah yang menentukan dimana bagian proses akan tersimpan pada memori asli. Pada sistem dengan segmentasi, placement policy menjadi pilihan yang terbaik. Sedangkan dalam sistem paging atau sistem segmentasi yang digabung paging, placement policy menjadi kurang baik karena perangkat keras address translasi dan perangkat keras pengaksesan main memori dapat berfungsi dengan efisiensi yang sama.

 

  1. Replacement Policy

Berdasarkan implementasi memori virtual yaitu konsep demand paging. Ini berarti sistem operasi, dan bukan programmer, mengontrol swapping halaman dalam dan luar dari memori utama karena mereka diwajibkan oleh proses yang aktif. Ketika halaman non-residen yang dibutuhkan oleh proses, sistem operasi harus memutuskan mana halaman yang akan diganti dengan halaman yang diminta. Bagian dari memori virtual yang membuat keputusan ini disebut Replacement Policy.

  • Optimal
    Halaman yang diganti adalah salah satu yang tidak akan digunakan untuk periode waktu yang lama. Algoritma ini membutuhkan pengetahuan masa depan tentang string yang tidak selalu tersedia. Dengan demikian, kebijakan ini digunakan untuk studi perbandingan.

  • Least Recently Used (LRU)
    Halaman yang diganti adalah salah satu yang belum dirujuk karena yang lainnya telah direferensikan.

  • First in first-out (FIFO)
    Halaman yang diganti adalah halaman “tertua” di memori, satu halaman yang dimuat sebelum yang lainnya dimuat.

  • Clock
    Dalam algoritma ini, Anda harus mempertahankan daftar link yang melingkar, dengan kepala pointer menunjuk ke halaman kandidat potensial berikutnya untuk penggusuran. Sebagai bagian dari algoritma ini, Anda juga jharus mempertahankan ‘Referensi Bit’ dengan setiap halaman virtual.

 

  1. Resident Set Management

  • Biasanya kebijakan alokasi memberikan sejumlah proses halaman pada memori utama untuk dieksekusi.

  • Jumlah halaman yang dialokasikan juga dikenal sebagai set penduduk (halaman).

  • Dua kebijakan untuk alokasi set penduduk: tetap dan variabel.

  • Ketika proses baru dimuat ke memori, mengalokasikan sejumlah page frame berdasarkan jenis aplikasi, atau kriteria lainnya. Prepaging atau permintaan paging digunakan untuk mengisi halaman.

  • Ketika kesalahan halaman terjadi, pilih halaman untuk menggantikannya.

 

  1. Cleaning Policy

Berkaitan dengan penentuan waktu saat page yang telah dimodifikasi harus ditulis ke memori sekunder. Alternatif dalam penerapannya meliputi Demand cleaning (page akan ditulis ke memori sekunder ketika page telah terpilih untuk digantikan) dan Precleaning (page ditulis dalam batches).

Sebuah cleaning policy adalah kebalikan dari fetch policy; itu berkaitan dengan penentuan bila halaman dimodifikasi harus ditulis ke memori sekunder. dua alternatif umum adalah membersihkan permintaan dan precleaning. With demand cleaning, sebuah halaman ditulis ke memori sekunder hanya ketika telah dipilih untuk penggantian. Sebuah precleaning policy menulis halaman modifikasi sebelum frame halaman mereka dibutuhkan sehingga bahwa halaman dapat ditulis dalam batch.

Ada bahaya dalam mengikuti kebijakan tersebut secara penuh. Dengan precleaning, sebuah halaman ini ditulis tetapi tetap dalam memori utama sampai algoritma penggantian menyatakan bahwa itu dihapus. Precleaning memungkinkan penulisan halaman dalam batch, tapi masuk akal untuk menulis ratusan atau ribuan halaman hanya untuk menemukan bahwa sebagian dari mereka telah dimodifikasi lagi sebelum mereka diganti. Kapasitas transfer memori sekunder terbatas dan tidak boleh disia-siakan dengan operasi pembersihan yang tidak perlu.

Di sisi lain, dengan membersihkan permintaan, penulisan halaman kotor digabungkan untuk, dan mendahului, membaca di sebuah halaman baru. Teknik ini dapat meminimalkan halaman menulis, tetapi itu berarti bahwa proses yang terdapat kesalahan halaman mungkin harus menunggu selama dua transfer halaman sebelum dapat diblokir. Hal ini dapat menurunkan penggunaan prosesor.

Pendekatan yang lebih baik menggabungkan halaman buffering. Hal ini memungkinkan dengan mengadopsi kebijakan berikut: Bersihkan hanya halaman yang diganti, tapi yang memisahkan operasi pembersihan dan penggantian. Dengan halaman buffering, halaman diganti dapat ditempatkan pada dua daftar: dimodifikasi dan dimodifikasi. Halaman-halaman pada daftar dimodifikasi bisa berkala ditulis dalam batch dan dipindah ke daftar modifikasi.

 

  1. Load Control

Load control berkaitan dengan penentuan jumlah proses yang akan menetap di memori utama, yang telah disebut sebagai tingkat multiprogramming. itu kebijakan pengendalian beban sangat penting dalam manajemen memori yang efektif. Jika terlalu sedikit proses yang resident pada satu waktu, maka akan ada banyak kesempatan ketika semua proses diblokir, dan banyak waktu yang akan dihabiskan dalam swapping. Di sisi lain, jika terlalu banyak proses yang resident, maka, rata-rata, ukuran resident set masing-masing proses akan memadai dan akan sering terjadi patahan. Hasilnya adalah akan buruk.

referensi :

 

http://cs.gmu.edu/cne/modules/vm/yellow/repol.html

http://www.cse.psu.edu/~anand/473/p3/

http://www.cse.buffalo.edu/~bina/cse421/spring00/LEC78MemMgt/tsld027.htm

Operating System 7th Edition William Stalling

 

Hardware Virtual Memory

  1. Prinsip Locality

Locality atau lokalitas mengacu pada penggunaan memori berdasarkan tempat atau posisi. Terdapat 2 jenis lokalitas yaitu :

a. Spatial locality

Mengacu pada kecenderungan eksekusi untuk melibatkan beberapa lokasi memori yang berkelompok. Hal ini memperlihatkan kecenderungan dari processor untuk mengakses instruksi secara berurutan. Spatial locality juga memperlihatkan kecenderungan program untuk mengakses data secara berurutan, seperti saat mengakses tabel data.

b. Temporal locality

Mengacu pada kecenderungan processor untuk mengakses lokasi memori yang baru saja dipakai. contohnya yaitu ketika pengulangan proses dieksekusi, processor mengeksekusi instruksi yang sama berulang-ulang.

 

  1. Paging
    Paging adalah sebuah sekema dimana sebuah proses (memori ataupun program) dipecah menjadi bagian – bagian kecil. Dengan menggunakan paging, dapat terjadi fragmentasi internal tetapi tidak terjadi fragmentasi eksternal.
    Sistem operasi menggunakan tabel page untuk mencatat lokasi tempat page di memori, juga mencatat daftar frame yang kosong. Alamat absolut dihitung berdasarkan nomor page dan offset.
    Pada Virtual Memory, proses dapat dieksekusi meski baru memiliki beberapa page saja yang sudah ditaruh di memori, bila page baru dimasukkan ke memori dapat menyebabkan terjadi perpindahan page dari memori ke harddisk.

  • Page Table Structure (PTS)

Prosedur pada PTS :

1.jpg

1. Register menyimpan alamat awal pada tabel page suatu proses

2. Sebuah program membutuhkan data dan mengirimkan sebuah alamat virtual

3. Nomor page pada alamat virtual digunakan sebagai indeks untuk menunjuk nomor frame  gj pada tabel page

4. Nomor frame digabungkan dengan offset pada alamat virtual menjadi alamat fisik

5. Alamat fisik digunakan untuk mengakses bagian program pada memori

 

Jumlah page yang ada biasanya lebih banyak dari pada jumlah frame, sehingga bit untuk page (n) lebih besar dari pada bit untuk frame (m). Karena tabel page dapat berukuran sangat besar, maka tabel page juga mengalami paging. sebagian besar tabel page disimpan di virtual memory dan sebagian kecil disimpan di memori.

  • Inverted Page Table (IPT)

Pada inverted Page Table, nomor page alamat virtual ditaruh di suatu tabel frame berdasarkan fungsi hash, yaitu fungsi yang akan memetakan suatu nilai ke lokasi tertentu di dalam sebuah tabel. Nilai hash menunjuk ke tabel IPT, yang dimana jumlah entri pada IPT adalah sama dengan frame di memori.
Struktur Tabel IPT :2.jpg

• Nomor page = nomor page alamat virtual

• Identitas proses

–ID proses pemilik nomor page tersebut ID proses pemilik nomor page tersebut

• Bit-bit kontrol

Terdiri dari bitbit yang digunakan sebagai tanda: –Terdiri dari bit-bit yang digunakan sebagai tanda:

valid, referenced, modified, protection, dan locking

• Chain pointer:

– Pointer yang menunjuk ke entri lain yang masih

kosong (saat insert data) kosong (saat insert data)

– Pointer yang menunjuk ke entri lain akibat terjadi

overflow (saat baca data) overflow (saat baca data)

 

  • Translation Lookaside Buffer (TLB)

TLB merupakan cache khusus berkecepatan tinggi untuk menyimpan entri tabel page yang sering digunakan, sehingga dapat menutupi kekurangan PTS dan IPT.

Prosedur TLB :

3.jpg

• Suatu program minta data/program dengan mengirimkan alamat virtual

• Prosesor mencari page# yang diminta pada TLB

• Jika page# yang diminta ada pada TLB, maka terjadi TLB hit. Frame# diambil dari TLB untuk membentuk alamat fisik

• Bila terjadi TLB miss, prosesor mencari page# yang diminta pada tabel page

• Jika page#yang diminta ada pada tabel page, maka frame# diambil dari tabel page untuk membentuk alamat fisik

• Page# yang baru saja diambil disimpan juga di TLB (diupdate)

• Jika page# tidak ada di tabel page (page fault atau tidak ada di memori), maka dilakukan pencarian data ke harddisk )

• Alamat fisik digunakan untuk mengambil data pada memori

 

  1. Ukuran Page

Ukuran pada page dapat berubah – ubah dikarenakan beberapa hal seperti ukuran memori yang digunakan cendrung semakin besar, ukuran program yang cendrung membesar, dan program yang kompleks.

 

Apa akibatnya jika ukuran page semakin kecil ?

(+) Fragmentasi internal semakin kecil

(-) Jumlah page yang diperlukan oleh suatu proses semakin banyak

(-) Ukuran tabel page semakin besar

(-) Ruang memori yang diperlukan untuk menyimpan tabel page semakin besar

(-) Dapat terjadi page fault dua kali

(-)Transfer data dari memori sekunder ke memori tidak efisien, jika ukuran blok data di harddisk jauh lebih besar daripada ukuran page

 

Jika ukuran page semakin besar maka kebalikan dari yang sudah disebutkan diatas.

 

  1. Segmentasi

 

Segmentasi merupakan skema manajemen memori yang mendukung cara pandang seorang programmer terhadap memori. Ruang alamat logika merupakan sekumpulan dari segmen-segmen. Masing-masing segment mempunyai panjang dan nama. Alamat diartikan sebagai nama segmen dan offset dalam suatu segmen. Jadi jika seorang pengguna ingin menunjuk sebuah alamat dapat dilakukan dengan menunjuk nama segmen dan offsetnya. Untuk lebih menyederhanakan implementasi, segmen-segmen diberi nomor yang digunakan sebagai pengganti nama segment.

 

Secara sederhana segmentasi bisa diartikan sebagai suatu ruang alamat atau segment yang berada di memori. Segment-segment itu dalam keadaan independent. Setiap segment berisi alamat 0 sampai maksimum secara linier. Panjang setiap segment berbeda-beda sampai panjang maksimun, perubahan panjang segment terjadi selama proses eksekusi.

 

Segment stack bertambah ketika terjadi operasi push dan turun saat operasi pop, dimana setiap segment merupakan ruang alamat terpisah segment-segment dapat tumbuh dan mengkerut secara bebas tanpa mempengaruhi yang lain.

 

Alamat terdiri dari dua bagian pada memori bersegment yaitu :

1. Nomor segment

2. Alamat pada segment ( offset ).

 

User’s View of a Program

Logical View of Segmentation

 

Segmentation Hardware

 

Example of Segmentation

Logical to Physical Address Translation in Pentium

Intel Pentium Segmentation

 

  1. Kombinasi Paging dan Segmentasi

 

Teknik kombinasi paging dan segmentasi adalah ruang alamat pemakai dibagi menjadi sejumlah segment sesuai dengan kehendak pemrogram. Segment tersebut dibagi menjadi sejumlah page berukuran tetap dan berukuran sama dengan page frame memori utama. Jika segment kurang dari ukuran page, maka segnent hanya memerlukan satu page.

 

Dari segi pandangan pemrogram, alamat maya masih berisi nomor segment dan offset di segment itu. Dari segi pandangan sistem, offset segment dipandang sebagai nomor page dan offset page untuk page di segment yang dispesifiksikan. Penggabungan dengan proses adalah tabel segment dan sejumlah tabel page, merupakan satu tabel persegment proses.

 

Saat proses running, register menyimpan alamat awal tabel segment untuk proses, pemroses menggunakan bagian nomor segment untuk mengindeks tabel segment proses guna menemukan tabel page untuk segment. Bagian angka page alamat maya digunakan untuk indeks tabel page dan mencari nomor page korespondensi. Angka tersebut kemudian dikombinasikan dengan bagian offset alamat maya untuk menghasilkan alamat nyata yang diinginkan.

 

Sistem paging dan segmentasi mempunyai keunggulan dan kelemahan masing-masing. Sistem paging transparan bagi pemrogram, mengeliminasi fragmentasi ekstenal, penggunaan memori utama yang efisien.. Karena potongan-potongan yang di pindahkan masuk dan keluar memori utama berukuran sama, maka dimungkinkan mengembangkan algoritma menajemen memori yang memanfaatkan kelakuan program.

 

Pada kombinasi paging dan segmentasi, ruang alamat pemakai dibagi menjadi sejumlah segmen sesuai kehendak pemrogram. Tiap segmen dibagi menjadi sejumlah page berukuran tetap, berukuran sama dengan page frame memori utama. Jika segmen kurang dari ukuran page, segmen hanya memerlukan satu page. Dari pandangan pemrogram, alamat maya masih berisi nomor segmen dan offset di segmen itu. Dari pandangan system, offset segmen dipandang sebagai nomor page dan offset page untuk page di segmen yang dispesifikasikan.

  1. Proteksi dan Sharing

 

Dengan dilakukannya pengelompokan antara segmen-segmen yang sama, maka

pemeliharaan dari segmen tersebut dapat menjadi lebih mudah, walau pun didalam segmen tersebut sebagian berisi instruksi dan sebagian lagi berisi data. Dalam arsitektur modern, instruksi-instruksi yang digunakan tidak dapat diubah tanpa campur tangan pengguna, oleh karena itu, segmen yang berisi instruksi dapat diberi label read only atau hanya dapat dijalankan saja. Perangkat keras yang bertugas untuk melakukan pemetaan ke memori fisik akan melakukan pemeriksaan terhadap bit proteksi yang terdapat pada segmen, sehingga pengaksesan memori secara ilegal dapat dihindari, seperti suatu usaha untuk menulis ke area yang berstatus tidak boleh dimodifikasi.

 

Keuntungan lain dari segmentasi adalah menyangkut masalah pembagian penggunaan kode atau data. Setiap proses mempunyai tabel segmennya sendiri, dimana ini akan digunakan oleh dispatcher untuk menentukan tabel segmen dari perangkat keras yang mana akan digunakan ketika proses yang bersangkutan di eksekusi oleh CPU. Segmen akan berbagi ketika anggota dari elemen tabel segmen yang berasal dari dua proses yang berbeda menunjuk ke lokasi fisik yang sama. Pembagian tersebut terjadi pada level segmen, maka, informasi apa pun dapat dibagi jika didefinisikan pada level segmen. Bahkan beberapa segmen pun dapat berbagi, sehingga sebuah program yang terdiri dari beberapa segmen pun dapat saling berbagi pakai.

 

Referensi:

 

Penjadwalan Proses

  1. Konsep Penjadwalan Proses

 

Permasalahan  yang  menyebabkan  dibutuhkannya  penjadwalan  adalah  bila terdapat berbagai macam tugas (job) atau proses yang harus dilakukan, sedangkan sumber  daya  (waktu,  bahan  baku,  tenaga  kerja,  mesin,  modal,  dan  sebagainya) yang  dibutuhkan  untuk  menyelesaikan  tugas-tugas  atau  proses  tersebut  terbatas sehingga  diperlukan  suatu  pengaturan  atas  pelaksanaan  tugas-tugas  atau  prosesproses  tersebut.  Conway (1967)   mendefinisikan  penjadwalan  sebagai  berikut:

”Scheduling is the task of assigning each operation  to a specific position or the time  scale  of  the  specific  machine”.  Sedangkan  Fogarty (1991)  mengatakan bahwa  penjadwalan  mencakup  dua hal,  yaitu  scheduling dan  sequencing yang masing-masing didefinisisikan sebagai berikut:

”Scheduling  is  the  assigning  of  starting  and  completion  times  orders  (job)  and frequently  includes  the  times  when  orders  are  to  arrive  and  leave  each department”.

Scheduling (penjadwalan)  merupakan  proses  penugasan  kapan  pekerjaan  harus dimulai dan diselesaikan, sedangkan  sequencing  (pengurutan) merupakan proses pengaturan  urutan  atas  pekerjaan-pekerjaan  yang  harus  diselesaikan  tersebut. Karena  eratnya  hubungan  diantara  kedua  istilah  ini, maka  biasanya  dalam penggunaan kata scheduling (penjadwalan), pengertian sequencingsudah tercakup didalamnya.

Pada sistem komputer terdapat beberapa bentuk dari penjadwalan, admission (pintu masuk ke system), memory, dan CPU scheduler coba lihat gambar scheduler dari batch system berikut:

Pada sistem multiprogramming, selalu akan terjadi beberapa proses berjalan dalam suatu waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya ada satu proses yang berjalan pada saat tertentu. Sistem multiprogramming diperlukan untuk memaksimalkan utilitas CPU. Pada saat proses dijalankan terjadi siklus eksekusi CPU dan menunggu I/O yang disebut dengan siklus CPU-I/O burst. Eksekusi proses dimulai dengan CPU burst dan dilanjutkan dengan I/O burst, diikuti CPU burst lain, kemudian I/O burst lain dan seterusnya seperti pada gambar berikut:

Pada saat suatu proses dieksekusi, terdapat banyak CPU burst yang pendek dan terdapat sedikit CPU burst yang panjang. Program yang I/O bound biasanya sangat pendek CPU burst nya, sedangkan program yang CPU bound kemungkinan CPU burst nya sangan lama. Hal ini dapat digambarkan dengan grafik yang eksponensial atau hiper eksponensial seperti pada gambar. Oleh karena itu sangat penting pemilihan algoritma penjadwalan CPU.

CPU Scheduler

Pada saat CPU menganggur, maka sistem operasiharus menyeleksi proses-proses yang ada di memori utama (ready queue) untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses tersebut. Seleksi semacam ini disebut dengan shortterm scheduler (CPU scheduler).

Keputusan untuk menjadwalkan CPU mengikuti empat keadaan di bawah ini :

1)  Apabila proses berpindah dari keadaan running ke waiting;

2)  Apabila proses berpindah darikeadaan running ke ready;

3)  Apabila proses berpindah dari keadaan waiting ke ready;

4)  Apabila proses berhenti.

Apabila model penjadwalan yang dipilih menggunakan keadaan 1 dan 4, maka penjadwakan semacam ini disebut non-peemptive. Sebaliknya, apabila yang digunakan adalah keadaan 2 dan 3, maka disebut dengan preemptive. Pada non-preemptive, jika suatu proses sedang menggunakan CPU, maka proses tersebut akan tetap membawa CPU sampai proses tersebut melepaskannya (berhenti atau dalam keadaan waiting). Preemptive scheduling memiliki kelemahan, yaitu biaya yang dibutuhkan sangat tinggi. Antara lain, harus selalu dilakukan perbaikan data. Hal ini terjadi jika suatu proses ditinggalkan dan akan segera dikerjakan proses yang lain.

Dispatcher

Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling. Fungsi-fungsi yang terkandung di dalamnya meliputi:

1.  Switching context;

2.  Switching ke user-mode;

3.  Melompat ke lokasi tertentu pada user program untuk memulai program. Waktu yang

diperlukan oleh dispatcher untuk menghentikan suatu proses dan  memulai untuk

menjalankan proses yang lainnya disebut dispatch latency.

  1. Perbedaan Penjadwalan Long Term, Medium Term, dan Short Term.

Short term scheduler : Mempunyai tugas untuk menjadwalkan alokasi pemroses di antara proses ready di memori utama. Penjadwalan dijalankan setiap terjadi di pengalihan proses untuk memilih proses berikut yang harus dijalankan.

– Di dalam short term ini digunakan untuk memilih diantara proses – proses yang siap dieksekusi & satu diantaranya dialokasikan ke CPU.

– Penjadwalan short term biasa digunakan untuk CPU, proses dieksekusi dan hanya beberapa milidetik saja sebelum menunggu I/O.

Medium term scheduler: Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder yang disebut swapping. Proses ini mempunyai kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready.

– Dalam penjadwalan medium term ini, beberapa OS seperti contoh time-sharing harus membutuhkan penjadwalan dengan level tambahan.

Long term scheduler: Penjadwalan ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif, program ini berprioritas rendah, digunakan sebagai pengisi selama periode aktivitas job-job interaktif rendah.

– Jika pada long term ini tiding sering mengeksekusi, dan digunakan jika proses meninggalkan suatu sistem.

– Digunakan untuk memilih suatu proses dari pool & menyimpan pada memori.

  1. Parameter Dalam Penjadwalan Proses

Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa parameter yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain:

  1. CPU utilization: Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.

  2. Throughput: throughput Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah proses user yang dapat dieksekusi dalam interval waktu tertentu. Sasaran penjadwalan adalah memaksimalkan jumlah proses yang dilayani per satu interval waktu. Lebih tinggi waktu throughput maka lebih banyak kerja yang dilakukan sistem. Kriteria-kriteria tersebut saling tergantung dan dapat saling bertentangan sehingga tidak dimungkinkan optimasi semua criteria secara simultan Contoh:

Untuk memberikan waktu tanggap kecil umumnya memerlukan penjadwalan yang sering beralih-alih di antara proses-proses yang ada. Cara ini meningkatkan overhead sistem sehingga menurunkan efisiensi. Kebijaksanaan perancangan penjadwalan melibatkan kompromi di antara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini tergantung sifat dan penggunaan sistem komputer.

  1. Turnaround time: Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O  sampai semua proses-proses tersebut diselesaikan. Waktu yang dimaksud adalah waktu yang dihabiskan proses berada di sistem, atau juga bisa diekspresikan sebagai penjumlahan waktu eksekusi (waktu pelayanan proses) dan waktu menunggu dari porses tersebutatau bisa dirumuskan seperti:

Turn arround time = waktu eksekusi + waktu tunggu. Sasaran dari penjadwalan adalah meminimalkan turn arround time.

  1. Waiting time: Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.

  2. Response time: Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut. Respon time berbeda untuk sistem interaktif dan sistem waktu nyata.

  • Respon time sistem interaktif: respon time dalam sistem interkatif didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukan oleh program atau transaksi sampai hasil pertama muncul di perangkat output seperti layar (terminal)

  • Respon time sistem waktu nyata: pada sistem waktu nyata (real time), respon didefinisikan sebagai waktu dari saat kemunculan suatu kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan terhadap kejadian dieksekusi.

  1. Fairness: adil adalah menyakinkan proses-proses diperlakukan sama yaitu mendapat jatah waktu layanan CPU yang sama dan tidakada proses yang tidak kebagian layanan CPU sehingga mengalai starvation. Starvation merupakan suatu kondisi bahwa proses tidak pernah berjalan tidak dijadwalkan untuk berjalan.

  1. Konsep Penjadwalan Berdasarkan Prioritas

Penjadwalan prioritas adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:

a. Batas waktu

b. Kebutuhan Memori

c. Akses file

d. Perbandingan antara I/O Burst dengan CPU Burst

e. Tingkat kepentingan proses

Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan kebanyakan waktu menunggu selesainya operasinya masukan/keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses Memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O itu menunggu selesainya operasi DMA. Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.

Penjadwalan  dengan  pendekatan  heuristic menggunakan  aturan  pengurutan  atau priority  dispatching,  pada  priority  dispatching ditentukan  aturan  prioritasnya untuk memilih suatu operasi diantara operasi-operasi yang mengalami gangguan. Penentuan prioritas bergantung pada tujuan  yang ingin dicapai. Beberapa aturan prioritas menutur Fogarty(1991), adalah:

1.  Random (R)

Pemilihan  operasi  secara  random  artinya  setiap  pekerjaan  yang  akan dikerjakan  diurutkan  secara  random (tiap  job mempunyai  kemungkinan yang sama untuk dipilih)

2.  Most Working Remaining (MWR)

Prioritas tertinggi diberikan pada operasi dengan sisa waktu proses terlama.

Aturan  prioritas  ini  cocok  digunakan  untuk  menghasilkan  jadwal  dengan

makespan terpendek.

3.  Least Working Remaining (LWR)

Prioritas  tertinggi  diberikan  pada  operasi  dengan  sisa  waktu  proses terpendek. Aturan ini biasanya meminimasi flow timerata-rata.

4.  Most Operation Remaining (MOR)

Prioritas tertinggi diberikan pada operasi dengan successor terbanyak.

5.  Fewest Operation (FO)

Prioritas tertinggi diberikan pada produk dengan sisa operasi paling sedikit. Aturan ini biasanya mengurangi WIP, waktu penyelesaian produk, dan rata-rata waktu keterlambatan.

6.  Shortest Processing Time (SPT)

Prioritas  tertinggi  diberikan  pada  operasi  dengan  waktu  proses  terpendek, aturan  ini  biasanya  meminimasi  WIP,  rata-rata  keterlambatan  (mean latenes) dan waktu penyelesaian rata-rata (mean flow time) produk.

7.  First Come First Serve (FCFS)

Prioritas tertinggi diberikan pada operasi yang masuk St (stasiun ke-t) lebih dahulu. Aturan  ini  cocok  untuk  tipe  organisasi  dimana  konsumen mementingkan waktu pelayanan.

8.  Earliest Due Date (EDD)

Prioritas  tertinggi  diberikan  pada  produk  dengan  due  date (batas  waktu penyelesaian) terpendek. Aturan ini berjalan dengan baik bila waktu proses job-job relatif sama.

9.  Critical Ratio (CR)

Urutkan job berdasarkan CR terkecil (mengurangi lateness)

10.  Slack Time (ST)

       Merupakan variasi dari EDD.

11.  Slack Per Remaining Operation (S/OPN)

   Merupakan variasi dari ST, urutkan job berdasarkan S/OPN terkecil (aturan ini mengurangi lateness).

12.  Least Setup (LSU)

Urutkan  job berdasarkan  waktu  setup  terkecil  (aturan  ini  mengurangi makespan).

Referensi

Anggota yang berkontribusi:

  1. Rhesa Fauzan H (1103120102)

  2. M. Taufik Wahdiat (1103120104)

  3. Rakhmad Indra Permadi (1103121281)

© 2017 Wahdiat's blog

Theme by Anders NorenUp ↑