浅谈操作系统中的死锁问题

浅谈操作系统中的死锁问题

ID:34112235

大小:319.48 KB

页数:5页

时间:2019-03-03

浅谈操作系统中的死锁问题_第1页
浅谈操作系统中的死锁问题_第2页
浅谈操作系统中的死锁问题_第3页
浅谈操作系统中的死锁问题_第4页
浅谈操作系统中的死锁问题_第5页
资源描述:

《浅谈操作系统中的死锁问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据浅谈操作系统中的死锁问题罗保山.鲁立(武汉软件工程职业学院,湖北武汉430205)摘要:如何进行合理的资源分配。使操作系统的主要任务之一。本文将着重讨论操作系统在处理资源分配过程中的死锁问题,并给出适当的解决方法。.关键词:操作系统;死锁;死锁的避免;银行家算法·中图法分类号:TP316文献标识码:A文章编号:1009—3044(2008)02—10271—04OntheIssueoftheOperatingSysteminDeadlockLUOBao-shan,LULiWuhanSoftwareVocationalCollege,

2、Wuhan430205,China)Abstract:Howtoassignresourcereasonably.isoneofthemaintasksofoperatingsystem.Thispapermainlydis—CHSSesthedeadloc,kprobleminhandlingtheprocessofresourceassignmentandpresentstheappropriatemethodstoavoiddea(1l()(:k.‘KeywOrds:0peratingSystem;Deadlock;DeadlockA

3、voidance;Banker’SAlgorithm在多道程序系统中.多个进程并发运行,共享系统资源,从而提高了资源的利用率。但是若对资源的管理和使用不当,在一定条件下会导致系统发生死锁(deadlock)。在一些系统中,比如实时控制系统,系统一旦发生死锁将导致灾难性后果。冈此,死锁是操作系统设计中必须认真考虑的I'口】题。1死锁的概念死锁问题是Dijkstra于1965年首先提出.而后被人们认识并发展。所谓死锁是指两个或两个以上的进程因竞争系统资源而无休止地互相等待时,我们就称这些进程是死锁的,或者说,它们处于死锁状态。死锁问题是一种具有

4、普遍性的现象,日常生活中屡见不鲜,如在一井字形的马路上,从东南西北各开来一车队,当出现如图1所示的情况时,便出现了四个车队都无法再前进的状态。我们称这四队车处于死锁状态中。2死锁产生的必要条件北图1车队死锁状态东下面我们结合相应的例子朱讨论死锁产生的根本原因。例:假没系统中有共享文件F1和F2,在对文件进行写操作时要求将文件对其他操作临时封锁。以确保操作正确。进程P1和P2的执行序列如下:进程Pl进程P2封锁Fl①封锁Fl②封锁文件F2①封锁文件F2②收稿日期:2007-11-01作者简介:罗保山(1973-),男,湖北宜城市人,讲师,研究

5、方向:计算机软件;鲁立(1976-),男,湖北武汉市人,讲师,硕士,研究方向:计算机软件。271万方数据\。.软件设计开发......本栏目责任编辑:谢媛嫒WRITEF1,F2;解除文件Fl封锁③解除文件F2封锁④WRITEF1,F2;解除文件Fl封锁③解除文件F2封锁④P1,P2并发进程,若按执行顺序P1①_P2①_+P2(至卜Pl②,则进程Pl,P2处于死锁状态,如图2所示。,图2竞争文件分析上述各例可以看出.产生死锁的根本原因是资源有限且操作不当。把产生死锁的各种冈素归纳起来。得到了产生死锁的以下四个必要条件。(1)互斥条件:进程访问

6、的是临界资源,即一个资源一次只能被一个进程所使用。(2)请求和保持条件:一进程在请求新的资源的同时,保持对某些资源的占有。(3)不剥夺条件:一个资源仅能被占有它的进程所释放,而不能被其他进程剥夺。(4)环路等待条件:存在一个进程的环行链,链中每个进程占有着某个或某些资源,又在等待被链中的另一个进程所占有的资源。3解决死锁的方法解决死锁的方法一般可分为三类:(1)预防死锁。这种方法从上述的四个死锁条件出发,通过设置一些限制来破坏其中的至少一个条件.从而预防死锁。(2)避免死锁。这种方法不是预先加上各种限制条件预防产生死锁的可能性,而是当接近死

7、锁状态时。采取一些有效的措施加以避免。使死锁不至于最终发生。(3)检测及系统恢复。它允许在系统运行过程中发生死锁,但一旦发生便能立即检测出来,然后采取适272当措施使系统恢复。4死锁的预防根据产生死锁的四个必要条件.只要使其中之一不能成立,死锁就不会出现。为此,可以采用下述三种预防措施。4.1防止“请求和保持”条件的出现’系统要求任一进程必须预先申请它所需要的全部资源,而且仅当该进程的全部资源要求都能得到满足时。系统才给予一次性分配,然后启动该进程运行。进程在整个生存期间,不再请求新的资源。因此“请求和保持”条件不会出现,死锁也就不可能发生

8、。该方法实际上采用的是资源的静态预分配策略.其优点是简单安全,易于实施。但太保守,资源利用率很低。4.2防止“不剥夺”条件的出现在允许进程动态申请资源的Iji『提下。规定一个进程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。