银行家算法

目录

目标

具体设计:

要求:

分析:

实现步骤:

代码实现:

运行截图:

备注:


目标

本文章采用银行家算法模拟进程动态分配申请资源;并用安全性算法检验资源分配以后系统是否处于安全状态(是否存在安全序列)。

具体设计

要求

1.设计有 n 个进程共享 m 个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。

2.系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析;.

分析

每个进程在进入系统时,都必须申请运行过程中各种资源所需的最大数目,且该数目不应超过系统所拥有的,当进程请求一组资源时,系统要先确定是否有足够的资源分配,若有,则进一步计算分配之后系统是否会处于不安全状态,如果不会,则可将资源分配,否则等待。

银行家算法bank():

设置四个数据结构Available[],Max[][],Allocation[][],Need[][];

其中:Need[i][j]=Max[i][j]-Allocation[i][j];

if:Requesti[j]<Need[i,j]

if:Requesti[j]<Available[j]
Available[j]=Available[j]-Requesti[j];
Allocation[i,j]=Allocation[i,j]+Requesti[j];
Need[i,j]=Need[i,j]-Requesti[j];
安全性算法checkSecurity();

安全性算法

设置两个向量。work[]和Finish[]

初始化:work[]=Available[];Finish[]=FALSE

if:Finish[i]=0&&Need[i,j]<=work[j]

Work[j]=Work[j]+Allocation[i,j];
Finish[]=1;
if :所有的Finish[]=1,系统处于安全状态。

实现步骤

。。。。

代码实现:

。。。。

运行截图:

096eef56a6d242fe8eca3b6dd8b4dc01.png

c4f32d6956764b46af37dad3d8f74406.png

 8d154f6f0c4f47f9b3b70c8ab621b5c8.png

 49fe6a50dbde41efa2e05d351159460b.png

欲取完整报告某闲某与搜索用户脆脆鲨嘞查看,感谢支持!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

42341352315125115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值