第2章用户接口与作业管理操作系统被看成是用户与计算机裸机之间的接口,接口有时又称为界面,意指用户是通过“界面”看待操作系统的,通过“接口”来使用操作系统的。用户通过操作系统的帮助,可以快速地、有效地和安全可靠地使用计算机系统中的各类资源。那么,用户是通过什么手段来使用操作系统呢?即用户与操作系统的接口是什么?通常,用户与两类语言打交道:一是程序设计语言,它是用户编写程序的手段和工具,它的强弱通过数据结构和语句类型来表征;二是操作命令语言,它是用户与系统进行通信的手段和工具,用户通过操作命令语言让系统运行他的作业,操作系统功能的强弱通过命令语言和命令种类来表征。目录2.1作业的基本概念2.2批处理作业的管理2.3交互式作业的管理2.4用户和操作系统之间的接口2.1作业的基本概念2.1.1作业的定义作业(JOB)是操作系统中的一个常见的概念,我们把用户要求计算机系统处理的一个计算问题称为一个“作业”。它由一个完整的用户程序、数据和作业说明书三部分组成。程序是问题求解的算法描述;数据是程序加工的对象;作业说明书是告诉操作系统本作业的程序和数据按照什么样的数据要求使之执行。用户要求处理问题时,应首先用某种程序设计语言对要处理的问题编制源程序,再准备好初始数据,然后把编制好的源程序和准备好的数据输入到计算机系统中,在操作系统的控制下,经过编译、装配、运行等加工步骤,就能得到处理结果。2.1.1作业的定义作业步任何一个作业都要经过若干加工步骤才能得到结果,我们把作业中的每一个相对独立的加工步骤称为一个“作业步”。作业流在批处理系统中,把若干个作业按某种次序合成一批而形成作业流。作业这一概念一般用于早期批处理系统和现在的大型机、巨型机系统中,对于广为流行的微机和工作站系统,人们一般不太使用作业的概念。2.1.2作业的控制方式作业的类别根据系统对作业管理方式的不同,用户作业可以分成两类:批量型和终端型;根据对作业的控制方式又可把作业分为脱机作业和联机作业两类。脱机作业是利用作业说明书实现作业的自动控制;而联机作业是利用控制台键盘操作命令直接控制作业的运行。作业的控制方式用户编好源程序后,还需要考虑以下几个问题:①作业如何输入到系统中去;②如何进行汇编或编译以及如何进行链接并装入内存;③运行过程中出现故障如何处理;④运行结束后应如何处理等。作业的控制方式为此,操作系统必须对作业运行的全过程加以控制。下面简要介绍作业的控制方法。(1)批处理方式用户使用操作系统提供的“作业控制语言”对作业执行的控制意图写好一份“作业控制说明书”,连同改作业的与源程序和初始数据一同提交给计算机系统,操作系统按照用户说明的控制意图来控制作业的执行。又称为“自动控制方式”,“脱机控制方式”,“批处理方式”(2)交互方式交互式作业有一个输入(编辑)、编译、运行、调试、再编译、再运行的反复过程。又称为“联机控制方式”2.2批处理作业的管理2.2.1批处理作业的组织2.2.2批处理作业的输入输出2.2.3批处理作业的调度2.2.4批处理作业的控制2.2.1批处理作业的组织一个提交给系统的批量型作业,原则上可以有两大部分。一部分是作业申请,它包括作业情况(用户名、作业名、使用的编程语言、作业的控制方式、作业的完成时间等信息);另一部分是作业体,即用户向系统提交的一个作业实体。由下述四部分组成:(1)用系统给定的作业控制命令书写的作业说明书;(2)用系统提供的某种程序设计语言书写的源程序或经编译后的目标程序或已经装配好的目标程序;(3)程序处理的数据信息;(4)修改信息(若无修改,则无此部分)。上述每一部分组成一个输入文件,每个输入文件的首部设置一个标题,向系统提供有关文件的一些信息。如:用户名、文件名、类型、所需内存、记录长度以及校验标志等。2.2.2批处理作业的输入输出1.作业的状态和处理流程2.批处理作业的输入输出1.作业的状态和处理流程一个作业进入系统到运行结束要经历收容、执行、完成三个阶段,相应的作业处于后备、执行、完成三种不同的状态。后备状态:作业通过脱机输入输出或调用SPOOLing系统输入进程,将作业输入到直接存取的后援存储器上,为作业注册并为其建立作业控制块,把它加入到后备作业队列中,等待作业调度程序调度,我们称此时作业处于后备状态。执行状态:一个作业被作业调度程序选中,并分配了必要的资源,建立了相应的进程后就进入了执行状态。完成状态:当作业正常运行结束或因发生错误而终止时作业就进入了完成状态。1.作业的状态和处理流程后备状态运行状态完成状态1.作业的状态和处理流程作业登录spooling输入作业调度作业控制作业撤离spooling输出作业的状态转换2.批处理作业的输入输出在早期的批处理系统中,由于外设与主机的速度相差悬殊,为了提高主机的工作效率,采用预输入方式。下图给出了早期批处理系统的输入输出处理过程。2.批处理作业的输入输出输出结果输出结果读卡机外围机后援存储器主机打印机早期批处理系统的输入输出过程示意图为了克服脱机输入输出方式的缺点,在通道技术和多道程序设计技术发展的基础上,出现了SPOOLing系统(SimultaneousPeripheralOperationsQnLine),意为外围设备同时联机操作,有时也称为“假脱机系统”。在这种系统中,作业的输入输出由主机和通道承担,多台外围设备通过通道或DMA器件与主机或外存连接起来。SPOOLing系统以硬件通道为基础,与操作系统有关功能相结合,实现信息的输入输出。从硬件来讲有一组功能很强的通道,从软件来讲有两个程序模块,分别是输入程序模块和输出程序模块。输入程序模块的功能是在输入时用于录入作业,使慢速设备上的作业流收录到输入井上,供处理机调入主存处理。输出程序模块的功能是从输出井中输出作业及计算结果等有关信息。下图是SPOOLing系统的示意图。输入设备输入设备输入设备····通道道道通Tong通道道道通Tong····输出设备输出设备输出设备通道Spooling输入程序模块Spooling输出程序模块SPOOLing系统示意图SPOOLing系统它是SimultaneousPeripheralOperationOn-Line(即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节。SPOOLing系统主要包括以下三部分:(1)输入井和输出井:这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输入时的磁盘,用于收容用户程序的输出数据。(2)输入缓冲区和输出缓冲区:这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存有输入设备送来的数据,以后在传送到输出井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。(3)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要求的数据有输入设备到输入缓冲区,再送到输入井。当CPU需要输入设备时,直接从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输入的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。SPOOLing技术的特点:(1)提高了I/O速度.从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾.(2)设备并没有分配给任何进程.在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表.(3)实现了虚拟设备功能.多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备由此可见,使用通道并行技术,把一个可共享的磁盘装置,改造成若干台输入设备或若干台输出设备,使主机和通道并行工作(有关通道和DMA将在第5章设备管理中介绍)。该系统的特点是:输入/输出设备与主机并行工作,作业的调度灵活,一个小的作业一旦进入了输入井,便会很快被调度程序选中而运行。2.2.3批处理作业的调度1.作业调度作业调度是指从后备作业队列中选取某个作业投入主存参与多道运行。(1)作业调度的主要功能作业调度是指操作系统根据允许并行工作的道数以及作业队资源的请求情况,按照一定的算法从输入井中选取作业并把它们装入主存储器,使他们有机会获得处理机运行。作业调度程序的功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法选取作业。设计作业调度算法时应考虑的原则①每天尽可能运行更多的作业;则应该优先考虑短作业。②使处理机保持繁忙;应该优先考虑计算量大的作业,即计算型作业。③使I/O设备保持繁忙;应该优先考虑I/O繁忙的作业,即I/O型作业。④对所有的作业都是公平合理的。这就要求对每个作业公平对待,不无故地或无限期地拖延一个作业的执行。选择调度算法时应该考虑的因素如下①所选择的调度算法与系统的整体设计目标一致;如,批处理系统应该考虑如何增加系统的吞吐能力;分时系统应该考虑的是响应时间;在实时系统中则要求及时处理。②注意系统资源的均衡使用,使I/O繁忙的作业与CPU繁忙的作业搭配调度。③作业应该在规定的时间内完成,缩短作业的周转时间以提高衡量调度性能的指标。调度性能的衡量一个以批处理为主的系统,为吸引更多的用户使用系统,应力求缩短这批用户作业的周转时间,因此衡量调度性能的优劣用作业的平均周转时间和平均带权周转时间这两个性能指标。作业的平均周转时间T用下面的公式计算:T=(∑Ti)/n其中:1≤i≤n;n—--为作业流中的作业数;Ti----为作业i周转时间;Ti=Tci-Tsi;Tci---为作业i完成时间;Tsi--为作业i提交时间作业的带权周转时间W用下面的公式计算:W=(∑Wi)/n其中:1≤i≤n;Wi=Ti/Tri;Ti---为作业的周转时间;Tri---为作业的运行时间。单道批处理系统的作业调度算法(1)先来先服务(FCFS)调度算法(2)最短作业优先(SJN)调度算法(3)响应比高者优先(HRN)调度算法(4)优先数调度算法(5)均衡调度算法2.2.4批处理作业的控制一个批处理控制方式的作业被作业调度程序选中后,操作系统按照用户组织作业时所规定的控制要求去控制作业的执行。一个作业往往要分几个作业步执行,一般来说,总是按作业步的顺序控制作业的执行,即一个作业步执行结束后,就顺序取下一个作业步继续执行,直到最后一个作业步完成,整个作业就执行结束。1.作业控制卡方式2.作业说明书方式1.作业控制卡方式作业控制卡方式是一种早期的脱机作业控制方式。在这种方式下,用户将程序、数据以及操作控制意图穿孔在若干张卡片上。为了与源程序的语句卡和数据卡相区别,往往在作业控制卡的第一列上标有区分符,其余部分标有表示控制的信息,然后将作业控制卡插入程序卡的适当位置。作业控制卡方式的主要缺点是使用不够灵活,控制卡片分散,修改麻烦,使用起来很不方便,执行时只能顺序执行,不能跳越或重复执行,目前已经基本被淘汰。2.作业说明书方式作业说明书方式在使用上比控制卡方式灵活,功能也更强。这种方式在使用时首先用系统提供的作业控制语言编写作业说明书,作业说明书中描述了用户对作业的控制意图。然后将作业说明书和程序以及数据等一同提交给系统,系统将按作业说明书所述的意图处理作业,直至结束。2.作业说明书方式是否是是否作业调度选中某作业查找该作业的说明书取出本作业的第一个作业步且解释执行该作业步正常结束?吗?否说明书完?分析错误并做相应处理作业能继续执行?转向某作业步继续执行取下一个作业步解释执行收回资源撤离该作业结束批处理作业的执行流程2.3交互式作业的管理采用交互方式控制的作业也叫联机作业,联机作业采用人-机会话方式控制作业运行。1.操作