linux cpu CFS 调度器有使用 令牌桶么?

根据搜索结果,Linux CPU 完全公平调度器(CFS)本身的设计和实现中,并没有使用令牌桶(Token Bucket)算法。CFS 的核心调度机制是基于红黑树和虚拟运行时间(vruntime)来实现任务的公平调度,它通过模拟一个理想的多任务CPU,使每个任务能公平地获得CPU时间片。

具体来说,CFS通过跟踪每个任务的虚拟运行时间,维护一个排序的红黑树,从树的最左边节点选择下一个运行的任务,从而实现公平调度。CFS没有使用基于时间片的令牌桶算法来控制调度时间,而是依赖于虚拟运行时间和负载权重计算来动态分配CPU资源。

不过,CFS在CPU资源带宽控制方面有相关的机制,比如CPU带宽控制(CONFIG_CFS_BANDWIDTH),该机制可用于限制某个进程或进程组的CPU使用比例,但这部分也并不是基于令牌桶算法,而是一种CPU使用时间的限制和借用机制。

总结:Linux的 CFS 调度器不使用令牌桶算法作为调度机制,主要采用虚拟运行时间和红黑树实现公平调度。令牌桶算法常用于流量控制、限速等场景,而非 Linux CFS 的 CPU 时间分配机制.

相关推荐
XMYX-03 分钟前
06 - Go 的切片、字典与遍历:从原理到实战
后端·golang
架构师专栏5 分钟前
比 MQ 更轻的异步方案:Spring 内置的这个隐藏功能,很多人还不知道
后端
林木8811 分钟前
Druid Kafka 数据源消费到 Segment 生成全链路深度分析
后端
摇曳的精灵18 分钟前
Spring boot注解实现信息脱敏
java·spring boot·后端·注解脱敏·信息脱敏
程序猿大帅18 分钟前
记一次线上翻车:加了Redisson分布式锁,数据还是被并发打穿了
后端
weixin_7042660518 分钟前
项目总结一
java·前端·spring boot·后端·spring
JimmtButler19 分钟前
一台电脑,两个 Git 身份:公司 GitLab + 个人 GitHub 共存
后端
全栈王校长20 分钟前
Nest 中间件 Middleware - 就像 Vue 的路由守卫
后端·nestjs
全栈王校长23 分钟前
Nest ValidationPipe 参数验证 - 就像前端的表单校验
后端·nestjs
猫咪老师25 分钟前
Day11 Python 关于线程和进程的最详细介绍!
后端·python