つまり、「n」個のCPUを備えたマルチコアシステムでは、各CPUに独自のLinuxカーネルがインストールされますか、それともすべてのCPUに同じカーネルイメージのコピーがありますか?
マルチコアに関するもう1つの質問は、カーネルトレースです。トレースはカーネルレベルで機能するため、各cpuのトレースを個別に実行する必要がありますか、またはすべてのcpuのput-together全体としてカーネルトレースを実行できますか?
つまり、「n」個のCPUを備えたマルチコアシステムでは、各CPUに独自のLinuxカーネルがインストールされますか、それともすべてのCPUに同じカーネルイメージのコピーがありますか?
マルチコアに関するもう1つの質問は、カーネルトレースです。トレースはカーネルレベルで機能するため、各cpuのトレースを個別に実行する必要がありますか、またはすべてのcpuのput-together全体としてカーネルトレースを実行できますか?
回答:
すべてのCPUは同じメモリシステムを共有し、Linuxのコピーは1つだけロードされます。実行中の各プロセスには独自のスタックがありますが、これはシングルCPUシステムでも同様です。
Straceは、個々のPIDで機能すると考えられるptraceを介して実装されているため、単一のスレッドの実行のみをトレースすることになると思います。
回答ありがとうございます。私は自分で少し研究をしましたが、両方ともマルチコアシステムで可能であることがわかりました。SMPマルチコアシステムには、すべてのコアに対して単一のLinuxカーネルがあります。AMPマルチコアシステムの場合と同様に、各コアには独自のカーネルがあります。通常、一部のマルチコアには、リアルタイムの重要なタスクを実行するAMP用のコアがいくつかあり、残りは重要ではない通常のタスクを実行するSMPです。
質問は、カーネルトレースについてです。現在、ほとんどのカーネルには、カーネル開発者がカーネルのパフォーマンスに関する情報を取得できるようにするkprobesが組み込まれています。最初の質問への答えもこの質問を解決していると思います。SMPでは、AMPの場合と同様に、CPUの数と同じ数のトレースが生成されるカーネルの単一トレースが生成されます。
AMPは非対称マルチプロセッシングの略、SMPは対称マルチプロセッシングの略