- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Operating System Concepts (6th Edition)
第八章 死锁
更新日期:2005.3.21
在多道程序设计环境中,多个进程可能要为有限的资源展开竞争。进程请求资源;如果当前这些资源
不可用,那么该进程进入等待状态。正在等待的进程可能不会再改变状态,因为它所请求的资源一直被其
它进程所持有。这种情况被称为死锁(deadlock )。我们已经通过联系信号量在第七章简要的讨论了这个问
题。
或许对死锁的最好阐述来自于 20 世纪初期的堪萨斯州立法机关。(Perhaps the best illustration of a
deadlock can be drawn from a law passed by the Kansas legislature early in the 20th century. )它说“当两列火车
在交叉路口相遇时,他们两个都要停下而不能启动,直到其中的一个开走”。
我们将在本章描述操作系统用于预防和处理死锁的方法。当前大多数操作系统并没有提供这种机制,
但是可能不久就会添加上去。看到当前的趋势,包括进程不断增多数量、多线程程序、系统中包含越来越
多的资源和对生命周期长的文件和数据库服务器的侧重(不是批处理系统),死锁将更加普遍。
8.1 系统模型
一个系统有有限的资源构成,而多个进程竞争使用资源。(A system consists of a finite number of
resources to be distributed among a number of competing processes. )这些资源被分为多个类型,每个类型有一
些相同的实例(instance )。内存空间、CPU 周期、文件和I/O 设备(如打印机和磁带驱动器)是资源类型
的例子。如果一个系统有两个CPU,那么资源类型CPU 有两个实例。与此类似,资源类型打印机可能有
五个实例。
如果一个进程请求某一资源类型的一个实例,那么把该类型的任何一个实例分配给这个进程都可以满
足请求。否则,这些实例不相同,对资源类型的划分不合适。例如,一个系统可能有两台打印机。如果没
有人介意用的是哪个打印机,那么可以把这两个打印机定义为同样的资源类型。然而,如果一台打印机在
九楼,另一台在地下室,那么在九楼的使用者可不觉得这两个打印机相同,于是就需要为每个打印机定义
独立的资源类型。
进程在使用资源之前必须要先请求,并且在使用完毕之后释放。为了完成指定的任务,进程可能请求
所需的资源。(A process may request as many resources as it requires to carry out its designated task. )很显然,
进程请求资源的数量不能多于系统中有效地资源数量。换句话说,如果系统中只有两台打印机,那么进程
不能够请求三个。
在普通操作方式下,进程只能通过如下的顺序使用资源:
1. 请求:如果请求不能够立刻得到允许(例如,所请求的资源正为另一个进程所用),那么发出请求
的进程必须等待,直到它可以获得该资源。
2. 使用:进程可以对资源进行操作(例如,如果资源是打印机,那么该进程可以在这个打印机上打印)。
3. 释放:进程释放资源。
正如在第三章中解释的,对资源的请求和释放都要通过系统调用。如:请求和释放设备、打开和关闭
文件、分配和释放内存系统调用。对其它资源的请求和释放可以通过信号量上的wait 和signal 操作来完成。
因此,对于资源的每次使用,操作系统要检查并确保进程已经发出请求并被分配了资源。系统利用一个系
统表记录每个资源是空闲的还是被分配了;如果被分配了,要记录分配给了哪个进程。如果一个进程请求
- 1 -
一个当前被分配给另一个进程的资源,那么该进程将被添加到这个资源的进程等待队列中。
在一个进程集中,如果每个进程都在等待另一个进程发生的事件,那么这个进程集处于死锁状态。我
们所关心的事件主要是资源的请求和释放。资源可能是物理资源(如:打印机、磁带驱动器、内存空间和
CPU 周期)或逻辑资源(如:文件、信号量、管程)。然而,其它类型的事件也可能导致死锁(例如在第
四章中讨论的IPC 机制)。
为了阐述死锁状态,我们考虑一个拥有三个磁带驱动器的系统。假设系统中有三个进
您可能关注的文档
- 《Poly(benzoxazine)s Modified with Osmium Complexes as a Class of Redox Polymers for Wiring of Enzymes to Electrode Surfaces》.pptx
- 《电磁场与电磁波理论》2012-13电磁场理论复习要求.doc
- 《电磁场与电磁波理论》电磁场chap1.ppt
- 《电磁场与电磁波理论》电磁场第1章习题解答.pdf
- 《电磁场与电磁波理论》电磁场第2章习题解答.pdf
- 《电磁场与电磁波理论》电磁场chap2.ppt
- 《电磁场与电磁波理论》电磁场第3章习题解答.pdf
- 《电磁场与电磁波理论》电磁场第4章习题解答.pdf
- 《会计学》5第五章.ppt
- 《会计学》6第六章.ppt
最近下载
- 学校--以老带新”实施方案.docx VIP
- 2022《贯彻执行中央八项规定、推进作风建设综述》专题PPT.ppt VIP
- -IATF 16949质量管理体系培训 .ppt VIP
- 医美整形线上平台留客升单策略.docx VIP
- 高中物理力学——动态平衡问题处理方法.pdf VIP
- 一种可实时监控的负压引流系统及其使用方法.pdf VIP
- 2022年新版《义务教育体育与健康课程标准》考试学习资料.docx VIP
- 2024-2025学年天津市南开区七年级(下)期末数学试卷.pdf VIP
- IATF16949质量管理体系模板或IATF16949质量管理手册.docx VIP
- 外研版八年级上册 Unit 1 单元测试卷答案及解析 新版 2025年新外研版八年级上册.docx
文档评论(0)