《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+;二、 运行结果注:安全序列并不一定唯一。该算法只能输出其中一个安全序列。

用c语言编写银行家算法,C语言实现银行家算法相关推荐

  1. c语言编写计算机软件,基于C语言的计算机软件编程分析.doc

    基于C语言的计算机软件编程分析.doc 基于C语言的计算机软件编程分析 摘要:C语言是一种重要的编程语言,在当今IT业的运用十分广泛.使用C语言来编写的程序简单.直接.准确,极大地推动了计算机软件的更 ...

  2. 用c语言编写字母循环,C语言输入循环字母

    广告 提供50多种云计算产品,包括云服务器和云. 创建一站式云产品试用服务,以帮助开发人员和企业以零门槛进入云环境. 是否有一种简单的方法来调用c脚本,以查看用户是否输入了英文字母中的字母?我在想这样 ...

  3. c语言编写五子棋报告,c语言报告五子棋.pdf

    C 语言课程设计报告 c 题目: 简单的 五子棋 设计者: 方阳 专业班级: 软件工程1303班 学号: 311309060324 指导老师: 刘洁 所属系部: 计算机学院 2014年6月25 日 河 ...

  4. 用c语言编写实心菱形,C语言编写内置菱形的程序

    C语言编写内置菱形的程序 最近迷上了用C语言编写图形的输出程序,有矩形的.三角形.等腰三角形,平行四边形.菱形.沙漏形.今天尝试着将菱形内置到矩形中,结果成功了,下面将快乐分享给大家,也希望广大C程序 ...

  5. C语言编写程序助手,C语言代码实例助手下载

    c语言代码实例助手是一款简单专业的C语言学习助手软件,该软件可以帮助用户执行和调试用户编写的代码,同时还内置有多种入门学习代码,还为用户整合了C语言学习过程中可以遇到的问题,其中包括入门代码.算法.图 ...

  6. 用C语言编写万年历6,C语言编写万年历

    <C语言编写万年历>由会员分享,可在线阅读,更多相关<C语言编写万年历(8页珍藏版)>请在人人文库网上搜索. 1.C语言编写万年历 [要求]:1 程序运行后,首先在屏幕上显示主 ...

  7. c语言编写系统服务程序,C语言Windows服务程序编写-ServiceMain

    C语言编写的Windows服务程序,可以类比Linux/Unix环境下的daemon进程. 一下是VS2010环境下的demo: // windows_service.cpp : 定义控制台应用程序的 ...

  8. c语言编写modbus程序,C语言编写modbus协议

    <C语言编写modbus协议>由会员分享,可在线阅读,更多相关<C语言编写modbus协议(23页珍藏版)>请在人人文库网上搜索. 1.include / 字地址 0 - 25 ...

  9. 图书馆管理系统利用c语言编写,图书馆管理系统 c语言编写.doc

    图书馆管理系统 c语言编写 #include "stdio.h"#include "stdlib.h"#include "conio.h"# ...

  10. 编程是将c语言编写的源程序,C语言程序设计基础教程习题答案20120319.doc

    习题答案 第1章 填空题 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main . 一个函数由__函数头__和__函数体__两部分组成. 在C语言中,输入操作是由库函数__scanf ...

最新文章

  1. 2021重庆江北中学高考成绩查询,重庆江北中学校2021年排名
  2. 【pyqt5】——信号与槽
  3. mysql 8函数索引_新特性解读 | MySQL 8.0 索引特性1-函数索引
  4. 编写一个程序,找出数组中元素的最大值,要求用到成员函数。
  5. java中native的用法
  6. CSS 控制元素 上下左右居中
  7. 操作元素-改变元素内容
  8. java sctp_[编织消息框架][传输协议]sctp简单开发
  9. 3.Jenkins 权威指南 --- 设置构建作业
  10. python : pandas库的后继者polars库
  11. Eclipse超级好看的主题,极力推荐
  12. 如何用resource hacker快速的去除WinRAR的广告
  13. 工作中个人注册的媒体账号离职要归公司所有?
  14. ESD5V5U5ULC TVS DIODE SC74-6 TVS - 二极管
  15. Failed to read artifact descriptor for
  16. DveC++编译[Error] ld returned 1 exit status
  17. rk3288-android8.1-OV13850
  18. 51单片机利用STC-ISP下载软件时串口打开失败怎么办?
  19. 华为P30 后摄像头打不开(C1904失效)维修案例
  20. L2TP协议及AVP

热门文章

  1. 教你用笔记本破解无线路由器密码
  2. PhysGAN: Generating Physical-World-Resilient Adversarial Examples for Autonomous Driving
  3. 杉杉股份1.2亿元收购锂矿运营公司Altura 11.83%股份
  4. VS2017 程序在新电脑环境出现 “无法加载DLL “xxxx.dll“:找不到指定模块。”(异常来自 HRESULT:0x8007007E)
  5. SugarCRM CE 部署除错
  6. android bindservice方法,Android bindservice方法返回false
  7. c语言程序一键删除文件,VC实现批量删除指定文件的方法
  8. MYSQL的课程总结_数据库系统课程总结
  9. Java17 新特性和改进
  10. java-求全组合-面试题