6.4 MANAJEMEN DEVICE
Manajemen device memiliki fungsi-fungsi yang diimplementasikan pada lapisan kernel I/O. Apa saja dan bagaimana, selengkapnya akan dibahas pada keterangan berikut.
1. Scheduling
Salah satu fungsi manajemen device yang melakukan penjadwalan penggunaan suatu peranti I/O. Jika suatu proses akan menggunakan suatu peranti I/O maka proses tersebut akan melakukan system call kepada sistem operasi. System call yang berhubungan dengan layanan I/O selanjutnya akan membuat suatu VO request. Jika peranti VO yang hendak diakses sedang sibuk melayani I/O request proses lain maka I/O request tersebut akan dimasukkan ke dalam antrian peranti I/O bersangkutan. Kernel I/O bertugas untuk melakukan penjadwalan VO request jika peranti I/O sudah menyelesaikan VO request sebelumnya.
192
Sistem Operasi
2. Buffering Yaitu menampung sementara data operasi I/O, baik operasi baca ataupun tulis di memori utama. Pada mekanisme buffering, data yang hendak dibaca atau ditulis ke peranti I/O disalin terlebih ke memori utama sebelum dipindahkan ke tujuan akhirnya. Sebagai contoh adalah data keluaran dari program aplikasi yang hendak disimpan ke suatu berkas di disk ataupun data yang hendak disalin dari suatu floppy disk ke harddisk. Beberapa keuntungan dari mekanisme buffering adalah:
a. Mengatasi Perbedaan Kecepatan antar Peranti I/O Perbedaan kecepatan transfer antara suatu peranti I/O dengan pe ranti I/O lainnya menyulitkan komunikasi langsung atau sinkron antar peranti I/O. Mekanisme buffering mengatasi masalah per- bedaan kecepatan ini dengan menawarkan komunikasi data secara tidak langsung atau asinkron. Data yang dikirim dari peranti I/O asal akan disimpan di memori utama terlebih dahulu mengikuti kecepatan transfer dari peranti I/O asal. Pengiriman data dari memori utama akan dilakukan jika peranti I/O tujuan sudah siap dan dilakukan sesuai dengan kecepatan transfer peranti I/O tujuannya.
b. Mengatasi Perbedaan Bandwith Transfer antar Peranti I/O Selain mengatasi perbedaan kecepatan antar peranti I/O. buffering berguna pula untuk menangani perbedaan bandwith transfer antar peranti I/O.
Sebagai contoh adalah data keluaran program aplikasi yang hendak dikirim lewat kabel jaringan komputer. Kartu jaringan hanya dapat mengirimkan data dalam bentuk paket-paket berukuran kecil. Data keluaran dari program butuh dipecah- pecah dalam bentuk paket kecil dan di-buffer di memori sambil menunggu gilirannya untuk dikirimkan.
Contoh lain adalah penyimpanan data ke piringan disk magnetis yang mengharuskan data ditransfer per block data, seperti per 512 byte. Jika data yang hendak disimpan diperoleh dari keyboard. yang pemasukan datanya per karakter maka data-data yang
Manajemen Device
193
dimasukkan dari keyboard harus di-buffer dahulu sampai terpenuhi ukuran 1 blok, baru data dikirimkan untuk disimpan ke disk.
c. Mempertahankan Semantik Penyalinan Data Buffering menyederhanakan pula penanganan penyalinan data antar peranti I/O. Tanpa buffering maka kernel I/O harus mengetahui penyalinan data dari suatu jenis peranti I/O ke semua jenis peranti I/O lainnya. Jika ada N jenis peranti I/O yang berbeda maka kernel I/O harus mengetahui N(N-1)/2 model penyalinan data yang berbeda antar peranti 1/0. Dengan menggunakan memori utama sebagai media perantara penyalinan maka semantik yang perlu diikuti adalah penyalinan data antara peranti I/O dan memori. Hal ini dapat pula mengurangi kompleksitas kernel I/O karena hanya memerlukan N model penyalinan yang berbeda.
3. Caching Secara umum, pengaksesan peranti I/O lebih lambat dibanding pengaksesan memori utama. Pengaksesan yang terlalu sering terhadap peranti I/O akan memperlambat eksekusi proses secara keseluruhan. Kernel I/O menangani mekanisme caching untuk mengatasi hal ini. Konsep caching adalah memakai memori kecepatan tinggi untuk menampung salinan data dari suatu peranti I/O. Caching merupakan salah satu kunci dalam meningkatkan kecepatan pengaksesan peranti I/O.
Pada mekanisme caching, data yang akan diakses dari peranti I/O akan disalin ke memori utama dan disebut dengan cache memory, bahkan sebelum data tersebut akan dipergunakan oleh proses. Pada saat operasi baca terhadap peranti I/O maka kernel I/O akan memeriksa apakah data yang hendak dibaca sudah ada di cache memory. Jika sudah ada maka data akan diambil dari memori, cache memory, tanpa harus membaca dari peranti I/O lagi. Pengaksesan peranti I/O hanya terjadi jika data yang hendak diakses ternyata belum ada di cache memory. Jika hal ini terjadi maka kernel I/O akan memperbarui isi cache memory secara blok supaya probabilitas hit
194
Sistem Operasi
tetap tinggi. Hit adalah kondisi di mana data yang hendak diakses ternyata ada di cache memory.
4. Spooling
Kebanyakan pemakaian peranti I/O pada komputer bersifat ekskusif, yaitu peranti I/O hanya dapat melayani satu tugas pada suatu waktu. Jika suatu peranti I/O sedang melayani suatu tugas maka proses lain tidak dapat memberikan tugas baru pada peranti I/O yang sama. Pada sistem operasi yang multiprogramming, ini berarti jika suatu peranti I/O lagi melayani suatu tugas maka semua proses lain yang juga meminta layanan dari peranti I/O yang sama akan beralih status menjadi blocked. Untuk mengatasi hal ini, diperkenalkan mekanis- me spooling yang ditangani oleh kernel I/O.
Pada mekanisme spooling, setiap proses akan tetap mengirimkan data ke peranti I/O bersangkutan sehingga prosesnya sendiri tidak blocked. Tapi karena peranti I/O-nya sedang sibuk maka kernel I/O akan menampung dahulu data yang hendak dikirimkan ke peranti I/O dan menempatkannya dalam suatu antrian. Jika peranti I/O-nya sudah tidak sibuk maka data yang berada pada antrian akan dikirimkan ke peranti I/O tersebut.
Spooling dilakukan untuk alat seperti printer, plotter, dan alat pen- cetak lainnya. Perhatikan, sekalian program aplikasi yang mengirim- kan data keluaran telah selesai, data yang telah di spooling oleh kernel I/O tidak akan hilang.
5. Device Reservation Karena kebanyakan pemakaian peranti I/O bersifat eksklusif maka kernel I/O juga harus memastikan selama pengaksesan peranti I/O oleh suatu proses, tidak ada intervensi dari proses lainnya. Kernel I/O bertanggung jawab memelihara dan mengaudit status serta pemakaian suatu peranti I/O sehingga tidak terjadi pemakaian yang tumpang tindih. Selain itu, kernel I/O memastikan pemakaian dan reservasi suatu peranti I/O tidak membuat kondisi deadlock terhadap sistem komputer.
Manajemen Device
195
6. Error Handling
Pada operasi I/O, data dapat rusak di peranti I/O ataupun selama proses pengiriman. Kernel bertugas pula menangani kerusakan-ke- rusakan data yang masih dapat diperbaiki. Selain itu, pengiriman data I/O amatlah rentan terhadap kesalahan. Kernel 1/0 bertugas untuk memulihkan keadaan yang bermasalah dan mencatat atau melaporkan kesalahan kepada pengguna.
Tidak ada komentar:
Posting Komentar