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