操作系统中的进程调度:长期、中期、短期调度程序

什么是进程调度?

进程调度是操作系统的一项任务,用于调度处于就绪、等待和运行等不同状态的进程。

进程调度允许操作系统为每个进程分配 CPU 执行时间间隔。使用进程调度系统的另一个重要原因是它可以使 CPU 始终保持忙碌。这可以使程序的响应时间最短。

进程调度队列

进程调度队列可以帮助您为每个进程状态和 PCB 维护一个不同的队列。所有处于相同执行状态的进程都放置在同一个队列中。因此,当进程状态更改时,其 PCB 需要从现有队列中取消链接,然后移回到新的状态队列。

三种类型的操作系统队列是:

  1. 作业队列 – 它帮助您存储系统中的所有进程。
  2. 就绪队列 – 这种队列可以帮助您设置驻留在主内存中、已准备好并等待执行的每个进程。
  3. 设备队列 – 由于缺少 I/O 设备而被阻塞的进程。
Process Scheduling Queues
进程调度队列

在上图所示的图表中:

  • 矩形代表队列。
  • 圆圈表示资源
  • 箭头表示进程的流向。
  1. 每个新进程都首先放入就绪队列。它在就绪队列中等待,直到最终被处理执行。在这里,新进程被放入就绪队列,并等待它被选中执行或被调度。
  2. 其中一个进程被分配了 CPU 并正在执行。
  3. 进程应发出 I/O 请求。
  4. 然后,应将其放入 I/O 队列。
  5. 进程应创建新的子进程。
  6. 进程应等待其终止。
  7. 它应被强制从 CPU 中移除,从而产生中断。中断完成后,应将其送回就绪队列。

二状态进程模型

二状态进程模型包括:

  • 运行状态
  • 非运行状态

运行中

操作系统中,每当创建一个新进程时,它就会进入系统,并应该运行。

非运行

未运行的进程被保留在一个队列中,等待执行。队列中的每个条目都指向一个特定的进程。

调度目标

以下是进程调度的重要目标:

  • 在可接受的响应时间内最大化交互用户数量。
  • 在响应时间和利用率之间取得平衡。
  • 避免无限期推迟并强制执行优先级。
  • 它还应引用持有关键资源的进程。

进程调度程序类型

调度程序是一种允许您处理进程调度的系统软件。

主要有三种类型的进程调度程序:

  1. 长期调度程序
  2. 短期调度程序
  3. 中期调度程序

长期调度程序

长期调度程序也称为作业调度程序。此调度程序管理程序并从队列中选择进程,将它们加载到内存中执行。它还管理多道程序设计的程度。

然而,此类型调度程序的主要目标是提供平衡的作业组合,例如处理器、I/O 作业,从而允许管理多道程序。

中期调度程序

中期调度是交换的重要组成部分。它允许您处理已交换出的进程。在此调度程序中,正在运行的进程可能会被挂起,因为它会发出 I/O 请求。

运行中的进程可能会因发出 I/O 请求而被挂起。挂起的进程无法朝着完成的方向取得任何进展。为了将进程从内存中移除并为其他进程腾出空间,挂起的进程应移至二级存储。

短期调度程序

短期调度也称为CPU 调度程序。此调度程序的主要目标是根据设定的标准提高系统性能。这有助于您从一组已准备好执行的进程中进行选择,并将 CPU 分配给其中一个。调度程序将 CPU 控制权交给短期调度程序选择的进程。

调度程序之间的区别

长期 vs. 短期 vs. 中期

长期 短期 中期
长期调度程序也称为作业调度程序。 短期调度程序也称为 CPU 调度程序。 中期调度程序也称为交换调度程序。
在分时系统中,它要么不存在,要么很少。 在分时顺序中,它不重要。 此调度程序是分时系统的一个组成部分。
速度比短期调度程序慢。 速度比短期和中期调度程序都快。 它提供中等速度。
允许您从池中选择进程并将其加载到内存中。 它只选择处于就绪状态以供执行的进程。 它有助于将进程送回内存。
提供完全控制。 提供较少控制。 降低多道程序设计的水平。

什么是上下文切换?

它是将 CPU 的状态存储/恢复到 PCB 中的一种方法。这样,进程执行就可以在稍后从同一处继续。上下文切换方法对于多任务操作系统很重要。

摘要

  • 进程调度是操作系统的一项任务,用于调度处于就绪、等待和运行等不同状态的进程。
  • 二状态进程模型包括:1)运行,和 2)非运行。
  • 进程调度在可接受的响应时间内最大化交互用户数量。
  • 调度程序是一种允许您处理进程调度的系统软件。
  • 三种类型的调度程序是:1)长期 2)短期 3)中期。
  • 长期调度程序管理程序并从队列中选择进程,将它们加载到内存中执行。
  • 中期调度程序允许您处理已交换出的进程。
  • 短期调度程序的主要目标是根据设定的标准提高系统性能。
  • 长期调度程序也称为作业调度程序,而短期调度程序称为CPU 调度程序,中期调度程序也称为交换调度程序。