欢迎来到天天文库
浏览记录
ID:38197244
大小:34.50 KB
页数:3页
时间:2019-05-27
《分析linux中的死锁处理策略》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、分析linux中的死锁处理策略汪建国摘要:进程死锁问题是操作系统的主要问题之一,很多学者专家一直在研究怎样解决这个问题。本文针对操作系统中经常出现的死锁问题进行了讨论,阐述了死锁出现的原因、四个必要条件,以及死锁的处理方法。关键词:死锁;死锁产生的原因;死锁产生的条件;死锁的解除与预防;银行家算法。DeadlockhandlingstrategyanalysislinuxWangjianguoAbstract:thetheprocessdeadlockproblemisoneofthemainproblemsintheoperatingsystem,manyscholarsandex
2、pertshavebeenstudyinghowtosolvethisproblem.Thispaperdiscussedthedeadlockprobleminoperatingsystemtoexplainthereasonofthedeadlockappearedfournecessaryconditionsfordeadlockprocessingmethods.Keywords:deadlock;thecauseofthedeadlock;deadlockconditions;deadlockliftandPrevention;banker'salgorithm.1.死锁的
3、概述死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出的。所谓死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。2.产生死锁的原因因为系统资源不足;进程运行推进的顺序不合适;资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁3.产生死锁的四个必要条件:互斥条件:一个资源每次只能被一个进程使用。请
4、求与保持条件(占有等待):一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件(不可抢占):进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。4.死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。⑴有序资源分配法。这种算法资源按某种规则系统中的所有资源统一编号(例如打印机为1、磁带机为2、磁盘为3、等等),申请时必须以上升的次序。采用有序资源分配法:R
5、1的编号为1,R2的编号为2;PA:申请次序应是:R1,R2;PB:申请次序应是:R1,R2;这样就破坏了环路条件,避免了死锁的发生。⑵银行算法。避免死锁算法中最有代表性的算法是DijkstraE.W于1968年提出的银行家算法。该算法需要检查申请者对资源的最大需求量,如果系统现存的各类资源可以满足申请者的请求,就满足申请者的请求。这样申请者就可很快完成其计算,然后释放它占用的资源,从而保证了系统中的所有进程都能完成,所以可避免死锁的发生。5.死锁排除的方法撤消陷于死锁的全部进程;逐个撤消陷于死锁的进程,直到死锁不存在;从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失;从另外
6、一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态。死锁是网络中最容易发生的故障之一,即使在网络负荷不很重时也会发生。死锁发生时,一组节点由于没有空闲缓冲区而元法接收和转发分组,节点之间相互等待,既不能接收分组也不能转发分组,并一直保持这一僵局,严重时甚至导致整个网络的瘫痪。常用的实施方法是撤消或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态以继续运行。(1)剥夺资源。从其它进程剥压足够数量的资源给死锁进程,以解除死锁状态;(2)撤消进程。最简单的撤消进程的方法是使全部死锁进程都夭折掉;稍为温和一点的方法是按照某种顺序逐个地撤消
7、进程,直至有足够的资源可用,死锁状态消除为止。六、总结合理的分配计算机资源是操作系统主要工作之一,有效的处理死锁是其重要的组成部分。然而由于计算机系统的复杂性,死锁问题至今仍然难以完全解决,现有的各种解决方法都是以不同程度在牺牲系统效率为代价的。总之,在这里讨论死锁问题,希望本文的讨论有利于读者对死锁问题的深刻理解,并深入研究解决死锁问题的方法。七、参考文献[1]张尧学,史美林.计算机操作系统教程[M].北京:清华大学出版社,2000[2]甄志龙于远诚OS
此文档下载收益归作者所有