1 / 14
文档名称:

银行家算法实验报告.doc

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

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

分享

预览

银行家算法实验报告.doc

上传人:1006108867 2019/5/27 文件大小:207 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,max[n][0],allocation[n][0],need[n][0]); if(n==0) printf("%3d%3d\n",available[0]); else pr

最近更新

磷矿反应料浆生产圆形颗粒钾肥的技术研究与开.. 3页

硅酸铝耐火纤维在电阻炉上的应用 3页

砂姜黑土区秸秆还田和控失尿素施用技术研究 3页

石湖金矿中深部通风系统改造方案 3页

金属材料库专题知识讲座 19页

贸易术语改专题培训 38页

2025年中考复习学习计划3篇【精选汇编】 12页

安装工程常用管件 61页

电信行业价格放松规制研究综述 3页

用最大熵谱分析方法提取周期信息 3页

甜酱1号酵母菌的分离、鉴定及代谢产物的分析 3页

数字化制造基础研究 19页

环境保护税改善环境的路径及制约因素研究 4页

2025年中医美容学学习心得中医美容学心得体会.. 8页

煤矿主排水系统安全性能测试中吨水百米电耗偏.. 3页

煤化工污染与防治探究 3页

城基础设施投融资形势政策与案例 18页

2025年上海上海中学必修第二册第三单元《立体.. 29页

2025年七下语文课时练答案人教版 七年级语文台.. 8页

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

关于返点协议书范本 5页

2024年村财务收支计划会议记录 10页

高考数学复习专题四函数与导数第3讲函数导数的.. 50页

工程造价范文-毕业设计--9#住宅楼施工图预算的.. 53页

11j508图集免费下载11J508建筑玻璃应用构造(栏.. 6页

塑料检查井检验批记录表 3页

麦彭仁波切上师仪轨 13页

从三提书信看教牧ppt课件 38页

温颖聪的诗 2页