从用户的角度看,作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。例如,对于用户编制的源程序,需经过对源程序的编译、连接编辑或连接装入及运行产生计算结果。这其中的每一个步骤,常称为作业步,作业步的顺序执行即完成了一个作业。
从系统的角度看,作业则是一个比程序更广的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是占据内存的基本单位。
操作系统中用来控制作业的进入、执行和撤销的一组程序称为作业管理程序,这些控制功能也能通过作业步细化和进程的执行来实现。
用户的作业可以通过直接的方式,由用户自己按照作业步顺序操作;也可以通过间接的方式,由用户率先编写的作业步依次执行的说明,一次交给操作系统,由系统按照说明依次处理。前者称为联机方式,后者称为脱机方式。
一般操作系统提供两种作业控制方式:一种为联机方式,另一种为脱机方式。
(1)联机方式。联机方式是通过直接输入作业控制命令,提交用户作业,运行用户作业。用户作业的提交是通过终端依次键入操作命令或可执行程序名提出的运行请求,系统做出相应的处理,直至完成一个作业的计算要求。
命令的输入有两种方式。一种是交互式输入,用户每键入一条命令,操作系统接收命令,解释执行然后等待用户键入下一条命令,直到作业完成为止。另一种是连续批处理输入,用户键入一条命令,这条命令执行还未完成(让这条命令在后台运行),用户又可键入下一条命令,而连续键入若干命令形成命令串,由操作系统自动地对这些命令逐个取出并解释执行多行,最后给出计算结果。
(2)脱机方式。脱机方式是通过作业控制语言(也称作业控制命令),编写用户作业说明书。这种方式中,用户不直接干预作业的运行,而是把作业与作业说明书一起交给系统,当系统调度到这个程序时,由操作系统根据作业说明书对其中的作业控制语言和命令解释执行。
早期的脱机作业方式是由操作员接收用户的请求再提交给系统的。现代操作系统提供了让用户经终端把作业和作业说明书直接提交给系统的方式。
一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完成4个状态。其状态转换如图1-14所示。
(1)提交状态。作业由输入设备进入外存储器(也称输入井)的过程称为提交状态。处于提交状态的作业,其信息正在进入系统。
(2)后备状态。当作业的全部信息进入外存后,系统就为该作业建立一个作业控制块(Job Control Block,JCB)。系统通过JCB感知作业的存在。JCB主要内容包括作业名、作业状态、资源要求、作业控制方式、作业类型及作业优先权等。
(3)执行状态。一个后备作业被作业调度程序选中而分配了必要的资源并进入了内存,作业调度程序同时为其建立了相应的进程后,该作业就由后备状态变成了执行状态。
(4)完成状态。当作业正常运行结束,它所占用的资源尚未全部被系统回收时的状态为完成状态。
图1-14 作业的状态及其转换
处理机调度通常分为三级调度:高级调度、中级调度和低级调度。
(1)高级调度。高级调度也称为作业调度。高级调度的主要功能是在批处理作业的后备作业队列中选择一个或者一组作业,为它们建立进程,分配必要的资源,使它们能够运行起来。
(2)中级调度。中级调度也称为交换调度。中级调度决定进程在内外存之间的调入、调出。其主要功能是在内存资源不足时将某些处于等待状态或就绪状态的进程调出内存,腾出空间后,再将外存上的就绪进程调入内存。
(3)低级调度。低级调度也称为进程调度。低级调度的主要功能是确定处理器在就绪进程中的分配。
作业调度主要完成从后备状态到执行状态的转变及从执行状态到完成状态的转变。
作业调度算法有许多种。与进程调度相似,调度算法有的适于单道系统,有的适于多道系统。作业调度算法有:
(1)先来先服务。按作业到达的先后次序调度,它不利于短作业。
(2)短作业优先(Short Job First,SJF)。按作业的估计运行时间调度,估计运行时间短的作业优先调度。它不利于长作业,可能会使一个估计运行时间长的作业迟迟得不到服务。
(3)响应比高者优先(Highest Response Ratio Next,HRRN)。综合上述两者,既考虑作业估计运行时间,又考虑作业等待时间,响应比是:
HRRN =(估计运行时间+等待时间)/估计运行时间
(4)优先级调度。根据作业的优先级别,优先级高者先调度。
用户接口也称为用户界面,其含义有两种,一种是指用户与操作系统交互的途径和通道,即操作系统的接口;另一种是指这种交互环境的控制方式,即操作环境。
(1)操作系统的接口。操作系统的接口又可分成命令接口和程序接口。命令接口包含键盘命令和作业控制命令;程序接口又称为编程接口或系统调用,程序经编程接口请求系统服务,即通过系统调用程序与操作系统通信。系统调用是操作系统提供给编程人员的唯一接口。系统调用对用户屏蔽了操作系统的具体动作而只提供有关功能。系统调用大致分为设备管理、文件管理、进程控制、进程通信和存储管理等。
(2)操作环境。操作环境支持命令接口和程序接口,提供友好的、易用的操作平台。操作系统的交互界面已经从早期的命令驱动方式,发展到菜单驱动方式、图符驱动方式和视窗操作环境。