银行家算法

✍ dations ◷ 2025-12-08 01:24:57 #操作系统技术,荷兰发明

银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。

在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。

      Allocation   Max   Available    ABCD    ABCD  ABCD P1   0014    0656  1520  P2  1432    1942  P3  1354    1356 P4  1000    1750

我们会看到一个资源分配表,要判断是否为安全状态,首先先找出它的Need,Need即Max(最多需要多少资源)减去Allocation(原本已经分配出去的资源),计算结果如下:

   NEED ABCD 0642  0510 0002 0750

然后加一个全都为false的字段

 FINISH false false false false

接下来找出need比available小的(千万不能把它当成4位数 他是4个不同的数)

   NEED    Available ABCD  ABCD 0642  1520 0510<- 0002 0750

P2的需求小于能用的,所以配置给他再回收

  NEED     Available ABCD  ABCD 0642  1520 0000 +1432 0002------- 0750  2952

此时P2 FINISH的false要改成true(己完成)

 FINISH false true false false

接下来继续往下找,发现P3的需求为0002,小于能用的2952,所以资源配置给他再回收

  NEED      Available ABCD  A B C D 0642  2 9 5 2 0000 +1 3 5 4 0000---------- 0750  3 12 10 6


依此类推,做完P4→P1,当全部的FINISH都变成true时,就是安全状态。

如果所有过程有可能完成执行(终止),则一个状态(如上述范例)被认为是安全的。由于系统无法知道什么时候一个过程将终止,或者之后它需要多少资源,系统假定所有进程将最终试图获取其声明的最大资源并在不久之后终止。在大多数情况下,这是一个合理的假设,因为系统不是特别关注每个进程运行了多久(至少不是从避免死锁的角度)。此外,如果一个进程终止前没有获取其它能获取的最多的资源,它只是让系统更容易处理。

基于这一假设,该算法通过尝试寻找允许每个进程获得的最大资源并结束(把资源返还给系统)的进程请求的一个理想集合,来决定一个状态是否是安全的。不存在这个集合的状态都是不安全的。

P - 进程的集合

Mp - 进程p的最大的请求数目

Cp - 进程p当前被分配的资源

A - 当前可用的资源

相关

  • 绿头鸭绿头鸭(学名:Anas platyrhynchos)又名大头绿(雄)、蒲鸭(雌),家鸭是其驯化亚种。绿头鸭飞行速度可达到每小时65公里。绿头鸭常集群活动,营巢于水边的草丛中及树洞等地。每窝产7到11枚
  • SeOsub3/sub三氧化硒(化学式SeO3)是硒(VI)的氧化物。为无色潮解性晶体。实验室通过用无水硒酸钾(K2SeO4)和三氧化硫反应制备三氧化硒: K2SeO4 + SO3 → SeO3 + K2SO4三氧化硒在热力学上不
  • 反式异构体顺反异构(英语:cis-trans isomerism),旧称几何异构,是存在于某些双键化合物或环状化合物中的一种立体异构现象。由于存在双键或环,这些分子的自由旋转受阻,产生两个物理性质或化学
  • 西区故事《西区故事》(英语:West Side Story)于1959年开拍,1961年正式上映。原来1957年音乐剧的创作班底仍然参与电影的拍摄工作,但为了适应音乐剧与电影之间的差异,整部剧在剧情和表现手
  • 台湾猕猴台湾猕猴,又称黑肢猴,台湾特有种,珍稀野生动物,属旧世界猴。也是除了智人外台湾唯一的灵长类动物,和日本猕猴、普通猕猴有血缘关系。台湾的原生种,分布于由海平面至海拔三千米以下
  • 冯又嫦冯又嫦(Inez Fung,1949年4月11日-),美籍华裔气象学家,现任美国加州大学柏克莱分校教授,兼任柏克莱大气科学中心主任,麻省理工学院科学博士,美国科学基金董事局成员。
  • 深圳市第四人民医院中山大学附属第八医院,原称深圳市第四人民医院,是一间中国广东省深圳市福田区的公立医院,又称福田区人民医院,俗称福田医院、福田人民医院,前身为福田公社卫生院。位于华富路以西
  • 华表华表亦称桓表、表木或诽谤之木,是中国一种传统的建筑形式。古代用以表示王者纳谏或指路的木柱。同时也为中华的图腾柱。华表一般由底座,蟠龙柱,承露盘和其上的蹲兽组成。华表是
  • 匈奴超地体匈奴超地体(Hunic superterrane)是一个地质史上的超地体,现在附着于欧亚大陆。 奥陶纪末志留纪初,从冈瓦纳大陆分离下来,向北移动,于石炭纪初的华西里造山运动(英语:Variscan orogen
  • 洗牌洗牌(英语:Shuffling)是一种牌类游戏的专用术语,是指将游戏牌的排列顺序打乱,使纸牌充分的混合,使每一张牌被抽到的几率都相等的过程,以便开始游戏或进行下一个牌局。洗牌一般会伴