


Deadlock :
1) Dead lock is a situation where a group of processes get stuck because each one is wait for another task to complete .
2) Imagine two students, Adi and Dia, sitting at a table in a classroom. Each of them needs both a pencil and an eraser to complete their homework. However, there’s only one pencil and one eraser available on the table.
How does deadlock happens ?
Dead lock happens when all the four condition are present
1) Mutual Exclusion : It means that some resources in the system cannot be shared .
Eg :- If there is one printer , and process related to printer is two , here one process will wait for another to finish its process.
2) Hold and Wait : Processes that already have some resources and they are requesting for additional ones .
Eg:- Imagine a person holding a pencil and then request for a piece of paper . They don’t let go pencil while waiting for paper.
3) No Preemption : Its states that a resources cannot be taken away from a process until the process releases the resource.
Eg : If someone is using computer , someone else cannot take it unless it is free.
4) Circular Wait : In this the process is waiting from the resources that are held by the next process .
Eg :- Suppose process A is waiting for resource which is held by process B , B is waiting for resource which is held by C & process C is waiting for resource that is held by process A . This creates a circle , and no process can proceed because they’re all waiting on each other.
Real Life Example :
Imagine you and your three friends—Adi, Dia, Tanisha, and Aaron—are playing a game. In this game, there are four unique objects: a ball, a book, a key, and a coin. To win, each of you needs to collect two specific objects. The catch is that each of you already has one object, and you need another specific object that someone else has.
Here’s how the situation unfolds:
How to deal with deadlock :
There are few ways to deal with deadlock :
1) Deadlock Prevention: The system is designed so that at least one of the four conditions mentioned above cannot occur.
2) Deadlock Avoidance: The system carefully manages resources and checks whether giving a resource will lead to a deadlock. If it leads to deadlock, it won’t grant the resource.
3) Deadlock Detection and Recovery: The system regularly checks for deadlocks. If a deadlock is detected, it might take some actions, like terminating some processes or forcibly taking resources away, to break the deadlock.
4) Ignoring Deadlock: Sometimes, systems ignores the problem, especially if deadlocks are rare. This is known as "ostrich algorithm" because the system "buries its head in the sand" and hopes deadlocks don’t happen.