首页 理论教育 计算机操作系统中的处理机调度层次

计算机操作系统中的处理机调度层次

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。在批处理系统中,是以作业为基本单位从外存调入内存的。在批处理系统中,作业进入系统后,总是先驻留在外存的后备队列上,因此需要有作业调度的过程,以便将它们分批地装入内存。低级调度的主要功能如下:保存处理机的现场信息。

在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对批量型作业而言,通常需要经历作业调度(又称高级调度或长程调度)和进程调度(又称低级调度或短程调度)两个过程后方能获得处理机;对于终端型作业,则通常只需要经过进程调度即可获得处理机。在较完善的操作系统中,为提高内存的利用率,往往还设置了中级调度(又称中程调度)。对于上述的每一级调度,又都可采用不同的调度方式和调度算法。对于一个批处理型作业,从进入系统并驻留在外存的后备队列开始,直至作业运行完毕,可能要经历上述的三级调度(图4-1)。

图4-1 处理机调度层次

4.1.1 高级调度

高级调度(high level scheduling)又称作业调度或长程调度(long term scheduling),其主要功能是根据某种算法,把外存上处于后备队列中的作业调入内存,也就是说,它的调度对象是作业。为此,先对作业的基本概念做简单介绍。

1.作业和作业步

(1)作业(job)。作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。

(2)作业步(job step)。通常,在作业运行期间,每个作业都必须经过若干个相对独立又相互关联的顺序加工步骤才能得到结果,把其中的每一个加工步骤称为一个作业步,各作业步之间存在相互联系,往往是把上一个作业步的输出作为下一个作业步的输入。例如,一个典型的作业可分成三个作业步:①“编译”作业步,通过执行编译程序对源程序进行编译,产生若干个目标程序段;②“连接装配”作业步,将“编译”作业步所产生的若干个目标程序段装配成可执行的目标程序;③“运行”作业步,将可执行的目标程序读入内存并控制其运行。

(3)作业流。若干个作业进入系统后,被依次存放在外存上,这便形成了输入的作业流;在操作系统的控制下,逐个作业进行处理,于是便形成了处理作业流。

2.作业控制块

