Sistem Input Output (I/O)
By: Silvica Dewi Iriandani/PCA-10-01/30310103
1. Input Output System
Pada dasarnya, tugas utama komputer adalah processing dan I/O. Pada konteks I/O, peranan sistem operasi adalah mengatur dan mengontrol perangkat I/O dan operasi I/O. Perangkat terhubung ke komputer melalui port, diatur oleh device
- · Controller dan berkomunikasi dengan prosesor dan perangkat lain melalui bus.
- · Perangkat berkomunikasi dengan prosesor melalui dua pendekatan yaitu memory mapped dan instruksi I/O langsung.
- · Polling adalah cara apabila prosesor ingin mengakses suatu perangkat, dia akan terus mengecek perangkat untuk mengetahui statusnya,
- · Interupsi digunakan apabila perangkat ingin memberitahu prosesor ketika siap diakses,
- · Adanya Direct Memory Access (DMA) dapat mengurangi beban CPU karena terjadinya transfer data antara perangkat dan memori tanpa melalui CPU.
- · Perbedaan detil untuk setiap alat akan dienkapsulasi pada modul kernel yang disebut device driver.
- · Untuk mengetahui waktu dan lama suatu proses digunakan clock dan timer.
2. Interrupt
- · Interrupt terjadi bila suatu perangkat I/O ingin memberitahu prosesor bahwa ia siap menerima perintah, output sudah dihasilkan, atau terjadi error.
- · Ada beberapa tahapan dalam penanganan interrupt:
1. Controller mengirimkan sinyal interrupt melalui interrupt-requestline;
2. Sinyal dideteksi oleh prosesor;
3. Prosesor akan terlebih dahulu menyimpan informasi tentang keadaan state-nya (informasi tentang proses yang sedang dikerjakan);
4. Prosesor mengidentifikasi penyebab interrupt dan mengakses tabel vektor interrupt untuk menentukan interrupt handler;
5. Transfer kontrol ke interrupt handler;
6. Setelah interrupt berhasil diatasi, prosesor akan kembali ke keadaan seperti sebelum terjadinya interrupt dan melanjutkan pekerjaan yang tadi sempat tertunda.
- · Pada kebanyakan CPU, ada dua interrupt request line:
1. Pertama, Interrupt nonmaskable, interrupt ini biasanya berasal dari perangkat keras dan harus segera dilaksanakan, seperti terjadinya error pada memori.
2. Kedua, Interrupt maskable, jenis interrupt ini bisa dilayani oleh prosesor atau bisa tidak dilayani. Kalau pun dilayani, harus dilihat keadaan prosesor saat itu. Ada kemungkinan prosesor langsung menangani bila saat itu prosesor preemptive, bila nonpreemptive, maka harus menunggu proses yang sedang dikerjakan selesai.
- · Pengaturan prioritas dan penanganan perangkat berdasarkan prioritasnya diatur oleh prosesor dan controller.
- · Sistem operasi menggunakan mekanisme interrupt untuk beberapa hal, di antaranya:
1. Menangani exception. Exception adalah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapatkan hasiltertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contohnya, pembagian dengan nol, pengaksesan alamat memori yang restricted atau tidak valid, dll.
2. Mengatur virtual memory paging.
3. Menangani perangkat lunak interrupt.
4. Menangani alur kontrol kernel.
- · Jika interrupt yang terjadi merupakan permintaan untuk transfer data yang besar, maka penggunaan interrupt menjadi tidak efisien, untuk mengatasinya digunakanlah DMA.
3. DMA (Direct Memory Acces)
- · DMA digunakan untuk menangani transfer data yang besar disebabkan oleh context switc kelemahan tersebut, digunakan suatu unit kontrol khusus yang disediakan untuk mentrasfer data langsung antar perangkat eksternal dan memori utama tanpa intervensi terus menerus dari prosesor. Unit kontrol khusus tersebut adalah DMA.
- · Sistem modern dapat mengurangi beban CPU untuk melakuka operasi I/O, yaitu dengan menggunakan pengendali DMA. Dengan demikian CPU dapat melakukan tugas lain sementara operasi I/O dilakukan.
- · Tiga langkah dalam transfer DMA:
1. prosesor menyiapkan transfer DMA 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) samapai seluruh blok sudah ditransfer.
3. Pengendali DMA meng-interrupt prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
4. I/O PROSESOR
- · Ada dua pendekatan di dalam interaksi prosesor dengan perangkat I/O lainnya, yaitu:
1. Instruksi I/O langsung.
Setiap perangkat diberi nomor port I/O sepanjang 8/16 bit yang unik. Pada transfer data antara register perangkat dan register CPU digunakaninstruksi I/O khusus. Instruksi I/O ini memori biasa karena alamat port I/O tidak menggunakan lokasi yang sama dengan alamat memori. Oleh sebab itu, 2 instruksi berikut:(IN R3, 0x200, 4) dan (MOV R3, 0x200) memiliki dua arti yang berbeda. Instruksi pertama merupakan instruksi I/O khusus yang meminta CPU untuk membaca nilai dari register nomor 4 dari alat I/O pada nomor port0x200 kemudian meletakkannya pada register nomor 3 di CPU. Instruksi kedua merupakan instruksi memori biasa yang hanya menyalin isi alamat memori 0x200 ke register tiga di CPU.
2. Memory mapped.
Pendekatan ini menggunakan pemetaan alamat I/O ke memori. Register data dan buffer data dipetakan ke ruang alamat yang digunakan CPU.
o Keunggulan memory mapped adalah:
a. Prosesor akan memiliki jumlah instruksi yang lebih sedikit karena prosesor tidak perlu menyediakan instruksi I/O khusus.
b. Akses ke memori dilakukan dengan instruksi memori biasa, sehingga driver untuk peralatan dapat ditulis dalam bahasa C / C++ (instruksi memori biasa) daripada bahasa assembly (instruksi I/O khusus).
c. Sistem operasi dapat mengontrol akses ke perangkat I/O, yaitu dengan tidak meletakkan ruang alamat perangkat pada ruang alamat virtual proses.
- · Prosesor berinteraksi dengan controller melalui protokol yang rumit tetapi dasar handshaking-nya cukup sederhana yaitu:
1. CPU secara terus menerus membaca bit status sampai bit tersebut menandakan perangkat siap menerima perintah CPU.
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 controller.
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 menghapus command ready bit, bit error di status dan bit kerja.
Tidak ada komentar:
Posting Komentar