今天浅谈一个经典的避免死锁的方法——银行家算法
简单说下该算法的思想:我们把操作系统当做银行,操作系统的资源相当于银行的资金。进程像操作系统请求资源就相当于用户向银行贷款,每次贷款银行都会审核你。银行家算法的os分配也一样,每次进行分配资源的时候会首先检查系统是否有足够的资源满足,有则进行分配,并对分配后的状态进行安全性检查,如果状态安全就真正分配资源。上述都不满足则拒绝。从始至终处于安全状态,从而避免了死锁。
几个名词概念:
- 可利用资源 Avaliable:可用的资源
- 最大需求 Max :资源的最大数目
- 分配的资源 Allocation:已分配给进程的资源
- 需求 Need:表示每个进程还需要的各类资源
描述迷迷糊糊的,还是举个栗子吧
假设有3个进程{p0,p1,p2},2个资源{a,b}。资源的总量分别为8,12
在T时刻的资源分配情况如下:
- 本文标题: 重学操作系统(2.2)—银行家算法
- 文章作者: sherryriver(木木三可)
- 发布时间: 2017.11.12
- 本文链接: https://sherryriver.github.io/2017/11/12/重学操作系统-3/
- 许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。