第5章作业管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

通过第二章的讨论,我们知道,一个作业进入系统,并为之建立相应的一个或多个进程后,由进程调度来给予分配处理机,让其在处理机上执行,完成该作业的任务,那么,一个用户向系统注册登记,提交作业后,什么时候得以真正进入系统,由谁来为其创建进程呢?这是作业调度的任务。第五章作业管理根据计算机管理人员所制定的规则(如作业优先数大小,要求资源的品种和数量、系统的均衡性等),从所有后备作业队列上选择一个或多个作业置于“运行”状态,并为它们分配必要的资源(如主存空间、外部设备等),建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后将它们的程序段调放主存以等待进程调度程序的调度。显然,由作业调度程序选择到的作业才有资格获得处理机,但不一定立刻就能占有它并在其上运行。至于一个已被调度程序调度到的作业,什么时候能真正在处理机上运行,则取决于“进程调度”所遵循的调度策略和作业性质。进程调度又称微观调度或低级调度。作业调度与进程调度之间的关系,可打个比喻来说明,前者像竞赛的“协调人”,它能确定参加比赛(竞争处理机)的全体“选手”,而后者像比赛场上的“裁判”,决定哪个“选手”将取得胜利(获得物理处理机)。作业管理的主要功能是对用户作业进行合理调度,以提高系统的吞吐量或缩短作业的周转时间,并提供用户与操作系统的接口,以方便用户对自己的作业在整个运行过程中进行控制。第五章作业管理5.1作业的基本概念一、作业的定义作业:作业是由用户提交给系统处理的一个基本任务(从用户目光看),它是由用户程序、数据以及对程序运行进行控制和处理的有关信息所组成(从系统角度看)。通常,一个作业又可分为若干个顺序处理的作业步,例如,在对一个用某高级语言编制的源程序进行调试处理时,往往要经过下述几大步骤:①编辑——这是调用编辑程序对指定的源程序文件进行输入或修改;②编译——对编辑后所得的文件进行编译、链接,以获得可执行的目标代码;③运行——对编译、链接后的程序进行运行,完成预期功能。作业步:作业由不同的顺序相连的作业步组成。作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。第五章作业管理二、作业的类型(根据调度和控制的需要,可对作业进行分类)1.从调度的角度,可把作业分成:(1)计算型作业指任务中包含大量的计算,而其I/O较少的作业,通常的科学计算便属计算型作业;(2)I/O型作业要求少量的计算而需大量I/O的作业,如通常的事务处理便属于I/O型作业。为了提高系统的吞吐量,调度程序应对这两种作业进行合理地组织和调度。2.从控制角度可把作业分成:(1)脱机作业在整个作业的运行过程中,只需根据作业说明书中的说明对作业进行控制,脱机作业通常是在批处理操作环境下运行,故也称为批量型作业;(2)联机作业通常是用键盘命令直接控制作业的运行,联机作业通常在分时操作环境下运行,故也称为终端型作业。第五章作业管理三、作业的状态及其建立过程1、作业的状态一个作业从进入系统到运行完成,一般要由系统经过多级调度才能实现,通常要经历“进入(提交)”、“收容(后备)”、“执行”和“完成(终止)”四个阶段,相应地,作业就有四种状态:1)进入状态(提交状态):当操作员将用户提交的作业通过某种输入方式输入到外存上时,称此阶段为作业处于进入状态。第五章作业管理2)后备状态(收容状态):当作业所需全部信息已输入到外存,由作业建立程序为之建立一个作业控制块,并插入到后备作业队列中等待作业调度运行为止。把作业在后备队列上等待调度的状态称为后备状态。3)执行状态:作业调度程序从处于后备状态的作业队列中选中一个作业调入内存,并为这建立相应的进程后,由于此时的作业已具有独立运行的资格,如果处理机空闲,便可立即开始执行,故称此时的作业是进入了运行状态。作业的运行状态又可进一步分为“就绪”、“执行”和“阻塞”三个基本状态。第五章作业管理4)终止状态(完成状态):当作业(进程)的运行正常完成或异常结束时,进程便自我终止,或被迫终止,此时作业便进入终止状态。处于终止状态的作业被作业终止程序回收其作业控制块,回收已分配给它的所有资源,然后作业随之消亡。下图示出了作业的状态及其转换。作业由进入状态到后备状态的转换,是由作业建立程序完成的;从后备状态转变为运行状态是由调度程序所引起;而作业由运行状态自愿或被迫地转变为终止状态,则是在有关作业终止的系统调用的作用下完成的。第五章作业管理第五章作业管理进入状态后备状态运行状态终止状态作业的状态转换作业建立作业调度作业调度(完成)SPOOLING输入SPOOLING输出输入设备辅存输入井内存进程创建占用CPU运行输出设备JOB调度与进程调度作业调度进程调度作业调度2、作业控制块JCB的建立在系统把作业信息输入到外存输入井之后,还要根据作业说明书内容和有关作业信息在外存中的位置等建立作业控制表JCB,然后插入作业后备队列。JCB包含了系统对作业进行管理所必须的信息。它们通常包含:作业名作业类型作业在外存的存储地址作业的状态作业优先权(为进程调度算法提供参数)资源要求指针第五章作业管理3、作业和进程的关系作业可被看作是用户向计算机提交任务的任务实体,例如一次计算、一个控制过程等。而进程则是计算机为了完成用户所提交的任务实体而设置的执行实体,是系统分配资源的基本单位。显然,计算机要完成一个任务实体,必须要有一个以上的执行实体。也就是说,一个作业总是由一个以上的多个进程组成的。那么作业是怎样分解为进程的呢?首先,系统必须为一个作业创建一个根进程,然后,在执行作业控制语句时,根据任务要求,系统或根进程为其创建相应的子进程,然后,为各子进程分配资源和调度各子进程执行以完成作业要求的任务。作业:任务实体;进程:执行实体。第五章作业管理从用户角度看,作业是向计算机系统提交的一个大任务,该大任务可分成各个子任务子任务又可分成更小的任务.每个子任务是用一条一条的指令或命令描述的,称这种描述为子任务的正文段。所有子任务的正文段组成大任务的正文——也就是通常所说的“作业的程序文本”。只有当正文段被计算机执行时才能体现出任务的功能。进程是正文段的执行实例(instance),是申请资源的基本单位。换句话说作业(任务)是由多个进程组成的,作业的资源需求量等于它的进程拥有的资源数量之和。第五章作业管理5.2作业控制方式这是用户通过OS提供的“用户与OS的接口”向系统发出各种命令,以管理自己的作业和控制作业的运行。根据作业性质的不同,又可把作业控制方式分为:批处理作业控制(脱机作业控制):这是OS利用作业说明书对用户提交的批量型作业进行控制;终端型作业控制(联机作业控制):用户利用OS提供的一组键盘命令对自己的作业进行控制。第五章作业管理作业的控制方式(细分):1、联机输入方式:外围设备直接与主机相连,一台主机可连接一台或多台外设。当连接一台外设时,可能会造成CPU的浪费。2、脱机I/O:在外围机的控制下,实现程序和数据的输入输出。解决单台设备联机时的CPU浪费问题而使用的一种输入方式。缺点是需人工干预,如移动存储介质和连接后援存储器等。3、直接耦合方式:保留了脱机输入方式的快速输入的优点,又没有脱机输入方式的人工干预的缺点和具有较强的灵活性的输入方式。直接耦合方式把主机和外围低档机通过一个公用的大容量的外存直接耦合起来,从而省去了脱机输入中那种依靠人工干预来传递后援存储器的过程。第五章作业管理4、SPOOLing方式--外围设备同时联机操作:(在联机输入方式中,如果一台主机联接多台外设,就形成了SPLOOing方式)。为了克服脱机输入/输出工作方式的缺点,在通道技术及多道程序设计技术发展的基础上,人们研制了一种称为SPOOLing(SimultoneousPeripheralOperationsOnLine)的操作方式,其含义是外围设备同时联机操作。该输入方式的特点是:在有SPOOLing功能的计算机系统中,作业的输入/输出,不再单独使用外转处理机而由主机和相应通道来承担各种功能,而且,通常总是使用直接存取的大容量磁盘作为后援存储器。在SPOOLing系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来。通道是一个独立于CPU的专管输入输出的处理机,它控制外设或外存与内存之间的信息交换。第五章作业管理第五章作业管理注:滕子阳编《现代操作系统》5.3作业调度只有批处理系统才必须具有作业调度。在分时系统中由于要进行人机交互,系统必须能及时响应,为此应把用户从终端输入的作业直接送入内存,因此,不再需要专门用于把作业从外存调入内存的作业调度过程。对于实时系统中的实时任务,因为通常对其响应的时间更为严格,故也不需要作业调度。第五章作业管理一、作业调度根据计算机管理人员所制定的规则从所有后备作业队列上选择一个或多个作业置于“运行”状态,并为它们分配必要的资源,建立相应的用户作业进程和为其服务的系统进程,最后将它们的程序段调入主存以等待进程调度程序的调度。即:审查系统能否满足用户作业的资源要求且按一定的算法选取作业调入内存→分配必要的资源,建立进程,插入就绪队列→等待进程调度程序的调度。第五章作业管理作业调度程序要完成的如下工作:(1)按照某种调度算法从后备作业队列中挑选作业;(2)为选中作业分配主存和外设资源;因此作业调度程序在挑选作业过程中要调用存储管理程序和设备管理程序中的某些功能(如“建立原语”和“撤销原语”);(3)为选中的作业建立相应的进程;(4)构造和填写作业运行时所需的有关表格,如作业表(登记所有在主存中各作业的有关信息)等;(5)作业结束时完成该作业的善后处理工作,如收回资源,输出必要的信息,该作业的全部进程(PCB)和作业控制块(JCB)。二、作业调度的功能根据计算机管理人员所制定的规则从所有后备作业队列上选择一个或多个作业置于“运行”状态,并为它们分配必要的资源,建立相应的用户作业进程和为其服务的系统进程,最后将它们的程序段调入主存以等待进程调度程序的调度。即:审查系统能否满足用户作业的资源要求且按一定的算法选取作业调入内存→分配必要的资源,建立进程,插入就绪队列→等待进程调度程序的调度。第五章作业管理三、作业调度的目标作业调度的目标与整个系统的设计目标有关,总目标是:(1)能更好地为用户服务;(2)能有效地改善系统性能。因此,调度目标有以下两方面:面向用户的作业调度目标:作业的平均周转时间尽可能短;保证截止时间前完成;优先权高的作业得到优先服务。面向系统的作业调度目标:系统能获得大的吞吐量;使CPU“忙”;平衡利用资源。由于这些目标的相互冲突,任一调度算法要想同时满足上述目标是不可能的。例如,要想执行尽可能多的作业,调度算法就应选择那些估计执行时间短的作业。而这对那些估计执行时间长的作业是不公平的,且它们的响应时间将会变得非常慢;再如,要使提高CPU的利用率,就得选择计算量大的作业,这对I/O型作业是不公平的等等。所以要想设计一个理想的调度算是件十分困难的事。在实际系统中,选用的调度算法往往是兼顾某些目标的一种折衷考虑的结果。下面我们列举一些在设计调度算法应考虑的因素:第五章作业管理①选择的调度算法应与系统的整个设计目标一致。例如,批处理系统应注重提高计算机的效率,尽量增加系统的平均吞吐量(指单位时间内的平均算题个数);而分时系统中应保证用户能忍受的响应时间和一定的资源利用率;实时系统的调度策略是在保证及时响应和处理与时间有关的事件的前提下,才考虑系统资源的使用效率。批处理——提高平均吞吐量;分时——响应时间、资源利用率;实时——实时性和可靠性。②注意系统资源的均衡使用,使“I/O繁忙”的作业与“CPU繁忙”的作业搭配起来运行。③应保证提交的作业在规定的截止时间内完成,而且应设法缩短作业的平均周转时间。必须指出,对一个具体的系统而言,如果考虑的因素过多,必然使算法变得复杂,结果使系统的开销增加,对提高资源利用反而不利。因此,大多数OS采用比较简单的调度算法。第五章作业管理四、调度算法1.先来先服务(FCFS)调度算法这是一种最简单的作业调度算法。作业进入系统后,由作业建立程

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功