Tutorials

Was sind die Threads eines Prozessors? Unterschiede zu den Kernen

Inhaltsverzeichnis:

Anonim

In diesem Artikel nehmen wir uns einen Moment Zeit, um zu erklären, was die Threads eines Prozessors sind oder auch Threads in Englisch oder Programmierthreads genannt werden, um die grundlegenden Unterschiede zwischen diesen und den Prozessorkernen zu identifizieren. Unter den weniger erfahrenen und sogar fortgeschrittenen Benutzern herrscht immer noch einiges an Verwirrung über dieses Thema. Aus diesem Grund haben wir uns vorgenommen, diese Begriffe so weit wie möglich zu präzisieren.

Dieses Konzept der Verarbeitung von Threads ist beim Kauf eines Prozessors für einen normalen Benutzer nicht unbedingt erforderlich. In den meisten Fällen, mehr als weniger, ist das fast immer der Fall. Wo wir wissen müssen, was die Threads sind, ist in der Programmentwicklungsarbeit. Abhängig davon, wie eine Anwendung programmiert und kompiliert wird, wird die Ausführung für Prozessoren mit mehr Threads als Kernen optimiert. Und hier werden wir versuchen, unsere Erklärung zu finden.

Inhaltsverzeichnis

Was sind die Kerne eines Prozessors?

Wir werden zunächst erklären, was die Kerne unseres Prozessors sind, damit wir über diese Vorkenntnisse verfügen, um nicht verwirrt zu werden.

Wir wissen, dass ein Prozessor für die Ausführung und Ausführung der Anweisungen der Programme verantwortlich ist, die in den RAM-Speicher unseres Computers geladen werden. Praktisch alle Anweisungen, die erforderlich sind, um die typischen Aufgaben auf unserem PC auszuführen, zu navigieren, zu schreiben, Fotos anzuzeigen usw., werden durchlaufen. Im physikalischen Teil ist ein Prozessor eine integrierte Schaltung, die aus Millionen von Transistoren besteht, die logische Gatter bilden, um die Datenbits in Form von Energie ohne weiteres weiterzuleiten oder nicht weiterzuleiten.

Nun, dieser kleine Chip enthält neben anderen Elementen, an denen wir derzeit nicht interessiert sind, verschiedene Module, die wir als Kerne bezeichnen können. Prozessoren hatten vor einigen Jahren nur einen dieser Kerne und konnten einen Befehl pro Zyklus verarbeiten. Diese Zyklen werden in Megahertz (MHz) gemessen. Je mehr MHz, desto mehr Anweisungen können wir pro Sekunde ausführen.

Jetzt haben wir nicht nur einen Kern, sondern mehrere. Jeder Kern stellt einen Subprozessor dar, dh jeder dieser Subprozessoren führt einen dieser Befehle aus und kann so mehrere von ihnen in jedem Taktzyklus mit einer Mehrkern-CPU ausführen. Wenn wir einen 4-Kern-Prozessor haben, können wir 4 Befehle gleichzeitig ausführen, anstatt nur einen. Die Leistungsverbesserung wird also vervierfacht. Wenn wir 6 haben, dann 6 Anweisungen gleichzeitig. Auf diese Weise sind aktuelle Prozessoren viel leistungsfähiger als ältere.

Und denken Sie daran, diese Kerne sind physisch in unserem Prozessor vorhanden, es ist nichts Virtuelles oder durch Code erstelltes.

Was sind Verarbeitungsthreads?

Threads, Threads oder Threads sind kein physischer Teil des Prozessors, zumindest nicht, wenn es um mehr Kerne oder ähnliches geht.

Wir können einen Verarbeitungsthread als Datensteuerungsfluss eines Programms definieren. Auf diese Weise können die Aufgaben eines Prozessors und seiner verschiedenen Kerne effizienter verwaltet werden. Dank Threads können die minimalen Zuordnungseinheiten, bei denen es sich um Aufgaben oder Prozesse eines Programms handelt, in Blöcke unterteilt werden, um die Wartezeiten für jeden Befehl in der Prozesswarteschlange zu optimieren. Diese Chunks werden als Threads oder Threads bezeichnet.

Mit anderen Worten, jeder Verarbeitungsthread enthält einen Teil der auszuführenden Aufgabe, was einfacher auszuführen ist, als wenn wir die gesamte Aufgabe in den physischen Kern einführen. Auf diese Weise kann die CPU mehrere Aufgaben gleichzeitig und gleichzeitig verarbeiten. Tatsächlich kann sie so viele Aufgaben ausführen, wie sie über Threads verfügt, und normalerweise gibt es eine oder zwei für jeden Kern. In den Prozessoren mit beispielsweise 6 Kernen und 12 Threads können sie die Prozesse in 12 verschiedene Aufgaben anstatt nur in 6 aufteilen.

Durch diese Arbeitsweise können die Systemressourcen gerechter und effizienter verwaltet werden. Weißt du… er teilt sich und du wirst von allem Leben gewinnen. Diese Prozessoren werden als Multithreading bezeichnet. Im Moment müssen wir uns darüber im Klaren sein, dass ein Prozessor mit 12 Threads keine 12 Kerne hat, die Kerne sind physischen Ursprungs und die Threads sind logischen Ursprungs.

Das war sicherlich etwas abstrakt und schwer zu verstehen. Lassen Sie uns also sehen, wie es übersetzt wird, wenn wir über die Architektur eines Programms auf unserem Computer sprechen.

