我是Linux内核的新手。我从这里开始阅读关于Linux的CFS调度程序
https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt
我遇到了几行
运行队列中正在运行的任务总数通过以下方式计算: rq-> cfs.load值,它是在队列上排队的任务的权重之和 runqueue。
现在,如果rq-> cfs.load告诉可运行进程的总数,那么它应该是一个如下数字:
3 - > 3个过程可以运行
5 - > 5个流程可以运行
但是rq-> cfs.load的实际值是进程权重的总和。
我的问题是:
答案 0 :(得分:0)
我还是Linux的初学者。但据我所知,这意味着
1.我认为你有点困惑:每当进程数量增加(这是一个变化)时,一些调度参数需要是 改变。调度类的功能而不是计数 进程数,它使用它的负载值来计算它 参数。因此,变化(即过程数量的增加)是 计算(即考虑)计算负荷值 通过cfs_rq->加载变量。我们对cfs_rq-> load进行了此更新 通过总结过程的重量。
<强> 2。过程权重:过程权重通过其动态优先级计算。 Dynamic Prority是如何计算的?动态优先级计算: 静态优先级+“进程的调度类 计划的“(即实时与正常)用于计算动态 优先。计算不是简单的加法。阅读此Link from UTLK。阅读一些关于静态优先级的链接。