第六章 作业管理.ppt

上传人:s****8 文档编号:67216175 上传时间:2022-12-24 格式:PPT 页数:49 大小:280KB
返回 下载 相关 举报
第六章 作业管理.ppt_第1页
第1页 / 共49页
第六章 作业管理.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《第六章 作业管理.ppt》由会员分享,可在线阅读,更多相关《第六章 作业管理.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章 作业管理 6.1概述6.2操作系统与用户的接口6.3批处理作业的管理6.4交互式作业的管理6.1 概述(1)1.作业把用户在一次解题过程中要求计算机所做工作的集合称为一个作业。在计算机上运行用户作业时,通常要经历以下4步:(1)编辑,即采用某种高级语言按一定算法编写源程序,将源程序通过某种手段(如键盘输入)送入计算机内;(2)编译,即调用上述高级语言的编译程序,对源程序进行编译,产生目标代码程序;(3)链接,即将目标代码及调用的各种库代码连接装配成一个可执行代码;(4)运行,即提供程序运行时所需数据,运行程序并产生计算结果。2.作业步任何一个作业都要经过若干加工步骤才能得到结果,作业的

2、每一个加工步骤称为一个“作业步”。每个作业步都对应一个程序的执行,各作业步之间总是相互联系的,并在逻辑上是顺序执行的,前一个作业步的输出信息往往作为后一个作业步的输入,如图61所示。实际上每个作业所经历的加工步骤是可以不同的。图6-1作业控制过程6.1 概述(2)3.作业控制方式所谓“作业控制方式”是指用户根据操作系统提供的手段来说明作业加工步骤的方式。作业控制方式有两种,即批处理控制方式和交互式控制方式。(1)批处理控制方式 采用批处理控制方式控制作业执行时,用户使用操作系统提供的“作业控制语言”对作业执行的控制意图编写成一份“作业控制说明书”,连同该作业的源程序和初始数据一同提交给计算机系

3、统,操作系统将按照用户说明的控制意图来控制作业的执行。于是,作业执行过程中用户不必在计算机上进行干预,一切由操作系统按作业控制说明书的要求自动地控制作业执行。采用该方式对作业进行控制时,其控制意图是事先在脱机情况下说明的,不必联机输入,且采用这种控制方式的作业完全由操作系统自动控制执行。因此,该控制方式又称自动控制方式或脱机控制方式。很明显,该控制方式适合成批处理作业,在成批处理时操作系统将按各作业的作业控制说明书中的要求分别控制相应的作业按指定的步骤去执行。采用批处理控制方式的作业称为“批处理作业”,又称“脱机作业”。(2)交互式控制方式 采用交互式控制方式控制作业执行时,用户使用操作系统提

4、供的“操作控制命令”来表达对作业执行的控制意图。执行时,用户逐条输入命令,操作系统每接到一条命令,就根据命令的要求控制作业的执行,一条命令所要求的工作做完后,操作系统把命令执行情况通知用户且让用户输入下一条命令,以控制作业继续执行,直至作业执行结束。采用交互方式时,在作业执行过程中操作系统与用户之间需不断交互信息,用户必须在联机方式下通过对计算机的直接操作来控制作业的执行。因此,交互式控制方式又称联机控制方式。交互方式适合终端用户使用,终端用户通过终端设备把操作控制命令传送给操作系统,操作系统把命令执行情况也通过终端设备通知用户,最终从终端上输出结果。采用交互式控制方式的作业称为“交互式作业”

5、,又称“联机作业”,对于来自终端的作业也称为“终端作业”。6.2 操作系统与用户的接口 操作系统是用户与计算机系统之间的接口,用户在操作系统的帮助下,可以安全、可靠、方便、快速地使用计算机系统。操作系统向用户提供了两种接口,以便用户与操作系统之间建立联系。一是操作系统为用户提供的各种操作命令或作业控制语言(JCL),用户可利用这些操作命令或作业控制语言来组织作业的工作流程和控制作业的运行;二是操作系统为用户提供的一组系统功能调用接口,用户可以在源程序一级使用这些系统调用,请求操作系统提供的服务(如,请求使用各种外部设备进行信息传输、向系统申请资源等)。如图6-2所示。图6-2用户与操作系统间的

6、两种接口6.2.1 命令接口(1)操作系统为用户对作业组织和运行进行全过程控制提供了命令接口。命令接口通过在用户和操作系统之间提供高级通信来控制程序执行,即用户通过输入设备(包括键盘、鼠标、触摸屏等)发出一系列命令告诉操作系统执行所需的功能。根据作业控制方式的不同,可将命令接口又分成联机命令接口和脱机命令接口。1联机命令接口联机命令接口又称交互式命令接口,它是由一组键盘操作命令组成,用于完成联机作业的控制。在这种方式下,用户使用操作系统提供的键盘操作命令来直接控制作业的执行。执行时,用户输入一条条命令,操作系统每接到一条命令,就按照命令的要求控制作业的执行。系统每执行完一条命令所要求的工作后,

