Spring 2024 - CS604 - 2 - BC210414671
Spring 2024 - CS604 - 2 - BC210414671
BC210414671
Part 1:
1. Calculate the initial available resource.
Total Resources:
A: 7
B: 2
C: 3
Allocation Matrix:
[ ]
A B C
0 1 0
⋅
2 0 1
3 0 2
[ ]
A B C
6 1 2
3 1 2
5 0 2
Allocation matrix:
[ ]
A B C
0 1 0
2 0 1
3 0 2
[ ]
6−0 1−1 2−0
3−2 1−0 2−1
5−3 0−0 2−2
[ ]
6 0 2
1 1 1
2 0 0
Part 2:
Determine if the current system state is safe
Initial Available Resources:
[ 21 0 ]
Need Matrix
[ ]
6 0 2
1 1 1
2 0 0
Allocation matrix
[ ]
0 1 0
2 0 1
3 0 2
Check P1:
Need: [1, 1, 1]
Available: [2, 1, 0]
Since, Need 1<= Available is false, P1 cannot proceed.
Check P2:
Need: [2, 0, 0]
Available: [2, 1, 0]
Since, Need 2<= Available is false, P2 cannot proceed.
After P2 finishes, it releases its resources: [3 , 0, 2]
New available resources: [2+3, 1+0, 0+2] = [5, 1, 2]
Check P0 again:
Need: [6, 0, 2]
Available: [5, 1, 2]
Since, Need 0<= Available is false, P0 cannot proceed.
Check P1 again:
Need: [1, 1, 1]
Available: [5, 1, 2]
Since, Need 1<= Available is false, P1 cannot proceed.
After P1 finishes, it releases its resources: [2 , 0, 1]
New available resources: [5+2, 1+0, 2+1] = [7, 1, 3]
Check P0 again:
Need: [6, 0, 2]
Available: [7, 1, 3]
Since, Need 0<= Available is false, P0 cannot proceed.
After P2 finishes, it releases its resources: [0, 1, 0]
New available resources: [7+0, 1+1, 3+0] = [7, 2, 3]
Since all processes can finish the system is in a safe state. The safe sequence is:
{P2, P1, P0}