




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一. 实验目的及实验环境1. 实验目的通过本次实验,进一步掌握进程的相关概念,加深对进程银行家算法的理解。2.实验环境Windows XP程序编译环境:Visual C+ 6.0编程语言:C+测试平台:Windows XP二. 实验内容1.选取一种熟悉的编程语言,编写程序模拟实现银行家算法。三方案设计1.数据结构的实现/*见书的源代码,并对数据结构中每个成员含义进行解释*/2.程序概要设计1) 各个函数功能描述AVAILABLEMAXRESOURCE:可利用资源向量MAXMAXPROCESSMAXRESOURCE:最大需求矩阵ALLOCATIONMAXPROCESSMAXRESOURCE:分配矩阵NEEDMAXPROCESSMAXRESOURCE:需求矩阵REQUESTMAXPROCESSMAXRESOURCE:进程需要资源数bool FINISHMAXPROCESS :系统是否有足够资源分配int pMAXPROCESS :记录序列void Init():初始化bool Safe():安全性检查void Bank():银行家算法2)各个函数之间的调用关系图3. 核心函数算法流程图1) safe( ) 安全性检查2) bank( ) 银行家算法四测试数据及运行结果/*测试数据和运行结果通过程序截图来说明*/五总结1 实验过程中遇到的问题及解决办法;输入矩阵时出现错误,以此输入数据即可解决2对设计及调试过程的心得体会。六附录:源代码 #include using namespace std;#define MAXPROCESS 50#define MAXRESOURCE 100int AVAILABLEMAXRESOURCE;int MAXMAXPROCESSMAXRESOURCE;int ALLOCATIONMAXPROCESSMAXRESOURCE;int NEEDMAXPROCESSMAXRESOURCE;int REQUESTMAXPROCESSMAXRESOURCE;bool FINISHMAXPROCESS;int pMAXPROCESS;int m,n;void Init();bool Safe();void Bank();int main() Init(); Safe(); Bank();void Init() int i,j;cout银行家算法endl;coutm;coutn;cout请输入每个进程最多所需的各资源数,按照 m x n 矩阵输入endl;for(i=0;im;i+)for(j=0;jMAXij;cout请输入每个进程已分配的各资源数,按照 m x n 矩阵输入endl;for(i=0;im;i+)for(j=0;jALLOCATIONij; NEEDij=MAXij=ALLOCATIONij; if(NEEDij0) cout您输入的第i+1个进程所拥有的第j+1个资源数错误,请重新输入:endl; j-; continue;cout请输入各资源现有数目:endl;for(i=0;iAVAILABLEi;void Bank() /银行家算法/ int i,cusneed; char again; int breakmark=0; while(1) breakmark=0; cout请输入要申请资源的进程号cusneed; cout请输入进程所请求各资源的数量endl; for(i=0;iREQUESTcusneedi; for(i=0;iNEEDcusneedi) cout您输入的请求数超过进程的需求量!请重新输入!AVAILABLEi) cout您输入的请求数超过系统拥有的资源数!请重新输入!endl; breakmark=1; break;/continue; if(breakmark=1) continue; for(i=0;in;i+) AVAILABLEi-=REQUESTcusneedi; ALLOCATIONcusneedi+=REQUESTcusneedi; NEEDcusneedi-=REQUESTcusneedi; if(Safe() cout同意分配请求!endl; else cout您的请求被拒绝!endl; for(i=0;in;i+) AVAILABLEi+=REQUESTcusneedi; ALLOCATIONcusneedi-=REQUESTcusneedi; NEEDcusneedi+=REQUESTcusneedi; for(i=0;im;i+) FINISHi=false; cout您还想再次请求分配吗?是请按y/Y,否请按其他键again; if(again=y|again=Y)continue; break;bool Safe()/安全性检查int i,j,k,l=0;int WORKMAXRESOURCE;for(i=0;in;i+) WORKi=AVAILABLEi;for(i=0;im;i+) FINISHi=false;for(i=0;im;i+) if(FINISHi=true) continue;elsefor(j=0;jWORKj) break;if(j=n) FINISHi=true; for(k=0;kn;k+) WORKk+=ALLOCATIONik; pl+=i; i=-1;else continue;if(l=m)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车行业供应链风险管理与供应链风险管理培训课程设计报告
- 2025年度楼板安装与售后维护合同
- 2025版暖通工程节能减排技术合作合同
- 2025房地产收购合同-城市综合体商业收购协议
- 2025版幕墙施工劳务分包合同范本(建筑节能减排方案)
- 2025年高科技园区建设招标投标保函范本
- 2025年度男方过错离婚协议书范本及婚姻过错赔偿履行协议
- 2025年度企业顶岗实习就业保障协议
- 2025年度保安服务与城市安全防范体系建设合同
- 2025版企业外部培训与内部培训资源共享合作协议
- 英语思维是这样成
- 声光电施工组织计划
- 精神活性物质所致精神障碍者的护理
- GB/T 4666-2009纺织品织物长度和幅宽的测定
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 水轮发电机的基本结构课件
- 《空气动力学》配套教学课件
- 技术交流-太钢不锈钢产品介绍
- 完整版医院体检报告范本
- 彭静山针灸秘验
- 《销售管理实务》ppt课件汇总(完整版)
评论
0/150
提交评论