UNIT I/O
UNIT I/O
Pada
I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU
mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung,
seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring
perangkat. Kelemahan teknik ini adalah CPU akan menunggu sampai
operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi
CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat
melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan
padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap
dilaksanakan.
Untuk
melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi
modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan
sebuah perintah I/O yang akan dilakukan.
Perintah I/O
Terdapat empat klasifikasi perintah I/O,
yaitu:
- Perintah control.
Perintah
ini digunakan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas
yang diperintahkan padanya.
- Perintah test.
Perintah
ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan
peripheralnya.CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif
dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan
serta mendeteksi kesalahannya.
- Perintah read.
Perintah
pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer
internal. Proses selanjutnya paket data dikirim melalui bus data setelah
terjadi sinkronisasi data maupun kecepatan transfernya.
- Perintah write.
Perintah
ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil
data dari bus data untuk diberikan pada perangkat peripheral tujuan data
tersebut.
Dalam
teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang
tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated
I/O. Dalam memory-mapped I/O, terdapat ruang tunggal
untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status
dan register data modul I/O sebagai lokasi memori dan menggunakan
instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O.
Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran
tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien
dalam pemrograman, namun memakan banyak ruang memori alamat. Dalam
teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori
danruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi
dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output.
Keuntungan isolated I/O adalah sedikitnya instruksi I/O.
Perangkat
I/O terprogram merupakan perangkat I/O komputer yang dikontrol oleh
program. Contohnya, perintah mesin in, out, move. Perangkat
I/O terprogram tidak sesuai, untuk pengalihan data dengan kecepatan tinggi
karena dua alasan yaitu:
- Memerlukan overhead (ongkos) yang tinggi, karena beberapa perintah program harus dieksekusi untuk setiap kata data yang dialihkan antara peralatan eksternal dengan memori utama.
- Banyak peralatan periferal kecepatan tinggi memiliki mode operasi sinkron, yaitu pengalihan data dikontrol oleh clock frekuensi tetap, tidak tergantung CPU.
Teknik Pemrograman I/O
Terdapat
3 teknik, yaitu :
1. I/O terprogram atau polling system.
Ketika
perangkat I/O menangani permintaan, perangkat men-set bit status di register
status perangkat. Perangkat tidak memberitahu ke pemroses saat tugas telah
selesai dilakukan sehingga pemroses harus selalu memeriksa register
tersebut secara periodik dan melakukan tindakan berdasar status yang dibaca. Software
pengendali perangkat (driver) dipemroses harus mentransfer data ke/dari
pengendali.Driver mengekseksui perintah yang berkomunikasi dengan
pengendali (adapter) di perangkat dan menunggui sampai operasi yang
dilakukan perangkat selesai.Driver berisi kumpulan instruksi :
- Pengendalian.
Berfungsi
mengaktifkan perangkat eksternal dan memberitahu yang perlu dilakukan.contoh :unit
tape magnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record
berikut, dan sebagainya.
- Pengujian.
Berfungsi
memeriksa status perangkat keras berkaitan dengan perangkat I/O.
- Pembacaan/penulisan
Berfungsi
membaca/menulis untuk transfer data antara register pemroses dan
perangkat eksternal.
Masalah
utama I/O terprogram adalah pemroses diboroskan untuk menunggu dan menjagai
operasi I/O. Diperlukan teknik lain untuk meningkatkan efisiensi
pemroses.
Teknik
ini disebut juga pemilihan saluran dimana semua pengalihan ke dan dari alat
diselenggarakan oleh program.Prosesor mengirim dan meminta data, semua operasi
masukan dan keluaran berada dibawah kendali program. Pengalihan harus
dikoordinasi oleh suatu proses handshaking (jabat tangan). Proses pemilihan
saluran menjadi mungkin untuk dilakukan melalui penggunaan isyarat. Suatu
isyarat adalah suatu bit yang bila dipasang, menunjukkan bahwa telah terjadi suatu
kondisi yang memerlukan perhatian. Isyarat ini akan diperiksa terus menerus.
- Program terus berjalan lewat sejumlah pengetesan untuk menentukan apakah masukan atau keluaran dapat/ harus diselenggarakan. Bila ditemukan alat yang memerlukan pelayanan, rutin pelayanan yang sesungguhnya diaktifkan dan pemilihan saluran berlangsung lagi setelah pelayanan selesai dilakukan. Dua metode dasar penginderaan isyarat alat siap yang dipakai adalah pemakaian pintu status masukan sederhana dan pemakaian pintu status masukan pengkode prioritas.
- Metode I/O terprogram/ Pemilihan saluran ini adalah metode yang paling umum dan paling sederhana. Metode ini tidak memerlukan perangkat keras khusus dan semua pengalihan masukan keluarandikendalikanoleh program.
2. I/O dikendalikan interupsi.
- Teknik pemilihan saluran
memiliki dua keterbatasan yaitu pemborosan waktu prosesor dan lambat.
Diperlukan suatu cara agar alat yang membutuhkan pelayanan dapat segera
dilayani tanpa menunggu gilirannya tiba. Prosedur ini dinamakan Interupsi.
• Bila suatu alat yang ingin membutuhkan pelayanan, maka ia dapat menjalankan interupsi kepada mikroprosesor sehingga mikroprosesor akan menanggapi dan menjalankan interupsi tersebut sampai selesai dan kemudian kembali ke instruksi semula.Alat yang mengatur permintaan interupsi kepada mikroprosesor adalah Interrupt Controller.Terdapat mode – mode interupsi yang mungkin terjadi pada Interrupt Controller :
1. Fully Nested :
Sebuah perangkat/ peripheral yang meminta interupsi diurutkan dalam prioritas mulai dari 0 (IRQ0) hingga 7 (IRQ7)
- Rotating :
Perangkat/ peripheral yang meminta interupsi memiliki prioritas yang sama. Pada mode ini sebuah perangkat, setelah dilayani akan menerima prioritas terendah didalam kelompoknya, sehingga apabila terdapat permintaan pelayanan kembali, harus menunggu sampai ketujuh alat dilayani semua (bergiliran). - Special Mask :
Pada mode ini dimungkinkannya prosesor menangkal interupsi dari perangkat tertentu secara selektif. Sebagai contoh, apabila sebuah program yang ingin menjalankan alat dengan menangkal interupsi tertentu dan memunculkan interupsi lain sebagai prioritas tertinggi maka hal tersebut dapat dimungkinkan. - Polling :
Pada mode ini, interrupt controller menonaktifkan masukan interupsi, sehingga bekerja normal seperti pada metode pemilihan saluran.
Teknik
I/O dituntun interupsi mempunyai mekanisme kerja sebagai berikut :
- Pemroses memberi instruksi ke perangkat I/O kemudian melanjutkan melakukan pekerjaan lainnya.
- Perangkat I/O akan menginterupsi meminta layanan saat perangkat telah siap bertukar data dengan pemroses.
- Saat menerima interupsi perangkat keras (yang memberitahukan bahwa perangkat siap melakukan transfer), pemroses segera mengeksekusi transfer data.
Keunggulan
:
–
Pemroses tidak disibukkan menunggui dan menjaga perangkat I/O untuk memeriksa
status perangkat.
Kelemahan
:
- Rate transfer I/O dibatasi kecepatan menguji dan melayani operasi perangkat.
- Pemroses terikat ketat dalam mengelola transfer I/O. Sejumlah intruksi harus dieksekusi untuk tiap transfer I/O.
3. Dengan DMA (direct memory access).
DMA
berfungsi membebaskan pemroses menunggui transfer data yang dilakukan perangkat
I/O. Saat pemroses ingin membaca atau menulis data, pemroses
memerintahkan DMA controller dengan mengirim informasi berikut :
- Perintah penulisan/pembacaan.
- Alamat perangkat I/O.
- Awal lokasi memori yang ditulis/dibaca.
- Jumlah word (byte) yang ditulis/dibaca.
Setelah
mengirim informasi-informasi itu ke DMA controller, pemroses dapat
melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA.DMA
mentransfer seluruh data yang diminta ke/dari memori secara langsung tanpa
melewati pemroses. Ketika transfer data selesai, DMA mengirim sinyal interupsi
ke pemroses. Sehingga pemroses hanya dilibatkan pada awal dan akhir transfer
data. Operasi transfer antara perangkat dan memori utama
dilakukan sepenuhnya oleh DMA lepas dari pemroses dan hanya
melakukan interupsi bila operasi telah selesai.
DMA
ialah sebuah prosesor khusus (special purpose processor) yang
berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk
memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang
berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke
tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian
menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA
dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan
alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
Langkah Dalam Transfer DMA:
- Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
- Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
- Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Pada
dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode
yang pertama ialah metode yang sangat baku dan sederhana disebut HALT,
atau BurstMode DMA, karena pengendali DMA memegang kontrol dari
sistem bus dan mentransfer semua blok data ke atau dari memori pada single
burst. Selagi transfer masih
dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.Metode DMA ini disebut cycle stealing mode.Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka.Keunggulan :
dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.Metode DMA ini disebut cycle stealing mode.Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka.Keunggulan :
- Penghematan waktu pemroses.
- Peningkatan kinerja I/O.
DAFTAR
PUSTAKA
Riri Fitri Sari, Yansen
Darmaputra. 2005.Sistem Operasi Modern. Yogyakarta.Andi
Offset
Hariningsih. 2003. Sistem Operasi. Yogyakarta. Graha Ilmu
“Input Output dalam
Sistem Operasi”. 19 Oktober 2016.http://www.academia.edu/4928721
“Implementasi Input
Output”.19 Oktober 2016.http://www.prezi.com/manajemen-input-output
Comments
Post a Comment