第二、三节 进程、死锁.ppt

3.5 死锁的检测和恢复 在实际情况下,通过预防和避免的手段达 到排除死锁的目的是很难的。一般提供死锁 检测与恢复的方法。 死锁检测与恢复是指系统设有专门的机构, 当死锁发生时,该机构能够检测到死锁发生 的位置和原因,且能通过外力破坏死锁发生 的必要条件,从而使并发进程从死锁状态中 解脱出来。 3.5.1 对单体资源类的死锁检测 等待图。它是从资源分配图中去掉表示资源类的节点,且把相应边折叠在一起得到的。 当且仅当等待图中有环路,系统存在死锁。 图3-8 资源分配图和对应的等待图 3.5.2 对多体资源类的死锁检测 等待图不适用于多体资源类的资源分配系统。下面 介绍检测算法采用若干随时间变化的数据结构,与 银行家算法中所用的结构相似。 ① Available是一个长度为m的向量,表示每类资源的可用数目。 ② Allocation是一个n×m的矩阵,表示当前分给每个进程的每类资源的数目。 ③ Request是一个n×m的矩阵,表示当前每个进程对资源的申请情况。 检测算法只是简单地调查尚待完成的各个进程所有可能的分配序列。 3.5.2 对多体资源类的死锁检测 ① 令Work和Finish分别表示长度为m和n的向量,初始化Work:=Available;对于i=1, 2,…, n,如果Allocationi≠0,则Finish[i]:=false;否则

文档评论(0)

1亿VIP精品文档

相关文档