Manajemen perangkat keras input/output adalah bagaimana perangkat keras input output itu dikelola dan diprogram agar dapat berjalan dengan baik. Pengelolaan perangkat I/O merupakan aspek perancangan sistem operasi yang terluas karena beragamnya peralatan dan begitu banyaknya aplikasi dari peralatan-peralatan itu.
Manajemen perangkat I/O mempunyai fungsi : 1) mengirimkan perintah ke perangkat I/O. 2) menangani interupsi perangkat I/O. 3) menangani kesalahan pada perangkat I/O.3) menyediakan interface ke pemakai.
A. Klasifikasi Perangkat I/O
Perangkat I/O dapat dibedakan berdasarkan sifat aliran datanya dan sasaran komunikasinya. Berdasarkan aliran data dibedakan menjadi dua yaitu Perangkat berorientasi blok (block-oriented devices). dan Perangkat berorientasi karakter (character-oriented devices):
- Perangkat berorientasi blok (block-oriented devices). Menyimpan informasi dan menukarkan (menerima/mengirim) informasi sebagai blok-blok berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 s/d 1024 byte. Ciri utamanya adalah : dimungkinkan membaca / menulis blok-blok secara independent, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contohnya : disk, tape, CD ROM, Optical disk
- Perangkat berorientasi karakter (character-oriented devices). Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not addresable dan tidak mempunyai operasi seek. Contohnya : terminals, line printer, punch card, network interfaces, pita kertas, mouse.
Klasifikasi diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori diatas, misalnya : 1) clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock menyebabkan interupsi pada interval-interval yang didefinisikan. 2) Memory mapped screen dan 3) sensor.
Sedangkan berdasarkan sasaran komunikasi perangkat keras I/O dibedakan menjadi tiga yaitu : :
- Perangkat yang terbaca oleh manusia (human readable device). Contohnya : VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse)
- Perangkat yang terbaca oleh mesin (machine readable device). Contohnya : disk, tape, sensor, controller, aktuator
- Perangkat Untuk komunikasi, seperti infrared, blutooth, wireless dll.
Teknik untuk mengoperasikan perangkat I/O meliputi tiga cara yaitu: 1) Perangkat I/O terprogram atau programmed I/O. 2) Perangkat berkendalikan interupsi atau Interrupt I/O dan 3) DMA (Direct Memory Ad-dress).
- Programmed I/O merupakan teknik mengoperasikan perangkat I/O komputer yang dikontrol oleh program. Contohnya, perintah mesin in, out, move.
- Interrupt I/O merupakan teknik untuk mengkoordinasikan pengalihan dan mengoperasikan perangkat I/O. Konsep interupsi berguna di dalam sistem operasi dan beberapa aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan seksama dan secara relatif untuk peristiwa-peristiwa eksternal.
- DMA adalah suatu cara pemindahan data atau informasi dari memori ke perangkat I/O atau sebaliknya yang dilakukan secara langsung tanpa campur tangan dari prosesor. DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O device.
B. Prinsip Perangkat lunak Input / Output
Pemanfaatan perangkat lunak untuk mengelola I/O ini pada dasarnya adalah mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses atau kerumitan hardware untuk level diatasnya. Level akan berfungsi sebagai antar muka atau interface ke pengguna. Adapun
kriteria, karakteristik atau tujuan perangkat lunak I/O adalah :- Konsep dalam desain software I/O, merupakan device independence dan tidak bergantung pada device yang digunakan.
- Penamaan yang seragam / Uniform Naming. Penamaan file berkas atau perangkat adalah string atau integer dan harus sederhana, tidak bergantung pada device Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS).
- Penanganan kesalahan / Error Handling. Error harus ditangani sedekat mungkin dengan hardware. Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan
- Synchronous (blocking) dan Asynchronous (Interrupt Driver) transfer. Kebanyakan I/O adalah asinkron. Pemroses memulai transfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba. Program pemakai sangat lebih mudah ditulis jika operasi I/O berorientasi blok. Setelah perintah read, pemrogram ditunda secara otomatis sampai data tersedia di buffer.
- Sharable vs Dedicated Device. Beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat. Misal : disk untuk sharable dan printer untuk dedicated
Untuk mengimplementasikan tujuan atau kriteria diatas perangkat lunak I/O dipisahkan dalam empat layer, yaitu :
- Interrupt Handler Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.
- Device Drivers. Seluruh kode device dependent terletak di device driver.. Tiap device driver menangani satu tipe / satu kelas device. Tugas dari de-vice driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
- Device Independent Operating System Software. I/O device-independent adalah : software I/O yang tak bergantung pada perangkat keras. Fungsi dasar dari software device-independent adalah: 1) membentuk fungsi I/O yang berlaku untuk semua device dan 2) menyediakan interface uniform yang seragam ke user level software. 3) memberikan penamaan device. 4) memberikan proteksi device. 5) Memberi ukuran blok device agar bersifat device-independent. 6) Melakukan Buffering. 7) mengalokasi penyimpanan pada blok devices. 8) menglokasi dan pelepasan dedicated devices. 9) melakukan pelaporan kesalahan.
- User Space I/Osoftware atau lapisan pustaka. Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program. System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures)
C. Disk
Disk adalah merupakan media penyimpanan data yang bersifat permanan. Kelebihan disk dibanding main memory untuk penyimpanan adalah: 1) kapasitas penyimpanan yang tersedia lebih besar. 2) harga per-bit-nya lebih rendah. 3) informasi tidak hilang meskipun power off. Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor.
Tiga kriteria atau faktor yang digunakan sebagai tolak ukur performa hardisk yang mempengaruhi waktu read/write block disk adalah :1) seek time (waktu menggerakkan lengan ke silinder), 2) rotational delay (waktu sector berputar ke head) dan 3) transfer time yang sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan mengurangi waktu rata-rata seek.
RAM disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM disk sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis dalam seek dan rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja disk yang tinggi. Devices block adalah media penyim- panan dengan 2 perintah: R (read) dan W (write). Normalnya blok-blok disimpan di disk berputar yang memerlukan mekanisme fisik.
Beberapa kesalahan yang terjadi terjadi berkaitan dengan I/0 atau akses hardisk dan penanganan kesalahan I/O atau I/O Error Handling secara umum adalah sebagai berikut:
- Error pemrograman, yaitu kesalahan yang disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya : pembetulan program untuk komersial software, batalkan operasi dan berharap tidak akan terjadi lagi
- Error checksum transient, kesalahan yang disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan operasi berulang-ulang dan menandai sector yang rusak.
- Error checksum permanent, kesalahan yang disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak ditulisi di blok-blok buruk.
- Error seek, kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
- Error controller. Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. Misalnya controller menolak perintah akses. Penanganannya : reset.
- Track at time caching. Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.
D. Mengelola Perangkat I/O dengan Device Manajer.
Device manager adalah sebuah alat bantu grafis yang menyediakan informasi mengenai perangkat-perangkat yang telah terinstal. Untuk menjalankan device manager dapat dilakukan dengan beberapa langkah sebagai berikut:
- Klik start menu, pada text box search program and file ketik device. Dibawah kategori control panel (30) Klik device manajer maka jendela device manager.
- Melalui text box pencarian atau command prompt ketik devmgmt.msc dibawah kategori program(1) klik devmgmt.msc maka maka jendela device manager akan ditampilkan
- Klik kanan pada icon computer di start menu atau pada folder panes di windows explorer dan pilih device manager dari panel kiri konsol computer managemen yang berada pada system tools
- Klik start menu kemudian pilih control panel, buka system and security, pada group system klik device manager