5.1.2死锁产生的必要条件 ■互斥条件(资源独占) 请求和保持条件(部分分配,占有申请) ■不剥夺条件(不可强占) ■环路等待条件 这四个 程必须同时具备这 每个进程都在等待下一个进程 四个条已经获得的资源,所有等待的不满足,都不会发 生死锁进程构成一个环路,形成永远充分条件 等待。 202l//27 《计算机操作系统》-第5章 17/66
2021/1/27 《计算机操作系统》-第5章 17/66 5.1.2 死锁产生的必要条件 ◼ 互斥条件(资源独占) ◼ 请求和保持条件(部分分配,占有申请) ◼ 不剥夺条件(不可强占) ◼ 环路等待条件 这四个条件是死锁发生的必要条件,进程必须同时具备这 四个条件才会发生死锁。其中任意一条不满足,都不会发 生死锁。但这四个条件并不是死锁发生的充分条件。 每个进程都在等待下一个进程 已经获得的资源,所有等待的 进程构成一个环路,形成永远 等待
5.1.3处理死锁的基本方法 ■预防死锁: ■破坏必要条件,消除“占有并请求条件”或“环路等待条件”。 但是,这样破坏死锁会引起系统的资源利用率低 避免死锁: 合理的调节各并发进程的资源分配和推进顺序 银行家算法、安全性算法 检测死锁:资源分配图、死锁定理 解除死锁:以最小代价恢复系统,撤销或挂起死锁进程,回 收资源,重新分配给其他请求资源并处于阻塞状态的进程 202l//27 《计算机操作系统》-第5章 18/66
2021/1/27 《计算机操作系统》-第5章 18/66 5.1.3 处理死锁的基本方法 ◼ 预防死锁: ◼ 破坏必要条件,消除“占有并请求条件”或“环路等待条件” 。 但是,这样破坏死锁会引起系统的资源利用率低。 ◼ 避免死锁: ◼ 合理的调节各并发进程的资源分配和推进顺序 ◼ 银行家算法、安全性算法 ◼ 检测死锁:资源分配图、死锁定理 ◼ 解除死锁:以最小代价恢复系统,撤销或挂起死锁进程,回 收资源,重新分配给其他请求资源并处于阻塞状态的进程
5.1.4资源分配图 ■用于描述进程已经分配和正在请求的资源 通过对资源分配图中各进程资源分配情况的 分析,可以判别是否具备死锁发生的条件。 进程顶点用圆圈表示,资源顶点用方块表示, 方块中的一个点表示一个资源。有向线段连 接进程到资源。箭头从进程指向资源,表示 进程正在等待资源;箭头从资源指向进程, 表示进程已经获得资源 202l//27 《计算机操作系统》-第5章 19/66
2021/1/27 《计算机操作系统》-第5章 19/66 5.1.4 资源分配图 ◼ 用于描述进程已经分配和正在请求的资源。 通过对资源分配图中各进程资源分配情况的 分析,可以判别是否具备死锁发生的条件。 ◼ 进程顶点用圆圈表示,资源顶点用方块表示, 方块中的一个点表示一个资源。有向线段连 接进程到资源。箭头从进程指向资源,表示 进程正在等待资源;箭头从资源指向进程, 表示进程已经获得资源
资源分配图 ■如果资源分配图中没有构成环,则不存在死 锁: ■如果构成环,且死锁发生必要条件的其他三 个条件(主要是占有并等待条件,因为互斥 条件和不剥夺条件肯定是具备的。)存在, 则可能发生死锁。 202l//27 《计算机操作系统》-第5章 20/66
2021/1/27 《计算机操作系统》-第5章 20/66 资源分配图 ◼ 如果资源分配图中没有构成环,则不存在死 锁; ◼ 如果构成环,且死锁发生必要条件的其他三 个条件(主要是占有并等待条件,因为互斥 条件和不剥夺条件肯定是具备的。)存在, 则可能发生死锁
本章目录 5.1死锁的产生 →■52死锁预防 53死锁避免 54死锁的检测和解除 5.5线程死锁 202l//27 《计算机操作系统》-第5章 21/66
2021/1/27 《计算机操作系统》-第5章 21/66 本章目录 ◼ 5.1 死锁的产生 ◼ 5.2 死锁预防 ◼ 5.3 死锁避免 ◼ 5.4 死锁的检测和解除 ◼ 5.5 线程死锁