berikut ini akan menjelaskan tentang penjadwalan disk yang ada di sistem operasi. berikut beberapa metode penjadwalan yang sering di gunakan. Pahami satu persatu ya?
Penjadualan FCFS
Bentuk paling sederhana dalam
penjadualan disk adalah dengan sistem antrian (queue) atau First Come
First Served (FCFS). Algoritma ini secara intrinsik bersifat adil, tetapi
secara umum algoritma ini pada kenyataannya tidak memberikan pelayanan yang
paling cepat. Sebagai contoh, antrian permintaan pelayanan disk untuk
proses I/O pada blok dalam silinder adalah sebagai berikut: 98, 183, 37,
122, 14, 124, 65, 67. Jika head pada awalnya berada pada 53, maka head
akan bergerak dulu dari 53 ke 98, kemudian 183, 37, 122, 14, 124, 65, dan
terakhir 67, dengan total pergerakan head sebesar 640 silinder.
Permasalahan dengan menggunakan
penjadualan jenis ini dapat diilustrasikan dengan pergerakan dari 122 ke 14 dan
kembali lagi ke 124. Jika permintaan terhadap silinder 37 dan 14 dapat
dikerjakan/ dilayani secara bersamaan, baik sebelum mau pun setelah permintaan
122 dan 124, maka pergerakan total head dapat dikurangi secara
signifikan, sehingga dengan demikian pendayagunaan akan meningkat.
Penjadualan SSTF
Sangat beralasan jika kita
menutup semua pelayanan pada posisi head saat ini, sebelum menggerakkan head
ke tempat lain yang jauh untuk melayani suatu permintaan. Asumsi ini mendasari
algoritma penjadualan kita yang kedua yaitu shortest-seek-time-first
(SSTF). Algoritma ini memilih permintaan dengan berdasarkan waktu pencarian
atau seek time paling minimum dari posisi head saat itu. Karena
waktu pencarian meningkat seiring dengan jumlah silinder yang dilewati oleh head,
maka SSTF memilih permintaan yang paling dekat posisinya di disk
terhadap posisi head saat itu.
Perhatikan contoh antrian
permintaan yang kita sajikan pada penjadualan FCFS, permintaan paling dekat
dengan posisi head saat itu (53) adalah silinder 65. Jika kita penuhi
permintaan 65, maka yang terdekat berikutnya adalah silinder 67. Dari 67,
silinder 37 letaknya lebih dekat ke 67 dibandingkan silinder 98, jadi 37 dilayani
duluan. Selanjutnya, dilanjutkan ke silinder 14, 98, 122, 124, dan terakhir
adalah 183. Metode penjadualan ini hanya menghasilkan total pergerakan head
sebesar 236 silinder -- kira-kira sepertiga dari yang dihasilkan penjadualan
FCFS. Algoritma SSTF ini memberikan peningkatan yang cukup signifikan dalam hal
pendayagunaan atau performance sistem.
Penjadualan SSTF merupakan
salah satu bentuk dari penjadualan shortest-job-first (SJF), dan karena
itu maka penjadualan SSTF juga dapat mengakibatkan starvation pada suatu
saat tertentu. Kita ketahui bahwa permintaan dapat datang kapan saja. Anggap
kita memiliki dua permintaan dalam antrian, yaitu untuk silinder 14 dan 186.
Selama melayani permintaan 14, kita anggap ada permintaan baru yang letaknya
dekat dengan 14. Karena letaknya lebih dekat ke 14, maka permintaan ini akan
dilayani dulu sementara permintaan 186 menunggu gilirannya. Jika kemudian
berdatangan lagi permintaan-permintaan yang letaknya lebih dekat dengan
permintaan terakhir yang dilayani jika dibandingkan dengan 186, maka permintaan
186 bisa saja menunggu sangat lama. Kemudian jika ada lagi permintaan yang
lebih jauh dari 186, maka juga akan menunggu sangat lama untuk dapat dilayani.
Walau pun algoritma SSTF secara
substansial meningkat jika dibandingkan dengan FCFS, tetapi algoritma SSTF ini
tidak optimal. Seperti contoh diatas, kita dapat menggerakkan head dari
53 ke 37, walau pun bukan yang paling dekat, kemudian ke 14, sebelum menuju 65,
67, 98, 122, dan 183. Strategi ini dapat mengurangi total gerakan head
menjadi 208 silinder.
Penjadualan SCAN
Pada algoritma SCAN, pergerakan
disk arm dimulai dari salah satu ujung disk, kemudian bergerak
menuju ujung yang lain sambil melayani permintaan setiap kali mengunjungi
masing-masing silinder. Jika telah sampai di ujung disk, maka disk
arm bergerak berlawanan arah, kemudian mulai lagi melayani
permintaan-permintaan yang muncul. Dalam hal ini disk arm bergerak
bolak-balik melalui disk.
Kita akan menggunakan contoh
yang sudah dibarikan diatas. Sebelum melakukan SCAN untuk melayani
permintaan-permintaan 98, 183, 37, 122, 14, 124, 65, dan 67, kita harus
mengetahui terlebih dahulu pergerakan head sebagai langkah awal dari 53.
Jika disk arm bergerak menuju 0, maka head akan melayani 37 dan
kemudian 14. Pada silinder 0, disk arm akan bergerak berlawanan arah dan
bergerak menuju ujung lain dari disk untuk melayani permintaan 65, 67,
98, 122, 124, dan 183. Jika permintaan terletak tepat pada head saat
itu, maka akan dilayani terlebih dahulu, sedangkan permintaan yang datang tepat
dibelakang head harus menunggu dulu head mencapai ujung disk,
berbalik arah, baru kemudian dilayani.
Algoritma SCAN ini disebut juga
algoritma lift/ elevator, karena kelakuan disk arm sama seperti elevator
dalam suatu gedung, melayani dulu orang-orang yang akan naik ke atas, baru
kemudian berbalik arah untuk melayani orang-orang yang ingin turun ke bawah.
Kelemahan algoritma ini adalah
jika banyak permintaan terletak pada salah satu ujung disk, sedangkan
permintaan yang akan dilayani sesuai arah arm disk jumlahnya sedikit
atau tidak ada, maka mengapa permintaan yang banyak dan terdapat pada ujung
yang berlawanan arah dengan gerakan disk arm saat itu tidak dilayani
duluan? Ide ini akan mendasari algoritma penjadualan berikut yang akan kita
bahas.
Penjadualan C-SCAN
Circular-SCAN adalah varian dari algoritma SCAN yang
sengaja didesain untuk menyediakan waktu tunggu yang sama. Seperti halnya SCAN,
C-SCAN akan menggerakkan head dari satu ujung disk ke ujung
lainnya sambil melayani permintaan yang terdapat selama pergerakan tersebut.
Tetapi pada saat head tiba pada salah satu ujung, maka head tidak
berbalik arah dan melayani permintaan-permintaan, melainkan akan kembali ke
ujung disk asal pergerakannya. Jika head mulai dari ujung 0, maka
setelah tiba di ujung disk yang lainnya, maka head tidak akan berbalik
arah menuju ujung 0, tetapi langsung bergerak ulang dari 0 ke ujung satunya
lagi.
Penjadualan LOOK
Perhatikan bahwa SCAN dan
C-SCAN menggerakkan disk arm melewati lebar seluruh disk. Pada
kenyataanya algoritma ini tidak diimplementasikan demikian (pergerakan melewati
lebar seluruh disk). Pada umumnya, arm disk bergerak paling jauh
hanya pada permintaan terakhir pada masing-masin arah pergerakannya. Kemudian
langsung berbalik arah tanpa harus menuju ujung disk. Versi SCAN dan
C-SCAN yang berprilaku seperti ini disebut LOOK SCAN dan LOOK C-SCAN, karena
algoritma ini melihat dulu permintaan-permintaan sebelum melanjutkan arah
pergerakannya.