为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块(job control block,JCB),如同PCB是进程在系统中存在的标志一样,JCB是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。在JCB中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户账户、作业类型(CPU繁忙型、I/O繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。每当作业进入系统时,系统便为每个作业建立一个JCB,根据作业类型将它插入相应的后备队列中。作业调度程序依据一定的调度算法来调度它们,被调度到的作业将会装入内存。在作业运行期间,系统就按照JCB中的信息对作业进行控制。当一个作业执行结束进入完成状态时,系统负责回收分配给它的资源,撤销它的JCB。

3.作业调度

作业调度的主要功能是根据JCB中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。因此,有时也把作业调度称为接纳调度(admission scheduling)。对用户而言,总希望自己作业的周转时间尽可能地少,最好周转时间就等于作业的执行时间。然而对系统而言,则希望作业的平均周转时间尽可能少,有利于提高CPU的利用率和系统的吞吐量。因此,每个系统在选择作业调度算法时,既应考虑用户的要求,又能确保系统具有较高的效率。在每次执行作业调度时,都须做出以下两个决定:

(1)决定接纳多少个作业。作业调度每次要接纳多少个作业进入内存,取决于多道程序度(degree of multiprogramming),即允许多少个作业同时在内存中运行。当内存中同时运行的作业数目太多时,可能会影响系统的服务质量,例如使周转时间太长。但如果在内存中同时运行作业的数量太少,又会导致系统的资源利用率和系统吞吐量太低,因此,多道程序度的确定应根据系统的规模和运行速度等情况做适当的折中。

(2)决定接纳哪些作业。应将哪些作业从外存调入内存,这将取决于所采用的调度算法。最简单的是先来先服务调度算法,这是指将最早进入外存的作业最先调入内存;较常用的一种算法是短作业优先调度算法,是将外存上最短的作业最先调入内存;另一种较常用的是基于作业优先级的调度算法,该算法是将外存上优先级最高的作业优先调入内存;比较好的一种算法是“响应比高者优先”的调度算法。在批处理系统中,作业进入系统后,总是先驻留在外存的后备队列上,因此需要有作业调度的过程,以便将它们分批地装入内存。然而在分时操作系统中,为了做到及时响应,用户通过键盘输入的命令或数据等都是被直接送入内存的,因而无须再配置上述的作业调度机制,但也需要有某些限制性措施来限制进入系统的用户数。即如果系统尚未饱和,将接纳所有授权用户,否则,将拒绝接纳。类似地,在实时系统中通常也不需要作业调度。

4.1.2 低级调度

低级调度(low level scheduling)又称进程调度(或线程调度)、短程调度(short-term scheduling)。它的主要功能是按照某种原则决定就绪队列中的哪个进程或内核级线程能获得处理器,并将处理器出让给它进行工作。低级调度中执行分配CPU的程序称分派程序(dispatcher),它是操作系统最为核心的部分,执行十分频繁,低级调度策略优劣直接影响整个系统的性能,因而这部分代码要求精心设计,并常驻内存工作。

1.进程调度功能

低级调度用于决定就绪队列中的哪个进程(或内核级线程,为叙述方便,以后只写进程)应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。

低级调度的主要功能如下:

(1)保存处理机的现场信息。在进程调度进行调度时,首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的PCB中的相应单元。

(2)按某种算法选取进程。低级调度程序按某种算法如优先数算法、轮转法等,从就绪队列中选取一个进程,把它的状态改为运行态,并准备把处理机分配给它。

(3)把处理器分配给进程。由分派程序把处理器分配给进程。此时需为选中的进程恢复处理机现场,即把选中进程的PCB内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让它从取出的断点处开始继续运行。

2.进程调度原因

引起进程调度的原因一般有以下五类:

(1)正在执行的进程运行完毕或由于某种错误而终止运行(陷阱或中断)。(www.xing528.com)

(2)执行中的进程执行某种原语操作,如阻塞原语和唤醒原语时。

(3)执行中的进程提出I/O请求后被阻塞。

(4)分时操作系统中时间片到了。

(5)在可抢占方式中,当有一个优先级更高的进程就绪。

3.进程调度方式

进程调度的方式包括两种:非抢占方式和可抢占方式。

1)非抢占方式

当某一进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,该进程仍继续执行,直到其完成或发生某种事件而进入阻塞态时,才把处理机分配给更为重要或紧迫的进程。

在非抢占方式中,引起进程调度的因素包括:正在执行的进程执行完毕,或因发生某事件而不能再继续执行;执行中的进程因提出I/O请求而暂停执行;在进程通信或同步过程中执行了某种原语操作,如wait、Block、Wakeup原语。

非抢占方式调度的优缺点如下:

(1)优点:算法简单,系统开销小。

(2)缺点:紧急任务不能及时响应;短进程到达要等待长进程运行结束。

2)可抢占方式

当某一进程正在处理机上执行时,若有某个更为重要或紧迫的进程进入就绪队列,则立即暂停正在执行的进程,将处理机分配给这个更为重要或紧迫的进程。

可抢占调度方式主要遵循以下原则:

(1)优先权原则允许高优先权的新到进程抢占当前进程的处理机。

(2)短作业(进程)优先原则允许执行时间短的新到进程抢占当前进程的处理机。

(3)时间片原则时间片用完后停止执行,重新进行调度,适用于分时系统。

可抢占方式调度的优缺点如下:

(1)优点:适于时间要求严格的实时系统。

(2)缺点:调度算法复杂,系统开销大。

对不同调度类型,相应的调度算法也不同,低级调度的核心是采用何种算法把处理器分配给进程或线程。

4.1.3 中级调度

中级调度(medium level scheduling)又称平衡负载调度、中程调度(medium-term scheduling)。它决定主存储器中所能容纳的进程数,这些进程将允许参与竞争处理器和有关资源,而有些暂时不能运行的进程被调出主存,这时这个进程处于挂起态,当进程具备了运行条件,且主存又有空闲区域时,再由中级调度决定把一部分这样的进程重新调回主存工作。中级调度根据存储资源量和进程的当前状态来决定辅存和主存中进程的对换,它所使用的方法是通过把一些进程换出主存,从而使之进入挂起态,不参与低级调度,起到短期平滑和调整系统负荷的作用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