电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.7 死锁及解除

电子科枚大学 软件技术基础 2.7死锁及解除 主讲教师:刘民岷 ■ 航空航天学院 软件技术基础课程组
软件技术基础 2.7 死锁及解除 主讲教师:刘民岷 航空航天学院 软件技术基础课程组

死锁及产生原因 死锁一多个进程因竞争资源而造成的一种僵局(Deadly Embrace)), 若无外力作用,这些进程将永远不能再向前推进。 产生死锁的原因 >争夺资源 >进程推进顺序不当 电子科技大学刘民岷 死锁及解除 2
电子科技大学 刘民岷 2 1、死锁及产生原因 死锁及解除 • 死锁——多个进程因竞争资源而造成的一种僵局(Deadly Embrace), 若无外力作用,这些进程将永远不能再向前推进。 • 产生死锁的原因 争夺资源 进程推进顺序不当

2、争夺资源引起的死锁 R 己分配 打印机 申请 P2 申请 磁带机 己分配 R2 共享1/O设备产生的死锁 电子科技大学刘民岷 死锁及解除 3
电子科技大学 刘民岷 3 2、争夺资源引起的死锁 死锁及解除 打印机 磁带机 P1 P2 R1 R2 已分配 申请 申请 已分配 共享I/O设备产生的死锁

