下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024简单家具维修合同范本
- 2024年加工承揽合同标的与质量标准
- 2024建筑材料采购合同范本下载
- 2024年度公园绿化树苗采购合同
- 2024年山东潍坊物业委托管理合同
- 迷雾解说课件教学课件
- 2024年度互联网金融产品研发与推广合同
- 04版智能家居系统研发与销售合同
- 2024年度云服务提供商合同
- 2024年店铺投资合作协议
- 护理质量安全与风险管理的案例分析
- 工程流体力学课后习题答案-(杜广生)
- AI智能客服应用实践
- 《止吐药临床应用》课件
- 幕墙工程检验批质量验收记录
- 危险化学品经营企业安全生产奖惩制度范本
- 报价单模板完
- 30题药品质量检测岗位常见面试问题含HR问题考察点及参考回答
- 《婴幼儿行为观察、记录与评价》期末试卷及答案 卷3
- 企业战略管理概述
- 消防安全概述
评论
0/150
提交评论