310 likes | 503 Views
第二章 作业管理. 主讲:陈笑蓉 贵州大学计算机科学与技术学院. 作业的基本概念 作业管理的基本功能 调度 控制 :输入 作业的状态及作业控制块 用户与操作系统的接口 命令级 程序 级. 作业 在一次应用业务处理过程中,从输入开始到运行结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个 作业 。也可以说 操作系统为用户服务。用户交给计算机做的工作称为作业 . 作业步 一个作业一般可以分成几个必要顺序处理的工作步骤,称为作业步 . 例如一个用高级语言编写的用户作业,在计算机上运行要分成三步 : 第一步编译。
E N D
第二章作业管理 主讲:陈笑蓉 贵州大学计算机科学与技术学院
作业的基本概念 • 作业管理的基本功能 • 调度 • 控制 :输入 • 作业的状态及作业控制块 • 用户与操作系统的接口 • 命令级 • 程序 级
作业 • 在一次应用业务处理过程中,从输入开始到运行结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。也可以说 操作系统为用户服务。用户交给计算机做的工作称为作业. • 作业步 • 一个作业一般可以分成几个必要顺序处理的工作步骤,称为作业步. • 例如一个用高级语言编写的用户作业,在计算机上运行要分成三步: • 第一步编译。 • 第二步将编译后的主程序中所用到的库程序和子程序都连接装配成一个完整的程序, • 第三步才是运行该装配好的程序。 • 由此可看出,前一个作业步的处理结果可作为后一个作业步的输入文件。每一个作业步都有一个相应的执行程序来完成的 。 2.1 作业的定义
下面我们以在联想—PC上用UNIX系统控制时,其作业加工的步骤为例:下面我们以在联想—PC上用UNIX系统控制时,其作业加工的步骤为例: (1) 编辑:$ vi Program . c 调用全屏幕编辑程序Vi,编辑一个用C语言编写的源程序。 (2) 编译:$ cc -c Program . c 用编译程序cc -c将源程序Program . c编译成目标程序文件 program.o。 (3) 链接:$ cc Program . o –o Program.out 用cc编译链接程序将其目标模块和所使用的各种应用模块 ( 库文件)连接起来构成一个可执行的文件Program .out。 (4) 执行:$ Program 执行Program .out文件。 上述几个步骤的总和就是一个文件,每个步骤称为作业步。
作业组成 • 有些作业由程序、数据和作业说明书组成。用批处理控制方式组织的作业,在作业进入系统之前,程序员除了要准备好源程序和初始数据外,还必须用作业控制语言来书写一份作业控制说明书,系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。 • 在批处理系统中,把一批作业依次放置在相应的输入设备上,在操作系统的控制下,依次将它们输入辅助存储器中,这样就形成了一个作业流,也称输入流。
2.2作业的组织 • 作业由程序、[数据]、作业说明书三部分组成。 程序和数据完成用户所要求的业务处理工作。作业说明书体现用户的控制意图。 • 作业说明书主要包括三方面内容: 作业基本情况描述 作业名 用户名 所使用的编程语言名 允许最大处理时间 等等 控制方式 操作顺序 作业的控制描述 出错处理 等等
要求处理的时间 内存空间 资源要求描述 外设类型和数量 处理机优先级 库函数或实用程序 等等 作业说明书方式主要用在批处理系统中。
作业控制块JCB(job control block) 所谓作业控制块是记录与该作业有关的各种信息的登记表,其内容由作业操作说明书中取得。一个作业的作业控制块(JCB)是该作业存在的唯一标志。它包括该作业的标识信息、状态信息、调度参数、资源需求和其它控制信息。从而操作系统通过该表了解到作业要求,并分配资源和控制作业中程序和数据的编译,链接装入和执行等。 JCB随着作业进入而建立,其内容由作业控制说明书中得到。JCB是作业存在于系统的标志,作业进入系统时,则为之建立JCB,当作业退出系统时,则其JCB也被撤消。 作业控制块如下图所示。
用户名 作业名 语言类 用户对资源请求 内存需求量 外设类型、台数 要求运行时间 最迟完成时间 资源使用 进入系统时间 开始运行时间 已运行时间 内存地址 外设名 作业类型级别 作业状态 作业控制方式 作业类型 优先权 其它 作业控制块如图所示
2.3作业的建立 2.3.1怎样建立一个作业? 建立一个作业必须把该作业所包含的程序和数据输入到计算机的外部存储设备上,而且还要由作业注册程序在系统中为该作业申请建立起一个相应的作业控制块。 即作业的建立过程包括两个子过程: 1、作业的输入; 2、作业控制块的建立。
2.3.2 作业的输入方式 1、联机输入方式 2、脱机输入方式 外围设备 主机 联机 低档PC机 后援存储器 主机 后援存储器 高速外设
外 存 通 道 输入装置 通 道 输出装置 输入装置 输出装置 输入井 输出井 1、负责从外设把信息读入缓冲区。 2 负责把缓冲区的信息送到外存输入井中。 通 道 输入管理模块 输出管理模块 主机系统 Spooling 系统(外围设备同时联机操作)
内存 阻塞 外存 外存 后备状态 完成状态 就绪 运行 作业调度 终止作业 进程调度 2.3.4 JCB的建立 在系统把作业信息输入到外存输入井后,还要根据作业说明书内容和有关作业信息在外存中建立作业控制块。 1作业的状态 一个作业从进入系统到运行结束,一般需要经历“收容”、“运行”、“完成”三个阶段:即在外存上等候调度的阶段;进入内存运行阶段;运行结束阶段。把这三个阶段分别用三种状态来表示:“后备状态”、“执行状态”、“完成状态”。
• 后备状态 操作员把用户提交的作业从输入设备输入到外存(磁盘的输入井)之后,由作业注册程序在系统中为该作业申请建立起一个相应的作业控制块,并把它加入到后备作业队列中,等候作业调度程序调度。 • 运行状态 一个作业被作业调度程序选中后,程序装入内存,便进入执行状态,它是以进程的面貌出现,在内存中可能处于就绪状态,或者因获得处理机而处于运行状态,或因等待某个事件发生而处于阻塞状态。 • 完成状态 当作业正常运行结束或发生错误异常结束时,作业进入完成状态。此时,由系统的“终止作业”程序将其作业控制块从现行作业队列中除去,并负责回收资源。
2.4 作业管理的基本功能 作业管理的主要任务是根据系统或者用户的要求,对作业实行合理的组织和有效的控制,使之有条不紊地工作。主要包括两个基本功能:作业调度和作用控制。 2.4.1 作业控制 作业控制包括控制作业的输入,执行以及在执行过程中如果出现故障如何处理,计算结果的输出等。 作业控制是用户和操作系统的接口,作业控制的方式有脱机方式和联机方式两种。 1.脱机控制方式 所谓脱机作业控制方式就是把对作业进行控制的意图连同程序和数据一起输入到计算机系统中,由系统根据该意图来控制作业的运行。 这种控制方式一般适用于作业的成批处理,常用在批处理系统中,也称它为“批处理方式”,而把采用批处理控制方式的作业称为“批处理作业”。
2.联机控制方式 联机作业控制方式就是采用人机对话的方式来交互地控制作业的运行。也称为“交互方式”。 不同的系统提供的联机控制方式不同,一般可采用如下几种方式: 命令驱动方式、菜单驱动方式和命令文件方式。 命令驱动方式 该方式就是用户使用操作系统提供的操作控制命令对作业执行进行控制。 菜单驱动方式 该方式不必事先记住各种命令的拼写和用法,用户从屏幕上的提示选择所需的命令。 命令文件方式 该方式将键盘操作命令按用户要求执行命令的顺序组成一个命令文件,执行此命令文件,则就自动控制作业的运行。
2.4.2 作业调度 所谓作业调度,即根据某种调度算法从辅存的作业后备队列中选择一个或多个作业进入主存参与竞争处理器,也称为高级调度。 • 作业调度程序应包括以下功能: • (1)确定数据结构: 系统为每一个已进入系统的作业分配一个作业控制块jcb。作业控制块记录了每个作业在各阶段的情况(包括分配的资源和状态等),作业调度程序就是凭据各个作业的jcb提供的信息对作业进行调度和管理的。
(2)确定调度算法: 按一定的调度算法,从磁盘中存放的大量作业(后备作业队列)中挑选出一个或几个作业投入运行。即让这些作业由后备状态转变为执行状态。这一工作由作业调度程序完成,该程序在适当的时候按一定的调度原则从后备作业中挑选出若干个作业投人运行。作业调度程序的调度原则和调度时机通常与系统的设计目标有关,并由许多因素决定。为此,在设计作业调度程序时,必须综合平衡各种因素,确定出合理的调度算法。 • (3)分配资源: 为被选中的作业分配运行时所需要的系统资源,如主存和外部设备等。作业调度程序在调度一个作业进入主存时,必须为该作业建立相应的进程,并且为这些进程提供所需的资源。至于处理机这一资源,作业调度程序只保证被选中的作业获得使用处理机的资格,而对处理机的分配工作则由进程调度程序来完成。
(4)善后处理: 在一个作业执行结束时,作业调度程序输出一些必要的信息(例如执行时间、作业执行情况)等,然后收回该作业所占用的全部资源,撤消与该作业有关的全部进程和该作业的作业控制块。 • 注意:主存和外部设备的分配和释放工作实际上是由存储管理、外设管理程序完成的,作业调度程序只起到控制的作用,即把一个作业的主存、外设要求转给相应的管理程序,由它们完成分配和回收工作。
常见的四种作业调度算法 • (1)先来先服务(FCFS)。按作业进入后备队列的自然顺序,先进入的作业先被选中。其缺点是:若一个长作业在先,那么后来的短作业的等待时间将很长。长(短)作业不是指作业的物理长度,而是指它运行的时间长(短)。 • (2)短作业优先(SJF)。即优先选中短作业。它可能造成先期到达的长作业有过长的等待。 • (3)响应比高者优先(HRN——Highest Response ratio Next )。即定义作业的响应比,选中响应比高的作业投入运行。响应比等于作业等待时间除以作业运行时间(用户估计值)。作业等待时间越长,则响应比越高,被选中的可能性越大。每当调度时,要对后备队列中各作业的响应比进行计算,取其中最高者。HRN是FCFS和SJF的折衷,但以计算响应比的时间开销为代价o
(4)优先级法。即根据优先级来选取作业,每次总是选取优先级高的作业。确定作业优先级的方法是多种多样的。通常根据作业的缓急程度、用户指定的优先级(在JCB中)、作业的长短、等待时间的多少、资源申请情况等确定一个优先级计算公式。(4)优先级法。即根据优先级来选取作业,每次总是选取优先级高的作业。确定作业优先级的方法是多种多样的。通常根据作业的缓急程度、用户指定的优先级(在JCB中)、作业的长短、等待时间的多少、资源申请情况等确定一个优先级计算公式。 • 优先级法可覆盖前面三种算法。例如,可以加大短作业的权值,短作业的优先级就变得高起来,得到优先调度。 • 如何来设定优先级别,是一个关键。 • 前三种算法用户单道批处理系统,优先级调度算法用于多道批处理系统。由于作业调度与进程调度基本一致,这些具体的算法详见第四章。
作业名 提交时间 运行时间 需要主存量 申请打印机数量 P1 10:00 25Min 15K 2台 P2 10:20 30Min 60K 1台 P3 10:30 10Min 50K 3台 P4 10:35 20Min 10K 2台 P5 10:40 15Min 30K 2台 例如 • 对上面的一批作业,若系统采用多道程序设计技术,对打印机采用静态分配,忽略设备工作时间和系统进行调度所花的开销,计算它们的调度次序。 • FCFS
2.5 用户与操作系统的接口 所谓用户与操作系统的接口是系统为用户使用计算机提供的手段和方法。操作系统为用户提供了两类接口:作业控制一级接口和程序一级接口,所有计算机用户都是通过这些接口和操作系统联系。 2.5.1 作业控制一级的接口 作业控制一级的接口主要使用操作系统提供的各种命令和菜单方式直接控制作业运行。用户可以用作业控制语言写出控制作业执行的作业说明书,也可以从键盘上输入操作控制命令,操作系统可根据控制说明书或命令要求对作业进行控制执行。例如,UNIX的shell语言,MS-DOS的批处理语言等。Lp.exe, cc, masm.exe, link.exe,
2.5.2 程序一级的接口 程序一级的接口是给用户在编制程序时使用计算机资源提供的一种手段——系统调用(由系统提供系统调用命令)。用户在编制程序时使用这些系统调用命令请求操作系统提供服务。例如:open,read 2.5.3 程序工作状态 在计算机系统中存在两类不同的程序:一类是系统程序,另一类是用户程序。用户程序必须在系统程序的控制和管理下运行。为了使计算机有条不紊地工作,保证系统的安全在运行过程中应该给予区别,把用户程序工作的状态称为目态,将系统程序工作的状态称为管态。 把只允许管理程序使用的指令称为特权指令,特权指令只能在管态下使用。常用的特权指令有对外使用设备的指令、访问程序状态的指令、存取特殊寄存器的指令。系统程序在管态下运行既可以使用目态指令也可以使用特权指令。用户程序在目态下运行只能使用目态指令。
2.5.4 系统调用 • 所谓系统调用,就是操作系统提供给编程人员的唯一接口。 • 系统调用命令分类 系统提供的系统调用命令越多,系统的功能越强,用户使用起来也就越方便。 系统调用命令通常分为以下几类: • (1)与文件相关的命令。如创建文件、打开文件、读写文件、关闭文件等; • (2)与进程相关的命令。如进程创建、撤消、唤醒以及进程间通信等; • (3)与系统状态有关的命令。如取日历时间、取或设置终端信息等; • (4)与资源相关的命令(在UNIX系统中设备归入文件类)。如请求或释放指定大小的主存空间等。
用户程序 用户层 内核层 系 统 调 用 接 口 进 程 控 制 子 系 统 文 件 子 系 统 进程内部通信 进程调度 高速缓冲 内存管理 字符设备 块设备 设备驱动器 硬 件 控 制 内核层 硬件层 硬 件 UNIX系统内核框图
系统调用的处理过程 当用户使用系统调用时,产生一条相应的指令,处理机在执行到该条指令时,发生相应的中断,并发出有关信号给该处理机构。该处理机构在收到了处理机发来的信号之后,启动相关的处理程序去完成该系统调用所要求的功能。 在系统中为控制系统调用服务的机构称为陷阱(trap)处理机构。 与此相对应,把由于系统调用引起处理机中断的指令称为陷阱指令。在操作系统中,每个系统调用都对应一个事先给定的功能号,例如:0,1,2,3等。在陷阱指令中必须包括对应系统调用的功能号。
为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口地址都与相应的系统子程序名对应起来。然后,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关子程序执行。为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口地址都与相应的系统子程序名对应起来。然后,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关子程序执行。 由于在系统调用处理结束之后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理之前,陷阱处理机构还需保存处理机现场。再者,在系统调用处理结束之后,陷阱处理机构还要恢复处理机现场。在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。系统调用的处理过程如图所示:
用户程序 系统子程序 陷阱指令 陷阱处理机构 System call 入口地址表 A0 sub0 1、保护处理机现场; 2、取系统调用功能号并寻找子程序入口; 3、返回 A1 sub1 … Ai subi … An subn
系统调用的参数传递问题 系统调用有时需要传递给系统子程序以不同的参数。而且系统调用的执行结果也要以参数形式返回给用户程序。那么,怎样实现用户程序和系统程序之间的参数传递呢? 1、 由陷阱指令自带参数。一般来说,一条陷阱指令的长度总是有限的,而且,该指令还要携带一个系统调用的功能号,从而,陷阱指令只能自带极有限的几个参数进入系统内部。 2、通过有关通用寄存器来传递参数。显然,这些寄存器应是系统程序和用户程序都能访问的。不过,由于寄存器长度也是较短的。从而无法传递较多的参数。因此,在系统调用较多的系统中,大多在内存中开辟专用堆栈区来传递参数。
小结 • 作业的基本概念:组织 • 作业的控制方式:联机控制和脱机控制两种控制方式 • 作业管理的两种基本功能:作业调度和作业控制 • 作业声明期内的三种不同状态:后备状态、运行状态与完成状态 • 操作系统为作业控制提供给用户使用的两级接口 本章重点:作业的基本概念、控制方式、状态变换和调度算法(第四章)。 本章难点: 要求: 作业: 简述在Windows计算机系统上完成“计算并输出n的阶层”作业的各详细步骤 4,5,7,9