- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 处理机调度与死锁 本章内容 处理机调度 常用调度算法介绍 死锁与预防死锁的方法 本章讨论处理器资源的管理问题。 处理器调度问题决定着整个系统的综合性能。不同的CPU管理方法将为用户提供不同性能的操作系统。 3.1 处理机调度的层次 从处理器调度的对象、时间、层次等不同角度,可把处理器调度分成不同类型。 按照调度涉及的层次不同,从用户作业从进入系统成为后备作业开始,直到运行结束退出系统为止,可把处理器调度分成: 高级调度 中级调度 低级调度 3.1.1 高级调度 高级调度概念 也称为作业调度、长程调度或接纳调度。 按照系统预定的调度策略,决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后再将创建的进程排在就绪队列上,准备执行。 在批处理操作系统中,作业首先进入系统在辅存上的后备作业队列等候调度,因此,作业调度是必须的。在纯粹的分时或实时操作系统中,通常不需要配备作业调度。 作业相关概念 作业调度时要做的决定: (1)接纳多少个作业 (2)接纳哪些作业(调度算法) 作业调度的目标: (1)对所有作业尽量做到公平合理 (2)高设备利用率 (3)执行尽可能多的作业 (4)尽量短的响应时间 3.1.2 低级调度 也称为进程调度、短程调度。 用于决定就绪队列中的哪个进程获得处理机。低级调度程序是操作系统最为核心的部分,低级调度策略的优劣直接影响到整个系统的性能。 最初的调度对象是传统操作系统中的进程,随着现代操作系统引入了多线程技术,进程演变成资源管理的单位,从而只作为中级调度的对象,内核级线程则替代进程成为低级调度的对象。 1. 进程调度功能 (1)记录系统中所有进程的执行情况 (2)选择占有处理机的进程(选择算法) (3)进行进程上下文切换 —个进程的上下文(context)包括进程的状态、有关变量和数据结构的值、机器寄存器的值等相关程序、数据。当正在执行的进程让出处理机时,系统要做进程上下文切换,以使另一个进程得以执行。 2.进程调试中的三个基本机制 排队器:负责组织各进程队列 分派器:将选中的进程从就绪队列中取出,分配处理机 上下文切换机制 两对上下文切换: 保存当前进程上下文,装入分派程序上下文 移出分派程序上下文,装入新选进程现场信息 3. 进程调度方式 1)非抢占方式 进程一旦获得处理机后便一起执行下去,直至该进程完成或发生某事件被阻塞时,才把处理机分配给其他进程。决不允许某进程抢占已经分配出去的处理机。 当前进程无论在用户态还是核心态都不可以被抢用CPU。不可抢先式OS:Windows98/95,在这些OS中,进程从运行态退出只能是自愿或阻塞,不能强迫运行态?就绪态。 引起进程调度的因素: (1)进程执行完毕,或发生某事件不能再继续执行 (2)I/O请求 (3)进程通信或同步过程中执行了原语操作 优点:实现实现简单,系统开销小,适用于批处理系统。 缺点:不能满足紧急任务的要求,不适用于实时系统。 2)抢占方式 当一个进程正在运行时,调度程序可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。 剥夺原则有: (1)优先权原则 (2)短进程优先原则 (3)时间片原则。 内核完全不可抢先 当前进程在用户态时可随时被抢用CPU,但处于核心态时完全不可以被抢用CPU。如:传统的UNIX和Windows。 这类操作系统通常在系统调用或中断时屏蔽中断,系统调用返回或中断返回时开放中断。 内核的部分可抢先 当前进程在用户态时随时被抢用CPU,但处于核心态时则大部分时间不可以被抢用CPU,只在某些时刻点(可抢先点)可以被抢用CPU。如:UNIX SVR4。 SVR4内核定义了抢先点:内核代码中的这样一些位置,内核的数据结构处在一个稳定的状态,并且内核马上要开始长时间的、大量的计算。此时,内核检查是否有实时进程就绪需要运行,若有则抢先当前进程。 完全可抢先或内核完全可抢先 无论当前进程处于用户态还是核心态,都可以随时可被抢用CPU。如:SUN Solaris(最成功的UNIX商业变种之一)。 为做到完全可抢先,Solaris对SVR4的核心代码做了全面修改,大部分的内核全局数据结构都用正确的同步对象如互斥 锁或信号量来保护,并通过特殊内核线程实现中断来避免用提高优先级的方法保护临界区。Solaris内核中只有极少的不可抢先代码段。 3.1.3 中级调度 中级调度实现进程在主存与外存间的对换。反映到进程状态上就是挂起和解除挂起。 中级调度将那些暂时不能运行的进程调出主存,此时这些进程处于挂起状态。当被挂起的进程具备了运行条件,且主存又有空闲区域时,再由中级调度决定一部分这样的进程重新调回主存工作。 中级调度起到短期调整系统负荷的作用,调度的依据是存储资源
文档评论(0)