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是上次被唤醒的进程,这两个操作为什么这么不同?上面的调度还是考虑到普通的大众进程,还是没有考虑到进程冷热性。
为什么这里要单独考虑进程的冷热性?
为什么软件层面要考虑进程的冷热性?
为什么要考虑唤醒的进程和被唤醒的进程,唤醒的进程有什么特征,非唤醒的进程有什么特征?唤醒别人的进程|被别人唤醒的进程
不知道为啥子
时间: 2024-12-11 12:18:16