版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章作业管理山东交通学院沈祥玖中国水利水电出版社
第六章作业管理
前面几章我们详细讨论了操作系统的文件管理、存储管理、进程管理和设备管理,这是操作系统对计算机系统软、硬件资源的管理。那么用户如何来使用计算机呢?本章将对这方面的内容加以介绍,也就是作业管理的相关知识说明。
1.作业的概念2.作业调度3.用户与操作系统的接口4.作业控制5.本章小结所谓作业,就是用户在一次运算过程中,或一次事务处理中要求计算机所做的全部工作。用户在使用计算机运算或处理信息时,往往先将自己想做的处理过程用某种程序设计语言表达出来,也就是编制源程序,然后把源程序和初始数据输入到计算机系统,经过编译、连接、运行等步骤后,得到处理结果。
6.1.作业的概念例如用户用C语言编了一个程序,在编辑完源程序之后,为得到程序的运行结果,计算机将做如下处理:首先编译源程序,进行词法、语法的检查,得到相应的目标程序;然后将目标程序连接生成可执行文件;运行这个可执行文件,并输出结果。作业就是严格按照上述次序执行完成的。在处理作业过程中,所经过的如编译、连接、运行等步骤等称为作业步。一个作业的各作业步之间并非相互独立,它们在逻辑上是顺序执行的:上一个作业步的输出是下一个作业步的输入,即前一作业步运行所产生的结果,正好是下一作业步所需要的数据;只有上一个作业步顺利完成,下一个作业步才可继续运行。
若源程序有错,系统在编译过程中会给出编辑中出现的错误,重新修改后,再重新进行编译,如此反复直至编译成功为止。只有编译无错误时才能进行连接装配,连接成功后即可运行程序输出结果。在批处理系统中,常把一批作业安排在输入设备上,然后按某种调度算法依次读入系统中进行相应处理,从而形成一个作业流。作业流中的各作业用专门的标志卡或语句隔开。小系统一般有一个作业流,大系统可以同时有几个作业流。
back作业调度又称为高级调度,它是根据某种调度算法,从后备作业队列中选出若干个作业,为它们分配必要的系统资源后,使之进入内存运行。这个调度过程是由作业调度程序完成的。一旦某个作业被选中,系统就为该作业创建相应的作业进程,并把这些进程交给进程调度程序去调度执行,即进程调度。进程调度又称低级调度。6.2.作业调度
一个作业从提交给系统,一般需要经历“提交”、“收容”、“执行”、“完成”四个阶段,我们将作业在每一阶段所处的状态分别叫做“提交”、“后备”、“运行”、“完成”。这四种状态的转换过程如图6-2-1所示。6.2.1作业的状态及其转换一个作业被提交给机房后或用户通过终端键盘向计算机中键入其作业时所处的状态叫做提交状态。1.提交状态作业由输入设备(如读卡机)进入外存储器的过程叫做收容。输入方式可以是脱机输入或是假脱机输入。当作业的全部信息调入外存后,系统就要为该用户作业建立一个作业控制块(JCB)。JCB包含了对该作业管理控制的必要信息,是以后进行作业调度的依据。一旦收容过程完成,系统就把JCB加入到后备作业队列中等候作业调度程序调度。此时的作业就处于后备状态。2.后备状态在运行过程中,系统对作业进行管理的必要信息。作业名估计执行时间优先数(用于调度)作业说明书文件名程序类型(需调用的系统程序)资源要求:(静态,或中间可以随作业步变化--效率不高;动态分配作业状态:提交、后备、执行、就绪、等待、完成;作业控制表(JCB,JobControlBlock)
作业调度Spooling输入
运行状态
进程调度完成状态
执行
就绪
阻塞图
6-2-1作业状态转换过程
提交收容用户进程调度I/O等待进程一个后备作业被作业调度程序选中,分配了必要的资源,建立一组相应的进程后,此作业就进入执行状态。处于运行状态的作业以进程的方式参与多道程序系统的并发执行,它可以被进程调度程序选中而在处理机上执行;也可能在等待某种事件处于阻塞状态;也可能一切就绪,只等进程调度程序来调度。3.执行状态总之,从宏观上看,它已处于运行状态。为了便于管理,对处于运行状态的作业根据其活动情况又把它分为三种状态:就绪状态、执行状态和阻塞状态。三种状态间的转换,前面进程一章已经介绍过,不再重复。作业就在进程的状态转换过程中,以走走停停的方式前进,直至运行结束。值得注意的是,作业执行过程中,每个作业步结束,作业调度程序都将检查该作业步是否为正常结束。若是正常结束,则继续把下一个作业步投入执行,直到该作业的全部作业步执行完毕。若其中某一个作业步是非正常结束,则停止执行以后的作业步,并给出错误信息。当作业运行结束或因发生错误中途终止时,作业进入完成状态。这时,系统将它的JCB从现行作业队列中删除,并将作业占用的资源收回。然后,系统将作业运行情况及作业输出结果编制成输出文件送入外存。最后,以脱机方式或假脱机方式将该作业的输出文件打印输出。4.完成状态1、作业调度程序完成作业调度功能的程序称为作业调度程序。它通常作为一个进程在系统中执行。6.2.2.作业调度作业调度程序通常具备以下功能:(1)按照某种调度算法从后备作业队列中挑选作业投入运行。(2)为选中的作业分配必要的资源(如主存和外设),并建立有关的进程。(3)记录进入系统的作业情况。通常为每一个作业配置一个作业控制块(JCB),用来记录作业在其生命期各阶段的状况。(4)作业结束时,完成该作业的善后处理工作,如释放资源,撤消该作业的全部进程(PCB表)和作业控制块JCB表等。其中,关键问题是确定作业调度算法,即按照什么原则选取作业投入运行。调度算法的选择与系统追求的目标联系密切,而这些目标往往是相互矛盾的。一般来说,系统所追求的目标主要有如下几个:(1)较高的系统吞吐率,即要求每天处理尽可能多的作业。(2)最高的资源利用率,即使处理机和外部设备得到最充分的利用。(3)使所有用户都感到满意,即对各种作业应公平合理。
显然,为了实现较高的系统吞吐率,系统该选择处理短小的作业,而这势必与目标(3)冲突,因为大作业的用户肯定不满意;如果让大作业运行,这使得CPU的利用率较高,但小作业的等待时间过长,用户会有意见,并且这也与目标(1)矛盾。
因此可以看出,设计一个能满足所有目标的调度算法是不可能的,我们只能根据系统的使用环境来确定使用何种调度算法。实际上,对于一个具体系统来说,如果考虑的因素过多,必然导致调度算法复杂化,增加系统的开销,这样反而不利于提高资源利用率。因此,大多数操作系统都采用比较简单、有效的作业调度算法。操作系统使用的作业调度算法很多,但在实际的系统设计时,一般将那些对系统运行影响较大的关键因素作为调度算法考虑的主要依据。下面只简单介绍几个调度算法。
2、调度算法先来先服务算法是最简单的调度方法。其基本原则是按照作业到达系统的先后次序来选择作业运行。这种算法优先考虑等待时间最长的作业,不管作业运行时间的长短。FCFS策略是属于不可抢占策略。表面看来,对所有作业是公平的,并且一个作业的等待时间是可预测的。但是如果一个大作业到达系统运行时,就会使许多小作业等待很长时间,增加了平均的作业周转时间,因而许多小作业来说,就有失公平了。(1)先来先服务调度算法FCFS按照作业的优先级高低来调度,使高优先级作业优先执行的调度策略称为优先级调度算法。
作业的优先级可以由系统自动地按一定原则赋给它,也可以由系统外部来进行安排,甚至可由用户指定作业的优先级。但在许多采用优先级调度的系统中,通常采用可变优先级策略,即作业的优先级不是固定的,往往随许多因素的变化而变化。(2)优先级调度算法短作业优先调度算法是从作业的后备队列中挑选那些运行时间(估计时间)最短的作业投入内存运行。这样就减小了在后备队列中等待作业数,同时也降低了作业的平均等待时间,提高了系统的吞吐量。
(3)短作业优先调度算法但从另一方面来说,由于各个作业调度的时间变化范围较大,作业(尤其是大作业)的等待时间难以预先估计,因此,对用户而言,作业的完成时间是不确定的。这种调度算法明显偏向短作业,所以某些用户有可能将运行时间估计过低,以争取优先运行。为纠正这一情况,当一个作业的运行时间远远超出其预先估计时,系统将停止这个作业,或对超时部分加价收费。针对短作业优先调度策略的缺点,Hansen提出了最高响应比优先调度策略。这是一个非抢占的调度策略,按照此策略系统为每个后备作业队列中的作业计算响应比,挑选响应比最高的作业投入运行。4)最高响应比优先调度算法作业的响应比计算公式如下:响应比=(等待时间+要求的服务时间)/要求的服务时间由上式可以看出,作业的响应比随着等待时间的增长而提高,只要作业在系统中等待时间足够长,那么它总会有机会获得运行。
这种调度算法,虽然从调度性能来说不如短作业优先的算法好,但是它既照顾了用户到来的先后次序,又考虑了要求系统服务时间的长短。所以,它是一种较好的调度算法。其缺点是,每当调度作业时,要进行响应比的计算,算法相对复杂一些。back我们已经知道,用户是通过操作系统使用计算机的,操作系统是用户和计算机之间的接口。那么用户又是如何使用操作系统的呢?用户是通过什么样的手段和方法取得操作系统的服务呢?换句话说,用户和操作系统之间的接口是什么呢?6.3.用户与操作系统的接口通过前面的学习我们知道,用户为计算机配置操作系统的目的就是希望在操作系统的协助下,用户能够方便、灵活、安全有效地使用计算机,利用其系统资源来解决问题。而要使操作系统提供有效的服务,它就必须支持与用户的通信。这个通信就是指信息的交流:用户请求系统得到特定的服务,而系统把服务的结果提供给用户。
这种通信可以是直接的,如用户可以在终端上以会话方式与系统交互;通信也可以是间接的,如在批处理方式下可以通过提交的作业或程序来实现与系统的通信。操作系统中负责管理这种通信的部分称为用户接口。用户接口是计算机系统与用户之间交互作用和通信的通路。对绝大多数用户而言,一个计算机系统是否好用,是否容易被接受,在很大程度上取决于这个用户接口。操作系统提供了两类接口:一类用于程序一级,就是操作系统提供了一组系统调用命令,用户在程序中可直接用这些系统调用命令向操作系统各种资源要求和服务请求。操作系统则按用户的要求进行资源的分配、回收等一系列工作。另一类用于作业控制一级,就是操作系统提供作业控制语言或操作控制命令,让用户提出对他的作业进行加工的步骤,操作系统按用户的作业控制语句或操作控制命令来控制作业的执行。下面我们分别加以介绍。1、什么是系统调用所谓系统调用,就是用户在程序中调用操作系统所提供的一些子功能。它实际上是操作系统提供给用户获得系统服务的一种手段。系统调用是一种特殊的过程调用,这种调用通常是由特殊的机器指令实现的。6.3.1系统调用系统调用在程序一级上为用户提供与操作系统的接口,使得用户可以通过系统调用请求系统服务。系统调用属于操作系统核心,一条系统调用命令对应操作系统的一个功能模块,做一次系统调用相应地执行一个子程序,这个子程序是属于操作系统核心里的一个子程序。
在高级语言中,当用户程序执行与系统调用相对应的机器指令时,便转入操作系统核心执行,当系统调用对应的子程序执行完后,就再返回用户程序,接着执行下面的部分。因此,执行一条系统调用命令就好像执行了一条功能很强的机器指令。
所不同的是,指令系统的指令是由机器硬件或固件(微程序)解释执行的,而系统调用命令由操作系统核心解释执行。从用户的角度看,操作系统提供了系统调用命令之后,好像扩大了机器的指令系统,使用户感觉处理机的功能更强了,使用也更为方便。因此,人们常把系统调用命令称为广义指令,把包含有广义指令的计算机称为虚拟处理机。用户程序通过程序中的系统调用命令去调用操作系统的服务,虽然系统调用只对应了一条机器指令,但在操作系统内部可能引起多个子程序的嵌套调用。系统调用及返回和系统调用中的子程序嵌套如下图6-3-1所示:
┊系统调用命令
┊┊系统调用命令
┊┊系统调用命令┊
用户程序
系统功能系统子功能系统子功能图
6-3-1系统调用示意图
对于不同的操作系统来说,它们所提供的系统调用的条数、格式和所完成的功能不尽相同,这正如不同型号的计算机有不同的指令系统一样。而一旦一个操作系统设计完成,那么它所提供的系统调用的条数、格式和所完成的功能就确定了。一般来说,操作系统可提供数十条乃至上百条系统调用命令。这些命令用于完成不同的功能,如完成进程控制的、文件管理的、设备操作的、访问系统的等等。1)设备管理:设备的读写和控制;Ioctl 设备配置Open 设备打开Close 设备关闭Read 读设备Write 写设备系统调用的功能2)文件管理:文件读写和文件控制;Open 文件打开Close 文件关闭Read 读文件Write 写文件seek 读写指针定位Creat 文件创建Stat 读文件状态Mount 安装文件系统chmod 修改文件属性3)进程控制:创建、中止、暂停等控制;Fork 创建进程Exit 进程自我终止Wait 阻塞当前进程Sleep 进程睡眠Getpid 读父进程标识4)进程通信:消息队列、共享存储区、socket等通信渠道的建立、使用和删除;5)存储管理:内存的申请和释放;6)系统管理:设置和读取时间、读取用户和主机标识等;gtime 读取时间Stime 设置时间getuid 读取用户标识虽然不同的系统,系统调用命令格式可能有很大的差别,但从用户程序到系统调用的步骤及其执行过程却是基本相同的。当用户程序执行到系统调用命令时,系统就转去执行系统调用的处理程序。2、系统调用的执行过程该处理程序主要完成如下任务:(1)做好执行系统调用命令的准备,将用户程序的执行“现场”保存起来,如各个寄存器的内容,并将系统调用命令中的有关参数放入约定存储单元等。(2)根据系统调用命令的功能号,访问系统调用入口表,找到入口地址,转入执行相应的系统调用子程序。(3)系统调用命令执行完后,把系统恢复到执行系统调用指令之前的状态。这包括恢复“现场”。把系统调用命令的返回参数或参数区首址放入指定的通用寄存器中,以供用户使用。实际上系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令。系统调用命令是操作系统提供给用户使用的程序一级的接口,这给用户使用计算机系统资源带来很大方便。另外,为了组织作业的工作流程和控制作业的运行,操作系统又为用户提供了作业控制级的接口。这类接口针对联机用户和脱机用户又分别做了不同的设置。6.3.2作业级的用户接口它是由一组键盘操作命令组成。用户通过控制台或终端打入操作命令,向系统提出要求。用户每打完一条命令,控制就转入操作系统的命令解释程序,对该命令解释执行,完成指定的操作。之后,控制又转回到控制台或终端,用户又可打入下一条命令。如此反复,直到完成一个作业为止。1.联机用户或交互式用户的接口在微型机系统中,通常把这组键盘操作命令分成两类:(1)内部命令。这类命令的特点是程序短小,使用频繁。因此,在系统启动时,这些命令的实现程序就被引导到内存而且常驻于内存中。命令解释程序常以子程序调用方式来使用它们。(2)外部命令。这类命令的实现程序较长,各自独立地作为一个文件而驻留在磁盘上,只在需要时才从磁盘调入内存后执行。显然,利用键盘操作命令用户可以根据运行情况随时干预自己的作业。因此,这种作业控制方式具有灵活方便的特点,但是,这种方式下系统的资源利用率不太高。
它是由一组作业控制命令(或称作业控制语言)组成。所谓脱机用户,是指用户不能直接干预作业的运行,他必须事先用作业控制命令写成一份作业说明书(或作业控制卡片),连同作业一起提交给系统。当系统调度到该作业时,由操作系统的命令解释程序对作业说明书上的命令逐条解释执行,直至遇到“撤离”命令而停止该作业为止。2.脱机用户或批处理用户的接口作业说明书主要包括作业情况和作业资源要求两方面的内容。前者主要指,用户名、作业名、使用语言、作业控制方式、作业优先级、完成作业的最迟时间等。后者包括内存和外存的空间要求量、输入输出设备的类型、台数、输出量、估计的计算时间等。这种各用户以作业控制命令(或称作业控制语言)编写出作业说明书,然后将各自的作业连同作业说明书一起交给系统的作业控制方式,其优点是作业的操作过程由系统自动调度或由系统操作员干预,因此系统的资源利用率高,系统运行作业的效率高;其主要缺点是用户与系统隔绝,由于用户不可能对运行中产生的所有问题都预料到,因此即使是很小的错误也往往使整个作业中途下机。这样,用户作业的调试周期会较长。综上所述,操作系统与用户的接口有两类:一类是程序级的,即系统调用或称操作系统的编程界面;另一类是作业级的,即键盘操作命令和作业控制命令,或称操作系统的用户界面。
back尽管计算机系统能够按照程序自动地运行,但还是有必要对它进行一些干预,这是因为:(1)程序往往需要经过反复调试才能纠正其语法错误和逻辑错误。因此,在作业的一次运行周期内,应使系统尽可能多地和全面地暴露程序中的错误,并把它们显示出来,这样就可以缩短程序的调试周期。6.4.作业控制(2)程序在运行的过程中,用户往往要对作业的执行步骤进行必要的指挥和干预,例如,如何输入数据,如何进行编译、连接、运行等。(3)在系统出现意外故障,例如出现死锁时,往往需要操作员的干预。(4)程序运行结束时,该如何处理,也需要用户告知系统。用户对作业的这种干预,就是所谓作业控制。作业控制主要有两种方式:脱机作业控制和联机作业控制。在批处理系统中,通常提供这两种控制方式,系统可以通过某种命令在这两种方式之间进行切换。在分时系统中,一般只提供联机控制方式。所谓脱机控制,就是用户将自己对作业的控制意图,连同源程序和数据,甚至包括发生故障时的处理手段,一起输入到系统中去,让系统根据用户的控制意图来控制作业的运行而不再需要用户的干预。6.4.1脱机控制方式实现脱机控制的方法一种是编写作业说明书,另一种是使用作业控制卡。作业说明书和作业控制卡都是用作业控制语言来书写的。作业控制卡是指用户将其控制意图用作业控制语言中的相关控制命令表达出来,穿孔在若干张卡片上(称为作业控制卡),并把它们插入到用户程序和数据卡片之中适当的位置上,一起送入系统,从而控制作业的运行。
从形式上看,控制卡同用户程序和数据卡没有什么不同,但为了区分,常把控制卡的第一列穿上一个标志符,如:“//”或“$”。于是,系统将根据卡片上的信息,以及控制卡片在卡片叠中的位置控制作业的运行。作业控制卡是早期的控制方式,其缺点是控制卡片的放置过于分散,使用不够灵活方便,不便于修改控制要求。作业说明书方式是指用户借助于说明书来表达其对作业的控制意图的一种形式。如前面所述,说明书就是用户根据系统提供的作业控制语言,编写成用于作业控制的类似于源程序的程序。与控制卡方式不同,说明书是集中输入系统的,因此在使用上更加灵活一些,其功能也比控制卡强些。只要系统提供较好的JCL,就容易编制出控制有效的说明书。作业控制语言通常包含以下几类语句:(1)作业描述语句。它们用来向系统说明一个新作业的开始和上一个作业的结束,还给出了作业的属性,如该作业的用户名、用户账号、作业名、作业类别及作业优先数等。
(2)资源说明语句。它们用来说明作业(或作业步)所用设备的逻辑名和对应的物理设备类型,说明作业所用文件的组织方式以及作业对CPU的使用时间限制、存储空间和输出行数的限制。当作业(或作业步)所用的CPU时间或要求的内存量或输出行数超过说明中的最大值时,则系统中断该作业(或作业步)的执行。(3)执行语句。它们用来说明一个作业步的开始,以及该作业步所要执行的程序名及使用的参数,例如进行编译的作业步要指定编译程序名。(4)作业流程控制语句。它们用来说明某个作业步在执行时的流程控制,像发生某事件后应做何处理等,如IF-THEN语句。(5)其他说明。例如是否周期或定时地运行作业等等。不同的操作系统,提供的作业控制语言在语句的格式和种类及其实现等方面各不相同。用户需要使用某个系统来脱机运行作业时,应该仔细阅读该系统的作业控制语言使用说明,针对所要使用的系统编写出正确的作业说明书。所谓联机控制就是采用人机对话的方式来控制作业的运行。由于联机控制能及时地反映作业的运行情况和系统的状态,因此,用户可以根据当前的情况决定下一步应该采取的行动。不同的系统提供的联机控制方式不同,但一般可以提供如下一种或几种方式:即命令驱动方式、菜单驱动方式、会话式程序设计语言方式。6.4.2联机控制方式用户通过终端设备输入一条条命令来控制自己的作业的运行。系统接到用户的指令后,执行系统提供的命令处理程序,对输入的命令进行解释、执行。当命令执行完毕后,显示输出执行的结果,并准备好接收下一条命令。如此反复执行,直到作业运行结束。
1.命令驱动方式命令驱动方式虽然可使用户灵活地控制作业运行,但对初次使用系统的用户来说,需要尽快地熟悉各种命令的格式和功能。近几年许多系统提供了菜单驱动方式,使用菜单驱动方式的好处是:用户可以不用事先记住各种命令的格式、功能以及使用方法,用户可以按照屏幕的提示,像在饭馆选菜一样,控制系统完成各种任务。2.菜单驱动方式菜单驱动方式的缺点是:
由于一个系统中可供选择的功能很多,不可能把所有的功能都列在屏幕上,因此,用户选择一个功能往往要经过多级屏幕。这样不仅系统为屏幕更换付出了较大的时间开销,而且使熟练的用户感到麻烦。因此,有些系统同时提供了命令驱动和菜单驱动这两种方式供用户选择:熟悉系统的用户用命令方式,初学者用菜单方式。上面我们讲的命令驱动方式可以通过键入命令来达到控制作业运行的目的,但是,在某些情况下,用户会需要反
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度创意园区个人租赁合同书3篇
- 2025年度农产品自产自销农村电商扶贫合作合同3篇
- 2025年度汽车维修企业员工绩效考核与激励合同范本3篇
- 二零二五年度网络红人经纪合作合同范本3篇
- 二零二五年度风力发电工程质保金合同规定2篇
- 2025年度公租房合同(含租户信息保密条款)2篇
- 二零二五年度农村墓地墓区照明系统设计与安装协议
- 2025年度文化产业股权置换及合作协议书3篇
- 二零二五年度企业股份分割与股权激励实施协议书2篇
- 二零二五年度消费股东合作协议及创新业务拓展2篇
- 北京市西城区2022-2023学年三年级上学期英语期末试卷(含听力音频)
- 2024年医院副院长工作总结范文(2篇)
- UL1017标准中文版-2018吸尘器UL中文版标准
- 政府采购评审专家考试试题库(完整版)
- 2024年贵州贵安新区产业发展控股集团有限公司招聘笔试参考题库含答案解析
- 2024年黑龙江省机场管理集团有限公司招聘笔试参考题库含答案解析
- 第十四章35kV变电站保护整定值计算实例
- 液态模锻工艺介绍
- 水泵水轮机结构介绍
- 拼音四线三格加田字格模板(A4打印版可编辑打字)
- 澳门劳工求职专用简历表
评论
0/150
提交评论