银行家算法简析

银行家算法简析

银行家算法简析

最具有代表性的避免死锁算法

所需数据结构

  1. 可利用资源向量 available
  2. 最大需求向量 max
  3. 已分配矩阵向量 allocation
  4. 需求矩阵向量 need
  5. 工作向量 work(可提供的资源数目)
  6. 完成标志 finish

算法解析

request 是进程Pi的请求向量,表示某进程请求资源数目

  1. if request < need ; continue ; else 不分配资源
  2. if request <available ; continue ; else 不分配资源
  3. available = available - request ;
  4. need = need -request
  5. if 安全 ; 分配资源 ;else 不分配资源;

安全算法
假设将资源分配给进程,运算出 allocation + work (new available)即为当前进程结束后空闲出的资源,再找出新的进程满足need < new available 将其finish = true , new available + = allocation 重复执行 , 如果finish 全为1,则安全。

例题

processallocationneedavailable序号new available
P00 0 3 20 0 1 21 6 2 211,6,5,4
P11 0 0 01 7 5 042,9,9,10
P21 3 5 42 3 5 6.53,12 ,14,14
P30 3 3 20 6 5 221,9,8,6
P40 0 1 40 6 5 631,9,9,10

1.该状态是否安全
2.若进程P2 提出请求 (1,2,2,2) 后 是否分配资源?

1.如表黄色部分 有 安全序列,则安全
2.当P2 提出 12 2 2 时,request < available , request < need ;
available = 0 4 0 0 ;

processallocationneedavailable
P22 5 7 61 1 3 40,4,0,0.
P00 0 3 20 0 1 2
P11 0 0 01 7 5 0
P30 3 3 20 6 5 2
P40 0 1 40 6 5 6

available 无法满足进程其他资源,不分配资源。

参考资料
1.《计算机操作系统第四版》,汤小丹 ,梁红兵 ,等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值