第6章作业管理与系统接口6.1作业管理概述6.2批处理作业管理6.3交互式作业管理6.4系统接口本章结束!6.1作业管理概述6.1.1基本概念1.作业作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需要的数据以及控制命令等。作业是由一系列有序的作业步组成的。2.作业步把计算机系统在完成一个作业的过程中所做的一项相对独立的工作称为一个作业步。例如,我们每次使用计算机时都需要开机、进入相应的软件操作、关机等几个步骤,其中每一个步骤都可以看成一个作业步。第6章作业管理与系统接口6.1作业管理概述6.1.2作业状态一个作业进入系统到运行结束,一般需要经历收容、运行、完成三个阶段,与之对应的作业状态是后备、运行和完成三种状态。其状态转换如图6-1所示。1.后备状态当一个作业通过输入设备送入计算机,并存入磁盘后,系统就为作业建立一个作业控制块,把它插入到后备作业队列中等待被调度运行,这种状态称为后备状态。从作业输入开始到放入后备作业队列的过程称为收容阶段,也称为作业注册。第6章作业管理与系统接口6.1作业管理概述6.1.2作业状态2.运行状态当一个作业被调度程序选中,为其分配必要的资源,建立一组相应进程的状态称为运行状态。处于运行状态的作业在系统中可以从事各种活动。当被处理器调度程序选中后,就占用处理器运行,也可以等待某种事件的发生,还可能等待进程调度程序为其分配处理器。运行状态的作业实际上就是进程,它有三种基本状态:就绪、执行、阻塞。这就是第2章介绍的内容。第6章作业管理与系统接口6.1作业管理概述6.1.2作业状态3.完成状态当作业正常运行结束或因发生错误而终止执行的状态称为完成状态。此时,由系统将作业控制块从当前队列中删除,收回其占用的资源,将作业运行结果编入输出文件并调用有关设备进行输出。在有SPOOLing系统的计算机系统中,作业将被插入到完成队列中,将运行结果送入输出井,再由SPOOLing系统完成输出。第6章作业管理与系统接口6.1作业管理概述6.1.3作业控制方式作业控制方式是指用户根据操作系统提供的手段来说明作业加工步骤的方式。系统提供的手段有作业控制语言和作业控制命令,它们让用户来说明其作业需进行加工的步骤。作业控制方式有批处理方式和交互方式两种。第6章作业管理与系统接口返回6.2批处理作业管理6.2.1基本原理批处理作业管理方式是指用户把自己对作业执行的控制意图用作业控制语言写成一份说明书,连同该作业的源程序和初始数据一起输入到计算机系统中,系统就可以按照说明书来控制作业的执行。按照这种方式执行的作业,不需要用户的干预,由系统自动完成。这种方式也称为脱机控制方式,或自动控制方式,它适合对作业的成批处理。采用这种处理方式的作业称为批处理作业或脱机作业。第6章作业管理与系统接口6.2批处理作业管理6.2.2作业控制语言1.作业控制语言的概念作业控制语言是描述批处理作业控制执行的标准,是对用户作业组织和管理的命令集合,是系统提供给用户用来描述其作业控制意图的工具。作业控制语言提供的主要功能包括:作业的提交、作业的控制、作业步的执行、各种软硬件资源的使用,以及日期、时间、账号的设置等。第6章作业管理与系统接口6.2批处理作业管理6.2.2作业控制语言1.作业控制语言的概念作业控制说明书是用户用于描述批处理作业处理过程控制意图的一种特殊程序。用作业控制语言书写作业控制说明书,规定操作系统如何控制作业的执行。作业控制说明书主要包括:作业基本描述、作业控制描述和资源要求描述。作业基本描述主要包括用户名、作业名、使用的编程语言名、允许的最大处理时间等;作业控制描述主要包括作业在执行过程中的控制方式,如各作业步的操作顺序以及作业不能正常执行的处理等;资源要求描述主要包括要求主存的大小、外设种类和台数、处理的优先权、所需处理时间、所需库函数或实用程序等。第6章作业管理与系统接口6.2批处理作业管理6.2.2作业控制语言2.作业控制语言的组成作业控制语言由若干个控制语句组成。每个语句一般由控制关键字和控制参数组成。控制关键字告诉系统做什么样的操作,控制参数告诉系统操作的具体内容或对象。第6章作业管理与系统接口6.2批处理作业管理6.2.3批处理作业的输入2.作业控制语言的组成用户根据自己的解题要求组织文件,把每一个作业的源程序、数据和作业控制说明书都定义为文件,这些文件组织在一起称为作业信息,存储到外存上。操作员把若干个用户的作业信息收集到一起依次排列就形成了作业流。在有SPOOLing系统的计算机系统中,操作员只需要输入一条“预输入”命令启动“输入进程”,就可以把作业流中的作业信息存放到“输入井”中等待处理。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度1.采用的数据结构为了实现批处理作业的调度,需要为每个作业设置一个作业控制块(JCB),用来记录作业的有关信息,如资源要求、资源使用情况、作业的控制方式、作业类型、作业优先权、作业名、作业状态。作业控制块是作业存在的惟一标志。当作业进入后备状态时,系统为其建立JCB,从而使该作业可以被作业调度程序感知;当作业执行完后进入完成状态时,系统撤消其JCB,释放有关资源并撤消该作业。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度作业调度与进程调度的关系如图6-2所示。作业调度是从输入井中选择可以装入主存储器的作业,当作业被装入主存储器时,作业调度就为该作业创建了一个进程;若有多个作业装入主存储器时,就可以创建多个作业进程。这些进程的初始状态为就绪状态。然后由进程调度来选择可以占用处理器的进程。进程占有处理器运行时,由于各种原因引起进程状态的变化而让出处理器,于是进程调度再选择一个进程去运行。所以,作业调度与进程调度相互配合,可以实现多道作业的同时执行。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度2.作业调度算法(1)选择作业调度算法应考虑的因素。–极大的流量。–平衡资源的使用。–公平使用。(2)衡量调度算法优劣的方法。–平均周转时间短–平均带权周转时间小第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度(3)常用的作业调度算法。①先来先服务调度算法。按作业到达系统的先后次序进行的调度。该算法优先考虑在系统中等待时间最长的作业,而不考虑作业运行时间的长短。这种算法容易实现,但是,效率比较低,而且没有考虑到紧迫作业和短作业。②短作业优先调度算法。从作业的后备队列中挑选运行时间最短的作业作为下一个调度运行对象。这种算法容易实现,且效率较高,但是,未考虑长作业的利益。③响应比高者优先调度算法。先来先服务调度算法有可能使短作业等待较长的时间,短作业优先调度算法又没有充分考虑到长作业。为了更有效地提高系统的利用率,可以采用响应比高者优先调度算法。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度(3)常用的作业调度算法。④优先权调度算法。优先权调度算法是根据作业确定的优先权来选取作业,每次总是选取优先权最高的作业。⑤分类调度算法。分类调度算法是根据系统运行情况和作业属性将作业分类,作业调度时轮流从这些不同的作业类中挑选作业,以期达到均衡使用各类资源,提高系统效率的目的。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【例6-2】在一个单道批处理系统中,一组作业的提交时间和运行时间如下表所示,试计算以下三种作业调度算法的平均周转时间和平均带权周转时间:(1)先来先服务调度算法;(2)短作业优先调度算法;(3)响应比高者优先调度算法。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【解】(1)先来先服务算法。作业的执行情况如下表所示:作业的执行顺序为:J1、J2、J3、J4。平均周转时间=(1.0+0.67+0.7+0.63)/4=0.75小时平均带权周转时间=(1.0+1.34+3.5+6.3)/4=3.035(2)短作业优先算法。作业的执行情况如下表所示:作业的执行顺序为:J1、J3、J4、J2。平均周转时间=(1.0+0.97+0.2+0.13)/4=0.575小时平均带权周转时间=(1.0+1.94+1.0+1.3)/4=1.31第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【解】(3)响应比高者优先算法。按响应比高者优先算法,作业的执行情况如下表所示:作业的执行顺序为:J1、J2、J4、J3。平均周转时间=(1.0+0.67+0.8+0.43)/4=0.725小时平均带权周转时间=(1.0+1.34+4+4.3)/4=2.66第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【例6-3】有5个作业A、B、C、D、E,它们几乎同时到达,预计它们的运行时间为10、6、2、4、8(秒),其优先权分别为3、5、2、1、4,这里5为最高优先权。对于下列每一种调度算法,计算其平均周转时间(作业切换开销可以不考虑)。(1)先来先服务(按A、B、C、D、E的次序)调度算法;(2)优先权调度算法。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【解】(1)按先来先服务(按A、B、C、D、E)调度算法,各作业在系统中的执行情况如下表所示:作业的平均周转时间为:T=(10+16+18+22+30)/5=19.2s(2)按优先权调度算法,各作业在系统中的执行情况如下表所示:作业的平均周转时间为:T=(6+14+24+26+30)/5=20.0s第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【例6-4】系统采用不能移动已在主存中的作业的可变分区管理主存。现有用户可用空间100KB,系统有4台打印机,有一批作业为:系统采用多道程序设计技术和资源的静态分配方法,忽略设备工作时间和系统进行调度所花费的时间。请分别给出采用先来先服务算法、短作业优先调度算法运行时作业的调度顺序和平均周转时间。第6章作业管理与系统接口6.2批处理作业管理6.2.4批处理作业的调度3.作业调调度算法举例【解】(1)按先来先服务调度算法,各作业的执行过程如下图所示:5个作业的执行情况汇总如下表:作业的调度顺序为:J1、J2、J4、J5、J3作业的平均周转时间:(25+35+70+40+50)/5=44分钟作业的平均带权周转时间:(1+1.17+7+2+3.33)/5=2.9(2)按短作业优先调度算法,J3虽然是短作业,但是,所需主存空间不足,仍被推迟到最后。5个作业的执行情况汇总如下表:作业的调度顺序为:J1、J2、J5、J4、J3作业的平均周转时间:(25+35+70+55+30)/5=43分钟作业的平均带权周转时间:(1+1.17+7+2.75+2)/5=2.784第6章作业管理与系统接口6.2批处理作业管理6.2.5批处理作业的控制操作系统按照用户组织作业时在作业控制说明书中所规定的控制要求去控制作业的执行。一个作业往往要分为若干个作业步执行,一般是按照作业步的顺序控制作业的执行。一个作业步执行结束后,就顺序选取下一个作业步继续执行,直到最后一个作业步完成。当整个作业执行完成后,系统就收回作业所占用的资源,撤消该作业,作业的执行结果在输出井中等待输出。其控制流程如图6-3所示。第6章作业管理与系统接口返回6.3交互式作业管理6.3.1基本原理交互式控制方式就是用户把自己对作业执行的控制意图用操作控制命令输入到计算机系统中,在作业执行过程中,用户逐条输入命令,系统根据接到的命令控制作业的执行。一条命令所要求的工作做完后,系统通知用户命令的执行情况,且允许用户再输入一条命令,以控制作业继续执行,直到作业执行结束。在作业执行过程中系统与用户不断地交换信息。特点:需要用户的及时干预,这种方式也称为联机控制方式,或手动控制方式,它适