Review Pengoperasian Perangkat Input/Output

Salah satu fungsi utama dari sistem operasi adalah mengatur operasi Input/Output (I/O) beserta perangkatnya. Tanpa adanya perangkat I/O sebuah sistem komputer tidaklah berguna, begitu pula sistem operasi. Secara umum ada dua kategori perangkat I/O yaitu perangkat blok dan perangkat karakter. Port I/O terdiri dari 4 register yaitu status, control, data-in dan data-out.

Terdapat tiga teknik pemrograman perangkat Input/Output berdasar mekanisme hubungan pemroses dengan pengendali perangkat I/O, yaitu:

1. I/O terprogram (programmed I/O)

2. I/O dikendalikan interupsi (interrupt driven I/O)

3. dengan Direct Memory Acces (DMA).

I/O Terprogram (Programmed I/O)

Input/Output terprogram atau dikenal juga dengan nama polling. Busy-waiting/polling ialah ketika host mengalami looping yaitu membaca status register secara terus menerus sampai status busy di-clear. Polling menjadi tidak efisien ketika berulang-ulang melakukan looping.

Pada contoh berikut, CPU memberikan perintah kepada perangkat I/O melalui sebuah port. Sebagai keterangan tambahan, men-set bit artinya menulis angka 1, dan menghapus bit sebaliknya.

1. CPU terus-menerus membaca bit kerja sampai bit tersebut menjadi hapus. Bit kerja adalah bit dalam register status yang mengindikasikan keadaan pengendali perangkat.
2. CPU mengaktifkan bit write di register perintah sebagai awal pertanda CPU memberikan perintah dan menulis sebuah byte di data-out
3. CPU mengaktifkan command-ready bit, artinya perintah tersedia untuk dijalankan pengendali.
4. Controller melihat command-ready bit di-set sehingga bit kerja di-set.
5. Controller membaca register perintah dan melihat perintah write maka data-out dibaca dan menyuruh perangkat I/O melakukan apa yang diperintah CPU.
6. Controller meng-hapus command-ready bit, bit error di status, dan bit kerja.

Langkah pada nomor satu disebut polling atau busy-waiting. CPU terus-menerus memeriksa keadaan bit untuk mengetahui status pengendali. Polling cocok digunakan bila kinerja perangkat dan pengendalinya cepat

Interrupt Driven I/O

Dikarenakan mekanisme terprogram/polling kurang efisien ketika melakukan looping memeriksa status perangkat I/O maka dibutuhkan mekanisme yang lain yaitu interupsi. Perangkat I/O dapat diatur untuk memperingatkan prosesor saat perangkat tersebut sudah siap, hal ini dapat dilakukan dengan mengirim sinyal yang disebut interupsi ke prosesor. Konsep interupsi berguna di dalam sistem operasi dan pada banyak aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan seksama.

Langkah-langkah mekanisme interupsi yang disebabkan perangkat I/O, yaitu:
1. Perangkat I/O mengirim sinyal interupsi.
2. Prosesor menerima sinyal interupsi.
3. Penyimpanan informasi proses yang sedang dieksekusi.
4. Prosesor mengidentifikasi penyebab interupsi.
5. Prosesor mengeksekusi interupsi routine sampai return.
6. Prosesor melanjutkan proses yang sebelumnya ditunda.

Interrupt driven I/O memiliki kelebihan yaitu peniadaan waktu tunggu CPU. Jadi perbedaan antara programmed I/O dengan interrupt driven I/O adalah pada programed I/O modul I/O tidak dapat mengirimkan status periferal kepada CPU, tetapi pada interrupt driven I/O modul I/O dapat mengirimkan status periferal kepada CPU, sehingga mempercepat proses CPU. Namun Interrupt driven I/O memiliki kelemahan yaitu tidak efisien untuk transfer data yang besar.

Direct Memory Access (DMA)

Merupakan suatu pendekatan alternatif yang digunakan sebagai unit pengaturan khusus yang disediakan untuk memungkinkan pengalihan blok data secara langsung antara peralatan eksternal dan memori utama tanpa intervensi terus menerus oleh CPU. DMA dapat menutupi kelemahan dari Interrupt driven I/O. DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O.

Tiga langkah dalam transfer DMA:
1. Prosesor menyiapkan DMA transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.


Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses DMA,
sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap “penerjemahan” dari alamat memori virtual menjadi alamat memori fisik, hal ini disebut Direct Virtual-Memory Address atau DVMA. Keuntungan dari DVMA ialah dapat mendukung transfer antara dua memori mapped device tanpa intervensi CPU.

Referensi
Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley & Sons.

Hariyanto, Bambang. 2012. Sistem Operasi Revisi Kelima. Bandung: Penerbit Informatika

Stallings, William. 2001. Operating Systems: Internal and Design Principles. Fourth Edition. Edisi Keempat. Prentice-Hall International. New Jersey.