目录
一、 先来先服务 (FCFS, First-Come-First-Served)
二、短作业优先 (SJF, Shortest Job First)
五、高响应比优先 (HRRN, Highest Response Ratio Next)
六、多级队列调度 (Multilevel Queue Scheduling)
七、多级反馈队列 (MLFQ, Multilevel Feedback Queue)
一、 先来先服务 (FCFS, First-Come-First-Served)
核心思想:
严格按照任务到达就绪队列的先后顺序分配CPU资源,如同超市收银台的排队机制。
特点:
-
类型: 非抢占式
-
调度依据: 任务到达时间
优点:
-
实现简单,无复杂计算
-
天然公平性,保证所有任务最终被执行
缺点:
-
护航效应:长任务阻塞后续短任务,导致平均等待时间飙升
-
响应性差:交互式任务体验极差
适用场景:
-
嵌入式系统或早期批处理系统
-
任务执行时间差异较小的场景
二、短作业优先 (SJF, Shortest Job First)
核心思想:
优先执行预估运行时间最短的任务,通过数学证明可最小化平均等待时间。
特点:
-
类型: 抢占式(SJRF) / 非抢占式(SJF)
-
调度依据: 任务预估执行时间
优点:
-
理论最优的平均等待时间
-
适合计算密集型任务调度
缺点:
-
长任务饥饿:持续短任务到达会导致长任务无法执行
-
预测难题:实际任务时长难以准确预估
适用场景:
-
科学计算集群
-
可预知任务执行时间的批处理系统
三、优先级调度 (Priority Scheduling)
核心思想:
为每个任务分配静态/动态优先级,优先执行高优先级任务。
特点:
-
类型: 抢占式 / 非抢占式
-
优先级类型: 静态(固定值) / 动态(随任务状态变化)
-
调度依据: 优先级数值
优点:
-
灵活适配业务需求(如实时系统)
-
可确保关键任务及时响应
缺点:
-
优先级反转:低优先级任务持有高优先级任务所需资源
-
饥饿风险:低优先级任务可能长期等待
适用场景:
-
实时操作系统(航空控制系统)
-
需要区分任务重要性的场景(如后台服务与用户交互)
四、时间片轮转 (RR, Round Robin)
核心思想:
为每个任务分配固定长度的时间片(Quantum),超时后强制切换至队列下一任务。
特点:
-
类型: 抢占式
-
调度依据: 时间片耗尽
优点:
-
公平性强,响应时间可预测
-
避免长任务垄断CPU
缺点:
-
上下文切换开销:时间片过小会导致性能下降
-
吞吐量损失:长任务被分割执行
适用场景:
-
交互式系统(如Linux/Windows桌面环境)
-
Web服务器请求调度
五、高响应比优先 (HRRN, Highest Response Ratio Next)
核心思想:
动态计算响应比 (等待时间 + 预估执行时间) / 预估执行时间
,优先执行响应比高的任务。
特点:
-
类型: 非抢占式
-
调度依据: 动态响应比
优点:
-
平衡等待时间与执行时间,缓解SJF的长任务饥饿问题
-
无需精确预测任务时长
缺点:
-
计算复杂度高于FCFS
-
仍需预估任务执行时间
适用场景:
-
混合型任务环境(长短任务共存)
-
需要兼顾公平与效率的批处理系统
六、多级队列调度 (Multilevel Queue Scheduling)
核心思想:
将就绪队列划分为多个独立子队列,每个队列采用不同调度策略(如前台RR,后台FCFS)。
特点:
-
队列类型: 固定优先级(如系统进程 > 交互进程 > 批处理任务)
-
调度规则: 队列间按优先级调度,队列内按指定策略调度
优点:
-
支持差异化服务(QoS)
-
灵活适应复杂任务类型
缺点:
-
队列划分僵化:任务无法跨队列迁移
-
配置复杂度高
适用场景:
-
企业级服务器(区分高优先级交易订单与低优先级报表任务)
-
需要严格分级的操作系统(如IBM z/OS)
七、多级反馈队列 (MLFQ, Multilevel Feedback Queue)
核心思想:
设置多个优先级队列,允许任务根据行为(如CPU占用时长)动态升降级,兼具响应速度与吞吐量。
特点:
-
类型: 自适应动态调度
-
调度规则:
-
新任务进入最高优先级队列
-
用完时间片则降级
-
主动释放CPU则保持优先级
-
优点:
-
自动区分交互式短任务与计算长任务
-
平衡响应时间与吞吐量
缺点:
-
参数调优复杂(队列数量、时间片大小等)
-
实现难度高
适用场景:
-
通用操作系统(Linux CFS、Windows调度器)
-
云计算资源调度
八、实时调度 (Real-Time Scheduling)
核心思想:
确保任务在严格截止时间(Deadline)前完成,分为硬实时(绝对保证)和软实时(允许偶尔超时)。
常见算法:
-
RM (Rate-Monotonic): 周期性任务,优先级与周期成反比
-
EDF (Earliest Deadline First): 动态选择截止时间最近的任务
特点:
-
类型: 硬实时 / 软实时
-
调度依据: 任务周期或截止时间
优点:
-
时间确定性高
-
满足关键任务时效性
缺点:
-
资源利用率低(需预留冗余)
-
系统设计复杂度高
适用场景:
-
自动驾驶控制系统(硬实时)
-
流媒体服务器(软实时)