Resource Allocation Graph
Resource Allocation Graph
System:
If there is a cycle in the Resource Allocation Graph and each resource in the
cycle provides only one instance, then the processes will be in deadlock. For
example, if process P1 holds resource R1, process P2 holds resource R2 and
process P1 is waiting for R2 and process P2 is waiting for R1, then process
P1 and process P2 will be in deadlock.
Example 2
The total number of processes are three; P1, P2 & P3 and the total
number of resources are two; R1 & R2.
Allocation matrix –
For constructing the allocation matrix, just go to the resources and see to
which process it is allocated.
R1 is allocated to P1, therefore write 1 in allocation matrix and similarly,
R2 is allocated to P2 as well as P3 and for the remaining element just
write 0.
Request matrix –
In order to find out the request matrix, you have to go to the process and
see the outgoing edges.
P1 is requesting resource R2, so write 1 in the matrix and similarly, P2
requesting R1 and for the remaining element write 0.
So now available resource is = (0, 0).
Checking deadlock (safe or not) –
So, there is no deadlock in this RAG. Even though there is a cycle, still there
is no deadlock. Therefore in multi-instance resource cycle is not sufficient
condition for deadlock.