An Operating System is defined as a program that, after being initially loaded into the computer by a boot program, manages all of the other application programs in a computer.
The Operating System basically acts as an interface between the computer user and the computer hardware, and controls the execution of programs.
In this article, I will explain in detail about the Deadlocks in Operating System.
WHAT ARE DEADLOCKS?
When a process executes in an Operating System, it uses the resources in the following way -
Requests a resource
Use the resource
Releases the resource
A Deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process.
To define Deadlock in an Operating System, it is a situation where two or more processes or threads are unable to proceed because each process is waiting for the other to release a resource or terminate.
EXAMPLE OF A DEADLOCK
There are two Processes - Process 1 and Process 2.
There are two Resources - Resource 1 and Resource 2.
- The Resource 1 is assigned to the Process 1 and the Resource 2 is assigned to the Process 2.
- The Process 1 is waiting for the Resource 2 which is acquired by Process 2 and the Process 2 is waiting for the Resource 1 which is acquired by the Process 1.
Refer to the following diagram to understand the condition -
In this above situation, the requirements of both Process 1 and Process 2 are not being fulfilled, thus this is defined as the condition of Deadlock.
NECESSARY CONDITIONS FOR DEADLOCK TO OCCUR (COFFMAN CONDITIONS)
A Deadlock can arise if the following four conditions occur simultanoeusly, these conditions were first introduced by Edward G. Coffman -
Mutual Exclusion - It means that two or more resources are non-shareable.
Hold and Wait - A process is holding atleast one resource and waiting for other resources.
No Preemption - A resource cannot be taken from a process unless the process releases the resource.
Circular Wait - A set of processes waiting for each other in circular form.
DEADLOCK HANDLING
It is absolutely necessary to handle the condition of a Deadlock, otherwise it can deteriorate your system and hamper the execution of multiple processes.
Deadlock Handling refers to the strategies and techniques employed to prevent, detect and resolve Deadlocks in Operating Systems.
There are multiple techniques and strategies which can be used to handle the Deadlocks -
- Deadlock Ignorance
- Deadlock Prevention
- Deadlock Avoidance
- Deadlock Detection and Recovery
1. Deadlock Ignorance -
It is the most widely used approach among all the mechanisms. In this approach, the Operating System assumes that the Deadlock never occurs, it simply ignores the Deadlock. This approach is best suitable for a single end user system where the User uses the system only for browsing and all the other stuff.
2. Deadlock Prevention -
The condition of Deadlock occurs only when Mutual Exclusion, Hold and Wait, No Preemption and Circular Wait holds simultaneously. If we can somehow negate one of the four conditions at any time, then the Deadlock can never occur in the system.
Thus, the main idea behind this approach is to fail one of the 4 necessary conditions for the Deadlock to occur.
3. Deadlock Avoidance -
In this technique, the Operating System checks whether the system is in safe state or in unsafe state at every step which the Operating System performs. This process continues until the system is in the safe state. Once the system moves to the unsafe state, the OS has to backtrack one step.
4. Deadlock Detection and Recovery -
This approach lets the process fall into the Deadlock and then periodically check whether the Deadlock occurs or not. If the Deadlock occurs then it applies some of the above discussed recovery methods to get rid of the Deadlock.
CONCLUSION
The conclusion is, that the Operating System generally uses the Deadlock Ignorance technique to handle Deadlocks as the other techniques would slow down the Operating System. Still, there are components that need more protection than others. For this the OS uses a combination of the previous algorithms, usually trying to break the circular wait somehow.
And thats it! You have successfully learnt all about the Deadlocks in Operating Systems!
Connect with me on Linkedin :- Linkedin
Do check out my Github for amazing projects:- Github
View my Personal Portfolio :- Aryan's Portfolio
Top comments (4)
Great Content!
Thanks!
Do wrote a article about difference between deadlock, starvation and livelocks!
Sure! I will write it very soon