ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:55.89KB ,
资源ID:15230120      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15230120.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(银行家算法课程设计报告Word文件下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

银行家算法课程设计报告Word文件下载.docx

1、所谓安全状态,是指系统能按某种顺序为每个进程分配所需资源,直到最大需求,使每一个进程都可以顺利完成,即可找到一个安全资源分配序列。模拟实现这个工作过程。三 设计思路我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资

2、源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。四 详细设计1、初始化由用户输入数据,分别对可利用资源向量矩阵AVAILABLE、最大需求矩阵MAX、分配矩阵ALLOCATION、需求矩阵NEED赋值。2、银行家算法在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是,才分配。设进程cusneed提出请求REQUEST i,则银行家算法按如下规

3、则进行判断。(1)如果REQUEST cusneed i= NEEDcusneedi,则转(2);否则,出错。(2)如果REQUEST cusneed i= AVAILABLEcusneedi,则转(3);(3)系统试探分配资源,修改相关数据: AVAILABLEi-=REQUESTcusneedi; ALLOCATIONcusneedi+=REQUESTcusneedi; NEEDcusneedi-=REQUESTcusneedi;(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。(5)对于某一进程i,若对所有的j,有NEEDij=0,则表此进程资源

4、分配完毕,应将占用资源释放。3、安全性检查算法(1)设置两个工作向量Work=AVAILABLE;FINISH(2)从进程集合中找到一个满足下述条件的进程,FINISH=false;NEED=Work;如找到,执行(3);否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。Work+=ALLOCATION;Finish=true;GOTO 2(4)如所有的进程Finish= true,则表示安全;否则系统不安全。4、流程图四 源程序:#include .6秒后跳入主界面 endl; Sleep(6000); system(cls); cout cout m;请输入资源的种

5、类:n;请输入每个进程最多所需的各资源数,按照mxn矩阵输入 for(i=0;ii+) for(j=0;jj+)MAXij;请输入每个进程已分配的各资源数,也按照 ALLOCATIONij; NEEDij=MAXij-ALLOCATIONij; if(NEEDij0)您输入的第i+1个进程所拥有的第j+1个资源数错误,请重新输入: j-; continue; j+) /已分配各资源总数 for(i=0; NEEDcj=ALLOCATIONij+NEEDcj; / for(i=0;i+) /此四行用于检验 / / coutNEEDci; / 请输入各个资源现有的数目:AVAILABLEi;i+)

6、 /总资源数 SUMMITi=AVAILABLEi+ NEEDci;/ for(i=0;i+) /检验用/ coutSUMMITi / cout初始化后状态显示:每个进程最多所需的各资源数 for(j=0; coutMAXij if(j=n-1) cout每个进程已分配的各资源数ALLOCATIONij各个资源现有的数目:AVAILABLEiNEEDcusneedi)您输入的本个请求数超过进程的需求量!请重新输入! i-; continue;AVAILABLEi)您输入的本个请求数超过系统有的资源数!i+) /资源分配 if(Safe()同意分配请求!此次分配后状态显示:当前每个进程最多尚需的各资源数 for(j=0;NEEDij 当前每个进程已分配过的各资源数 add=NEEDij+add; /是否已分配完毕 if(add!=0)i+) sum=NEEDcusneedi+sum;sum值:sum /cout if (sum=0) for(i=0; AVAILABLEi= ALLOCATIONcusneedi+AVAILABLEi; sum=0; add=0;add else

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1