【操作系统】银行家算法原理及具体操作例题

* 银行家算法解读

**Dijkstra, 1965年提出银行家算法。

**• 一个银行家把他的固定资金(capital)代给若干顾客。只要不出现一个顾客借走所有资金后还还不够,银行家的资金应是安全的。银行家需要一个算法保证借出去的资金在有限时间内可收回。
**• 假定顾客分成若干次进行;并在第一次借款时,能说明他的最大借款额。

• 具体算法
– 顾客的借款操作依次顺序进行,直到全部操作完成;
– 银行家对当前顾客的借款操作进行判断, 以确定其安全性(能否支持顾客借款,直 到全部归还);
– 安全时,贷款;否则,暂不贷款。

银行家算法的特点:
• 允许互斥、部分分配和不可抢占,可提高资源利用率;
• 要求事先说明最大资源要求,在现实中很困难;**

*示例
某系统有4类资源,R1,R2,R3,R4, 有5个并发进程P0,P1,P2,P3,P4。各进程的最大资源请求和已分配的资源矩阵以及当前资源的剩余向量如下表。
在这里插入图片描述

判断系统当前是否处于安全状态。

解答:
Step1:建立当前各进程需求矩阵(最大需求量减去已分配向量)
在这里插入图片描述
Step2:确定执行顺序
1、P0已获得所需的全部资源,执行后释放资源(0,0,1,2),则当前资源剩余量更新为:
在这里插入图片描述
2、此时可以执行P2或P3,选择一种即可。P2获取所需资源(1,0,0,2),执行P2时,
在这里插入图片描述
执行P2后, 释放资源(2,3,5,6),
在这里插入图片描述
3、分配资源(0,0,2,0)给P3,在这里插入图片描述
P3执行后,释放资源(0,6,5,2),
在这里插入图片描述
4、P1或P4执行,选择一种即可。P1执行,分配资源(0,7,5,0)
在这里插入图片描述
P1执行后,释放资源(1,7,5,0)
在这里插入图片描述
5、P4执行,分配资源(0,6,4,2)
在这里插入图片描述
P4执行后,释放资源(0,6,5,6)
在这里插入图片描述
Step3:结论,未发生死锁,安全。
检验: 在这里插入图片描述

  • 32
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暮雨清笛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值