- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 死锁
第5章死锁
5.1 概述
5.2 产生死锁的条件
5.3 死锁的预防
5.4 死锁的避免
5.5 死锁的检测与恢复
5.6 处理死锁的综合方式
习题
第5章 死锁
5.1 概 述
5.1.1 死锁的概念
死锁(Deadlock)是若干进程因系统资源有限且操作
不当而造成的带有全局危害性的现象。 我们考虑下面
这个例子: 设系统中只有一台打印机和一台读卡机,
它们被进程A和进程B共用。这两台物理设备的特性决
定了对它们的使用方式必须是顺序的, 即一个进程用
完了, 另一个进程才能用。 进程A和B各自对资源的
申请使用情况如下:
第5章 死锁
A :申请读卡机 B :申请打印机
申请打印机 申请读卡机
使用读卡机 使用打印机
使用打印机 使用读卡机
释放读卡机 释放打印机
释放打印机 释放读卡机
第5章 死锁
由于进程并行工作,就可能出现这样的执行序列:
A :申请读卡机
B :申请打印机
A :申请打印机
B :申请读卡机
第5章 死锁
所谓死锁就是指在一个进程集合中的每个进程,
都在等待仅由该集合中的另一进程才能引发的事件,
而无限期地僵持下去的局面。
第5章 死锁
5.1.2 资源概念
当若干进程取得对设备、文件等资源的独占性访
问权时,就可能出现死锁。资源可以是硬件设备(如
打印机、磁带驱动器、扫描仪等),也可以是一组信
息(如数据库中一个加锁的记录、一个信号量、系统
表格中的一个表项等)。
第5章 死锁
1. 进程对资源的操作
系统中包括有限的资源, 要分给大量的计算进程。
资源可分为若干类型,每类都有若干个实体。CPU周
期、 内存空间、 文件和I /O设备(如打印机、 磁带驱
动器、读卡机等)都是资源类型的例子。
一个进程在使用资源之前要申请资源,在用完之
后必须释放该资源。
第5章 死锁
在通常的操作方式下,进程只能按下述序列使用资源:
1)申请
如果所申请的资源因被其他进程占用而不能立即得到,
那么申请资源的进程必须等待,直至其他进程释放资源为止。
2 )使用
进程对该资源进行操作(如在行式打印机上打印结果) 。
3) 释放
进程释放它以前申请并分配到的资源。
第5章 死锁
2. 可剥夺资源与不可剥夺资源
系统中一般都有多种资源。按照占用方式来分,
可以分为两类:可剥夺资源与不可剥夺资源。可剥夺
资源是另外进程可以从拥有它的进程那里把它剥夺过
去为己所用,并且不会产生任何不良影响。
第5章 死锁
5.1.3 进程推进顺序与死锁
图5-1示出了进程推进顺序对引发死锁的影响。 设
有两个进程A和B , 竞争两个资源R和S, 这两个资源
都是不可剥夺资源, 因此必须在一段时间内独占使用。
进程A和B 的一般形式是:
第5章 死锁
进程A 进程B
申请R 申请S
申请S 申请R
释放R 释放S
释放S
文档评论(0)