7、就把命令执行情况通知用户,且让用户决定下一步操作,直至作业执行结束。6.2.1 命令接口(2)2.脱机命令接口脱机命令接口又称批处理命令接口,它是专为批处理作业的用户提供的,利用作业控制语言中的命令来完成脱机作业的控制。由于批处理作业的用户不能直接与自己的作业进行交互控制,只能使用操作系统提供的“作业控制语言”将对作业执行的控制意图编写成“作业控制说明书”并提交给计算机系统,然后由操作系统按照作业控制说明书的要求来自动控制作业的执行,用户不必在计算机上进行干预。当批处理作业运行时,系统调用命令解释程序对作业控制说明书中的作业控制命令逐条进行解释执行,若作业在执行中出现错误,系统也同样根据作业控

8、制说明书中的控制要求进行干预。因此,作业将一直在作业控制说明书的控制下执行,直至遇到作业结束语句时,系统才停止该作业的执行。6.2.2 程序接口(1)程序接口是由提供给编程人员使用的系统调用命令组成。编程人员允许在运行程序中,利用系统调用在程序这一级提出资源申请和功能服务,从而获得操作系统的底层服务,使用或访问系统的各种软硬件资源。操作系统提供的系统功能调用从低级的汇编语言级的接口,发展到高级语言中提供的操作系统服务。用户在用高级语言编程时,可以利用操作系统提供的丰富的系统功能调用来请求系统资源,进行进程控制和通信,完成信息的处理等工作。1系统调用 操作系统的基本服务是通过系统功能调用来实现的

9、,系统调用是操作系统为用户程序提供的一种服务,由若干不同功能的子程序组成,用户程序在执行中可以调用这些子程序。由操作系统提供的这些子程序称“系统功能调用”程序,或简称“系统调用”。“系统调用”是在管态下执行的程序。系统调用是用户所需要的功能,有些是比较复杂的,硬件不能直接提供,只能通过软件的程序来实现;而有些功能可由硬件完成,并设有相应的指令,如启动外设工作,就有用于输入/输出的硬指令。但配置了操作系统后,对系统资源的分配、控制不能由用户干预,而必须由操作系统统一管理。所以,对于这样一类功能,也需有相应的控制程序来实现。6.2.2 程序接口(2)2系统调用分类 不同的操作系统提供的系统调用不完

10、全相同,但大致都包括以下几类:(1)文件操作类 这类系统调用包括打开文件、建立文件、读文件、写文件、关闭文件及删除文件等。(2)资源申请类 这类系统调用包括请求分配主存空间、归还主存空间、分配外围设备及归还外围设备等。(3)控制类 执行中的程序可以请求操作系统中止其执行或返回到程序的某一点再继续执行。操作系统要根据程序中止的原因和用户的要求作出处理。因而这类系统调用有:正常结束、异常结束、返回断点及返回指定点等。(4)信息维护类 这类系统调用包括设置日期时间、获取日期时间、设置文件属性及获取文件属性等。6.2.2 程序接口(3)3系统调用执行过程 现代计算机系统硬件提供一条“访管指令”,该指令

11、可以在目态下执行。用户编制程序使用系统调用请求操作系统服务时,编译程序将其转换成目标程序中的“访管指令”及一些参数。目标程序执行时,当CPU执行到“访管指令”,产生自愿性中断,操作系统接过控制权(在管态下),并分析“访管指令”中相关参数,让对应的“系统调用”子程序为用户服务;完成系统调用后,操作系统将CPU状态改变为目态,返回到用户程序继续执行。其执行过程可大致分成三个阶段:(1)设置系统调用参数系统调用参数传递到寄存器中,其传递方式有两种,一种是直接将参数传递到相应的寄存器中,另一种方式是先将系统调用所需参数放入一张参数表中,然后再将参数表的指针放在某个规定的寄存器中。(2)系统调用命令的一

12、般性处理在设置了系统调用参数后,便可执行系统调用命令。不同的系统可采用不同的方式来进行一般性处理,但一般都是首先保护CPU现场,将程序状态字PSW、程序计数器等压入堆栈,然后将用户定义的参数传递到指定的地方保存起来。为了使不同的系统调用能方便地转向相应的命令处理程序,可在系统中配置一张系统调用入口表。表中的每个表目都对应一条系统调用命令,它包含有该系统调用自带参数的数目、系统调用命令处理程序的入口地址等。因此,操作系统可利用调用参数去查找该表,即可找到相应命令处理程序的入口地址而转向执行它。(3)系统调用命令的处理程序完成具体过程对于不同的系统调用命令,其命令处理程序将执行不同的功能。在这一步