Programme, Prozesse und Threads

Wir alle wissen, was ein Programm ist. Es ist ein Code, der auf unserem Computer gespeichert ist und dazu bestimmt ist, eine bestimmte Aufgabe auszuführen. Eine Anwendung ist ein Programm, ein Treiber ist auch ein Programm, und selbst das Betriebssystem ist ein Programm, das andere darin enthaltene Programme ausführen kann. Alle von ihnen werden in binärer Form gespeichert, da der Prozessor nur Einsen und Nullen versteht, aktuell / nicht aktuell.

Die Prozesse des Programms

Um ein Programm auszuführen, wird es in den RAM- Speicher geladen. Dieses Programm wird von Prozessen geladen, die den zugehörigen Binärcode und die für den Betrieb erforderlichen Ressourcen enthalten, die vom Betriebssystem "intelligent" zugewiesen werden.

Die grundlegenden Ressourcen, die ein Prozess benötigt, sind ein Programmzähler und ein Stapel von Datensätzen.

  • Programmzähler (CP): Er wird als Befehlszeiger bezeichnet und verfolgt die Reihenfolge der Befehle, die verarbeitet werden. Register: Es handelt sich um ein Lager im Prozessor, in dem eine Anweisung, eine Speicheradresse oder andere Daten gespeichert werden können. Stapel: In dieser Datenstruktur werden die Informationen zu den Instanzen gespeichert, die ein Programm auf dem Computer aktiv hat.

Dann wird jedes Programm in Prozesse unterteilt und an einer bestimmten Stelle im Speicher gespeichert. Außerdem wird jeder Prozess unabhängig ausgeführt, und dies ist sehr wichtig zu verstehen, da der Prozessor und das System auf diese Weise mehrere Aufgaben gleichzeitig ausführen können, was wir als Multitasking- System bezeichnen. Dieses Verarbeitungssystem ist der Schuldige, dass wir weiter an unserem PC arbeiten können, auch wenn ein Programm blockiert wurde.

Die Fäden eines Prozesses

Hier werden die Verarbeitungsthreads angezeigt, die in Betriebssystemen als Threads bezeichnet werden. Ein Thread ist die Ausführungseinheit eines Prozesses. Wir können den Prozess in Threads unterteilen, und jeder von ihnen wird ein Thread der Ausführung sein.

Wenn ein Programm kein Multithreading ist, haben die darin enthaltenen Prozesse nur einen Thread, sodass sie nur gleichzeitig verarbeitet werden können. Im Gegensatz dazu können Prozesse mit mehreren Threads in mehrere Teile unterteilt werden, und jeder dieser Threads teilt die dem Prozess zugewiesenen Ressourcen. Deshalb haben wir gesagt, dass Multithreading effizienter ist.

Darüber hinaus verfügt jeder Thread über einen eigenen Datensatzstapel, sodass zwei oder mehr von ihnen gleichzeitig verarbeitet werden können, im Gegensatz zu einem einzelnen Prozess, der auf einmal ausgeführt werden muss. Threads sind einfachere Aufgaben, mit denen Sie einen Prozess auf geteilte Weise ausführen können. Und dies ist im Grunde die letzte Funktion der Verarbeitungsthreads. Je mehr Threads vorhanden sind, desto größer ist die Aufteilung der Prozesse und desto größer ist das Volumen der gleichzeitigen Berechnungen und desto größer ist daher die Effizienz.

Wir sind noch nicht fertig, wir haben noch die offene Frage: Was passiert dann mit einem Kern mit einem doppelten Thread ? Wir haben bereits gesagt, dass jeder Kernel jeweils einen einzelnen Befehl ausführen kann. Die CPU verfügt über einen komplexen Algorithmus, der die Ausführungszeiten so effizient wie möglich unterteilt und so jeder Aufgabe ein bestimmtes Ausführungsintervall zuweist. Der Wechsel zwischen den Aufgaben ist so schnell, dass das Gefühl entsteht, dass der Kern Aufgaben parallel ausführt.

Können wir diese Threads oder Threads im System sehen?

Nicht zu detailliert, aber ja, wir können sie sowohl unter Windows als auch unter Mac sehen.

Bei Windows müssen wir nur den Task-Manager öffnen und zu " Leistung " wechseln. Dann klicken wir unten auf den Link „ Ressourcenmonitor “. In diesem neuen Fenster wird jeder Prozess in CPU-Verbrauch und Threads unterteilt. Dies sind die Threads.

Im Mac-Aktivitätsmonitor werden die Threads direkt auf dem Hauptbildschirm aufgelistet.

Damit ist unser Artikel über die CPU-Verarbeitungsthreads abgeschlossen. Es ist sicherlich ein etwas komplexes Thema zu erklären und ziemlich abstrakt, insbesondere für Benutzer, die die Funktionsweise eines Prozessors nicht vollständig verstehen. Aber in diesem Fall haben wir gute Nachrichten, weil wir auch einen ziemlich guten Artikel darüber haben, wie ein Prozessor funktioniert und wie der gesamte Befehlszyklus ausgeführt wird.

Besuchen Sie unsere Artikel über:

Wir hoffen, dass alles mehr oder weniger klar war, und wir freuen uns, dass Sie uns ausgewählt haben, um mehr über dieses Thema zu erfahren.

Tutorials

Die Wahl des Herausgebers

Back to top button