The term can have various meanings, but typically, a deadlock is a condition in which a task will remain forever suspended waiting for a resource that it can never acquire Consider a system comprised of a keyboard and a display, with a separate semaphore for each In order for a task to interact with the user it must acquire the "console" (keyboard and display) and therefore must acquire both the keyboard and the display semaphores If more than one task decides to interact with the user at the same time a condition can arise where taskA acquires the keyboard semaphore and taskB acquires the display semaphore Now taskA will wait forever for the display semaphore and taskB will wait forever for the keyboard semaphore The solution in this example is to treat the keyboard and display as a single resource (console) Deadlocks can occur for a variety of reasons, but the end result is typically the same: the task will wait forever for a resource that it can never acquire
A situation in which processors of a concurrent processor are waiting on an event which will never occur A simple version of deadlock for a loosely synchronous environment arises when blocking reads and writes are not correctly matched For example, if two nodes both execute blocking writes to each other at the same time, deadlock will occur since neither write can complete until a complementary read is executed in the other node
A situation in parallel computers where all activities are blocked, typically while waiting for something which is also blocked This usually signals an error in the communication code
In operating systems or databases, a situation in which two or more processes are prevented from continuing while each waits for resources to be freed by the continuation of the other
Condition involving one or more threads and a set of one or more resources in which each of the threads is blocked waiting for one of the resources and all of the resources are held by the threads such that none of the threads can continue For example, a thread will enter a self-deadlock when it attempts to lock a "fast" mutex a second time Likewise, two threads will enter a deadlock when each attempts to lock a second mutex that is already held by the other The introduction of additional threads and synchronization objects allows for more complex deadlock configurations
If a dispute or series of negotiations reaches deadlock, neither side is willing to give in at all and no agreement can be made. They called for a compromise on all sides to break the deadlock in the world trade talks
[M206] A condition that can arise in a computer system when a set of incomplete transactions exists, with the completion of each transaction being dependent on another, or when there is a conflict between two applications that need access to the same resources, for example, the same files, printer, or other peripheral device, resulting in the applications waiting indefinitely for the resource
A condition in which two independent threads of control are blocked, each waiting for the other to take some action Deadlock often arises from adding synchronization mechanisms to avoid race conditions
(n ) A situation in which each possible activity is blocked, waiting on some other activity that is also blocked If a directed graph represents how activities depend on others, then deadlock arises if and only if there is a cycle in this graph See also dependence graph
1) Unresolved contention for the use of a resource 2) An error condition in which processing cannot continue because each of the two elements of the process is waiting for an action or a response from the other
A condition that occurs when two users with a lock on one data item attempt to lock the other's data item Most RDBMSs detect this condition, prevent its occurrence, and advise both users of the deadlock situation
A bug where the execution of thread A is blocked indefinitely waiting for thread B to perform some action, while thread B is blocked waiting for thread A For example, two threads on opposite ends of a named pipe can become deadlocked if each thread waits to read data written by the other thread A single thread can also deadlock itself See also thread
Any of a number of situations where two or more processes cannot proceed because they are both waiting for the other to release some resource FIXME(give good references)
(n ) A situation that describes two or more processes waiting for another process to free a resource that is required to proceed Also called deadly embrace
A condition in which one or more threads are unable to continue due to resource contention A common form of deadlock can occur when one thread sends a message to another, while the other thread sends a message to the first Both threads are now waiting for each other to reply to the message Deadlock can be avoided by good design practices or massive kludges -- we recommend the good design approach
An impasse that results when two or more transactions have locked a common resource, and each waits for the other to unlock that resource See also Locking