首页 > 代码库 > 三级调度

三级调度

  1.高级调度(High Level Scheduling)

  高级调度,称作业调度或长程调度(Long-term Scheduling)。在批处理操作系统中,作业首先进入系统在辅存上的后备作业队列等候调度,因此,作业调度是必须的。它将按照系统预定的调度策略, 决定把后备队列作业中的哪些作业调入主存,为它们创建进程、分配资源,并将它们排在进程就绪队列外,使得这些作业的进程获得竞争处理机的权利,准备执行。 当作业运行结束后,作业调度程序还将为作业做善后工作。而在纯粹的分时或实时操作系统中,作业是联机的。为了缩短响应时间,作业不是建立在外存,而是直接 建立在内存中。用户以通过键盘直接将命令或数据送入内存,所以在分时和实时系统中,不需要配备作业调度。

  2.低级调度(Low Level Scheduling)

  低级凋度,又称进程调度或短程调度(Short-term Scheduling)。在进程状态的变化中,从就绪到运行的转变是由低级调度完成的。由于在多道程序环境下,进程(线程)的数目往往多于处理机数目,致使它们争用处理机。低级调度将按照某种原则决定就绪队列中的哪个进程或内核级线程能获得处理器。低级调度是最基本的调度,任何类型的操作系统都必须配置低级调度。

  3.中级调度(Medium Level Scheduling)

  中级调度,又称平衡负载调度、中程调度(Medium-term Scheduling)。很多操作系统为了提高内存利用率和作业吞吐量,专门引进了中级调度。中级调度决定主存储器中所能容纳的进程数,即决定哪些进程被允许参与竞争处理器资源,将一些皙时不能运行的进程调至外存上去等待,而不再占用宝贵的内存资源,腾出内存空间以便将外存上已具备执行条件的进程换如内存执行。此时这些被换出内存的进程处于挂起状态。当进程具备了运行条件,且主存又有空闲区域时,再由中级调度决定把一部分这样的进程重新调回主存工作。这样,中级调度根据存储资源量和进程的当前状态来决定辅存和主存中的进程的对换,进程在运行期间,可能要经历多次换进换出,起到短期调整系统负荷的作用。中级调度实际上就是存储器管理中的对换功能。

  综上所述,在3个层次的处理器调度中,所有操作系统必须配备低级调度。图所示为三级调度功能与进程状态转换的关系。高级调度发生在新进程的创建 中,它决定一个进程能丙被创建,或者是创建后能否被置为就绪状态,以参与竞争处理器资源获得运行;中级调度反映到进程状态上就是挂起和解除挂起,它根据系 统的当前负荷情况决定停留在主存中的进程数;低级调度则是决定哪一个就绪进程占用CPU运行。

  在上述3种调度中,进程调度的运行频率最高,在分时系统中通常是10?100ms便进行一次进程调度,因而进程调度算法不能太复杂,以免占用太 多的CPU时间。作业调度往往是发生在一个(批)作业运行完毕,退出系统,需要重新调入一个(枇)作业进入内存时,故作业调度的周期较长,大约几分钟一 次。因而也允许作业调度算法花费较多的时间。中级调度的运行频率基本上介于上述两种调度之间。

三级调度