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.
Sumber : By: Silvica Dewi
Iriandani/PCA-10-01/30310103
Tidak ada komentar:
Posting Komentar