下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include"stdio.h"#define FALSE 0#define TRUE 1#define W 10#define R 20int M ; /*总进程数*/int N ; /*资源种类*/int ALL_RESOURCEW;/*各种资源的数目总和*/int MAXWR; /*M个进程对N类资源最大资源需求量*/int AVAILABLER; /*系统可用资源数*/int ALLOCATIONWR; /*M个进程已经得到N类资源的资源量*/int NEEDWR; /*M个进程还需要N类资源的资源量*/int REQUESTR; /*请求资源个数*/*函数名:o
2、utput*功能:输出资源分配情况*/void output()int i,j;printf("All Resource:n");for(j = 0 ; j < N ;j+)printf("R%d:%dn", j , ALL_RESOURCEj);printf("Resource Available:n");for(j = 0 ; j < N ; j+)printf("R%d:%dn", j , AVAILABLEj);printf("Process Resource Needed:n&quo
3、t;);printf("| PID |");for(j = 0 ; j < N ; j+)printf(" R%d |", j);printf("n");for(i = 0 ; i < M ; i+)for(i = 0 ; i < M ; i+)printf("|%-5d|", i);for(j = 0 ; j < N ; j+)printf("%-4d|", NEEDij);printf("n");printf("Process Resou
4、rce Allocated:n");printf("| PID |");for(j = 0 ; j < N ; j+)printf(" R%d |", j);printf("n");for(i = 0 ; i < M ; i+) printf("|%-5d|", i);for(j = 0 ; j < N ; j+)printf("%-4d|", ALLOCATIONij); printf("n");/*output*/*函数名 :modify*功能
5、:改变可用资源和已经拿到资源和还需要的资源的值*参数:int k 修改编号为K的P的数据*/void modify(int k)int j;for(j = 0 ; j < N ; j+)/*修改数据*/ AVAILABLEj = AVAILABLEj - REQUESTj;/*修改可用资源*/ ALLOCATIONkj = ALLOCATIONkj + REQUESTj;/*修改分配资源*/ NEEDkj = NEEDkj - REQUESTj;/*修改资源需求*/*函数名:undo*功能:复原可用资源和已经拿到资源和还需要的资源的值*参数:参数:int k 修改编号为K的P的数据*/v
6、oid undo(int k)int j;for(j = 0 ; j < N ; j+)/*修改数据*/ AVAILABLEj = AVAILABLEj + REQUESTj; /*修改可用数据*/ ALLOCATIONkj = ALLOCATIONkj - REQUESTj; /*修改分配的资源*/ NEEDkj = NEEDkj + REQUESTj;/*修改资源需求*/ /*函数名:chkerr*功能:检查修改操作是否平安*/int chkerr(int s)int WORK , FINISHW;int i , j;for(i = 0 ; i < M ; i+)/*清空FIN
7、ISH*/FINISHi = FALSE;for(j = 0 ; j < N ; j+)/*逐一检查*/WORK = AVAILABLEj;i = s;doif(FINISHi = FALSE && NEEDij <= WORK)/*符合条件?*/WORK = WORK + ALLOCATIONij;FINISHi = TRUE;i = 0;elsei+;while(i<M);for(i = 0 ; i < M ; i+)/*只要一个不满足,不平安*/if(FINISHi = FALSE)printf("Error : UnSafe Alloc
8、ation!n");return 1; printf("OK : Allocation OKn");return 0;/*函数名:bank*功能 :银行家算法的实现*/void bank()int i , j;int flag = TRUE;printf("Use Ctrl+C break.n");while(TRUE)i = -1;while(i < 0 | i >= M)printf("Input Process to Allocat PID="); scanf("%d", &i)
9、; if(i < 0 | i >= M)printf("Error: Invalid Input!n");printf("Input Resource Needn"); for (j = 0 ; j < N ; j+) printf("R%d=", j);scanf("%d", &REQUESTj);if(REQUESTj > NEEDij)/*请求的资源数大于请求资源*/printf("Error: Invalid Input!n");flag = FALSE;
10、elseif(REQUESTj>AVAILABLEj)/*假设请求的资源数大于可用资源数*/printf("Error: Invalid Input!n");flag = FALSE;/*else*/ /*for*/ if(flag) modify(i); /*修改资源数*/if(chkerr(i)/*平安?*/undo(i); /*恢复资源数*/output();/*输出*/elseoutput(); /*输出*/ elseoutput();/*while*/*bank*/*主函数*/int main()int i , j , p;printf("Inpu
11、t Process Numbers M=");/*进程数量*/scanf("%d", &M);printf("Input Resource Category N=");/*资源种类*/scanf("%d", &N);printf("Input Number of All Resource each Category:n");/*资源数目*/for(i = 0 ; i < N ; i+)scanf("%d", &ALL_RESOURCEi);printf(&
12、quot;Input Max Resource Process Need:n");/*最大资源需求*/for (i = 0 ; i < M ; i+)for (j = 0 ; j < N ; j+)doscanf("%d", &MAXij);if (MAXij > ALL_RESOURCEj)/*大于最大可用?*/printf("nError: Invalid Input!n"); while (MAXij > ALL_RESOURCEj); /*for*/printf("Input Resource
13、Process Allocated:n");for (i = 0 ; i < M ; i+)for (j = 0 ; j < N ; j+)doscanf("%d", &ALLOCATIONij);if (ALLOCATIONij > MAXij)/*大于最大需求?*/printf("nError: Invalid Input!n");while (ALLOCATIONij > MAXij); /*for*/for(j = 0 ; j < N ; j+)p = ALL_RESOURCEj;for(i = 0 ; i < M ; i+)p -= ALLOCATIONij;/*减去已经分配资源*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年输血技术中级模拟试题及答案详解
- 2026年初级电工证题库(含答案)
- 2026年饲料检测技术模拟试题及答案详解
- 2026年保险创新题库(含答案)
- 《MW超超临界机组》教材
- 2026年煤矿安全管理人员安全意识测试题库
- 《GBT 17685-2016羽绒羽毛》从合规成本到利润增长全案:避坑防控+降本增效+商业壁垒构建
- 2026年人教版高一语文上册中期论点论据专项模拟试卷及答案
- 2026年北师大版初二数学下册第三单元基础巩固模拟试卷及答案
- 虚拟仿真教学系统操作规程
- 2026中国中医药国际化发展现状及市场准入壁垒分析报告
- 2026年财政部高层财会人才中青年人才选拔笔试热及完整(附答案)
- 2026年高考全国1卷语文高考试题(原卷版)
- 消防报警主机移位施工方案及流程
- 2025年河南三支一扶(6月14日)真题(答案)
- GB/T 44693.3-2026危险化学品企业工艺平稳性第3 部分:标准操作程序编制与使用规范
- 妇产科妊娠糖尿病管理方案
- 2026中车株洲电力机车研究所有限公司春季全球校园招聘考试参考题库及答案解析
- 车速重新鉴定申请书
- 认知障碍患者护理课件
- 2024-2025学年新疆伊犁州伊宁三中高一(上)第一次月考数学试卷(含答案)
评论
0/150
提交评论