计算机光盘软件与应用工程技术ComputerCDSoftwareandApplications2011年第3期谈操作系统中的死锁问题苏瑞文(中国矿业大学计算机学院,江苏徐州221116)摘要:进程死锁问题是操作系统的主要问题之一,很多学者专家一直在研究怎样解决这个问题。本文针对操作系统中经常出现的死锁问题进行了讨论,阐述了死锁出现的原因、四个必要条件,以及死锁的处理方法。最后谈论了一个避免死锁的经典算法—_银行家算法。关麓词:死锁;死锁产生的原因;死锁产生的条件;死锁的避免;银行家算法中目分类号:TP316文献标识码:A文章壕号:1007-9599(2011)03-0094-01TheDeadlockintheOperatingSystemSuRuiwen(ChinaUniversityofMining&Technology.SchoolofComputerScience&Technology,Xuzhou221116。China)Abstract:Theprocessdeadlockproblemisoneofthemainoperatingsystem,manyscholarshavebeenstudyinghowtosolvethisproblem.Inthispaper,theoperatingsystemthatoftenappearindeadlockissueswefediscussedtOexplainther哪onsforthedcadlockOccurs,thefournecessaryconditions,andtreatmeatofdeadlock.thelastaboutaclassicdeadlockavoidancealgorithm-banker‘Salgorithm.Keywords:Deadlock.;Deadlockcauses;Deadlockcreatedconditions;Deadlockavoidance;Banker'salgorithm一、死锁的概述3.进程已经分配的资源矩阵Allocation:死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家4.系统分配后的剩余矩阵如疗;算法时首先提出的。所谓死锁,是指多个进程因为竞争资源而造5.进程当前的需求矩阵Need。成的一种僵局。在计算机系统中,产生死锁的原因可以分为两点:(二)银行家算法的描述。(--)并发进程对临界资源的竞争。在进程并发环境下,进Stepl:根据已知的系统可提供的资源Available和进程已经分配程需要独占某个系统资源,而这些资源又被进程所共享,因此,的资源m幻赢矾。确定当前资源的剩余£驴=Available—Allocation。必然引起进程之间对资源的竞争。Step2:根据进程最大需求Max和进程已经分配的资源(二)并发进程推进顺序不当。以哲学家迸餐问题为例,有5Allocation,确定进程当前的需求№ed=Max—Allocation。个哲学家同时围坐在圆桌上进餐,每个哲学家右手边放一把叉子,Step3:将当前剩余资源和进程当前的需求进行对比,检查是完成就餐需要用两把叉子。如果5个哲学家同时去拿叉子,则每个否有进程的当前需求能够从L驴中得到满足.若有,则执行Step4,哲学家只能拿到一把,然而所有哲学家都在等待另一把得不到的若没有,则执行Step6。叉子,因此无法完成就餐。这就发生了死锁现象。Step4:若进程只的当前需求能够从Left中得到满足,则将二、死锁的处理资源分配给日,使进程只完成并释放所有分配的资源,这时Left死锁现象会导致计算机系统无法正常运行,我们必须对死锁的值应为只所分配的所有资源加上系统分配给进程只后剩余的进行处理以排除死锁带来的不便。处理死锁归结起来有四种方法:资源。(一)预防死锁。通过设置某些条件,去破坏产生死锁Step5:检查是否还有没有完成的进程,若有,执行Step3。的4个必要条件中的一个或几个条件,来防止发生死锁。若没有,执行Step7。(二)避免死锁。是指在资源的动态分配过程中,用某种方Step6:出现系统资源不能满足进程需求的现象,则此时的法防止系统进入不安全状态从而避免死锁的发生。分配状态为不安全状态,算法结束。(三)检测死锁。这种方法允许系统在运行过程中发生死锁,Step7:所有进程都能够完成并释放了系统资源,则此时的分但可通过系统设置的检测机构,及时地检测出死锁的发生,并采配状态为安全状态,算法结束.取适当措施,从系统中将已发生的死锁清除掉。四、总结(四)解除死锁。这是检测死锁的最终目的。在已检测到死合理的分配计算机资源是操作系统主要工作之一,有效的处锁的基础上,采取某种针对死锁的措施,将死锁从系统中排除掉.理死锁是其重要的组成部分。然而由于计算机系统的复杂性,死三、银行家算法锁问题至今仍然难以完全解决,现有的各种解决方法都是以不同(一)银行家算法简述。首先介绍一下系统的安全状态。所程度在牺牲系统效率为代价的。总之,在这里讨论死锁问题,希谓系统的安全状态是指系统能够将并发进程(毋,B…只)按照某种望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解顺序为每个进程分配其需要的资源,直到满足最大需求为止,每决死锁问题的方法。个进程都可以顺利完成。如果系统存在这样的序列,则称系统处参考文献:于安全状态;否则,称系统处于不安全状态。【l】刘循.计算机操作系统.人民邮电出版社。2009在银行家算法的实现中,需要知道所有进程对资源的最大需【2l张尧学,吏美林.计算机操作系统教程IM】.北京:清华大学出求、系统所拥有的资源数、当前进程已经分配到的资源数,从而版社.2000可以得到系统剩下的资源数和进程当前对资源的需求数。因此,【31汤子赢.计算机操作系统【M】.西安:西安电子科技大学出版我们引入如下五个矩阵:社.19991.系统可提供的资源矩阵Available:【4】甄志龙,于远诚.OS中死镇问题的状态模型探讨【J】.通化师2.进程的最大需求矩阵Max;范学院学抿2005,26:23.25万方数据..一94..一谈操作系统中的死锁问题
作者:作者单位:刊名:英文刊名:年,卷(期):
苏瑞文, Su Ruiwen
中国矿业大学计算机学院,江苏徐州,221116计算机光盘软件与应用
COMPUTER CD SOFTWARE AND APPLICATIONS2011(3)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_jsjgprjyyy201103068.aspx