Management I/O
Katagori I/O Devices
I/O devices dapat dikatagorikan menjadi 3 bagian yaitu Human Readable , Machine Readable dan Comunication.Human Readable adalah I/O yang digunakan sebagai sarana untuk komunikasi dengan user. Contohnya printer , monitor , layar , keyboard. Machine Readable adalah I/O yang digunakan sebagai sarana untuk komunikasi dengan mesin. Contohnya sensor , controllers , tape drive. Comunication adalah I/O yang digunakan untuk berkomunikasi dengan remote device. Contohnya modem , digital line driver.
Perbedaan pada I/O Devices
I/O Devices memiliki perbedaan antara I/O satu dengan yang lainya , perbedaan tersebut antara lain terdapat pada
- Data Rate
- Application
- Complexity of control
- Unit of transfer
- Data Representation
- Error Condition
Performansi I/O Devices
- Programmed I/O
Adalah suatu kondisi ketika terdapat proses sedang berlangsung da nada permintaan dari I/O , maka I/O tersebut harus menumggu hingga proses selesai dieksekusi.
- Interrupt-driven I/O
Adalah suatu kondisi yang mengijinkan I/O untuk meinterupt proses yang sedang dieksekusi.
- Direct Memory Acces
Modul DMA mengontrol ertukaran data antara memori utama dan I/O device
Evolusi I/O
- Prsessor mengontrol secara langsung peripheral deivice
- Controller
Ditambahkan controller untuk mnangani instruksi I/O sehingga processor tidak perlu menangani secara langsung external device. Processor menggunakan programmed I/O
- Controller I/O modul with interrupts
Proses tidak perlu menunggu I/O yang sedang dieksekusi.
- DMA
Dengan menggunakan DMA data yang melalui I/O dipindahkan ke memori utama oleh DMA tanpa bantuan prosessor.
- I/O Processor
I/O modul memiliki memori local sendiri.
Direct Memory Acces
Dengan menggunakan DMA , Prosessor tidak perlu lagi menangani interaksi dengan external. Hal tersebut dikarenakan DMA sudah mampu meimitasi cara kerja prosessor untuk mengatur proses interaksi dengan external.Transfer blok data dengan DMA dilakukan secara langsung dari memori ke peripheral maupun sebaliknya.Ketika proses tersebut selesai , DMA akan memberikasn sinyal kepada prosessor.
Prinsip manajemen perangkat I/O
Terdapat dua sasaran perancangan I/O, yaitu :
a. Efisiensi.
Aspek penting karena operasi I/O sering menimbulkan bottleneck.
b. Generalitas (device independence).
Manajemenperangkat 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 :
a. Penamaan yang seragam (uniform naming).
Nama berkas atau perangkat adalah string atau integer, tidak bergantung pada perangkat sama sekali.
b. Penanganan kesalahan (error handling).
Umumnya penanganan kesalahan ditangani sedekat mungkin dengan perangkat keras.
c. 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.
d. Sharable vs dedicated.
Beberapaperangk dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat.
Contoh : printer.
Hirarki manajemenperangkat I/O
Hirarki manajemen perangkat I/O :
a. Interrupt handler.
- Interupsi harus disembunyikan agar tidak terlihat rutin berikutnya.
- Devicedriver 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
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
Buffering I/O
Buffering adalah melembutkan lonjakan-lonjakan kebutuhan pengaksesan I/O,sehingga meningkatkan efisiensi dan kinerja sistem operasi.
Terdapat beragam cara buffering, antar lain :
a. Single buffering.
Merupakan teknik paling sederhana. Ketika proses memberi perintah untuk perangkat I/O, sistem operasi menyediakan buffer memori utama sistem untuk operasi.
Untuk perangkat berorientasi blok.
Transfer masukan dibuat ke buffer sistem. Ketika transfer selesai, proses memindahkan blok ke ruang pemakai dan segera meminta blok lain.
Teknik ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan blok akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya di akhir pemrosesan maka blok yang dibaca tidak diperlukan.
Keunggulan :
- Pendekatan in umumnya meningkatkan kecepatan dibanding tanpa buffering.
- Proses pemakai dapat memproses blok data sementara blok berikutnya sedang dibaca
- Sistem operasi dapat menswap keluar proses karena operasi masukan berada di memori sistem bukan memori proses pemakai.
Kelemahan :
- Merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem ke proses pemakai.
- Logika swapping juga dipengaruhi. Jika operasi I/O melibatkan disk untuk swapping, maka membuat antrian penulisan ke disk yang sama yang digunakan untuk swap out proses. Untuk menswap proses dan melepas memori utama tidak dapat dimulai sampai operasi I/O selesai, dimana waktu swapping ke disk tidak bagus untuk dilaksanakan.
Buffering keluaran serupa buffering masukan. Ketika data transmisi, data lebih dulu dikopi dari ruang pemakai ke buffer sistem. Proses pengirim menjadi bebas untuk melanjutkan eksekusi berikutnya atau di swap ke disk jika perlu.
Untuk perangkat berorientasi aliran karakter.
Single buffering dapat diterapkan dengan dua mode, yaitu :
- Mode line at a time.
Cocok untuk terminal mode gulung (scroll terminal atau dumb terminal).
Masukan pemakai adalah satu baris per waktu dengan enter menandai akhir baris. Keluaran terminal juga serupa, yaitu satu baris per waktu.
Contoh mode ini adalah printer.
Buffer digunakan untuk menyimpan satu baris tunggal. Proses pemakai ditunda selama masukan, menunggu kedatangan satu baris seluruhnya.
Untuk keluaran, proses pemakai menempatkan satu baris keluaran pada
buffer dan melanjutkan pemrosesan. Proses tidak perlu suspend kecuali bila
baris kedua dikirim sebelum buffer dikosongkan.
- Mode byte at a time.
Operasi ini cocok untuk terminal mode form, dimana tiap ketikan adalah penting dan untuk peripheral lain seperti sensor dan pengendali.
b. Double buffering.
Peningkatan dapat dibuat dengan dua buffer sistem.Proses dapat ditransfer ke/dari satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Teknik ini disebut double buffering atau buffer swapping. Double buffering menjamin proses tidak menunggu operasi I/O. Peningkatan ini harus dibayar dengan peningkatan kompleksitas. Untuk berorientasi alirankarakter, double buffering mempunyai 2 mode alternatif, yaitu :
- Mode line at a time.
Proses pemakai tidak perlu ditunda untuk I/O kecuali proses secepatnya
mengosongkan buffer ganda.
- Mode byte at a time.
Buffer ganda tidak memberi keunggulan berarti atas buffer tunggal.
Double buffering mengikuti model producer-consumer.
c. Circular buffering.
Seharusnya melembutkan aliran data antara perangkat I/O dan proses. Jika kinerja proses tertentu menjadi fokus kita, maka kita ingin agar operasi I/O mengikuti proses. Double buffering tidak mencukupi jika proses melakukan operasi I/O yang berturutan dengan cepat. Masalah sering dapat dihindari denga menggunakan lebih dari dua buffer.
Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri diacu sebagai circulat buffer. Tiap buffer individu adalah satu unit di circular buffer.
Recent Comments