非常棒的问题!你想了解 现代 Linux 中的任务调度算法,这是深入理解内核如何公平、高效管理 CPU 的关键部分。
🎯 总览:现代 Linux 使用的调度器是 CFS(Completely Fair Scheduler)
自 Linux 2.6.23 起,CFS 取代了旧的 O(1) 调度器,成为主流 Linux 的默认调度器。
✅ 1. Linux CFS(完全公平调度器)
CFS 的目标是:让所有进程尽可能“公平”地分享 CPU 时间
🧠 CFS 的核心思想:
- 每个进程有一个 虚拟运行时间 vruntime
- 谁的
vruntime最小,谁最“该被调度”,先执行 - 当进程使用 CPU,它的
vruntime就增加,跑得越久,优先级越低 nice值(静态优先级)会调整加权因子,影响vruntime增速
🧱 数据结构:
CFS 使用 红黑树(Red-Black Tree) 管理所有可运行进程:
rbtree<vruntime, task_struct>
- 根节点是
vruntime最小的进程 <

最低0.47元/天 解锁文章
3022

被折叠的 条评论
为什么被折叠?



