Kann ein einzelner Prozess in zwei oder mehr Prozessoren in einem Multiprozessorsystem ausgeführt werden?

5994
Vishnu Vivek

Ich habe gehört, dass ein Prozessor jeweils nur mit einem Prozess arbeiten kann. Ist das wahr? Wenn ja, wie kann dann ein einzelner Prozess auf mehreren Prozessoren gleichzeitig ausgeführt werden? Ist das überhaupt möglich?

Danke im Voraus!

2

2 Antworten auf die Frage

4
Ignacio Vazquez-Abrams

Bei den meisten Betriebssystemen können Threads gleichzeitig auf separaten Prozessoren / Kernen ausgeführt werden. Da Prozesse mehr als einen Thread haben können, können sie theoretisch auf mehr als einem Kern laufen. Die Synchronisierung kann dazu führen, dass ein oder mehrere Threads warten, bis andere einen bestimmten Punkt erreicht haben, jedoch nicht, dass sie gleichzeitig ausgeführt werden.

Wie funktioniert die gemeinsame Nutzung des Adressraums über mehrere Kerne hinweg? Thirupathi Thangavel vor 7 Jahren 0
Alle Cores haben Zugriff auf den gleichen Adressbus, wenn Sie dies wünschen. Ignacio Vazquez-Abrams vor 7 Jahren 1
Ok, wie sieht es mit dem Cache aus? Werden sie nicht von Threads desselben Prozesses gemeinsam genutzt? Thirupathi Thangavel vor 7 Jahren 0
In einem Multithread-Prozess teilen sich die Threads den Speicher. Wenn verschiedene Threads von verschiedenen Kernen ausgeführt werden und jeder Kern über eigene Cache- und Registerkarten verfügt, wie wird dann dieser Speicher gemeinsam genutzt? Thirupathi Thangavel vor 7 Jahren 0
1
David Schwartz

Ein virtueller Kern kann jeweils nur an einem Ausführungsthread arbeiten. Im Wesentlichen ist dies die Definition eines virtuellen Kerns. Ein Prozess kann jedoch in einer beliebigen Anzahl von physischen oder virtuellen Kernen gleichzeitig ausgeführt werden, wenn er mehrere Ausführungsthreads enthält.