银行家算法

✍ dations ◷ 2025-11-14 16:30:13 #操作系统技术,荷兰发明

银行家算法(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 - 当前可用的资源

相关

  • 恋物癖恋物(Sexual fetishism / Erotic fetishism)是指对无生命物体或性器官以外的身体部位的性固着。在医学上,单纯的恋物并非病态,但若构成了当事人极大的痛苦或对其生活的某些层面
  • 最高法报告美国联邦最高法院判例报告(英语:United States Reports)是美国联邦最高法院所审理过所有案件的官方报告。其标注方式一般会简写为:卷次+U.S.+起始页码+(年代)。比如说,著名的《纽约
  • 换气过度过度换气,又称过度呼吸(英文:hyperventilation),是由于过量的肺部通气导致二氧化碳不断排出,超过了身体产生二氧化碳的速率而发生 。如果经常发生过度换气的状况,则称之为过度换气
  • 马岛长喙天蛾马岛长喙天蛾(学名:Xanthopan morgani),又名非洲长喙天蛾、马达加斯加长喙天蛾,是天蛾科的一个物种,分布于非洲东部。马岛长喙天蛾最显著的特征就是那演化出超长的口器,体色大部分
  • 约翰·霍普金斯大学医学院约翰·霍普金斯大学医学院(英语:The Johns Hopkins University School of Medicine,简称JHUSOM),位于美国马里兰州巴尔的摩市。为约翰·霍普金斯大学负责医学教育训练与研究的单
  • 河南省军区中国人民解放军河南省军区,是中国人民解放军现属中央军委国防动员部的一个省级军区,其管辖范围为河南省。1949年3月1日,由中原军区所属豫西军区、豫皖苏军区、豫鄂军区、桐柏军
  • 冷水滩区冷水滩区是中国湖南省永州市所辖的一个市辖区。总面积1218平方公里,2003年总人口49万人。秦时为长沙郡地,西汉为泉陵侯国地,东汉属泉陵县地,隋开皇九年(589年)为零陵县。1940年代,
  • 摩利支天摩利支天(梵语:Marīci,意译为阳炎、威光、阳光,也作摩利支菩萨、摩里支菩萨、摩利支天菩萨、日前菩萨、阳焰天菩萨、积光天菩萨、威光天菩萨、摩利支佛母、具光佛母、积光佛母
  • 麦克尔加成反应麦克尔加成(Michael reaction),最有价值的有机合成反应之一,是构筑碳-碳键的最常用方法之一。有时也称为1,4-加成、共轭加成。是亲核试剂对α,β-不饱和羰基化合物发生的β位碳原
  • 土耳其软糖土耳其软糖(土耳其语:Lokum)是以淀粉与砂糖制成的土耳其甜点。它通常以玫瑰香水、乳香树脂与柠檬调味;玫瑰香水赋予了其淡粉红的色泽。土耳其软糖呈胶状,质地柔软有弹性、类似果