1.
MFQ (Multiple Feedback Queue)
Multilevel
Queue (MQ)
Ide
dasar dari algoritma ini berdasarkan pada sistem prioritas proses.
Prinsipnya, jika setiap proses dapat dikelompokkan berdasarkan
prioritasnya. Kemudian muncul ide untuk menganggap kelompok-kelompok
tersbut sebagai sebuah antrian-antrian kecil yang merupakan bagian
dari antrian keseluruhan proses, yang sering disebut dengan algoritma
multilevel queue.
Dalam
hal ini, dapat dilihat bahwa seolah-olah algoritma dengan prioritas
yang dasar adalah algoritma
multilevel queue dimana
setiap queue akan
berjalan dengan algoritma FCFS yang memiliki banyak kelemahan. Oleh
karena itu, dalam prakteknya, algoritma
multilevel queue memungkinkan
adanya penerapan algoritma internal dalam masing-masing
sub-antriannya yang bisa memiliki algoritma internal yang berbeda
untuk meningkatkan kinerjanya.
Berawal
dari priority
scheduling,
algoritma ini pun memiliki kelemahan yang sama dengan priority
scheduling,
yaitu sangat mungkin bahwa suatu proses pada queue dengan prioritas
rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasi hal
tersebut, salah satu caranya adalah dengan memodifikasi algoritma ini
dengan adanya jatah waktu maksimal untuk tiap antrian, sehingga jika
suatu antrian memakan terlalu banyak waktu, maka prosesnya akan
dihentikan dan digantikan oleh antrian dibawahnya, dan tentu saja
batas waktu untuk tiap antrian bisa saja sangat berbeda tergantung
pada prioritas masing-masing antrian.
MFQ
(Multiple Feedback Queue)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:
- Jumlah antrian.
- Algoritma penjadwalan tiap antrian.
- Kapan menaikkan proses ke antrian yang lebih tinggi.
- Kapan menurunkan proses ke antrian yang lebih rendah.
- 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.
- Semua proses yang baru datang akan diletakkan pada queue 0 ( quantum= 8 ms).
- Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan dihentikan dan dipindahkan ke queue 1 ( quantum= 16 ms).
- 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.
- 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:
- Jumlah antrian.
- Algoritma internal tiap queue.
- Aturan sebuah proses naik ke antrian yang lebih tinggi.
- Aturan sebuah proses turun ke antrian yang lebih rendah.
- Antrian yang akan dimasuki tiap proses yang baru datang.Scheduling algoritma unuk tiap queue
Metoda yang di gunakan untuk memutuskan ketika upgrade suatu psoses
Metode yang di gunakan untuk memutuskan ketika menurunkan suatu proses
Metode yang di tentukan untuk mementukan queue nama yang akan di proses membutuhkan server