Kemarin saya mendapat tugas pada matakuliah Sistem Operasi tentang pengertian MFQ, SRF, HRN, PS, dan GS, dan disini saya akan share sedikit penjelasan dari dosen saya tentang materi tersebut:
- Multiple Feedback Queue (MFQ)
Algoritma ini mirip sekali dengan
algoritma multilevel queue. Perbedaannya ialah algoritma ini mengizinkan proses
untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses
itu akan dipindahkan ke antrian yang lebih rendah. Hal ini menguntungkan proses
interaksi karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula
dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan
tingkatannya. Biasanya prioritas tertinggi diberikan kepada proses dengan CPU
burst terkecil, dengan begitu CPU akan terutilisasi penuh dan M/K dapat terus
sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin
besar.
Algoritma ini didefinisikan melalui
beberapa parameter, antara lain:
1. Jumlah antrian.
2. Algoritma penjadwalan tiap
antrian.
3. Kapan menaikkan proses ke antrian
yang lebih tinggi.
4. Kapan menurunkan proses ke
antrian yang lebih rendah.
5. Antrian mana yang akan dimasuki
proses yang membutuhkan.
Dengan pendefinisian seperti tadi
membuat algoritma ini sering dipakai, karena algoritma ini mudah dikonfigurasi
ulang supaya cocok dengan sistem. Tapi untuk mengatahui mana penjadwal terbaik,
kita harus mengetahui nilai parameter tersebut. Multilevel feedback queue
adalah salah satu algoritma yang berdasar pada algoritma multilevel queue.
Perbedaan mendasar yang membedakan multilevel feedback queue dengan multilevel
queue biasa adalah terletak pada adanya kemungkinan suatu proses berpindah dari
satu antrian ke antrian lainnya, entah dengan prioritas yang lebih rendah
ataupun lebih tinggi, misalnya pada contoh berikut.
1. Semua proses yang baru datang
akan diletakkan pada queue 0 ( quantum= 8 ms).
2. Jika suatu proses tidak dapat
diselesaikan dalam 8 ms, maka proses tersebut akan dihentikan dan dipindahkan
ke queue 1 ( quantum= 16 ms).
3. Queue 1 hanya akan dikerjakan
jika tidak ada lagi proses di queue 0, dan jika suatu proses di queue 1 tidak
selesai dalam 16 ms, maka proses tersebut akan dipindahkan ke queue 2.
4. Queue 2 akan dikerjakan bila
queue 0 dan 1 kosong, dan akan berjalan dengan algoritma FCFS.
Disini terlihat bahwa ada
kemungkinan terjadinya perpindahan proses antar queue, dalam hal ini ditentukan
oleh time quantum, namun dalam prakteknya penerapan algoritma multilevel
feedback queue akan diterapkan dengan mendefinisikan terlebih dahulu
parameter-parameternya, yaitu:
1. Jumlah antrian.
2. Algoritma internal tiap queue.
3. Aturan sebuah proses naik ke
antrian yang lebih tinggi.
4. Aturan sebuah proses turun ke
antrian yang lebih rendah.
5. Antrian yang akan dimasuki tiap
proses yang baru datang.
2. Shortest Remaining First
Merupakan :
- Penjadwalan berprioritas.dinamis.
- Adalah preemptive untuk timesharing
- Melengkapi SJF
Pada SRF, proses dengan sisa waktu
jalan diestimasi terendah dijalankan, termasuk proses-proses yang baru tiba.
- Pada SJF, begitu proses dieksekusi,
proses dijalankan sampai selesai.
- Pada SRF, proses yang sedang
berjalan (running) dapat diambil alih proses baru dengan sisa waktu jalan yang
diestimasi lebih rendah.
Kelemahan :
- Mempunyai overhead lebih besar
dibanding SJF. SRF perlu penyimpanan waktu layanan yang telah dihabiskan job
dan kadang-kadang harus menangani peralihan.
- Tibanya proses-proses kecil akan
segera dijalankan.
- Job-job lebih lama berarti dengan
lama dan variasi waktu tunggu lebih lama dibanding pada SJF.
SRF perlu menyimpan waktu layanan
yang telah dihabiskan , menambah overhead.
Secara teoritis, SRF memberi waktu
tunggu minimum tetapi karena overhead peralihan, maka pada situasi tertentu SFJ
bisa memberi kinerja lebih baik dibanding SRF.
3. Highest Ratio Next (HRN)
Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu tanggap,
yang berarti waktu tanggap tertinggi yang harus dilayani.
Merupakan:
- Penjadwalan berprioritas dinamis.
- Penjadwalan untuk mengoreksi kelemahan SJF.
- Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses, proses berjalan sampai selesai.
Prioritas dinamis HRN dihitung berdasarkan rumus :
Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan
Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang telah menunggu lebih lama juga mempunyai kesempatan lebih bagus.
4. Priority Schedulling (PS)
Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing.
Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:
1. Time limit.
2. Memory requirement
3. Akses file
4. Perbandingan antara burst M/K dengan CPU burst
5. Tingkat kepentingan proses.
Priority scheduling
juga dapat dijalankan secara preemptive maupun non preemptive. Pada preemptive,
jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi
daripada proses yang sedang dijalankan, maka proses yang sedang berjalan
tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang tersebut.
Sementara itu, pada non-preemptive, proses yang baru datang tidak dapat
menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan queue.
Kelemahan pada
priority scheduling adalah dapat terjadinya indefinite blocking( starvation).
Suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak
dieksekusi jika terdapat proses lain yang memiliki prioritas lebih tinggi
darinya. Solusi dari permasalahan ini adalah aging, yaitu meningkatkan
prioritas dari setiap proses yang menunggu dalam queue secara bertahap. Contoh:
Setiap 10 menit, prioritas dari masing-masing proses yang menunggu dalam queue
dinaikkan satu tingkat. Maka, suatu proses yang memiliki prioritas 127,
setidaknya dalam 21 jam 20 menit, proses tersebut akan memiliki prioritas 0,
yaitu prioritas yang tertinggi (semakin kecil angka menunjukkan bahwa
prioritasnya semakin tinggi).
5. Guaranteed Scheduloing (GS)
Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses (pemakai) akan mendapatkan 1/N dari daya pemroses CPU.
Untuk mewujudkannya, sistem harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak login dan juga berapa lama pemakai sedang login.
Kemudian jumlah waktu CPU, yaitu waktu mulai login dibagi dengan n, sehingga lebih mudah menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap pemakai dapat diketahui, maka dapat dihitung rasio antara waktu pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses seluruhnya dan waktu pemroses yang telah diperuntukkan proses itu.
Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang waktu CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya 2,0 dari apa yang waktu CPU miliki. Algoritma akan menjalankan proses dengan rasio paling rendah hingga naik ketingkat lebih tinggi diatas pesaing terdekatnya.
Ide sederhana ini dapat diimplementasikan ke sistem real-time dan memiliki penjadwalan berprioritas dinamis.
Comments
Post a Comment
Terimakasih sudah singgah, jangan lupa tinggalkan jejak ya :)