银行家算法的实现
这是汤子赢等人编写的书本上的那个银行家算法,玩玩:
不想做的太复杂,所以预先定义了很多数据,如果需要,请自行修改:
可能的运行结果:
请输入要操作的进程(0-5):1
请输入进程P1 请求的3个资源数目( r1 r2 r3 ...):1 0 2
进程P1开始向系统请求资源:(1,0,2)
进程/资源 Work Need Allocation Work+Allocation Finish
A B C A B C A B C A B C
1 2 3 0 0 2 0 3 0 2 5 3 2 true
3 5 3 2 0 1 1 2 1 1 7 4 3 true
4 7 4 3 4 3 1 0 0 2 7 4 5 true
0 7 4 5 7 4 3 0 1 0 7 5 5 true
2 7 5 5 6 0 0 3 0 2 10 5 7 true
分配成功,系统仍处于安全状态.
可行的序列为:{P1,P3,P4,P0,P2}
ry again? Y /Ny
请输入要操作的进程(0-5):0
请输入进程P0 请求的3个资源数目( r1 r2 r3 ...):7 3 3
进程P0开始向系统请求资源:(7,3,3)
尚无足够资源,等待中...
ry again? Y /Ny
请输入要操作的进程(0-5):1
请输入进程P1 请求的3个资源数目( r1 r2 r3 ...):1 0 5
进程P1开始向系统请求资源:(1,0,5)
出错啦:进程P[1] 所需要的资源数超过它所宣布的最大值。
ry again? Y /N