Multicore und Synchronisation

Welcher Unterschied zwischen Cache-Kohärenz und Speicherkonsistenzmodell ist richtig?

  1. ABeides bedeutet dasselbe und wird nur unterschiedlich genannt
  2. BKohärenz ist die Vereinbarung, Inkonsistenzen von Werten an derselben Adresse zu beseitigen, das Konsistenzmodell die Vereinbarung, in welcher Reihenfolge Operationen auf verschiedene Adressen sichtbar werden
  3. CKohärenz wird nur durch Software, das Konsistenzmodell nur durch Hardware realisiert
Antwort und Erläuterung anzeigen

Antwort: B. Kohärenz ist die Vereinbarung, Inkonsistenzen von Werten an derselben Adresse zu beseitigen, das Konsistenzmodell die Vereinbarung, in welcher Reihenfolge Operationen auf verschiedene Adressen sichtbar werden

Kohärenz garantiert für eine einzelne Adresse, dass alle Kerne die Schreibvorgänge in derselben Reihenfolge sehen und letztlich den aktuellen Wert lesen. Das Konsistenzmodell dagegen legt fest, in welcher Reihenfolge die Schreibvorgänge auf x und y für andere Kerne sichtbar sein können, wenn Kern 0 erst x und dann y schreibt. Auch bei gewahrter Kohärenz kann die Reihenfolge verschiedener Adressen vertauscht erscheinen, und dort werden Barrieren nötig.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Welche Idee steckt hinter Hardware Transactional Memory?
  2. Warum wird beim Warten mit einer Bedingungsvariable auf „Warteschlange nicht mehr leer“ die Bedingung nach dem Aufwachen mit einer while-Schleife statt mit if erneut geprüft?
  3. 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?
  4. Welche Kombination der vier Zustände des Cache-Kohärenz-Protokolls MESI ist richtig?
  5. Was bedeutet es, wenn sich eine Cache-Zeile beim MESI-Protokoll im Zustand Modified (M) befindet?

Vergleiche zu diesem Thema