银行家算法操作系统

在银行家算法中若出现下述资源分配情况:
进程 已分配资源 需求资源 可剩余资源
P0 0 0 3 2 0 0 1 2 1 6 2 2
P1 1 0 0 0 1 7 5 0
P2 1 3 5 4 2 3 5 6
P3 0 3 3 2 0 6 5 2
P4 0 0 1 4 0 6 5 6
问:1,该状态是否安全?

2,若P2提出请求{1,2,2,2}后,系统能否将资源分配给它?

1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:
Work Need Allocation Work+Allocation Finish
P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 true
P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 true
P4 1 9 8 6 0 6 5 6 0 0 1 4 1 9 9 10 true
P1 1 9 9 10 1 7 5 0 1 0 0 0 2 9 9 10 true
P2 2 9 9 10 2 3 5 6 1 3 5 4 3 12 14 14 true
从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是安全的。
(2)P2提出请求Request2(1,2,2,2),按银行家算法进行检查:
·Request2(1,2,2,2) ≤Need(2,3,5,6)
·Request2(1,2,2,2) ≤Available(1,6,2,2)
·试分配并修改相应数据结构,资源分配情况如下:
Allocation Need Available
P0 0 0 3 2 0 0 1 2 0 4 0 0
P1 1 0 0 0 1 7 5 0
P2 2 5 7 6 1 1 3 4
P3 0 3 3 2 0 6 5 2
P4 0 0 1 4 0 6 5 6

·再利用安全性算法检查系统是否安全,可用系统资源Available(0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。

猜你喜欢

转载自blog.csdn.net/qq_42070071/article/details/80601770