什么是调度队列?
进入系统的进程存储在**作业队列**中。如果进程处于就绪状态,则通常将其放入**就绪队列**。
等待设备的进程将被放置在**设备队列**中。每个I/O设备都有唯一的设备队列。
首先将新进程放入**就绪队列**,然后它在就绪队列中等待,直到被选中执行。
一旦进程被分配给CPU并正在执行,就会发生以下事件之一:
进程发出I/O请求,然后被放入I/O队列。
进程可能会创建一个新的子进程并等待其终止。
进程可能会被强制从CPU中移除(中断),并将其放回就绪队列。
在前两种情况下,进程从等待状态切换到就绪状态,然后将其放回就绪队列。进程继续这个循环,直到它终止,此时它将从所有队列中移除,并释放其PCB和资源。
调度程序类型
有三种类型的调度程序:
长期调度程序
当创建新进程时,如果就绪队列中就绪进程的数量变得非常高,则执行长期调度。然后,操作系统在维护长列表方面会有开销,切换和调度增加。因此,长期调度程序只允许有限数量的进程进入就绪队列。
长期调度程序运行频率较低。它决定哪个程序必须进入作业队列。作业处理器从作业队列中选择进程,并将它们加载到内存中以执行。
作业调度程序的主要目标是保持良好程度的多道程序设计。多道程序设计的程度意味着进程创建的平均速率等于进程从执行内存中离开的平均速率。
长期和短期调度程序的示意图如下:
短期调度程序
短期调度程序称为CPU调度程序,运行频率非常高。调度程序的目标是提高CPU性能并提高进程执行速率。
中期调度程序
这种类型的调度将进程从内存中移除,从而降低多道程序设计的程度。稍后,进程将重新引入内存,并继续其执行。这称为**交换**。进程被交换出去,稍后由中期调度程序交换进来。
中期调度程序的示意图如下:
广告