问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

操作系统进程调度详解:从基本概念到调度器类型

创作时间:
作者:
@小白创作中心

操作系统进程调度详解:从基本概念到调度器类型

引用
1
来源
1.
http://lib.uml.com.cn/ebook/OS/OS8.asp

进程调度是操作系统中一个核心概念,它决定了多个进程如何共享CPU资源。本文将详细介绍进程调度的定义、类别、队列管理、调度器类型以及上下文切换等关键知识点。

进程调度的定义

进程调度是进程管理器的活动,它处理从 CPU 中移除正在运行的进程并根据特定策略选择另一个进程。进程调度是多道程序操作系统的重要组成部分。此类操作系统允许一次将多个进程加载到可执行内存中,并且加载的进程使用时分复用共享 CPU。

调度类别

调度分为两类:

  1. 非抢占式:在进程完成执行之前,不能从进程中获取资源。当正在运行的进程终止并进入等待状态时,就会发生资源切换。

  2. 抢占式:这里操作系统将资源分配给进程一段固定的时间。在资源分配过程中,进程从运行状态切换到就绪状态或从等待状态切换到就绪状态。发生这种切换是因为 CPU 可能会优先考虑其他进程,并将优先级较高的进程替换为正在运行的进程。

进程调度队列

操作系统在进程调度队列中维护所有进程控制块 (PCB)。操作系统为每个进程状态维护一个单独的队列,并且处于相同执行状态的所有进程的PCB被放置在同一个队列中。当一个进程的状态发生变化时,它的 PCB 会从它当前的队列中取消链接并移动到它的新状态队列中。

操作系统维护以下重要的进程调度队列:

  • 作业队列:这个队列保存了系统中的所有进程。
  • 就绪队列:该队列保留了一组驻留在主内存中的所有进程,准备好并等待执行。一个新进程总是放在这个队列中。
  • 设备队列:由于 I/O 设备不可用而阻塞的进程构成此队列。

操作系统可以使用不同的策略来管理每个队列(FIFO、循环、优先级等)。操作系统调度程序确定如何在就绪队列和运行队列之间移动进程,系统上每个处理器核心只能有一个条目;在上图中,它已与 CPU 合并。

两态过程模型

两态进程模型是指运行和非运行状态,如下所述:

调度器

调度程序是一种特殊的系统软件,它以各种方式处理进程调度。他们的主要任务是选择要提交到系统中的作业并决定运行哪个进程。调度器分为三种类型:

  • 长期调度程序
  • 短期调度程序
  • 中期调度程序

长期调度程序

它也被称为作业调度器。长期调度程序确定哪些程序被允许进入系统进行处理。它从队列中选择进程并将它们加载到内存中执行。进程加载到内存中进行 CPU 调度。

作业调度程序的主要目标是提供平衡的作业组合,例如 I/O 限制和处理器限制。它还控制多道程序的程度。如果多道程序的程度是稳定的,那么进程的平均创建率必须等于进程离开系统的平均离开率。

在某些系统上,长期调度程序可能不可用或很少。分时操作系统没有长期调度程序。当一个进程从新状态变为就绪状态时,就需要使用长期调度器。

短期调度程序

也称为CPU调度器。其主要目标是根据所选标准提高系统性能。它是进程的就绪状态到运行状态的变化。CPU 调度程序在准备好执行的进程中选择一个进程,并将 CPU 分配给其中一个。

短期调度程序,也称为调度程序,决定接下来执行哪个进程。短期调度程序比长期调度程序更快。

中期调度程序

中期调度是交换的一部分。它从内存中删除进程。它降低了多道程序的程度。中期调度器负责处理换出的进程。

如果一个正在运行的进程发出 I/O 请求,它可能会被挂起。暂停的进程无法在完成方面取得任何进展。在这种情况下,为了从内存中删除进程并为其他进程腾出空间,挂起的进程被移动到辅助存储。这个过程被称为swapping,这个过程被称为被换出或转出。可能需要交换以改进流程组合。

调度器之间的比较

上下文切换

上下文切换是在进程控制块中存储和恢复 CPU 的状态或上下文的机制,以便稍后可以从同一点恢复进程执行。使用这种技术,上下文切换器使多个进程能够共享一个 CPU。上下文切换是多任务操作系统功能的重要组成部分。

当调度程序将 CPU 从执行一个进程切换到执行另一个时,当前运行进程的状态被存储到进程控制块中。之后,从自己的PCB中加载下一个要运行的进程的状态,用于设置PC、寄存器等。此时,第二个进程就可以开始执行了。

上下文切换是计算密集型的,因为必须保存和恢复寄存器和内存状态。为了避免上下文切换时间量,一些硬件系统采用两组或更多组处理器寄存器。当进程切换时,会保存以下信息以备后用。

  • 程序计数器
  • 计划信息
  • 基础和限制寄存器值
  • 当前使用的寄存器
  • 改变状态
  • I/O 状态信息
  • 监听信息
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号