INPUT /
OUTPUT
1.
Prinsip
Perangkat Keras Input/Output
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.1.
Input/Output
Device
Perangkat I/O dapat dibedakan berdasarkan :
1.
Sifat
aliran data
Berdasarkan aliran data dibedakan menjadi :
a.
Perangkat berorientasi blok (block-oriented devices)
Contohnya
: disk, tape, CD ROM, Optical disk
b.
Perangkat berorientasi karakter (character-oriented devices)
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,
Memory Mapped Screen, Sensor
2.
Sasaran
komunikasi
Berdasarkan sasaran komunikasi dibedakan
menjadi:
a.
Perangkat yang terbaca oleh manusia (human readable device)
Contohnya : VDT (Video
Display Terminal) terdiri dari monitor, keyboard (+mouse)
b.
Perangkat yang terbaca oleh mesin (machine readable device)
Contohnya : disk, tape, sensor, controller
c.
Untuk komunikasi
Contohnya : modem
1.2.
Device
Controller
Unit Input/Output berupa :
a.
Komponen
elektronik
Device controller / adapter adalah untuk
mengaktif-kan perangkat eksternal dan memberitahukan yang perlu dilakukan oleh
perangkat / driver.
Contoh : unit tape megnetik diinstruksikan
kembali ke posisi awal, bergerak ke record berikutnya.
b. Komponen mekanik
Contohnya
: head, motor stepper, printer
1.3.
Direct Memory Access (DMA)
DMA
mentransfer seluruh data yang diminta ke / dari memori secara langsung tanpa
melewati pemroses.
Keuntungan
DMA :
-
Memaksimalkan
/ meningkatkan kinerja Input/Output
-
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
Input/Output dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok),
memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk,
bukan pada memori.
2.
Prinsip Software Input/Output
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 Input/Output
a.
Konsep dalam desain software Input/Output
b.
Penamaan yang seragam / Uniform
Naming
Contoh
: seluruh disks dapat dibuat dengan
hirarki sistem file (menggunakan NPS)
c.
Penanganan kesalahan / Error
Handling
Contoh :
pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri
pesan
d.
Synchronous (blocking) vs
Asynchronous (Interrupt Driver) transfer
e.
Sharable vs Dedicated Device
Contoh :
disk untuk sharable dan printer untuk dedicated
Tujuan diatas dapat dicapai dengan memisahkan
software Input/Output menjadi 4 layers, yaitu :
1.
Interrupt Handler
Interrupt
harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok
saat perintah Input/Ouput 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.
3.
Device-Independent Input/Output
Software
Input/Output
device-independent adalah : software Input/Output yang tak bergantung pada
perangkat keras.
Fungsi dari software Input/Output
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 Input/Output Software
Sebagian
besar software Input/Output berada di dalam sistem operasi yang di link dengan
user program. System call termasuk Input/Output, biasanya dalam bentuk prosedur
(library procedures). Contoh : count = write(fd,buffer,nbytes)
Input/Output
prosedur dengan level lebih tinggi. Contoh : printf (memformat output dahulu
kemudian panggil write)
Yang tidak
mempunyai library procedure, contohnya : spooling directory dan daemon (proses
khusus) pada proses mencetak, transfer file, USENET.
3.
Disk
3.1.
Perangkat Keras Disk
Disk
diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head
yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor.
3 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
3.2.
Algoritma Penjadwalan Akses
Lintas Disk
Pada sistem
multiprogramming, permintaan read/write lebih banyak dibandingkan dengan yang
dilayani sehingga memerlukan penjadwalan disk.
Terdapat dua
tipe penjadwalan disk, yaitu :
1.
penjadwalan
untuk optimasi seek
2.
penjadwalan
untuk optimasi rotasi
Beberapa
metode yang digunakan (dalam kasus ini menggunakan contoh : 40 silinder dengan
urutan 11,1,36,1,34,9,12) :
a.
Algoritma Pertama Tiba Pertama Dilayani
(PTPD) / First Come, First Served (FCFS) Algorithm
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
e.
Algoritma Lift Singkat Searah /
C-LOOK Algorithm
f.
Algoritma Lift Lengkap / SCAN
Algorithm
g.
Algoritma Lift Lengkap Searah /
C-Scan Algorithm
3.3.
Input/Output Error Handling /
Penanganan Kesalahan Input/Output
Error yang
umum terjadi adalah :
1.
Error
pemrograman
Misalnya
request sektor yang tidak ada, ditangani dengan membetulkan program untuk
komersial software, batalkan operasi dan berharap tidak akan terjadi lagi.
2.
Error
checksum transient
Misalnya
karena debu antara head dengan permuka-an disk, ditangani dengan melakukan
operasi berulang-ulang dan menandai sector yang rusak.
3.
Error
checksum permanent
Misalnya
karena kerusakan disk, ditangani dengan membuat daftar blok-blok buruk agar
data tidak ditulis di blok-blok buruk tersebut.
4.
Error seek
Misalnya
lengan harusnya ke silinder 6 ternyata ke 7, ditangani dengan mengkalibrasi
ulang disk supaya berfungsi kembali.
5.
Error
controller
Misalnya
controller menolak perintah akses, ditangani dengan menukar pengendali yang
salah dengan pengendali yang baru atau di-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.
3.4.
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.
Device blok
adalah media penyimpanan dengan 2 perintah : R(read) dan W(write). Normalnya
blok-blok disimpan de 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, tidak ada waktu tunda seek dan waktu tunda rotasi. Sangat
cocok untuk menyimpan program atau data yang sering diakses.
4.
Terminal
Semua
komputer memerlukan terminal untuk komunikasi antar peralatan.
4.1.
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.
4.2.
Terminal Software
Terminal Software terdiri dari :
1.
Input
Software
2.
Output
Software