13、中,系统执行系统调用对应的程序段,即执行对应的“系统调用”子程序为用户服务,待完成系统调用后,返回到用户程序继续执行后续过程。6.2.2 程序接口(4)4.用户接口的发展随着计算机技术、多媒体技术的发展,使操作系统提供的接口在形式上和功能上发生了很大的变化,其发展方向是可视化、集成化、智能化。操作系统为用户提供的是一个更友好的、更直观的、易懂的、图文并茂的、且具有一定智能的运行环境。用户可以通过文字、图像、声音等媒体,以及键盘、鼠标、扫描仪、声音装置等部件来驱动操作系统提供的命令和用户扩充的自定义命令,从而达到轻松、方便地使用计算机的目的。Windows操作系统就为用户提供了良好的图形接口。6

14、.3 批处理作业的管理 6.3.1 批处理作业输入6.3.2 批处理作业的调度6.3.3作业调度算法6.3.4 批处理作业的控制根据作业进入系统的过程,可将作业管理功能分成三部分:(1)作业输入:把作业装入辅存输入井中,并按照进入的先后顺序形成后备作业队列的过程。(2)作业调度:按某种调度策略选择后备作业队列中的若干作业装入主存运行的过程。(3)作业控制:在操作系统控制下,用户如何组织他的作业并控制作业的运行。6.3.1 批处理作业输入(1)在采用批处理控制方式的计算机系统中,每个用户根据自己的实际要求来组织批处理作业,并把准备好的作业提交给计算机系统,操作系统完成将该批处理作业向系统成批输入

15、。1作业控制语言每个批处理作业都包括源程序、初始数据和作业控制说明书三部分,其中作业控制说明书是用作业控制语言书写的,它刻画了用户对作业的基本情况描述和资源需求描述,规定了用户对作业执行的控制要求。作业基本情况描述一般含用户名、作业名、使用的编程语言名、允许的最大处理时间等;作业的资源需求描述含需求的主存大小、外设种类及台数、处理器优先级、所需运行时间、需求库函数等;作业执行的控制要求一般包括作业的控制方式、作业步的执行顺序、作业的异常处理等。作业控制语言(JCL,Job Control Language)是由若干作业控制语句组成的集合,每个控制语句除包含了表示特征的关键字外,还有指示控制要求

16、的若干参数。在脱机工作方式下,系统提供作业控制语言将作业的控制要求编写成作业控制说明书的形式,并通过作业控制说明书对作业实施运行控制。不同计算机系统的作业控制语言格式不尽相同,各有特点,但大都提供以下主要功能:(1)作业的提交。(2)控制作业和作业步的执行。(3)各种软硬件资源的使用。6.3.1 批处理作业输入(2)2作业控制块作业控制块(JCB,Job Control Block)是批处理作业存在的标志,其中存有系统对于作业进行管理所需要的全部信息,它们被保存于辅存存储区域中。作业控制块中所包含的信息数量及内容因系统而异,但一般应包含:作业名、作业状态、作业类别、作业优先级、作业控制方式、资

17、源需求量、进入系统时间、开始运行时间、运行时间、作业完成时间和所需主存地址及外设种类及台数等。(1)作业控制块的建立当作业开始由输入设备输入到辅存的输入井时,系统输入程序即为其建立一个作业控制块,并对其进行初始化。初始化的大部分信息取自作业控制说明书,其它的部分信息如作业进入系统时间和作业开始运行时间等则由资源管理器给出。(2)作业控制块的使用需要访问作业控制块的程序主要有系统输入程序、作业调度程序、作业控制程序和系统输出程序等。(3)作业控制块的撤销当作业完成后,其作业控制块由系统输出程序撤销,作业控制块被撤销后其作业也不复存在。6.3.1 批处理作业输入(3)3作业表每个作业都有一个作业控

18、制块,所有作业的作业控制块就构成了一个作业表。作业表存放在辅存固定区域中,长度是固定的,它限制了系统所能同时容纳的作业数量。系统输入程序、作业调度程序、系统输出程序都需要访问作业表,因而存在互斥问题。6.3.1 批处理作业输入(4)4批处理作业的建立作业建立的前提条件是首先要向系统申请获得一个空的作业表项和足够的输入井空间。建立时,一个作业必须将作业所包括的全部程序和数据输入到辅存中保存起来,并建立该作业对应的作业控制块。因此,作业的建立过程包括两个阶段:建立作业控制块阶段和作业输入阶段。(1)作业控制块的建立建立作业控制块的过程就是申请和填写一张含空白表项的作业表的过程。由于操作系统所允许的

