Jump to content

Blocking (computing)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Lonaowna (talk | contribs) at 20:17, 9 September 2014. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computing, a process is an instance of a computer program that is being executed. A process always exists in exactly one process state. A process that is blocked is one that is waiting for some event, such as a resource becoming available or the completion of an I/O operation.[1]

In a multitasking computer system, individual tasks, or threads of execution, must share the resources of the system. These resources might be:

  • the CPU
  • network
  • memory
  • disk

When one task is using a resource, it is generally not possible, or desirable, for another task to access it. The techniques of mutual exclusion are used to prevent this concurrent use. When the other task is blocked, it is unable to execute until the first task has finished using the shared resource.

Programming languages and scheduling algorithms are designed to minimize this blocking, and to prevent the case of deadlock, where two or more tasks are blocked, waiting for a resource that the other holds.

Once the event occurs for which the process is waiting ("is blocked on"), the process is advanced from blocked state to an imminent one, such as runnable.

See also

References

  • Stallings, William (2004). Operating Systems: Internals and Design Principles (5th ed.). Prentice Hall. {{cite book}}: Invalid |ref=harv (help)