某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。进程对资源的需求和分配情况如下:
按银⾏家算法回答下列问题:
(1)现在系统中的各类资源还剩余多少?(4分)
(2)现在系统是否处于安全状态?为什么?(6分)
(3)现在进程P2提出需要A类资源0个、B类资源4个、C类资源2个和D类资源0个,系统能否满⾜请求?
(1)
A: 3-(1+1)=1
B: 14-(3+6)=5
C: 12-(1+5+3+1)=2
D: 12-(2+4+2+4)=0
Available=(1,5,2,0)
(2)
Need=Max-Allocation=
Available>Need
(1,5,2,0)>(0 0 0 0) p1
(1,5,2,0)>(0 0 2 0) p4 p1 Available←(1 5 2 0)+(0 0 1 2)=(1 5 3 2)
Available>Need
(1 5 3 2)>(1 0 0 2) p3 p3 Available←(1 5 3 2)+(1 3 5 4)=(2 8 8 6)
Available>Need
(2 8 8 6)>(0 7 5 0) p2
(2 8 8 6)>(0 6 4 2) p5
存在安全序列,如P1,P3,P4,P5,P2,所以安全
(3)
RequestP2(0 4 2 0)<Need2(0 7 5 0)
RequestP2(0 4 2 0)<Available(1 5 2 0)
Available=(1 5 2 0)-(0 4 2 0)=(1 1 0 0)
Allocation2=(1 0 0 0)+(0 4 2 0)=(1 4 2 0)
Need=Max-Allocation=
Available>Need
(1 1 0 0)>(0 0 0 0) P1 Available←(1 1 0 0)+(0 0 1 2)=(1 1 1 2)
Available>Need
(1 1 1 2)>(1 0 0 2) P3 Available←(1 1 1 2)+(1 3 5 4)=(2 4 6 6)
Available>Need
(2 4 6 6)>(0 3 3 0) P2
(2 4 6 6)>(0 0 2 0) P4 Available←(2 4 6 6)+(1 4 2 0)+(0 6 3 2)=(3 14 11 8)
Available>Need
(3 14 11 8)>(0 6 4 2) P5
能,因为试探分配后,可⽤资源为1,1,0,0。可找到安全序列,所以可分配。