当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

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

资源类别:文库,文档格式:PDF,文档页数:8,文件大小:467.48KB,团购合买
点击下载完整版文档(PDF)

电子科枚大学 软件技术基础 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)资源剥夺法 逐个撤消死锁等待链上的进程并剥夺它的全部资源,分配给死锁进 程,直到死锁解除

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有