Consider a system with five processes 𝑃0 through 𝑃4 and three resource types…
2014
Consider a system with five processes 𝑃0 through 𝑃4 and three resource types 𝑅1, 𝑅2 and 𝑅3 . Resource type 𝑅1 has 10 instances, 𝑅2 has 5 instances and 𝑅3 has 7 instances. Suppose that at time 𝑇0, the following snapshot of the system has been taken :
Allocation
𝑅1 𝑅2 𝑅3
𝑃0 0 1 0
𝑃1 2 0 0
𝑃2 3 0 2
𝑃3 2 1 1
𝑃4 0 2 2
Max
𝑅1 𝑅2 𝑅3
7 5 3
3 2 2
9 0 2
2 2 2
4 3 3
Available
𝑅1 𝑅2 𝑅3
3 3 2
Assume that now the process 𝑃1 requests one additional instance of type 𝑅1 and two instances of resource type 𝑅3. The state resulting after this allocation will be
- A.
Ready state
- B.
Safe state
- C.
Blocked state
- D.
Unsafe state
Attempted by 83 students.
Show answer & explanation
Correct answer: B
Answer: The system will be in a safe state.
Reasoning (Banker's algorithm):
Total instances: R1 = 10, R2 = 5, R3 = 7.
Initial Allocation matrix (P0..P4):
P0 (0,1,0), P1 (2,0,0), P2 (3,0,2), P3 (2,1,1), P4 (0,2,2).
Max matrix (P0..P4):
P0 (7,5,3), P1 (3,2,2), P2 (9,0,2), P3 (2,2,2), P4 (4,3,3).
Compute Need = Max - Allocation:
P0 (7,4,3), P1 (1,2,2), P2 (6,0,0), P3 (0,1,1), P4 (4,1,1).
Initial Available: (3,3,2). P1 requests (1,0,2).
Check request <= Need for P1: (1,0,2) <= (1,2,2) — allowed.
Check Available >= request: (3,3,2) >= (1,0,2) — allowed.
Tentatively grant request: new Available = (3,3,2) - (1,0,2) = (2,3,0). New Allocation for P1 = (3,0,2). New Need for P1 = (0,2,0).
Safety check (find a sequence where each process's need <= current work):
Start with Work = Available = (2,3,0). P1 need (0,2,0) <= Work, so P1 can finish. Release P1 allocation (3,0,2) -> Work becomes (5,3,2).
With Work = (5,3,2), P3 need (0,1,1) <= Work, so P3 finishes. Release (2,1,1) -> Work becomes (7,4,3).
With Work = (7,4,3), P0 need (7,4,3) <= Work, so P0 finishes. Release (0,1,0) -> Work becomes (7,5,3).
With Work = (7,5,3), P2 need (6,0,0) <= Work, so P2 finishes. Release (3,0,2) -> Work becomes (10,5,5).
With Work = (10,5,5), P4 need (4,1,1) <= Work, so P4 finishes. All processes can finish.
Therefore a safe sequence exists (one such sequence is P1 -> P3 -> P0 -> P2 -> P4), so the system is in a safe state after the requested allocation.