- 0
- 0
- 约1.52千字
- 约 52页
- 2021-11-16 发布于四川
- 举报
第6章 死锁
1、死锁的特征
2、死锁发生的必要条件
3、死锁预防
4、死锁避免
5、死锁的检测
6、死锁的恢复;6.1 死锁的定义;6.1 死锁的定义;参与死锁的进程最少是两个
(两个以上进程才会出现死锁)
参与死锁的进程至少有两个已经占有资源
参与死锁的所有进程都在等待资源
参与死锁的进程是当前系统中所有进程的子集
注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃;死锁现象举例;可重用资源与可消费资源;两个进程竞争可重用资源死锁的例子;涉及可消费资源死锁的例子;过桥的例子;6.2 死锁的必要条件;P1;死锁的几种处理方法;6.3 死锁预防 (Deadlock prevention);6.3 死锁预防;6.3 死锁预防;6.3 死锁预防;6.4 死锁避免(Deadlock Avoidance);6.4.1 系统的安全状态;6.4.1 系统的安全状态;6.4.2 银行家算法(Dijkstra, 1965);银行家算法中的数据结构;各数据间的关系;安全性算法;;资源分配算法(1);3.假定系统可以分配给进程Pi 所请求的资源,并按如下方式修改状态:
Available = Available - Requesti;
Allocationi = Allocationi + Requesti;
Needi = Needi – Requesti;;
4.系统执行安全性算法。查看:
如果所产生的资源分配是安全的,那么进程Pi可分配到其所需资源;
如果新状态不安全,那么进程Pi 必须等待Requesti并恢复到原先资源分配状态
;银行家算法—举例;银行家算法--例;;;银行家算法举例;;;;死锁避免小结;6.5 死锁检测;6.5 死锁检测;死锁检测算法;死锁检测方法----举例;1.由于P4没有已分配的资源,标记P4;
2.令W=(0 0 0 0 1);
3.进程P3的请求小于或者等于W,因此标记P3,并令W=W+(0 0 0 1 0)=(00 0 1 1);
4.没有其他未标记的进程在Q中的行小于或者等于W,因此终止算法。
算法的结果是P1和P2未标记,表示这两个进程是死锁的。;?6.7 死锁的恢复(Deadlock Recovery);?6.6 死锁的恢复(Deadlock Recovery);资源分配图(RAG)-死锁的检测;P1; 死锁的检测---资源分配图RAG
检查死锁的办法就是由软件检查系统中由进程和资源构成的有向图(资源分配图)是否构成一个或多个环路,若是,则存在死锁,否则不存在。
;封锁进程:是指某个进程由于请求了超过了系统中现有的未分配资源数目的资源,而被系??封锁的进程。
非封锁进程:即没有被系统封锁的进程
资源分配图的化简方法:假设某个RAG中存在一个进程Pi,此刻Pi是非封锁进程,那么可以进行如下化简:当Pi有请求边时,首先将其请求边变成分配边(即满足Pi的资源请求),而一旦Pi的所有资源请求都得到满足,Pi就能在有限的时间内运行结束,并释放其所占用的全部资源,此时Pi只有分配边,删去这些分配边(实际上相当于消去了Pi的所有请求边和分配边),使Pi成为孤立结点。(反复进行);死锁定理:
系统中某个时刻S为死锁状态的充要条件是S时刻系统的资源分配图是不可完全简化的。
在经过一系列的简化后,若能消去图中的所有边,使所有的进程都成为孤立结点,则称该图是可完全简化的;反之的是不可完全简化的。
;有死锁的资源分配图;有环但没有死锁的资源分配图;死锁定理 ;Basic Facts(基本事实);本章作业
原创力文档

文档评论(0)