0% found this document useful (0 votes)
3 views7 pages

Wait For Graph Deadlock Detection in Distributed System

Wait For Graph Deadlock Detection in Distributed System

Uploaded by

pingalesai9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views7 pages

Wait For Graph Deadlock Detection in Distributed System

Wait For Graph Deadlock Detection in Distributed System

Uploaded by

pingalesai9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Search...

Aptitude Engineering Mathematics Discrete Mathematics Operating Syste Sign In

Wait For Graph Deadlock Detection in

Distributed S stem y
Last Updated : 28 Apr, 2022

Deadlocks are a fundamental problem in distributed systems. A


process may request resources in any order and a process can
request resources while holding others. A Deadlock is a situation
where a set of processes are blocked as each process in a
Distributed system is holding some resources and that acquired
resources are needed by some other processes.

x
E ample:

If there are three processes p1,p2 and p1 are acquiring r1 resource


and that r1 is needed by p2 which is acquiring another resource r2
and that is needed by p1. Here cycle occurs. It is called a deadlock.

Here in the above graph we found a cycle from P1 to P2 and again to


P1. So we can say that the system is in a deadlock state.
Open In App
The Problem of deadlocks has been generally studied in distributed
systems under the following models :

The system has only reusable resources.


Processes are allowed only exclusive access to resources.
There is only one copy of each resource.

Deadlock Detection:

The deadlock Detection Algorithm is of two types:

Wait-for-Graph Algorithm (Single Instance)


Banker's Algorithm (Multiple Instance)

Wait -for-Graph Algorithm: It is a variant of the Resource Allocation


graph. In this algorithm, we only have processes as vertices in the
graph. If the Wait-for-Graph contains a cycle then we can say the
system is in a Deadlock state. Now we will discuss how the Resource
Allocation graph will be converted into Wait-for-Graph in an
Algorithmic Approach. We need to remove resources while
converting from Resource Allocation Graph to Wait-for-Graph.

Resource Allocation Graph: Contains Processes and Resources.


Wait -for-Graph: Contains only Processes after removing the
Resources while conversion from Resource Allocation Graph.

Algorithm:

Step 1: Take the first process (Pi) from the resource allocation graph
and check the path in which it is acquiring resource (Ri), and start a
wait-for-graph with that particular process.

Step 2: Make a path for the Wait-for-Graph in which there will be no


Resource included from the current process (Pi) to next process (Pj),
from that next process (Pj) find a resource (Rj) that will be acquired by
next Process (Pk) which is released from Process (Pj).
Open In App
Step 3: Repeat Step 2 for all the processes.

Step 4: After completion of all processes, if we find a closed-loop


cycle then the system is in a deadlock state, and deadlock is
detected.

Now we will see the working of this Algorithm with an Example.


Consider a Resource Allocation Graph with 4 Processes P1, P2, P3,
P4, and 4 Resources R1, R2, R3, R4. Find if there is a deadlock in the
Graph using the Wait for Graph-based deadlock detection algorithm.

Step 1: First take Process P1 which is waiting for Resource R1,


resource R1 is acquired by Process P2, Start a Wait-for-Graph for the
above Resource Allocation Graph.

Step 2: Now we can observe that there is a path from P1 to P2 as P1 is


waiting for R1 which is been acquired by P2. Now the Graph would be
after removing resource R1 looks like.
Open In App
Step 3: From P2 we can observe a path from P2 to P3 as P2 is waiting
for R4 which is acquired by P3. So make a path from P2 to P3 after
removing resource R4 looks like.

Step 4: From P3 we find a path to P4 as it is waiting for P3 which is


acquired by P4. After removing R3 the graph looks like this.

Open In App
Step 5: Here we can find Process P4 is waiting for R2 which is
acquired by P1. So finally the Wait-for-Graph is as follows:

Step 6: Finally In this Graph, we found a cycle as the Process P4


again came back to the Process P1 which is the starting point (i.e., it's
a closed-loop). So, According to the Algorithm if we found a closed
loop, then the system is in a deadlock state. So here we can say the
system is in a deadlock state.

Now consider another Resource Allocation Graph with 4 Processes


P1, P2, P3, P4, and 3 Resources
OpenR1,InR2,
AppR3. Find if there is a deadlock
in the Graph using the Wait for Graph-based deadlock detection
algorithm.

Step 1: First take Process P1 which is waiting for Resource R1,


resource R1 is acquired by Process P2, Start a Wait-for-Graph for the
above Resource Allocation Graph.

Step 2: Now we can observe that there is a path from P1 to P2 and


also from P1 to P4 as P1 is waiting for R1 which is been acquired by P2
and P1 is also waiting for R2 which is acquired by P4. Now the Graph
would be after removing resources R1 and R2 looks like.

Open In App
Step 3: From P2 we can observe a path from P2 to P3 as P2 is waiting
for R3 which is acquired by P3. So make a path from P2 to P3 after
removing resource R3 looks like.

Step 4: Here we can find Process P4 is waiting for R3 which is


acquired by P3. So finally the Wait-for-Graph looks like after
removing Resource R3 looks like.

Step 5: In this Graph, we don't find a cycle as no process came back


to the starting point (i.e., there is no closed loop). So, According to
the Algorithm if we found a closed loop, then the system is in a
deadlock state. But here we didn't find any closed loop so the system
is not in a deadlock state. The system is in a safe state.

Note: In Example 2, even though it looks like a loop but there is no


process that has reached the first process, or starting point again. So
there is no closed loop.

Issues in Wait -for-Graph based Deadlock Detection Algorithm :

For every resource we call WFG Detection Algorithm, the


computation time would be very
Openhigh for the CPU if there are many
In App

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy