欢迎来到天天文库
浏览记录
ID:52181676
大小:457.00 KB
页数:46页
时间:2020-04-02
《操作系统第3章-5 死锁.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第3章进程管理3.1进程的引入3.2进程的结构3.3进程控制3.4进程的同步与互斥3.5进程间通信3.6进程调度3.7死锁3.8线程8/6/20211死锁的概念死锁举例产生死锁的原因产生死锁的必要条件处理死锁的基本方法8/6/20212死锁现象8/6/20213死锁举例【例】设系统有打印机、扫描仪各一台,被进程P1和P2共享。两个进程并发执行,按下列次序请求和释放资源:P1:…申请打印机申请扫描仪使用释放打印机释放扫描仪…P2:…申请扫描仪申请打印机使用释放打印机释放扫描仪…8/6/20214死锁定义死锁是指多个进
2、程在运行过程中因争夺资源而造成的一种僵持局面。即,一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到该资源,这种现象称为死锁,这一组进程就称为死锁进程。关于死锁的一些结论参与死锁的进程最少是两个(两个以上进程才会出现死锁)参与死锁的进程至少有两个已经占有资源参与死锁的所有进程都在等待资源参与死锁的进程是当前系统中所有进程的子集注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。如果没有外力作用,死锁是无法解除的。8/6/20215产生死锁的原因竞争资源(系统内的资源数量不足)进程推
3、进的顺序不当进程推进顺序合法不会造成死锁的进程推进顺序进程推进顺序非法会造成死锁的进程推进顺序8/6/20216产生死锁的必要条件互斥条件(资源本身的性质)涉及的资源是非共享的,必须存在需要互斥使用的资源。请求和保持条件(进程的行为)进程在等待一新资源时继续占有已分配的资源。不剥夺条件(系统规定)不能强行剥夺进程拥有的资源。环路等待条件(进程/资源之间的关系)存在一个进程等待队列{P1,P2,…,Pn},其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路。8/6/2
4、0217处理死锁的基本方法预防死锁避免死锁检测死锁解除死锁8/6/20218预防死锁通过设置某些限制条件,去破坏死锁四个必要条件中的一个或多个,来防止死锁。优点较易实现缺点由于所施加的限制往往太严格,可能导致系统资源利用率和系统吞吐量的降低。8/6/20219避免死锁不事先采取限制去破坏产生死锁的条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。优点只需要较弱的限制条件,可获得较高的资源利用率和系统吞吐量。缺点实现较难8/6/202110检测死锁事先并不采取任何限制,也不检查
5、系统是否进入不安全区,允许死锁发生,但可通过检测机构及时检测出死锁的发生,并精确确定与死锁有关的进程和资源。8/6/202111解除死锁与检测死锁相配套,用于将进程从死锁状态解脱出来。优点可获得较高的资源利用率和系统吞吐量。缺点实现难度大8/6/202112死锁的预防死锁的预防一般是从破坏导致发生死锁的必要条件着手,只要能使四个必要条件其中的任何一个不成立,就可防止死锁。●破坏互斥条件:改变把独享资源变为共享资源;●破坏请求和保持条件:采用静态分配策略;●破坏不可剥夺条件:主动释放资源策略和强行剥夺策略;●破坏循环
6、等待条件:采用资源的有序申请策略;8/6/202113破坏“请求和保持”条件采用静态分配资源策略要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给予一次性分配。优点:简单、安全缺点:①资源利用率低;②使进程延迟运行8/6/202114破坏“不可剥夺”条件破坏不可剥夺条件一个已拥有资源的进程,若它再提出新资源要求而不能立即得到满足时,它必须释放已经拥有的所有资源。以后需要时再重新申请。缺点这种方法比较复杂且系统开销大。在剥夺资源时,需要保存中间信息,但也会使进程前后两次运行的信息
7、不连续。所以,临界资源不宜剥夺。8/6/202115破坏“循环等待”条件采用资源有序分配策略事先把系统中的所有资源按大多数进程使用资源的顺序由小到大进行编号,每个进程只能按资源编号递增的顺序申请资源。例子多个进程之间只可能存在占据较低序号资源的进程等待占据较高序号资源的进程释放资源的情况,但不可能存在反向的等待,因此,它们之间绝对不会形成循环等待环路缺点资源的编号不容易合理化限制了用户简单自主的编程当系统增加新设备类型时,要重新对系统资源进行合理编号8/6/202116资源按序分配示例系统中有下列设备:输入机(1)
8、,打印机(2),穿孔机(3),磁带机(4),磁盘(5)。有一进程要先后使用输入机、磁盘、打印机,则它申请设备时要按输入机、打印机、磁盘的顺序申请。例如:1,2,3,…,5P1:申请1申请5申请2…1,2,58/6/202117死锁的避免避免死锁的基本思想允许进程动态申请资源,但在每次分配资源时,都要通过判断系统状态来决定是否分配资源,若分配后系统可能发生死锁
此文档下载收益归作者所有