第二章 02处理机调度(王道)

一、调度的概念、层次

1.1 知识总览

第二章 02处理机调度(王道)

1.2 调度的基本概念

第二章 02处理机调度(王道)
  • 定义:当资源有限时,按照特定规则决定任务处理顺序的机制
  • 生活实例:
    • 银行服务:普通客户先到先服务,VIP客户优先级更高
    • 宿舍卫生间:使用时间短的优先(1分钟>3分钟>10分钟),时间相同则先到先得
  • 核心问题:在资源受限情况下,通过规则(如短作业优先、优先级等)实现任务有序处理

1.3 调度的三个层次 – 高级调度

第二章 02处理机调度(王道)
  • 别名:作业调度
  • 作业定义:用户提交的具体任务 ≈ 请求操作系统启动程序处理特定任务
  • 调度场景:内存不足时,从外存作业后备队列选择作业调入内存
  • 关键特征:
    • 每个作业生命周期内只调入/调出各一次
    • 调入时创建PCB,调出时撤销PCB
  • 实例说明:Windows系统提示”内存不足,请关闭程序”即涉及作业调度决策

1.4 调度的三个层次 – 低级调度

第二章 02处理机调度(王道)
  • 别名:进程调度/处理机调度(最基本的一种调度)
  • 核心功能:从就绪队列选取进程分配CPU资源
  • 重要性:
    • 实现多道程序并发执行的基础
    • 通过高频调度(毫秒级)制造”并行”假象
  • 运行机制:快速轮转使宏观上表现为多进程同时运行

1.5 调度的三个层次 – 中级调度

第二章 02处理机调度(王道)
  • 别名:内存调度
  • 触发条件:内存资源紧张时
  • 核心操作:
    • 将非紧急进程数据移至外存 → 进入挂起态
    • 内存空闲时选择挂起队列进程调回内存
  • 现实表现:手机APP切换卡顿常因进程数据需从外存重新加载
  • 频率特点:介于高级与低级调度之间

1.6 进程的挂起态与七状态模型

第二章 02处理机调度(王道)
  • 挂起态-暂时调到外存等待进程的状态
    • 就绪挂起:内存不足时从就绪态转入
    • 阻塞挂起:从阻塞态转入
  • 状态转换:
    • 就绪态 ↔ 就绪挂起(通过中级调度)
    • 阻塞态 ↔ 阻塞挂起
    • 特殊情形:阻塞挂起→事件发生→直接进入就绪挂起
  • 创建异常:新建进程可能因内存不足直接进入就绪挂起
  • 就绪挂起和阻塞挂起的区别
    • 挂起态:进程映像在外存
    • 阻塞态:进程映像在内存
  • 队列管理:部分系统会细分多个挂起队列(按阻塞原因等)

与传统状态模型的对比

模型类型核心状态适用场景
三状态模型运行、就绪、阻塞简单操作系统(如早期 UNIX)
五状态模型三状态 + 新建、终止通用操作系统
七状态模型五状态 + 就绪挂起、阻塞挂起资源管理复杂的系统

1.7 进程的挂起态与七状态模型

第二章 02处理机调度(王道)
  • 空间维度:
    • 高级/中级:外存↔内存(前者面向作业,后者面向进程)
    • 低级:内存→CPU
  • 频率梯度:高级(最低) < 中级 < 低级(最高)
  • 状态影响:
    • 高级:无→创建态→就绪态
    • 中级:挂起态→就绪态(或阻塞挂起→阻塞态)
    • 低级:就绪态→运行态
  • 生命周期:
    • 高级:单次调入调出
    • 中级:可能多次调入调出

1.8 处理机调度知识回顾

第二章 02处理机调度(王道)

二、进程调度的时机切换与过程调度方式

2.1 知识总览

第二章 02处理机调度(王道)

2.2 进度调度的时机

第二章 02处理机调度(王道)

1、什么时候需要进行进程调度与切换的情况?

  • 主动放弃处理机:
    • 进程正常终止
    • 进程因异常而终止
    • 进程主动请求阻塞(如等待I/O)
  • 被动放弃处理机:
    • 时间片用完
    • 有更紧急任务需要处理(如I/O中断)
    • 更高优先级进程进入就绪队列

