Manajemen I/O
Kategori Device I/O Dapat dibaca manusia Digunakan untuk komunikasi dengan user Printer Terminal display video Display Keyboard Mouse
Kategori Device I/O Dapat dibaca mesin Digunakan untuk komunikasi dengan peralatan elektronik Disk dan tape drives Sensor Controller Actuator
Kategori Device I/O Komunikasi Digunakan untuk komunikasi dengan peralatan remote Digital line drivers Modem
Perbedaan didalam device I/O Data rate Merupakan kecepatan transfer data dalam komunikasi data digital. Memungkinkan terjadinya perbedaan besarnya tingkatan pengiriman data
Perbedaan didalam device I/O Aplikasi Disk yang digunakan untuk menyimpan file-file membutuhkan perangkat lunak manajemen file Disk digunakan untuk menyimpan page virtual memori membutuhkan perangkat keras khusus dan perangkat lunak untuk mendukungnya Terminal yang digunakan oleh sistem administrator memiliki sebuah prioritas tertinggi.
Perbedaan didalam device I/O Kompleksitas dari kontrol Unit transfer Data yang ditransferkan sebagai arus byte untuk sebuah terminal atau didalam blok yang lebih besar Representasi data Skema encoding data yang digunakan peralatan berbeda Kondisi error Cara Error conditions Peralatan / device menanggapi error berbeda
Perbedaan didalam device I/O Programmed I/O Proses dalam kondisi busy-waiting untuk kesempurnaan operasi Interrupt-driven I/O Permasalahan perintah I/O Prosesor secara berkelanjutan mengeksekusi instruksi Modul I/O mengirimkan sebuah interupsi setelah menyelesaikan pekerjaannya.
Teknik-teknik melakukan I/O Direct Memory Access (DMA) Modul DMA mengontrol pertukaran data antara memori utama dan device I/O Prosesor di-interupsi hanya setelah seluruh blok data ditransferkan
Evolusi fungsi I/O Prosesor secara lansung menggontrol sebuah peripheral device Kontroler atau penambahan modul I/O Prosesor menggunakan programan I/O tanpa interupsi Prosesor tidak membutuhkan rincian pengendalian device eksternal
Evolusi fungsi I/O Kontroler atau modul I/O dengan interupsi Prosesor tidak mengirimkan waktu tunggu untuk sebuah operasi I/O yang dilakukan Direct Memory Access Blok-blok data dipindahkan kedalam memori tanpa keterlibatan prosesor Prosesor hanya dilibatkan diawal dan diakhir saja
Evolusi fungsi I/O Modul I/O terpisah dari prosesor Prosesor I/O Modul I/O memiliki memori lokal sendiri
Direct Memory Access Mengambil alih kontrol sistem dari CPU untuk transfer data ke dan dari memori melalui sistem bus Pengambilan (mencuri) siklus digunakan untuk mentransfer data pada sistem bus Siklus instruksi ditunda sehingga data dapat ditransferkan CPU berhenti sejenak sebuah siklus bus Tidak ada interupsi terjadi Tidak mengamankan kontek
DMA
DMA Mengambil (mencuri) siklus menyebabkan CPU mengeksekusi lebih lambat Jumlah siklus sibuk yang dibutuhkan dapat dipangkas dengan mengintegrasikan DMA fungsi I/O Path antara modul DMA dan modul I/O yang tidak termasuk kedalam sistem bus
DMA
DMA
DMA
Permasalahan disain sistem operasi Efisiensi Kembanyakan device I/O sangat lambat dibandingkan memori utama Menggunakan multiprograming membiarkan sejumlah proses untuk menunggu I/O sambil proses yang lain dieksekusi I/O tidak dapat mengikuti kecepatan prosesor Swapping (pemindahan) digunakan untuk penambahan proses ready yang berada didalam operasi I/O
Permasalahan disain sistem operasi Secara umum Diperlukan untuk menangani seluruh device I/O yang sangat beragam Menyembunyikan beberapa rincian device I/O yang berada didalam level rutin terendah hingga proses dan level lebih tinggi melihat device secara umum dinyatakan seperti read, write, open, close, lock, unlock
I/O Buffering Alasan untuk buffering Proses harus menunggu utama I/O lengkap sebelum pemrosesan Pages tertentu harus tinggal didalam memori selama I/O
I/O Buffering Berorientasi blok (Block-oriented) Informasi disimpan didalam ukuran blok yang tetap Transfer membuat sebuah blok setiap waktu Digunakan untuk disk dan tape Berorientasi Alur (Stream-oriented) Transfer informasi sebagai alur byte Digunakan untuk terminal, printer, port komunikasi, mouse, dan beberapa device lainnya yang bukan penyimpanan sekunder.
Buffer Tunggal Sistem operasi menugaskan sebuah buffer didalam memori utama untuk sebuah permintaan I/O Berorientasi blok Transfer masukkan membuat untuk buffer Blok dipindahkan ke ruang pengguna (user) ketika dibutuhkan Blok yang lain dipindahkan kedalam buffer Teknik read head
I/O Buffering
Buffer Tunggal Berorientasi blok Proses user dapat memproses sebuah blok data ketika blok selanjutnya sedang dibaca Pemindahan (swapping) dapat terjadi selama masukkan sedang mengambil tempat didalam sistem memori, bukan di memori pengguna Sistem operasi menempatkan trak yang ditugaskan sistem buffer untuk proses pengguna
Buffer Tunggal Berorientasi alur Menggunakan sebuah bentuk waktu linier (line at time) Pengguna (user) masukkan (input) dari sebuah terminal merupakan suatu waktu linier sengan membawa kebali sinyal-sinyal akhir dari sebuah jalur Keluaran (output) ke terminal merupakan sebuah waktu linier
Buffer Ganda Menggunakan dua buah sistem buffer Sebuah proses dapat memindahkan data transfer data) ke atau dari sebuah buffer ketika sistem operasi mengosongkan atau mengisi buffer yang lain
Circular Buffer Menggunakan lebih dari dua buah buffer Masing-masing buffer terdiri satu unit didalam sebuah buffer cirkular Digunakan ketika operasi I/O harus menempatkan proses
I/O Buffering