进程管理 -银行家算法(假设系统中有三类互斥资源R1 R2 R3 可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,)

银行家算法的目的

解决死锁问题,也就是旧进程资源不释放,新进程得不到资源。

什么是银行家算法

银行家就理解成放贷的人,放贷的人,是需要通过放贷赚钱的,所以他必须准确的把握放出去的钱能不能收回来,因为众所周知,有很多老赖,拖着钱不还,甚至自杀,携款潜逃,所以放贷的人必须确保钱能收回盈利,因为银行家自己的钱也是有限的,他要有资源,给更多对他有利的人放贷。操作系统就是一个银行家,它有很多资源,也有很多进程向他申请资源,所以操作系统必须管控好这些资源,避免造成死锁。

银行家算法的具体规则

1.当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳进该进程
2.进程可以分期请求资源,但请求的总数不能超过最大需求量
3.当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间内得到资源

具体例子:
假设系统中有三类互斥资源R1 R2 R3 可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,如果进程按 序列执行,那么系统状态是绝对安全。

这个很好算,在图片右侧有已经分配好的资源数,所以我们得先计算,系统还剩下多少资源。
R1: 9-1-2-2-1-1=2
R2: 8-2-1-1-2-1=1
R3: 5-1-1-3=0

而P1还缺 5个R1 3 R2 1R3 A选项排除
P2还缺 1个R2 可先走R2
P4还缺 1个R3 但是R3已经没了 所以D排除

所以先走P2 P2执行完空闲资源变成
R1:4 R2:3 R3:1 此时走P1以及资源不足,所以C排除,答案选B

在这里插入图片描述

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

举世无双勇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值