vruntime
- vruntime 变量存放进程的虚拟运行时间,虚拟时间是以 ns 为单位的,which is the
actual runtime
(the amount of time spent running) normalized (or weighted) by the number of runnable processes - vruntime 和定时器节拍不再相关。
- 优先级相同的所有进程的虚拟运行时都是相同的(所有任务都将接收到相等的处理器份额)
- 但是因为处理器无法实现完美的多任务,它必须依次运行每个任务。因此 CFS 使用 vruntime 变量来记录一个程序到底运行了多长时间以及它还应该再运行多久。
定义在kernel/sched_fair.c
文件中的update_curr(struct cfs_rq *cfs_rq)
函数manages this accounting:
//kernel/sched_fair.c
static void update_curr(<