Deadlock in the operating system is one of the most important concepts you must know. It is the basic topic in the operating system that every computer software student should aware of.
I tried to categorize deadlock concepts based on the questions asked in many of the interviews. Going through these concepts and examples described below will help you understand deadlock. Also, it will help you with your job interviews.
Let’s start with the basics of Deadlock in the Operating System (OS).
Note: These questions are enough to get the basics of deadlock. I will keep adding more questions here.
Table of Contents
Definition: Deadlock is the condition that occurs when two processes wait for each other to complete and halt without proceeding further. Here two processes wait for the resources acquired by each other.
Deadlock mostly occurs in multitasking or client-server architecture where resource gets shared among multiple processes. If one process wants to access the resources which are acquired by other processes, the process needs to wait until the resource gets released by other processes.
This deadlock problem should have to be resolved by the Operating System as all the resource management is carried out at the operating system level. But this does not get resolve every time and the system gets hanged.
Suppose there are multiple clients who want to access the database table at the server-side. Here database is a resource. But the server can not give access to all the clients to modify data at the same time. If the server allows multiple clients to modify data in the database table at the same time, data violations will occur.
Interview Tip: Whenever an interviewer asked you deadlock interview questions, always try to explain them by taking an actual scenario.
Now consider the Deadlock in Operating System scenario…
Client1 locks and holds the table1 from the database DB. Client1 wait for table2 from the same database to proceed. Client2 locks and holds the table2 from the database DB. Client2 wait for table1 from the same database to proceed.
Client1 and Client2 are the two processes. Database table1 and table2 are the two resources.
Both clients cannot proceed further as both are waiting for the resources held by each other. So the deadlock occurs.
There are multiple necessary conditions to occur deadlock in the operating system. Even if one condition does not get satisfied, deadlock cannot occur. These conditions are as follows.
If you want not to occur deadlock, you should have to care not to satisfy any one of the conditions mentioned above.
There are multiple deadlocks handling strategies to avoid deadlock.
We can prevent the deadlock not to occur and it is the optimal solution. But preventing the system not to occur deadlock is not easy as we require prior information about processes as well as resources.
On the other hand, if it occurs we have a recovery mechanism.
There are four strategies to handle deadlock. (Types of Deadlock)
This is very common and asked in many of the on-campus job interviews. Read deadlock preventions vs avoidance in detail.
In this post, I have shared the basic concept of deadlock in the operating system. We will discuss the necessary conditions to occur deadlock, how to prevent deadlock, Deadlock handling Strategies in detail in the upcoming articles.
I am working on this article to add more deadlock interview questions. Meanwhile, you can check the