Threads vs Kerne
Sagen, wenn ich einen Prozessor wie diese was sagt # Kerne = 4, # threads = 4 und ohne Hyper-threading-Unterstützung.
Bedeutet das, dass ich laufen kann 4 gleichzeitige Programm/Prozess (denn der Kern ist in der Lage mit nur einem thread)?
Oder heißt das, ich kann laufen, 4 x 4 = 16 Programm/Prozess gleichzeitig?
Aus meinem Graben, wenn kein Hyper-threading, wird es nur 1 thread (Prozess) pro Kern. Korrigieren Sie mich, wenn ich falsch bin.
InformationsquelleAutor der Frage teonghan | 2010-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist grundsätzlich richtig, mit der offensichtlichen qualifier, dass die meisten Betriebssysteme lassen, Sie führen weit mehr Aufgaben gleichzeitig als Kerne oder threads, die Sie erreichen durch die Verschachtelung der Ausführung der Anweisungen.
Einem system mit hyperthreading hat in der Regel doppelt so viele hardware-threads als physikalische Kerne.
InformationsquelleAutor der Antwort Marcelo Cantos
Einen thread unterscheidet sich von einem Prozess. Ein Prozess kann beliebig viele threads. Ein thread ist eine Sequenz von Befehlen, die eine bestimmte Reihenfolge haben. Ein logischer Kern ausführen kann, auf die Reihenfolge der Befehle. Das Betriebssystem verteilt alle threads, die auf alle logischen Kerne verfügbar ist, und wenn es mehr threads als cores, threads verarbeitet werden, eine schnelle cue, und die core-switches, die von einem zum anderen sehr schnell.
Es wird Aussehen, wie alle die threads, die gleichzeitig ausgeführt werden, wenn tatsächlich das OS verteilt die CPU-Zeit unter Ihnen.
Werden, dass mehrere Kerne ergibt sich der Vorteil, dass weniger threads gleichzeitig auf einem single-core, weniger Wechsel zwischen threads = mehr Geschwindigkeit.
Hyper-threading erstellt 2 logische Kerne auf 1 physischen Kern, und macht das Umschalten zwischen threads wesentlich schneller.
InformationsquelleAutor der Antwort AlexanderMP
Den Begriff thread wird allgemein als Beschreibung für ein Betriebssystem-Konzept, das die Potenzial ausführen, die unabhängig von anderen threads. Ob es tut, hängt davon ab, ob es geklebt wird, warten einige event - (Festplatte oder Bildschirm I/O, message queue), oder wenn es genug physische CPUs (HyperThread oder nicht), damit es laufen in das Gesicht des anderen nicht wartenden threads.
Hyperthreading ist eine CPU-vendor-Begriff, der bedeutet, dass ein single-core, das kann multiplex seine Aufmerksamkeit zwischen zwei Berechnungen. Der einfache Weg zu denken über ein hyperthreaded core ist wie bei zwei echten CPUs, die beide etwas langsamer als das, was der Herstellung, sagt Kern tatsächlich tun können.
InformationsquelleAutor der Antwort Ira Baxter
Im Grunde ist dies bis zu den OS. Ein thread ist eine high-level-Konstrukt hält einen instruction-pointer, und wo das OS Orten ein Gewinde Ausführung auf einem geeigneten logischen Prozessor. Also mit 4 Kernen können Sie im Grunde ausführen 4-Anweisungen in parallell. Wo so ein thread einfach enthält Informationen darüber, welche Anweisungen zum ausführen und den Anweisungen Platzierung im Speicher.
Einer Anwendung verwendet in der Regel ein einzelner Prozess, der während der Ausführung und das Betriebssystem schaltet zwischen den Prozessen zu geben, alle Prozesse, die "gleich" - Prozess Zeit. Wenn eine Anwendung nutzt mehrere threads, die das Verfahren weist mehr als einen slot für die Ausführung, aber die gleiche Speicher zwischen threads.
Normalerweise machen Sie einen Unterschied zwischen gleichzeitigen und parallell Ausführung. Wo parallell Ausführung ist, wenn Sie tatsächlich physisch ausführen, Anweisungen von mehr als einem logischen Prozessor und die gleichzeitige Ausführung ist der häufige Wechsel von einem logischen Prozessor geben, der apperence von parallell Ausführung.
InformationsquelleAutor der Antwort Mikael Brandin