【操作系统】避免死锁(银行家算法)

1、考虑某一系统,他有4类资源R1,R2,R3,R4,有5个并发进程P0,P1,P2,P3,P4。各进程的最大资源需求、已分配的资源矩阵和系统当前资源剩余向量如下图所示。请按银行家算法回答下列问题:

⑴ 计算由各进程的剩余请求向量组成的矩阵。

⑵ 系统当前是处于安全状态吗?

⑶ 当进程P4申请的资源分别为(0,2,0,2)时,系统能立即满足吗?

 分配矩阵(Allocation)最大需求量(Max)剩余请求向量(Need)
 R1R2R3R4 R1R2R3R4 R1R2R3R4
P0001200120000
P1100017500750
P2135423561002
P3063206520020
P4001406560642

注:剩余请求向量 = Max - All0cation

 

(2)判断系统是否安全,只要检查系统剩余资源向量(可利用的资源)是否能在各进程的剩余请求向量中能找到一个安全序列,分析如下:

当前剩余资源向量(可利用资源):

R1R2R3R4
1502
进程资源情况Work(剩余资源都给某个进程用)剩余请求向量(Need)分配矩阵(Allocation)Work+AllocationFinish
 R1R2R3R4 R1R2R3R4 R1R2R3R4R1R2R3R4
P01502000000121514true
P21514100213542868true
P12868075010003868true
P3386800200632314910true
P4314910064200143141014true

在T0时刻存在着一个安全序列{P0,P2,P1,P3,P4},故系统是安全的。

(3)当P4申请资源Request4(0,2,0,2)时;

  1. Request4(0,2,0,2)<= Need(0,6,4,2)
  2. Request4(0,2,0,2)<= Available(1,5,0,2)
  3. 系统先假定可为P4分配资源,并修改向量值,如图所示
  4. 再利用安全性算法检查此时系统是否安全
 分配矩阵(Allocation)最大需求量(Max)剩余请求向量(Need)
 R1R2R3R4 R1R2R3R4 R1R2R3R4
P0001200120000
P1100017500750
P2135423561002
P3063206520020
P4021606560440

当前剩余资源向量(可利用资源):

R1R2R3R4
1300
进程资源情况Work(剩余资源都给某个进程用)剩余请求向量(Need)分配矩阵(Allocation)Work+AllocationFinish
 R1R2R3R4 R1R2R3R4 R1R2R3R4R1R2R3R4
P01300000000121312true
P21312100213542666true
P326660020063221298true
P1212980750100031298true
P431298044002163141014true

由所进行的安全性算法检查得知,可以找到一个安全序列{P0,P2,P3,P1,P4},因此,系统是安全的,可以立即将P4所申请的资源分配给它。

  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值