Deadlock Characterization


Deadlock can arise if four conditions hold simultaneously.


1. Mutual exclusion:


only one process at a time can use a resource

2. Hold and wait:


a process holding at least one resource is waiting to acquire additional resources held by other processes

3. No preemption:


a resource can be released only voluntarily by the process holding it, after that process has completed its task

4. Circular wait:


there exists a set {P0, P1, …, Pn} of waiting processes such that P0 is waiting for a resource that is held by P1, P1 is waiting for a resource that is held by P2, …, Pn–1 is waiting for a resource that is held by Pn, and Pn is waiting for a resource that is held by P0.