操作系统中的进程调度:长期、中期、短期调度程序
什么是进程调度?
进程调度是操作系统的一项任务,用于调度处于就绪、等待和运行等不同状态的进程。
进程调度允许操作系统为每个进程分配 CPU 执行时间间隔。使用进程调度系统的另一个重要原因是它可以使 CPU 始终保持忙碌。这可以使程序的响应时间最短。
进程调度队列
进程调度队列可以帮助您为每个进程状态和 PCB 维护一个不同的队列。所有处于相同执行状态的进程都放置在同一个队列中。因此,当进程状态更改时,其 PCB 需要从现有队列中取消链接,然后移回到新的状态队列。
三种类型的操作系统队列是:
- 作业队列 – 它帮助您存储系统中的所有进程。
- 就绪队列 – 这种队列可以帮助您设置驻留在主内存中、已准备好并等待执行的每个进程。
- 设备队列 – 由于缺少 I/O 设备而被阻塞的进程。
在上图所示的图表中:
- 矩形代表队列。
- 圆圈表示资源
- 箭头表示进程的流向。
- 每个新进程都首先放入就绪队列。它在就绪队列中等待,直到最终被处理执行。在这里,新进程被放入就绪队列,并等待它被选中执行或被调度。
- 其中一个进程被分配了 CPU 并正在执行。
- 进程应发出 I/O 请求。
- 然后,应将其放入 I/O 队列。
- 进程应创建新的子进程。
- 进程应等待其终止。
- 它应被强制从 CPU 中移除,从而产生中断。中断完成后,应将其送回就绪队列。
二状态进程模型
二状态进程模型包括:
- 运行状态
- 非运行状态
运行中
在操作系统中,每当创建一个新进程时,它就会进入系统,并应该运行。
非运行
未运行的进程被保留在一个队列中,等待执行。队列中的每个条目都指向一个特定的进程。
调度目标
以下是进程调度的重要目标:
- 在可接受的响应时间内最大化交互用户数量。
- 在响应时间和利用率之间取得平衡。
- 避免无限期推迟并强制执行优先级。
- 它还应引用持有关键资源的进程。
进程调度程序类型
调度程序是一种允许您处理进程调度的系统软件。
主要有三种类型的进程调度程序:
- 长期调度程序
- 短期调度程序
- 中期调度程序
长期调度程序
长期调度程序也称为作业调度程序。此调度程序管理程序并从队列中选择进程,将它们加载到内存中执行。它还管理多道程序设计的程度。
然而,此类型调度程序的主要目标是提供平衡的作业组合,例如处理器、I/O 作业,从而允许管理多道程序。
中期调度程序
中期调度是交换的重要组成部分。它允许您处理已交换出的进程。在此调度程序中,正在运行的进程可能会被挂起,因为它会发出 I/O 请求。
运行中的进程可能会因发出 I/O 请求而被挂起。挂起的进程无法朝着完成的方向取得任何进展。为了将进程从内存中移除并为其他进程腾出空间,挂起的进程应移至二级存储。
短期调度程序
短期调度也称为CPU 调度程序。此调度程序的主要目标是根据设定的标准提高系统性能。这有助于您从一组已准备好执行的进程中进行选择,并将 CPU 分配给其中一个。调度程序将 CPU 控制权交给短期调度程序选择的进程。
调度程序之间的区别
长期 vs. 短期 vs. 中期
长期 | 短期 | 中期 |
---|---|---|
长期调度程序也称为作业调度程序。 | 短期调度程序也称为 CPU 调度程序。 | 中期调度程序也称为交换调度程序。 |
在分时系统中,它要么不存在,要么很少。 | 在分时顺序中,它不重要。 | 此调度程序是分时系统的一个组成部分。 |
速度比短期调度程序慢。 | 速度比短期和中期调度程序都快。 | 它提供中等速度。 |
允许您从池中选择进程并将其加载到内存中。 | 它只选择处于就绪状态以供执行的进程。 | 它有助于将进程送回内存。 |
提供完全控制。 | 提供较少控制。 | 降低多道程序设计的水平。 |
什么是上下文切换?
它是将 CPU 的状态存储/恢复到 PCB 中的一种方法。这样,进程执行就可以在稍后从同一处继续。上下文切换方法对于多任务操作系统很重要。
摘要
- 进程调度是操作系统的一项任务,用于调度处于就绪、等待和运行等不同状态的进程。
- 二状态进程模型包括:1)运行,和 2)非运行。
- 进程调度在可接受的响应时间内最大化交互用户数量。
- 调度程序是一种允许您处理进程调度的系统软件。
- 三种类型的调度程序是:1)长期 2)短期 3)中期。
- 长期调度程序管理程序并从队列中选择进程,将它们加载到内存中执行。
- 中期调度程序允许您处理已交换出的进程。
- 短期调度程序的主要目标是根据设定的标准提高系统性能。
- 长期调度程序也称为作业调度程序,而短期调度程序称为CPU 调度程序,中期调度程序也称为交换调度程序。