Process

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.