银行家算法安全序列示例及分析 | 进程资源分配 | 操作系统
(1) 根据银行家算法,可以先计算出每个进程的需要资源数和已分配资源数,然后计算出系统当前可用资源数。接下来,可以按照安全序列的条件,逐步释放进程所占用的资源,直到所有进程都能够得到所需要的资源为止。
输入程序中的数据如下:
# 进程数
n = 5
# 资源数
m = 3
# 各进程已分配的资源数
allocation = [
[0, 1, 0],
[2, 0, 0],
[3, 0, 2],
[2, 1, 1],
[0, 0, 2]
]
# 各进程还需要的资源数
need = [
[7, 4, 3],
[1, 2, 2],
[6, 0, 0],
[0, 1, 1],
[4, 3, 1]
]
# 系统当前可用的资源数
available = [3, 3, 2]
运行程序后,得到的安全序列为:
[1, 3, 4, 0, 2]
截图如下:

(2) 安全序列不唯一。根据程序运行结果,可以看出还有其他的安全序列。下面是可能的安全序列:
- [1, 3, 4, 0, 2](程序计算得到的安全序列)
- [1, 3, 4, 2, 0]
- [3, 1, 4, 0, 2]
- [3, 1, 4, 2, 0]
- [3, 4, 1, 0, 2]
- [3, 4, 1, 2, 0]
原文地址: https://www.cveoy.top/t/topic/odq9 著作权归作者所有。请勿转载和采集!