U034计算机操作系统教程_第四版_(张尧学著)_清华大学出版社_第4章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2. 带权周转时间 作业的周转时间包含了两个部分,即等待时间和执 行时间。为了更进一步反映调度性能,使用带权周 转时间的概念。带权周转时间是作业周转时间与作 业执行时间的比: Wi=Ti/Tri 对于被测定作业流所含有的几个作业来说,其平均 1 n 带权周转时间为:
W= W n
i =1 i
对于分时系统,除了要保证系统吞吐量大、资源利 用率高之外,还应保证有用户能够容忍的响应时间。 因此,在分时系统中,仅仅用周转时间或带权周转 时间来衡量调度性能是不够的。
4.1.2 调度的层次 处理机调度问题实际上也是处理机的分配问题。显 然,只有那些参与竞争处理机所必需的资源都已得 到满足的进程才能享有竞争处理机的资格。这时, 它们处于内存就绪状态。这些必需的资源包括内存、 外设及有关数据结构等。从而,在进程有资格竞争 处理机之前,作业调度程序必须先调用存储管理、 外设管理程序,并按一定的选择顺序和策略从输入 井中选择出几个处于后备状态的作业,为它们分配 内存等资源和创建进程,使它们获得竞争处理机的 资格。
4.3 进 程 调 度
无论是在批处理系统还是分时系统中,用户进程数 一般都多于处理机数,这将导致用户进程互相争夺 处理机。另外,系统进程也同样需要使用处理机。 这就要求进程调度程序按一定的策略,动态地把处 理机分配给处于就绪队列中的某一个进程,以使之 执行。本节介绍进程调度的功能、进程调度发生的 时机以及由进程调度引起的进程上下文切换等。
4.3.1 进程调度的功能 进程调度的具体功能可总结如下: (1) 记录系统中所有进程的执行情况 作为进程调度的准备,进程管理模块必须将系统中 各进程的执行情况和状态特征记录在各进程的PCB 表中。并且,进程管理模式根据各进程的状态特征 和资源需求,将各进程的PCB表排成相应的队列并 进行动态队列转接。进程调度模块通过PCB变化来 掌握系统中所有进程的执行情况和状态特征,并在 适当的时机从就绪队列中选择出一个进程占据处理 机。
(1) 作业调度:又称宏观调度,或高级调度。其主要 任务是按一定的原则对外存输入井上的大量后备作 业进行选择,给选出的作业分配内存、输入输出设 备等必要的资源,并建立相应的进程,以使该作业 的进程获得竞争处理机的权利。另外,当该作业执 行完毕时,还负责回收系统资源。 (2) 交换调度:又称中级调度。其主要任务是按照给 定的原则和策略,将处于外存交换区中的就绪状态 或就绪等待状态的进程调入内存,或把处于内存就 绪状态或内存等待状态的进程交换到外存交换区。 交换调度主要涉及到内存管理与扩充。 (3) 进程调度:又称微观调度或低级调度。其主要任 务是按照某种策略和方法选取一个处于就绪状态的 进程占用处理机。在确定了占用处理机的进程后,
另外,由于处于执行状态下的作业一般包含有多个 进程,而在单机系统中,每一时刻只能有一个进程 占有处理机。那么,其他进程就只能处于准备抢占 处理机的就绪状态或等待得到某种新资源的等待状 态。为了提高资源的利用率,在有些操作系统中把 一部分在内存中处于就绪状态或等待状态而在短时 期内又得不到执行的进程、作业换出内存,以让其 他作业的进程竞争处理机。这样,在外存中,除了 处于后备状态的作业外,还存在有处于就绪状态而 等待得到内存的作业。这就需要有一定的方法和策 略为这部分作业分配空间。 一般来说,处理机调度可以分为4级:
作业调度程序从后备作业中选取若干个作业到内存 投入运行。它为被选中作业建立进程并分配必要的 资源,这时,这些被选中的作业处于执行状态。从 宏观上看,这些作业正处在执行过程中,但从微观 上看,在某一时刻,由于处理机总数少于并发执行 的进程数,因此,不是所有被选中作业都占有处理 机,其中的大部分处于等待资源或就绪状态中。那 么,究竟哪个作业的哪个进程能获得处理机而真正 在执行,要依靠进程调度来决定。 当作业运行完毕,但它所占用的资源尚未全部被系 统回收时,该作业处于完成状态。在这种状态下, 系统需做诸如打印结果、回收资源等类的善后处理 工作。
系统必须进行进程上下文切换以建立与占用处理机 进程相适应的执行环境。 (4) 线程调度。 上述4级调度的关系如图4.1。 在多道批处理系统中,存在着作业调度和进程调度。 但是,在分时系统和实时系统中,一般不存在作业 调度,而只有进程调度、交换调度和线程调度。这 是因为在分时系统和实时系统中,为了缩短响应时 间或为了满足用户需求的截止时间,作业不是建立 在外存,而是直接建立在内存中。在这些系统中, 一旦用户和系统的交互开始,用户马上要进行控制。 因而,这些系统中没有作业提交状态和后备状态。 它们的输入信息经过终端缓冲区为系统所接收,或 者立即处理,或者经交换调度暂存外存中。
1. 周转时间: 作业i的周转时间Ti为 Ti=Tei-Tsi 其中Tei为作业i的完成时间,Tsi为作业的提交时间。 对于被测定作业流所含有的n(n>=1)个作业来说, 1 n 其平均周转时间为: T= Ti n i =1
一个作业的周转时间说明了该作业在系统内停留的 时间,包含两部分:等待时间;执行时间,即: Ti=Twi+Tri 这里,Twi主要指作业i由后备状态到执行状态的等待 时间,它不包括作业进入执行状态后的等待时间。
4.2 作 业 调 度
作业调度主要是完成作业从后备状态到执行状态的 转变,以及从执行状态到完成状态的转变。本节主 要介绍作业调度的功能及调度性能的评价方法。 4.2.1 作业调度功能 (1) 记录系统中各作业的状况。作业调度程序要能挑 选出一个作业投入执行,并且在执行中对其进行管 理,它就必须掌握作业在各个状态,包括执行阶段 的有关情况。通常,系统为每个作业建立一个作业 控制表JCB记录这些有关信息。系统通过JCB而感 知作业的存在。系统在作业进入后备状态时为该作 业建立它的JCB,从而使得该作业可被作业调度程 序感知。当该作业执行完毕进入完成状态之后,系 统又撤消其JCB而释放有关资源并撤消该作业。
图4.1 作业的状态及其转换
一个作业在其处于从输入设备进入外部存储设备的 过程称为提交状态。处于提交状态的作业,因其信 息尚未全部进入系统,所以不能被调度程序选取。 收容状态也称为后备状态。输入管理系统不断地将 作业输入到外存中对应部分(或称输入井,即专门 用来存放待处理作业信息的一组外存分区)。若一 个作业的全部信息已全部被输入进输入井,那么, 在它还未被调度去执行之前,该作业处于收容状态。
衡量调度策略的最常用的几个指标是:周转时间、 吞吐率、响应时间以及设备利用率等。周转时间是 指将一个作业提交给计算机系统后到该作业的结果 返回给用户所需要的时间。吞吐率是指在给定的时 间内,一个计算机系统所完成的总工作量。响应时 间则是指从用户向计算机发出一个命令到计算机把 相应的执行结果返回给用户所需要的时间。设备利 用率主要指输入输出设备的使用情况。 本章将以CPU 管理为核心,讨论管理、控制用户进 程执行的方法。主要包括: (1) 作业与进程的关系;(2) 作业调度策略与算法;(3) 进程调度策略与算法;(4) 几种调度策略的评价。 另外,还介绍实时调度系统。
CPU是计算机系统中一个十分重要的资源。在早期 的计算机系统中,对它的管理是十分简单的。随着 多道程序设计技术和各种不同类型的操作系统的出 现,各种不同的CPU管理方法得到启用。不同的 CPU管理方法将为用户提供不同性能的操作系统。 例如:在多道批处理系统中,为了提高处理机的效 率和增加作业吞吐率,当调度一批作业组织多道运 行时,要尽可能使作业搭配合理。这样,就能使系 统中的各种资源可充分利用。但由于是批处理,在 用户看来,这是一台没有交互、速度较慢的处理机。 在分时系统中,在调度作业执行时要首先考虑每个 用户作业得到处理机的均等性。这样,系统资源的 利用率就不如批处理系统。由此可以看到,根据操 作系统的要求不同,处理机管理的策略是不同的。
从而在进程有资格竞争处理机之前作业调度程序必须先调用存储管理外设管理程序并按一定的选择顺序和策略从输入井中选择出几个处于后备状态的作业为它们分配内存等资源和创建进程使它们获得竞争处理机的资格
第4章 处理机调度
4.1 分级调度 4.2 作业调度 4.3 进程调度 4.4 调度算法 4.5 算法评价 4.6 实时系统调度方法 本章小结 习题
必须指出,如果考虑的因素过多,调度算法就会变 得非常复杂。其结果是系统开销增加,资源利用率 下降。因此,大多数操作系统都根据用户需要,采 用兼顾某些目标的简单调度算法。 那么,怎样来衡量一个作业调度算法是否满足系统 设计的要求呢?对于批处理系统,由于主要用于计 算,对于作业的周转时间要求较高。因此,作业的 平均周转时间或平均带权周转时间,被作为衡量调 度算法优劣的标准。但是,对于分时系统和实时系 统来说,外加平均响应时间被作为衡量调度策略优 劣的标准。
4.1 分 级 调 度
4.1.1 作业的状态及其转换 在第2章中,介绍了用户如何利用操作系统提供的手 段与工具去组织和控制自己的作业运行。但是,一 个作业从用户提交开始到真正占有处理机而被执行, 则要由系统经过多级调度才能实现(在有些系统, 例如分时系统中,也可以由单级调度实现),下面 以批处理系统为例看一个作业处理的大致过程。 如图4.1 所示,一个作业从提交给计算机系统到执行 结束退出系统,一般都要经历提交、收容、执行和 完成等4个状态。
对于不同的批处理系统,其JCB的内容也有所不同。 图4.2给出了JCB的主要内容。它包括作业名、作业 类型、资源要求、当前状态、资源使用情况以及该 作业的优先级等。
作业名 作业类型 资源要求
资源使用情况
优先级(数) 当前状态 其他
图4.2 作业控制块JCB
其中,作业名由用户提供并由系统将其转换为系统 可识别的作业标识符。作业类型指该作业属于计算 型(要求CPU时间多)还是管理型(要求输入/输 出量大),或图形设计型(要求高速图形显示)等。 而资源要求则包括:该作业估计执行时间、要求最 迟完成时间、要求的内存量和外存量、要求的外设 类型及台数以及要求的软件支持工具库函数等。资 源要求均由用户提供。资源使用情况包括有:作业 进入系统时间、开始执行时间、已执行时间、内存 地址、外设台数等。优先级则被用来决定该作业的 调度次序。优先级既可以由用户给定,也可以由系 统动态计算产生。状态是指该作业当前所处的状态。 显然,只有当作业处于后备状态时,该作业才可以 被调度。
图4.3 作业调度中状态的转换过程
4.2.2 作业调度目标与性能衡量 作业调度的功能最主要的是从后备作业队列中选取 一批作业进入执行状态。根据不同的目标,将会有 不同的调度算法。这里先介绍调度目标。 一般来说,调度目标主要是以下4点: (1) 对所有作业应该是公平合理的; (2) 应使设备有高的利用率; (3) 每天执行尽可能多的作业; (4) 有快的响应时间。 由于这些目标的相互冲突,任一调度算法要想同时 满足上述目标是不可能的。
(2) 从后备队列中挑选出一部分作业投入执行。作业 调度程序根据选定的调度算法,从后备作业队列中 挑选出若干作业去投入执行。 (3) 为被选中作业做好执行前的准备工作。作业调度 程序为选中的作业建立相应的进程,并为这些进程 分配它们所需要的系统资源,如分配给它们内存、 外存、外设等。 (4) 在作业执行结束时做善后处理工作。主要是输出 作业管理信息,例如执行时间等。再就是回收该作 业所占用的资源,撤消与该作业有关的全部进程和 该作业的作业控制块等等。 作业从后备状态到执行状态,又从执行状态到完成 状态的转换过程如图4.3所示。
4.1.3 作业与进程的关系 作业可被看作是用户向计算机提交任务的任务实体, 例如一次计算、一个控制过程等。反过来,进程则 是计算机为了完成用户任务实体而设置的执行实体, 是系统分配资源的基本单位。显然,计算机要完成 一个任务实体,必须要有一个以上的执行实体。也 就是说,一个作业总是由一个以上的多个进程组成 的。那么,作业怎样分解为进程呢?首先,系统必 须为一个作业创建一个根进程。然后,在执行作业 控制语句时,根据任务要求,系统或根进程为其创 建相应的子进程,然后,为各子进程分配资源和调 度各子进程执行以完成作业要求的任务。
相关文档
最新文档