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. 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 In general, a multilevel feedback queue scheduler is defined by the following parameters: 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 Multilevel Feedback Queue Schedulers — Solaris 2.6 Time-Sharing Processor Sharing Queueing Models of Mixed Scheduling Disciplines for Time Shared System See also Lottery scheduling Fair-share scheduling Round-robin scheduling References Processor scheduling algorithms