Javatpoint Logo
Javatpoint Logo

Introduction to Deadlock

Every process needs some resources to complete its execution. However, the resource is granted in a sequential order.

  1. The process requests for some resource.
  2. OS grant the resource if it is available otherwise let the process waits.
  3. The process uses it and release on the completion.

A Deadlock is a situation where each of the computer process waits for a resource which is being assigned to some another process. In this situation, none of the process gets executed since the resource it needs, is held by some other process which is also waiting for some other resource to be released.

Let us assume that there are three processes P1, P2 and P3. There are three different resources R1, R2 and R3. R1 is assigned to P1, R2 is assigned to P2 and R3 is assigned to P3.

After some time, P1 demands for R1 which is being used by P2. P1 halts its execution since it can't complete without R2. P2 also demands for R3 which is being used by P3. P2 also stops its execution because it can't continue without R3. P3 also demands for R1 which is being used by P1 therefore P3 also stops its execution.

In this scenario, a cycle is being formed among the three processes. None of the process is progressing and they are all waiting. The computer becomes unresponsive since all the processes got blocked.

os Deadlock

Difference between Starvation and Deadlock

Sr. Deadlock Starvation
1 Deadlock is a situation where no process got blocked and no process proceeds Starvation is a situation where the low priority process got blocked and the high priority processes proceed.
2 Deadlock is an infinite waiting. Starvation is a long waiting but not infinite.
3 Every Deadlock is always a starvation. Every starvation need not be deadlock.
4 The requested resource is blocked by the other process. The requested resource is continuously be used by the higher priority processes.
5 Deadlock happens when Mutual exclusion, hold and wait, No preemption and circular wait occurs simultaneously. It occurs due to the uncontrolled priority and resource management.

Necessary conditions for Deadlocks

  1. Mutual Exclusion
  2. A resource can only be shared in mutually exclusive manner. It implies, if two process cannot use the same resource at the same time.

  3. Hold and Wait
  4. A process waits for some resources while holding another resource at the same time.

  5. No preemption
  6. The process which once scheduled will be executed till the completion. No other process can be scheduled by the scheduler meanwhile.

  7. Circular Wait
  8. All the processes must be waiting for the resources in a cyclic manner so that the last process is waiting for the resource which is being held by the first process.

Please Share

facebook twitter google plus pinterest

Learn Latest Tutorials

B.Tech / MCA