Management I/O dan Disk Scheduling
Perangkat input/output dikategotikan menjadi 3
bagian, yaitu :
1. Human readable
Merupakan perangkat I/O yang digunakan untuk berkomunikasi
dengan user. Contohnya ialah printer,
keyboard dan mouse.
2. Machine readable
Merupakan perangkat I/O yang digunakan untuk berkomunikasi
dengan perangkat elektronik. Contohnya antara lain sensor dan controller.
3. Communication
Merupakan perangkat I/O yang digunakan untuk berkomunikasi
dengan remote device. Contohnya modem
dan digital line drivers.
Adapun beberapa fungsi
manajemen I/O antara lain :
-
Mengirim
perintah ke perangkat I/O agar menyediakan layanan
-
Memberi
interface kepada user
-
Menangani
kesalahan pada perangkat I/O
-
Menangani
interupsi yang terjadi pada perangkat I/O
Terdapat 2 teknik
pengoperasian perangkat I/O, yaitu :
1. Perangkat I/O terprogram
Merupakan perangkat I/O yang
dikontrol oleh sebuah program, misalnya perintah in, out dan move. Teknik
ini tidak sesuai jika digunakan untuk pengalihan data dengan kecepatan tinggi
karena memerlukan overhead yang
tinggi, serta banyak peralatan peripheral berkecepatan tinggi memiliki mode
operasi sinkron.
2. Perangkat berkendalikan interupsi
Konsep interupsi berguna di dalam
sistem operasi karena pemrosesan rutin tertentu diatur dengan seksama.
a. Mekanisme dasar interupsi
Ketika
prosesor mendeteksi controller telah
banyak mengirim sinyal interupsi, maka CPU akan menjawab interupsi tersebut
dengan menyimpan informasi mengenai status terkini prosesor.
b. Fitur tambahan pada computer modern
Ada 3 fitur
yang disediakan oleh CPU dan interrupt
controller untuk menangani interupsi, antara lain adalah kemampuan
menghambat sebuah proses interrupt
handling selama proses berada dalam critical
section, efisiensi penanganan interupsi, dan adanya sebuah konsep
multilevel interupsi sehingga terdapat prioritas dalam penanganan interupsi.
c. Interrupt request line
Terdapat 2
macam interrupt request line pada
CPU, yaitu nonmaskable interrupt dan maskable interrupt.
d. Interrupt vector dan interrupt
chaining
Interrupt vector merupakan table yang menyimpan
alamat interrupt handler spesifik di
memori. Sedangkan interrupt chaining
merupakan teknik yang digunakan untuk mengatasi hambatan yang ada jika jumlah device dan interrupt handler pada computer lebih banyak dibandingkan dengan
jumlah alamat interrupt vector,
dimana setiap elemen dari interrupt
vector menunjuk pada elemen pertama dari daftar interrupt handler.
Perbedaan di I/O device :
1. Kompleksitas control
2. Unit transfer
3. Representasi data
4. Kondisi error
Berikut beberapa evolusi fungsi dari
I/O :
-
Controller
atau I/O modul ditambahkan
- I/O
modul adalah proses terpisah : dengan set instruksi khusus untuk I/O,
prosesor I/O menjemput dan mengeksekusi instruksi tanpa intervene prosesor
-
I/O
prosesor : I/O modul memiliki memori local sendiri
-
Controller atau I/O modul dengan interupsi
-
Direct memory access (DMA)
Direct Memory Access (DMA)
Merupakan suatu pendekatan
alternative yang digunakan sebagai unit pengaturan khusus yang disediakan untuk
memungkinkan pengalihan blok data secara langsung antara peralatan eksternal da
memori utama tanpa intervensi terus menerua oleh CPU. Ada tiga langkah yang
digunakan untuk transfer DMA, yaitu :
1. Prosesor menyiapkan DMA transfer
dengan menyediakan data dari device, operasi yang akan ditampilkan, alamat
memori yang menjadi sumebr dan tujuan data, serta banyaknya byte yang akan di-transfer.
2. Kemudian DMA controller memulai
operasi transfer sampai seluruh blok
sudah ditransfer.
3. Terakhir, DMA controller akan menginterupsi prosesor, selanjutnya akan ditentukan
tindakan berikutnya.
Isu dalam desain sistem operasi :
- Efisiensi : I/O sangat lambat jika dibandingkan
dengan memori utama. Penggunaan multiprogramming yang memungkinkan beberapa
proses harus menunggu I/O sementara mengeksekusi proses lain.
- Generality : diharapkan dapat menangani semua
perangkat I/O secara seragam.
I/O buffering :
-
Reason
for buffering : proses harus menunggu
I/O untuk selesai sebelum memproes.
-
Block-oriented : informasi disimpan
diblok berukuran tetap.
-
Stream-oriented : mentransfer informasi sebagai aliran byte.
Disk Scheduling
Merupakan salah satu tanggung jawab
sistem operasi untuk menggunakan hardware dengan efisien. Pada disk drives,
efisiensi yang dimaksudkan ialah dalam hal waktu akses yang cepat dan aspek
bandwith disk. Jika suatu proses membutuhkan pelayanan I/O dari/menuju disk,
maka proses akan melakukan system call ke sistem operasi dengan membawa
informasi sebagai berikut :
-
apakah merupakan proses input atau output
-
alamat disk untuk proses
-
alamat memori untuk proses
-
jumlah bytes yang akan ditransfer
Kebijakan dalam
penjadwalan :
1. First-in First-out (FIFO)
a. Adil untuk semua proses
b. Proses permintaan berurutan
2. Prioritas
a. Merupakan penjadwalan yang dilakukan
diluar kendali manajemen disk
b. Memberikan respon time yang baik
3. Last-in First-out (LIFO)
a. Cocok untuk sistem transaksi
b. Ada kemungkinan terjadi starvasion
4. Shortest-seek-time-first (SSTF)
Algoritma dalam penjadwalan ini ialah memilih permintaan
berdasarkan seek-time minimum dari posisi head saat itu.
5. SCAN
Pada algoritma ini, pergerakan disk arm dimulai dari salah satu ujung
disk kemudian bergerak menuju ujung yang lain sambal melayani permintaan. Jika
sampai pada ujung disk, maka disk arm akan bergerak berlawanan arah
dan mulai melayani permintaan baru.
6. C-SCAN
Merupakan
varian dari algoritma SCAN yang didesain untuk menyediakan waktu tunggu yang
sama. Perbedaan dengan SCAN ialah saat disk sampai pada ujung, head tidak akan
berbailk arah.
7. LOOK
Algoritma ini meliat dulu permintaan
sebelum melanjutkan arah pergerakan disk. Disk arm bergerah paling jauh pada
permintaan terakhir tiap disk di tiap arah pergerakannya kemudian langsing
berbelik arah tanpa menunggu sampai di ujung disk.
Disk Cache
-
Buffer dalam memori utama untuk sector disk
-
Berisi
Salinan dari beberapa sector disk
- Algoritma yang
paling umum digunakan untuk pengganti yang terakhir digunakan (LRU) least recently used
-
Kemungkinan lain
adalah kurangnya sering digunakan (LFU) least
frequently used
Least recently used
-
Cache
terdiri dari tumpukan blok.
-
Blok yang telah
di cache terpanjang tanpa referensi
untuk itu diganti
-
Blok yang
terbaru terletak di bagian atas tumpukan
-
Ketika blok
direferensikan atau dibawa ke dalam cache,
ia ditempatkan di bagian atas tumpukan
Least frequently used
-
Blok yang telah mengalami
paling sedikit referensi akan diganti
-
Sebuah counter akan dikaitkan dengan setiap
blok
-
Counter
bertambah setiap blok diakses
-
Blok dengan
jumlah terkecil dipilih untuk pergantian