银行家算法

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

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

相关

  • 镑 small(货币)/small英国英镑(货币符号:£)是英国法定货币和货币单位名称。英镑主要由英格兰银行发行,但亦有其他发行机构。最常用于表示英镑的符号是£。国际标准化组织为英镑取的ISO 4217货币代码
  • 米格尔·卡布瑞拉米格尔·卡布瑞拉(José Miguel Torres Cabrera,1983年4月18日-)为委内瑞拉的棒球选手之一,目前效力于美国职棒大联盟底特律老虎队。他在2003年登上大联盟时,身高六呎二吋,体重210
  • 异丙醇2-丙醇又称异丙醇(英语:isopropanol),IUPAC名为1-甲基乙醇,常温常压下是一种无色有强烈气味的可燃液体,分子式为C3H8O。异丙醇是最简单的仲醇,且是丙醇异构体之一,CAS号为67-63-0 。
  • 181线市道181号 月眉-高树,是位于台湾高雄市、屏东县两县市之间的南北向县道。北起高雄市杉林区月眉,南至屏东县高树乡,全长共计19.752公里(公路总局资料)。今日列表・1961年列表注:灰字
  • histamine组胺(英语:Histamine),是一种有机含氮的环状化合物。它参与局部免疫反应和炎症反应,并具有作为瘙痒介体中心与调节肠道生理功能的作用。它还被用作神经递质。组胺由嗜碱性球和附
  • 西奥多·韦尔西奥多·牛顿·魏尔(Theodore Newton Vail,1845年7月16日-1920年4月16日),美国电话实业家。1885至1889年间及1907至1919年间任美国电话电报公司之总裁。魏尔视电话服务为一公共设
  • 守温守温,唐末僧人,音韵学家。仿照梵文创制古汉语声类三十字母,为宋人“三十六字母”蓝本。敦煌石窟曾经发现一个署有“南梁汉比丘守温述”的音韵学写本残卷,中有“三十字母”及“四
  • 蕴 (佛教)蕴(巴利语:khandha;梵语:स्कन्ध,转写:skandha;孟加拉语:স্কন্ধ,转写:skandha),又译为阴或聚,有积增聚合的意思,佛教术语,意指人类存在的基本要素。佛教将蕴分析成五种基本元素,
  • 刘汉儒 (嘉靖进士)刘汉儒(1529年-1603年),字文卿,河南沈丘县人,明朝政治人物。河南乡试第四十九名举人。嘉靖三十八年(1559年)中式己未科三甲第五十九名进士。初任河南滑县知县,改浚县知县,颇有政绩,乡民
  • 安兴贵安兴贵(6世纪-7世纪),凉州姑臧县(在今甘肃省武威市)人,初唐功臣。安兴贵在长安仕唐朝,他的弟弟安脩仁则辅佐凉帝李轨,并担任户部尚书。武德二年(619年)五月,安兴贵上表请求以祸福说降李