银行家算法

✍ dations ◷ 2025-03-07 10:21:14 #操作系统技术,荷兰发明

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

相关

  • 相衬显微技术相衬显微技术是一种光学显微技术,光线在穿过透明的样品时会产生微小的相位差,而这个相位差可以被转换为图象中的幅度或对比度的变化,这样就可以利用相位差来成像。光线在穿过非
  • 智乐堂智乐堂网络股份有限公司(英语:Zealot Digital International Corp),简称智乐堂,是台湾的电脑游戏研制、发行公司,旧名为汉堂国际资讯股份有限公司(英语:Dyansty International Infor
  • 苏(英语:Sue),编号FMNH PR2081,是世界上现存最大,保存最完整的一具雷克斯暴龙化石。它是由美国古生物学家苏·亨德里克森于1990年8月12日在南达科他州西部发现的,因此以她的名字命
  • 端敬王后端敬王后 慎氏(朝鲜语:단경왕후 신씨,1487年-1557年),本贯居昌,朝鲜王朝中宗李怿之元妃。燕山君五年(1499年),慎氏与晋城大君行嘉礼,初封府夫人(郡号未详)。1506年,中宗刚即位时被封为王妃
  • 马姓马姓是一个中文姓氏,为中国较为常见的姓氏之一,在《百家姓》中排第五十二位,在现今中国姓氏排行第14位。马氏的来源主要有以下几种:赵奢之后迁至右扶风茂陵后,此地便成为马氏发展
  • 305医院中国人民解放军军徽中国人民解放军第三〇五医院,位于北京市西城区文津街甲13号,是中央军委联合参谋部直属单位,三级甲等医院。中国人民解放军第三〇五医院成立于1969年。地址位
  • 铼的同位素铼(原子量:186.207(1))的同位素,只有1种是稳定的,另一个187 Re为天然放射性。备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 海南藏族自治州海南藏族自治州(藏语:.mw-parser-output .uchen{font-family:"Qomolangma-Dunhuang","Qomolangma-Uchen Sarchen","Qomolangma-Uchen Sarchung","Qomolangma-Uchen Suring","Q
  • 西线无战事 (1979年电影)《西线无战事》(英语:),1979年ITC娱乐公司电视电影,由德尔伯特·曼执导,根据埃里希·玛利亚·雷马克同名小说改编而来。片中理查·托马斯饰演保罗·博伊默,喧尼斯·鲍宁饰演卡钦斯
  • 夏尔-弗朗索瓦·布里索·德米尔贝尔夏尔-弗朗索瓦·布里索·德米尔贝尔 (法语:Charles-François Brisseau de Mirbel,1776年3月27日-1854年9月12日)是法国植物学家和政治家,是植物细胞学的奠基人。 他出生于巴黎,20