☰
(闪电系列)操作系统期末闪学 | 处理机调度算法
2026/10/28 10:22:37 网站建设 项目流程

(闪电系列)操作系统期末闪学 | 处理机调度算法

💡导读:期末考试临近,还在为操作系统的处理机调度算法头秃?本文是「闪电系列」期末速成指南,涵盖三级调度层次、8大核心算法对比、必考计算公式及经典例题详解。内容精炼、表格清晰、计算过程完整,助你高效复习,稳拿高分!建议收藏+背诵,考前必看!


一、处理机三级调度层次

1. 高级调度(作业调度)

  • 调度频率最低
  • 适用:仅多道批处理系统,分时、实时系统无
  • 功能:从外存后备队列中选择作业调入内存,创建进程、分配资源,放入就绪队列
  • 核心问题:接纳多少作业?接纳哪些作业?

2. 低级调度(进程调度)

  • 调度频率最高
  • 适用:多道批处理、分时、实时系统
  • 功能:从就绪队列中选择进程,将CPU分配给该进程

3. 中级调度(中程调度)

  • 功能:将暂时无法运行的进程调至外存(挂起状态);进程具备运行条件且内存空闲时,重新调入内存转为就绪状态,挂入就绪队列

📌理解提示:高级调度决定“谁进内存”,中级调度决定“谁暂离内存”,低级调度决定“谁用CPU”。三者协同,实现系统资源的高效利用。


二、调度算法分类与适用场景

算法名称核心特点适用范围
先来先服务(FCFS)利于长进程,不利于短进程作业调度、进程调度
短作业优先(SJF)优先调度运行时间短的进程作业调度、进程调度
高优先权优先调度支持动态优先权作业调度、进程调度
高响应比优先(HRRN)兼顾短作业与等待时间作业调度、进程调度
轮转调度算法(RR)按时间片轮流执行分时系统
多级反馈队列算法多队列分级调度分时系统
最早截止时间优先(EDF)按截止时间先后调度实时系统
最低松弛度优先(LLF)按松弛度大小调度实时系统

背诵速记

  • 三级调度:高级(作业)、中级、低级(进程)
  • 分时系统:时间片轮转、多级反馈队列
  • 实时系统:最早截止时间优先、最低松弛度优先
  • 通用类(作业/进程均可用):先来先服务、短作业优先、高优先权优先、高响应比优先

✍️记忆口诀:“高作低进中挂起,分时轮转反馈队,实时截止松弛度,通用四法要牢记。”


三、核心计算公式

  • 周转时间=完成时间−到达时间周转时间 = 完成时间 - 到达时间周转时间=完成时间−到达时间(进程从到达系统到完成的总时长)
  • 带权周转时间=周转时间服务时间带权周转时间 = \frac{周转时间}{服务时间}带权周转时间=服务时间周转时间​
  • 平均周转时间=∑所有进程周转时间进程总数平均周转时间 = \frac{\sum 所有进程周转时间}{进程总数}平均周转时间=进程总数∑所有进程周转时间​
  • 平均带权周转时间=∑所有进程带权周转时间进程总数平均带权周转时间 = \frac{\sum 所有进程带权周转时间}{进程总数}平均带权周转时间=进程总数∑所有进程带权周转时间​
  • 高响应比=等待时间+服务时间服务时间=1+等待时间服务时间高响应比 = \frac{等待时间 + 服务时间}{服务时间} = 1 + \frac{等待时间}{服务时间}高响应比=服务时间等待时间+服务时间​=1+服务时间等待时间​

⚠️注意:带权周转时间反映调度公平性,值越接近1越理想;平均带权周转时间是评价算法性能的关键指标。


四、经典调度算法计算例题

已知条件:5个进程的到达时间与服务时间如下,忽略I/O与其他调度开销。

进程到达时间服务时间
A03
B26
C44
D65
E82

1. 先来先服务(FCFS)

