第5章-并发性:死锁和饥饿.ppt

第5章-并发性:死锁和饥饿.ppt

ID:61905872

大小:166.00 KB

页数:34页

时间:2021-03-26

第5章-并发性:死锁和饥饿.ppt_第1页
第5章-并发性:死锁和饥饿.ppt_第2页
第5章-并发性:死锁和饥饿.ppt_第3页
第5章-并发性:死锁和饥饿.ppt_第4页
第5章-并发性:死锁和饥饿.ppt_第5页
资源描述:

《第5章-并发性:死锁和饥饿.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章并发性:死锁和饥饿Outline死锁原理死锁预防死锁避免死锁检测和恢复死锁图示死锁的概念死锁:一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的事件(释放占有资源/进行某项操作)死锁是多个进程因竞争资源且推进顺序不合理而造成的一种僵局,若无外力作用,这些进程将永远不能再向前推进可重用资源与可消费资源可重用资源一次只能供一个进程安全地使用,且不会由于使用而耗尽例如:处理器,I/O通道,主存和辅存,设备,文件、数据库、信号量等数据结构可重用资源与可消费资源可消费资源可以创建(生产)并且可以销毁(

2、消费)的资源数目没有限制,当一个进程得到一个可消费资源时,这个资源就不再存在了例如:中断,信号,消息,I/O缓冲区中的信息死锁的例子(1)死锁的例子(2)设共有200KB可用的分配空间P1......Request80Kbytes;Request60Kbytes;P2......Request70Kbytes;Request80Kbytes;死锁的例子(3)P1......Receive(P2);Send(P2,M1);P2......Receive(P1);Send(P1,M2);死锁的条件(续)不可剥夺进程已获得

3、的资源在未使用完之前不能被剥夺,只能在使用完时由自己释放环路等待资源分配图中存在封闭的进程链,即进程集合{P0,P1,P2,…,Pn}(n>=2)中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源.处理死锁的基本方法预防死锁避免死锁检测死锁排除死锁鸵鸟算法对死锁视而不见死锁预防通过破坏产生死锁的四个条件中的一个或多个条件,保证不会发生死锁破坏互斥条件方法允许多个进程同时使用资源适用条件资源的固有特性允许多个进程同时使用(如文件允许多个进程同时读)借助特殊技术允许多个进

4、程同时使用(如打印机借助Spooling技术)缺点不适用于绝大多数资源破坏占有及等待条件方法禁止已拥有资源的进程再申请其他资源,如要求所有进程在开始时一次性地申请在整个运行过程所需的全部资源,或申请资源时要先释放其占有资源再一次性申请所需全部资源优点简单、易于实现、安全缺点进程延迟运行资源严重浪费破坏不可剥夺条件方法一个已经占有了某些资源的进程,当它再提出新的资源请求而不能立即得到满足时,必须释放它已经占有的所有资源,待以后需要时再重新申请OS可以剥夺一个进程占有的资源,分配给其他进程适用条件资源的状态可以很容易地保

5、存和恢复(如CPU)缺点实现复杂、代价大,反复申请/释放资源,系统开销大,降低系统吞吐量破坏环路等待条件方法要求每个进程任何时刻只能占有一个资源,如果要申请第二个则必须先释放第一个(不现实)对所有资源按类型进行线性排队,进程申请资源必须严格按资源序号递增的顺序缺点很难找到令每个人都满意的编号次序,类型序号的安排只能考虑一般作业的情况,限制用户简单、自主地编程,易造成资源浪费死锁避免不需事先采取限制措施破坏产生死锁的条件,而是在资源的动态分配过程中,采用某种策略防止系统进入不安全状态,从而避免发生死锁。安全状态和不安全

6、状态安全状态系统能按某种顺序,如,为每个进程分配所需资源,直到最大需求,使每个进程都可顺利完成,称系统处于安全状态安全序列上述的资源分配顺序,如安全序列可以不唯一!不安全状态系统中不存在安全序列安全状态和不安全状态(续1)安全状态例子(一种资源)A39B24C27剩余:3已有数量最大需求72C-0B93A剩余:5已有数量最大需求77C-0B93A剩余:0已有数量最大需求-0C-0B93A剩余:7已有数量最大需求剩余:1已有数量最大需求72C44B93A安全状态和不安全状

7、态(续2)不安全状态例子(一种资源)A39B24C27剩余:3已有数量最大需求剩余:2已有数量最大需求72C44B94A剩余:0已有数量最大需求72C-0B94A剩余:4已有数量最大需求A49B24C27死锁避免只要系统处于安全状态,必定不会进入死锁状态不安全状态不一定是死锁状态,但不保证不进入死锁状态死锁避免的实质:如何使系统不进入不安全状态如果一个新的进程的资源请求会导致不安全状态,则拒绝启动这个进程如果满足一个进程新提出的一项资源请求会导致不安全状态,则拒绝分配资源给这个进程拒绝启动进程策略在启动一个新的进程时

8、,首先检查它的资源请求,仅当当前所有进程的最大资源请求量+新进程的请求量<=系统资源量才启动新进程.考虑所有进程的最大请求,条件过于严格拒绝资源请求策略—银行家算法对进程的每一个资源请求进行检查,如果满足它会引起不安全状态,则不满足该请求,否则就满足该请求。银行贷款问题的描述银行有一笔数目有限的现金可供借贷,以及一批借贷客户每个客户有各自的借款

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。