第十讲 死锁 目的与要求:了解死锁的定义,掌握死锁预防方法,了解死锁避免、死锁检测、死锁恢复的方法。重点与难点:重点死锁预防法则的使用。难点是死锁避免和检测算法。作业:第四章习题21,23,28,3144死锁 441死锁示例 日常生活中的例子进程死锁的例子竞争外部设备竞争辅存空间编程错的例子442死锁定义及性质 死锁定义在一个进程集合中,若每个进程都在等待某些事件(指:释放资源)的发生,而这些事
死锁预防死锁预防(Deadlock Prevention)Mutual Exclusion – 可共享的资源自然不满足此条件;不可共享的资源必然满足此条件Hold and Wait – 确保 1 个进程申请一个资源时,它没有占用其它资源策略:进程开始执行前,它已经申请并获得所有资源。或者,只允许在不占有资源的情况下申请新资源资源利用率低很可能引起饥饿任何情况下,保证4个条件不会同时满足死锁预防(续
死锁避免死锁避免(Deadlock Avoidance)前提:系统拥有先验知识(a priori information ),知道每个进程将如何利用资源简单而直观(但是不准确)的要求,则是每个进程事先申报:每种类型资源的最大需求数死锁避免(续)死锁避免算法动态地检测资源分配状态(resource-allocation state),它总是确保 circular-wait 条件永远不成立资源分配状态
死锁(Deadlocks)有关“死锁”的话题死锁问题关于死锁的系统模型死锁状态的四大特征处理死锁问题的思路(四个层次)死锁预防,Deadlock Prevention死锁避免,Deadlock Avoidance死锁检测,Deadlock Detection死锁恢复,Recovery from Deadlock死锁问题,定义A set of blocked processes each holdi
形成死锁的必要条件死锁状态的四个条件Mutual exclusion:任何时刻,最多只能由 1 个进程使用资源Hold and wait:任一个进程,它至少占有 1 个资源,同时又等待更多资源。而这些被等待的资源目前由其它进程占用Deadlock can arise if four conditions hold simultaneously死锁状态的四个条件No preemption:进程完成其
死锁检测和恢复死锁检测(Deadlock Detection)容忍系统陷入死锁状态 设计死锁检测算法,供需要时调用配套系统恢复的对策死锁检测算法的数据结构Available - 长度为m的矢量available [j] = k 表示Rj类型的资源共有k 个实例可用Allocation - n x m 矩阵Allocation[i,j] = k 表示进程Pi 拥有Rj类型的资源 k 个Reque
#
#
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级西安电子科技大学计算机学院OS单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级1计算机操作系统第四章 死锁张海宾2第四章 死锁死锁的产生原因产生死锁的必要条件死锁的预防死锁的避免死锁的检测和解除34.1 死锁的基本概念Dijkstra在1968年提出死锁的现象:两个或多个进程都占有其它进程请求的资源
#
违法有害信息,请在下方选择原因提交举报