19、作业表的长度是固定的,即作业表中存放的作业控制块个数是确定的,因此当作业表中无空白表项时,系统将无法为用户建立作业,作业建立将会失败。(2)作业的输入批处理作业的输入是将作业的源程序、初始数据和作业控制说明书通过输入设备输入到辅存并完成初始化的过程。作业输入时,操作系统通过“预输入命令”启动Spooling系统中的“预输入程序”工作,就可把作业信息存放到“输入井”中。预输入程序根据作业控制说明书中的作业标识语句可以区分各个作业,把作业登记到作业表中,并把作业中的各个文件存到“输入井”中。这样,就完成了作业的输入工作,被输入的作业处于“后备状态”,并在“输入井”中等待处理。采用Spooling系

20、统的输入方式时,由于辅存中的输入井空间大小是有限的,因此若输入井中无足够大小的空间存放该作业,则作业建立仍然会失败。6.3.2 批处理作业的调度(1)1作业调度程序作业调度不仅要按某种调度策略(即调度算法)从后备作业队列中选择作业装入主存,还要为选中的作业分配所需资源,为作业进入CPU运行作好准备。完成作业调度功能的控制程序称为作业调度程序。通常作业调度程序要完成下述工作:(1)按照某种调度算法从后备作业队列中选取作业。(2)为被选中的作业分配主存和外设资源。因此作业调度程序在挑选作业过程中要调用存储管理程序和设备管理程序中的某些功能。(3)为选中的作业开始运行做好一切准备工作。这种准备工作包

21、括:修改作业状态为运行态,为运行作业创建进程,构造和填写作业运行时所需要的有关表格,如作业表等。(4)在作业运行完成或由于某种原因需要撤离系统时,作业调度程序还要完成作业的善后处理工作。包括回收分给它的全部资源,为输出必要信息编制输出文件,撤销该作业的全部进程和作业控制块等,最终将其从现行作业队列中删除。6.3.2 批处理作业的调度(2)2作业状态作业从提交到系统直到它完成后离开系统前的整个活动可划分为若干阶段。作业在每个阶段所处的状态称为作业的状态。通常作业的状态分成四种:(1)提交状态:一个作业在其处于用户手中并经过输入设备进入到输入井,系统为其建立作业控制块。这时的作业处于提交状态。(2

22、)后备状态:对于已经进入输入井的作业,系统将它插入到输入井后备队列中,等待作业调度程序的调度运行,这时的作业处于后备状态。(3)运行状态:一个处于后备状态的作业,一旦被作业调度程序选中进入主存,系统就为它分配必要的资源,建立相应的进程,这时的作业就处于运行状态。(4)完成状态:作业完成其全部运行并释放其所占全部资源而正常结束或异常终止时,作业就处在完成状态。此时作业调度程序对该作业进行一系列善后处理,并退出系统。作业状态的转换是一个在其生命周期中的连续过程,对应的状态转换图如图6-3所示。图6-3状态转换图6.3.2 批处理作业的调度(3)3作业调度的影响因素对于每个用户来说,都希望自己的作业

23、尽快执行,但就计算机系统而言,既要考虑用户的需求又要有利于整个系统效率的提高,因此作业调度中应该综合考虑多方面的因素。主要考虑的因素主要有:(1)公平性:公平对待每个用户,让用户满意,不能无故或无限制地拖延某一用户作业的执行。(2)均衡使用资源:每个用户作业所需资源差异很大,因此需注意系统中各资源的均衡使用,使同时装入主存的作业在执行时尽可能利用系统中的各种不同资源,从而极大提高资源的使用率。例如,进行科学计算的作业要求较多的CPU时间,但输入输出要求较少;而事务处理作业则要求较少的CPU时间,但要求较多的输入输出操作。因此应将这两种作业合理搭配,使得系统各种资源发挥最佳效益。(3)提高系统吞

24、吐量:通过缩短每个作业的周转时间,实现单位时间内尽可能为更多的作业服务,从而提高计算机系统的吞吐能力。(4)平衡系统和用户需求:用户满意程度的高低与系统效率的提高可能是一对相互矛盾的因素,每个用户都希望自己的作业立即投入运行并很快获得运行结果,但系统必需考虑系统的整体性能的提高,有时却难以满足用户需求。上述这些因素可能不能兼顾,应根据系统的设计目标来决定优先考虑的调度因素。6.3.2 批处理作业的调度(4)4作业调度的性能指标对于批处理系统而言,作业调度的性能优劣受多项指标影响,主要的性能指标体现在:(1)CPU利用率:CPU利用率是CPU的有效运行时间与总的运行时间之比。因此,比值越大,其C

