Scheduling

Multilevel

One variation on the priority idea is to make use of several different process queues. There may be one queue for I/O-bound processes, one for CPU-bound processes, maybe another for real-time processes. In the simplest scheme, each queue corresponds to a different priority, and the tasks within a queue are simply round-robin scheduled. More sophisticated schemes move tasks up and down between queues as their CPU-usage changes. Basically the same as priority scheduling.

Another use of multiple queues is to apply different policies to different queues. For example a system with two queues, the highest-priority queue might be real-time tasks operating under a round-robin scheme, where the lower queue uses a priority system with aging. Often real-time tasks have different scheduling requirements than do non-real-time tasks, so such a system may be appropriate.

Another issue is that some processes may be swapped out to disk, and swapped-out processes should be scheduled differently from resident processes, since it takes time to load them back in.


last updated 19 February 1998