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.
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. |
Let's take 1st case,
After allowing Req 1,
Available: X=3, Y=2, Z=0
With this, we can satisfy P1's requirement.
So available becomes: X=6, Y=4, Z=0.
Since Z is not available, neither P0's nor P2's requirement can be satisfied.
So, it is an unsafe state.
Let's take 2nd case,
After allowing Req 2,
Available: X=1, Y=2, Z=2
With this, we can satisfy any one of P1's or P2's requirements.
Let's first satisfy P1's requirement.
So Available now becomes:
X=6, Y=4, Z=2
Now with the availability, we can satisfy P2's requirement.
So Available now becomes,
X=8, Y=5, Z=3
With this availability, P0 can also be satisfied.
So, hence it is in a safe state.
So from the above two cases, Req 1 cannot be permitted but Req 2 can be permitted.