首页/操作系统/02-process/进程调度手算详解 🔗 在 Obsidian 中打开
操作系统 · 02-process

进程调度手算详解

重要度 ★★ FCFSSJFSRTF时间片轮转周转时间
速查
考试重点考查 FCFS、SJF、时间片轮转 三种算法的手算。关键指标:周转时间 = 完成 − 到达带权周转 = 周转 / 服务等待 = 周转 − 服务。手算核心:画甘特图逐步模拟。

速查

算法类型是否可抢占
FCFS非抢占
SJF(非抢占)非抢占
SRTF(抢占 SJF)抢占是(最短剩余时间)
时间片轮转抢占
指标公式
周转时间完成时间 − 到达时间
带权周转时间周转时间 / 服务时间
等待时间周转时间 − 服务时间
平均周转时间各进程周转时间之和 / 进程数

核心概念

进程调度决定哪个进程获得 CPU。考试重点考查 FCFS、SJF、时间片轮转 三种算法的手算过程。

示例数据(下文四个算法共用):

进程到达时间服务时间
P108
P214
P329
P435

FCFS 结果(平均周转 15.25)

进程完成周转带权周转等待
P1881.000
P212112.757
P321192.1110
P426234.6018

平均周转时间 $= \frac{8+11+19+23}{4} = 15.25$;平均带权周转 $= \frac{1.00+2.75+2.11+4.60}{4} = 2.62$。

SJF(非抢占,平均周转 14.25):顺序 P1→P2→P4→P3。平均带权周转 2.31。

SRTF(抢占,平均周转 13.00):P1[0–1]→P2[1–5]→P4[5–10]→P1[10–17]→P3[17–26]。平均带权周转 1.80。

RR(q=4,平均周转 18.25):P1→P2→P3→P4→P1→P3→P4→P3。

常见考法

  1. 画甘特图(时间轴):手算各进程执行顺序
  2. 计算周转/带权周转:套公式
  3. SJF 和 SRTF 对比:抢占 vs 非抢占
  4. 时间片轮转模拟:注意就绪队列维护
  5. 比较平均周转时间:SJF 最优

易错点

注意
  • SRTF 在新进程到达且剩余时间更短时就抢占
  • RR 中新到达进程排到队尾,用完时间片也排到队尾
  • FCFS 有护航效应:短进程被长进程阻塞
  • 周转时间 = 完成 − 到达,不是开始时间
  • 等待时间 = 周转 − 服务,不是到达→开始
  • RR 边界:进程刚好在时间片结束时完成,不排到队尾

核心结论

必背
  1. FCFS 对短作业不利,可能产生护航效应
  2. SJF 平均等待时间最短,但可能饥饿
  3. SRTF 比 SJF 更优(抢占式平均等待更短)
  4. 时间片太大→FCFS,太小→切换开销大
  5. 周转 = 完成 − 到达;带权周转 = 周转 / 服务

记忆卡片

哪个平均等待时间最短?
SJF(非抢占中已被证明最优),但长作业可能饥饿。
周转与等待的关系?
周转 = 等待 + 服务;周转 = 完成 − 到达。
SRTF 与 SJF 区别?
SJF 非抢占执行到底;SRTF 抢占式,新进程剩余更短则抢占,平均等待更短。
RR 新进程放哪?
就绪队列队尾;用完时间片也排到队尾。
时间片大小影响?
太大→退化为 FCFS;太小→上下文切换开销大。

交互动画 · 四种调度算法甘特图

平均周转 15.25 / 平均带权 2.62
点击不同算法查看同一组进程的甘特图(P1 到达0/服务8,P2 到达1/服务4,P3 到达2/服务9,P4 到达3/服务5)
SJF/SRTF 平均周转最短;RR 时间片 q=4

相关知识点

process-and-thread process-synchronization-semaphore deadlock

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。