2、什么时候不能进行进程调度与切换的情况?

  • 中断处理过程:中断处理与硬件密切相关,难以中途切换
  • 进程在内核程序临界区:访问内核数据结构(如就绪队列)时需上锁,解锁前不能调度
  • 原子操作过程:原语操作必须一气呵成(如修改PCB状态并移动队列)
第二章 02处理机调度(王道)

2.3 内核程序临界区和普通临界区区别

第二章 02处理机调度(王道)
第二章 02处理机调度(王道)
第二章 02处理机调度(王道)

1、进程处于操作系统内核临界区为什么不能调度切换

  1. 数据完整性保护 – 如果进程在修改内核数据结构时被切换,可能导致数据处于不一致状态,其他进程看到的是”半完成”的操作结果。
  2. 避免竞态条件 – 多个进程同时访问同一内核资源会产生竞争,可能造成系统崩溃或数据损坏。
  3. 原子性保证 – 临界区内的操作需要作为一个整体完成,中途切换会破坏操作的原子性。

2、进程处于普通临界区为什么可以调度切换

  1. 非原子性保护 – 用户态临界区不像内核临界区那样要求绝对的原子性,允许进程在持有锁时被暂停。
  2. 锁状态保持 – 进程被切换时,它持有的锁状态会被保存,恢复执行时继续持有该锁。
  3. 避免优先级反转 – 如果禁止调度,低优先级进程可能长时间阻塞高优先级进程。

实际情况

  • 进程在临界区内可以被时间片用完而切换
  • 进程在临界区内可以因更高优先级进程而被抢占
  • 只是其他想进入同一临界区的进程会被阻塞等待

例外情况: 某些实时系统或特殊应用可能会临时禁用抢占来保证响应时间,但这不是普通临界区的标准行为。

因此,普通临界区主要是通过同步机制控制并发访问,而不是禁止调度。

第二章 02处理机调度(王道)

2.4 进程调度的方式

第二章 02处理机调度(王道)

1. 非剥夺调度方式

  • 规则:仅允许进程主动放弃CPU
  • 优点:实现简单,系统开销小
  • 缺点:无法及时处理紧急任务
  • 适用场景:早期批处理系统

2. 剥夺调度方式

  • 规则:可强行剥夺当前进程CPU使用权
  • 优点:
    • 优先处理紧急任务
    • 支持时间片轮转
  • 适用场景:分时系统、实时操作系统

2.4 进程的切换与过程

第二章 02处理机调度(王道)

核心操作:

现场保存:将原进程的处理机运行环境数据(程序计数器、状态字、寄存器等)保存至PCB

现场恢复:从新进程的PCB中读取运行环境数据并载入寄存器

性能影响:

时间代价:切换需要消耗系统时间,频繁切换会导致系统效率下降

调度平衡:并非切换越频繁并发度越高,需权衡切换开销与执行效率

2.5 知识回顾

第二章 02处理机调度(王道)

三、调度器&闲逛程序

3.1 调度器

核心功能: 负责进程在就绪态和运行态之间的转换,是操作系统内核的重要程序模块

3.2 调度程序的作用

第二章 02处理机调度(王道)

调度程序的两个决定,调度程序决策内容:

1、让谁运行

  • 选择运行进程(调度算法)

2、运行多长时间

  • 确定运行时长(时间片大小)

3、什么事件会触发调度程序?

  • 触发事件:
    • 新进程创建(可能引发抢占)
    • 进程退出(释放CPU资源)
    • 运行进程阻塞(主动放弃CPU)
    • I/O中断发生(可能唤醒阻塞进程)
  • 调度策略差异:
    • 非抢占式: 仅当进程阻塞或退出时触发
    • 抢占式: 每个时钟中断或每k个时钟中断触发检查
  • 检查机制: 就绪队列变化时强制检查,时钟中断周期性唤醒调度程序

3.3 不支持内核级线程的操作系统

第二章 02处理机调度(王道)
  • 调度单位: 以整个进程为基本调度单位
  • 资源分配: 进程既是调度单位也是资源分配单位
  • 特点: 线程切换需要进程切换,开销较大

3.4 支持内核级线程的操作系统

第二章 02处理机调度(王道)
  • 调度单位: 内核线程成为基本调度单位
  • 资源分离:
    • 进程作为资源分配的基本单位
    • 线程作为CPU调度的基本单位
  • 优势: 线程切换无需进程切换,提高并发效率

3.5 闲逛进程

