Multicore und Synchronisation

Welche Idee steckt hinter Hardware Transactional Memory?

  1. ADer kritische Abschnitt wird spekulativ ausgeführt, bei fehlender Kollision mit anderen Threads gesammelt bestätigt und bei Kollision verworfen und wiederholt
  2. BAlle Speicherlese- und -schreibvorgänge werden wie Bankgeschäfte auf Festplatte protokolliert
  3. CDas Schreiben in den Speicher wird verboten und nur Lesen erlaubt
Antwort und Erläuterung anzeigen

Antwort: A. Der kritische Abschnitt wird spekulativ ausgeführt, bei fehlender Kollision mit anderen Threads gesammelt bestätigt und bei Kollision verworfen und wiederholt

Beim Transactional Memory wird der kritische Abschnitt als Transaktion ausgeführt, und die Schreibvorgänge währenddessen sind vorläufig und für andere nicht sichtbar. Haben andere Threads dieselben Daten nicht berührt, werden am Ende alle Schreibvorgänge auf einmal bestätigt; bei einer Kollision wird alles verworfen und wiederholt oder auf eine gewöhnliche Sperre umgeschaltet. Bei wenigen Kollisionen erreicht man auch mit grober Sperre eine Parallelität nahe an feinkörnigem Sperren.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. 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?
  2. 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?
  3. Welche Kombination der vier Zustände des Cache-Kohärenz-Protokolls MESI ist richtig?
  4. Was bedeutet es, wenn sich eine Cache-Zeile beim MESI-Protokoll im Zustand Modified (M) befindet?
  5. Was geschieht beim MESI-Protokoll, wenn der Kern in eine Zeile im Zustand Exclusive (E) schreibt?

Vergleiche zu diesem Thema