TIU Memahami konsep I/O system Memahami mekasnisme dasar dalam I/O system
Pendahuluan Dalam melaksanakan kerjanya, komputer selalu berhubungan dengan pihak luar dengan perantara I/O device,Inout device akan menerima data dan masukan lainnya untuk diproses dan output device akan merepresentasikan hasil perhitungan tadi dengan format yang dikehendaki oleh pengguna.
Bagian I/O System I/O device adalah alat-alat I/O yang digunakan pada suatu komputer. I/O bus adalah tipe kanal atau interface yang digunakan oleh I/O device tersebut, seperti ISA, PCI, PCI express dan sebagainya.
Arsitektur Southbridge
Kinerja I/O system Nilai Latency, yaitu waktu yang dibutuhkan untuk melakukan transfer data dengan ukuran terkecil. Satuan latency adalah detik. Bandwidth, yaitu banyaknya data maksimal yang dapat ditransfer dalam satuan waktu. Satuan dari bandwidth adalah Byte/s. Waktu = latency + ukuran data yang akan ditransfer / bandwidth
Mekanisme Kerja I/O System Agar CPU dapat berkomunikasi dengan perangkat I/O, dibutuhkan suatu mekanisme yang disepakati antara CPU dan I/O Interface/controller. Mekanisme ini dibutuhkan karena bus yang ada digunakan oleh semua I/O device yang ada.
Pooling Busy waiting/pooling adalah mekanisme CPU membaca status device secara terus-menerus untuk menentukan device yang bebas. Pada pooling terdapat dua bit yang berperan, Busy bit yang mengindikasikan suatu device sedang bekerja atau bebas dan Command ready bit yang mengindikasikan apakah suatu perintah dapat dieksekusi oleh device atau tida
cara kerja pooling
1. Command ready bit akan diset aktif oleh host (CPU/microprocessor pada gambar) 2. Host akan mencari device yang bebas 3. Ketika menemukan device yang bebas, busy bit akan diset oleh device controller 4. Host akan melakukan pertukaran data dengan device 5. Setelah selesai, device controller akan menonaktifkan command ready bit dan busy bit
Interrupt Konsep dasar interrupt adalah device dapat mengalihkan sementara CPU untuk melayani device tersebut. CPU mendeteksi interrupt request line yang dikirimkan oleh device via controller CPU menyimpan status kerja sekarang dan memanggil interrupt handler untuk agar dapat melayani interrupt diatas
Mekanisme Interupt
Pada komputer modern, terdapat beberapa fitur tambahan yang dimiliki interrupt handler, yaitu kemampuan menghambat suatu interrupt apabila CPU berada dalam kondisi kritis (critical state), efisiensi penanganan interrupt sehingga tidak perlu dilakukan pooling untuk mencari device yang bebas, dan sistem prioritas dalam menangani interrupt.
Direct Memory Access DMA adalah sebuah prosesor tambahan yang digunakan untuk menghindari pembebanan CPU. Berikut cara kerja DMA:
1. CPU akan menuliskan sebuah DMA command block yang berisi pointer asal dan tujuan transfer data serta jumlah byte yang akan ditransfer ke memory. 2. Command block kemudian dieksekusi oleh DMA controller sehingga controller dapat langsung mengoperasikan bus memory secara langsung. 3. Processor menyiapkan DMA transfer dengan menyedia kan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer. 4. DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh data selesai ditransfer. 5. Processor akan diinterrupt oleh DMA controller, dimana selanjutnya akan ditentukan tindakan berikutnya.
I/O Subsystem Selain mekanisme diatas, terdapat juga service yang disediakan oleh kernel I/O subsystem, yang digunakan dalam membuat device driver (aplikasi antarmuka/interface antara aplikasi dan device). Fungsi I/O subsystem antara lain: Melakukan manajemen nama untuk file dan device Melakukan control akses untuk file dan device Melakukan alokasi untuk file dan device Melakukan I/O scheduling, buffering, caching, spooling Mengawasi status device, error handling dan recovery Konfigurasi dan utilisasi device driver
I/O Scheduling Service ini menentukan urutan ketika beberapa proses berjalan dalam suatu waktu. Permintaan terhadap I/O akan ditampung dalam antrian dan diproses oleh I/O scheduler untuk meningkatkan efisiensi sisten dan mengurangi waktu tunggu yang dihasilkan.
Buffering Buffering adalah teknik untuk menyimpan data sementara pada memory ketika dipindahkan dari suatu device/aplikasi ke device /aplikasi lainnya. Teknik buffering dapat meningkatkan kinerja sistem karena memory yang digunakan untuk proses ini lebih cepat dibandingkan akses ke disk.
Caching Hampir sma dengan teknik buffering, caching akan mengduplikasi data dari device/disk ke memory sementara sehingga akses yang dibutuhkan menjadi lebih cepat. Pada buffering, data pada buffer adalah data satu-satunya sedangkan pada teknik caching, data pada cache merupakan data duplikat dari tempat lain.
Spooling Spooling adalah suatu buffer yang digunakan untuk menyimpan data sementara sebelum dieksekusi oleh suatu device. Teknik spooling banyak dugunakan oleh device printer, karena printer hanya dapat melayani satu pekerjaan (mencetak) dalam suatu waktu, maka permintaan pekerjaan yang lain harus menunggu di buffer spooler.
Error Handling Device dan data yang ditransfer melalui I/O dapat mengalami kegagalan dalam banyak cara, misalnya pada saat pengiriman data atau kegagalan permanen seperti kerusakan pada hardware (controller). Sistem operasi dapat mengkompensasikan sebagian besar kesalahan yang terjadi melalui proses recovery, misalnya ketika terjadi read error pada suatu disk, sistem operasi akan melakukan pembacaan ulang