欢迎来到天天文库
浏览记录
ID:16547840
大小:34.00 KB
页数:4页
时间:2018-08-22
《银行家算法代码c语言编写》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#defineM100#includeintmax[M][M],allocation[M][M],need[M][M],available[M];inti,j,n,m,r;voidtestout()//算法安全性的检测{intk,flag,v=0;intwork[M],a[M];charfinish[M];r=1;for(i=0;i2、行的各类资源数k=n;while(k>0){for(i=0;iwork[j])flag=0;if(flag==1)//找到还没完成的且需求数小于可提供进程继续运行的{finish[i]='T';//资源数的进程a[v++]=i;//记录安全序列for(j=0;j3、;i4、printf("%2d",allocation[i][j]);printf("");for(j=0;j5、M];printf("输入进程总数:");scanf("%d",&n);printf("输入资源种类总数:");scanf("%d",&m);printf("输入最大矩阵:");for(i=0;i6、i++){for(j=0;j7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
2、行的各类资源数k=n;while(k>0){for(i=0;iwork[j])flag=0;if(flag==1)//找到还没完成的且需求数小于可提供进程继续运行的{finish[i]='T';//资源数的进程a[v++]=i;//记录安全序列for(j=0;j3、;i4、printf("%2d",allocation[i][j]);printf("");for(j=0;j5、M];printf("输入进程总数:");scanf("%d",&n);printf("输入资源种类总数:");scanf("%d",&m);printf("输入最大矩阵:");for(i=0;i6、i++){for(j=0;j7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
3、;i4、printf("%2d",allocation[i][j]);printf("");for(j=0;j5、M];printf("输入进程总数:");scanf("%d",&n);printf("输入资源种类总数:");scanf("%d",&m);printf("输入最大矩阵:");for(i=0;i6、i++){for(j=0;j7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
4、printf("%2d",allocation[i][j]);printf("");for(j=0;j5、M];printf("输入进程总数:");scanf("%d",&n);printf("输入资源种类总数:");scanf("%d",&m);printf("输入最大矩阵:");for(i=0;i6、i++){for(j=0;j7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
5、M];printf("输入进程总数:");scanf("%d",&n);printf("输入资源种类总数:");scanf("%d",&m);printf("输入最大矩阵:");for(i=0;i6、i++){for(j=0;j7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
6、i++){for(j=0;j7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
7、rintf("输入该进程所需的资源数:");for(j=0;jneed[i][j])p=1;//判断是否超过最大资源数if(p)printf("请求超过最大资源数!");else{for(j=0;javailable[j])q=1;//判断是否超过可用资源数if(q)printf("没有足够的可用资源!");else{for(j=0;j8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
8、able1[j]=available[j];//保存原已分配的资源数,需要的资源数,和可用的资源数allocation1[i][j]=allocation[i][j];need1[i][j]=need[i][j];ava
此文档下载收益归作者所有