作业调度是从处于“后备”状态的队列中选取作业投入运行。一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完成四个状态。后备状态是指把作业的全部信息进入外存后,为进入系统的作业建立作业控制块,并把它加入到后备作业队列中,等候作业调度程序调度;而当作业被作业调度程序选中,且分配了必要的资源,建立一组相应的进程后,该作业就进入了运行状态。
本教程操作环境:windows7系统、Dell G3电脑。
作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。因此,有时也把作业调度称为接纳调度。
作业状态
作业从进入系统到运行结束,一般要经历进入、收容、运行、完成四个阶段。相应地,一个作业从交给计算机系统到执行结束退出系统,一般都要经历提交、后备、执行和完成四个状态。
进入状态:即提交状态,作业由输入设备进入外存储器(也称输入井)的过程;处于提交状态的作业,其信息正在进入系统。
后备状态:当作业的全部信息进入外存后,系统就为该作业建立一个作业控制块(JCB)。
操作员把作业输入到直接存取的后援存取器后,为进入系统的作业建立作业控制块,并把它加入到后备作业队列中,等候作业调度程序调度。这一过程也称为作业注册。
运行状态:作业被作业调度程序选中,且分配了必要的资源,建立一组相应的进程后,该作业就进入了运行状态。它分为三种状态:即就绪状态、执行状态、阻塞状态。
一个后备作业被作业调度程序选中分配了必要的资源并进入了内存,作业调度程序同时为其建立了相应的进程后,该作业就由后备状态变成了执行状态。
完成状态:当作业正常运行结束或因发生错误而终止时,作业进入完成阶段。 一般来说,作业调度程序需从处于后备状态的队列中选取适当的作业投入运行。
作业调度的步骤如下:
(1)根据JCB属性建立JCB控制表格,记录作业各种工作状态;
(2)采用选定的调度算法,从后备作业中选出一道或多道作业投入运行;
(3)为被选中的作业做好运行前的准备工作,包括创建进程及为相应的进程分配系统资源:
(4)作业运行结束后的善后处理工作。比如状态登记、资源回收、输出处理、作业的撤销。
常用的作业调度算法
常用的作业调度算法有先来先服务、最短作业优先法、响应比高者优先和优先数法。
(1)先来先服务(FCFS)。按作业到达的先后次序调度,它不利于短作业。
(2)短作业优先(SJF)。按作业的估计运行时间调度,估计运行时间短的作业优先调度。它不利于长作业,可能会使一个估计运行时间长的作业迟迟得不到服务。
(3)响应比高者优先(HRN)。综合上述两者,既考虑作业估计运行时间,又考虑作业等待时间,响应比是:HRN=(估计运行时间+等待时间)/估计运行时间。
(4)优先级调度。根据作业的优先级别,优先级高者先调度。
此外,我们还需了解几个重要概念。
1.作业的周转时间 作业的周转时间是指从作业提交到作业完成之间的时间间隔。作业i的周转时间 Ti可用公式表示如下: Ti=Tei-Tsi 其中Tei为作业i的完成时间,Tsi为作业i的提交时间。
2.平均周转时间 平均周转时间是指多个作业的周转时间的平均值。n个作业的平均周转时间了可用公式表示如下: T=(T1+T2+…+Tn)/n
3.带权周转时间 带权周转时间是指作业周转时间与作业实际运行时间的比。作业i的带权周转时间 Wi可用公式表示如下: Wi=Ti/Tri其中Ti为作业i的周转时间,Tri为作业i的实际运行时间。
4.平均带权周转时间 平均带权周转时间是指多个作业的带权周转时间的平均值。
更多相关知识,请访问常见问题栏目!
以上是作业调度程序是从处于什么状态的队列中选取作业投入运行的详细内容。更多信息请关注PHP中文网其他相关文章!