银行家算法

✍ dations ◷ 2024-09-20 08:50:59 #操作系统技术,荷兰发明

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

相关

  • 血浆血浆(英语:Blood Plasma)是血液的清液成分,血细胞悬浮于其中。人体含有2750-3300毫升血浆,约占血液总体积的55%。血浆的绝大部分是水(体积的90%),其中溶解的物质主要是血浆蛋白,还包
  • 多重人格分离性身份识别障碍,或多重人格,是心理疾病的一种,常与精神分裂症搞混,较早的《精神疾病诊断与统计手册》(DSM)版本将其命名为多重人格障碍(Multiple Personality Disorder,MPD),后来
  • 二十八宿二十八.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-output ruby.larg
  • 拘役客体 · 行为(作为 · 不作为) 危害结果 · 因果关系 · 犯罪主体 主观要件(故意 · 过失) 未遂 · 既遂 · 中止 · 预备阻却违法事由 正当防卫 · 紧急避难心神丧失
  • 安陆市安陆市是中华人民共和国湖北省下辖的一个县级市,由孝感市代管,为武汉城市圈重要组成部分,位于鄂中腹地,是楚文化发祥地,是历史上郧子国、安陆郡(安州)、德安府所在地,历史上安陆古城
  • 禁酒党禁酒党(英语:Prohibition Party,简称PRO)是一个美国政党,在历史上反对出售或消费酒精饮品而闻名。这政党是美国现存最老的第三党。该党是禁酒运动不可缺少的一部分。虽然该党从未
  • 岛屿灰狐(U. littoralis)Vulpes littoralis Baird, 1857岛屿灰狐(学名:Urocyon littoralis),是一种小型狐狸,生活在加利福尼亚州海峡群岛的六个岛屿。岛屿灰狐是美国最小的狐狸。岛屿灰狐有六个亚种,每个
  • 背半棘肌背半棘肌由细窄的肌肉纤维束组成,插在有相当长度的腱之间。背半棘肌以一串小腱起始于第六至第十段胸椎的横突上,并以腱附着至上方四段胸椎和下方两段颈椎的棘突上。本条目包含
  • 极简主义极简主义(英语:Minimalism),是第二次世界大战之后60年代所兴起的一个艺术派系,又可称为“Minimal Art”,作为对抽象表现主义的反动而走向极致,以最原初的物自身或形式展示于观者面
  • 威廉·麦格雷戈威廉·麦格力哥(William McGregor,1846年4月13日-1911年12月20日),维多利亚时代的一名足球管理者,被认为是世界上第一个足球联赛——英格兰足球联赛的创办者。这名布料商从珀斯郡