3、进程推进顺序不当引起的死锁 进程执行时操作顺序不当,也可能造成死锁。如生产者一消费 者问题中,若颠倒两个P操作的顺序就可能造成死锁。 生产者进程: 消费者进程: P(mutex);申请使用缓冲区 P(mutex):申请使用缓冲区; P(empty);检查是否有空缓冲区; P(fu);检查缓冲区是否有信息; 生产者进程: 消费者进程: P(empty)检查是否有空缓冲区; P(fulD;检查缓冲区是否有信息; P(mutex);申请使用缓冲区 P(mutex);申请使用缓冲区; 电子科技大学刘民岷 死锁及解除 4
电子科技大学 刘民岷 4 3、进程推进顺序不当引起的死锁 死锁及解除 • 进程执行时操作顺序不当,也可能造成死锁。如生产者-消费 者问题中,若颠倒两个P操作的顺序就可能造成死锁。 生产者进程: … P (mutex);申请使用缓冲区 P (empty);检查是否有空缓冲区; 消费者进程: … P (mutex);申请使用缓冲区; … P (full);检查缓冲区是否有信息; … 生产者进程: … P (mutex);申请使用缓冲区 P (empty);检查是否有空缓冲区; 消费者进程: … P (mutex);申请使用缓冲区; … P (full);检查缓冲区是否有信息; …

4、死锁产生的必要条件 (1)互斥条件 进程互斥使用资源,任一时刻一个资源只为一个进程独占,其他进 程若请求一个已被占用的资源,只能等占用者释放后才能使用。 (2)不剥夺条件 进程所获得的资源在未使用完毕前,不能被其他进程强行剥夺,只 能由获得该资源的进程自己释放。 (3)部分分配条件 进程每次申请它所需要的一部分新资源的同时,继续占用它已分配 到的资源。 (4)环路条件 存在一个循环等待链,链中每一个进程都在等待它的前一个进程所 持有的资源。 电子科技大学刘民岷 死锁及解除 5
电子科技大学 刘民岷 5 4、死锁产生的必要条件 死锁及解除 (1)互斥条件 进程互斥使用资源,任一时刻一个资源只为一个进程独占,其他进 程若请求一个已被占用的资源,只能等占用者释放后才能使用。 (2)不剥夺条件 进程所获得的资源在未使用完毕前,不能被其他进程强行剥夺,只 能由获得该资源的进程自己释放。 (3)部分分配条件 进程每次申请它所需要的一部分新资源的同时,继续占用它已分配 到的资源。 (4)环路条件 存在一个循环等待链,链中每一个进程都在等待它的前一个进程所 持有的资源

5、 死锁的预防 (1)采用资源的静态预分配策略,破坏“部分分配”条件。 要求进程必须预先申请其所需的全部资源,仅当全部资源满足时,系 统才一次分配,进程运行过程不再申请资源。 (2)允许进程剥夺使用其他进程占有的资源,从而破坏“不可剥 夺条件”。 进程请求新资源不能满足时,必须释放已占有的全部资源。 (3)采用资源顺序使用法,破坏“环路”条件。 将系统资源按照类型线性排队,并按递增规则赋予每类资源唯一编 号,进程申请资源时严格按资源编号递增顺序分配。这样,总有一个 进程占据了较高序号的资源,它继续请求的资源必然是空闲的,该进 程可以一直向前推进。 电子科技大学刘民岷 死锁及解除 6
电子科技大学 刘民岷 6 5、死锁的预防 死锁及解除 (1)采用资源的静态预分配策略,破坏“部分分配”条件。 要求进程必须预先申请其所需的全部资源,仅当全部资源满足时,系 统才一次分配,进程运行过程不再申请资源。 (2)允许进程剥夺使用其他进程占有的资源,从而破坏“不可剥 夺条件”。 进程请求新资源不能满足时,必须释放已占有的全部资源。 (3)采用资源顺序使用法,破坏“环路”条件。 将系统资源按照类型线性排队,并按递增规则赋予每类资源唯一编 号,进程申请资源时严格按资源编号递增顺序分配。这样,总有一个 进程占据了较高序号的资源,它继续请求的资源必然是空闲的,该进 程可以一直向前推进

死锁的避免 预防死锁是设法破坏产生死锁的必要条件之一。而避免死锁不 严格限制产生死锁的必要条件的存在,而是在系统运行过程中, 尽量避免系统进入不安全状态。 基本方法 系统对每种资源的分配提供一种算法,当进程申请资源时,采用 相应算法计算,以确定这一申请是否会造成死锁,若计算结果表 明有可能产生死锁,就不予分配资源。 电子科技大学刘民岷 死锁及解除 7
电子科技大学 刘民岷 7 6、死锁的避免 死锁及解除 • 预防死锁是设法破坏产生死锁的必要条件之一。而避免死锁不 严格限制产生死锁的必要条件的存在,而是在系统运行过程中, 尽量避免系统进入不安全状态。 • 基本方法 – 系统对每种资源的分配提供一种算法,当进程申请资源时,采用 相应算法计算,以确定这一申请是否会造成死锁,若计算结果表 明有可能产生死锁,就不予分配资源

7、死锁的检测及排除 (1)撤销进程法 逐个撤消死锁进程:撤消一检测-撤消… (2)资源剥夺法 逐个撤消死锁等待链上的进程并剥夺它的全部资源,分配给死锁进 程,直到死锁解除。 电子科技大学刘民岷 死锁及解除 8
电子科技大学 刘民岷 8 7、死锁的检测及排除 死锁及解除 (1)撤销进程法 逐个撤消死锁进程:撤消-检测-撤消… (2)资源剥夺法 逐个撤消死锁等待链上的进程并剥夺它的全部资源,分配给死锁进 程,直到死锁解除
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.6 进程互斥和同步.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.5 进程调度.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.4 处理机管理概述.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.3 操作系统功能.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.2 操作系统发展历史.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.1 操作系统概述.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第一章 计算机基础 1.3 计算机系统的构成及工作原理.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第一章 计算机基础 1.2 基于二进制的信息表述.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第一章 计算机基础 1.1 计算科学发展简史.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)课程概述(刘民岷).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(电子教案,刘民岷).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(教学大纲,刘民岷).pdf
- 电子科技大学:《计算机操作系统》课程教学资源(教学大纲).doc
- Thru-the-wall Eavesdropping on Loudspeakers via RFID by Capturing Sub-mm Level Vibration.pdf
- Spin-Antenna:3D Motion Tracking for Tag Array Labeled Objects via Spinning Antenna.pdf
- 《中国计算机学会通讯》:从“识别”到“感知”:基于 RFID 的可标记无源感知.pdf
- Spin-Antenna - 3D Motion Tracking for Tag Array Labeled Objects via Spinning Antenna.pdf
- RF-ECG - Heart Rate Variability Assessment based on COTS RFID Tag Array.pdf
- RF-Kinect - A Wearable RFID-based Approach Towards 3D Body Movement Tracking.pdf
- Multi-Touch in the Air - Concurrent Micromovement Recognition Using RF Signals.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.8 存储管理概述.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.9 分区管理.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.10 页式管理及虚拟存储技术.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第二章 操作系统 2.11 设备管理及数据传送控制方式.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.1 数据结构基本概念.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.2 线性结构之线性表(一).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.2 线性结构之线性表(二).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.3 堆栈和队列(一).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.3 堆栈和队列(二).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.4 数组.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.5.1 树的基本概念.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.5.2 二叉树的基本概念.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.5.3 二叉树的操作.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.6.1 图的基本概念.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.6.2 图的物理存储.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.6.3 图的遍历.pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.7.1 查找(一).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.7.2 查找(二).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.8.1 排序(一).pdf
- 电子科技大学:《软件技术基础 Fundamental of Software Technology》课程教学资源(课件讲稿)第三章 数据结构 3.8.2 排序(二).pdf