rust
$ cargo run
c++
$ g++ banker.cc -o banker
$ ./banker
运行实例(rust)
进程数> 5
资源种类数> 3
最大需求矩阵.max>
7 5 3
3 2 2
9 0 2
2 2 2
4 3 3
分配矩阵.allocation>
0 1 0
2 0 0
3 0 2
2 1 1
0 0 2
可用资源.available>
3 3 2
当前系统安全
序列为: [1, 3, 4, 0, 2]
当前可用资源:
[3, 3, 2]
资源分配情况:
最大需求矩阵 分配矩阵 需求矩阵
P 0. [7, 5, 3] [0, 1, 0] [7, 4, 3]
P 1. [3, 2, 2] [2, 0, 0] [1, 2, 2]
P 2. [9, 0, 2] [3, 0, 2] [6, 0, 0]
P 3. [2, 2, 2] [2, 1, 1] [0, 1, 1]
P 4. [4, 3, 3] [0, 0, 2] [4, 3, 1]
分配资源的进程编号> 1
请求资源数(3个)>
1 0 2
分配完成
当前系统安全
序列为: [1, 3, 4, 0, 2]
当前可用资源:
[2, 3, 0]
资源分配情况:
最大需求矩阵 分配矩阵 需求矩阵
P 0. [7, 5, 3] [0, 1, 0] [7, 4, 3]
P 1. [3, 2, 2] [3, 0, 2] [0, 2, 0]
P 2. [9, 0, 2] [3, 0, 2] [6, 0, 0]
P 3. [2, 2, 2] [2, 1, 1] [0, 1, 1]
P 4. [4, 3, 3] [0, 0, 2] [4, 3, 1]
分配资源的进程编号> 4
请求资源数(3个)>
3 3 0
进程请求资源数大于可用资源数,无法分配
当前可用资源:
[2, 3, 0]
资源分配情况:
最大需求矩阵 分配矩阵 需求矩阵
P 0. [7, 5, 3] [0, 1, 0] [7, 4, 3]
P 1. [3, 2, 2] [3, 0, 2] [0, 2, 0]
P 2. [9, 0, 2] [3, 0, 2] [6, 0, 0]
P 3. [2, 2, 2] [2, 1, 1] [0, 1, 1]
P 4. [4, 3, 3] [0, 0, 2] [4, 3, 1]
分配资源的进程编号> 0
请求资源数(3个)>
0 2 0
分配完成
当前系统不安全
当前可用资源:
[2, 1, 0]
资源分配情况:
最大需求矩阵 分配矩阵 需求矩阵
P 0. [7, 5, 3] [0, 3, 0] [7, 2, 3]
P 1. [3, 2, 2] [3, 0, 2] [0, 2, 0]
P 2. [9, 0, 2] [3, 0, 2] [6, 0, 0]
P 3. [2, 2, 2] [2, 1, 1] [0, 1, 1]
P 4. [4, 3, 3] [0, 0, 2] [4, 3, 1]
分配资源的进程编号>