Tag: Deadlock Operating System

Deadlock Detection | Deadlock Prevention

Deadlock Handling-

 

Before you go through this article, make sure that you have gone through the previous article on Deadlock in OS.

 

The various strategies for handling deadlock are-

 

 

  1. Deadlock Prevention
  2. Deadlock Avoidance
  3. Deadlock Detection and Recovery
  4. Deadlock Ignorance

 

Deadlock Prevention-

 

  • This strategy involves designing a system that violates one of the four necessary conditions required for the occurrence of deadlock.
  • This ensures that the system remains free from the deadlock.

 

The various conditions of deadlock occurrence may be violated as-

 

1. Mutual Exclusion-

 

  • To violate this condition, all the system resources must be such that they can be used in a shareable mode.
  • In a system, there are always some resources which are mutually exclusive by nature.
  • So, this condition can not be violated.

 

2. Hold and Wait-

 

This condition can be violated in the following ways-

 

Approach-01:

 

In this approach,

  • A process has to first request for all the resources it requires for execution.
  • Once it has acquired all the resources, only then it can start its execution.
  • This approach ensures that the process does not hold some resources and wait for other resources.

 

Drawbacks-

 

The drawbacks of this approach are-

  • It is less efficient.
  • It is not implementable since it is not possible to predict in advance which resources will be required during execution.

 

Approach-02:

 

In this approach,

  • A process is allowed to acquire the resources it desires at the current moment.
  • After acquiring the resources, it start its execution.
  • Now before making any new request, it has to compulsorily release all the resources that it holds currently.
  • This approach is efficient and implementable.

 

Approach-03:

 

In this approach,

  • A timer is set after the process acquires any resource.
  • After the timer expires, a process has to compulsorily release the resource.

 

3. No Preemption-

 

  • This condition can by violated by forceful preemption.
  • Consider a process is holding some resources and request other resources that can not be immediately allocated to it.
  • Then, by forcefully preempting the currently held resources, the condition can be violated.

 

A process is allowed to forcefully preempt the resources possessed by some other process only if-
  • It is a high priority process or a system process.
  • The victim process is in the waiting state.

 

4. Circular Wait-

 

  • This condition can be violated by not allowing the processes to wait for resources in a cyclic manner.
  • To violate this condition, the following approach is followed-

 

Approach-

 

  • A natural number is assigned to every resource.
  • Each process is allowed to request for the resources either in only increasing or only decreasing order of the resource number.
  • In case increasing order is followed, if a process requires a lesser number resource, then it must release all the resources having larger number and vice versa.
  • This approach is the most practical approach and implementable.
  • However, this approach may cause starvation but will never lead to deadlock.

 

Deadlock Avoidance-

 

  • This strategy involves maintaining a set of data using which a decision is made whether to entertain the new request or not.
  • If entertaining the new request causes the system to move in an unsafe state, then it is discarded.
  • This strategy requires that every process declares its maximum requirement of each resource type in the beginning.
  • The main challenge with this approach is predicting the requirement of the processes before execution.
  • Banker’s Algorithm is an example of a deadlock avoidance strategy.

 

Deadlock Detection and Recovery-

 

  • This strategy involves waiting until a deadlock occurs.
  • After deadlock occurs, the system state is recovered.
  • The main challenge with this approach is detecting the deadlock.

 

Deadlock Ignorance-

 

  • This strategy involves ignoring the concept of deadlock and assuming as if it does not exist.
  • This strategy helps to avoid the extra overhead of handling deadlock.
  • Windows and Linux use this strategy and it is the most widely used method.
  • It is also called as Ostrich approach.

 

To gain better understanding about Deadlock Handling Strategies,

Watch this Video Lecture

 

Next Article- Practice Problems On Deadlock

 

Get more notes and other study material of Operating System.

Watch video lectures by visiting our YouTube channel LearnVidFun.

Deadlock in OS | Conditions for Deadlock

Deadlock in OS-

 

Deadlock is a situation where-

  • The execution of two or more processes is blocked because each process holds some resource and waits for another resource held by some other process.

 

Example-

 

 

Here

  • Process P1 holds resource R1 and waits for resource R2 which is held by process P2.
  • Process P2 holds resource R2 and waits for resource R1 which is held by process P1.
  • None of the two processes can complete and release their resource.
  • Thus, both the processes keep waiting infinitely.

 

Conditions For Deadlock-

 

There are following 4 necessary conditions for the occurrence of deadlock-

  1. Mutual Exclusion
  2. Hold and Wait
  3. No preemption
  4. Circular wait

 

1. Mutual Exclusion-

 

By this condition,

  • There must exist at least one resource in the system which can be used by only one process at a time.
  • If there exists no such resource, then deadlock will never occur.
  • Printer is an example of a resource that can be used by only one process at a time.

 

2. Hold and Wait-

 

By this condition,

  • There must exist a process which holds some resource and waits for another resource held by some other process.

 

3. No Preemption-

 

By this condition,

  • Once the resource has been allocated to the process, it can not be preempted.
  • It means resource can not be snatched forcefully from one process and given to the other process.
  • The process must release the resource voluntarily by itself.

 

4. Circular Wait-

 

By this condition,

  • All the processes must wait for the resource in a cyclic manner where the last process waits for the resource held by the first process.

 

 

Here,

  • Process P1 waits for a resource held by process P2.
  • Process P2 waits for a resource held by process P3.
  • Process P3 waits for a resource held by process P4.
  • Process P4 waits for a resource held by process P1.

 

Important Note-

 

  • All these 4 conditions must hold simultaneously for the occurrence of deadlock.
  • If any of these conditions fail, then the system can be ensured deadlock free.

 

To gain better understanding about Deadlock in OS,

Watch this Video Lecture

 

Next Article- Deadlock Handling Strategies

 

Get more notes and other study material of Operating System.

Watch video lectures by visiting our YouTube channel LearnVidFun.