机械工业出版社机械工业出版社操作系统教程课件第1页第三章作业管理3.1作业管理概述3.2批处理作业的管理3.3交互式作业的管理3.4操作系统与用户的接口3.5本章小节机械工业出版社机械工业出版社操作系统教程课件第2页3.4操作系统与用户的接口3.4.1命令接口(作业级接口)3.4.2程序接口3.4.3图形接口机械工业出版社机械工业出版社操作系统教程课件第3页3.1作业管理概述1.作业把用户在一次解题过程中要求计算机所做工作的集合称为一个作业。在计算机上运行用户作业时,通常要经历以下4步:(1)编辑,即采用某种高级语言按一定算法编写源程序,将源程序通过某种手段送入计算机内;(2)编译,即调用上述高级语言的编译程序,对源程序进行编译,产生目标代码程序;(3)链接,即将目标代码及调用的各种库代码连接装配成一个可执行代码;(4)运行,即提供程序运行时所需数据,运行程序并产生计算结果。机械工业出版社机械工业出版社操作系统教程课件第4页2.作业步任何一个作业都要经过若干加工步骤才能得到结果,作业的每一个加工步骤称为一个“作业步”。每个作业步都对应一个程序的执行,各作业步之间总是相互联系的,并在逻辑上是顺序执行的,前一个作业步的输出信息往往作为后一个作业步的输入,如图3-1所示。实际上每个作业所经历的加工步骤是可以不同的。3.1作业管理概述机械工业出版社机械工业出版社操作系统教程课件第5页3.1作业管理概述图3-1作业控制过程机械工业出版社机械工业出版社操作系统教程课件第6页3.1作业管理概述3.作业控制方式指用户根据操作系统提供的手段来说明作业加工步骤的方式。(1)批处理控制方式用户使用“作业控制语言”对作业执行的控制意图编写成一份“作业控制说明书”,连同该作业的源程序和初始数据一同提交给计算机系统,操作系统将按照用户说明的控制意图来控制作业的执行。采用该方式对作业进行控制时,其控制意图是事先在脱机情况下说明的,且作业完全由操作系统自动控制执行。因此,该控制方式又称自动控制方式或脱机控制方式。采用该方式的作业称“批处理作业”,又称“脱机作业”。机械工业出版社机械工业出版社操作系统教程课件第7页3.1作业管理概述(2)交互式控制方式用户使用操作系统提供的“操作控制命令”来表达对作业执行的控制意图。执行时,用户逐条输入命令,操作系统每接到一条命令,就根据命令的要求控制作业的执行,直至作业执行结束。采用交互方式时,在作业执行过程中操作系统与用户之间需不断交互信息,用户必须在联机方式下通过对计算机的直接操作来控制作业的执行。因此,交互式控制方式又称联机控制方式。采用交互式控制方式的作业称为“交互式作业”,又称“联机作业”,对于来自终端的作业也称为“终端作业”。机械工业出版社机械工业出版社操作系统教程课件第8页3.2批处理作业的管理3.2.1批处理作业输入3.2.2批处理作业的调度3.2.3作业调度算法3.2.4批处理作业的控制机械工业出版社机械工业出版社操作系统教程课件第9页3.2批处理作业的管理根据作业进入系统的过程,可将作业管理功能分成三部分:(1)作业输入:把作业装入辅存输入井中,并按照进入的先后顺序形成后备作业队列的过程。(2)作业调度:按某种调度策略选择后备作业队列中的若干作业装入主存运行的过程。(3)作业控制:在操作系统控制下,用户如何组织他的作业并控制作业的运行。机械工业出版社机械工业出版社操作系统教程课件第10页3.2.1批处理作业输入用户根据自己的实际要求组织批处理作业,并把准备好的作业提交给计算机系统,操作系统完成将该批处理作业向系统成批输入。1.作业控制语言每个批处理作业都包括源程序、初始数据和作业控制说明书三部分,其中说明书是用作业控制语言书写的,刻画了用户对作业的基本情况描述和资源需求描述,规定了用户对作业执行的控制要求。作业基本情况描述含用户名、作业名、使用的编程语言名、允许的最大处理时间等;资源需求描述含需求的主存大小、外设种类及台数、处理器优先级、所需运行时间、需求库函数等;作业执行的控制要求包括作业的控制方式、作业步的执行顺序、作业的异常处理等。机械工业出版社机械工业出版社操作系统教程课件第11页作业控制语言JCL由若干作业控制语句组成,每个控制语句包含了表示特征的关键字、指示控制要求的若干参数。在脱机方式下,系统提供JCL将作业的控制要求编写成作业控制说明书的形式,并通过作业控制说明书对作业实施运行控制,其主要功能如下:(1)作业的提交。(2)控制作业和作业步的执行。(3)各种软硬件资源的使用。机械工业出版社机械工业出版社操作系统教程课件第12页3.2.1批处理作业输入2.作业控制块作业控制块JCB是批处理作业存在的标志,其中存有系统对于作业进行管理所需要的全部信息,它们被保存于辅存存储区域中。JCB中所包含的信息数量及内容因系统而异,但一般应包含:作业名、作业状态、作业类别、作业优先级、作业控制方式、资源需求量、进入系统时间、开始运行时间、运行时间、作业完成时间和所需主存地址及外设种类及台数等。(1)作业控制块的建立当作业开始由输入设备输入到辅存的输入井时,系统输入程序即为其建立一个JCB,并对其进行初始化。初始化的大部分信息取自作业控制说明书,其它的部分信息如作业进入系统时间和作业开始运行时间等则由资源管理器给出。机械工业出版社机械工业出版社操作系统教程课件第13页(2)作业控制块的使用需要访问JCB的程序主要有系统输入程序、作业调度程序、作业控制程序和系统输出程序等。(3)作业控制块的撤销当作业完成后,其JCB由系统输出程序撤销,随即其作业也撤销。机械工业出版社机械工业出版社操作系统教程课件第14页3.2.1批处理作业输入3.作业表每个作业都有一个JCB,所有作业的JCB就构成了一个作业表。作业表存放在辅存固定区域中,长度是固定的,它限制了系统所能同时容纳的作业数量。系统输入程序、作业调度程序、系统输出程序都需要访问作业表,因而存在互斥问题。机械工业出版社机械工业出版社操作系统教程课件第15页3.2.1批处理作业输入4.批处理作业的建立作业建立的前提条件是首先向系统申请获得一个空的作业表项和足够的输入井空间。建立时,一个作业必须将作业所包括的全部程序和数据输入到辅存中保存起来,并建立该作业对应的JCB。因此,作业的建立过程包括两个阶段:建立JCB阶段和作业输入阶段。(1)建立JCB建立JCB的过程就是申请和填写一张含空白表项的作业表的过程。由于操作系统所允许的作业表的长度是固定的,即作业表中存放的JCB个数是确定的,因此当作业表中无空白表项时,系统将无法为用户建立作业,作业建立将会失败。机械工业出版社机械工业出版社操作系统教程课件第16页(2)作业的输入将作业的源程序、初始数据和作业控制说明书通过输入设备输入到辅存并完成初始化的过程。作业输入时,操作系统通过“预输入命令”启动SPOOLing系统中的“预输入程序”工作,就可把作业信息存放到“输入井”中。预输入程序根据作业控制说明书中的作业标识语句区分作业,把作业登记到作业表中,并把作业中的各个文件存到“输入井”中。被输入的作业处于“后备状态”,并在“输入井”中等待处理。采用SPOOLing系统的输入方式时,由于辅存中的输入井空间大小有限,若输入井中无足够大小的空间存放该作业,则作业建立仍然会失败。机械工业出版社机械工业出版社操作系统教程课件第17页3.2.2批处理作业的调度1.作业调度程序作业调度不仅要按某种调度算法从后备作业队列中选择作业装入主存,还要为选中的作业分配所需资源,为作业进入CPU运行作好准备。完成作业调度功能的控制程序称为作业调度程序。通常作业调度程序要完成下述工作:(1)按照某种调度算法从后备作业队列中选取作业。(2)为被选中的作业分配主存和外设资源。(3)为选中的作业开始运行做好一切准备工作。这种准备工作包括:修改作业状态为运行态,为运行作业创建进程,构造和填写作业运行时所需的表格,如作业表等。(4)在作业运行完成或由于某种原因需要撤离系统时,还要完成作业的善后处理工作。包括回收分给它的全部资源,为输出必要信息编制输出文件,撤销该作业的全部进程和作业控制块等,最终将其从现行作业队列中删除。机械工业出版社机械工业出版社操作系统教程课件第18页3.2.2批处理作业的调度2.作业状态作业从提交到系统直到离开系统前的整个活动可划分为若干阶段。作业在每个阶段所处的状态称为作业的状态。通常作业的状态分成四种:(1)提交状态:一个作业经过输入设备进入到输入井,系统为其建立作业控制块。这时的作业处于提交状态。(2)后备状态:系统将已进入输入井的作业插入到输入井后备队列中,等待作业调度程序的调度运行,这时的作业处于后备状态。(3)运行状态:处于后备状态的作业被作业调度程序选中进入主存,系统就为它分配必要的资源,建立相应的进程,这时处于运行状态。(4)完成状态:作业完成其全部运行并释放其所占全部资源而正常结束或异常终止时,此时就处在完成状态。此时作业调度程序对该作业进行一系列善后处理,并退出系统。作业状态的转换是一个在其生命周期中的连续过程,对应的状态转换图如图3-2所示。机械工业出版社机械工业出版社操作系统教程课件第19页缓输出程序缓输出初始数据提交状态完成状态后备状态运行状态…初始数据源程序输出设备作业控制说明书输入井运行等待就绪输出井输入设备作业调度预输入作业调度程序预输入程序图3-2状态转换图3.2.2批处理作业的调度机械工业出版社机械工业出版社操作系统教程课件第20页3.2.2批处理作业的调度3.作业调度的影响因素对于每个用户来说,都希望自己的作业尽快执行,但就计算机系统而言,既要考虑用户的需求又要有利于整个系统效率的提高,因此作业调度中应该综合考虑多方面的因素。主要考虑的因素有:(1)公平性:公平对待每个用户,让用户满意,不能无故或无限制地拖延某一用户作业的执行。(2)均衡使用资源:使同时装入主存的作业在执行时尽可能利用系统各种不同资源,极大提高资源的使用率。因此应将计算型和I/O型两种作业合理搭配,使得系统各种资源发挥最佳效益。(3)提高系统吞吐量:通过缩短每个作业的周转时间,实现单位时间内尽可能为更多作业服务,从而提高计算机系统的吞吐能力。(4)平衡系统和用户需求:每个用户都希望自己的作业立即投入运行并很快获得运行结果,但系统必需考虑系统的整体性能的提高,有时却难以满足用户需求。上述这些因素可能不能兼顾,应根据系统的设计目标来决定优先考虑的调度因素。机械工业出版社机械工业出版社操作系统教程课件第21页3.2.2批处理作业的调度4.作业调度的性能指标(1)CPU利用率:CPU利用率是CPU的有效运行时间与总的运行时间之比。因此,比值越大,其CPU利用率越高。(2)吞吐能力:吞吐能力是指单位时间内完成作业的数量。因此,完成的数量越多,其吞吐能力越强。(3)周转时间:作业的周转时间是指从作业被提交进入输入井开始,到作业执行完成的这段时间间隔,应包括四个部分:等待作业调度的时间,等待进程调度的时间,占据CPU执行的时间,及进程等待I/O操作完成的时间。设Tci为作业i的完成时间,Tsi为作业进入输入井的时间,则作业i的周转时间定义为:Ti=Tci-Tsi很显然,作业的周转时间越短,作业越早被调度并运行。(4)平均周转时间T:指所有作业周转时间的平均值。长作业对T值的影响大,而短作业影响小。很显然,对系统来说,希望进入系统的作业平均周转时间越小越好。机械工业出版社机械工业出版社操作系统教程课件第22页3.2.2批处理作业的调度(5)平均带权周转时间:由于系统中的短作业所占比例更大,为了增加短作业对T值的影响,引入平均带权周转时间的概念。若作业i的带权周转时间定义为作业的周转时间与作业的运行时间之比,即为:Wi=Ti/tri其中tri为作业i占据CPU的运行时间,则作业平均带权周转时