# Andrew S. Tanenbaum (OS) Edition 4 Exercise 6 Question 28 (Page No. 468)

60 views
Two processes, $A$ and $B,$ each need three records, $1, 2,$ and $3,$ in a database. If $A$ asks for them in the order $1, 2, 3,$ and $B$ asks for them in the same order, deadlock is not possible. However, if $B$ asks for them in the order $3, 2, 1,$ then deadlock is possible. With three resources, there are $3!$ or six possible combinations in which each process can request them. What fraction of all the combinations is guaranteed to be deadlock free?

Let the resources

$(R1,R2,R3)=(1,2,3)$

Suppose A requests the resources in the order $(1,2,3)$

and B can request the resources in any order ${(1,2,3)(1,3,2)(2,1,3)(2,3,1)(3,1,2)(3,1,2)}$

• $A=(1,2,3) ; B=(2,1,3)$
• $A=(1,2,3); B=(2,3,1)$
• $A=(1,2,3) ; B=(3,1,2)$
• $A=(1,2,3) ; B=(3,2,1)$

When there is NO possibility of Deadlock ?

• $A=(1,2,3); B=(1,2,3)$
• $A=(1,2,3); B=(1,3,2)$

Hence, for 6 possible combinations for $A=(1,2,3)$ , only 2 combinations are there which can never lead to Deadlock.

## Related questions

1
93 views
Explain the differences between deadlock, livelock, and starvation.