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 :
a. Konsep dalam desain software I/O, merupakan device
independence dan
tidak bergantung pada device yang digunakan.
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).
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
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.
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
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 :
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.
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 device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
Tiap device driver menangani satu tipe / satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
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:
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.
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,
terlebih dahulu kemudian panggil write). Yang tidak mempunyai library
procedure,
contohnya : spooling directory dan daemon (proses khusus)
pada proses mencetak, transfer file.
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 system yang menyediakan API
untuk operasi I/O dan juga operasi grafis pada SO Windows.

0 Comments