规则:最早进入就绪队列的进程优先执行

进程到达时间服务时间开始执行完成时间周转时间带权周转时间
A030331
B263971.17
C4491392.25
D651318122.4
E821820126

平均周转时间=3+7+9+12+125=8.6平均周转时间 = \frac{3+7+9+12+12}{5} = 8.6平均周转时间=53+7+9+12+12​=8.6

平均带权周转时间=1+1.17+2.25+2.4+65=2.56平均带权周转时间 = \frac{1+1.17+2.25+2.4+6}{5} = 2.56平均带权周转时间=51+1.17+2.25+2.4+6​=2.56

2. 短作业优先(SJF)- 非抢占式

规则:每次选择当前就绪队列中运行时间最短的进程执行

进程到达时间服务时间开始执行完成时间周转时间带权周转时间
A030331
B263971.17
C441115112.75
D651520142.8
E8291131.5

平均周转时间=3+7+11+14+35=7.6平均周转时间 = \frac{3+7+11+14+3}{5} = 7.6平均周转时间=53+7+11+14+3​=7.6

平均带权周转时间=1+1.17+2.75+2.8+1.55=1.84平均带权周转时间 = \frac{1+1.17+2.75+2.8+1.5}{5} = 1.84平均带权周转时间=51+1.17+2.75+2.8+1.5​=1.84

3. 短作业优先(SJF)- 抢占式(最短剩余时间优先)

规则:新就绪进程的剩余运行时间若短于当前运行进程的剩余时间,则抢占CPU

进程到达时间服务时间开始执行完成时间周转时间带权周转时间
A030331
B26315132.17
C444841
D651520142.8
E8281021

平均周转时间=3+13+4+14+25=7.2平均周转时间 = \frac{3+13+4+14+2}{5} = 7.2平均周转时间=53+13+4+14+2​=7.2

平均带权周转时间=1+2.17+1+2.8+15=1.59平均带权周转时间 = \frac{1+2.17+1+2.8+1}{5} = 1.59平均带权周转时间=51+2.17+1+2.8+1​=1.59

4. 高响应比优先(HRRN)

规则:每次选择当前就绪队列中响应比最高的进程执行

进程到达时间服务时间开始执行完成时间周转时间带权周转时间
A030331
B263971.17
C4491392.25
D651520142.8
E82131573.5

平均周转时间=3+7+9+14+75=8平均周转时间 = \frac{3+7+9+14+7}{5} = 8平均周转时间=53+7+9+14+7​=8

平均带权周转时间=1+1.17+2.25+2.8+3.55=2.14平均带权周转时间 = \frac{1+1.17+2.25+2.8+3.5}{5} = 2.14平均带权周转时间=51+1.17+2.25+2.8+3.5​=2.14


📝 总结与备考建议

算法平均周转时间平均带权周转时间优势劣势
FCFS8.62.56简单公平对短作业极不友好
SJF(非抢占)7.61.84平均性能较好可能饥饿长作业
SJF(抢占)7.21.59最优平均性能实现复杂,频繁切换
HRRN8.02.14兼顾长短作业需动态计算响应比

✅考试重点提醒:

  • 务必掌握四种算法的手动推演过程,尤其是抢占式SJF的时间线划分;
  • 高响应比的计算是高频考点,注意等待时间=当前时刻−到达时间等待时间 = 当前时刻 - 到达时间等待时间=当前时刻−到达时间;
  • 区分“非抢占”与“抢占”SJF的执行顺序差异;
  • 背诵速记部分可直接用于简答题或选择题。

🔥闪电系列·期末闪学| 用最少的字,拿最多的分!
如果这篇对你有帮助,欢迎点赞👍、收藏⭐、关注🔔三连支持!
更多操作系统速成内容,敬请期待《内存管理》《文件管理》《死锁》等后续篇章!

💬评论区互动:你在做调度算法题时最容易错在哪一步?欢迎留言交流,一起避坑!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询