Wird jede CPU in einem Multicore-System einen eigenen Linux-Kernel haben?

2394
tracemein

Was ich damit meinte, war in einem Multicore-System mit einer 'n' Anzahl von CPU's, wird jede CPU einen eigenen Linux-Kernel installiert, oder haben alle CPU eine Kopie des gleichen Kernel-Images?

Eine andere Frage bezüglich Multicore ist die Kernel-Ablaufverfolgung. Da das Tracing auf Kernel-Ebene arbeitet, sollte ich dann die Tracing für jede CPU einzeln durchführen, oder das Kernel-Tracing kann als Ganzes für alle Cpus zusammengestellt werden?

2
Klingt nach einer super Benutzerfrage, da es nicht direkt mit der Programmierung zusammenhängt. Mark Byers vor 14 Jahren 3
Ich bin mir nicht so sicher, diese Frage ist für das A und O eines Kernels ziemlich grundlegend. Ich würde gerne die Frage hier behalten. stsquad vor 14 Jahren 1

3 Antworten auf die Frage

7
DigitalRoss

Alle CPUs haben das gleiche Speichersystem und es ist nur eine Kopie von Linux geladen. Jeder laufende Prozess verfügt über einen eigenen Stack. Dies gilt jedoch auch für Systeme mit nur einer CPU.

Strace wird über ptrace implementiert, was meiner Meinung nach bei einzelnen PIDs funktioniert. Ich denke also, dass es nur die Ausführung eines einzelnen Threads verfolgt.

Es gibt natürlich das Hinzufügen von Pro-CPU-Variablen für Dinge, die nur für die Ausführung auf einem Kern relevant sind. stsquad vor 14 Jahren 0
0
t0mm13b

Sie haben ein Kernel-Image, wobei Abschnitte des Codes über die Anzahl der Cores / cpu ausgeführt werden. Dies hängt von den Kernel-Switches ab und davon, wie sie kompiliert wurden.

In Bezug auf die Kernel-Ablaufverfolgung haben Sie immer noch eine Ablaufverfolgung!

Denken Sie daran, dass derselbe Singular-Kernel von mehreren CPU / Kernen ausgeführt wird ...

Ich hoffe, das hilft, Viele Grüße, Tom.

0
tracemein

Vielen Dank für Ihre Antworten. Ich habe selbst ein wenig recherchiert und festgestellt, dass beides in Multicore-Systemen möglich ist. Ein SMP-Multicore-System verfügt über einen einzigen Linux-Kernel für alle Kerne, wobei wie in einem AMP-Multicore-System jeder Kern seinen eigenen Kernel hat. In der Regel verfügen einige Multicores über mehrere Kerne für AMP, die kritische Echtzeitaufgaben ausführen, und der Rest wird SMP sein, der nicht kritische und normale Aufgaben ausführt.

Die Frage, die ich gestellt habe, bezieht sich auf die Kernel-Suche. Heutzutage verfügen die meisten Kernel über integrierte Kprobes, mit denen Kernel-Entwickler Informationen über die Kernel-Leistung erhalten können. Ich denke, die Antwort auf die erste Frage löst auch diese Frage. In einem SMP wird eine einzelne Spur für einen Kernel generiert, wobei wie in AMP so viele Spuren wie die Anzahl der cpu generiert wird.

AMP steht für Asymmetric Multi Processing, SMP steht für Symmetric Multi Processing