25、PU利用率越高。(2)吞吐能力:吞吐能力是指单位时间内完成作业的数量。因此,完成的数量越多,其吞吐能力越强。(3)周转时间:所谓作业的周转时间,是指从作业被提交进入输入井开始,到作业执行完成的这段时间间隔。每个作业的周转时间都应包括四个部分:作业在输入井后备队列中等待作业调度的时间,进入主存后创建的进程在进程就绪队列中等待进程调度的时间,进程占据CPU执行的时间,及进程等待I/O操作完成的时间。若设Tci为作业i的完成时间,Tsi为作业被提交进入输入井的时间,则作业i的周转时间定义为:Ti=Tci-Tsi很显然,作业的周转时间越短,作业越早被调度并运行。(4)平均周转时间:所谓作业的平均周转时

26、间,是指所有作业的周转时间的平均值。若作业i的周转时间定义为Ti,则作业的平均周转时间定义为:T=对这个公式涉及的n个作业,相对于长作业,对T值的影响大,而短作业对T值的影响小。很显然,对系统来说,希望进入系统的作业平均周转时间越小越好。6.3.2 批处理作业的调度(5)(5)平均加权周转时间:由于系统中的短作业所占比例更大,为了增加短作业对T值的影响,引入平均加权周转时间的概念。若作业i的加权周转时间定义为作业的周转时间与作业的运行时间之比,即为:Wi=Ti/tri其中tri为作业i占据CPU的运行时间,则作业平均加权周转时间定义为:W=批处理系统设计的目标是设法减少作业的平均周转时间及平均

27、加权周转时间,设法提高系统的吞吐量,并兼顾用户的容忍程度,从而使系统运行效率最高。一般认为T和W越小,系统对作业的吞吐量越大,系统的性能越高。6.3.2 批处理作业的调度(6)5作业调度与进程调度 在多道程序系统中,一个作业被提交后,必须经过处理器调度才能获得处理器并运行。对于批处理作业而言,通常至少要经历作业调度和进程调度两个阶段后,才能获得处理器;而对于交互式作业则一般只需进行进程调度即可。因此,对于批处理作业的调度,系统必须先进行作业调度,才能进行进程调度。一般地,作业调度是批处理作业运行的前提,称高级调度;进程调度是作业调度的后续,称低级调度。作业调度往往发生在一个批处理作业执行完毕,

28、另一个需要调入主存时,因此作业调度周期较长且速度慢、花费时间长;而进程调度频率快、速度快且花费时间短。只有作业调度与进程调度相互配合才能实现多道作业的并发执行。作业调度按一定的算法从“输入井”后备队列中选择资源能得到满足的作业装入主存,使作业有机会去占用处理器执行。但是,一个作业能否占用处理器则由进程调度来决定。所以,作业调度选中了一个作业且把它装入主存时,就应为该作业创建一个进程,若有多个作业被装入主存储器,则同时存在多个进程。这些新建进程的初始状态为就绪状态,进程调度来选择当前可占用处理器的就绪进程,进程运行中由于某种原因状态发生变化,当它让出处理器时,进程调度就再选另一个作业的就绪进程去

29、运行。6.3.3作业调度算法(1)作业调度算法是指依照某种原则或策略从后备作业队列中选取作业的方法。一个作业调度算法的选取是与它的系统设计目标相一致的。理想的作业调度算法既能提高系统效率,又能使进入系统的作业及时得到计算结果。设计计算机系统时应根据系统的设计目标来决定采用的调度算法,目标不同,选择调度算法的侧重点也有所不同,但选择任何一种调度算法都必需遵循一个必要条件,即系统所有的尚未分配的资源可以满足被选作业的资源要求。下面介绍目前常用的一些作业调度算法:6.3.3作业调度算法(2)1先来先服务算法(First Come First Server)先来先服务作业调度算法是一种较简单的作业调度

30、算法,即每次调度都是按照作业进入“输入井”后备作业队列的先后次序来挑选作业,优先将最先进入队列的作业调入主存,分配所需资源,创建相应的进程,放入进程就绪队列准备运行。但要注意,不是先进入后备作业队列的作业就一定被先选中,这要根据资源的分配情况来决定。该调度算法容易实现,每个作业都能被选中,体现了公平,但当运行时间长的作业先进入“输入井”而被选中执行时,就可能使计算时间短的作业长期等待。这样,不仅使这些用户不满意,而且使运行时间短的作业周转时间变长,从而平均周转时间变长,系统的吞吐能力降低,系统效率也降低。从表62中可以看出,显然先来先服务调度算法利于长作业,不利于短作业,而大多数的作业是I/O

31、繁忙的短作业。所以先来先服务算法作为主调度算法是不常用的。作业进入时间运行时间开始时间结束时间周转时间加权周转时间JOB18:001208:0010:001201JOB28:505010:0010:501202.4JOB39:001010:5011:0012012JOB49:502011:0011:20904.5作业平均周转时间 T=112.5加权平均周转时间 W=4.97545019.9表6-2 6.3.3作业调度算法(3)2短作业优先算法短作业优先调度算法是指操作系统在进行作业调度时以作业运行时间长短作为优先级进行调度,总是从后备作业队列中选取运行时间最短的作业调入主存运行。采用该算法时,

