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?

  1. AKern 1 liest den veralteten Wert, der noch in seinem eigenen Cache steht
  2. BDas Lesen von Kern 1 ist stets schneller als das Schreiben von Kern 0
  3. 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.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Welche Kombination der vier Zustände des Cache-Kohärenz-Protokolls MESI ist richtig?
  2. Was bedeutet es, wenn sich eine Cache-Zeile beim MESI-Protokoll im Zustand Modified (M) befindet?
  3. Was geschieht beim MESI-Protokoll, wenn der Kern in eine Zeile im Zustand Exclusive (E) schreibt?
  4. Was geschieht bei einem Kohärenzprotokoll vom Invalidierungstyp, wenn ein Kern in eine Zeile im Zustand Shared (S) schreibt?
  5. Was geschieht allgemein beim MESI-Protokoll, wenn Kern 1 eine Zeile lesen will, die Kern 0 im Zustand Modified (M) hält?

Vergleiche zu diesem Thema