- 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.
By Er Gurpreet Singh,
Senior Software Engineer,
Sopra Steria India
Tuesday, 6 January 2015
Necessary and Sufficient Conditions for a Deadlock
Labels:
OS
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment