银行家算法安全检查:案例分析
三、应用题
系统中当前可用资源向量为 (1, 2),问:
(1) 计算还需要资源数组:
(2) 系统此时是否安全?
| | Max | Allocation | Need | Available | |------|----------|------------|----------|-----------| | P1 | (3, 2, 2) | (1, 0, 0) | (2, 0, 0) | (1, 2) | | P2 | (6, 1, 3) | (5, 1, 1) | (1, 0, 2) | (1, 2) | | P3 | (3, 1, 4) | (2, 1, 1) | (1, 0, 3) | (1, 2) | | P4 | (4, 2, 2) | (0, 0, 2) | (4, 2, 0) | (1, 2) |
(1) 计算还需要资源数组:
Need = Max - Allocation
(2) 计算安全性:
首先,将 Available 加上 Allocation,得到系统的当前状态:
(2, 4)
然后,按照银行家算法的流程,逐步检查每个进程是否能够完成:
-
P1:Need = (2, 0, 0),Available >= Need,可以完成,释放资源,Available = (4, 4)。
-
P3:Need = (1, 0, 3),Available >= Need,可以完成,释放资源,Available = (5, 5)。
-
P2:Need = (1, 0, 2),Available >= Need,可以完成,释放资源,Available = (6, 7)。
-
P4:Need = (4, 2, 0),Available < Need,无法完成,系统不安全。
因此,系统此时不安全。
原文地址: https://www.cveoy.top/t/topic/kWgW 著作权归作者所有。请勿转载和采集!