Pengertian

Algoritma scheduling yang membagi queue ke dalam kelompok-kelompok tertentu berdasarkan keperluan schedulingnya. Contoh pembagian yang umum adalah antara foreground process (interaktif) dengan background process (batch). Dikarenakan kedua proses ini memiliki requirement response-time yang berbeda, maka kita dapat mengaplikasikan MLQ untuk memberikan prioritas scheduling yang berbeda (biasanya foreground process memiliki prioritas yang lebih tinggi).

Keunggulan:

  • Proses sudah ditugaskan ke dalam antrian secara permanen dan memiliki keunggulan terhadap overhead scheduling yang
  • Memiliki berbagai macam teknik scheduling untuk proses yang

Kekurangan:

  • Beberapa proses dapat mengalami starvation pada CPU apabila queue yang diberikan prioritas tinggi tidak pernah kosong. Hal ini dikarenakan dengan lama waktunya untuk yang prioritas tinggi membutuhkan waktu yang lama untuk eksekusi, sehingga prioritas rendah tidak pernah mendapat kesempatan untuk dijalankan.

Konsep Kerja

  • Ada beberapa proses yang kemudian disusun ke dalam 1 queue yang disebut Ready Queue.
  • Algoritma ini membagi Ready Queue menjadi beberapa queues sesuai process type, memory size, atau process priority (Contoh: foreground process dan background process).
  • Tiap proses di dalam queues akan diatur menggunakan Scheduling Algorithm yang lain (seperti Round-Robin atau First-Come-First-Serve) sesuai dengan response-time requirement masing-masing proses dalam queues. Biasanya, queue yang digunakan oleh foreground process menggunakan round robin sedangkan untuk background process menggunakan first come first
  • Tidak hanya proses di dalam queue, melainkan antar queues juga perlu discheduling. Metode scheduling yang biasa digunakan adalah:
  1. Fixed Priority Preemptive Scheduling Method:

Digunakan untuk menentukan prioritas dari sebuah proses yang sedang berjalan dan proses yang baru masuk atau ditambahkan ke dalam sebuah sistem komputer dengan cara membandingkan skala prioritas yang dimiliki oleh proses tersebut. Jika skala prioritas proses yang baru masuk lebih tinggi, maka proses yang sedang berjalan akan dihentikan dan segera menjalankan proses baru dengan skala prioritas yang lebih tinggi.

  1. Time Slicing:

Metode atau cara prosesor atau CPU membagi waktu setiap proses yang berjalan agar mendapatkan waktu yang seimbang untuk memakai prosesor dalam memproses sebuah proses. Jika terdapat banyak proses, maka prosesor atau CPU dapat membagi waktunya untuk menyelesaikan proses tersebut secara bersamaan.

Contoh Pengaplikasian

Ada banyak proses yang kemudian dikategorikan ke dalam 5 queues: System processes, Interactive processes, Interactive editing processes, Batch processes, dan Student processes.

Scheduling 5 queues tersebut diatur dengan Fixed Priority Preemptive Scheduling Method, sehingga ada pembagian prioritas scheduling queue dengan System processes queue sebagai prioritas utama dan Student processes queue sebagai prioritas terakhir. Jadi jika ada proses dari Student queue dan Interactive queue yang siap dijalankan, maka pembagian schedule yang akan didahulukan adalah proses dari Interactive queue.

Selain itu, proses pada Batch Queue tidak akan dapat dijalankan apabila queue pada System Processes sampai Interactive Editing Processes tidak kosong. Kecuali apabila di saat Batch Process sedang berjalan dan terdapat Interactive Editing Process yang baru masuk ready queue, maka Batch akan tetap berjalan.

 

Sumber:

https://www.geeksforgeeks.org/multilevel-queue-mlq-cpu-scheduling/ https://www.studytonight.com/operating-system/multilevel-queue-scheduling https://www.geeksforgeeks.org/fixed-priority-pre-emptive-scheduling/ https://www.geeksforgeeks.org/time-slicing-in-cpu-scheduling/ https://www.youtube.com/watch?v=fvkSXMZaBNY