导航
导航

重学操作系统(2.2)—银行家算法

今天浅谈一个经典的避免死锁的方法——银行家算法

简单说下该算法的思想:我们把操作系统当做银行,操作系统的资源相当于银行的资金。进程像操作系统请求资源就相当于用户向银行贷款,每次贷款银行都会审核你。银行家算法的os分配也一样,每次进行分配资源的时候会首先检查系统是否有足够的资源满足,有则进行分配,并对分配后的状态进行安全性检查,如果状态安全就真正分配资源。上述都不满足则拒绝。从始至终处于安全状态,从而避免了死锁。

几个名词概念:

  • 可利用资源 Avaliable:可用的资源
  • 最大需求 Max :资源的最大数目
  • 分配的资源 Allocation:已分配给进程的资源
  • 需求 Need:表示每个进程还需要的各类资源

描述迷迷糊糊的,还是举个栗子吧
假设有3个进程{p0,p1,p2},2个资源{a,b}。资源的总量分别为8,12
在T时刻的资源分配情况如下: