银行家算法

如题所述

第1个回答  2022-06-17

银行家算法是一种预防死锁的算法。具体算法步骤可以参考百度百科: 银行家算法

例子 :某系统有A、B、C、D , 4类资源共5个进程(P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下表所示。

输入进程的数目:5
输入资源的种类:4
输入每个进程最多所需的各类资源数:
P0 : 0 0 1 2
P1 : 1 7 5 0
P2 : 2 3 5 6
P3 : 0 6 5 2
P4 : 0 6 5 6
输入每个进程已经分配的各类资源数:
P0 : 0 0 1 2
P1 : 1 0 0 0
P2 : 1 3 5 4
P3 : 0 6 3 2
P4 : 0 0 1 4
请输入各个资源现有的数目:
1 5 2 0
当前系统安全!
系统安全序列是:
P0->P2->P1->P3->P4
输入要申请资源的进程号(0-4):1
输入进程所请求的各资源的数量:0 4 2 0
系统安全!
系统安全序列是:
P0->P2->P1->P3->P4
同意分配请求!

系统可用的资源数为 : 1 1 0 0
各进程还需要的资源量:
进程 P0 : 0 0 0 0
进程 P1 : 0 3 3 0
进程 P2 : 1 0 0 2
进程 P3 : 0 0 2 0
进程 P4 : 0 6 4 2

各进程已经得到的资源量:
进程 P0 : 0 0 1 2
进程 P1 : 1 4 2 0
进程 P2 : 1 3 5 4
进程 P3 : 0 6 3 2
进程 P4 : 0 0 1 4

是否再次请求分配?是请按Y/y,否请按N/n:
N