1

我理解 update_rq_clock 的概念,因为它定期更新系统滴答的运行队列时钟。但是这个函数调用 update_rq_clock_task()。这个功能背后的目的是什么?

4

1 回答 1

1

计算 CPU 时间戳和运行队列时钟之间的差值( rq- update_rq_clock>clock 变量表示从 CPU 读取的最后一个时钟)。该差异通过update_rq_clock_task.

该函数中有几个选项,您可以使用内核构建选项激活它们。但基本上它分解为:

...
rq->clock_task += delta;
...
update_rq_clock_pelt(rq, delta);
...

因此,这两个函数一起更新运行队列的时钟和运行队列的时钟,而不考虑中断和被盗时间(除非您通过内核选项激活了该记帐),因此是任务使用的实际时间。

于 2020-07-17T11:27:56.190 回答