GATE | GATE-CS-2014-(Set-1) | Question 65

An operating system uses the Banker’s algorithm for deadlock avoidance when managing the allocation of three resource types X, Y, and Z to three processes P0, P1, and P2. The table given below presents the current system state. Here, the Allocation matrix shows the current number of resources of each type allocated to each process and the Max matrix shows the maximum number of resources of each type required by each process during its execution.

GATECS2014Q42

There are 3 units of type X, 2 units of type Y and 2 units of type Z still available. The system is
currently in a safe state. Consider the following independent requests for additional resources in the
current state:



REQ1: P0 requests 0 units of X,  
      0 units of Y and 2 units of Z
REQ2: P1 requests 2 units of X, 
      0 units of Y and 0 units of Z

Which one of the following is TRUE?
(A) Only REQ1 can be permitted.
(B) Only REQ2 can be permitted.
(C) Both REQ1 and REQ2 can be permitted.
(D) Neither REQ1 nor REQ2 can be permitted


Answer: (B)

Explanation: This is the current safe state.

AVAILABLE X=3, Y=2, Z=2
MAX ALLOCATION
X Y Z X Y Z
P0 8 4 3 0 0 1
P1 6 2 0 3 2 0
P2 3 3 3 2 1 1

 

Now, if the request REQ1 is permitted, the state would become :

AVAILABLE X=3, Y=2, Z=0
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 3 8 4 0
P1 6 2 0 3 2 0 3 0 0
P2 3 3 3 2 1 1 1 2 2

 

Now, with the current availability, we can service the need of P1. The state would become :

AVAILABLE X=6, Y=4, Z=0
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 3 8 4 0
P1 6 2 0 3 2 0 0 0 0
P2 3 3 3 2 1 1 1 2 2

 

With the resulting availability, it would not be possible to service the need of either P0 or P2, owing to lack of Z resource.

Therefore, the system would be in a deadlock.

⇒ We cannot permit REQ1.

 


Now, at the given safe state, if we accept REQ2 :

AVAILABLE X=1, Y=2, Z=2
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 8 4 2
P1 6 2 0 5 2 0 1 0 0
P2 3 3 3 2 1 1 1 2 2

 

With this availability, we service P1 (P2 can also be serviced). So, the state is :

AVAILABLE X=6, Y=4, Z=2
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 8 4 2
P1 6 2 0 5 2 0 0 0 0
P2 3 3 3 2 1 1 1 2 2

 

With the current availability, we service P2. The state becomes :

AVAILABLE X=8, Y=5, Z=3
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 8 4 2
P1 6 2 0 5 2 0 0 0 0
P2 3 3 3 2 1 1 0 0 0

 

Finally, we service P0. The state now becomes :

AVAILABLE X=8, Y=5, Z=4
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 0 0 0
P1 6 2 0 5 2 0 0 0 0
P2 3 3 3 2 1 1 0 0 0

The state so obtained is a safe state. ⇒ REQ2 can be permitted.

So, only REQ2 can be permitted.

Hence, B is the correct choice.

 

Please comment below if you find anything wrong in the above post.

Quiz of this Question



My Personal Notes arrow_drop_up