现代操作的系统第六章死锁PPT
* 从死锁中恢复 杀死进程来恢复 最粗鲁也是最简单的解决死锁的方法就是杀死一个或多个进程。 杀掉环路中的一个进程。 另外,也可以是将环路外的进程作为牺牲品,以释放资源。 最好杀死可以从头再运行而不会产生副作用的进程。 * 死锁避免 在讨论死锁检测时,我们假设,当进程申请资源时,它一次性申请所有的资源。 不过,在大多数系统中一次只申请一个资源。系统必须能够判断授权某个资源是否安全,并且只在安全的情况下分配资源。 这就引出了一个问题:是否存在一种算法总能作出正确的选择从而避免死锁?答案是肯定的,但是必须预知某些特定的信息。 * 资源轨迹图 避免死锁的主要算法基于安全状态的概念。在描述该算法之前,先了解安全的概念。通过图示的方式,更容易理解。尽管该图的方法不能直接转换成可用的算法,但它给出了一个解决问题的直觉。 在下图中,可以看到处理两个进程和两种资源(打印机和绘图仪)的模型。 * 两个进程的资源轨迹 资源轨迹图 * 安全和不安全状态 在任何时刻,当前状态都包括E, A, C和R。如果没有死锁,而且存在某种调度次序能够满足所有进程最大的资源请求并且完成它们,那么此状态就是安全(safe)的。 不安全状态没有任何序列可以保证完成工作。 安全状态和不安全状态的区别是:从安全状态出发,系统能够确保所有进程都能完成;而从不安全状态出发,不存在这样的保证。 * 安全和不安全状态 上图中状态
原创力文档

文档评论(0)