In computing, a process that is blocked is waiting for some event, such as a resource becoming available or the completion of an I/O operation.[1] 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.

In a multitasking computer system, individual tasks, or threads of execution, must share the resources of the system. Shared resources include: the CPU, network and network interfaces, memory and 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 the over-all effect of blocking. A process that blocks may prevent local work-tasks from progressing. In this case "blocking" often is seen as not wanted.[2] However, such work-tasks may instead have been assigned to independent processes, where halting one has little to no effect on the others, since scheduling will continue. An example is "blocking on a channel" where passively waiting for the other part (i.e. no polling or spin loop) is part of the semantics of channels.[3] Correctly engineered, any of these may be used to implement reactive systems.[clarification needed]

Deadlock means that processes pathologically wait for each other in a circle. As such it is not directly associated with blocking.

See also

edit

References

edit
  1. ^ Stallings, William (2004). Operating Systems: Internals and Design Principles (5th ed.). Prentice Hall. ISBN 978-0131479548.
  2. ^ C++ and Beyond 2012: Herb Sutter - C++ Concurrency
  3. ^ Rob Pike (2012-07-02). Go Concurrency Patterns. Google I/O 2012. Google for Developers.

📚 Artikel Terkait di Wikipedia

Blocking

Look up blocking in Wiktionary, the free dictionary. Blocking may refer to: Blacklist (computing) Blocking (computing), holding up a task until an event

Non-blocking algorithm

algorithms provide a useful alternative to traditional blocking implementations. A non-blocking algorithm is lock-free if there is guaranteed system-wide

Geo-blocking

copyright and licensing reasons. There are other uses for geo-blocking, such as blocking malicious traffic or to enforce price discrimination, location-aware

Cloud computing

concert to perform very large tasks. Fog computing – Distributed computing paradigm that provides data, compute, storage and application services closer

Quantum computing

information in quantum computing, the qubit (or "quantum bit"), serves the same function as the bit in ordinary or "classical" computing. However, unlike a

Head-of-line blocking

Head-of-line blocking (HOL blocking) in computer networking is a performance-limiting phenomenon that occurs when a queue of packets is held up by the

Symbols for Legacy Computing

Symbols for Legacy Computing is a Unicode block containing graphic characters that were used for various home computers from the 1970s and 1980s and in

List of Soviet computer systems

abbreviation EVM (ЭВМ), present in some of the names below, means "electronic computing machine" (Russian: электронная вычислительная машина). The Russian abbreviation