Wechseln die Prozesse zwischen verschiedenen Kernen?

Wechseln die Prozesse zwischen verschiedenen Kernen?

Wechselt ein Prozess zwischen verschiedenen Kernen, um die Leistung zu steigern? Wenn der Prozess zwischen den Kernen springt, welche Komponenten werden von den Kernen gemeinsam genutzt? L1-L3-Cache, Register oder Speicher?

Antwort1

Stellen wir uns ein stark ausgelastetes System mit einer einzelnen CPU und zwei Kernen vor, bei dem die Auslastung bei fast 100 % liegt.

Ein Prozess mit PID 1234 hat nur einen Thread (z. B. eine Konsolenanwendung, die eine Monothread-Audiokomprimierung durchführt).

Bei dieser Art von Prozess versucht das System, den Thread möglichst auf demselben Kern auszuführen, um Cache-Fehler zu minimieren. Wenn das System jedoch sehr ausgelastet ist, versuchen möglicherweise auch ähnliche andere Prozesse, auf denselben Kernen ausgeführt zu werden. In diesem Fall kann Ihr Single-Thread-Prozess im Prinzip zuerst auf Kern Nr. 1, dann auf Kern Nr. 2 usw. ausgeführt werden.

Antwort2

Wird der Prozess zwischen verschiedenen Kernen wechseln, um die Leistung zu steigern?

Dies hängt davon ab, ob der Prozess ein Multithreading-Prozess ist oder nicht. Der Prozess selbst ist im Grunde nur ein „Container“ für Threads, er muss mindestens einen haben, um ausgeführt zu werden. Jeder Thread kann einen CPU-Kern verwenden. Wenn Ihr Prozess also zwei Threads hat (einen GUI- und einen Arbeitsthread), wird er auf zwei CPU-Kernen ausgeführt.

Die Frage „Wechselt der Prozess zwischen verschiedenen Kernen?“ ist nicht ganz korrekt, da ein solches Umschalten vom Betriebssystem (OS) und NICHT vom Prozess selbst geplant wird!

Antwort3

Der Prozesswechsel zwischen CPUs beeinträchtigt die Leistung, da der Wechsel bedeutet, dass die Prozessinformationen und Register im Speicher gespeichert und dann auf die andere CPU geladen werden.

Diese Speicher- und Ladebefehle gehören zu den langsamsten Befehlen auf der CPU, obwohl sie nicht bemerkt werden, wenn sie sehr selten ausgeführt werden.

Dieser Vorgang läuft genau so ab, als würde ein Prozess seinen Zeitabschnitt beenden, vom Betriebssystem angehalten und anschließend mit einem neuen Zeitabschnitt neu gestartet.

verwandte Informationen