Sistem Komputer - Evolusi
Evolusi fungsi perangkat I/O
Sistem komputer mengalami peningkatan kompleksitas dan kecanggihan
komponen-komponennya, yang sangat tampak pada fungsi-fungsi I/O sebagai
berikut :
- Pemroses mengendalikan perangkat I/O secara langsung.
Masih digunakan sampai saat ini untuk perangkat sederhana yang dikendalikan
mikroprosessor sehingga menjadi perangkat berintelijen (inteligent device).
- Pemroses dilengkapi pengendali I/O (I/O controller).
Pemroses menggunakan I/O terpogram tanpa interupsi, sehingga tak perlu
memperhatikan rincian-rincian spesifik antarmuka perangkat.
- Perangkat dilengkapi fasilitas interupsi.
Pemroses tidak perlu menghabiskan waktu menunggu selesainya operasi I/O,
sehingga meningkatkan efisiensi pemroses.
- I/O controller mengendalikan memori secara langsung lewat DMA.
Pengendali dapat memindahkan blok data ke/dari memori tanpa melibatkan
pemroses kecuali diawal dan akhir transfer.
- Pengendali I/O menjadi pemroses terpisah.
Pemroses pusat mengendalikan.memerintahkan pemroses khusus I/O untuk
mengeksekusi program I/O di memori utama. Pemroses I/O mengambil dan
mengeksekusi intruksi-intruksi ini tanpa intervensi pemroses pusat.
Dimungkinkan pemroses pusat menspesifikasikan barisan aktivitas I/O dan hanya
diinterupsi ketika seluruh barisan intruksi diselesaikan.
- Pengendali I/O mempunyai memori lokal sendiri.
Perangkat I/O dapat dikendalikan dengan keterlibatan pemroses pusat yang
minimum.
Arsitektur ini untuk pengendalian komunikasi dengan terminal-terminal
interaktif. Pemroses I/O mengambil alih kebanyakan tugas yang melibatkan
pengendalian terminal.
Evolusi bertujuan meminimalkan keterlibatan pemroses pusat, sehingga
pemroses tidak disibukkan dengan tugas I/O dan dapat meningkatkan kinerja
sistem.
Prinsip manajemen perangkat I/O
Terdapat dua sasaran perancangan I/O, yaitu :
- Efisiensi.
Aspek penting karena operasi I/O sering menimbulkan bottleneck.
- Generalitas (device independence).
Manajemen perangkat I/O selain berkaitan dengan simplisitas dan bebas
kesalahan, juga menangani perangkat secara seragam baik dari cara proses
memandang maupun cara sistem operasi mengelola perangkat dan operasi I/O.
Software diorganisasikan berlapis. Lapisan bawah berurusan menyembunyikan
kerumitan perangkat keras untuk lapisan-lapisan lebih atas. Lapisan lebih atas
berurusan memberi antar muka yang bagus, bersih, nyaman dan seragam ke
pemakai.
Masalah-masalah manajemen I/O adalah :
- Penamaan yang seragam (uniform naming).
Nama berkas atau perangkat adalah string atau integer, tidak bergantung pada
perangkat sama sekali.
- Penanganan kesalahan (error handling).
Umumnya penanganan kesalahan ditangani sedekat mungkin dengan perangkat
keras.
- Transfer sinkron vs asinkron.
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, program
kemudian ditunda secara otomatis sampai data tersedia di buffer.
- Sharable vs dedicated.
Beberapa perangk dapat dipakai bersama seperti disk, tapi ada juga perangkat
yang hanya satu pemakai yang dibolehkan memakai pada satu saat.
Contoh : printer.
Hirarki manajemen perangkat I/O :
a. Interrupt handler.
Interupsi harus disembunyikan agar tidak terlihat rutin berikutnya.
Device driver di blocked 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.
Semua kode bergantung perangkat ditempatkan di device driver. Tiap device
driver menangani satu tipe (kelas) perangkat dan bertugas menerima permintaan
abstrak perangkat lunak device independent diatasnya dan melakukan layanan
permintaan.
Mekanisme kerja device driver :
- Menerjemahkan perintah abstrak menjadi perintah konkret.
- Setelah ditentukan perintah yang harus diberikan ke pengendali, device driver
mulai menulis ke register-register pengendali perangkat.
- Setelah operasi selesai dilakukan perangkat, device driver memeriksa status
kesalahan yang terjadi.
- Jika berjalan baik, device driver melewatkan data ke perangkat lunak device
independent.
- Kemudian device driver melaporkan status operasinya ke pemanggil.
c. Perangkat lunak device independent.
Bertujuan membentuk fungsi-fungsi I/O yang berlaku untuk semua perangkat dan
memberi antarmuka seragam ke perangkat lunak tingkat pemakai.
Fungsi-fungsi lain yang dilakukan :
- Sebagai interface seragam untuk seluruh device driver.
- Penamaan perangkat.
- Proteksi perangkat.
- Memberi ukuran blok perangkat agar bersifat device independent.
- Melakukan buffering.
- Alokasi penyimpanan pada block devices.
- Alokasi dan pelepasan dedicated devices.
- Pelaporan kesalahan.
d. Perangkat lunak level pemakai.
Kebanyakan perangkat lunak I/O terdapat di sistem operasi. Satu bagian kecil
berisi pustaka-pustaka yang dikaitkan pada program pemakai dan berjalan diluar
kernel. System calls I/O umumnya dibuat sebagai prosedur-prosedur pustaka.
Kumpulan prosedur pustaka I/O merupakan bagian sistem I/O. Tidak semua
perangkat lunak I/O level pemakai berupa prosedur-prosedur pustaka. Kategori
penting adalah sistem spooling. Spooling adalah cara khusus berurusan dengan
perangkat I/O yang harus didedikasikan pada sistem multiprogramming.
Sistem Komputer - Evolusi, langsung aja dilanjut klik sistem komputer untuk melanjutkan materi kita.