/banker

银行家算法,rust及c++的简单实现

Primary LanguageRust

银行家算法 - rust实现


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]
分配资源的进程编号>