Multicore und Synchronisation
Zwei Kerne besitzen jeweils in ihrem eigenen Cache eine Kopie der Variablen x. Welches Problem kann auftreten, wenn Kern 1 x liest, nachdem Kern 0 x geschrieben hat, und es keinen Cache-Kohärenz-Mechanismus gibt?
- AKern 1 liest den veralteten Wert, der noch in seinem eigenen Cache steht
- BDas Lesen von Kern 1 ist stets schneller als das Schreiben von Kern 0
- CDer Wert von x ist beim Lesen verdoppelt
Antwort und Erläuterung anzeigen
Antwort: A. Kern 1 liest den veralteten Wert, der noch in seinem eigenen Cache steht
In Multicore-CPUs entstehen in den Caches der einzelnen Kerne Kopien von Daten derselben Adresse. Schreibt Kern 0 x nur in seinem eigenen Cache, bleibt im Cache von Kern 1 der alte Wert stehen, und Kern 1 liest diesen. Ein Cache-Kohärenz-Mechanismus sorgt dafür, dass von jedem Kern aus der aktuelle Wert sichtbar ist, etwa indem beim Schreiben die Kopien anderer Kerne ungültig gemacht werden.