欢迎来到天天文库
浏览记录
ID:61760861
大小:16.92 KB
页数:5页
时间:2021-03-19
《c语言实现银行家算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include#definem50intno1;//进程数intno2;//资源数intr;intallocation[m][m],need[m][m],available[m],max[m][m];charname1[m],name2[m];//定义全局变量voidmain(){voidcheck();voidprint();inti,j,p=0,q=0;charc;intrequest[m],allocation1[m][m],need1
2、[m][m],available1[m];printf("**********************************************");printf("*银行家算法的设计与实现*");printf("**********************************************");printf("请输入进程总数:");scanf("%d",&no1);printf("请输入资源种类数:");scanf("%d",&no2);printf("请输入Max矩阵:");for(
3、i=0;i4、出need矩阵的值printf("请输入Available矩阵");for(i=0;i=no1){printf("输入错误,请重新输入:");c5、ontinue;}elsebreak;}printf("请输入该进程所请求的资源数request[j]:");for(j=0;jneed[i][j])p=1;//判断请求是否超过该进程所需要的资源数if(p)printf("请求资源超过该进程资源需求量,请求失败!");else{for(j=0;javailable[j])q=1;//判断请求是否6、超过可用资源数if(q)printf("没有做够的资源分配,请求失败!");else//请求满足条件{for(j=0;j7、[j]-request[j];//系统尝试把资源分配给请求的进程}print();check();//检测分配后的安全性if(r==0)//如果分配后系统不安全{for(j=0;j8、");//判断是否继续进行资源分配c=getche();}while(c=='y'9、10、c=='Y');}}voidcheck()//安全算法函数{intk,f,v=0,i,j;intwork[m],a[m];boolfinish[m];r=1;
4、出need矩阵的值printf("请输入Available矩阵");for(i=0;i=no1){printf("输入错误,请重新输入:");c
5、ontinue;}elsebreak;}printf("请输入该进程所请求的资源数request[j]:");for(j=0;jneed[i][j])p=1;//判断请求是否超过该进程所需要的资源数if(p)printf("请求资源超过该进程资源需求量,请求失败!");else{for(j=0;javailable[j])q=1;//判断请求是否
6、超过可用资源数if(q)printf("没有做够的资源分配,请求失败!");else//请求满足条件{for(j=0;j7、[j]-request[j];//系统尝试把资源分配给请求的进程}print();check();//检测分配后的安全性if(r==0)//如果分配后系统不安全{for(j=0;j8、");//判断是否继续进行资源分配c=getche();}while(c=='y'9、10、c=='Y');}}voidcheck()//安全算法函数{intk,f,v=0,i,j;intwork[m],a[m];boolfinish[m];r=1;
7、[j]-request[j];//系统尝试把资源分配给请求的进程}print();check();//检测分配后的安全性if(r==0)//如果分配后系统不安全{for(j=0;j8、");//判断是否继续进行资源分配c=getche();}while(c=='y'9、10、c=='Y');}}voidcheck()//安全算法函数{intk,f,v=0,i,j;intwork[m],a[m];boolfinish[m];r=1;
8、");//判断是否继续进行资源分配c=getche();}while(c=='y'
9、
10、c=='Y');}}voidcheck()//安全算法函数{intk,f,v=0,i,j;intwork[m],a[m];boolfinish[m];r=1;
此文档下载收益归作者所有