您好,欢迎访问三七文档
第2章作业管理作业的基本概念作业管理的基本功能调度控制:输入作业的状态及作业控制块用户与操作系统的接口命令级程序级•作业在一次应用业务处理过程中,从输入开始到运行结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。也可以说操作系统为用户服务。用户交给计算机做的工作称为作业。作业步一个作业一般可以分成几个必要顺序处理的工作步骤,称为作业步。例如一个用高级语言编写的用户作业,在计算机上运行要分成三步:第一步编译。第二步将编译后的主程序中所用到的库程序和子程序都连接装配成一个完整的程序,第三步才是运行该装配好的程序。由此可看出,前一个作业步的处理结果可作为后一个作业步的输入文件。每一个作业步都有一个相应的执行程序来完成的。2.1作业的定义下面我们以在联想—PC上用UNIX系统控制时,其作业加工的步骤为例:(1)编辑:$viProgram.c调用全屏幕编辑程序Vi,编辑一个用C语言编写的源程序。(2)编译:$cc-cProgram.c用编译程序cc-c将源程序Program.c编译成目标程序文件program.o。(3)链接:$ccProgram.o–oProgram.out用cc编译链接程序将其目标模块和所使用的各种应用模块(库文件)连接起来构成一个可执行的文件Program.out。(4)执行:$Program执行Program.out文件。上述几个步骤的总和就是一个文件,每个步骤称为作业步。有些作业由程序、数据和作业说明书组成。用批处理控制方式组织的作业,在作业进入系统之前,程序员除了要准备好源程序和初始数据外,还必须用作业控制语言来书写一份作业控制说明书,系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。在批处理系统中,把一批作业依次放置在相应的输入设备上,在操作系统的控制下,依次将它们输入辅助存储器中,这样就形成了一个作业流,也称输入流。•作业由程序、[数据]、作业说明书三部分组成。程序和数据完成用户所要求的业务处理工作。作业说明书体现用户的控制意图。作业说明书主要包括三方面内容:作业基本情况描述作业名用户名所使用的编程语言名允许最大处理时间等等作业的控制描述控制方式操作顺序出错处理等等2.2作业的组织资源要求描述要求处理的时间内存空间外设类型和数量处理机优先级库函数或实用程序等等作业说明书方式主要用在批处理系统中。作业控制块JCB(jobcontrolblock)所谓作业控制块是记录与该作业有关的各种信息的登记表,其内容由作业操作说明书中取得。一个作业的作业控制块(JCB)是该作业存在的唯一标志。它包括该作业的标识信息、状态信息、调度参数、资源需求和其它控制信息。从而操作系统通过该表了解到作业要求,并分配资源和控制作业中程序和数据的编译,链接装入和执行等。JCB随着作业进入而建立,其内容由作业控制说明书中得到。JCB是作业存在于系统的标志,作业进入系统时,则为之建立JCB,当作业退出系统时,则其JCB也被撤消。作业控制块如下图所示。用户名作业名语言类用户对资源请求内存需求量外设类型、台数要求运行时间最迟完成时间资源使用进入系统时间开始运行时间已运行时间内存地址外设名作业类型级别作业状态作业控制方式作业类型优先权其它2.3.1怎样建立一个作业?建立一个作业必须把该作业所包含的程序和数据输入到计算机的外部存储设备上,而且还要由作业注册程序在系统中为该作业申请建立起一个相应的作业控制块。即作业的建立过程包括两个子过程:1、作业的输入;2、作业控制块的建立。2.3作业的建立2.3.2作业的输入方式1、联机输入方式2、脱机输入方式主机外围设备低档PC机后援存储器联机后援存储器主机高速外设Spooling系统(外围设备同时联机操作)输入装置输入装置通道外存输入井输出井通道输出装置输出装置通道主机系统输入管理模块输出管理模块1、负责从外设把信息读入缓冲区。2负责把缓冲区的信息送到外存输入井中。2.3.4JCB的建立在系统把作业信息输入到外存输入井后,还要根据作业说明书内容和有关作业信息在外存中建立作业控制块。1作业的状态一个作业从进入系统到运行结束,一般需要经历“收容”、“运行”、“完成”三个阶段:即在外存上等候调度的阶段;进入内存运行阶段;运行结束阶段。把这三个阶段分别用三种状态来表示:“后备状态”、“执行状态”、“完成状态”。阻塞就绪运行完成状态后备状态内存外存外存作业调度终止作业进程调度•后备状态操作员把用户提交的作业从输入设备输入到外存(磁盘的输入井)之后,由作业注册程序在系统中为该作业申请建立起一个相应的作业控制块,并把它加入到后备作业队列中,等候作业调度程序调度。•运行状态一个作业被作业调度程序选中后,程序装入内存,便进入执行状态,它是以进程的面貌出现,在内存中可能处于就绪状态,或者因获得处理机而处于运行状态,或因等待某个事件发生而处于阻塞状态。•完成状态当作业正常运行结束或发生错误异常结束时,作业进入完成状态。此时,由系统的“终止作业”程序将其作业控制块从现行作业队列中除去,并负责回收资源。作业管理的主要任务是根据系统或者用户的要求,对作业实行合理的组织和有效的控制,使之有条不紊地工作。主要包括两个基本功能:作业调度和作用控制。2.4.1作业控制作业控制包括控制作业的输入,执行以及在执行过程中如果出现故障如何处理,计算结果的输出等。作业控制是用户和操作系统的接口,作业控制的方式有脱机方式和联机方式两种。1.脱机控制方式所谓脱机作业控制方式就是把对作业进行控制的意图连同程序和数据一起输入到计算机系统中,由系统根据该意图来控制作业的运行。这种控制方式一般适用于作业的成批处理,常用在批处理系统中,也称它为“批处理方式”,而把采用批处理控制方式的作业称为“批处理作业”。2.4作业管理的基本功能2.联机控制方式联机作业控制方式就是采用人机对话的方式来交互地控制作业的运行。也称为“交互方式”。不同的系统提供的联机控制方式不同,一般可采用如下几种方式:命令驱动方式、菜单驱动方式和命令文件方式。命令驱动方式该方式就是用户使用操作系统提供的操作控制命令对作业执行进行控制。菜单驱动方式该方式不必事先记住各种命令的拼写和用法,用户从屏幕上的提示选择所需的命令。命令文件方式该方式将键盘操作命令按用户要求执行命令的顺序组成一个命令文件,执行此命令文件,则就自动控制作业的运行。2.4.2作业调度所谓作业调度,即根据某种调度算法从辅存的作业后备队列中选择一个或多个作业进入主存参与竞争处理器,也称为高级调度。作业调度程序应包括以下功能:(1)确定数据结构:系统为每一个已进入系统的作业分配一个作业控制块jcb。作业控制块记录了每个作业在各阶段的情况(包括分配的资源和状态等),作业调度程序就是凭据各个作业的jcb提供的信息对作业进行调度和管理的。(2)确定调度算法:按一定的调度算法,从磁盘中存放的大量作业(后备作业队列)中挑选出一个或几个作业投入运行。即让这些作业由后备状态转变为执行状态。这一工作由作业调度程序完成,该程序在适当的时候按一定的调度原则从后备作业中挑选出若干个作业投人运行。作业调度程序的调度原则和调度时机通常与系统的设计目标有关,并由许多因素决定。为此,在设计作业调度程序时,必须综合平衡各种因素,确定出合理的调度算法。(3)分配资源:为被选中的作业分配运行时所需要的系统资源,如主存和外部设备等。作业调度程序在调度一个作业进入主存时,必须为该作业建立相应的进程,并且为这些进程提供所需的资源。至于处理机这一资源,作业调度程序只保证被选中的作业获得使用处理机的资格,而对处理机的分配工作则由进程调度程序来完成。(4)善后处理:在一个作业执行结束时,作业调度程序输出一些必要的信息(例如执行时间、作业执行情况)等,然后收回该作业所占用的全部资源,撤消与该作业有关的全部进程和该作业的作业控制块。注意:主存和外部设备的分配和释放工作实际上是由存储管理、外设管理程序完成的,作业调度程序只起到控制的作用,即把一个作业的主存、外设要求转给相应的管理程序,由它们完成分配和回收工作。常见的四种作业调度算法(1)先来先服务(FCFS)。按作业进入后备队列的自然顺序,先进入的作业先被选中。其缺点是:若一个长作业在先,那么后来的短作业的等待时间将很长。长(短)作业不是指作业的物理长度,而是指它运行的时间长(短)。(2)短作业优先(SJF)。即优先选中短作业。它可能造成先期到达的长作业有过长的等待。(3)响应比高者优先(HRN——HighestResponseratioNext)。即定义作业的响应比,选中响应比高的作业投入运行。响应比等于作业等待时间除以作业运行时间(用户估计值)。作业等待时间越长,则响应比越高,被选中的可能性越大。每当调度时,要对后备队列中各作业的响应比进行计算,取其中最高者。HRN是FCFS和SJF的折衷,但以计算响应比的时间开销为代价o(4)优先级法。即根据优先级来选取作业,每次总是选取优先级高的作业。确定作业优先级的方法是多种多样的。通常根据作业的缓急程度、用户指定的优先级(在JCB中)、作业的长短、等待时间的多少、资源申请情况等确定一个优先级计算公式。优先级法可覆盖前面三种算法。例如,可以加大短作业的权值,短作业的优先级就变得高起来,得到优先调度。如何来设定优先级别,是一个关键。前三种算法用户单道批处理系统,优先级调度算法用于多道批处理系统。由于作业调度与进程调度基本一致,这些具体的算法详见第四章。例如对上面的一批作业,若系统采用多道程序设计技术,对打印机采用静态分配,忽略设备工作时间和系统进行调度所花的开销,计算它们的调度次序。FCFS作业名提交时间运行时间需要主存量申请打印机数量P110:0025Min15K2台P210:2030Min60K1台P310:3010Min50K3台P410:3520Min10K2台P510:4015Min30K2台所谓用户与操作系统的接口是系统为用户使用计算机提供的手段和方法。操作系统为用户提供了两类接口:作业控制一级接口和程序一级接口,所有计算机用户都是通过这些接口和操作系统联系。2.5.1作业控制一级的接口作业控制一级的接口主要使用操作系统提供的各种命令和菜单方式直接控制作业运行。用户可以用作业控制语言写出控制作业执行的作业说明书,也可以从键盘上输入操作控制命令,操作系统可根据控制说明书或命令要求对作业进行控制执行。例如,UNIX的shell语言,MS-DOS的批处理语言等。Lp.exe,cc,masm.exe,link.exe,2.5用户与操作系统的接口2.5.2程序一级的接口程序一级的接口是给用户在编制程序时使用计算机资源提供的一种手段——系统调用(由系统提供系统调用命令)。用户在编制程序时使用这些系统调用命令请求操作系统提供服务。例如:open,read2.5.3程序工作状态在计算机系统中存在两类不同的程序:一类是系统程序,另一类是用户程序。用户程序必须在系统程序的控制和管理下运行。为了使计算机有条不紊地工作,保证系统的安全在运行过程中应该给予区别,把用户程序工作的状态称为目态,将系统程序工作的状态称为管态。把只允许管理程序使用的指令称为特权指令,特权指令只能在管态下使用。常用的特权指令有对外使用设备的指令、访问程序状态的指令、存取特殊寄存器的指令。系统程序在管态下运行既可以使用目态指令也可以使用特权指令。用户程序在目态下运行只能使用目态指令。2.5.4系统调用所谓系统调用,就是操作系统提供给编程人员的唯一接口。系统调用命令分类系统提供的系统调用命令越多,系统的功能越强,用户使用起来也就越方便。系统调用命令通常分为以下几类:(1)与文件相关的命令。如创建文件、打开文件、读写文件、关闭文件等;(2)与进程相关的命令。如进程创建、撤消、唤醒以及进程间通信等;(3)与系统状态有关的命令。如取日历时间、取或设置终端信息等;(4)与资源相关的命令(在UNIX系统中设备归入文件类)。如请求或释放指定大小的主存空间等。系
本文标题:第二章 作业管理
链接地址:https://www.777doc.com/doc-3799279 .html