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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

操作系统银行家算法.docx

1、操作系统银行家算法(操作系统)银行家算法解析银行家算法(09信管一班 2009970037 许可成)摘要:银行家算法是操作系统中采用避免死锁策略来解决死锁问题的一种算法。本文以银行家算法为主线,从银行家算法的起源,命名,再到算法的流程,深入解析了银行家算法的根本原理。关键字:银行家算法,数据结构,死锁避免。在操作系统中,有一个重要的东西,就是进程,可以说,进程直接关系到了运行的效率,然而,有一个问题也随之产生,那就是死锁问题:多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。死锁在操作系统中,是一个重要

2、的概念,它不仅在操作系统中有提到,在数据库,以及只要涉及到并发操作的,几乎都提到了这个问题了很多人为了解决死锁的困扰,也想出了很多办法,其中著名的就“有银行家算法”,以及“安全性检查算法”等等著名算法,这里,我盟就详细的说一下银行家算法。银行家通过发放贷款而获取利润,要获取利润必须按时收贷款本金和利息,即贷款企业要按时还本付息,而tI有各企业能不断获得所需资金最终完成项目才能还本付息。要避免的情况是:在某个时刻,备并行推进项目的企业均得到了一部分贷款,要使项目顺利推进还需要贷款,而银行家已经没有多余资金,从而导致各企业问循环等待埘方释放其占有的资金而使项目中断,造成一种僵滞局面,银行家冈收不回

3、贷款而破产。操作系统的资源分配类似于银行家贷款。操作系统就像一个银行家,系统临界资源就像银行家的贷则肯定不会陷入死锁。否则,一个时刻的安全状态是毫无意义的,而且可能从安全状态转变成不安全状态。(2)安全状态与不安全状态两个概念的引入使许多人产生误解,容易认为安全状态意味着系统刁i会陷入死锁,不安全状态意味着系统肯定会陷入死锁。其实,安全状态与不安全状态基于安全序列而定义,其实质是指是否存在一个安全序列。安全序列的意义不在于从某时刻起系统按安全序列的顺序分配资源使各进程依次执行完毕。在某时刻确定的一个安全序列预示着,从此刻起,一定可以找到一种避免死锁的资源分配方案。一种特殊方案就是按照安全序列的

4、顺序依次满足各进程的后续资源需求,使各进程依次顺序执行完毕。银行家算法基于这样一个原理:如果在系统运行的整个过程中,始终存在一种避免死锁的资源分配方案,则系统肯定能顺利推进直至所有进程都运行完毕。可以反证法来证明这一结论:如果系统陷入死锁,则肯定不存在一种避免死锁的资源分配方案。银行家算法的作用就是使系统始终存在一个安全序列,即始终存在一种资源分配方案。存在一种资源分配方案不意味着一定按此方案进行实际的资源分配。(3)如果所有进程的最大资源需求都小于或等于系统资源总额,则在银行家算法的作用下,系统能始终保持安全状态(即时刻都有一个安全序列)。深入分析可知:系统的初始状态肯定是安全的。如果在某时

5、刻存在着一个安全序列Sl,则意味着在银行家算法的作用下以后系统不会拒绝所有进程的资源请求而陷入死锁,总会有一个进程的资源请求能得到满足而继续推进,至少安全序列Sl中的第一个进程的资源请求能得到满足(这点很容易证明),且该次资源分配后系统仍然保持安全状态(即存在一个安全序列S2,S2可能不同予上一个安全序列S1):依次递推,则系统会一赢处于安全状态。(4)如果在某时刻系统处于不安全状态,即不存在一个安全序列,则意味着到最后可能(不一定)有一些进程的资源请求永远得不到满足,相互之间循环等待而产生死锁。一个特例就是从当前时刻起,进程一次性申请全部剩余资源,而且一直保持当时已经占有的资源直至运行完毕才

6、释放其占有的全部资源。在这种情况下,如果不存在一个安全序列,则最后肯定会有些进程陷入死锁。(5)银行家算法是一种比较谨慎的资源分配方法。在银行家算法的作用下,如果满足当前进程P的资源请求后系统处于安全状态(即存在一个安全序列),那么就为P分配资源,否则拒绝P的资源请求。安全序列意味着一种资源分配方案,但不一定是唯一的资源分配方案,可能有另外的资源分配方案,只不过很难寻找。不存在安全序列并不意味着不存在一种可以避免死锁的资源分配方案。那么按银行家算法实施资源分配,就有可能拒绝一些不会导致死锁的资源请求,从而阻滞了某些进程的执行,而且降低了资源利用率。其他的资源分配方案难找是因为无法预知各进程以后

7、申请资源的情况:分多少次申请,每次申清备类资源的数量是多少。 说完银行家算法的原理之后,很自然的就说到了银行家算法的数据结构: 设有n个进程Pl、P2、Pn,共享m类资源R1、R2、Rm。(1)可利用资源向量Available=(al,a2,啪禽有m个元素,每个元素表示某类资源可利用的单位数,初值为系统中所配置的该类资源全部单位数,其值随该类资源的分配和回收而动态改变。(2)最大需求矩阵MaxMax(i,j)=k,表示进程Pi总共需要k个单位的Rj类资源(3)分配矩阵AIlocationAllocation(ij)=k,表示进程Pi已占有k个单位的Ri类资源。(4)需求矩阵NeedNeed(i

8、,i)=k,表示进程Pi要完成T作还需要k个单位的Ri类资源,即剩余资源需求。上述三个矩阵之问存在下述关系:(见图1)Need(ij)=Max(iJ)一Allocation(iJ)Rl R2Rm然后,银行家算法的流程。设Reques乜是当前运行的进程Pi的请求向量,若Requesthj=k,表示进程Pi当前请求k个单位的Rj类资源。当进程Pi发出资源请求后,系统按下述步骤进行检套:(1)若Request,;一Needi】,则为非法清求,进行相应处理,因为它需要的资源数超过它开始宣布的最大值:否则进行下一步。(2)若RequestiAvailable,则表示系统现在可利用资源不能满足进程需求,阻

9、塞进程;否则进行下一步。(3)系统试探地把要求的资源分配给进程Pi,即不进行实际的资源分配,而八是修改有关数据结构:Available2Available-RequestiAllocationi2Allocationi+RequestiNeedi2Needi-Requesti(4)执行安全性检测算法,检测此次资源分配后,系统是否处于安全状态。若安全,则正式将资源分配给进程Pi,否则,将试探分配作废,恢复原来的资源分配状态,让进程Pi等待。安全性检测算法设置两个临时向晕(又称为工作向景)Work、Finish,Work表示系统野fjf可利用的各类资源数,初始值为Available,目的是在wor

10、k上进行模拟演算,而保存Available使其不被破坏。Finish表示各进程能否运行完成。Work=Available;for(i=l;in+1;i+)Finishi=FALSE;产依次寻找能获得所需资源从而完成的进程,即求安全序列木for(j=1jn+1 0+)for(i=l;in+l;i+)if fNeed【i】=Work&!Finishi) Work=Work+Allocationi;Finishi=TRUE; c=0:fbr(i=1;in+1;i+)if(Finishi)c+;if(c=n) 系统处于安全状态;else系统处于不安全状态;Abstract:Banker algorit

11、hm is one of algorithms on solving deadlock problem using avoiding deadlockpolicyIn this article,first,I descript the flow of banker algorithm,then,1 analyze the basic principle ofbanker algorithmIn all textbook about operating system in the world,1 analyze the basic principle of bankeralgorithm firstKeywords:deadlock,avoiding deadlock,banker algorithm

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

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