【发布时间】:2012-06-19 21:45:04
【问题描述】:
我花了很多时间弄清楚代码级别的功能,现在我真的很困惑。
首先在 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任务调度器高手能否给个提示:>
【问题讨论】: