0

最近我在玩 linux 任务调度程序。

现在想了解一下任务调度器和CFS算法的负载均衡机制。首先,我在调用__schedule()函数idle_balance(cpu, rq)中发现如果当前运行队列为空,它会尝试做一些负载平衡。

然后我还在core.c文件中发现了一个scheduler_tick()似乎定期调用的函数,更新 rq 和其他数据结构并进行负载平衡(调用函数trigger_load_balance(rq, cpu))。我对吗?但如何scheduler_tick()工作?计时器在哪里?我知道 CFS 不是基于刻度的。所以可能在启动后创建了一个计时器,它会scheduler_tick()定期调用?

这似乎是一个幼稚的问题,但我现在是 linux 系统的新手。

4

1 回答 1

0

它由系统计时器每隔一段时间生成的中断请求触发。1

于 2012-06-23T20:51:23.547 回答