|
知识路径: > 计算机系统知识 > 计算机软件知识 > 操作系统知识 > 作业管理 >
|
相关知识点:72个
|
|
|
|
|
|
作业(Job)是用户提交给操作系统计算的一个独立任务。一般每个作业必须经过若干个相对独立又相互关联的顺序加工步骤才能得到结果,其中,每一个加工步骤称一个作业步(Job Step),例如,一个作业可分成编译、连接装配和运行三个作业步,往往上一个作业步的输出是下一个作业步的输入。作业由用户组织,作业步由用户指定,一个作业从提交给系统,直到运行结束获得结果,要经过提交、收容、执行和完成四个阶段。
|
|
|
|
作业管理可以采取脱机和联机两种方式运行。采用脱机控制方式,它提供一个作业控制语言,用户使用作业控制语言书写作业说明书,它是按规定格式书写的一个文件,把用户对系统的各种请求和对作业的控制要求集中描述,并与程序和数据一起提交给系统(管理员)。计算机系统成批接受用户作业输入,把它们放到输入井,然后在操作系统的管理和控制下执行。在联机方式下,操作系统为用户提供了一组联机命令,用户可以通过终端键入命令,将自己想让计算机干什么的意图告诉计算机,以控制作业的运行过程。因此整个作业的运行过程是需要人工干预的。
|
|
|
当一个作业被操作系统接受,就必须创建一个作业控制块,并且这个作业在它的整个生命周期中将顺序地处于以下四个状态,如下图所示。
|
|
|
|
|
(1)输入状态:此时作业的信息正在从输入设备上预输入。
|
|
|
(2)后备状态:此时作业预输入结束但尚未被选中执行。
|
|
|
(3)执行状态:作业已经被选中并构成进程去竞争处理器资源以获得运行。
|
|
|
(4)完成状态:作业已经运行结束,正在等待缓输出。
|
|
|
|
对成批进入系统的用户作业,按一定的策略选取若干个作业使它们可以获得处理器运行,这项工作称为作业调度。常用的作业调度算法包括以下几种。
|
|
|
|
先来先服务(First Come,First Served)算法是按照作业进入系统的先后次序来挑选作业,先进入系统的作业优先被挑选。这种算法容易实现,但效率不高,只顾及到作业等候时间,而没考虑作业要求服务时间的长短。显然这不利于短作业而优待了长作业,或者说有利于CPU繁忙型作业不利于I/O繁忙型作业。
|
|
|
|
最短作业优先(Shortest Job First)算法是以进入系统的作业所要求的CPU时间为标准,总是选取估计计算时间最短的作业投入运行。这一算法也易于实现,但效率也不高,它的主要弱点是忽视了作业等待时间。由于系统不断地接受新作业,而作业调度又总是选择计算时间短的作业投入运行,因此,使进入系统时间早但计算时间长的作业等待时间过长,会出现饥饿现象。
|
|
|
|
先来服务算法与最短作业优先算法都是比较片面的调度算法。先来先服务算法只考虑作业的等候时间而忽视了作业的计算时问,而最短作业优先算法恰好与之相反,它只考虑用户估计的作业计算时间而忽视了作业的等待时间。响应比最高者优先算法是介乎这两种算法之间的一种折衷的算法,既考虑作业等待时间,又考虑作业的运行时间,这样既照顾了短作业又不使长作业的等待时间过长,改进了调度性能。把作业进入系统后的等待时间与估计运行时间之比称做响应比,定义:
|
|
|
|
显然,计算时间短的作业容易得到较高的响应比,因为,这时分母较小,使得HRN较高,因此本算法是优待短作业的。但是,如果一个长作业在系统中等待的时间足够长后,由于分子足够大,使得HRN较大,那么它也将获得足够高的响应比,从而可以被选中执行,不至于长时间地等待下去,饥饿的现象不会发生。
|
|
|
|
这种算法是根据确定的优先数来选取作业,每次总是选择优先数高的作业。规定用户作业优先数的方法是多种多样的。一种是由用户自己提出作业的优先数。有的用户为了自己的作业尽快地被系统选中就设法提高自己作业的优先数,这时系统可以规定优先数越高则需付出的计算机使用费就越多,以作限制。另一种是由系统综合考虑有关因素来确定用户作业的优先数。例如,根据作业的缓急程度作业的类型,作业计算时间的长短、等待时间的多少、资源申请情况等来确定优先数。确定优先数时各因素的比例应根据系统设计目标分析这些因素在系统中的地位而决定。上述确定优先数的方法称为静态优先数法;如果在作业运行过程中,根据实际情况和作业发生的事件动态地改变其优先数,称为动态优先数法。
|
|
|
|
在早期的单道批处理系统中,内存中仅有单作业在运行,致使系统中仍有许多资源空闲,设备利用率低,系统性能较差。如下图所示,当CPU工作时,外部设备不能工作;而外部设备工作时,CPU必须等待。
|
|
|
|
|
多道程序设计(multiprogramming)是指允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。从宏观上看,多道程序都处于运行过程中,但都未运行完成;从微观上看,各道程序轮流占用CPU,交替地执行。引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥系统部件的并行性。
|
|
|
操作系统中引入多道程序设计的好处:一是提高了CPU的利用率,二是提高了内存和I/O设备的利用率,三是改进了系统的吞吐率,四是充分发挥了系统的并行性。其主要缺点是作业周转时间延长。
|
|
|