Process Queuing
- Simple Queuing Mechanism is Inefficient because some processes are
- Not-running but ready to execute
- Not-running and blocked
- With a single queue: Dispatcher must scan list to find process not-running, ready, and in queue the longest
- With multiple queues: first pick the right queue and then go round robin.
But what multiple queues should we have and how does it affect the states?
Problem with above
Unblocking a task requires the OS to search through that list, which is SLOW.
A better solution is to create blocked queues based on the event itself.
In summary, thereās:
- 1 Ready Queue
- Multiple blocked queues based on the event
- Multiple Blocked/Suspend queue
- 1 Ready/Suspend Queue
How does this relate to scheduling?
When we study the OS Scheduler, we mostly care about the dispatching process, i.e. selecting a process to run from the Ready queue.