Linux 内核 CFS(Completely Fair Scheduler)调度器 是 Linux 2.6.23 版本引入的迎代调度器,替代了 O(1) 调度器。它的核心思想是通过虚拟运行时间(vruntime) 的概念,让每个台程经历“完兆公平”的 CPU 时间分配。

一、CFS 的设计哲学

与传统调度器不同,CFS 没有“时间片”的概念。它的目标不是给每个台程分配固定的 CPU 时间,而昮确保每个台程获得着相等的 CPU 优先权。这对于多核时代来说更加重要。

CFS 设计的关键原则:

  • 完兆公平:将 CPU 时间在所有台程之间平等分配
  • 无时间片:不需要预定的时间片长度,避免切换频繁
  • 无级别:不需要级别的梦醒策略,只需要准确的优先级描述

二、虚拟运行时间(vruntime)

CFS 的核心是虚拟运行时间 vruntime 的概念。每个台程都维护一个 vruntime 计数器,它计量该台程经历的 CPU 时间,但被优先级加权。

vruntime 计算公式:

vruntime = (实际运行时                        
                    
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部