Perangkat I/O dapat dibedakan berdasarkan :
1.
Sifat aliran data
Berdasarkan aliran data
dibedakan menjadi :
a. 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
b. 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 :
- clock
yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran
karakter. Clock
menyebabkan interupsi pada interval-interval yang didefinisikan.
- Memory mapped screen,
- sensor
2.
Sasaran komunikasi
Berdasarkan sasaran komunikasi dibedakan menjadi :
a.
Perangkat yang terbaca oleh manusia (human readable device)
Perangkat yang cocok untuk komunikasi dengan
manusia.
Contohnya
: VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse)
b. Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang cocok untuk komunikasi
dengan perangkat elektronik.
Contohnya : disk, tape, sensor,
controller, aktuator
c. Untuk komunikasi
Perangkat
yang cocok untuk komunikasi dengan perangkat jarak jauh.
Contohnya
: modem
Device Controller
Unit I/O berupa :
a.
Komponen elektronik
Device controller /
adapter adalah untuk mengaktifkan perangkat eksternal dan memberitahukan yang
perlu dilakukan oleh perangkat / driver.
Contoh : unit tape megnetik diinstruksikan untuk
kembali ke posisi awal, bergerak ke record berikutnya dan sebagainya.
b.
Komponen mekanik
Contohnya : head, motor
stepper, printer
Direct Memory Access (DMA)
DMA berfungsi membebaskan
pemroses menunggui transfer data yang dilakukan I/O device. Saat pemroses ingin
membaca atau menulis data, pemroses memerintahkan DMA Controller dengan
mengirimkan informasi berikut :
-
perintah
penulisan / pembacaan
-
alamat
I/O device
-
awal
lokasi memori yang ditulis / dibaca
-
jumlah
word / byte yang ditulis / dibaca
setelah mengirimkan
informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja lain.
Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang
diminta ke / dari memori secara langsung tanpa melewati pemroses. Ketika
transfer data selesai, DMA mengirimkan sinyal interupsi ke pemroses. Pemroses
hanya dilibatkan pada awal dan akhir transfer data.
Operasi transfer antara
perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas dari pemroses
dan hanya melakukan interupsi bila operasi telah selesai.
Keuntungan DMA :
-
peningkatan kinerja prosesor atau I/O
- meminimasikan over headPada waktu data di tranfer dari controller ke memori, sektor berikut akan lewat dibawah head dan bits sampai ke controller. Controller sederhana tidak dapat melakukan I/O dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok), memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk bukan pada memori.
Prinsip Software I/O
Ide Dasar :
mengorganisasikan software dalam beberapa layer dimana level bawah
menyembunyikan akses / kepelikan hardware untuk level diatasnya. Level atas
membuat interface yang baik ke user.
Tujuan Software I/O
a. Konsep dalam desain software I/O
Device independence /
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) vs Asynchronous
(Interrupt Driver) transfer
Kebanyakan I/O adalah asinkron. Pemroses mulai 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 kemudian ditunda secara otomatis sampai
data tersedia di buffer. Terserah sistem operasi untuk menangani operasi yang
sesungguhnya interrupt driver.
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
Tujuan
diatas dapat dicapai dengan memisahkan software I/O menjadi 4 layers,
yaitu :
1.
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.
2.
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.
Yang tidak mempunyai library procedure, contohnya :
spooling directory dan daemon (proses khusus) pada proses mencetak, transfer
file, USENET
3.
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 :
- membentuk fungsi I/O yang berlaku
untuk semua device
- menyediakan interface uniform /
seragam ke user level software
Fungsi dari software I/O
device-independent yang biasa dilakukan :
a. Interface seragam untuk seluruh
device-driver
b. Penamaan device
c. Proteksi device
d. Memberi ukuran blok device agar
bersifat device-independent
e. Melakukan Buffering
f. Alokasi penyimpanan pada blok devices
g. Alokasi dan pelepasan dedicated
devices
h. Pelaporan kesalahan
4.
User Space I/OSoftware
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.
Contoh : printf
(memformat output terlebih dahulu kemudian panggil write)
Disk
Tiga kelebihan disk dari
main memory untuk penyimpanan :
1. kapasitas penyimpanan yang tersedia
lebih besar
2.
harga per-bit-nya lebih rendah
3. informasi tidak hilang meskipun power
off
Perangkat Keras Disk
Disk diorganisasikan menjadi silinder-silinder dengan
tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor.
Tiga faktor yang mempengaruhi waktu read/write block disk :
1. seek time (waktu menggerakkan lengan
ke silinder)
2. rotational delay (waktu sector
berputar ke head)
3. transfer time
yang sangat dominan adalah seek time,
jadi performance dapat ditingkatkan dengan mengurangi waktu rata-rata seek
Proses seek pada disk
driver : seek ke lebih dari satu disk secara bersamaan, read/write bersama
dengan seek, read/write dalam waktu yang bersamaan dari dua drive
Pada sistem
multiprogramming, banyak proses yang melakukan permintaan read/write record
disk. Proses membuat permintaan lebih cepat dibandingkan yang dapat dilayani
disk, membentuk antrian permintaan layanan disk. Diperlukan penjadwalan disk
agar memperoleh kerja optimal.
Terdapat
dua tipe penjadwalan disk, yaitu :
1. Penjadwalan untuk optimasi seek,
karena waktu seek lebih tinggi satu orde dibandingkan waktu rotasi, maka
kebanyakan algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan atau
antrian permintaan layanan disk.
2. Penjadwalan untuk optimasi rotasi,
penjadwalan disk melibatkan pemeriksaan terhadap permintaan yang belum dilayani
untuk menentukan cara paling efisien melayani permintaan-perminataan, dan
memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali
sehingga permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun beberapa metode
yang digunakan :
a.
Algoritma Pertama Tiba Pertama Dilayani
(PTPD) / First Come, First Served (FCFS) Algorithm
Disk drive melayani satu
permintaan pada sauatu saat dan melayaninya sesuai urutan kedatangannya.
Permintaan yang duluan tiba, dilayani duluan.
Contoh : 40 silinder
dengan urutan 11, 1, 36, 1, 16, 34, 9, 12
b.
Algoritma Pungut / Pick Up Algorithm
c.
Algoritma Waktu Cari Terpendek
Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm
d. Algoritma Lift Singkat / LOOK Algorithm
1.1.
I/O Error Handling / Penanganan
Kesalahan I/O
Error yang umum terjadi
adalah :
1. Error pemrograman
Kesalahan disebabkan
pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya :
pembetulan program untuk komersial software, batalkan operasi dan berharap
tidak akan terjadi lagi
2. Error checksum transient
Kesalahan disebabkan
adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan
operasi berulang-ulang dan menandai sector yang rusak.
3. Error checksum permanent
Kesalahan disebabkan
kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak
ditulisi di blok-blok buruk.
4. Error seek
Kesalahan ini
ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya
lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
5. Error controller
Kesalahan ini
ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru.
Misalnya controller menolak perintah akses. Penanganannya : reset.
6. Track at time caching
Kontroller mempunyai memori untuk menyimpan informasi
track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan
tanpa pergerakan mekanik.sumber:
nryulia.staff.gunadarma.ac.id/Downloads/files/3906/BAB6.doc