Jump to content

Multilevel feedback queue

From Wikipedia, the free encyclopedia

Incomputer science,amultilevel feedback queueis aschedulingalgorithm. Scheduling algorithms are designed to have some process running at all times to keep thecentral processing unit(CPU) busy.[1]The multilevel feedback queue extends standard algorithms with the following design requirements:

  1. Separate processes into multipleready queuesbased on their need for the processor.
  2. Give preference to processes with short CPU bursts.
  3. Give preference to processes with highI/Obursts. (I/O bound processes will sleep in thewait queueto give other processes CPU time.)

The multilevel feedback queue was first developed byFernando J. Corbató(1962).[2]For this accomplishment, theAssociation for Computing Machineryawarded Corbató theTuring Award.[3]

Process scheduling[edit]

Whereas themultilevel queuealgorithm keeps processes permanently assigned to their initial queue assignments, the multilevel feedback queue shifts processes between queues.[4]The shift is dependent upon the CPU bursts of priortime-slices.[5]

  • If a process uses too much CPU time, it will be moved to a lower-priority queue.
  • If a process is I/O-bound or an interactive process, it will be moved to a higher-priority queue.
  • If a process is waiting too long in a low-priority queue andstarving,it will beagedto a higher-priority queue.

Algorithm[edit]

MultipleFIFOqueues are used and the operation is as follows:

  1. A new process is inserted at the end (tail) of the top-levelFIFOqueue.
  2. At some stage the process reaches the head of the queue and is assigned theCPU.
  3. If the process is completed within the time slice of the given queue, it leaves the system.
  4. If the process voluntarily relinquishes control of the CPU, it leaves the queuing network, and when the process becomes ready again it is inserted at the tail of the same queue which it relinquished earlier.
  5. If the process uses all the quantum time, it ispre-emptedand inserted at the end of the next lower-level queue. This next lower-level queue will have a time quantum that is more than that of the previous higher-level queue.
  6. This scheme will continue until the process completes or it reaches the base-level queue.
  • At the base level queue the processes circulate inround robinfashion until they complete and leave the system. Processes in the base level queue can also be scheduled on afirst come first servedbasis.[6]
  • Optionally, if a process blocks for I/O, it ispromotedone 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 toescapethe base-level queue.

For scheduling, the scheduler always starts picking up processes from the head of the highest-level queue. Only if the highest-level queue has become empty will the scheduler take up a process from the next lower-level queue. The same policy is implemented for picking up in the subsequent lower-level queues. Meanwhile, if a process comes into any of the higher-level queues, it will preempt a process in the lower-level queue.

Also, a new process is always inserted at the tail of the top-level queue with the assumption that it will complete in a short amount of time. Long processes will automatically sink to lower-level queues based on their time consumption and interactivity level. 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.

Scheduling parameters[edit]

In general, a multilevel feedback queue scheduler is defined by the following parameters:[6]

  • The number of queues.
  • The scheduling algorithm for each queue which can be different from FIFO.
  • The method used to determine when to promote a process to a higher priority queue.
  • The method used to determine when to demote a process to a lower-priority queue.
  • The method used to determine which queue a process will enter when that process needs service.

External links[edit]

See also[edit]

References[edit]

  1. ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. p. 131.ISBN978-0-201-50480-4.
  2. ^Corbató, Fernando J.; Merwin-Daggett, Marjorie; Daley, Robert C. (1962). "An experimental time-sharing system".Proceedings of the May 1-3, 1962, spring joint computer conference on - AIEE-IRE '62 (Spring).p. 335.doi:10.1145/1460833.1460871.S2CID14363753.
  3. ^Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014). "Multi-level Feedback Queue".Operating Systems: Three Easy Pieces(PDF).Arpaci-Dusseau Books.
  4. ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. p. 147.ISBN978-0-201-50480-4.
  5. ^Silberschatz, Abraham (1994).Operating System Concepts, Fourth Edition.Addison-Wesley. p. 148.ISBN978-0-201-50480-4.
  6. ^abSilberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2008).Operating system concepts(8th ed.). Hoboken, N.J.: Wiley. p. 198.ISBN978-0470128725.