最近我在玩linux任務調度器。在linux任務調度程序中,sheduler_tick()調用了什麼?
現在我想找出任務調度器和CFS算法的負載均衡機制。首先,我在__schedule()
函數中發現idle_balance(cpu, rq)
被調用,如果當前runqueue爲空,它會嘗試做一些負載平衡。
然後我也在core.c
文件中發現有這好像是叫定期更新RQ和其他數據結構也做負載均衡(調用函數trigger_load_balance(rq, cpu)
)的功能scheduler_tick()
。我對嗎?但scheduler_tick()
如何工作?定時器在哪裏?我知道CFS不是基於tick的。因此,在啓動後可能會創建一個定時器,定期調用scheduler_tick()
?
這似乎是一個幼稚的問題,但我現在是一個菜鳥到Linux系統。
'scheduler_tick()'可能只是綁定到定時器IRQ處理程序。 – Griwes
@Griwes謝謝。我想是這樣。 –