Ja, ein einzelner Prozess kann mehrere Threads auf verschiedenen Kernen ausführen.
Caching ist spezifisch für die Hardware. Viele moderne Intel-Prozessoren verfügen über drei Cachespeicher, wobei der Cache der letzten Ebene über mehrere Kerne verteilt ist.
Es bedeutet nicht, dass die nicht gemeinsam genutzten Caches redundant sind, aber es hat Auswirkungen auf Multicore-Leistung. Insbesondere wenn ein Kern einen Wert in dem Adressraum aktualisiert, der gegenwärtig im privaten Cache eines anderen Kerns lebt, muss ein Cache-Kohärenzprotokoll ausgeführt werden, um sicherzustellen, dass ein anderer Kern einen veralteten Wert nicht mehr lesen kann.
Ein einzelner Prozess kann mehrere Threads enthalten, ja. – Phoenix
Können sie geplant werden, um auf irgendeinem Kern zu laufen? Wenn ein Prozess auf eine CPU geladen wird, verstehe ich, dass der Inhalt der Register gewechselt wird; Wie funktioniert das mit mehreren CPUs? –
Überprüfen Sie http://programmers.stackexchange.com/questions/181157/how-to-program-thread-allocation-on-multicore-processors – Rupsingh