第二章 02处理机调度(王道)
  • 存在意义: 当就绪队列为空时运行的默认进程,保证CPU永不空闲
  • 设计理念: 类似人类”抖腿”行为,维持CPU基础运行状态

闲逛进程的特性

  • 优先级: 系统最低优先级,确保优先运行其他进程
  • 指令特点:
    • 执行0地址指令(不访存不访问寄存器)
    • 完整指令周期后检查中断
  • 能效设计: 低功耗运行模式,节省能源消耗
  • 调度唤醒: 通过指令周期末尾的中断检查唤醒调度程序

四、调度算法的评价指标

4.1 知识总览

第二章 02处理机调度(王道)
  • 核心指标:包括CPU利用率、系统吞吐量、周转时间(含带权周转时间)、等待时间、响应时间五大类
  • 学习要点:需理解各指标设计原理并掌握计算方法

4.2 CPU的利用率

设计背景:因CPU造价昂贵(早期占计算机成本大部分,现代仍不便宜),需最大化其工作效率

多道程序提示:实际考题多涉及多道程序,建议用甘特图辅助计算

第二章 02处理机调度(王道)

4.3 系统吞吐量

定义:单位时间内完成的作业数量

第二章 02处理机调度(王道)

4.4 周转时间

第二章 02处理机调度(王道)

用户视角:关注作业从提交到完成的整体耗时

  • 组成要素:
    • 作业在外存后备队列等待时间(仅1次)
    • 进程就绪队列等待时间(多次)
    • CPU执行时间(多次)
    • IO操作等待时间(多次)
  • 计算公式:周转时间=完成时间−提交时间

系统视角:更关注平均周转时间

第二章 02处理机调度(王道)

4.5 带权周转时间

第二章 02处理机调度(王道)
  • 设计动机:解决相同周转时间下,长作业用户感受更好的问题(类比厕所排队:短作业用户对等待更敏感)
  • 计算公式:
第二章 02处理机调度(王道)
  • 特性:
    • 值域:必然≥1(因周转时间包含运行时间)
    • 比较原则:越小越好

4.6 等待时间

第二章 02处理机调度(王道)
  • 用户需求:希望作业尽可能少等待处理机
  • 进程等待时间:建立后等待被服务的时间总和(不包括IO服务时间)
  • 作业等待时间:需额外加上外存后备队列等待时间
  • 调度影响:调度算法主要影响等待时间(因CPU/IO服务时间通常固定)
第二章 02处理机调度(王道)

4.7 响应时间

第二章 02处理机调度(王道)
  • 定义:从用户提交请求到首次产生响应的时间间隔

4.8 知识回顾

第二章 02处理机调度(王道)

五、调度算法-FCFS、SJF/SPF/SRTN、HRRN(重点)

5.1 知识总览

核心算法:本节涵盖三种主要调度算法:先来先服务(FCFS)、短作业优先(SJF)、高响应比优先(HRRN)

分析框架:每种算法将按统一框架分析:算法思想、算法规则、适用场景(进程调度还是作业调度)、抢占式还是非抢占式、优缺点及饥饿问题

重点 – 优缺点

第二章 02处理机调度(王道)

5.2 先来先服务(FCFS – First Come First Serve)

先来先服务算法分析

第二章 02处理机调度(王道)

1、算法思想:模拟日常排队场景,体现公平性原则,严格按到达顺序服务

2、算法规则:按照作业/进程到达的先后顺序进行服务

3、适用场景

  • 作业调度:选择后备队列中到达时间最早的作业(外存)
  • 进程调度:选择就绪队列中到达时间最早的进程(内存)

4、典型非抢占式算法,当前进程必须主动释放CPU才会触发调度

5、优缺点:

优点

  • 公平性:符合直觉的排队规则
  • 实现简单:无需复杂优先级计算

缺陷:

  • 排在长作业(进程)后面的短作业需要等待很长时间
  • 带权周转时间很大,对短作业来说用户体验不好
  • 即FCFS算法对长作业有利,对短作业不利

6、无饥饿:所有任务最终都能获得服务

题目特征:纯计算型进程(无I/O操作)

第二章 02处理机调度(王道)

5.3 短作业/进程优先(SJF – Shortest Job First\SPF – Shortest Process First)

短作业优先算法分析

第二章 02处理机调度(王道)

1、算法思想:追求最少的平均等待时间,最少的平均周转时间、最少的平均平均带权周转时间

