Jumat, 15 Maret 2019

6.3 Perangkat Lunak Device (I/O)

 6.3 PERANGKAT LUNAK I/O


6.3.1 TUJUAN PERANCANGAN PERANGKAT LUNAK I/O


Organisasi perangkat lunak sistem I/O pada sistem komputer disusun secara berlapis. Ini berkaitan dengan tujuan dari sistem perangkat lunak I/O yang antara lain:


1. Device Independece


Tujuan ini dicapai dengan membangun lapisan bawah perangkat lunak sistem I/O, yaitu interupt handler dan device driver sedemikian rupa sehingga lapisan perangkat lunak I/O di atasnya tidak mem- butuhkan pengetahuan tentang rincian operasi peranti I/O yang sangat beragam. Ini berarti ketika menulis program yang terletak di lapisan atas misalnya program untuk menyimpan/membaca berkas, tidak diperlukan untuk membuat berbagai versi program atau fungsi untuk setiap peranti penyimpanan data yang berbeda.


2. Uniform Naming


Tujuan lain yan hendak dicapai adalah penamaan yang seragam untuk berkas yang disimpan di berbagai jenis media penyimpan yang berbeda. Jadi nama berkas yang digunakan tetap sama, tidak memandang apakah disimpan di floppy disk, harddisk, CDROM, DVDROM, ataupun di memory stick kamera.


3. Error Handling Tujuan lain yang ingin dicapai adalah bagaimana menangani ke- salahan, terutama kesalahan baca, yang ditemui dalam operasi I/O. Kesalahan ditangani pada semua lapisan perangkat lunak sistem I/O. Sedapat mungkin kesalahan baca dikoreksi pada tingkat perangkat keras. Jika device controller masih menemukan kesalahan data maka ditingkat ini juga kesalahan akan dikoreksi. Jika setelah itu masih ditemukan adanya kesalahan maka device driver juga turut berperan dalam mengoreksi kesalahan baca yang terjadi.


4. Transfer Sinkron vs Asinkron


Masalah transfer data asinkron atau sinkron merupakan pertimbangan lainnya yang penting dalam perancangan perangkat lunak sistem


Manajemen Device


189


I/O. Suatu operasi dikatakan sinkron apabila operasi tersebut dapat melanjutkan eksekusinya hanya setelah permintaannya terpenuhi. Sebaliknya pada operasi asinkron, operasi tersebut dapat terus berjalan sekalipun permintaannya belum terpenuhi atau masih sedang diproses.


Pada transfer data asinkron, prosesor memulai transfer data dan menjalankan proses lainnya sampai mendapat sinyal bahwa operasi transfer data sudah selesai. Begitu sinyal diterima, prosesor baru memproses atau menyelesaikan penanganan transfer data tersebut. Kebanyakan peranti I/O menggunakan transfer data asinkron. Pada transfer sinkron, prosesor akan berhenti sampai data yang diperlukan tersedia di buffer memori.


5. Shareable vs Dedicated Device Hal terakhir yang perlu dipertimbangkan dalam perancangan perang- kat lunak sistem I/O adalah apakah suatu peranti I/O bersifat shareable atau dedicated. Suatu peranti I/O dikatakan shareable jika dapat digunakan oleh beberapa pengguna pada saat bersamaan. Contohnya adalah pembacaan berkas-berkas yang terdapat pada suatu disk oleh sejumlah pengguna komputer secara bersamaan. Sebaliknya pada peranti I/O yang dedicated, hanya satu pengguna yang dapat menggunakan peranti I/O pada suatu waktu sampai tugasnya selesai. Contohnya adalah peranti printer. Sekalipun sejumlah proses memasukkan tugas pencetakan ke suatu printer secara bersamaaan, tugas pencetakan tersebut akan tetap dilakukan satu persatu secara


berurut.


