谈操作系统中的死锁问题
- 格式:pdf
- 大小:128.41 KB
- 文档页数:2
范学院学抿2005,26:23.25
..一94..一
万方数据
谈操作系统中的死锁问题
作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 苏瑞文, Su Ruiwen 中国矿业大学计算机学院,江苏徐州,221116 计算机光盘软件与应用 COMPUTER CD SOFTWARE AND APPLICATIONS 2011(3)
deadlock issues treatmeat of deadlock.the
wefe discussed last about
a
tO
explain the
r哪ons
for the
classic
deadlock
avoidance
algorithm-banker‘S algorithm.
Keywords:Deadlock.;Deadlock causes;Deadlock 一、死锁的概述
计算机光盘软件与应用
工程技术
Computer CD Software
பைடு நூலகம்
and Appl ications
201 1年第3期
谈操作系统中的死锁问题
苏瑞文
(中国矿业大学计算机学院,江苏徐州221116)
摘要:进程死锁问题是操作系统的主要问题之一,很多学者专家一直在研究怎样解决这个问题。本文针对操作系统中 经常出现的死锁问题进行了讨论,阐述了死锁出现的原因、四个必要条件,以及死锁的处理方法。最后谈论了一个避免死锁 的经典算法—_银行家算法。 关麓词:死锁;死锁产生的原因;死锁产生的条件;死锁的避免;银行家算法 中目分类号:TP316 文献标识码:A 文章壕号:1007-9599(2011)03-0094-01
Allocation,确定进程当前的需求№ed=Max—Allocation。
Step3:将当前剩余资源和进程当前的需求进行对比,检查是 否有进程的当前需求能够从L驴中得到满足.若有,则执行Step4, 若没有,则执行Step6。 Step4:若进程只的当前需求能够从Left中得到满足,则将 资源分配给日,使进程只完成并释放所有分配的资源,这时Left 的值应为只所分配的所有资源加上系统分配给进程只后剩余的 资源。 Step5:检查是否还有没有完成的进程,若有,执行Step3。 若没有,执行Step7。 Step6:出现系统资源不能满足进程需求的现象,则此时的 分配状态为不安全状态,算法结束。 Step7:所有进程都能够完成并释放了系统资源,则此时的分 配状态为安全状态,算法结束.
本文链接:/Periodical_jsjgprjyyy201103068.aspx
one
of the main operating system,many scholars have been studying how
solve
this problem.In this paper,the operating system that often appear in dcadlock Occurs,the four necessary conditions,and
created
conditions;Deadlock avoidance;Banker's algorithm 3.进程已经分配的资源矩阵Allocation: 4.系统分配后的剩余矩阵如疗; 5.进程当前的需求矩阵Need。 (二)银行家算法的描述。 Stepl:根据已知的系统可提供的资源Available和进程已经分配 的资源m幻赢矾。确定当前资源的剩余£驴=Available—Allocation。 Step2:根据进程最大需求Max和进程已经分配的资源
死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家 算法时首先提出的。所谓死锁,是指多个进程因为竞争资源而造 成的一种僵局。在计算机系统中,产生死锁的原因可以分为两点: (--)并发进程对临界资源的竞争。在进程并发环境下,进 程需要独占某个系统资源,而这些资源又被进程所共享,因此, 必然引起进程之间对资源的竞争。 (二)并发进程推进顺序不当。以哲学家迸餐问题为例,有5 个哲学家同时围坐在圆桌上进餐,每个哲学家右手边放一把叉子, 完成就餐需要用两把叉子。如果5个哲学家同时去拿叉子,则每个 哲学家只能拿到一把,然而所有哲学家都在等待另一把得不到的 叉子,因此无法完成就餐。这就发生了死锁现象。 二、死锁的处理 死锁现象会导致计算机系统无法正常运行,我们必须对死锁 进行处理以排除死锁带来的不便。处理死锁归结起来有四种方法: (一)预防死锁。通过设置某些限制条件,去破坏产生死锁 的4个必要条件中的一个或几个条件,来防止发生死锁。 (二)避免死锁。是指在资源的动态分配过程中,用某种方 法防止系统进入不安全状态从而避免死锁的发生。 (三)检测死锁。这种方法允许系统在运行过程中发生死锁, 但可通过系统设置的检测机构,及时地检测出死锁的发生,并采 取适当措施,从系统中将已发生的死锁清除掉。 (四)解除死锁。这是检测死锁的最终目的。在已检测到死 锁的基础上,采取某种针对死锁的措施,将死锁从系统中排除掉. 三、银行家算法 (一)银行家算法简述。首先介绍一下系统的安全状态。所
The Deadlock in the Operating System
SuRuiwen
(China
University of Mining&Technology.School of
Computer Science&Technology,Xuzhou
2211 1
6。China)
to
Abstract:The process deadlock problem is
谓系统的安全状态是指系统能够将并发进程(毋,B…只)按照某种
顺序为每个进程分配其需要的资源,直到满足最大需求为止,每 个进程都可以顺利完成。如果系统存在这样的序列,则称系统处 于安全状态;否则,称系统处于不安全状态。 在银行家算法的实现中,需要知道所有进程对资源的最大需 求、系统所拥有的资源数、当前进程已经分配到的资源数,从而 可以得到系统剩下的资源数和进程当前对资源的需求数。因此, 我们引入如下五个矩阵: 1.系统可提供的资源矩阵Available: 2.进程的最大需求矩阵Max;
四、总结
合理的分配计算机资源是操作系统主要工作之一,有效的处 理死锁是其重要的组成部分。然而由于计算机系统的复杂性,死 锁问题至今仍然难以完全解决,现有的各种解决方法都是以不同 程度在牺牲系统效率为代价的。总之,在这里讨论死锁问题,希 望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解 决死锁问题的方法。 参考文献: 【l】刘循.计算机操作系统.人民邮电出版社。2009 【2l张尧学,吏美林.计算机操作系统教程IM】.北京:清华大学出 版社.2000 【31汤子赢.计算机操作系统【M】.西安:西安电子科技大学出版 社.1999 【4】甄志龙,于远诚.OS中死镇问题的状态模型探讨【J】.通化师