网站大量收购独家精品文档,联系QQ:2885784924

八死锁处理-广西大学计算机与电子信息学院.ppt

八死锁处理-广西大学计算机与电子信息学院.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
八死锁处理-广西大学计算机与电子信息学院

第八章 死锁处理 主讲:陈笑蓉 贵州大学计算机科学与技术学院 在多道程序系统中,多个进程并发运行,共享资源,从而提高了资源的利用率。 但是若对资源的管理和使用不当,在一定条件下会导致系统发生一种随机性故障——死锁。 这时,若无外力协助,每个进程都不能继续执行下去。 主要内容 死锁的形成 资源分配图 死锁的排除方法 死锁的检测与解除 8.1 死锁的形成 这里讨论操作系统中的死锁问题不考虑: 进程申请根本就无法满足的系统资源(我要天上的智多星,否则我就不上课。可是天上根本就没有智多星!注定要失败!!); 由于硬件故障或程序性错误引起的循环等待。 故可假设: 任何进程要求的资源系统是可以满足的,它可以在有限时间内执行结束并归还系统资源; 一个进程在申请资源暂时得不到满足时,处于等待资源的状态。 死锁——两个或两个以上进程都无限止等待永久不会出现的事件而发生的一种状态。 陷入死锁状态的进程称为死锁进程,这样需要与它们进行某种合作的其它进程就会相继陷入死锁,最终可能导致整个系统处于瘫痪状态。 死锁涉及到两个或两个以上进程由于竞争资源引起的冲突。例如: 例1:再次考虑5个哲学家就餐问题 五个哲学家在一起思考和用餐。这些哲学家共用一张圆桌,周围放有五把椅子,每人座一张,在圆桌上有五个碗和五支筷子。当一个哲学家思考问题时,他不与同事交谈,饥饿时,便去试图取用其左右最靠近他的两支筷子,但他可能一支都拿不到,只有当他拿到两支筷子时才能用餐,用餐完毕,又将筷子放回原处,又继续思考。如何使这五个哲学家保持同步:既能进行思考又不至于饿死。 Var S1,S2,S3,S4,S5:semaphore; S1,S2,S3,S4,S5 := 1,1,1,1,1; 例2,系统中只有一台打印机R1和一台读卡机R2,可供进程P和Q共享。假定P已占用了打印机R1,Q占用了读卡机R2,此时若Q继续要求打印机,P继续要求读卡机,则P与Q间便会形成僵局,两个进程都在等待着对方释放出自己所需的资源,但因它们都不能获得所需资源而不能继续推进,从而也不能释放出已占有的资源,以致进入死锁状态。 死锁形成原因: (1)竞争资源。为多个进程所共享的资源不足,引起它们对资源的竞争而产生死锁; (2)进程推进顺序不当。进程运行过程中,请求和释放资源的顺序不当,而导致死锁。 死锁涉及到资源的管理(分配策略)不当! 资源分类: 按资源的占有方式 可剥夺资源——可剥夺资源是指资源占有者进程虽然仍然需要使用该资源,但另一进程却可以强行把资源从占有者进程处抢来,归自己使用。 不可剥夺资源——不可剥夺资源是指只有在占有者进程不再需要使用该资源而主动释放资源外,其它进程不得在占有进程使用资源过程中抢占。 一个资源是可剥夺资源还是不可剥夺资源,完全取决于资源的性质。 死锁与不可剥夺资源有关,竞争不可剥夺资源有可能会导致死锁。 按使用期限: 永久资源——所有的硬件资源和可再入的纯代码过程,都属于可再次使用的永久资源,它们可被进程反复使用。 消耗性的临时资源——而在进程同步和通信情况中出现的消息、信号和数据也可看作资源,它们是属于消耗性的临时资源。 消耗性的临时资源同样也可能引起死锁。什么时候会发生死锁呢?  系统出现死锁,则一定保持了如下四个必要条件,缺一不可。但即使这四个条件同时成立,却不一定导致死锁发生! 互斥使用资源——资源独占使用 占有并等待资源——保持占有资源并等待其它资源 不可抢占资源——已经分配的资源不能被抢占 循环等待资源——环路等待(相互等待) 死锁的必要条件 8.2 资源分配图RAG 资源分配图 P R1 进程 资源 进程P申请1个R1的资源 1个R1的资源被进程P占有 Holt(1972年)提出用资源分配图(Resources Allocation Graph)来建立产生死锁的4个必要条件的模型。 资源分配图RAG可以定义为一个二元组,即RAG=(V,E),其中V是顶点集,E是边集。 V又包含两个子集合,V=(P,R),子集P={p1,p2,…pm}是进程集合,每个元素pi表示一个进程,在图中用圆圈表示;子集R={r1,r2,…rk}是资源集合,每个元素ri表示一类资源,在图中用方框表示,某类资源可能有多个分配单元,用方框中的小圆点表示。 边集中的边是有向边,可以是pi,rj或rj,pi,pi?P,rj?R。 若pi,rj?E,则表示在图中存在一条从节点pi指向节点rj的有向边,称作请求边,表示进程pi请求分配资源rj或rj中的一个单位; 若rj,pi?E,则在图中存在一条从节点rj指向节点pi的有向边,称作分配边,表示资源rj或rj中的一个单元已分配给了进程pi。 例如: 集合P、R和E: P={ p

您可能关注的文档

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档