Berikut akan dibahas berbagai komponen perangkat lunak sistem I/O pada sistem komputer, yaitu: interrupt handler, device driver, dan kernel I/O.


1. Lapisan Intterupt Handler


Lapisan ini bertujuan untuk mencapai operasi IVO yang asinkron. Lapisan perangkat lunak ini menangani terjadinya interupsi dan pengalihan eksekusi ke rutin penanganan interupsi, interrupt handler, yang bersesuaian. Fasilitas interupsi memungkinkan transfer data peranti I/O dilakukan secara asinkron sehingga prosesor tidak harus


190


Sistem Operasi


idle selama terjadi operasi I/O. Proses yang melakukan transfer data I/O akan beralih ke status blocked selama transfer data 1/0 berlangsung dan prosesor dapat dialokasikan ke proses lain.


Jika transfer data I/O telah selesai maka interupsi akan dibangkitkan terhadap prosesor sehingga prosesor akan menunda eksekusinya dan beralih untuk mengeksekusi rutin penanganan interupsi yang akan mengalihkan proses yang meminta operasi I/O dari statusnya yang blocked menjadi ready. Setelah itu, penjadwalan prosesor akan dilakukan dan eksekusi prosesor dapat beralih ke proses yang terkena interupsi atau ke proses yang operasi I/O-nya telah selesai ataupun ke proses lainnya.


2. Lapisan Device Driver


Lapisan device driver membantu perangkat lunak sistem I/O untuk mencapai ketidaktergantungan dengan keberagaman peranti I/O. Lapisan device driver mengimplementasi secara khusus rincian operasi dari masing-masing jenis pengendali peranti I/O atau device controller. Jadi setiap device controller akan ditangani oleh suatu device driver yang khusus.


Lapisan device driver merupakan abstraksi terhadap operasi peranti I/O yang sangat beragam dan menyediakan antarmuka yang seragam untuk peranti I/O yang sejenis. Jika ada perubahaan konfigurasi pe- ranti fisik I/O maka cukup device driver-nya yang diganti sedangkan lapisan perangkat lunak I/O atasnya tidak perlu dimodifikasi. Kemu- dahan seperti ini dapat dicapai dengan merumuskan bersama antar- muka generik untuk setiap jenis device driver di antara para vendor- vendor peranti I/O.


Misalnya 2 jenis graphics card dari vendor yang berbeda akan memiliki device driver yang menyediakan set fungsional minimal untuk pengaksesan graphic card. Ini memungkinkan perangkat lunak I/O di atas lapisan device driver tidak perlu menangani perbedaan antar graphic card dari vendor yang berbeda sehingga device independency dapat tercapai.


Manajemen Device


191


3. Lapisan Subsistem I/O atau Kernel I/O Lapisan kernel I/O mengimplementasi fungsi-fungsi manajemen sistem I/O yang bersifat umum dan tidak tergantung pada spesifikasi dan arsitektur dari sistem komputernya. Lapisan ini menyediakan antarmuka atau fungsi I/O yang generik bagi komponen lain sistem operasi maupun aplikasi. Fungsi-fungsi yang diimplementasi oleh lapisan subsistem I/O antara lain fungsi penamaan peranti I/O, pro- teksi, pelaporan kesalahan. Adanya keseragaman fungsi memudahkan implementasi komponen lain sistem operasi maupun aplikasi yang melakukan operasi I/O.


4. Lapisan Pustaka VO aplikasi Lapisan ini mengimplementasi pustaka pengaksesan I/O atau API (Application Programming Interface) bagi aplikasi untuk melakukan operasi I/O. Lapisan ini memudahkan pemrogram aplikasi, karena pengaksesan ke berbagai macam peranti yang berbeda menggunakan operasi (primitive) yang sama. Sebagai contoh, pustaka WIN32 sub system yang menyediakan API untuk operasi VO dan juga operasi grafis pada sistem operasi keluarga Windows.



Tidak ada komentar:

Posting Komentar