Multilevel feedback queue

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computer science, a multilevel feedback queue is a scheduling algorithm. It is intended to meet the following design requirements for multimode systems:

  1. Give preference to short jobs.
  2. Give preference to I/O bound processes.
  3. Separate processes into categories based on their need for the processor

Multiple FIFO queues are used and the operation is as follows:

  1. A new process is positioned at the end of the top-level FIFO queue.
  2. At some stage the process reaches the head of the queue and is assigned the CPU.
  3. If the process is completed it leaves the system.
  4. If the process voluntarily relinquishes control it leaves the queuing network, and when the process becomes ready again it enters the system on the same queue level.
  5. If the process uses all the quantum time, it is pre-empted and positioned at the end of the next lower level queue.
  6. This will continue until the process completes or it reaches the base level queue.
  • At the base level queue the processes circulate in round robin fashion until they complete and leave the system.
  • Optionally, if a process blocks for I/O, it is 'promoted' one level, and placed at the end of the next-higher queue. This allows I/O bound processes to be favored by the scheduler and allows processes to 'escape' the base level queue.

In the multilevel feedback queue, a process is given just one chance to complete at a given queue level before it is forced down to a lower level queue.

See also[edit]