银行家算法

1. 定义

银行家算法是指在分配资源之前先预判资源分配之后是否会导致系统死锁。如果会死锁,则不分配;否则分配。

2. 分配原则

  1. 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
  2. 进程可以分期请求资源,但请求的总数不能超过最大需求量。
  3. 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。
  4. 当系统现有的资源能满足进程尚需资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配。

3. 练习题一

假设系统中有三类互斥资源R1、、R2、R3,可用资源分别是9、8、5。在TO时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,如果进程按____序列执____行,那么系统状态是安全的。
银行家算法_互斥
银行家算法_银行家算法_02