Windows プロセス スケジューラがタスクをランダムな CPU に割り当てるのはなぜですか?

Windows プロセス スケジューラがタスクをランダムな CPU に割り当てるのはなぜですか?

私はデュアル コア C2D プロセッサ、Windows 7 を使用しています (ただし、この動作は私が見たすべての MS OS で同じです)。シングル スレッドの CPU 集中型タスクを実行すると、1 つのコアに固定されず、ランダムに最初のコアの約 50% と 2 番目のコアの約 50% が占有されます。

なぜそうするのでしょうか? L1 キャッシュの効率が低下するのではないですか?

プロセスの親和性を設定できることは知っていますが、そのような動作の理由が知りたいだけです。

答え1

ランダムではありません。ドロップするのに最適な場所を選択しているため、現在重いプロセスを処理しているプロセッサにドロップしても意味がありません...

他のプロセスがすでに L1 キャッシュからすべての有用なデータをフラッシュしている可能性が高いため、これは L1 キャッシュの効率にはあまり影響しません。共有 L2 キャッシュと L3 キャッシュについて多くの議論があるのはそのためです...

関連情報