REQ1: p0 : 0 0 2
REQ1(0 0 2) <= need(p0)(8 4 2)
REQ1(0 0 2) <= Available(3 2 2)
Allocation = allocation + REQ1
p0 |
0 |
0 |
3 |
p1 |
3 |
2 |
0 |
p2 |
2 |
1 |
1 |
Need = Need-REQ1
p0 |
8 |
4 |
0 |
p1 |
3 |
0 |
0 |
p2 |
1 |
2 |
2 |
Max
p0 |
8 |
4 |
3 |
p1 |
6 |
2 |
0 |
p2 |
3 |
3 |
3 |
Available = Available-REQ1
Now solve via safetry Bankers algorithms :
work= Available = 3 2 0
need(p1) <= work
work= work + allocation(p1) = 6 4 0
need(p0) or need(p2) > work .so, it return FALSE . its not safe state .
same method apply for REQ@
REQ2: p1 : 2 0 0
REQ2(2 0 0) <= need(p1)(8 4 2)
REQ2(2 0 0) <= Available(3 2 2)
Allocation = allocation + REQ2
p0 |
0 |
0 |
1 |
p1 |
5 |
2 |
0 |
p2 |
2 |
1 |
1 |
Need = Need - REQ2
p0 |
8 |
4 |
2 |
p1 |
1 |
0 |
0 |
p2 |
1 |
2 |
2 |
Available = Available - REQ2
Now solve via safetry Bankers algorithms :
work= Available = 1 2 2
need(p1) <= work
work= work + allocation(p1) = 6 4 2
need(p2) <= work
work = work + allocation(p2) = 8 5 3
need(p0) <= work
work = work + allocation(p0) = 8 5 4
so , state is safe : safe sequence is {p1 -> p2 -> p0} . may be more . but its one of them .
so this request of p1 GRANTED