4.操作系统_处理器调度

╄→гoц情女王★ 提交于 2020-02-04 02:39:00

1. 处理器调度

1.1. 概念

在计算机系统中,可能有很多批处理作业同时存放在磁盘的后备作业队列中,或者有很多终端与主机相连,交互塑作业不断地进人系统,这样主存和处理器等资源便供不应求。按照何种原则挑选批处理作业进入主存运行、能否继续接纳分时用户. 如何在进程之间分配处理器资源,无疑是操作系统进行资源管理所要面对的重要问题,由处理器调度完成涉及处理器调度和资源分配的工作。

1.2. 处理器调度的层次

1.2.1. 高级调度

高级调度( high level scheduling)又称作业调度、长程调度,在多道批处理操作系统中,从输人系统的一批作业中按照预定的调度策略挑选若干作业进入主存,为其分配所需资源,并创建作业的相应用户进程后便完成启动阶段的高级调度任务,已经为进程做好运行前的准备工作,等待进程调度挑选进程运行,在作业完成后还要做结束阶段的善后工作。高级调度将控制多道程序的道数,被选择进人主存的作业越多,每个作业所获得的CPU时间就越少,为了向用户提供满意的服务,有时需要限制多道程序的道数。

1.2.2. 中级调度

中级调度(mediumlevelscheduling)又称平衡调度、中程调度,根据主存资源决定主存中所能容纳的进程数目,并根据进程的当前状态来决定辅助存储器和主存中的进程的对换。当主存资源紧缺时,会把暂时不能运行的进程换出主存,此时这个进程处于“挂起”状态,不参与低级调度;当进程具备运行条件且主存资源有空闲时,再将进程重新调回主存工作,起到短期均衡系统负载的作用,充分提高主存的利用率和系统吞吐率。

1.2.3. 低级调度

低级调度(low level scheduling) 又称进程调度/线程调度、短程调度,其主要功能是;根据某种原则决定就绪队列中的哪个进程/内核级线程获得处理器,并将处理器出让给它使用

1.2.4. 处理器三级调度模型

处理器三级调度模型

1.2.5. 处理器二级调度模型

处理器二级调度模型

1.3. 选择调度算法的原则

1.3.1. 资源利用率

  • CPU利用率=CPU有效工作时间/CPU总的运行时间
  • CPU总的运行时间=CPU有效工作时间+CPU空闲等待时间。

1.3.2. 响应时间

  • 交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔称响应时间。
  • 使交互式用户的响应时间尽可能短,或尽快处理实时任务。
  • 这是分时系统和实时系统衡量调度性能的一个重要指标。

1.3.3. 周转时间

  • 批处理用户从作业提交给系统开始,到作业完成为止的时间间隔称作业周转时间,应使作业周转时间或平均作业周转时间尽可能短。
  • 这是批处理系统衡量调度性能的一个重要指标。

1.3.4. 吞吐率

  • 单位时间内处理的作业数。

1.3.5. 公平性

  • 确保每个用户每个进程获得合理的CPU份额或其他资源份额,不会出现饿死情况。

1.4. 作业周转时间

1.4.1. 作业周转与平均周转时间

如果作业i提交给系统的时刻是ts,完成时刻是tf,该作业的周转时间ti为:ti = tf - ts
实际上,它是作业在系统里的等待时间与运行时间之和。为了提高系统的性能,要让若干个用户的平均作业周转时间和平均带权周转时间最小。
平均作业周转时间 T = (Σti) / n

1.4.2. 作业带权周转时间和平均作业带权周转时间

如果作业i的周转时间为ti,所需运行时间为tk,则称wi=ti /tk为该作业的带权周转时间。ti是等待时间与运行时间之和,故带权周转时间总大于1。
平均作业带权周转时间W = (Σwi) / n

1.5. 作业的管理与调度

根据作业处理方式的不同,作业可分为批处理作业和交互型作业。

1.5.1. 批处理作业的组织和管理

作业调度与进程调度的关系及作业和进程的状态转换

  • 批处理作业的输人
    批处理作业采用脱机控制方式,作业由程序、数据和作业说明书组成。程序和数据用于解决用户的应用问题或完成业务处理;作业说明书体现用户对作业的控制意图,汇集作业的基本描述、控制描述和资源要求描述,作业说明书与程序和数据一起提交给系统管理员,SPOOLing系统成批接收并控制作业的输人,将其存放在输人并,然后,在系统的管理和控制下被调度和执行。

  • 批处理作业的建立
    为了有效地管理作业,必须像进程管理那样为进入系统的每个作业建立一个作业控制块(Job Control Block,JCB) ,所有JCB组成作业表。JCB是在批处理作业进入系统时由SPOOLing和作业管理模块建立的,它是批处理作业存在于系统的标志,作业撒离时其JCB也被撤销。作业控制块的内容主要从用户的作业说明书中获得,包括:作业情况(用户名、作业名、语言名等),资源需求(CPU运行估计时间、截止时间、主存容量、设备类型及台数、文件数和输出量、函数库/实用程序等),资源使用情况(进人系统时间、开始运行时间、已运行时间、主存地址、外设编号等),作业控制(优先级、联机/脱机提作顺序、出错处理等),作业类型(CPU繁忙型、I/O繁忙型、均衡型等)信息。作业挖制块是一个共享数据结构,SPOOLing预输人程序、进程管理程序、缓输出程序及作业调度程序、作业控制程序等都需要访问它,把已输入并建好作业控制块的作业排入后备作业队列,以便等待作业调度。

  • 批处理作业的调度
    批处理作业调度是指按照某种算法从后备作业队列中选择部分作业进人主存运行,当作业运行结束时做好善后工作。作业调度程序需要完成以下几项任务

    • 选择作业:由系统规定作业调度算法,按此算法从后备作业队列中挑选作业。作业控制块中列出作业所需要的资源,由于资源要求被满足的作业可能有多个,需要根据资源状况和多道程序的道数决定选中哪些作业
    • 分配资源:作业调度程序与主存管理和设备管理程序进行通信,为作业分配所需要的资源。
    • 创建进程:每当选中作业且将其装人主存时,系统就为此作业创建应用进程,生成PCB及各种进程实体,这些进程将在低级调度的控制下占用处理器运行。可以把多个作业同时装人主存并启动运行,这些进程要竞争处理器,也就实现了多道程序设计。所以。进入计算机系统的批处理作业至少要经过两级调度之后才能占用处理器。第–级是作业调度,作业通过竟争进入主存,同时生成相应的进程;第二级是低级调度,进程竞争处理器资源。作业调度与低级调度相配合能够实现多道作业同时执行。
    • 作业控制:作业按照JCL书写的作业说明书运行,作业启动、作业步转接、程序调人、数据I/O、异常处理均由作业控制块和SPOOLing管理程序完成。
    • 后续处理:作业正常结束或出错终止时,作业调度程序要做好作业撒离和善后工作,如打印输出信息、回收各种资源、撤销作业控制块等。同时,启动作业调度程序选择新的作业进入主存运行。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!