Jump to content

Blocking (computing)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 95.222.253.151 (talk) at 00:37, 4 November 2009 (Editorial work). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Blocking occurs when a function does not return until it either completes its task or results in an error.

A process that is blocked is one that waits for the completion of some event, such as an I/O operation [1]

In a hypothetical two state model (running and not-running), processes would go onto the (running) queue before being dispatched for execution. In the absence of a blocked state, if priority is measured by holdup time, blocked processes would erroneously get scheduled despite having nothing to operate on. This is undesirable from a processor utilization viewpoint. Hence the efficient use of resources makes a case for a blocked queue in which processes line up until the event dependency resolves.

Once the event fires, the process is advanced from blocked state to an imminent one, such as runnable.

References

  • Stallings, William (2004). Operating Systems: Internals and Design Principles (5th ed.). Prentice Hall.