摘要:进程死锁问题是操作系统的主要问题之一,很多学者专家一直在研究怎样解决这个问题。本文针对操作系统中经常出现的死锁问题进行了讨论,阐述了死锁出现的原因、四个必要条件,以及死锁的处理方法,最后谈论了一个避免死锁的经典算法——银行家算法。 关键词:死锁;死锁产生的原因;死锁产生的条件;死锁的避免;银行家算法 中图分类号:TP316文献标识码:A文章编号:1007-9599 (2011) 03-0000-01 The Deadlock in the Operating System Su Ruiwen (China University of Mining&Technology,School of Computer Science&Technology,Xuzhou221116,China)
Abstract:The process deadlock problem is one of the main operating system,many scholars have been studying how to solve this problem.In this paper,the operating system that often appear in deadlock issues were discussed to explain the reasons for the deadlock occurs,the four necessary conditions,and treatment of deadlock,the last about a classic deadlock avoidance algorithm-banker's algorithm.
Keywords:Deadlock;Deadlock causes;Deadlock created conditions; Deadlock avoidance;Banker's algorithm 一、死锁的概述
死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出的。所谓死锁,是指多个进程因为竞争资源而造成的一种僵局。在计算机系统中,产生死锁的原因可以分为两点:
(一)并发进程对临界资源的竞争。在进程并发环境下,进程需要独占某个系统资源,而这些资源又被进程所共享,因此,必然引起进程之间对资源的竞争。
(二)并发进程推进顺序不当。以哲学家进餐问题为例,有5个哲学家同时围坐在圆桌上进餐,每个哲学家右手边放一把叉子,完成就餐需要用两把叉子。如果5个哲学家同时去拿叉子,则每个哲学家只能拿到一把,然而所有哲学家都在等待另一把得不到的叉子,因此无法完成就餐。这就发生了死锁现象。 二、死锁的处理
死锁现象会导致计算机系统无法正常运行,我们必须对死锁进行处理以排除死锁带来的不便。处理死锁归结起来有四种方法:
(一)预防死锁。通过设置某些限制条件,去破坏产生死锁的4个必要条件中的一个或几个条件,来防止发生死锁。
(二)避免死锁。是指在资源的动态分配过程中,用某种方法防止系统进入不安全状态从而避免死锁的发生。
(三)检测死锁。这种方法允许系统在运行过程中发生死锁,但可通过系统设置的检测机构,及时地检测出死锁的发生,并采取适当措施,从系统中将已发生的死锁清除掉。 (四)解除死锁。这是检测死锁的最终目的。在已检测到死锁的基础上,采取某种针对死锁的措施,将死锁从系统中排除掉。 三、银行家算法
(一)银行家算法简述。首先介绍一下系统的安全状态。所谓系统的安全状态是指系统能够将并发进程 按照某种顺序为每个进程分配其需要的资源,直到满足最大需求为止,每个进程都可以顺利完成。如果系统存在这样的序列,则称系统处于安全状态;否则,称系统处于不安全状态。
在银行家算法的实现中,需要知道所有进程对资源的最大需求、系统所拥有的资源数、当前进程已经分配到的资源数,从而可以得到系统剩下的资源数和进程当前对资源的需求数。因此,我们引入如下五个矩阵: 1.系统可提供的资源矩阵 ; 2.进程的最大需求矩阵 ; 3.进程已经分配的资源矩阵 ; 4.系统分配后的剩余矩阵 ; 5.进程当前的需求矩阵 。 (二)银行家算法的描述。
:根据已知的系统可提供的资源 和进程已经分配的资源 ,确定当前资源的剩余 。 :根据进程最大需求 和进程已经分配的资源 ,确定进程当前的需求 。 :将当前剩余资源和进程当前的需求进行对比,检查是否有进程的当前需求能够从 中得到满足。若有,则执行 ,若没有,则执行 。
:若进程 的当前需求能够从 中得到满足,则将资源分配给 ,使进程 完成并释放所有分配的资源,这时 的值应为 所分配的所有资源加上系统分配给进程 后剩余的资源。 :检查是否还有没有完成的进程,若有,执行 ,若没有,执行 。
:出现系统资源不能满足进程需求的现象,则此时的分配状态为不安全状态,算法结束。
:所有进程都能够完成并释放了系统资源,则此时的分配状态为安全状态,算法结束。 四、总结
合理的分配计算机资源是操作系统主要工作之一,有效的处理死锁是其重要的组成部分。然而由于计算机系统的复杂性,死锁问题至今仍然难以完全解决,现有的各种解决方法都是以不同程度在牺牲系统效率为代价的。总之,在这里讨论死锁问题,希望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解决死锁问题的方法。中国论文联盟www.Lwlm.com 参考文献:
[1]刘循.计算机操作系统.人民邮电出版社,2009
[2]张尧学,史美林.计算机操作系统教程[M].北京:清华大学出版社,2000 [3]汤子赢.计算机操作系统[M].西安:西安电子科技大学出版社,1999
[4]甄志龙,于远诚.OS中死锁问题的状态模型探讨[J].通化师范学院学报,2005,26:23-25
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuowenda.com 版权所有 湘ICP备2023022495号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务