如果你问一个刚接触 Linux 的同事:“进程为什么会被切走?”
答案大概率是:“因为时间片用完了。”
但如果你问一个内核工程师同样的问题,答案会变成:
因为调度器认为现在切走,比不切走对系统整体更公平。
Linux 调度器(CFS)从来不是一个简单的“定时器 + 轮转队列”,而是一套围绕公平性、吞吐、延迟、可预测性反复博弈的复杂系统。而“时间片(time slice)”正是其中最基础、却也最敏感的机制之一。
正因为如此,任何试图“临时延长时间片”的行为,都会天然触碰调度器最核心的设计原则。
而现在,一个历经十多年讨论、反复失败、数次重来的机制——Time Slice Extension(时间片扩展),终于在 Linux 6.20 ~ 7.0 周期,看到了进入主线的希望。
什么是时间片扩展?
时间片扩展不是抢占调度器的控制权,也不是提升优先级。
它的核心目标只有一个:
在“非常短暂、非常确定”的用户态临界区内,避免线程被不必要地抢占。