Thursday, June 29, 2017

Perbedaan Polling (Programmed) I/O, Interrupt Driven I/O dan Direct Memory Access (DMA)


Di dalam komputer kita terdapat lubang-lubang yang mana disitu untuk menjalankan hardware pendukung di luar komputer. Hardware tersebut bisa memberikan perintah input ke komputer ex: mouse, keyboard dll, ataupun output keluar dari komputer ex: printer, speaker dll.

Maka dari itu komputer melakukan tugas untuk membaca input atau output (I/O) yang ada pada diri nya. Karenanya pada setiap komputer saat ini dilengkapi dengan I/O modul yang bisa melakukan khusus pembacaan I/O pada komputer.

Pada perkembangannya pun I/O modul ada beberapa perbedaan diantaranya Polling (Programmed) I/O, Interupt Driven I/O dan Direct Memory Access (DMA).


Polling (Programmed) I/O

Polling atau biasa disebut dengan Programmed I/O merupakan teknik dari operasi I/O. Cara prosesnya bermula ketika CPU mengecek ke I/O modul apakah ada suatu instruksi yang perlu di eksekusi, bila ada CPU menerima dan membaca instruksi tersebut, kemudian instruksi tersebut dicek error atau tidaknya bila error maka CPU akan menanyakan ulang ke I/O modul untuk intruksi yang baru, bila tidak error maka CPU membaca WORD dari instruksi tersebut dan menuliskan WORDnya ke dalam memori. Setelah itu bila suatu instruksi telah selesai maka CPU akan menjalankan instruksi yang lain.





Perlu diketahui bahwa Polling I/O bisa dibilang metode yang paling primitif dibanding teknik operasi I/O yang lain dimana teknik ini tidak bisa menjalankan 2 instruksi sekaligus, Misalkan bila komputer anda sedang nge-print sesuatu maka komputer anda tidak bisa menjalankan proyektor yang anda colokan, dimana anda perlu menunggu instruksi awal yakni nge-print sampai selesai, barulah anda bisa menjalankan proyektor yang anda colokan.


Interrupt Driven I/O

Interrupt Driven I/O merupakan arsitektur modul I/O yang bekerja pada CPU. Polling I/O digunakan CPU untuk menyelesaikan hanya satu tugas saja, yang mana prosesnya akan begitu lama karena belum bisa multitasking, namun pada Interrupt Driven I/O ketika proses lain ada yang masuk akan disanggah dan difilter proses mana yang akan dikerjakan terlebih dahulu, yang memungkinkan Interrupt Driven I/O bisa multitasking. Penjelasan barusan merupakan perbedaan diantara keduanya. Alur proses nya seperti gambar di bawah.



Persamaannya dengan Polling I/O yaitu, Polling I/O dan Interrupt Driven I/O prosesnya terjadi pada modul I/O namun masih melibatkan CPU secara langsung.



Direct Access Memory (DMA)

Teknik ini pada dasarnya sama dengan kedua teknik di atas namun yang membedakan adalah terdapat modul DMA tersendiri di dalam modul I/O pada teknik ini.



Pada gambar di atas menggambarkan bahwa CPU tidak berhubungan langsung dengan I/O secara langsung melainkan berhubungan dengan modul DMA yang mana secara penjelasan ringkas bahwa DMA menyimpan instruksi-intruksi yang diterima oleh I/O, kemudian bila CPU sudah siap maka instruksi tersebut akan dieksekusi. Karena itu bisa dianalogikan ketika banyaknya proses I/O yang masuk maka CPU tidak akan mengalami Crash, karena segala instruksinya disimpan didalam modul DMA.


Ditambah lagi bahwa CPU sekarang telah terbagi core-nya memungkinkan komputer yang menganut teknik ini sudah dipastikan bisa multitasking.

1 comment: