Lazy loaded image
操作系统有哪些调度算法?
字数 490阅读时长≈ 2 分钟
2026-10-12
type
Post
status
Published
date
Oct 12, 2026
slug
OS1
summary
tags
手写
技术探索
category
手写
icon
password
调度算法
核心思想
优点
缺点
FCFS 先来先服务
谁先到,谁先执行
简单、公平
长任务可能阻塞短任务
短作业优先
优先执行预计运行时间短的任务
平均等待时间短
长任务可能饥饿,运行时间难预测
最短剩余时间优先
优先执行剩余时间最短的任务
短任务响应快
抢占开销大,长任务可能饥饿
RR 时间片轮转
每个任务轮流执行一个时间片
公平、响应较快
时间片太短会增加上下文切换开销
优先级调度
优先级高的先执行
适合重要任务
低优先级任务可能饥饿
多级反馈队列
根据任务运行行为动态调整优先级
兼顾交互响应与吞吐量
实现复杂、参数难调
实际 Linux 并不是简单采用上面的某一种算法。 Linux 普通任务曾长期采用 CFS(完全公平调度器),现代内核则采用基于 EEVDF 的调度机制;实时任务还有 FIFO、RR 等调度策略。
EEVDF:在保证公平性的基础上,进一步考虑任务的虚拟截止时间,让需要快速响应的任务有机会更早执行。
EEVDF 是 Linux 6.6 开始引入的公平调度算法,用于改进原来的 CFS。 CFS 主要根据虚拟运行时间选择任务,保证 CPU 分配公平,但对任务响应延迟的考虑不够直接。 EEVDF 在此基础上引入了 lag 和虚拟截止时间,首先选择没有超额使用 CPU 的任务,再从中选择虚拟截止时间最早的执行。 它最大的优势就是兼顾 CPU 分配公平性和交互任务的低延迟。
回到首页