MLQ scheduling is the most general scheduling disciplines suitable for complex environments that serve a mixture of processes with different characteristics. One way to implement MLQ scheduling is to classify the workload according to its characteristics, and to maintain separate process queue serviced by different schedulers. A division of the workload might be into system processes, interactive processes, and batch processes.
multilevel queue scheduling algorithm divids the ready queue into several queues. The processes are permanently assigned to one queue, generally based on some property of the process, such as memory size, process priority, or process type. Each queue has its own scheduling algorithm. For example, separate queues might be used for foreground and background processes. The foreground might be scheduled by an RR algorithm, while the background queue is scheduled by an FCFS algorithm.
An example of multilevel queue scheduling algorithm is shown below.
|An example of multilevel queue scheduling|
Each queue may be serviced by the scheduling discipline best suited to the type of workload that it contains. In the absolute priority case, the process from the highest priority queue is serviced until that queue becomes empty. The scheduling discipline may be event driven. When the highest priority queue becomes empty, the next queue may be serviced using its own scheduling discipline. Finally, when both higher priority queues become empty, a lower-priority process may be executed. A lower-priority process may be preempted by a higher priority arrival in one of the level queues. An alternative approach is to assign certain percentage of the processor time to each queue.
Previous: High response ratio scheduling
Index : Operating System