法律推广网站,网站代码优化方法,小型网站项目策划书,在线教育网站开发时长银行家算法的实现需要三个矩阵#xff1a;
Max矩阵#xff1a;用于存储每个进程完成所需要的全部资源量Allocation矩阵#xff1a;用于存储每个进程每个资源已分配的情况Need矩阵#xff1a;存储每个进程还需要的各个资源数
如下以一个实例来说明银行家算法#xff1a; …银行家算法的实现需要三个矩阵
Max矩阵用于存储每个进程完成所需要的全部资源量Allocation矩阵用于存储每个进程每个资源已分配的情况Need矩阵存储每个进程还需要的各个资源数
如下以一个实例来说明银行家算法
假设一组进程有P1,P2,P3,P4四个进程有A,B,C,D四种资源
要求使用银行家算法找出能够避免死锁的资源分配序列如果存在避免死锁的序列。
需求如下
Max /ABCDP10656P20012P31750P42356
每一行分别表示对应的进程Pi的完成需要多少对应资源。
每个进程当前得到资源的情况如下
Allocation /ABCDP10014P20012P31000P41354
还没有被使用的资源量为
AvailableA:1B:5C:2D:0。
在现在这个情况下需要完成所有进程需要的资源量Need的计算方式为Max-Allocation得到
Need /ABCDP10642P20 0 00P30750P41002
表示现在还需要这么多资源才能完成现在开始对P1到P4尝试为其分配资源检查是否会导致死锁
一、方案1——如果将资源优先分配给P1
AvailableA:1B:5C:2D:0P1需要A:0B:6C:4D:2
不安全。
二、方案2——优先分配给P2
AvailableA:1B:5C:2D:0P2需要A:0B:0C:0D:0
能够满足安全
P2进程完成后释放资源C:1D:2。
现在的可用资源AvailableA:1B:5C:3D:2
对于剩下的三个进程能满足条件的只有P4则分配给P4完成进程后P4释放资源A:1B:3C:5D:4可用资源更新为AvailableA:2B:8C:8D:6
对于剩下两个进程都能满足......完成....释放....
....重复过程....
最终得到两个序列P2P4P1P3和序列P2P4P3P1
三、方案三——优先分配给P3
重复上述过程。
四、方案四——优先分配给P4
重复上述过程。
最终能够得到几个不会导致死锁且能安全完成这几个进程的操作序列这个过程即银行家算法。