C语言实现银行家算法:资源分配与安全性检查详解

创始人
2024-12-24 04:45:08
0 次浏览
0 评论

怎样用C语言实现银行家算法?

#includestructclaim{intuser;intnum[3];}claims;intinput(){printf("pleaseinputyourrequest:user(0~4):\n");scanf("%d",&claims.user));printf("请输入资源编号:\n");scanf("%d",&claims.num[0]);printf("请输入资源编号。
b:\n");scanf("%d",&claims.num[1]);printf("请输入资源编号c:\n");scanf("%d",&claims.num[2]);return1;}intsafety_chk(intalloc[][3],intneed[][3],intavail[3]){intwork[3],finish[5];for(intp=0;p<5 i大于2后WORK没有意义{work[p]=avail[p];finish[p] for(inti=0;i xss=clean i][0]<=工作[0]&&需要[i][1] i][2]<=工作[2]){for(intj j<3;j++)work[j]=alloc[i][j]+work[j];finish[i] i=-1;//重新开始}}for(i xss=clean return0;}返回n1;}intprocess(intalloc[][3],intneed[][3],intavail[3]){intret;input();for(inti=0;i>需要[claims.user][i]||claims.num[i]>avail[i])return0;}for(i=0;i<3 rying{avail[i]=avail[i]-claims.num[i];alloc[claims.user][i] alloc[claims.user][i]+claims.num[i];need[claims.user][i]=alloc[claims.user][i]+claims.num[i];需要[声明。>user][i]=need[claims.user][i]-claims.num[i];}if((ret=safety_chk(alloc,need,avail)==0)){printf("safety_chk'sresult%d\n",0);for(i=0;i

c语言银行家算法安全性判别

将1作为参数留给yanzheng()yanzheng(intm)

然后在验证函数中修改:

work=Avaliable;i=m;current(i
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...