银行家算法

✍ dations ◷ 2025-11-03 11:23:51 #操作系统技术,荷兰发明

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

相关

  • 线粒体脑肌病线粒体脑肌病是一种由线粒体的代谢缺陷脱引起的脑肌病,属于线粒体疾病。此病由Luft于1962年首次采用改良戈莫理氏染色法(Gömöri trichrome stain,MGT)发现。在活体检查中,患者
  • 杜鹃杜鹃有以下的含义:
  • 数字黑暗时代数字黑暗时代(英语:Digital dark age)是指历史上保存的数字文档在未来可能难以读取,甚至无法读取的情况。原因是现存的数字文档和多媒体所采用的数据格式由于过于陈旧而被弃用,或
  • 圆秃圆秃(Alopecia Areata)又称、班秃、鬼剃头、油风,是皮肤科常见疾病,多见于青壮年,呈圆形及各种多边形。可分为斑秃、全秃、普秃三种。圆秃是自体免疫疾病,由淋巴免疫细胞攻击自身
  • 东沙环礁国家公园东沙环礁国家公园为中华民国第七座国家公园、第一座海洋国家公园,隶属中华民国内政部营建署,于2007年1月17日成立,并于该年的10月4日成立海洋国家公园管理处管理之。东沙环礁国
  • 寒颤发冷,是人体在发烧期间感到寒冷的感觉。在人体体温因发烧而上升的过程中,在体温停止增加前,会使患者感觉到寒冷,同时身体为了增加体温,会产生发抖的现象,称之为冷颤。通常会产生发
  • 补体膜攻击复合物膜攻击复合物(MAC),是一种通常生成于致病细菌表面的结构。人体补体系统的替代补体途径、经典补体途径、凝集素途径均可产生这种复合物。该复合物是免疫系统的效应蛋白之一,它可
  • 石景山区石景山区是中国北京市西部的一个市辖区。“东临帝阙,西濒浑河”,距天安门16千米。处在长安街的西向延长线上。行政区域总面积84.38平方千米,常住人口65万。邮政编码100043和100
  • MT6575MT6575是台湾无厂半导体公司联发科(MediaTeK)于2012年2月推出的一颗智能手机平台 芯片组。联发科推出该芯片组的目的在于降低智能手机的成本和价格。MT6575属于MTK MT系列,该芯
  • 安铉范安铉范(朝鲜语:안현범/安鉉範  */?,1994年12月21日-)是韩国的职业足球运动员,司职前锋,现效力于经典K联赛济州联队。2015年3月8日,安铉范首次代表蔚山现代对战首尔。