我花了很多时间弄清楚代码级别的功能,现在我真的很困惑。
首先在 core.c 中,这个函数__schedule()似乎schedule()是最有前途的。通常在 中__schedule(),我发现了hrtick_clear(rq)似乎是计时器的代码。然后也在 中__schedule(),将调用该函数,该函数next = pick_next_task(rq)将尝试查找要安排的下一个任务。对于普通任务,使用 CFS 算法。然后我进入 fair.c 文件检查 pick_next_task_fair 函数。通过跟踪该函数,我看到hrtick_start(rq, delta)已被调用。
所以显然似乎有一个基于hrtick的定时器用于周期性地激活调度算法。但奇怪的是,在core.c文件中,我实在找不到定时器是如何配置为周期性调用__schedule()的。schedule()我没有看到定时器被配置为调用这个函数。
是否使用了其他功能?linux任务调度高手能否给个提示:>