一个批处理型的作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,可能要经历的三级调度:

  • 高级调度

又称作业调度、长程调度、接纳调度

作用:把外存上处于后备队列中的作业调入内存,并为它们创建进程、分配资源、排在就绪队列上,准备执行。

分时系统、实时系统,通常不需要作业调度。

  • 中级调度

又称中程调度。

目的:提高内存利用率和系统吞吐率。

作用:使暂时不能运行的进程从内存调至外存,进入就绪驻外存状态或挂起状态。把外存上又具备运行条件的就绪进程,重新掉入内存,并修改为就绪状态,挂在就绪队列上。

又称对换。

  • 低级调度

也称为进程调度、短程调度。

作用:决定就绪队列中的哪个进程应获得处理机,然后由分派程序执行把处理机分配给该进程的具体操作。

在OS中都必须配置。

进程调度的两种调度方式

  • 非抢占方式
  • 抢占方式

非抢占方式

一旦处理机分配给某进程后,便让该进程一直执行,直至该进程完成或阻塞时,才把处理机分配给其他进程。

非抢占方式引起进程调度的因素

(1) 进程执行完毕,或因发生某种事件而不能继续执行;

(2)执行中的进程因提出I/O请求而暂停执行

(3)在进程通信或同步过程中执行类某种原语操作,如P操作(WAIT操作)、BLOCK原语、WAKEUP原语等。

抢占方式

允许暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。

抢占原则

(1)优先权原则。优先权高的进程抢占处理机。

(2)短作业优先原则。短作业(进程)抢占当前较长作业(进程)的处理机。

(3)时间片原则。各进程按时间片运行,当一个时间片用完后重新调度。

调度队列模型

  • 仅有进程调度的调度队列模型
  • 有高级和低级调度的调度队列模型
  • 同时有三级调度的调度队列模型

仅有进程调度的调度队列模型

  • 通常,把就绪进程组织成FIFO队列,每当创建新进程时排在就绪队列的末尾,按时间片轮转方式进行。

进程在执行时,出现三种情况:

(1)任务在时间片内完成,进程便在释放处理机后进入完成状态。

(2)任务在时间片内未完成,OS便将该任务再放入就绪队列的末尾。

(3)在执行期间,进程因为某事件而被阻塞后,被OS放入阻塞队列。

有高级和低级调度的调度队列模型

高级调度是作业调度

与前一模型的差别:

(1)就绪队列的形式。批处理系统中最常用的是优先权队列。也可采用无序链表方式。

(2)设置多个阻塞队列。

有三级调度的调度队列模型

  • 调出时,可使进程状态由内存就绪转变为外存就绪,由内存阻塞转变为外存阻塞。
  • 在中级调度使外存就绪转变为内存就绪。
02-11 15:10