2、算法规则:最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短)

3、适用场景:即可用于作业调度,也可用于进程调度。用于进程调度时称为“短进程优先(SPF,Shortest Process First)算法”

4、是否可抢占:SJF和SPF是非抢占式的算法;但是也有抢占式的版本一最短剩余时间优先算法(SRTN,Shortest Remaining Time Next)

5、优缺点:

优点

  • 优点:“最短的”平均等待时间、平均周转时间,即相比FCFS等算法能获得更好的平均等待时间和周转时间

缺陷:

  • 不公平。对短作业有利,对长作业不利。
  • 可能产生饥饿现象。
  • 另外,作业/进程的运行时间是由用户提供的,并不一定真实,不一定能做到真正的短作业优先

6、会。如果源源不断地有短作业/进程到来,可能使长作业/进程长时间得不到服务,产生“饥饿”现象。如果一直得不到服务,则称为“饿死“,即会导致饥饿现象,极端情况可能造成进程/作业”饿死”

短作业优先案例

第二章 02处理机调度(王道)

最短剩余时间优先(SRTN, Shortest Remaining Time Next)

第二章 02处理机调度(王道)
第二章 02处理机调度(王道)

最短剩余时间优先算法:

  • 1、每当有进程加入就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列;
  • 另外,当一个进程完成时也需要调度。

对比非抢占式的短作业优先算法,显然抢占式的这几个指标又要更低

短作业优先注意点

第二章 02处理机调度(王道)
  • 默认约定:题目未说明时,“短作业优先”默认为非抢占式
  • 最优性说明:
    • 严格最优需满足”所有进程几乎同时到达“条件
    • 抢占式版本(SRTN)在实际中能获得更优的平均指标
  • 教材差异:不同教材对算法最优性的表述可能存在差异,需结合上下文理解

5.4 高响应比优先(HRRN,Highest Response Ratio Next)

FCFS 算法是在每次调度的时候选择一个等待时间最长的作业(进程)为其服务。但是没有考虑到作业的运行时间,因此导致了对短作业不友好的问题

SJF 算法是选择一个执行时间最短的作业为其服务。但是又完全不考虑各个作业的等待时间,因此导致了对长作业不友好的问题,甚至还会造成饥饿问题

能不能设计一个算法,即考虑到各个作业的等待时间,也能兼顾运行时间呢?

答:高响应比优先算法

第二章 02处理机调度(王道)
  • 调度规则: 每次选择响应比最高的进程/作业
  • 适用场景: 既可用于作业调度,也可用于进程调度
  • 抢占性: 通常为非抢占式
  • 调度时机: 仅当进程主动放弃CPU时(完成或阻塞)才重新计算响应比
  • 综合优势:
    • 短作业优先:当等待时间相同时,优先短作业
    • 公平性:当运行时间相同时,优先等待久的作业
    • 防饥饿:长作业等待时间增加会提高其响应比
  • 算法特点:
    • 非抢占式
    • 不会导致饥饿
    • 权衡了FCFS和SJF的优点

例题:HRRN调度计算

第二章 02处理机调度(王道)

六、调度算法-时间片轮转、优先级、多级反馈队列

第二章 02处理机调度(王道)
  • 主要内容:本节将学习时间片轮转、优先级调度和多级反馈队列三种调度算法
  • 学习要点:
    • 各算法的核心思想和解决的问题
    • 算法的具体运行规则
    • 适用于作业调度还是进程调度
    • 属于抢占式还是非抢占式
    • 算法的优缺点(常考选择题)
    • 是否会导致饥饿现象

6.1 时间片轮转(RR,Round-Robin)

第二章 02处理机调度(王道)

1、算法思想:公平轮流为各进程服务,保证每个进程在一定时间间隔内都能得到响应

2、算法规则:按照各进程到达就绪队列的顺序,轮流让各个进程执行个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。

3、用于作业/进程调度

  • 适用范围:专门用于进程调度
  • 原因:
    • 时间片是处理机时间分配单位
    • 只有装入内存建立进程后才能分配处理机时间
    • 进程是执行的基本单位

4、是否可抢占

  • 抢占机制:属于抢占式算法
  • 实现方式:
    • 时间片用完时强制剥夺处理机
    • 通过时钟中断通知CPU时间片结束
    • 时钟装置是计算机组成原理中的硬件组件

