In computer science, a multilevel feedback queue is a scheduling algorithm. It is intended to meet the following design requirements for multimode systems:
- Give preference to short jobs.
- Give preference to I/O bound processes.
- Separate processes into categories based on their need for the processor
Multiple FIFO queues are used and the operation is as follows:
- A new process is positioned at the end of the top-level FIFO queue.
- At some stage the process reaches the head of the queue and is assigned the CPU.
- If the process is completed it leaves the system.
- 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.
- If the process uses all the quantum time, it is pre-empted and positioned at the end of the next lower level queue.
- 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.
Famous quotes containing the word queue:
“English people apparently queue up as a sort of hobby. A family man might pass a mild autumn evening by taking the wife and kids to stand in the cinema queue for a while and then leading them over for a few minutes in the sweetshop queue and then, as a special treat for the kids, saying Perhaps weve time to have a look at the Number Thirty-One bus queue before we turn in.”
—Calvin Trillin (b. 1940)