操作系统-银行家算法

某系统有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。可找到安全序列,所以可分配。

posted @ 2020-12-29 21:36  尘埃于光年  阅读(957)  评论(0编辑  收藏  举报