4

Linux のスワッパー タスク (アイドル タスク) について 1 つ質問があります。16 個の CPU コアを持つシステムがあります。taskstats を使用すると、swapper タスクがコア 0 で実行されていることがわかりました。その CPU で他に実行可能なタスクがない場合、すべての CPU コアで swapper タスクを実行する必要があるという印象を受けました。true の場合、swapper タスクが cpu0 でのみ実行されていると表示されるのはなぜですか? また、間違っている場合は、実行可能なタスクがない場合に残りの CPU コアが何をするのでしょうか?

あなたの助けを楽しみにしています。ありがとう。

4

1 に答える 1

2

アイドル タスク ジョブは、おっしゃる通り、実行するものが他にないときに実行されるため、CPU の命令が不足することはありません。

つまり、シングル コアのシステムでは、アイドル プロセスによって CPU が常に何らかの処理を実行しているため、CPU が停止することはありません。

マルチ CPU/コア システムでも同じことが当てはまりますが、一部の CPU ではシステムが一部のコアをアイドル モードにして電力を節約することができます。この場合、カーネルがそのコアに切り替えられると、必要に応じてより多くのコアをウェイクアップできるため、アイドル プロセスを使用して 1 つのコアを有効にしておくだけで済みます。

上記は真実全体の単純化されたバージョンであることに注意してください。カーネルが正しいことをすることを信頼してください。通常、カーネルは自分が何をしているかを知っており、あなたにとって最善のものだけを望んでいます:-)

于 2013-10-03T08:42:50.417 に答える