用c语言编写银行家算法,C语言实现银行家算法

用c语言编写银行家算法,C语言实现银行家算法《C语言实现银行家算法》由会员分享,可在线阅读,更多相关《C语言实现银行家算法(8页珍藏版)》请在人人文库网上搜索。1、C语言实现银行家算法(源码、运行结果)一、源码/*银行家算法10-22*/#include/函数声明voidinit(int*pcount,int*scount,intAllocation1010,intNeed1010,intAvailable10);vo…

大家好,又见面了,我是你们的朋友全栈君。

《C语言实现银行家算法》由会员分享,可在线阅读,更多相关《C语言实现银行家算法(8页珍藏版)》请在人人文库网上搜索。

1、C语言实现银行家算法(源码、运行结果)一、 源码/* 银行家算法 10-22*/#include/函数声明void init(int * pcount,int * scount,int Allocation1010,int Need1010,int Available10);void print(int pcount,int scount,int Allocation1010,int Need1010,int Available10);int requs(int scount,int * Requestnumber,int Request10,int Allocation1010,int Ne。

2、ed1010,int Available10);void print2(int isreque,int number);void yhj(int number,int pcount,int scount,int Allocation1010,int Need1010,int Available10);int main()int conti=1; /0退出int pcount=0,scount=0; /进程数 和 资源数int Allocation1010;int Need1010;int Available10;/分配矩阵Allocation 需求矩阵Need 可利用资源向量Available。

3、 int number=0,Request10=0;/用于记录进程编号 用于记录请求向量while(true)init(&pcount,&scount,Allocation,Need,Available); /调用初始化函数print(pcount,scount,Allocation,Need,Available); /调用打印函数int isreque = requs(scount,&number,Request,Allocation,Need,Available); /调用是否请求函数if(isreque=1)printf(n把资源分配给进程P%d后,资源分配情况如下:n,number);。

4、print(pcount,scount,Allocation,Need,Available); /调用打印函数yhj(number,pcount,scount,Allocation,Need,Available); /调用银行家算法函数elseif(isreque=0)yhj(number,pcount,scount,Allocation,Need,Available); /调用银行家算法函数elseprint2(isreque,number);printf(是否继续?0退出,1继续:);scanf(%d,&conti);printf(n);if(conti = 0)break;printf(。

5、n);return 0;/初始化函数: 提示用户输入 进程数,资源数,Allocation矩阵等void init(int * pcount,int * scount,int Allocation1010,int Need1010,int Available10)int p,s;int i,j;printf(进程数:);scanf(%d,&p);*pcount = p;printf(资源数:);scanf(%d,&s);*scount = s;printf(Allocationn);for(i=0;i=0 & numberNeednumberj)for(j=0;jAvailablej)retu。

6、rn 4;return 2;/判断请求向量是否合理:是否小于可利用资源向量bool isrun2 = true;for(j=0;jAvailablej)return 3;/请求向量合理则分配资源/分配资源给请求的进程for(j=0;jWorkj)iscan = false; /printf(进程P%d不能运行n,i);break;if(iscan = true)Finishi = 1;printf(P%d ,i);/释放该进程前,可利用资源数Workfor(j=0;jscount;j+)printf(%3d,Workj);printf( );/该进程需求变量Needfor(j=0;jscoun。

7、t;j+)printf(%3d,Needij);printf( );/该进程占用资源数Allocationfor(j=0;jscount;j+)printf(%3d,Allocationij);printf( );for(j=0;jscount;j+)/进程运行完成,工作向量资源数增加Workj += Allocationij;printf( );/记录该进程至安全序列/printf(k=%d,i=%dn,k,i);xk = i; k+;/释放该进程后,可利用资源数Work+Allocationfor(j=0;jscount;j+)printf(%3d,Workj);printf(t 1);p。

8、rintf(n);/如果可用资源不能满足任何进程的需要 跳出循环/例如n=1 done1则跳出 done = 0;for(i=0;ipcount;i+)if(Finishi=1)done+;if(donen)printf(系统不安全,P%d等待nn,number);break;else if(done=pcount)printf(系统安全,存在着一个安全序列为:);for(i=0;ipcount;i+)if(i=pcount-1)printf(P%d,xi);elseprintf(P%d,xi);printf(nn);break;n+;二、 运行结果注:安全序列并不一定唯一。该算法只能输出其中一个安全序列。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163199.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新遇到的问题 , 进程退出代码是 ‘0xffffffff’

    新遇到的问题 , 进程退出代码是 ‘0xffffffff’最近新做了系统发现IIS无法正常发布网站,网上提供了很多办法,都未解决。解决过程一波三折,依次用了下列方法:1、解决办法点击“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项,选择其下的“IISADMINSERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自…

    2022年5月16日
  • FilterDispatcher工作流程和原理「建议收藏」

    FilterDispatcher工作流程和原理「建议收藏」publicvoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainchain)throwsIOException,

    2022年7月2日
  • pycharm远程部署_树莓派python环境

    pycharm远程部署_树莓派python环境树莓派python安装到pycharm远程连接步骤1、从官网上下载树莓派系统到pc端2、下载diskgenius,将TF卡格式化成普通盘3、在卡中创建ssh文件,不带后缀,用于树莓派和主机的远程连接4、从官网下载piimager,将下载的树莓派系统安装TF卡中5、TF插入树莓派4B,开机自动开始安装系统6、提示是否更新软件,直接skip跳过7、更换镜像源8、update,upgrade命令更新软件9、安装虚拟键盘(可选)10、安装中文输入法11、远程控制,pc端安装xshell12

    2022年8月26日
  • 关于接入新浪微博第三方登录

    关于接入新浪微博第三方登录

    2022年3月8日
  • Java基础之int和Integer有什么区别

    Java基础之int和Integer有什么区别1int与Integer的基本使用对比(1)Integer是int的包装类;int是基本数据类型;(2)Integer变量必须实例化后才能使用;int变量不需要;(3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值;(4)Integer的默认值是null;int的默认值是0。2int与Integer的深入对比(1)由于In…

    2022年7月16日
  • 安捷伦示波器连接电脑没反应_安捷伦示波器升级

    安捷伦示波器连接电脑没反应_安捷伦示波器升级调试或者测试电路的过程中,示波器是比不可少的东西,且常需要保存示波器的波形,可以通过一条网线把示波器与电脑连接起来,这样就可以在电脑上方便的保存波形图,怎么实现示波器和电脑连接,我们以安捷伦示波器DSO7052B为例,其他示波器类似。1.首先通过一条网线连接示波器和电脑,在电脑上找到:网络和共享中心->以太网状态->以太网属性->TCP/IPv4协议,点击属性2…

    2022年10月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号