ZH
我的工具

银行家算法计算器(安全序列与死锁检测)

运行银行家算法:生成 Need 矩阵,分步进行安全性检查并给出安全序列,判断某进程的资源请求能否满足,还可进行死锁检测。

状态
安全
所有进程都能完成
安全序列
<P1, P3, P4, P0, P2>
Available(可用)
3 3 2
A B C

一个状态可能有多个安全序列;这里的结果遵循所选的查找顺序。

安全是指存在某种顺序,让每个进程都能获得其最大需求并完成。不安全并不表示已经死锁,只是不再能排除死锁的可能。

Allocation、Max 与 Need(= Max − Allocation)
进程Allocation(已分配) A B CMax(最大需求) A B CNeed(尚需) A B C
P00 1 07 5 37 4 3
P12 0 03 2 21 2 2
P23 0 29 0 26 0 0
P32 1 12 2 20 1 1
P40 0 24 3 34 3 1
安全性算法步骤
步骤进程Need(尚需)之前的 Work之后的 Work原因
1P11 2 23 3 25 3 2Need(尚需) ≤ Work,所以它可以完成并释放已分配的资源
2P30 1 15 3 27 4 3Need(尚需) ≤ Work,所以它可以完成并释放已分配的资源
3P44 3 17 4 37 4 5Need(尚需) ≤ Work,所以它可以完成并释放已分配的资源
4P07 4 37 4 57 5 5Need(尚需) ≤ Work,所以它可以完成并释放已分配的资源
5P26 0 07 5 510 5 7Need(尚需) ≤ Work,所以它可以完成并释放已分配的资源
我的工具 →
广告

银行家算法用来判断拥有多种资源的系统是否处于安全状态(是否存在一种顺序,使每个进程都能拿到它还可能需要的资源并完成),以及一个新的请求能否在不失去安全性的前提下被满足。这个计算器会构造 Need 矩阵,借助 Work 向量分步运行安全性算法,检查资源请求,还能对 Request 矩阵运行相关的死锁检测算法。

使用方法

  1. 输入 Allocation 矩阵,每行一个进程(P0: 0 1 0)。
  2. 按相同顺序输入 Max 矩阵(死锁检测时输入 Request 矩阵)。
  3. 输入 Available 向量,或各资源的实例总数。
  4. 可选:输入形如 P1 1 0 2 的请求,查看能否被批准。

计算公式

Need = Max − Allocation · Work = Available;重复:找到 Need ≤ Work 的 Pᵢ,然后 Work = Work + Allocationᵢ · 所有进程都能完成则为安全

Pᵢ 的请求若超过 Need 则为错误,若超过 Available 则必须等待,否则只有在假装分配后状态仍然安全时才会被批准。死锁检测使用当前的 Request 而不是 Need,并把不占有任何资源的进程一开始就标记为已完成;始终无法完成的进程就是死锁的进程。安全序列可能有多个——“查找顺序”选项可重现两种常见的推演方式。

示例

示例是 Silberschatz《Operating System Concepts》中的教材例题:5 个进程,资源 A、B、C,Available (3, 3, 2)。Need 为 P0 (7,4,3)、P1 (1,2,2)、P2 (6,0,0)、P3 (0,1,1)、P4 (4,3,1)。P1 可以先完成(Work 变为 5 3 2),然后依次是 P3 (7 4 3)、P4 (7 4 5)、P0 (7 5 5) 和 P2 (10 5 7),所以状态安全,序列为 <P1, P3, P4, P0, P2>。P1 的请求 (1, 0, 2) 会被批准。

常见问题

不安全状态就是死锁吗?

不是。不安全表示系统不再能保证所有进程都能完成,可能死锁,也可能不死锁。死锁是指某些进程实际上在永远互相等待的状态。

为什么我得到的安全序列和教材不一样?

一个安全状态往往有多个安全序列。不同教材推演查找过程的方式略有差异,请切换“查找顺序”选项使之与你的课程一致。算法找到的任何序列都是有效的。

Max 和 Request 有什么区别?

Max 是进程将来最多可能要求的资源量(用于提前避免死锁)。Request 是进程此刻正在等待的资源量(用于检测已经发生的死锁)。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 银行家算法计算器(安全序列与死锁检测). https://kakao.mobile/zh/tools/banker-s-algorithm-tool/

MLA

“银行家算法计算器(安全序列与死锁检测).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/banker-s-algorithm-tool/.

广告