32、要求用户对自己的作业需要运行的时间预先作出一个估计,并在作业控制说明书中加以说明。作业调度时依据在输入井中的作业提出的运行时间为标准,优先选择运行时间短且资源能得到满足的作业。该调度算法可以照顾到实际上占作业总数绝大部分的短作业,使它们能比长作业优先调度执行。这时后备作业队列按作业相应优先级由高到低顺序排列,当作业进入后备队列时要按该作业优先级放置到后备队列相应的位置。计算作业的周转时间和加权周转时间.从表63中可以看出,该调度算法的性能较好,它强调了资源的充分利用,有效地降低了作业的平均等待时间,使得单位时间内处理作业的个数最大,保证了作业吞吐量最大。但该算法也应注意下列几个不容忽视的问题:

33、(1)由于该算法是以用户估计的运行时间为标准,有些用户为了使自己的作业能优先执行,可能故意把运行时间估计的低一些,致使该算法不一定能真正做到短作业优先调度。为了避免这一现象,若作业执行时间超过所估计的时间,则可加价收费。(2)该算法完全未考虑作业的紧迫程度,因而不能保证部分紧迫程度特别强的作业及时得到运行。(3)由于系统可能不断接受新作业进入“输入井”,如果新进入“输入井”的作业估计的运行时间比较短,则将会使进入“输入井”较早但要求运行时间长的作业等待时间太长,对长作业极为不利。作业进入时间运行时间开始时间结束时间周转时间加权周转时间JOB18:001208:0010:001201JOB28:

34、505010:3011:201503JOB39:001010:0010:10707JOB49:502010:1010:30402作业平均周转时间 T=95加权平均周转时间 W=3.2538013表636.3.3作业调度算法(4)3.响应比最高者优先算法由于先来先服务算法可能使后进入输入井的诸多短作业处于等待状态,而最短作业优先算法可能又使大作业等待时间过长。为了兼顾上述两种算法的优点,克服了它们各自的缺点,引入响应比最高者优先算法。采用响应比最高者优先算法进行调度时,必须对“输入井”中的所有作业计算出各自的响应比,从资源能得到满足的作业中选择响应比最高的作业优先装入主存运行。响应比的定义为:响

35、应比由于作业从进入输入井到执行完成就是该作业的响应过程,因此系统对该作业的响应时间就是作业的等待时间与运行时间之和。从响应比公式可以看出:(1)若作业的等待时间相同,则运行时间越短,其响应比越高,因而该算法有利于短作业。(2)若作业的运行时间相同,则作业的等待时间越长,其响应比越高,因而该算法实现的是先来先服务。(3)对于长作业,作业的响应比随等待时间的增加而提高,当其等待时间足够长时,其响应比便可提升到很高。从表64中可以看出,该调度算法结合了先来先服务与最短作业优先两种方法,兼顾了运行时间短和等候时间长的作业,公平且吞吐量大。但该算法较复杂,调度前,要先计算出各个作业的响应比,并选择响应比

36、最大的作业投入运行,从而增加了系统开销。作业进入时间运行时间开始时间结束时间周转时间加权周转时间JOB18:001208:0010:001201JOB28:503010:1010:401103.67JOB39:001010:0010:10707JOB49:502010:4011:00703.5作业平均周转时间 T=92.5作业加权平均周转时间 W=3.7937015.17表646.3.3作业调度算法(5)4.优先数调度算法为了照顾紧迫程度高的作业,使之在进入输入井后备队列中时便获得优先处理,引入优先数调度算法。该算法为每个作业确定一个优先数,根据优先数的不同让作业排成多个队列,调度时从后备队列

37、中优先选取资源能满足且优先数最高的作业装入主存运行。当几个作业的优先数相同时,对这些具有相同优先数的作业再按照先来先服务原则进行调度。作业优先数的确定原则可参照下列两条:(1)对于某些时间要求紧迫的作业赋予较高的优先级;(2)为了充分利用系统资源,对于I/O量大的作业给予较高的优先级,对于CPU量大的作业给予较低的优先级。作业优先数的确定方法有多种,既可由用户来提出自己作业的优先数;又可由操作系统根据作业的缓急程度、作业估计的运行时间、作业的类型、作业资源申请情况等因素综合考虑,分析这些因素在实现系统设计目标中的影响,决定各因素的比例,综合得出作业的优先数。有的系统还可以根据作业在“输入井”中

