【Linux】进程调度器

下面我给你一个 清晰、准确、面向最新 Linux 内核(5.x~6.x)的解释 。

你的三个问题分别是:

  1. 最新的 Linux 内核是否仍然用 CFS 调度普通进程?
  2. 是不是一个进程指定一种调度器?
  3. CFS 与实时调度器(RT scheduler)的关系是什么?

我逐条解释。


✅ 1. 最新 Linux 内核是否仍然使用 CFS?

是的。

在 Linux 6.x 内核中(包括最新的 6.10 LTS),Linux 仍然采用:

  • **CFS(Completely Fair Scheduler)**作为 普通任务(normal tasks) 的主调度器
    对应调度策略:SCHED_NORMAL(SCHED_OTHER) 和 SCHED_BATCH

CFS 仍然是桌面 Linux、服务器 Linux 中绝大多数进程使用的调度器。

✔ CFS = 默认调度器,一直在维护和优化


✅ 2. 一个进程是否"指定"一种调度器?

不是直接指定调度器,而是指定调度策略(policy)。

调度策略由内核映射到具体调度器。

用户态只能设置:

  • SCHED_OTHER / SCHED_NORMAL
  • SCHED_BATCH
  • SCHED_IDLE
  • SCHED_FIFO
  • SCHED_RR
  • (新)SCHED_DEADLINE

✔ policy → 内核选定对应的调度器

调度策略(policy) 使用的调度器 说明
SCHED_NORMAL(SCHED_OTHER) CFS 默认普通进程
SCHED_BATCH CFS 批处理,权重较低
SCHED_IDLE CFS idle 调度类 极低优先级
SCHED_FIFO RT 调度器 实时
SCHED_RR RT 调度器 实时(轮转)
SCHED_DEADLINE Deadline 调度器 最强实时、按调度参数保证

🔹 所以,进程并不直接选择 CFS 或 RT 调度器。

🔹 它选择 policy,policy 决定属于哪个调度器类(sched_class)。


✅ 3. CFS 与实时调度器(RT scheduler)的关系是什么?

Linux 调度器内部不是一个调度器,而是一个 调度器类链表(scheduler class):

复制代码
stop_sched_class
deadline_sched_class
rt_sched_class
fair_sched_class   <-- CFS
idle_sched_class

调度决策遵循以下优先级:

stop > deadline > rt > fair(CFS) > idle

所以关系是:

  • 最高优先级:实时/硬实时(SCHED_DEADLINE / SCHED_FIFO / SCHED_RR)
  • 其次才是:普通任务(CFS)
  • 最后是:空闲级别(SCHED_IDLE)

简化理解:

复制代码
优先运行 RT > CFS

✔ RT 任务一定会抢占 CFS 任务

✔ CFS 任务永远不阻塞 RT 任务

✔ Deadline 调度比 RT 更强,是硬实时


🔥 最简单的总结(必记)

1. 最新 Linux 内核仍然使用 CFS 作为主要 CPU 调度器

2. 进程不是直接选调度器,而是选调度策略(policy)

3. Linux 有多种调度器并存,按优先级排:

复制代码
Deadline > RT(FIFO/RR) > CFS > Idle

如果你需要,我还能继续解释:

  • 如何在 Linux 中把进程切换成 RT 任务(例子:chrt)
  • CFS 的 vruntime 是怎么确保公平的
  • RT 调度器如何避免任务饿死
  • Deadline 调度器的参数 runtime/period/deadline

你接下来想深入哪个?

相关推荐
一只鹿鹿鹿36 分钟前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
沫璃染墨1 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
Kobebryant-Manba1 小时前
C/S和B/S结构
运维·服务器
AI_Lab013 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器
众壹新能源科技3 小时前
逆变器直流开关柜温度监测与预防:红外巡检发现3个120度热点
运维·人工智能·自动化
by209993 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
小羊没烦恼!3 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
小Ti客栈3 小时前
Netty 零拷贝原理与实战
运维·服务器·网络
ai_coder_ai3 小时前
AIOps 智能运维架构设计及其应用
运维
静以修身zzz3 小时前
计算云服务
运维·网络·云计算