银行家算法

✍ dations ◷ 2025-11-10 13:40: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 - 当前可用的资源

相关

  • 砖是一种建筑材料,外观呈长方体小块状,为构成墙体主要材料。由于砖的制作过程需要消耗耕地和大量的能量,目前正在逐步淘汰,代之以混凝土砌块。广义上,呈长方体状的建筑装饰材料也
  • 烯胺烯胺(英文:Enamine)是醛或酮与二级胺失水缩合形成的一类不饱和化合物,可看作含氮的烯醇,通式为R2C=CR-NR2,见右图。若氮上的两个取代基中,有一个为氢,则形成的烯胺与亚胺互为互变异
  • 随机事件在概率论中,随机事件(或简称事件)指的是一个被赋与几率的事物集合,也就是样本空间中的一个子集。简单来说,在一次随机试验中,某个特定事件可能出现也有可能不出现;但当试验次数增多
  • 外直肌外直肌(Lateral rectus muscle)是一块在眼窝外侧的肌肉,为六块眼外肌(英语:Extraocular muscles)中控制眼睛运动(英语:Eye movement)的其中一块,受外旋神经(CN VI)的上分支所支配。外
  • 吉姆·琼斯吉姆·琼斯(英语:Jim Jones,原名詹姆斯·沃伦·琼斯,英语:James Warren Jones,1931年5月13日-1978年11月18日)是美国人民圣殿教的创始人、领袖。1978年11月18日,在圭亚那琼斯镇以武力
  • 铁拐李铁拐李,亦称李铁拐,相传名为李凝阳或称李洪水,或名李玄,小字拐儿,自号李孔目。(公元前418年-公元前316年)道教八仙之首。传说能够护佑铁匠与乞丐。铁拐李的身世说法传说颇多。鲁迅的
  • 旧日军日本军(日语:日本軍/にほんぐん、にっぽんぐん Nihon-gun、Nippon-gun */?),简称日军,广义上是指日本的国家军队,但通常指大日本帝国时期(明治维新至第二次世界大战结束前)的日本军
  • 信天翁科信天翁科(学名:Diomedeidae)是鸟纲鹱形目中的一个科,这一科的鸟被笼统的称为信天翁。它们是一种栖息于海边的鸟类,亦是世界上最大的海洋鸟类。大多数信天翁科的鸟生活在南半球深
  • 斯坦福监狱实验斯坦福监狱实验(英语:Stanford prison experiment)是1971年由美国心理学家菲利普·津巴多领导的研究小组于斯坦福大学心理学系大楼地下室的模拟监狱内,进行的一项关于人类对囚禁
  • 布鲁诺 (坑)布鲁诺陨石坑(Giordano Bruno)是月球背面一座直径22公里的陨石坑,形成于哥白尼纪时期,以意大利多米尼克修士、思想家及诗人焦尔达诺·布鲁诺之名命名,1961年被国际天文学联合会正