第3章处理机调度与死锁剖析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 2)银行家算法之例 假定系统中有五个进程{P0, P1, P2, P3, P4}和三类资源{A, B, C},各种资源的数量分别为10、5、7,在T0时刻的资源分配情况如图所示。 T0时刻的资源分配表 最大需求量 第一次申请量 * 此时,如果5个进程都希望系统为它们分配尚需的资源时 P1执行结束后,系统剩余资源(5 3 2),可满足P3和P4要求。 P3执行结束后,系统剩余资源(7 4 3),可满足其余进程要求。 T1时刻的资源分配表 最大需求量 已占有资源量 尚需资源量 剩余资源量 * 优点:能时刻保证系统处于安全状态。 缺点:需要不断进行测试,需花费较多时间。 借助银行家算法预测系统的安全性: 例如,某系统有同类资源m个,可并发执行且共享该类资源的进程最多n个,而每个进程申请该类资源的最大量为x(1≤x≤m),只要不等式n(x-1)+1≤m成立,则系统一定不会发生死锁。 * (三) 死锁检测与恢复 当系统为进程分配资源时,若未采取任何限制性措施来保证不进入死锁状态,则系统必须提供检测和解除死锁的手段。 1)保存有关资源的请求和分配信息; 2)提供一种算法,以利用这些信息来检测系统是否已进入死锁状态。 发现死锁是根据死锁状态的定义,利用死锁描述中介绍的资源分配图来考察某一时刻系统状态是否合理,即是否能使所有进程都得到它们所申请的资源而运行结束。 * 1)死锁的检测: 由于系统状态与进程—资源状态图一一对应,故可以利用进程—资源状态图加以简化的方法,来检测系统在某一状态时是否为死锁状态。 检测死锁可以在每次分配后进行。但用于检测死锁的算法比较复杂,所花费的检测时间较长,系统开销大,因此,可以选取比较长的时间间隔来进行。 2) 死锁的恢复(解除) 常采用的两种方法: 剥夺资源。从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态; 撤消进程。最简单的撤消进程的方法是使全部死锁进程都夭折掉,稍为温和一点的方法是按照某种顺序逐个地撤消进程,直至有足够的资源可用,死锁状态消除为止。 * 总结: 处理机调度可以分为3级: 1)作业调度(高级调度) 2)交换调度(中级调度) 3)进程调度(低级调度)/线程调度 作业的4个状态:提交、后备(收容)、执行、完成。 作业控制块——JCB * 周转时间Ti = 完成时刻Tci- 提交时刻Tsi = 等待时间Twi + 运行时间Tri 带权周转时间Wi = Ti/Tri 作业调度功能: 1)记录各作业的状况。 2) 按调度算法,从后备作业中挑选作业进入主存运行。 3) 为被选中的作业做好执行前的准备工作。 4) 在作业执行结束时做善后处理工作。 * 作业调度算法: 1.先来先服务调度算法(FCFS) 2.短作业优先调度算法(SJF) 3.响应比高者优先调度算法(HRN) 4.最高优先级优先调度算法 进程调度: 调度程序:将进程插入到就绪队列,按一定原则保持队 列结构; 分派程序:将进程从就绪队列中移出,建立它执行的处 理机状态。 * 进程调度功能: 1.记录系统中所有进程的执行情况。 2.按照一定调度策略选择一个占有处理机的就绪进程。 3.实施处理机的分配和回收。 进程调度方式: 非抢先调度方式 2.可抢先调度方式 进程调度时机: 进程运行结束; 2.执行中的进程发生某个等待事件; 3.分时系统时间片到; 4.在采用可抢占调度方式的系统中,当具有更高优先级的进程要求使用处理机。 * 时间片轮转调度算法: 1.简单轮转法(固定时间片轮转法); 可变时间片轮转法; 多级反馈轮转法。 系统确定进程优先数的方法: 1.静态优先数法; 2.动态优先数法。 进程调度算法: 1.先来先服务调度算法; 2.最高优先级优先调度算法; 3.时间片轮转调度算法。 * 死锁:各并发进程因竞争资源,造成处于无休止的等待状态,在无外力作用的情况下,这些进程永远也不能继续前进。 产生死锁的原因: 系统资源不能满足进程的需求; 1)进程推进顺序非法 2)资源的分配策略不当 产生死锁的必要条件: 1)互斥条件 2)不剥夺条件 3)占有且等待条件 4)环路条件 解决死锁的方法: 1)死锁的预防 资源的静态分配策略-----破坏占有且等待条件 资源的资单请求方式分配-----破坏占有且等待条件 有序资源分配策略-------破坏环路条件 2)死锁的避免 3)死锁的检测与恢复 * 2. 动态优先数法。动态优先数是指在系统创建进程时,根据系统资源的使用情况和进程的当前

文档评论(0)

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

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

1亿VIP精品文档

相关文档