2012-06-23 63 views
0

最近我在玩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系統。

+0

'scheduler_tick()'可能只是綁定到定時器IRQ處理程序。 – Griwes

+0

@Griwes謝謝。我想是這樣。 –

回答

0

它被系統定時器間隔產生的中斷請求觸發。 1

+0

所以我認爲我的理解是正確的。系統時鐘是在啓動時創建的。 Thx, –

+0

系統時鐘是在工廠製造主板時創建的:-) –