银行家算法的某实验的汇报材料

上传人:M****1 文档编号:560760715 上传时间:2022-10-09 格式:DOCX 页数:13 大小:72.56KB
返回 下载 相关 举报
银行家算法的某实验的汇报材料_第1页
第1页 / 共13页
银行家算法的某实验的汇报材料_第2页
第2页 / 共13页
银行家算法的某实验的汇报材料_第3页
第3页 / 共13页
银行家算法的某实验的汇报材料_第4页
第4页 / 共13页
银行家算法的某实验的汇报材料_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《银行家算法的某实验的汇报材料》由会员分享,可在线阅读,更多相关《银行家算法的某实验的汇报材料(13页珍藏版)》请在金锄头文库上搜索。

1、word计算机学院操作系统课程设计报告设计题目:银行家算法的实现某某:学号:班级:06网络工程班完成日期:2009年6月13日成 完 立 独设计目的O 概施 等实 锁体 死具 止的 防锁 济止 申防 源和 资锁 关死 有解 解了 了 和 深会 加体 1 2设计预备知识o O 识 杳 知。检 关法性 相算全 的家安 锁行统 死 银 系 2.3.设计内容宀心 心 实 请 W。申 值 示源 初Needi , n,如此报错返回。 如果RequestnAvailable ,如此进程i进入等待资源状态,返回。(3) 假设进程i的申请已获批准,于是修改系统状态:Available=Available-Req

2、uestAllocatio n= Allocatio n+RequestNeed=Need-Request(4) 系统执行安全性检查,如安全,如此分配成立;否如此试探险性分配作废, 系统恢复原状,进程等待。2. 安全性检查(1) 设置两个工作向量 Work=Available ; FinishM=False(2) 从进程集合中找到一个满足下述条件的进程,Fi nish i=FalseNeed=Work如找到,执行;否如此,执行(4)(3) 设进程获得资源,可顺利执行,直至完成,从而释放资源。Work=Work+Allocati onFini sh=TrueGO TO 2如所有的进程Finish

3、M=true ,如此表示安全;否如此系统不安全。#defi ne False 0#defi ne True 1int Max100100=0;各进程所需各类资源的最大需求int Avaliable100=0;系统可用资源char name100=0;资源的名称int Allocati on 100100=0;系统已分配资源int Need100100=0; 还需要资源int Request100=0;请求资源向量int temp100=0;存放安全序列int Work100=0;存放系统可提供资源int M=100; 作业的最大数为100 int N=100; 资源的最大数为100 void

4、showdata() 显示资源矩阵三、源代码#i nclude#i nclude#i nclude#defi ne False 0#defi ne True 1int Max100100=0;各进程所需各类资源的最大需求int Avaliable100=0;系统可用资源char name100=0; 资源的名称int Allocatio n100100=0;系统已分配资源int Need100100=0; 还需要资源int Request100=0;请求资源向量int temp100=0;存放安全序列int Work100=0;存放系统可提供资源int M=100; 作业的最大数为100int

5、 N=100; 资源的最大数为100void showdata()显示资源矩阵int i,j;cout 系统目前可用的资源Avaliable:endl; for(i=0;iN;i+)cout n amei;coute ndl;for (j=0;jN;j+)coutAvaliablej ;/输出分配资源coute ndl;coutMaxAllocatio nNeede ndl;coutvv 进程名 ;for(j=0;j3;j+)for(i=0;iN;i+)cout n amei;cout;coute ndl;for(i=0;iM;i+)cout i;for(j=0;jN;j+)coutMaxij

6、;cout;for(j=0;jN;j+)coutAllocationij; cout;for(j=0;jN;j+)coutNeedijvv;coute ndl;in t cha ngdata(i nt i)/进展资源分配int j;for (j=0;jM;j+) Avaliablej=Avaliablej-Requestj;Allocatio nij=Allocati on ij+Requestj; Needij=Needij-Requestj;return 1;int safe()安全性算法int i,k=0,m,apply,Fi ni sh100=0;int j;int flag=0;Wo

7、rk0=Avaliable0;Work1=Avaliable1;Work2=Avaliable2; for(i=0;iM;i+) apply=0;for(j=0;jN;j+)if (Fi ni shi=False&Needij=Workj) apply+;变分配数if(apply=N) for(m=0;mN;m+) Workm=Workm+Allocatio n im; Fini shi=True;tempk=i;i=-1;k+;flag+;for(i=0;iM;i+)if(Fi ni shi=False)coutvv 系统不安全endl;不成功系统不安全return -1;coutvv 系统

8、是安全的!endl;如果安全,输出成功cout分配的序列:;for(i=0;iM;i+)输出运行进程数组couttempi;if(iM-1) cout;coutvve ndl;return 0;void share()利用银行家算法对申请资源对进展判定char ch;int i=0,j=0;ch=y;coutvv请输入要求分配的资源进程号(0-vvM-1 i;输入须申请的资源号coutvv请输入进程vvivv申请的资源:endl;for(j=0;jRequestj;输入需要申请的资源for (j=0;jvN;j+)if(RequestjNeedij)/判断申请是否大于需求,假如大于如此出错co

9、utvv 进程vvivv申请的资源大于它需要的资源;coutvv分配不合理,不予分配!vve ndl;ch= n;break;else if(RequestjAvaliablej)判断申请是否大于当前资源,假如大于如此/出错coutvv 进程vvivv申请的资源大于系统现在可利用的资源;coutvv分配出错,不予分配!vvendl;ch= n;break;if(ch=y) cha ngdata(i);/根据进程需求量变换资源showdata();根据进程需求量显示变换后的资源safe();根据进程需求量进展银行家算法判断void addresources()/添加资源int n ,flag;c

10、outvv请输入需要添加资源种类的数量:;cinn;flag=N;N=N+n;for(int i=0;in ameflag;cout数量:;cin Avaliableflag+;showdata();safe();void delresources()/删除资源char ming;int i,flag=1;coutvv请输入需要删除的资源名称:;docinming;for(i=0;iN;i+)if(mi ng=n amei)flag=0;break;if(i=N)coutvv该资源名称不存在,请重新输入:;while(flag);for(i nt j=i;jN-1;j+)n amej=n amej+1;Avaliablej=Avaliablej+1;N=N-1;showdata();safe();void cha ngeresources()修改资源函数c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号