0

最近、Linuxのタスクスケジューラで遊んでいます。

ここで、タスクスケジューラの負荷分散メカニズムとCFSアルゴリズムを調べたいと思います。まず、現在のランキューが空の場合に負荷分散を行おうとする__schedule()関数が呼び出されることを発見しました。idle_balance(cpu, rq)

次に、core.cファイル内に、scheduler_tick()定期的に呼び出されているように見える関数があり、rqやその他のデータ構造を更新し、負荷分散も実行していることを発見しました(関数の呼び出しtrigger_load_balance(rq, cpu))。私は正しいですか?しかし、どのように機能しscheduler_tick()ますか?タイマーはどこにありますか?CFSがティックベースではないことを知っていますが、起動後にscheduler_tick()定期的に呼び出されるタイマーが作成されている可能性がありますか?

これは素朴な質問のようですが、私は現在Linuxシステムの新人です。

4

1 に答える 1

0

これは、システムタイマーによって間隔を置いて生成された割り込み要求によって発生します。1

于 2012-06-23T20:51:23.547 に答える