a. Konsep dalam desain software I/O, merupakan device independence dan tidak bergantung pada device yang digunakan.
b. 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).
c. Penanganan kesalahan / Error Handling. Error harus ditangani sedekat mungkin dengan hardware. Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan
d. 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.
e. 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 :
a. 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.
b. 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 inde-pendent diatasnya dan melakukan layanan sesuai permintaan / men-geksekusinya.
c. 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.
d. 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). Contoh: count = write (fd,buffer,nbytes). I/O prosedur dengan level lebih tinggi, misalnya: instruksi printf (memformat output terlebih dahulu kemudian panggil write). Yang tidak mempunyai library procedure, contohnya : spooling directory dan daemon (proses khusus) pada proses mencetak, transfer file. Lapisan ini mengimplementasikan pustaka pengaksesan I/O atau API (Application Programming Interface) bagi aplikasi untuk melakukan operasi I/O Misal: pustaka WIN32 sub sys-tem yang menyediakan API untuk operasi I/O dan juga operasi grafis pada SO Windows.
EmoticonEmoticon