进程管理 - 银行家算法

1 概述

银行家算法
目的:避免死锁
原理:以银行借贷系统的分配策略为基础,判断并保证系统的安全运行

2 银行家算法

2.1 原理

  • 我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于顾客向银行家贷款。(银行家 => 操作系统,资金 => 资源,顾客 => 进程
  • 为保证资金的安全,银行家 规定
    • (1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时,可以接纳顾客
    • (2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量
    • (3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款
    • (4) 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金

2.2 例题

【例题1】假设系统中有三类互斥资源 R1、R2、R3,可用资源数分别是 9,8,5。在 T0 时刻系统中有 P1、P2、P3、P4 和 P5 五个进程,这些进程对资源的最大需求量和已分配资源数如下图所示,如果进程按序列执行,那么系统状态是安全的。
在这里插入图片描述
供选择的答案:
A.P1 -> P2 -> P4 -> P5 -> P3
B.P2 -> P4 -> P5 -> P1 -> P3
C.P2 -> P1 -> P4 -> P5 -> P3
D.P4 -> P2 -> P5 -> P1 -> P3

解答思路:

  • 首先,根据 已分配资源数,算出 剩余资源数(红色字体部分)
    • 剩余 R1 = 9 - 1 - 2 - 2 - 1 - 1 = 2
    • 剩余 R2 = 8 - 2 - 1 -1 - 2 - 1 = 1
    • 剩余 R3 = 5 - 1 - 1- 0 - 0 - 3 = 0
  • 其次,根据 最大需求量已分配资源数,算出 还需资源数(蓝色字体部分)
  • 最后,判断 剩余资源数 能否满足 还需资源数
    • 剩余 R3 = 0,其中 P1、P3、P4、P5 均还需资源数 R3 = 1,所以第一个分配的,只能是 P2
    • P2 分配完成后,会释放资源,此时 完成、释放资源后的总资源数 如下图
    • 剩余资源数: R1 = 4,R2 = 2,R3 = 1 与 还需资源数 继续对比,此时能满足的,只有 P4,结合选项,答案为 B

在这里插入图片描述

说明:若 剩余资源数 同时满足多个 还需资源数,则分配不分先后顺序,均可。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鱼丸丶粗面

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

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

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

打赏作者

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

抵扣说明:

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

余额充值