Widget HTML #1

Prinsip Perangkat Lunak Input/output (I/O)

Siapa yang tidak kenal dengan perangkat lunak. Tentu kita sudah sering mendengarnya dan menggunakannya. Perangkat lunak adalah sebutan lain dari software.


Pemanfaatan perangkat lunak untuk mengelola input/output (I/O), pada dasarnya dilakukan dengan cara mengorganisasikan software ke dalam beberapa layer dimana level di bawah menyembunyikan akses atau kerumitan hardware untuk level di atasnya.


Level disini berfungsi sebagai antar muka atau interface bagi pengguna atau user.



Kriteria, Karakteristik atau Tujuan Perangkat Lunak I/O

Berikut ini kita akan melihat apa saja kriteria, karakteristik atau tujuan dari perangkat lunak I/O, diantaranya adalah sebagai berikut.



a. Konsep Dalam Desain Software I/O

Dalam membuat konsep atau desain software Input/Output(I/O), memerlukan device independence atau yang tidak bergantung pada device yang digunakan.



b. Penamaan Yang Seragam atau Uniform Naming

Penamaan file atau berkas atau perangkat sudah semestinya menggunakan tipe karakter string atau integer yang sederhana, dan tidak bergantung pada device. Sebagai contoh seluruh disks dapat dibuat dengan hirarki sistem file.



c. Penanganan Kesalahan atau Error Handling

Penanganan error harus ditangani sedekat mungkin dengan hardware. Sebagai contoh pertama controller, device driver, dan seterusnya. Jika tidak bisa ditangani, maka harus beri pesan atau pemberitahuan.



d. Synchronous (Blocking) dan Asynchronous (Interrupt Driver) Transfer

Perlu kita ingat bahwa kebanyakan input/output (I/O) bersifat asinkron.


Pemroses memulai transfer dengan mengabaikan fungsi kerja lain sampai interupsi tiba. Program lebih mudah ditulis jika operasi I/O berorientasi blok.


Setelah perintah read, pemrogram ditunda secara otomatis sampai data tersedia kembali di buffer.



e. Sharable vs Dedicated Device

Sharable atau Dedicated Device disini artinya beberapa perangkat dapat dipakai secara bersama-sama, seperti misalnya disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu waktu, seperti disk untuk sharable dan printer untuk dedicated.



4 Layar Perangkat Lunak Input/Output (I/O)

Untuk mengimplementasikan tujuan atau kriteria yang sebelumnya telah di jelaskan di atas, maka perangkat lunak I/O dipisahkan ke dalam empat layer, yaitu sebagai berikut.



1. Interrupt Handler

Interrupt Handler disini maksudnya interrupt harus dapat ditangani atau disembunyikan agar tidak terlihat rutin berikutnya.


Biasanya interrupt handler akan melakukan blok atau blocked pada device driver saat perintah input/output (I/O) diberikan dan menunggu interupsi.


Ketika interupsi terjadi, prosedur penanganan interupsi bekerja sehingga device driver keluar dari status blocked.



2. Device Drivers

Disini seluruh kode device dependent atau yang terikat atau terkait diletakkan di device driver.


Tiap device driver menangani satu tipe atau satu kelas device.


Tugas dari device driver adalah untuk menerima permintaan abstrak dari software device independent diatasnya, kemudian melakukan layanan sesuai permintaan atau pengeksekusian-nya.


Berikut ini adalah gambar struktur device, device controller dan device driver


gambar struktur device, device controler dan device driver

3. Device Independent Operating System Software

Perangkat Input/Output (I/O) terkait atau device-independent adalah sebuah software input/output(I/O) yang tidak bergantung atau terikat pada perangkat keras.


Fungsi dasar dari software device-independent adalah sebagai berikut.
  1. Membentuk fungsi input/output I/O yang berlaku untuk semua device
  2. Menyediakan interface uniform yang seragam untuk user level software.
  3. Memberikan penamaan pada device
  4. Memberikan proteksi atau pengamanan pada 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


4. User Space I/O Software atau lapisan pustaka

Sebagian besar software input/output (I/O) berada pada sistem operasi yang di hubungkan dengan user program.


System call merupakan salah satu Input/Output (I/O) yang biasanya dalam bentuk prosedur atau library procedures. Sebagai contoh count = write (fd,buffer,nbytes).


Input/Output (I/O) prosedur yang memiliki level lebih tinggi, seperti instruksi printf akan memformat output terlebih dahulu kemudian panggil perintah write.


Sedangkan yang tidak memiliki library procedure, seperti spooling directory dan daemon atau proses khusus pada proses mencetak dan transfer file akan mengimplementasikan pustaka pengaksesan Input/Output (I/O) atau menggunakan API (Application Programming Interface) bagi aplikasi untuk melakukan operasi Input/Output (I/O).


Sebagai contoh pustaka WIN32 sub system yang menyediakan API untuk operasi Input/Output (I/O) dan juga operasi grafis pada Sistem Operasi Windows.


Berikut ini adalah gambar lapisan sistem Input/Output (I/O) dan fungsi utama dari tiap layer


lapisan sistem Input Output pada layer