- Was ist Gleichzeitigkeit oder Single-Core?
- Was ist Parallelausführung oder (Multi-Core)?
- SCHLÜSSELUNTERSCHIED
- Was ist Thread?
- Was ist Multithreading?
- Wie funktioniert Multithreading?
- Was ist ein CPU-Kern?
- Was ist das Hauptproblem bei Single-Core?
- Die Lösung durch Multi-Core:
- Vorteile des Multicore-Prozessors
- Unterschied zwischen Core vs. Threads
- Was ist Hyper-Threading?
- Zusammenfassung:
Was ist Gleichzeitigkeit oder Single-Core?
In Betriebssystemen ist Gleichzeitigkeit definiert als die Fähigkeit eines Systems, zwei oder mehr Programme in überlappenden Zeitphasen auszuführen.
Wie Sie sehen, wird zu jedem Zeitpunkt nur ein Prozess ausgeführt. Daher ist die Gleichzeitigkeit nur eine verallgemeinerte Annäherung an eine echte parallele Ausführung. Diese Art von Situation findet man in Systemen mit einem Einkernprozessor.
In diesem Lehrgang zur Gleichzeitigkeit lernen Sie
- Was ist Gleichzeitigkeit oder Single Core?
- Was ist Parallelausführung oder (Multi-Core)?
- Was ist ein Thread?
- Was ist Multithreading?
- Wie funktioniert Multithreading?
- Was ist ein CPU-Kern?
- Was ist das Hauptproblem bei Single Core?
- Die Lösung, die Multi-Core bietet:
- Vorteile von Multi-Core-Prozessoren
- Unterschied zwischen Core vs. Threads
- Was ist Hyper-Threading?
Was ist Parallelausführung oder (Multi-Core)?
Bei der Parallelausführung werden die von einem Prozess auszuführenden Aufgaben in Teilaufgaben aufgeteilt, und mehrere CPUs (oder mehrere Kerne) bearbeiten jede Teilaufgabe genau zur gleichen Zeit.
Wie Sie sehen können, sind zu jedem Zeitpunkt alle Prozesse in Ausführung. In Wirklichkeit sind es die Unteraufgaben eines Prozesses, die parallel ausgeführt werden, aber zum besseren Verständnis kann man sie als Prozesse darstellen.
Parallelität ist also die eigentliche Art und Weise, in der mehrere Aufgaben gleichzeitig verarbeitet werden können. Diese Art von Situation findet man in Systemen mit Multicore-Prozessoren, zu denen fast alle modernen, kommerziellen Prozessoren gehören.
SCHLÜSSELUNTERSCHIED
- Cores erhöhen die Menge der gleichzeitig ausgeführten Arbeit, während Threads den Durchsatz, die Rechengeschwindigkeit, verbessern.
- Cores ist eine tatsächliche Hardwarekomponente, während Threads eine virtuelle Komponente sind, die die Aufgaben verwaltet.
- Cores verwenden Content Switching, während Threads mehrere CPUs für den Betrieb zahlreicher Prozesse verwenden.
- Cores benötigen nur eine Signalverarbeitungseinheit, während Threads mehrere Verarbeitungseinheiten benötigen.
Was ist Thread?
Ein Thread ist eine Ausführungseinheit bei der gleichzeitigen Programmierung. Multithreading ist eine Technik, die es einer CPU ermöglicht, viele Aufgaben eines Prozesses gleichzeitig auszuführen. Diese Threads können einzeln ausgeführt werden, während sie sich ihre Ressourcen teilen.
Was ist Multithreading?
Multithreading bezieht sich auf die gemeinsame Aufgabe, die mehrere Threads der Ausführung innerhalb eines Betriebssystems ausführt. Es kann mehrere Systemprozesse umfassen.
Wie funktioniert Multithreading?
Die meisten modernen CPUs unterstützen zum Beispiel Multithreading. Mit einer einfachen App auf dem Smartphone kann man das live demonstrieren.
Wenn Sie eine App öffnen, für die Daten aus dem Internet abgerufen werden müssen, wird der Inhaltsbereich der App durch einen Spinner ersetzt. Dieser dreht sich so lange, bis die Daten abgerufen und angezeigt wurden.
Im Hintergrund gibt es zwei Threads:
- Einer holt die Daten aus dem Netzwerk, und
- einer rendert die grafische Benutzeroberfläche, die den Spinner anzeigt
Beide Threads werden nacheinander ausgeführt, um die Illusion einer gleichzeitigen Ausführung zu vermitteln.
Was ist ein CPU-Kern?
Ein CPU-Kern ist der Teil von etwas, der für seine Existenz oder seinen Charakter zentral ist. In gleicher Weise wird im Computersystem die CPU auch als Kern bezeichnet.
Es gibt grundsätzlich zwei Arten von Prozessorkernen:
- Single-Core-Prozessor
- Multi-Core-Prozessor
Was ist das Hauptproblem bei Single-Core?
Es gibt hauptsächlich zwei Probleme mit Single-Core.
- Um die Aufgaben schneller auszuführen, muss man die Taktzeit erhöhen.
- Die Erhöhung der Taktzeit erhöht den Stromverbrauch und die Wärmeabgabe auf ein extrem hohes Niveau, was den Prozessor ineffizient macht.
Die Lösung durch Multi-Core:
- Durch die Schaffung von zwei oder mehr Kernen auf demselben Chip wird die Verarbeitungsleistung erhöht, während gleichzeitig die Taktfrequenz auf einem effizienten Niveau gehalten wird.
- Ein Prozessor mit zwei Kernen, der mit einer effizienten Geschwindigkeit arbeitet, kann Befehle mit einer ähnlichen Geschwindigkeit verarbeiten wie ein Single-Core-Prozessor. Seine Taktrate ist doppelt so hoch, dennoch verbraucht der Multicore-Prozess weniger Energie.
Vorteile des Multicore-Prozessors
Hier sind einige Vorteile des Multicore-Prozessors:
- Mehr Transistoren pro Wahl
- Kürzere Verbindungen
- Geringere Kapazität
- Eine kleine Schaltung kann mit hoher Geschwindigkeit arbeiten
Unterschied zwischen Core vs. Threads
Parameter | Core | Threads |
Definition | CPU-Cores sind die eigentliche Hardwarekomponente. | Threads beziehen sich auf die virtuelle Komponente, die die Aufgaben verwaltet. |
Prozess | Die CPU wird von einem Thread mit Aufgaben versorgt. Daher greift sie nur dann auf den zweiten Thread zu, wenn die vom ersten Thread gesendeten Informationen nicht zuverlässig sind. | Es gibt viele verschiedene Varianten, wie die CPU mit mehreren Threads interagieren kann. |
Implementierung | Erreicht durch Interleaving-Operation | Ausgeführt durch die Verwendung mehrerer CPUs |
Vorteil | Erhöhen Sie die Menge der gleichzeitig ausgeführten Arbeit. | Verbesserung des Durchsatzes, Beschleunigung der Berechnungen. |
Nutzung von | Core verwendet Content Switching | Nutzung mehrerer CPUs für den Betrieb zahlreicher Prozesse. |
Verarbeitungseinheiten erforderlich | Erfordert nur Signalverarbeitungseinheit. | Erfordert mehrere Verarbeitungseinheiten. |
Beispiel | Gleichzeitige Ausführung mehrerer Anwendungen. | Ausführung eines Web-Crawlers in einem Cluster. |
Was ist Hyper-Threading?
Hyper-Threading war der erste Versuch von Intel, parallele Berechnungen auf PCs von Endbenutzern zu ermöglichen. Es wurde zum ersten Mal bei Desktop-CPUs mit dem Pentium 4 im Jahr 2002 eingesetzt.
Der Pentium 4 verfügte damals nur über einen einzigen CPU-Kern. Daher führt er nur eine einzige Aufgabe aus und kann keine Art von Mehrfachoperationen durchführen.
Eine einzelne CPU mit Hyper-Threading erscheint für ein Betriebssystem als zwei logische CPUs. In diesem Fall ist die CPU eine einzige, aber das Betriebssystem betrachtet zwei CPUs für jeden Kern, und die CPU-Hardware hat einen einzigen Satz von Ausführungsressourcen für jeden CPU-Kern.
Daher geht die CPU davon aus, dass sie mehrere Kerne hat, und das Betriebssystem geht von zwei CPUs für jeden einzelnen CPU-Kern aus.
Zusammenfassung:
- Ein Thread ist eine Ausführungseinheit bei der gleichzeitigen Programmierung.
- Multithreading bezieht sich auf die gemeinsame Aufgabe, die mehrere Threads der Ausführung innerhalb eines Betriebssystems ausführt
- Heute unterstützen viele moderne CPUs Multithreading
- Hyper-Threading war Intels erster Versuch, parallele Berechnungen auf die PCs der Endbenutzer zu bringen.
- Ein CPU-Kern ist der Teil von etwas, der für seine Existenz oder seinen Charakter von zentraler Bedeutung ist
- In Betriebssystemen ist Gleichzeitigkeit definiert als die Fähigkeit eines Systems, zwei oder mehr Programme in sich überschneidenden Zeitphasen auszuführen.
- Bei der parallelen Ausführung werden die von einem Prozess auszuführenden Aufgaben in Teilaufgaben zerlegt.
- Das Hauptproblem von Single-Core-Prozessoren besteht darin, dass zur schnelleren Ausführung der Aufgaben die Taktzeit erhöht werden muss.
- Multicore löst dieses Problem durch die Schaffung von zwei oder mehr Kernen auf demselben Chip, um die Verarbeitungsleistung zu erhöhen, und es hält auch die Taktgeschwindigkeit auf einem effizienten Niveau.
- Der größte Vorteil des Multicore-Systems ist, dass es hilft, mehr Transistoren pro Wahl zu schaffen
- Die CPU-Kerne bezeichnen die tatsächliche Hardwarekomponente, während Threads sich auf die virtuelle Komponente beziehen, die die Aufgaben verwaltet.