Tuesday 6 January 2015

Necessary and Sufficient Conditions for a Deadlock


Coffman (1971) identified four (4) conditions that must hold simultaneously for there to be a deadlock.

1. Mutual Exclusion Condition
The resources involved are non-shareable.
Explanation: At least one resource (thread) must be held in a non-shareable mode, that is, only one process at a time claims exclusive control of the resource. If another process requests that resource, the requesting process must be delayed until the resource has been released.


2. Hold and Wait Condition
Requesting process hold already, resources while waiting for requested resources.
Explanation: There must exist a process that is holding a resource already allocated to it while  waiting for additional resource that are currently being held by other processes.

 
3. No-Preemptive Condition
Resources already allocated to a process cannot be preempted.
Explanation: Resources cannot be removed from the processes are used to completion or released voluntarily by the process holding it.
 
 
4. Circular Wait Condition
The processes in the system, form a circular list or chain where each process in the list is waiting for a resource held by the next process in the list.

No comments:

Post a Comment