BAB
VI
INPUT
/ OUTPUT
A. Prinsip Perangkat Keras I/O
Batasan : bagaimana hardware tersebut di program
Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya
:
ü mengirimkan perintah ke perangkat I/O
agar menyediakan layanan
ü menangani interupsi perangkat I/O
ü menangani
kesalahan pada perangkat I/O
ü menyediakan interface ke pemakai
1.
I/O Device
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
2.
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 head
Pada 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, seperti terlihat pada gambar di bawah ini.
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.
3.
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
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)
Yang
tidak mempunyai library procedure, contohnya : spooling directory dan daemon
(proses khusus) pada proses mencetak, transfer file, USENET
Gambar. Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer) |
5.
Disk
Tiga kelebihan disk dari main memory untuk penyimpanan :
ü Kapasitas penyimpanan yang tersedia
lebih besar
ü Harga
per-bit-nya lebih rendah
ü Informasi tidak hilang meskipun power
off
a.
Perangkat Keras Disk
Disk diorganisasikan
menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk
secara vertikal. Track terbagi menjadi sektor-sektor.
Gambar. Struktur Disk |
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
Gambar. Mekanisme Disk
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
|
b.
Algoritma Penjadwalan Akses Lintas
Disk
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
a.
Algoritma Pungut / Pick Up Algorithm
b.
Algoritma Waktu Cari Terpendek
Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm
c.
Algoritma Lift Singkat / LOOK
Algorithm
d.
Agoritma Lift Singkat Searah / C-LOOK
Algorithm
b.
Algoritma Lift Lengkap / SCAN
Algorithm
c.
Algoritma Lift Lengkap Searah /
C-Scan Algorithm
c.
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.
d.
RAM Disk
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 penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya blok-blok
disimpan di disk berputar yang memerlukan mekanisme fisik.
Idenya adalah meniru
driver dengan mengalokasikan terlebih dahulu satu bagian memori utama untuk
menyimpan blok-blok data.
Keuntungannya
: berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu
tunda seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau
data yang sering diakses.
6. Terminal
Semua
komputer memerlukan terminal untuk komunikasi antar peralatan.
a.
Terminal
Hardware
Terminal
hardware terbagi atas 2 kategori dasar, yaitu :
1.
Terminal
interface melalui RS-232
RS-232
menghubungkan keyboard, monitor menggunakan serial interface, 1 bit dalam 1
waktu, dan menggunakan 25 pin konektor, dimana 1 pin untuk transmisi data, 1
pin untuk receive data dan 1 pin untuk ground, 22 pin yang lain digunakan untuk
fungsi control atau ada pin yang tidak digunakan.
RS-232
dapat dikategorikan lagi menjadi :
a. hardcopy / printer, dimana tipe
karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di
kertas / printer.
b. Dumb CRT terminal / glass tty
(teletype = terminal)
c. Intelligent CRT terminals, terdiri
dari CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM.
d. Blit, adalah terminal dengan powerful
microprocessor
2. terminal memory-mapped
adalah
interface melalui video RAM / video controller yang digunakan untuk monitor.
b.
Terminal
Software
Terminal
Software terdiri dari :
1. Input Software
2. Output Software
Studi kasus
1. manajemen I/O
pada MS DOS
MS DOS mendukung beragam
perangkat serial, yang diidentifikasikan dengan nama file khusus, hanya tidak
disimpan di suatu direktori tertentu, misalnya :
- con :
perangkat konsol
- com1
: perangkat communication port 1
- com2
: perangkat communication port 2
- pm :
perangkat printer
- lpt1
: perangkat line printer 1
- lpt2
: perangkat line printer 2
- aux :
perangkat auxiliary
contoh :
copy a.txt con : tidak mengkopi file
a.txt menjadi file con, tetapi menampilkan ke konsol
copy a.txt prn : tidak mengkopi file a.txt menjadi file prn, tetapi
mengalirkan isi file a.txt ke printer sehingga printer akan mencetaknya
MS DOS memungkinkan pemakai memasang device driver sendiri setelah sistem di
boot dengan penambahan pernyataan di file config.sys, misalnya ansi.sys,
display.sys, mouse.sys, printer.sys, dll.
UNIX mengharuskan device driver dikompilasi ke kernel.
0 komentar:
Posting Komentar