Prozessorkerne, logische Prozessoren und Threads
Kurz: Ein physischer Prozessorkern ist eine echte Recheneinheit. Ein logischer Prozessor ist das, was das Betriebssystem als Recheneinheit sieht (bei SMT zwei pro Kern). Ein Thread ist der Ausführungsstrang eines Programms, der auf einem logischen Prozessor läuft. Ein Prozessor (CPU, Package) ist der ganze Chip.
Genauer: Die Begriffe liegen auf drei Ebenen: Hardware (Chip, Kerne), Betriebssystem (logische Prozessoren) und Software (Threads). Das Betriebssystem verteilt die Threads auf die logischen Prozessoren.
Im Detail
| Begriff | Ebene | Bedeutung |
|---|---|---|
| Prozessor/CPU (Package) | Hardware | Der Chip im Sockel |
| Physischer Kern (Core) | Hardware | Vollständige Recheneinheit mit eigener ALU, L1/L2 |
| Logischer Prozessor | Betriebssystem | Was der Task-Manager als „Kern” zählt. Mit SMT 2 je Physikalischem |
| Thread | Software | Ablauf innerhalb eines Prozesses |
| Prozess | Software | Laufendes Programm mit eigenem Speicher, enthält 1 oder viele Threads |
Beispiel: Ein Ryzen 7 mit 8 Kernen und SMT zeigt im Task-Manager „8 Kerne, 16 logische Prozessoren”. Es können 16 Threads gleichzeitig laufen, aber nicht doppelt so schnell wie 8.
- Unterschied zwischen Kern und Thread: Der Kern ist Hardware, der Thread ein Stück Programmablauf. Ein Kern kann viele Threads nacheinander (Zeitscheiben) oder bei SMT zwei gleichzeitig ausführen.
- Mehr Threads als logische Prozessoren: Normal. Das Betriebssystem schaltet im Millisekundentakt um (Scheduling).
- Hybridkerne: P-Kerne (mit SMT) und E-Kerne (ohne SMT) auf einem Chip.
- Vorteile mehrerer Kerne: Programme, die in mehrere Threads aufgeteilt sind, nutzen sie. Ein Einzelthread nutzt immer nur einen Kern.
- Grenzen: Amdahls Gesetz: Der nicht parallele Anteil bestimmt das Maximum. Synchronisation (Sperren) kostet Zeit.
- Anzeigen: Windows Task-Manager → Leistung → CPU. Linux
lscpu,nproc. - Einsatz: Server und Rendern profitieren von vielen Kernen, Spiele eher von hohem Einzelkern-Tempo.
Siehe auch: Simultaneous Multithreading (SMT), Cores, Threads