银行家算法

✍ dations ◷ 2025-12-03 05:14:32 #操作系统技术,荷兰发明

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

相关

  • 原杉藻原杉藻(学名:Prototaxites)为一属陆生的真菌,生存于志留纪晚期至泥盆纪晚期(4亿3千万年前 - 3亿6千万年前),其子实体形成类似树干的结构,直径达1米(3英尺),高度则可达8.8米(29英尺),由直径
  • 动物志《动物志》(古希腊语:Περὶ Τὰ Ζῷα Ἱστορίαι,拉丁语:Historia Animālium,英语:History of Animals)是一本亚里士多德的动物学自然史著作。一般意义上说,动物志是对
  • 不来梅不来梅(德语:Bremen,国际音标:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Ge
  • 铁化合物铁化合物是铁和其它元素形成的化合物。铁在化合物中存在−2到+6共9种氧化态,如右表所示。铁可以和卤素形成二元或多元化合物。卤化亚铁都可以由铁和氢卤酸反应得到:该反应生成
  • 爱斯基摩爱斯基摩人(Eskimos or Esquimaux)是北美洲北部的(包括美国阿拉斯加北部、加拿大和格陵兰)的因纽特人以及阿拉斯加西部和俄罗斯西伯利亚东北部的尤皮克人的总称,阿留申人与前两种
  • 杀人罪杀人也称为他杀是杀害另一个人的行为,即故意以任何方法结束他人生命。杀人通常是谋杀,但有时也会是误杀或自卫杀人等。刑事杀人是不法行为,恶意行为。所有法律制度都有刑事杀人
  • 硬粒小麦硬粒小麦又名杜兰小麦(学名:Triticum durum or Triticum turgidum var. durum)为禾本科小麦属,曾经被归为圆锥小麦的亚种。基因组学研究表明:50万年前,二倍体的小麦属乌拉尔图小麦
  • 王陆海王陆海(1947年-),台湾分子生物学家和肿瘤学家。出生于台湾,曾为美国西奈山医学中心微生物学、癌症中心、肿瘤科学系正教授,回台湾进入国家卫生研究院 (代理院长)、中央研究院院士,2
  • 美国驻英国大使馆美国驻英国大使馆(英语:Embassy of the United States, London)是美国在英国首都伦敦设置的外交代表机构,办公处自1960年到2017年设于格罗夫纳广场西侧的24号大楼,2018年搬到九榆
  • 2013年瑞士羽毛球黄金大奖赛2013年瑞士羽毛球黄金大奖赛为第23届瑞士羽毛球公开赛,是2013年世界羽联大奖赛的其中一站。本届赛事于2013年3月12日至3月17日在瑞士巴塞尔举行,并获得YONEX赞助,总奖金为12万5