




已阅读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年河北邯郸市肥乡区公开选聘农村党务(村务)工作者100名模拟试卷附答案详解
- 北京市中医院肝内胆管结石手术处理考核
- 北京市中医院慢性腹泻病因诊断思路考核试题
- 2025年河北雄安新区雄县卫健系统公开招聘专业技术人员71名模拟试卷附答案详解(典型题)
- 唐山市人民医院内分泌高血压病因筛查考核
- 秦皇岛市人民医院药物生产质量管理考核
- 大学课件兼职
- 2025年4月重庆市妇幼保健院部分岗位招聘考前自测高频考点模拟试题及完整答案详解
- 衡水市中医院小儿推拿技术专项技能考核
- 张家口市人民医院后勤人力资源调配与绩效考核方案
- 血源性传播疾病暴露后处理
- 2024年湖北省科学技术馆度招聘真题
- 《习作:缩写故事》教学课件
- DB44∕T 2418-2023 公路路堤软基处理技术标准
- 钻芯法检测混凝土强度技术规程JGJ-T384-2024
- 人货场的培训课件
- 图书馆寻宝活动方案
- 2025年广西专业技术人员继续教育公需科目(三)答案
- 护理低温烫伤课件
- 2025至2030LED电源行业产业运行态势及投资规划深度研究报告
- 搅拌站泵车管理制度
评论
0/150
提交评论