|
知识路径: > 计算机系统知识 > 计算机软件知识 > 操作系统知识 > 作业管理 > 作业管理 >
|
相关知识点:5个
|
|
|
|
对成批进入系统的用户作业,按一定的策略选取若干个作业使它们可以获得处理器运行,这项工作称为作业调度。常用的作业调度算法包括以下几种。
|
|
|
|
先来先服务(First Come,First Served)算法是按照作业进入系统的先后次序来挑选作业,先进入系统的作业优先被挑选。这种算法容易实现,但效率不高,只顾及到作业等候时间,而没考虑作业要求服务时间的长短。显然这不利于短作业而优待了长作业,或者说有利于CPU繁忙型作业不利于I/O繁忙型作业。
|
|
|
|
最短作业优先(Shortest Job First)算法是以进入系统的作业所要求的CPU时间为标准,总是选取估计计算时间最短的作业投入运行。这一算法也易于实现,但效率也不高,它的主要弱点是忽视了作业等待时间。由于系统不断地接受新作业,而作业调度又总是选择计算时间短的作业投入运行,因此,使进入系统时间早但计算时间长的作业等待时间过长,会出现饥饿现象。
|
|
|
|
先来服务算法与最短作业优先算法都是比较片面的调度算法。先来先服务算法只考虑作业的等候时间而忽视了作业的计算时问,而最短作业优先算法恰好与之相反,它只考虑用户估计的作业计算时间而忽视了作业的等待时间。响应比最高者优先算法是介乎这两种算法之间的一种折衷的算法,既考虑作业等待时间,又考虑作业的运行时间,这样既照顾了短作业又不使长作业的等待时间过长,改进了调度性能。把作业进入系统后的等待时间与估计运行时间之比称做响应比,定义:
|
|
|
|
显然,计算时间短的作业容易得到较高的响应比,因为,这时分母较小,使得HRN较高,因此本算法是优待短作业的。但是,如果一个长作业在系统中等待的时间足够长后,由于分子足够大,使得HRN较大,那么它也将获得足够高的响应比,从而可以被选中执行,不至于长时间地等待下去,饥饿的现象不会发生。
|
|
|
|
这种算法是根据确定的优先数来选取作业,每次总是选择优先数高的作业。规定用户作业优先数的方法是多种多样的。一种是由用户自己提出作业的优先数。有的用户为了自己的作业尽快地被系统选中就设法提高自己作业的优先数,这时系统可以规定优先数越高则需付出的计算机使用费就越多,以作限制。另一种是由系统综合考虑有关因素来确定用户作业的优先数。例如,根据作业的缓急程度作业的类型,作业计算时间的长短、等待时间的多少、资源申请情况等来确定优先数。确定优先数时各因素的比例应根据系统设计目标分析这些因素在系统中的地位而决定。上述确定优先数的方法称为静态优先数法;如果在作业运行过程中,根据实际情况和作业发生的事件动态地改变其优先数,称为动态优先数法。
|
|
|