マルチコアシステムでは、各CPUに独自のLinuxカーネルがありますか?


2

つまり、「n」個のCPUを備えたマルチコアシステムでは、各CPUに独自のLinuxカーネルがインストールされますか、それともすべてのCPUに同じカーネルイメージのコピーがありますか?

マルチコアに関するもう1つの質問は、カーネルトレースです。トレースはカーネルレベルで機能するため、各cpuのトレースを個別に実行する必要がありますか、またはすべてのcpuのput-together全体としてカーネルトレースを実行できますか?


3
プログラミングに直接関係していないように見えるため、スーパーユーザーの質問のように聞こえます。
マークバイヤーズ

1
よくわからないが、この質問はカーネルの要点のかなり基本的なものだ。ここで質問を続けたいと思います。
stsquad

回答:


7

すべてのCPUは同じメモリシステムを共有し、Linuxのコピーは1つだけロードされます。実行中の各プロセスには独自のスタックがありますが、これはシングルCPUシステムでも同様です。

Straceは、個々のPIDで機能すると考えられるptraceを介して実装されているため、単一のスレッドの実行のみをトレースすることになると思います。


もちろん、1つのコアでの実行にのみ関連するものには、CPUごとの変数が追加されます。
stsquad

0

カーネル/ CPUの数にわたって実行されるコードのセクションを含む1つのカーネルイメージがあります。これは、カーネルスイッチ/コンパイル方法によって異なります。

カーネルトレースに関連して、1つのトレースがまだあります!

同じ単一のカーネルが複数のcpus /コアによって実行されることを忘れないでください...

よろしくお願いします、トム。


0

回答ありがとうございます。私は自分で少し研究をしましたが、両方ともマルチコアシステムで可能であることがわかりました。SMPマルチコアシステムには、すべてのコアに対して単一のLinuxカーネルがあります。AMPマルチコアシステムの場合と同様に、各コアには独自のカーネルがあります。通常、一部のマルチコアには、リアルタイムの重要なタスクを実行するAMP用のコアがいくつかあり、残りは重要ではない通常のタスクを実行するSMPです。

質問は、カーネルトレースについてです。現在、ほとんどのカーネルには、カーネル開発者がカーネルのパフォーマンスに関する情報を取得できるようにするkprobesが組み込まれています。最初の質問への答えもこの質問を解決していると思います。SMPでは、AMPの場合と同様に、CPUの数と同じ数のトレースが生成されるカーネルの単一トレースが生成されます。

AMPは非対称マルチプロセッシングの略、SMPは対称マルチプロセッシングの略

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.