1

schedule() 関数のコピーが各プロセッサで実行されるのか、それともプロセッサごとに 1 つの schedule() が実行されるだけなのかを知りたかったのです。

各プロセッサ/コアで実行されている schedule() のコピーがある場合、プロセスは特定の CPU/CPU ランキューにどのようにディスパッチされますか。ロードバランサーの仕事ですか?すべての CPU に対して実行されているロード バランサーは 1 つだけですか? それとも、フラグ/通信方式を使用して分散方式で実行されていますか?

ps- クラスのスケジューリングなどの作業は知っていますが、さまざまなランキュー間でのプロセスの分散を理解するのに苦労しています。

4

1 に答える 1

2

プロセスはどのように特定の CPU/CPU ランキューにディスパッチされますか。ロードバランサーの仕事ですか?

はい。マルチプロセッサ システムでは、ロード バランサが定期的にチェックして、CPU の負荷が不均衡になっていないかどうかを確認します。そうである場合、プロセッサはタスクのクロス CPU バランスを実行します。

すべての CPU に対して実行されているロード バランサーは 1 つだけですか? それとも、フラグ/通信方式を使用して分散方式で実行されていますか?

はい。SMP スケジューリングでは、複数のコア間のマルチタスクを管理する 1 つの schedule() と 1 つのロード バランシングしかありません。

参照: Linux スケジューラーの内部

于 2013-02-11T17:13:22.243 に答える