5、优缺点

  • 优点:
    • 公平性:所有进程机会均等
    • 响应快:合理时间片下能保证及时响应
    • 适合分时系统:满足多用户交互需求
  • 缺点:
    • 时间片设置难题:
      • 过大:退化为FCFS,响应时间变长(如10个进程时可能等待9秒)
      • 过小:进程切换开销过大(建议切换开销占比<1%)
    • 不区分任务紧急程度

6、是否会导致饥饿

  • 饥饿分析:不会导致饥饿
  • 原因:采用轮转机制保证每个进程都能定期获得时间片
  • 注意点:时间片大小设置需要权衡响应时间和系统开销

例题:时间片轮转响应时间分析 – 时间片为2的情况

第二章 02处理机调度(王道)
第二章 02处理机调度(王道)
第二章 02处理机调度(王道)

例题:时间片轮转响应时间分析 – 时间片为5的情况

第二章 02处理机调度(王道)
  • 题目解析:
    • 进程到达顺序:P1(0,5)→P2(2,4)→P3(4,1)→P4(5,6)
    • 时间片=2时的调度过程:
      • 0-2:P1运行(剩余3)
      • 2-4:P2运行(剩余2)
      • 4-6:P1运行(剩余1)
      • 6-7:P3运行(完成)
      • 7-9:P2运行(完成)
      • 9-16:P4分多次运行完成
    • 时间片=5时的调度过程:
      • 0-5:P1完整运行
      • 5-9:P2完整运行
      • 9-10:P3完整运行
      • 10-16:P4分两次运行
    • 关键发现:
      • 当时间片足够大时会退化为FCFS算法
      • 新到达进程优先于刚下处理机的进程排队

对比时间片2和5的情况

第二章 02处理机调度(王道)

1、如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大

