第4章 进程调度及死锁.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件学院软件基础教研室 计算机组成 和 操作系统 第4章 进程调度与死锁 进程调度级别与准则 进程调度算法 死锁的基本概念 死锁的预防与避免 死锁的检测与解除 4.1 进程调度 为什么需要进程调度? 在多道程环境下,进程数目往往多于处理机数目,致使它们争用处理机。 这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。 分配处理机的任务是由进程调度程序完成的。它是操作系统设计的中心问题之一。 进程调度要解决的问题: Rule:按什么原则分配CPU —进程调度算法 When:何时分配CPU —进程调度的时机 4.1.1 调度级别与准则 处理机是计算机系统中的重要资源,处理机调度可分成三个层次: 高级调度 中级调度 低级调度 1. 高级调度 高级调度也称为作业调度或宏观调度,将外存作业调入内存,创建PCB等,插入就绪队列。 2. 中级调度 为提高系统吞吐量和内存利用率而引入的内- 外存对换功能(换出时,进程为挂起或就绪驻外存状 态)。 3. 低级调度(进程调度) 选择就绪进程或线程进入运行状态,低级调度 的时间尺度通常是毫秒级的。 进程调度的方式 非剥夺方式(非抢占方式) 一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。 剥夺方式(抢占方式): 当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程 剥夺原则有:优先权原则、短进程优先原则、时间片原则等。 4.1.2 进程调度的时机 正在执行的进程执行完毕,或者因为某种原因而终止运行。 执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。 执行中的进程因提出I/O请求而暂停执行。 在进程通信或同步过程中执行了某种原语操作,如P操作、Block原语等。 在分时系统中时间片已经用完。 在允许抢占式的调度方式中,有一个优先级更高的进程进入就绪队列。 一个系统态进程因为发生了中断等原因而返回到用户态时。 4.1.3 进程调度性能衡量的指标 响应时间 周转时间 优先权 截止时间(实时系统) 处理机的利用率 系统吞吐量 公平(避免“饿死”) 各类资源的平衡利用率 …… 4.2 进程调度算法 调度算法实际上是一个资源分配的问题。 先来先服务(FCFS)算法 短作业(进程)优先调度算法 最高优先权优先调度算法 动态优先权,静态优先权 时间片轮转法 多级反馈队列 4.3 死锁的基本概念 4.3.1 死锁的定义 一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,出现相互的永久“阻塞”,如无外力作用,这组进程将永远不能继续运行。 4.3.2 死锁产生的原因 系统的资源数量不足 进程调用的顺序不当 1.竞争资源产生的死锁 剥夺性和非剥夺性资源 剥夺性资源是指某进程在获得这类资源后,该资源可以再被其他进程或系统强行剥夺。 不可剥夺性资源是指当系统把这类资源分配给某进程后,再不能强行收回,只能由进程使用完后自行释放。如磁带机、打印机等。 竞争非剥夺性资源:资源数量有限,如磁带机、打印机等,容易产生死锁。 竞争临时性资源:例如进程通信时的消息,为临时性资源。 竞争资源产生的死锁实例 2. 死锁产生的必要条件 如果以下四个条件同时满足,则会引起死锁 互斥 资源只能被进程互斥的访问,即资源为临界资源。 请求和保持 占有资源的进程可以请求新的资源。 不可剥夺 进程已经获得了资源,在它使用完毕前,不能被剥夺,只能使用完毕后自己释放。 循环等待 至少有2个或以上进程构成循环链,每个进程都在等待由循环链中下一个成员占有的资源。 2.4 处理死锁的基本策略 预防死锁:破坏产生死锁的4个必要条件之一。 避免死锁:在资源动态分配过程中,用某种方法防止系统进入不安全状态。 检测死锁:让死锁发生,然后检测它们,再采取行动。 解除死锁:与检测死锁配合使用。 4.4 死锁的预防 出现死锁有四个必要条件,只要确保至少一个必要条件不成立,就能预防死锁发生。 1. 破坏“请求和保持”条件 要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给予一次性分配。 缺点:资源利用率可能比较低。 2. 破坏“不可剥夺”条件 如果一个进程占有资源并申请另一个不能立即得到的资源时,必须释放所有已分配的

文档评论(0)

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

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

1亿VIP精品文档

相关文档