处理机调度与死锁严军勇.ppt

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

4实例 Allocation A B C Need A B C Available A B C p0 p1 p2 p3 p4 为P0分配(0,2,0)后的情况(不安全) 0 3 0 7 2 3 3 0 2 0 2 0 3 0 2 6 0 0 2 1 1 0 1 1 0 0 2 4 3 1 2 1 0 3.7.1 死锁的检测 当系统为进程分配资源时,若没有采取任何限制性的措施,则系统必须提供检测和解除死锁的手段,为此,系统必须: (1)保存有关资源的请求和分配信息 (2)提供一种算法,以利用这些信息来监测系统是否进入死锁状态 3.7 死锁的检测与解除 1. 资源分配图(Resource Allocation Graph) 该图是由一组节点N和一组边E所组成的一个对偶G=(N,E),它具有下述形式的定义和限制: (1) 把节点N分成两个互斥的子集,即一组进程节点P和一组资源节点R, N=P U R。例如右图 P={p1,p2},R={r1,r2} ,N= {r1,r2}U {p1,p2} (2) 凡属于E中的一个边e∈E,都连接着P中的一个结点和R中的一个结点,e={pi, rj}是资源请求边,由进程pi指向资源rj, 它表示进程pi请求一个单位的rj资源。e={rj, pi}是资源分配边,由资源rj指向进程pi, 它表示把一个单位的资源rj分配给进程pi。 如右图: E={(p1,r2),(r2,p2),(p2,r1), (r1,p1),(r1,p2)} P 1 P 2 r 1 r 2 P 1 P 2 r 1 r 2 a b c 3.7 死锁的检测和解除 2.死锁定理 3.7 死锁的检测和解除 2.死锁定理 若能消去资源分配图中所有结点的连接边,使全部结点都成为孤立结点,则称该图是可完全简化图;若不能使该图完全简化,则称该图是不可完全简化图。 可以证明:当且仅当系统某状态S所对应的资源分配图是不可完全简化的,则S是死锁状态。该充分条件成为死锁定理。 3.检测死锁的算法(了解): Work= available L:={Li| alloci=0 reqi=0} (孤立进程点) For all Li L do Begin For all reqi =work do Begin Work=work+alloci L=Li∪L end End Deadlock= ~(L={p1 … pn}) 3.7死锁的检测和解除 死锁的恢复 死锁的恢复 操作系统可有两种方法来解除死锁,一种是撤消进程法,另一种是剥夺资源法。 采用撤消进程法时,可有两种形式来撤消进程。一种是撤消所有卷入死锁的进程。该方法代价巨大,因为有些进程已运行很长时间了,撤消后其中间结果均消失。另一种是一次撤消一个进程直到死锁消失。 采用剥夺资源法时,是从一个或多个卷入死锁的进程中强占资源,再把这些资源分配给卷入死锁的其它进程,以解除死锁。 其次,设立检查点是一种恢复进程重新运行的有效方法,这样当进程需要恢复执行时,就可以从该检查点开始重新执行,使得不必前功尽弃且尽可能多地利用已执行的结果,从而提高系统效率。 方法 资源分配策略 各种可能模式 主要优点 主要缺点 鸵鸟 预防 保守的;宁可资源闲置(从机制上使死锁条件不成立) 一次请求所有资源条件1 适用于作突发式处理的进程;不必剥夺 效率低;进程初始化时间延长 剥夺次数过多;多次对资源重新起动 不便灵活申请新资源 资源剥夺 条件3 适用于状态可以保存和恢复的资源 资源按序申请 条件4 可以在编译时(而不必在运行时)就进行检查 避免 是“预防”和“检测”的折衷(在运行时判断是否可能死锁) 寻找可能的安全的运行顺序 不必进行剥夺 使用条件:必须知道将来的资源需求;进程可能会长时间阻塞 检测 宽松的;只要允许,就分配资源 定期检查死锁是否已经发生 不延长进程初始化时间;允许对死锁进行现场处理 通过剥夺解除死锁,造成损失 回顾 1、周转时间、带权周转时间 2、FCFS:对短作业不公平 3、短作业:长作业饥饿 4、高优先权:低优先权的可能长期不调度。 5、高响应比:须计算相应比,增加开销。 6、时间片轮转:时间片长短不易确定。太长等同于FCFS,太短频繁中断,增加开销。 7、多级反馈:最好的调度算法。按不同的优先级设在不同的就绪队列。同一队列按FCFS调度。不同队列按优先级高低进行调度。优先级高的时间片设置短些。 3.4.1实现实

文档评论(0)

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

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

1亿VIP精品文档

相关文档