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.
NEXT: MLQ with Feedback Scheduling
Previous: High response ratio scheduling
Index : Operating System
No comments:
Post a Comment