1 / 20
文档名称:

银行家算法实验报告(同名22949).doc

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

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

分享

预览

银行家算法实验报告(同名22949).doc

上传人:yzhlyb 2019/8/25 文件大小:424 KB

下载得到文件列表

银行家算法实验报告(同名22949).doc

相关文档

文档介绍

文档介绍:银行家算法实验报告(同名22949)计算机操作系统实验报告何美西109253030212实验名称:银行家算法实验目的:银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。问题分析与设计: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、流程图:系统主要过程流程图银行家算法流程图安全性算法流程图实验代码:#include<>#include<>#include<>#defineFalse0#rue1intMax[100][100]={0};//各进程所需各类资源的最大需求intAvaliable[100]={0};//系统可用资源charname[100]={0};//资源的名称intAllocation[100][100]={0};//系统已分配资源intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量inttemp[100]={0};//存放安全序列intWork[100]={0};//存放系统可提供资源intp[100]={0};intq[100][100]={0};intz[100][100]={0};intM=100;//作业的最大数为100intN=100;//资源的最大数为100intgg=1;voidshowdata()//显示资源矩阵{inti,j;cout<<endl<<"此时刻的资源分配情况为:"<<endl;cout<<"MaxAllocationNeedAvaliable"<<endl;cout<<"进程名";for(j=0;j<4;j++){for(i=0;i<N;i++)cout<<name[i]<<"";cout<<"";}cout<<endl;for(i=0;i<M;i++){cout<<""<<i<<"";for(j=0;j<N;j++)cout<<Max[i][j]<<"";cout<<"";for(j=0;j<N;j++)cout<<Allocation[i][j]<<"";cout<<"";for(j=0;j<N;j++)cout<<Need[i][j]<<"";if(i==0){cout<<"";for(j=0;j<N;j++)cout<<Avaliable[j]<<"";//输出分配资源}cout<<endl;}}intchangdata(inti)//进行资源分配{intj;for(j=0;j<M;j++){//p[j]=Avaliable[j];Avaliable[j]=Avaliable[j]-Request[j]; //q[i][j]=Allocation[i][j];Allocation[i][j]=Allocation[i][j]+Request[j]; //z[i][j]=Need[i][j

最近更新

2025年吉林工业职业技术学院单招职业倾向性测.. 62页

2025年吉林水利电力职业学院单招职业倾向性测.. 60页

2025年祝愿生活越来越美好的句子200句 14页

2025年吉林电子信息职业技术学院单招职业倾向.. 61页

镀锌铁皮的涂装工艺调查 3页

用人单位员工劳务合同(3篇) 13页

2025年祝妈妈生日快乐的短信 4页

2025年世界各国元旦的风俗有哪些 5页

企业股权转让规范化合同样本 6页

铸造工艺对ZL205A大型回转体铸件偏析缺陷的影.. 3页

2025年吉林省松原市单招职业适应性测试题库及.. 64页

2025年社团纳新宣传口号 4页

2025年吉林科技职业技术学院单招职业倾向性测.. 62页

2025年吉林科技职业技术学院单招职业适应性测.. 63页

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

《七大洲和四大洋》课件 22页

钢管桩在陡坡路堤挡墙中的应用 3页

2025年周口理工职业学院单招职业技能测试题库.. 62页

2025年周口职业技术学院单招职业倾向性测试题.. 63页

第十一章广告文案 34页

2025年社会实践报告肯德基汉堡 3页

2025年不要乱扔垃圾温馨提示语 4页

2025年咸阳职业技术学院单招职业倾向性测试题.. 63页

2025年破碎的友谊伤感句子 3页

2025年研究生毕业简历 7页

工程制图试卷(16套) 27页

成井报告 6页

郑州大学2025年硕士研究生复试分数线 9页

基建合同书样本 3页

工程制图16套试卷 27页