计算机操作系统的银行家算法解题步骤

题目与解答


题目描述:

某系统有A、B、C三类资源(数量分别为17、5、20)和P1~P5五个进程,在T0时刻系统状态如下表所示:

进程最大资源需求量(A,B,C)已分配资源数量(A,B,C)
P1(5,5,9)(2,1,2)
P2(5,3,6)(4,0,2)
P3(4,0,11)(4,0,5)
P4(4,2,5)(2,0,4)
P5(4,2,4)(3,1,4)

系统采用银行家算法实施死锁避免策略,回答下列问题:

  1. T0时刻是否为安全状态?若是,请给出安全序列。
  2. 在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
  3. 在②的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?

解答:

① T0时刻安全性判断

计算Need矩阵和Available向量:

进程Need (A,B,C)Available (A,B,C)
P1(3,4,7)2,3,3
P2(1,3,4)
P3(0,0,6)
P4(2,2,1)
P5(1,1,0)

安全序列推导过程:

进程WorkNeedAllocationWork+AllocationFinish
P42,3,32,2,12,0,44,3,7
P24,3,71,3,44,0,28,3,9
P38,3,90,0,64,0,512,3,14
P512,3,141,1,03,1,415,4,18
P115,4,183,4,72,1,217,5,20

结论:
T0时刻是安全状态,安全序列为 P4→P2→P3→P5→P1


注意:这里的资源为什么要这样先判断呢是因为你的所有资源都是不能超过题目给你的总的数据量也就是(17、5、20)然后你要必须要计算need所以这里已经计算过系统要的need还会流出多余的没有分配的资源量(2,3,3)所以当多余的need请求满足:need>=availatble的时候系统给出的资源量就已经超出了所以就不满足后面的银行家算法了

② T0时刻P2请求(0,3,4)的分配判断
  1. 检查请求合法性:

    • P2的Need = (1,3,4),请求(0,3,4) ≤ Need,合法。
    • 当前Available = (2,3,3),请求的C类资源为4,超过Available的C资源(3)。
  2. 结论:
    不能分配,因为C类资源不足,P2阻塞。


注意:如果再次请求的资源量累加到need之后要同步更新系统当前可以支持的分配的资源量这样才可以进行下一步的银行家算法求证安全序列

③ 在②的基础上P4请求(2,0,1)的分配判断
  1. 检查请求合法性:

    • P4的Need = (2,2,1),请求(2,0,1) ≤ Need,合法。
    • 当前Available = (2,3,3),请求(2,0,1) ≤ Available,可分配。
  2. 模拟分配后安全性验证:

    • 分配后Available更新为 (0,3,2),安全序列仍存在(P4→P2→P3→P5→P1)。
  3. 结论:
    可以分配,系统仍处于安全状态。


最终答案:

  1. T0时刻是安全的,安全序列为 P4→P2→P3→P5→P1
  2. P2请求(0,3,4)不可分配,因C类资源不足。
  3. P4请求(2,0,1)可分配,满足后系统仍安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

堕落年代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值