1 / 16
文档名称:

银行家算法实验报告.doc

格式:doc   大小:193KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

银行家算法实验报告.doc

上传人:雾里行舟 2019/11/5 文件大小:193 KB

下载得到文件列表

银行家算法实验报告.doc

文档介绍

文档介绍:--------------------------校验:_____________-----------------------日期:_____________银行家算法实验报告计算机操作系统实验报告实验名称:银行家算法实验目的:银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。问题分析与设计:1、算法思路:先对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。2、银行家算法步骤:(1)如果Requesti<or=Need,则转向步骤(2);否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果Request<or=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。(3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值:    Available=Available-Request[i];    Allocation=Allocation+Request;Need=Need-Request;(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。3、安全性算法步骤:(1)设置两个向量①工作向量Work。它表示系统可提供进程继续运行所需要的各类资源数目,执行安全算法开始时,Work=Allocation;②布尔向量Finish。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]=false,当有足够资源分配给进程时,令Finish[i]=true。(2)从进程集合中找到一个能满足下述条件的进程:①Finish[i]=false②Need<or=Work如找到,执行步骤(3);否则,执行步骤(4)。(3)当进程P获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work=Work+Allocation;Finish[i]=true;转向步骤(2)。(4)如果所有进程的Finish[i]=true,则表示系统处于安全状态;否则,系统处于不安全状态。4、流程图:系统主要过程流程图银行家算法流程图安全性算法流程图实验代码://#defineM5//#defineN3#include<>//本实验中使用到的库函数#include<>#include<>intmax[5][1];//开始定义银行家算法中需要用到的数据intallocation[5][1];intneed[5][1];intavailable[1];intrequest[5][1];char*finish[5];intsafe[5];intn,i,m;intk=0;intj=0;intwork[1];intworks[5][1];voidline()//美化程序,使程序运行时更加明朗美观{ printf("------------------------------------------------\n");}voidstart()//表示银行家算法开始{ line(); printf("银行家算法开始\n"); printf("--死锁避免方法\n"); line();}voidend()//表示银行家算法结束{ line(); printf("银行家算法结束,谢谢使用\n"); line();}voidinput()//输入银行家算法起始各项数据{ for(n=0;n<5;n++) { printf("请输入进程P%d的相关信息:\n",n); printf("Max:"); for(m=0;m<1;m++) scanf("%d",&max[n][m]); printf("Allocation:"); for(m=0;m<1;m++) scanf("%d",&allocation[n][m]); for(m=0;m<1;m++) need[n][m]=max[n][m]-allocation[n][m]; } printf("请输入系统可利用资源数Available:"); for(m=0;m<1;m++) scanf("%d",&available[m]);}voidoutput()//输出系统现有资源情况{ line(); printf("资源情况MaxAllocationNeedAvailable\n"); printf("进程AAAA\n"); line(); for(n=0;n<5;n++) { printf("P%d%3d%3d%3d",n

最近更新

2025年徐州幼儿师范高等专科学校单招职业适应.. 62页

2025年徐州生物工程职业技术学院单招职业倾向.. 63页

2025年徐州生物工程职业技术学院单招职业技能.. 61页

2025年徐州生物工程职业技术学院单招职业适应.. 63页

2025年德宏职业学院单招职业倾向性测试题库含.. 62页

2025年德宏职业学院单招职业技能测试题库及答.. 64页

2025年物质的比热说课稿 3页

2025年德州科技职业学院单招职业技能测试题库.. 60页

2025年德州职业技术学院单招职业倾向性测试题.. 60页

2025年德州职业技术学院单招职业适应性测试题.. 60页

2025年HDY金属腐蚀测试仪的研制的开题报告 3页

2025年德阳科贸职业学院单招职业适应性测试题.. 61页

2025年德阳科贸职业学院单招职业适应性测试题.. 62页

2025年徽商职业学院单招职业技能测试题库推荐.. 61页

2025年徽商职业学院单招职业适应性测试题库带.. 61页

2025年忻州职业技术学院单招职业技能测试题库.. 61页

2025年忻州职业技术学院单招职业适应性测试题.. 62页

2025年忻州职业技术学院单招职业适应性测试题.. 60页

2025年怀化师范高等专科学校单招职业倾向性测.. 63页

2025年怀化师范高等专科学校单招职业技能测试.. 62页

2025年怀化师范高等专科学校单招职业适应性测.. 61页

2025年怀化职业技术学院单招职业倾向性测试题.. 60页

2025年怀化职业技术学院单招职业技能测试题库.. 61页

2025年怀化职业技术学院单招职业适应性测试题.. 60页

2025年恩施职业技术学院单招职业倾向性测试题.. 60页

2025年恩施职业技术学院单招职业倾向性测试题.. 61页

2025年DNAStar详细中文使用说明书 105页

2025年恩施职业技术学院单招职业适应性测试题.. 60页

2025年物业顾问的岗位职责 5页

2025年佳木斯职业学院单招职业技能测试题库及.. 73页