银行家算法

✍ dations ◷ 2025-07-13 07:27:54 #操作系统技术,荷兰发明

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

相关

  • NLM美国国家医学图书馆(英语:The United States National Library of Medicine,NLM),由美国联邦政府经营管理,是世界上最大的医学图书馆,并设有研究中心。其前身为成立于1836年的美国
  • 唾液唾液(亦称口涎、口水)是动物口腔内唾液腺分泌的无色且稀薄的液体,其在食物的消化过程中起到十分关键的作用。唾液主要由腮腺(英语:parotid gland)(英语:parotid gland)、颌下腺(英语:su
  • Mn4s2 3d52, 8, 13, 2蒸气压第一:717.3 kJ·mol−1 第二:1509.0 kJ·mol−1 第三:3248 kJ·mol−1 (主条目:锰的同位素锰是原子序为25的化学元素,其元素符号为Mn。锰不会以元素
  • 迪奥科里斯佩达努思·迪奥斯科里德斯(古希腊语:Πεδάνιος Διοσκουρίδης;拉丁语:Pedanius Dioscorides),(约40年-90年)。古罗马时期的希腊医生与药理学家,曾被罗马军队聘为军
  • span class=nowrapSn(NOsub3/sub)sub2/sub/span硝酸亚锡是一种无机化合物,化学式为Sn(NO3)2,其二十水合物被制得过,且极易分解。也有文献通过纯硝酸溶于乙腈,与二(甲基环戊二烯基)锡反应,得到硝酸亚锡,但未能成功分离。硝酸亚锡
  • 菌环蕈环(英语:Annulus)是有些真菌的蕈柄上具有的构造,是菌幕分解以露出子实层后的痕迹。蕈环可以是粗糙或膜质的,也可能是蜘蛛网状。蕈环可能是蕈类的永久构造,或在菇长出后即消失,只
  • 历史学院南开大学历史学院,2000年10月成立于南开大学八里台校区,2015年9月迁至南开大学津南校区。其前身可以追溯至1919年私立南开大学成立时即设立的历史学门和1923年成立的南开大学
  • 费滋杰罗弗朗西斯·斯科特·基·菲茨杰拉德(英语:Francis Scott Key Fitzgerald,1896年9月24日-1940年12月21日),大陆译作弗朗西斯·斯科特·菲茨杰拉德,繁体译作費茨傑羅,简称斯科特·菲茨
  • 菱蟹总科见内文菱蟹科(学名:Parthenopidae)是螃蟹的一个科,是菱蟹总科(Parthenopoidea)之下唯一的一个科。其下有接近40个属。当中主要可再细分为两个亚科,而有三个属地位未定。
  • 禾本科禾本科(学名:Poaceae),是被子植物中次于菊科、兰科、豆科、茜草科的第五大科,单子叶植物中次于兰科的第二大科。主要包括稻亚科、竹亚科、早熟禾亚科等12个亚科和少数不确定类群