求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
操作系统教程
1.操作系统-主页
2.操作系统-概述
3.操作系统-组件
4.操作系统-类型
5.操作系统-服务
6.操作系统-属性
7.操作系统-进程
8.操作系统-进程调度
9.操作系统调度算法
10.操作系统-多线程
11.操作系统-内存管理
12.操作系统-虚拟内存
13.操作系统- I/O 硬件
14.操作系统- I/O 软件
15.操作系统- 文件系统
16.操作系统- 安全性
17.操作系统- Linux
 
 
操作系统 - 进程调度
来源: W3Schools 在线教程    编辑:Alice(火龙果软件)
805 次浏览
5次  

定义

进程调度是进程管理器的活动,它处理从 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 状态信息

  • 监听信息

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



805 次浏览
5次