- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统第三章同步、通信与死锁2,操作系统死锁,操作系统中的死锁,同步主队列死锁的原因,同步死锁,java方法同步块死锁,java同步与死锁,java同步死锁,死锁的四个必要条件,mysql死锁
第五章 调度与死锁 例2:系统有一台打印机和一台扫描仪,进程P1、P2并发执行,在执行过程中均需使用打印机和扫描仪。 1.死锁的定义 在一组进程中,每个进程都等待被该组进程中其他进程所占有的资源,从而无限期陷入僵持的局面,这种现象称为死锁。 3.产生死锁的必要条件 1971年Coffman总结了系统产生死锁的四个必要条件: 互斥条件:系统中存在临界资源,进程应互斥地使用这些资源。 占有和等待条件:进程在请求资源得不到满足而等待时,不释放已占有的资源。 不剥夺条件:进程已占有的资源只能由属主释放,不能强行剥夺。 循环等待条件:存在循环等待链,链中的每一个进程都在等待下一进程所持有的资源。 4.处理死锁的基本方法 (1)死锁防止(deadlock prevention) 通过设置某些限制条件,去破坏死锁四个必要条件中的一个或多个,来防止死锁。 较易实现,广泛使用,但由于所施加的限制往往太严格,可能导致系统资源利用率和系统吞吐量的降低。 (2)死锁避免 不事先采取限制措施去破坏产生死锁的条件,而是在资源的动态分配过程中,用某种方法去防止系统进入不安全状态,从而避免死锁的发生。 只需事先施加较弱的限制条件,可获得较高的资源利用率和系统吞吐量,但在实现上有一定难度。在较完善的系统中常用此方法。 (3)检测死锁 事先并不采取任何限制,允许死锁发生,但可通过检测机构及时检测出死锁的发生,并精确确定与死锁有关的进程和资源。 二、死锁防止 设法破坏产生死锁的四个必要条件之一。 条件1(互斥条件)是由设备的固有特性所决定的,不仅不能改变,还应加以保证。 破坏条件2(占有和等待条件) 采用资源的静态分配策略。 静态分配是指进程必须在执行前一次性地申请所需的全部资源,若系统有足够资源则完全分配。若分配时只要有一种资源不能满足,则不分配任何资源,而让进程等待。 破坏条件3(不剥夺条件) 采用剥夺式调度方法。 占有资源的进程,再提出新资源请求时,若有则分配,否则剥夺此进程已占有的所有的资源,并让进城进入等待状态,资源充足后再唤醒它重新申请所需资源。 实现复杂、要付出很大的代价。 破坏条件4(循环等待条件) 资源按序分配:把系统中的所有资源编号,所有分配请求必须以序号上升的次序进行。 例如:系统中有下列设备:输入机(1),打印机(2),穿孔机(3),磁带机(4),磁盘(5)。有一进程要先后使用输入机、磁盘、打印机,则它申请设备时要按输入机、打印机、磁盘的顺序申请。 三、死锁避免 各种死锁防止方法能够防止死锁发生,但由于所加限制条件太严格,会导致系统资源利用率和系统吞吐量的降低。 另一种解决死锁问题的方法称为避免死锁。 避免死锁基本思想:把系统状态分为安全状态和不安全状态,只要系统一直处于安全状态即可避免死锁的发生。 1.系统状态 (1)安全状态 如果系统能按某种进程顺序(如P1,P2,…,Pn)为每个进程分配其所需的资源,直至所有进程都能运行完成,此时称系统处于安全状态。进程序列P1,P2,…..,Pn称为安全序列。 (2)不安全状态 若不存在这样一个安全序列称系统处于不安全状态。 系统进入不安全状态后,就有可能进而进入死锁状态,反之,只要系统处于安全状态,便可避免进入死锁状态。 例:有三个进程p1,p2,p3,有12台磁带机。P1共要求10台,P2共要求4台,P3共要求9台。 T0时刻:p1,p2,p3分别获得5、2、2台,尚有3台空闲。系统状态见下图: T1时刻:P3请求1台磁带机,若系统分给它一台,分配后系统状态如下图。 死锁避免实质: 允许进程动态地申请资源,但系统在资源分配前先检查此次分配后系统的安全性,若分配后系统仍处于安全状态,则将资源分配给进程,否则不分配,令进程等待。 2.银行家算法 最有代表性的避免死锁算法,由Dijkstra提出。 银行家算法 银行家拥有有限周转资金 客户要求分期贷款,如果客户能够得到各期贷款,就一定能够归还贷款,否则就一定不能归还贷款 银行家应谨慎的贷款,防止出现坏帐 用银行家算法避免死锁 操作系统(银行家) 操作系统管理的资源(周转资金) 进程(要求贷款的客户) (1)银行家算法中的数据结构 考虑一个系统有n个进程(P1,P2,..,Pn)和m类资源(r1,r2,…,rm) a.每类资源总数向量Resource Resource=(R1,R2,…,Rm) b.每类资源可用数向量Avilable Avilable=(V1,V2,…,Vm) (2)银行家算法描述 基本思想: Requesti是进程Pi的请求向量,当进程pi提出资源申请时,系统执行下列步骤: a.若Requesti[*] ≤Need[i,*]转(2);否则错误返回,因为它所需要的资源已超过所宣布的最大值。 b.
您可能关注的文档
最近下载
- 水泥厂电气培训课件.pptx
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务1学习任务工作页.docx VIP
- 金税四期税务风险预警指标汇总.pdf
- 豆腐柴人工栽培技术.pdf VIP
- 天津市小升初小卷真题小外(天津市外国语大学附属外国语学校)(5套含答 .pdf VIP
- 控制计划(机加).docx VIP
- 土地资源管理学(第二版)张正峰,第一至第十二章知识点.docx VIP
- 专题三 透镜及其应用 2025年中考物理基础知识考点专题练习(含答案).docx VIP
- DL/T 502-2006 火力发电厂水汽分析方法(第1-32部分).pdf VIP
- 施工现场总平面布置培训.pptx VIP
文档评论(0)