38、的等待时间动态地改变其优先数。可通过提高等待时间长的作业优先数,以缩短作业的周转时间和平均周转时间。6.3.3作业调度算法(6)5.分类调度算法分类调度算法又称均衡调度算法,该算法根据系统运行情况和作业对资源的需求先将作业进行分类,然后作业调度程序轮流从不同的作业类中去挑选作业,尽可能使得使用不同资源的作业同时执行。这样不仅可以力求均衡地利用各种系统资源,发挥资源使用效率,使系统的各种资源都在忙碌,而且可以减少作业等待使用相同资源的时间,从而加快作业的执行。因此,根据作业执行性质的不同,可将待处理作业分成如下队列:队列1:计算量大的作业队列2:I/O量大的作业队列3:计算量与I/O量均衡的作业

39、调度时,在三个队列中各取一些作业装入主存,这样在主存中的作业有的使用处理器,有的使用外部设备,从而使得系统的各种资源能得到均衡利用。6.3.3作业调度算法(7)6.算法综合应用表65 作业初始状态作业进入时间运行时间主存需求量磁带机需求量JOB110:0040分钟35K3台JOB210:1030分钟70K1台JOB310:1520分钟50K3台JOB410:3510分钟15K2台JOB510:405分钟10K2台作业次序进入时间运行时间开始时间结束时间周转时间加权周转时间JOB110:0040分钟10:0010:4040分钟1JOB210:1030分钟10:4011:1060分钟2JOB410

40、:3510分钟10:4010:5015分钟1.5JOB510:405分钟10:5010:5515分钟3JOB310:1520分钟11:1011:3075分钟3.75作业平均周转时间 T=41分钟 作业加权平均周转时间 W=2.25205分钟11.25表66 FCFS算法结果作业次序进入时间运行时间开始时间结束时间周转时间加权周转时间JOB110:0040分钟10:0010:4040分钟1JOB510:405分钟10:4010:455分钟1JOB410:3510分钟10:4010:5015分钟1.5JOB210:1030分钟10:4511:1565分钟2.17JOB310:1520分钟11:15

41、11:3580分钟4作业平均周转时间 T=41分钟 作业加权平均周转时间 W=1.934205分钟9.67表67 短作业优先算法结果 作业次序进入时间运行时间开始时间结束时间周转时间加权周转时间JOB110:0040分钟10:0010:4040分钟1JOB310:1520分钟10:4011:0045分钟2.25JOB510:405分钟11:0011:0525分钟5JOB410:3510分钟11:0011:1035分钟3.5JOB210:1030分钟11:0511:3585分钟2.83作业平均周转时间 T=46分钟 作业加权平均周转时间 W=2.92230分钟14.58表68 响应比高者优先算法

42、结果6.3.4 批处理作业的控制(1)一个批处理作业被作业调度程序选中后,操作系统将按照作业控制说明书中所规定的控制要求去控制作业的执行。1批处理作业的执行一个批处理作业往往要分几个作业步执行,一般来说,总是按照作业步的顺序控制作业的执行,一个作业步执行结束后,就顺序取下一个作业步继续执行,直到最后一个作业步完成,整个作业就执行结束。这时,系统收回作业所占资源且撤销该作业,作业执行的结果在“输出井”中等待输出。当作业被选中转为运行态时,作业调度程序为其建立一个作业控制进程,由该进程具体控制作业运行。作业控制进程主要负责控制作业的运行,具体解释执行作业说明书的每一个作业步,并创建子进程来完成该步

43、骤。一个作业步的处理过程又可细分为以下几个阶段:(1)建立子进程;(2)为该子进程申请系统资源和外设资源等;(3)访问该作业的作业控制块;(4)子进程执行结束并释放其占有的全部资源;(5)撤销子进程等。6.3.4 批处理作业的控制(2)怎样才能完成作业步的执行呢?不同的作业步要完成不同的工作,都要有不同的程序去解释、执行。一般来说,根据作业控制说明书中的作业步控制语句中参数指定的程序,把相应的程序装到主存,然后创建一个相应的作业步进程,把它的状态设置为“就绪”。当被进程调度程序选中运行时,该进程就执行相应的程序,完成该作业步功能。当一个作业步的进程执行结束,需要向操作系统报告执行结束的信息,然

44、后撤销该进程,再继续取下一个作业步的控制语句,控制作业继续执行。当取到一个表示作业结束的控制语句时,操作系统收回该作业占有的全部主存和外围设备等资源,然后让作业调度再选取下一个可执行的作业。如果作业执行到某个作业步时发生了错误,则要分析错误的性质。如果是某些用户估计到的错误,且用户已在作业控制说明书中给出了处理办法,系统应按用户的说明转向指定的作业步继续顺序执行,直至作业执行结束。图6-4作业的执行流程6.3.4 批处理作业的控制(3)1批处理作业的终止与撤销从图64可以看出,当一个批处理作业顺利执行完作业说明书中所有作业步时,作业正常终止;若执行中遇到诸如非法指令、运算溢出和主存地址越界等无

