- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章并发、死锁和饥饿浙江工业大学讲解
并发性: 死锁和饥饿 第 6 章 死锁 多道程序系统中,多个进程并发执行可改善系统的资源利用率和提高系统的处理能力,但也带来一种危险,即死锁现象发生。所谓死锁是指计算机系统和进程所处的一种状态。在系统中,两个或多个进程无限期地等待永远不会发生的条件,此时称系统处于死锁状态。 一组进程因竞争系统资源或相互通信所造成的永久性阻塞 没有有效的通用解决办法 涉及到两个或更多的进程之间因对资源的需求所引起的冲突 系统资源 可重用资源 (Reusable Resources) 一次只能供一个进程安全地使用 使用资源顺序:请求资源;使用资源;释放资源 进程用完资源后可以释放该资源,供其他进程再次使用 如处理器、I/O通道、主存和辅存、设备等 可消费资源(Consumable Resources)(临时资源) 可以创建并且可以消费的资源 进程消费完资源后,该资源就不存在了 如中断、信号、消息等 系统资源 可抢占性资源 进程在获得这类资源后,该资源可被其它进程或系统抢占。 这类资源不会引起死锁 如处理器、主存等 不可抢占性资源 一旦系统把某资源分配给该进程后,就不能将它强行收回,只能在进程用完后自行释放 如磁带机、打印机等 资源分配图 用资源分配图来表示系统状态。 资源分配图由结点和边组成,是由一组结点N和一组边E所组成的一个对偶G=(N,E)。 (1)?P是一组进程结点P={ P1,P2,…, Pn},R是资源结点R={ r1,r2,…, rn },N=PUR,且P∩R={ }。 (2)? 任意一边e∈E,都连接着P中的一个结点和R中的一个结点,我们用圆圈表示进程,方框表示一类相同的资源,方框中的小圆表示一类资源中的一个资源。 系统资源分配图示例 产生死锁的原因 1.竞争资源引起死锁 竞争不可抢占性资源:资源不足 竞争可消耗性资源 2.进程推进顺序不合理 请求和释放资源的顺序不当 产生死锁的原因 1.竞争资源引起死锁 在多道程序系统,多个进程共享系统的资源。对于可重用的资源,当系统把这类资源分配给某进程后,不能强行收回,只能在进程用完后自动释放。当多个进程竞争这类资源时就可能引起死锁。 竞争资源 产生死锁的原因 2.进程推进顺序不当引起死锁 在多道程序系统中,并发执行的进程推进序列不可预测,有些推进顺序,进程可以顺利完成,这些推进顺序是合法的;而有的推进顺序会引起进程无限期地等待永远不会发生的条件而不能向前推进,造成了死锁。 [例1]进程推进顺序不当引起死锁 进程P和Q并发执行,竞争两个资源A和B。每个进程需要独占使用这两个资源。进程P和Q程序如下: Process P Process Q … …. Get A Get B … …. Get B Get A … … Release A Release B … …. Release B Release A 修改P程序,可避免死锁 Process P Process Q … …. Get A Get B … …. Release A Get A … … Get B Release B … …. Release B Release A [例2]竞争可重用性资源引起死锁进程P、Q并发执行,竞争访问磁盘D和磁带T。假设按以下执行序列执行:p0p1q0q1p2q2 [例3]竞争可重用性资源引起死锁 进程P1、P2并发执行,请求主存空间。假设可用的主存空间
文档评论(0)