2、另一方面,进程调度、切换是有时间代价的(保存,恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小

综上:一般来说,请设计时间片时要让切换进程的开销占比不超过1%

(比如:系统中有10个进程在并发执行,如果时间片为1秒,则一个进程被响应可能需要等9秒….也就是说,如果用户在自己进程的时间片外通过键盘发出调试命令,可能需要等待9秒才能被系统响应)

6.2 优先级调度算法

优先级调度算法分析

第二章 02处理机调度(王道)
  • 核心思想:根据任务的紧急程度和重要程度决定处理顺序,为每个作业/进程设置优先级,调度时选择优先级最高的任务
  • 适用范围:既可用于作业调度(选择外存后备队列中的作业进入内存),也可用于进程调度(选择内存就绪队列中的进程分配处理机),还可用于I/O调度
  • 实现方式:
    • 非抢占式:仅在进程主动放弃处理机时进行调度
    • 抢占式:除进程主动放弃外,当就绪队列变化时也需检查是否发生抢占
  • 优点:
    • 能明确区分任务紧急程度和重要程度
    • 特别适合实时操作系统
    • 可灵活调整对不同类型进程的偏好
  • 缺点:
    • 可能导致低优先级进程饥饿(当持续有高优先级进程到达时)
    • 需要合理设计优先级调整机制以避免不公平现象

例题:非抢占式优先级调度算法

第二章 02处理机调度(王道)
  • 题目解析:
    • 审题要点:注意题目说明”优先数越大,优先级越高”(有些题目可能相反)
    • 调度过程:
      • 0时刻:只有P1到达,开始运行
      • 7时刻:P1结束,检查就绪队列(P2,P3,P4),选择优先级最高的P3
      • 8时刻:P3结束,选择优先级相同的P2(因到达时间更早)
      • 12时刻:P2结束,最后运行P4
    • 关键特征:调度仅发生在进程主动放弃处理机时

例题:抢占式优先级调度算法

第二章 02处理机调度(王道)
  • 题目解析:
    • 审题要点:同样注意优先数与优先级的关系
    • 调度过程:
      • 0时刻:P1开始运行
      • 2时刻:P2到达(优先级>P1),发生抢占
      • 4时刻:P3到达(优先级>P2),再次抢占
      • 5时刻:P3结束,选择就绪队列中等待时间最长的P2
      • 7时刻:P2结束,选择P4(优先级>P1)
      • 11时刻:P4结束,最后运行P1剩余部分
    • 关键特征:每当新进程到达(就绪队列变化)时都需检查抢占可能

补充

第二章 02处理机调度(王道)
  • 队列组织方式:
    • 多队列:按不同优先级组织多个就绪队列
    • 单队列:高优先级进程排在更靠近队头的位置
  • 优先级类型:
    • 静态优先级:创建时确定后不再改变
    • 动态优先级:初始值确定后可根据情况调整
  • 优先级设置原则:
    • 系统进程 > 用户进程
    • 前台进程 > 后台进程
    • I/O型进程 > 计算型进程(因I/O设备可与CPU并行工作,提高资源利用率)
  • 动态调整策略:
    • 长时间等待的进程:适当提高优先级(类似高响应比优先算法)
    • 长时间运行的进程:适当降低优先级
    • 频繁I/O操作的进程:提高优先级(因其可能是I/O繁忙型进程)

6.3 多级反馈队列调度算法

比较以上提到的算法

  • FCFS优点:公平性最好,所有进程按到达顺序依次执行
  • SJF优点:能优先处理短作业,使平均等待时间和周转时间最优
  • 时间片轮转优点:保证各进程能及时获得响应
  • 优先级调度优点:通过优先级灵活控制进程服务机会
  • 设计目标:寻找能综合上述优点的折中调度算法 – 多级反馈队列调度算法

分析多级反馈队列调度算法

第二章 02处理机调度(王道)
  • 核心思想:对多种调度算法进行折中权衡
  • 实现方式:
    • 多级队列设置:建立多级就绪队列,优先级从高到低,时间片从小到大
    • 新进程处理:新进程先进入第1级队列,按FCFS原则等待分配时间片
    • 时间片用完处理:若进程未结束,则进入下一级队列队尾;若已在最下级队列则重新放回队尾
    • 调度规则:仅当第k级队列为空时才调度k+1级队列队头进程
  • 综合优点:
    • 公平性:继承FCFS优点,新进程优先获得服务
    • 响应快:类似时间片轮转,新进程能快速获得响应
    • 短作业优:短进程只需经历前几级队列即可完成,类似SJF
    • 防作弊:无需预先估计进程运行时间,避免用户虚报
    • 灵活性:可调整对不同类型进程的偏好程度
  • 特殊处理:
    • IO型进程:阻塞唤醒后可保持原队列优先级,不降级
    • 计算型进程:会逐步降级到低优先级队列
  • 缺点:
    • 复杂性:实现规则较为复杂
    • 饥饿风险:当持续有短进程到达时,长进程可能饥饿

例题:多级反馈队列调度算法

第二章 02处理机调度(王道)
  • 题目解析:
    • 队列设置:三级队列,时间片分别为1、2、4单位时间
    • P1处理:0时刻进入第1级队列,执行1单位时间后转入第2级队列
    • P2处理:1时刻到达,抢占执行1单位时间后转入第2级队列
    • 抢占机制:5时刻P3到达第1级队列,抢占正在运行的P2,P2返回原队列队尾
    • 最终处理:当高级队列为空时,才处理低级队列中的进程
    • 饥饿现象:若持续有短进程到达,低级队列进程可能长期得不到服务

七、多级队列调度算法

第二章 02处理机调度(王道)

7.1 多级队列调度定义

  • 基本结构:系统按进程类型设置多个队列,进程创建后根据类型插入对应队列
  • 队列分类:通常分为系统进程、交互式进程和批处理进程三类队列
  • 工作流程:每次调度时先选择队列,再从选中队列中选择具体进程执行

7.2 队列优先级设定

  • 优先级顺序:系统进程(最高) > 交互式进程 > 批处理进程(最低)
  • 系统进程:如内存管理进程,需要最高优先级保证系统稳定运行
  • 交互式进程:如游戏、打字软件,需要快速响应(用户操作后立即反馈)
  • 批处理进程:如AI模型训练、视频渲染,对响应时间不敏感
  • 设计原因:
    • 系统进程优先级最高是必然要求
    • 交互式进程需要及时反馈用户体验(如游戏操作、打字响应)
    • 批处理进程优先级最低因为用户不关心其执行速度(如视频渲染进度)

7.3 队列调度策略

  • 队列间调度:
    • 固定优先级:高优先级队列非空时始终优先调度,可能导致低优先级队列饥饿
    • 时间片划分:按比例分配时间(如系统50%、交互式40%、批处理10%)
  • 队列内调度:
    • 系统进程队列:可采用优先级调度(选择最紧急的进程)
    • 交互式队列:采用时间片轮转(RR),保证快速响应
    • 批处理队列:采用先来先服务(FCFS)
  • 实际应用:
    • 队列分类可更细致(多于三级)
    • 各队列可采用不同调度算法的组合
    • 时间片划分比例可根据实际需求调整

八、对上述算法的回顾

第二章 02处理机调度(王道)

算法对比:

  • FCFS:
    • 非抢占式
    • 优点:公平简单
    • 缺点:对短作业不利
  • SJF:
    • 默认非抢占式(有抢占式变种SRTN)
    • 优点:最短平均等待时间
    • 缺点:可能导致长作业饥饿
  • HRRN:
    • 非抢占式
    • 优点:综合前两者优势
    • 缺点:计算开销较大、
  • 系统适用性:
    • 这些算法更关注系统整体性能
    • 适用于早期批处理系统
    • 现代系统中FCFS常作为其他算法的组成部分
第二章 02处理机调度(王道)

1. 时间片轮转调度

  • 抢占性: 采用抢占式调度机制
  • 核心优势:
    • 保证公平性,特别适合分时系统
    • 每个进程都能获得均等的CPU时间
  • 主要缺点:
    • 频繁的上下文切换带来额外开销
    • 未考虑进程优先级差异
  • 饥饿问题: 不会导致进程饥饿
  • 时间片设置:
    • 时间片过大:退化为先来先服务(FCFS)算法
    • 时间片过小:系统开销显著增加,大量时间用于进程切换

2. 优先级调度

  • 实现方式:
    • 抢占式版本:高优先级进程可立即抢占CPU
    • 非抢占式版本:仅在当前进程主动放弃CPU时进行调度
  • 应用场景: 特别适合实时系统需求
  • 优势特点: 能有效区分不同优先级任务
  • 潜在问题:
    • 可能导致低优先级进程长期得不到执行(饥饿)
    • 需要合理的优先级设置策略
  • 优先级类型:
    • 静态优先级:进程创建时确定且不变
    • 动态优先级:可根据系统状况调整
  • 调度时机:
    • 非抢占式:仅检查进程主动放弃CPU的时刻
    • 抢占式:还需检查就绪队列变化时的抢占可能性

3. 多级反馈队列调度

  • 算法特点:
    • 实现机制较为复杂
    • 采用抢占式调度策略
  • 主要优势: 在响应时间和系统吞吐量之间取得良好平衡
  • 潜在缺陷: 仍可能导致某些进程饥饿
  • 实践应用: Unix系统采用此算法
  • 学习建议: 需结合具体例题理解其运行规则

4. 算法适用性分析

  • 系统演进:
    • 早期批处理系统关注宏观指标(如平均周转时间)
    • 现代交互式系统更注重响应时间和公平性
  • 算法适配:
    • 这三种算法特别适合交互式系统需求
    • 能提供快速响应和公平的资源分配
  • 性能平衡: 通过多种策略实现系统性能的优化平衡

5. 学习建议

  • 重点掌握:
    • 各算法导致饥饿的可能性分析
    • 时间片大小的影响评估
    • 优先级设置原则与方法
  • 实践方法: 通过课后习题巩固调度算法的核心概念
  • 考核重点: 比起早期算法,这些算法的优缺点较少直接考察

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(2)
何大锤的头像何大锤管理团队

相关推荐

  • 第二章 03同步与互斥(王道)

    一、进程同步和进程互斥的概念 核心概念:介绍进程同步和进程互斥的基本定义及其相互关系 1.1 什么是进程同步? 1.2 什么是进程互斥? 1.3 进程互斥访问的四个组成部分 临界资源的定义 对临界资源的互斥访问 1.4 进程互斥的原则 1.5 知识回顾 二、进程互斥的软件实现方式(高频考点) 进程互斥的软件实现方法包括单标制法、双标志先检查法、双标志后检查法…

    2025年7月8日
    300
  • 第二章 01进程与线程(王道)

    一、进程的概念、组成、特征 1.1 进程的概念 1.2 进程的组成 – PID(Process ID, 进程ID) PID – 操作系统以进程为单位分配CPU、内存等资源,每个进程拥有独立的PID(进程标识符)。 1.2 进程的组成 – PCB(进程控制块) PID、ID(UID)、进程分配资源情况、进程的运行情况等这些信…

    2025年6月24日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......