CFS 调度器
Posted honpey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CFS 调度器相关的知识,希望对你有一定的参考价值。
CFS调度器的原理明白了但是有个地方,搜遍了整个网络也没找到一个合理的解释:
if (delta > ideal_runtime)
resched_task(rq_of(cfs_rq)->curr);
这出代码是在patch:f685ceaca
sched: Strengthen buddies and mitigate buddy induced latencies
patch中描述和是LAST_BUDDY 和 wakeup preemption相关
buddy是什么意思?是调度队列中的而一个缓存,一个缓存LAST_BUDDY,一个是NEXT_BUDDY,其中LAST_BUDDY是上次执行唤醒操作的进程,NEXT_BUDDY是上次被唤醒的进程,这两个操作为什么这么不同?上面的调度还是考虑到普通的大众进程,还是没有考虑到进程冷热性。
为什么这里要单独考虑进程的冷热性?
为什么软件层面要考虑进程的冷热性?
为什么要考虑唤醒的进程和被唤醒的进程,唤醒的进程有什么特征,非唤醒的进程有什么特征?唤醒别人的进程|被别人唤醒的进程
不知道为啥子
以上是关于CFS 调度器的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核CFS 调度器 ⑥ ( CFS 调度器就绪队列 cfs_rq | Linux 内核调度实体 sched_entity | “ 红黑树 “ 数据结构 rb_root_cached )