45、法继续执行的错误时,作业将异常终止。作业正常终止时会向系统发出正常终止的信息,然后等待被系统撤销;异常终止时也会向系统发出异常终止的信息,然后等待被系统撤销。系统撤销一个作业的主要过程如下:(1)报告用户作业是正常终止还是异常终止,若是正常终止,则把结果输出;(2)回收作业占据的全部资源,包括主存空间、外设及打开的数据文件等;(3)释放该作业的作业控制块;(4)注消该作业。每当一个作业运行终止而被撤销后,系统又会再进行下一次作业调度,然后重复上述过程,直至全部作业调度完毕。6.4 交互式作业的管理 6.4.1 交互式作业的控制 6.4.2终端作业的管理 交互式作业是采用交互式控制方式的作业,即

46、用户使用操作系统提供的操作控制命令直接提出对作业的控制要求,每当用户输入一条命令后,系统立即解释执行且及时给出应答。用户根据作业执行情况决定输入的下一条命令,以控制作业的继续执行。交互式作业的最大特点体现为交互性,即采用人机对话的方式工作。用户能从系统给出的应答中及时掌握作业的执行情况,以决定下一个作业步应该做什么,也可从系统给出的应答中及时发现作业执行中的问题且予以纠正,能方便地实现对程序的联机调试和修改。在使用分时操作系统的计算机系统中,终端用户通过终端设备输入终端作业的程序和数据,且直接在终端设备上输入各种命令,来表达对终端作业的控制意图,系统把终端作业的执行情况通过终端设备通知用户,最

47、终从终端设备上输出结果。6.4.1 交互式作业的控制(1)交互式作业的控制方式采用交互式控制方式。对于交互式作业来说,用户一般都是通过控制台或终端输入操作控制命令直接控制作业的执行,其中在个人计算机上通过输入键盘控制命令,而在分时系统上则输入终端控制命令。此时,用户既可以一次键入一条命令,也可以编写成批命令文件并执行,输入的命令由命令解释程序解释执行,如此反复地通过人机对话方式控制作业的执行。1操作控制命令用户输入操作控制命令控制作业的执行是最常用的一种控制方式。不同的计算机系统提供给用户使用的命令可能有所不同,但命令的格式基本都相同,即每条命令都包括请求“做什么”的命令名和要求“怎么做”的命

48、令参数。命令的一般格式为:命令名参数1,参数2,参数n命令格式中的命令名是必不可少的,是完成指定功能的根本标识,而参数则是完成功能时所需的各种信息,因而可以部分或全部缺省。按照命令功能的差异,可将操作控制命令大致分成以下几种类型:(1)作业控制命令该命令包括作业程序的建立、修改、编译、链接和运行等。(2)文件的各种操作命令该类命令实现对用户文件和目录的控制,包括新建、修改、删除、显示和输出等。(3)目录操作命令该类命令实现对用户目录的控制,包括新建目录、删除目录和修改目录的权限等。(4)资源申请命令该类命令包括对各种外设的使用和重定向。6.4.1 交互式作业的控制(2)2.菜单方式通过输入操作

49、控制命令来控制作业的执行时,用户必须熟记各种命令。菜单技术是控制作业执行的另一种技术,它可为用户提供较友好的使用界面或接口,似菜馆点菜般方便,故此得名。当某一程序具有若干可供用户选择的功能项时,一般都采用交互式的菜单技术进行处理。首先,程序提供可完成的各种功能名,用户根据实际需要选择自身希望实现的功能名,然后,程序分析用户的输入或选择并调用不同的功能模块进行处理。菜单技术为用户提供了较大方便,用户不必事先记住各种功能命令,而只要根据屏幕上的菜单提示进行选择,所以对于不太熟悉操作控制命令的用户特别方便。但是,对于习惯了命令方式的人会嫌一层层“点菜”太麻烦。因此,现在有些系统又将菜单与命令方式并存

50、,在提供操作控制命令的同时也把命令组成菜单方式,这样,用户可以选择任意一种或两种方式同时控制作业的执行。6.4.1 交互式作业的控制(3)3.视窗方式随着20世纪90年代视窗操作系统成为主流以来,视窗接口也成为比较流行的交互式操作控制方式。视窗接口采用了图形化操作界面,用非常容易识别的各种形象化的图标将系统的各项功能、各种应用程序和文件等直观表现出来。因此,用户只需通过鼠标、菜单和对话框来完成相应的操作,而完全不必记住命令名及格式,从而把用户从繁琐且单调的命令操作中解放出来,同时也使计算机的基本操作变得简单、高效且有趣。视窗方式与菜单方式一样,只是用户表达其需求的方式不同而已,它们所完成的功能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