A. PENGERTIAN MANAJEMEN I/O
Pengelolaan perangkat I/O merupakan aspek perancangan
sistem operasi yang terluas karena beragamnya peralatan dan begitu banyaknya
aplikasi dari peralatan-peralatan itu.
Sistem komputer memiliki tiga
komponen utama, yaitu : CPU, memori (primer dan sekunder), dan peralatan
masukan/keluaran (I/O devices) seperti printer, monitor, keyboard,
mouse, dan modem. Modul I/O merupakan peralatan antarmuka (interface)
bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat
peripheral. Modul I/O tidak hanya sekedar modul penghubung, tetapi sebuah
piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral
dan bus komputer.B. FUNGSI MANAJEMEN I/O
Ada beberapa alasan mengapa piranti
– piranti tidak langsung dihubungkan dengan bus sistem komputer, yaitu :
- Bervariasinya metode operasi piranti peripheral, sehingga tidak praktis apabila sistem komputer herus menangani berbagai macam sisem operasi piranti peripheral tersebut.
- Kecepatan transfer data piranti peripheral umumnya lebih lambat dari pada laju transfer data pada CPU maupun memori.
- Format data dan panjang data pada piranti peripheral seringkali berbeda dengan CPU, sehingga perlu modul untuk menselaraskannya.
- Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
- Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu.
- Mengirim perintah ke perangkat I/O agar menyediakan layanan.
- Menangani interupsi peralatan I/O.
- Menangani kesalahan pada peralatan I/O.
- Memberi interface ke pemakai.
C. HIRARKI PENGELOLAAN PERANGKAT I/O
1.
Interrupt Handler
Interupsi adalah suatu
peristiwa yang menyebabkan eksekusi satu program ditundan dan program lain yang
dieksekusi. Interrupt adalah sinyal dari peralatan luar dau permintaan dari
program untuk melaksanakan suatu tugas khusus. Jika interrupt terjadi, maka
program dihentikan dahulu untuk menjalankan rutin interrupt. Ketika program
yang sedang berjalan tadi dihentikan, prosesor menyimpan nilai register yang
berisi alamat program ke stack, dan mulei menjalankan rutin interrupt.
Secara garis besar, kita mengenal dua macam interupsi terhadap prosesor, yatu interupsi secara langsung dan interupsi melalui polling. Sekalipun caranya berbeda, akibat dari kedua cara interupsi tersebut sama.
Secara garis besar, kita mengenal dua macam interupsi terhadap prosesor, yatu interupsi secara langsung dan interupsi melalui polling. Sekalipun caranya berbeda, akibat dari kedua cara interupsi tersebut sama.
- Cara interupsi secara langsung: penghentian prosesor untuk suatu proses dapat berasal dari berbagai sumber daya di dalam sistem komputer, karena sumber daya tertentu pada sistem komputer tersebut menginterupsi kerja prosesor. Karena cara terjadinya interupsi adalah secara langsung dari sumber daya, maka kita menamakan cara interupsi ini sebagai interupsi langsung. Banyak interupsi terhadap prosesor di dalam sistem komputer termasuk ke dalam jenis interupsi langsung.
- Cara interupsi polling: selain komputer menunggu sampai diinterupsi oleh sumber daya komputer, kita mengenal pula cara interupsi sebaliknya. Pada cara interupsi ini, prakarsa penghentian kerja prosesor berasal dari prosesor atau melalui prosesor tersebut. Dalam hal ini, secara berkala prosesor akan bertanya (poll) kepada sejumlah sumber daya. Apakah ada di antara mereka yang akan memeerlukan prosesor? Jika ada, maka prosesor akan menghentikan kegiatan semulanya, serta mengalihkan kerjanya ke sumber daya tersebut. Perbedaan antara interupsi langsung dengan interupsi polling terletak pada cara mengemukakan interupsi tersebut.
Jenis-Jenis Interupsi
Dilihat dari cara kerja
prosesor, tidak semua interupsi itu sama pentingnya bagi proses yang sedang
dilaksanakan oleh kerja prosesor tersebut. Kalau sampai interupsi yang kurang
penting ikut menginterupsi kerja prosesor, maka pelaksanaan proses itu akan
menjadi lama. Karena itu biasanya SO membagi interupsi ke dalam dua jenis,
yaitu:
a. Software, yaitu
interrupt yang disebabkan oleh software, sering disebut dengan system call.
b. Hardware, terjadi
karena adanya akse pada perangkat keras, seperti penekanan tombol keyboard atau
menggerakkan mouse.
Selain untuk mengendalikan pengalihan I/O, beberapa kegunaan interupsi juga antara lain:
- Pemulihan kesalahan
- Komputer menggunakan bermacam-macam teknik untuk memastikan bahwa semua komponen perangkat keras beroperasi semestinya. Jika kesalahan terjadi, perangkat keras kontrol mendeteksi kesalahan dan memberi tahu CPU dengan mengajukan interupsi.
- Debugging
Penggunaan penting lain dari interupsi adalah sebagai penolong dalam debugging program. Debugger menggunakan interupsi untuk menyediakan dua fasilitas penting, yaitu: - Trace
- Break point.
- Komunikasi Antarprogram.
2.
Device Driver
Setiap device driver
menangani satu tipe peralatan. Device driver bertugas menerima permintaan
abstrak perangkat lunak device independent di atasnya dan melakukan layanan
sesuai permintaan itu.
Mekanisme kerja device
driver:
- Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah konkret.
- Begitu telah dapat ditentukan perintah-perintah yang harus diberikan ke pengendali, device driver mulai menulis ke register-register pengendali peralatan.
- Setelah operasi selesai dilakukan peralatan, device driver memeriksa kesalahan-kesalahan yang terjadi.
- Jika semua berjalan baik, device driver melewatkan data ke perangkat lunak device independent.
- Device melaporkan informasi status sebagai pelaporan kesalahan ke pemanggil.
3.
Perangkat Lunak Sistem Operasi Device Independent
Fungsi utama perangkat
lunak tingkat ini adalah membentuk fungsi-fungsi I/O yang berlaku untuk semua
peralatan dan memberi interface seragam ke perangkat lunak tingkat pemakai.
Fungsi-fungsi yang
biasa dilakukan antara lain:
·
Interface seragam
untuk seluruh driver-driver.
·
Penamaan
peralatan.
·
Proteksi
peralatan.
·
Memberi ukuran
blok peralatan agar bersifat device independent.
·
Melakukan
buffering.
·
Alokasi penyimpanan
pada block devices.
·
Alokasi
pelepasan dedicated devices.
·
Pelaporan
kesalahan
4.
Buffering I/O
Buffering merupakan
teknik untuk melembutkan lonjakan-lonjakan kebutuhan pengaksesan I/O secara
langsung. Buffering adalah cara untuk meningkatkan efisiensi sistem operasi dan
kinerja proses-proses.
Terdapat beragam cara
buffering, antara lain:
a. Single Buffering
Teknik ini merupakan
buffering paling sederhana. Ketika proses pemakai memberikan perintah I/O, sistem
operasi menyediakan buffer bagian memori utama sistem untuk operasi. Untuk
peralatan berorientasi blok, transfer masukan dibuat ke buffer sistem.
Ketika transfer
selesai, proses memeindahkan blok ke ruang pemakai dan segera meminta blok
lain. Teknik ini disebut reading ahead atau anticipated input. Teknik ini
dilakukan dengan harapan bahwa blok tersebut akan segera diperlukan. Untuk
banyak tipe komputasi, asumsi ini berlaku. Hanya akhir barisan pemrosesan maka
blok yang dibaca tidak diperlukan. Pendekatan ini umumnya meningkatkan
kecepatan dibanding tanpa buffering.
b. Double Buffering
Peningkatan atas single
buffering dapat dibuat dengan mempunyai dua buffer sistem untuk operasi. Proses
dapat transfer ke (atau dari) satu buffer sementara sistem operasi mengosongkan
(atau mengisi) buffer lain. Double buffering menjamin proses tidak akan menunggu
operasi I/O. Peningkatan atas single buffering diperoleh, namun harus dibayar
dengan kompleksitas yang meningkat.
D. TEKNIK MANAJEMEN I/O
1.
Spooling
Spooling adalah cara
khusus berurusan dengan perangkat masukan/keluaran dedicated (dedicated i/o
devices) pada sistem multiprogramming. Melakukan penjadwalan pemakaian
I/O sistem supaya lebih efisien (antrian dsb.). Menyediakan driver untuk dapat
melakukan operasi rinci untuk perangkat keras I/O tertentu. Manajemen perangkat
masukan/keluaran merupakan aspek perancangan sistem operasi terluas dan
kompleks karena sangat beragamnya perangkat dan aplikasinya.
2.
Interrupt – Driven I/O
Teknik interrupt – driven I/O
memungkinkan proses tidak membuang – buang waktu. Prosesnya adalah CPU mengeluarkan
perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka
CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O
telah selesai menjalankan instruksi yang diberikan padanya akan melakukan
interupsi pada CPU bahwa tugasnya telah selesai. Dalam teknik ini kendali
perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari
memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan
dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa
perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU. Cara kerja teknik
interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read.
Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan
meletakkan paket data ke register data modul I/O, selanjutnya modul
mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul
menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data
pada bus data dan modul siap menerima perintah selanjutnya. Pengolahan
interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah
sebagai berikut :
- Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
- CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi.
- CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal acknowledgment ke perangkat I/O untuk menghentikan interupsinya. CPU mempersiapkan pengontrolan transfer ke routine interupsi. Hal yang dilakukan adalah menyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi. Informasi yang diperlukan berupa : (a). Status prosesor, berisi register yang dipanggil PSW (program status word). (b). Lokasi intruksi berikutnya yang akan dieksekusi. Informasi tersebut kemudian disimpan dalam stack pengontrol sistem.
- Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi.
- Selanjutnya CPU memproses interupsi sempai selesai.
- Apabila pengolahan interupsi selasai, CPU akan memanggil kembali informasi yang telah disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi.
3.
Direct Memory Access (DMA)
Teknik yang dijelaskan sebelumnya yaitu I/O terprogram dan
Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang terjadi pada
modul I/O masih melibatkan CPU secara langsung. Hal ini berimplikasi pada :
· Kelajuan transfer I/O yang tergantung pada kecepatan operasi
CPU.
· Kerja CPU terganggu karena adanya interupsi secara
langsung.
Bertolak dari kelemahan di atas, apalagi untuk menangani
transfer data bervolume besar dikembangkan teknik yang lebih baik,
dikenal dengan Direct Memory Access (DMA).
Prinsip kerja DMA adalah CPU akan mendelegasikan kerja I/O
kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi
lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan
proses lainnya tanpa banyak terganggu dengan interupsi.
Dalam melaksanakan transfer data secara mandiri, DMA
memerlukan pengambilalihan kontrol bus dari CPU. Untuk itu DMA akan menggunakan
bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan
sementara penggunaan bus. Teknik terakhir lebih umum digunakan, sering disebut cycle-stealing,
karena modul DMA mengambil alih siklus bus.
Penghentian sementara penggunaan bus bukanlah bentuk
interupsi, melainkan hanyalah penghentian proses sesaat yang berimplikasi hanya
pada kelambatan eksekusi CPU saja.


0 comments:
Post a Comment