A deadlock is a situation when a process in
the system has acquired some resources and waiting for more resources which are
acquired by some other process which in turn is waiting for the resources
acquired by this process. Hence, none of them can proceed and OS can’t do any
work.
Necessary and Sufficient deadlock conditions:
Coffman (1971) identified four (4) conditions that must hold simultaneously for there to be a deadlock.
1. Mutual Exclusion Condition
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
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
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.
As an example, consider the traffic deadlock in the following figure
Submitted By: Deeksha Pundir
B.Sc. 2nd year(4th sem.)
Roll no: 2321



No comments:
Post a Comment