Multicore und Synchronisation

Welche Aussage zu atomaren Befehlen (unteilbaren Befehlen) ist richtig?

  1. ABefehle, die Lesen und Schreiben des Speichers als eine einzige Operation ausführen, die zwischendurch nicht von anderen Kernen unterbrochen wird
  2. BBefehle für physikalische Berechnungen zum Zählen von Atomen
  3. CDer schnellste Befehl, der stets in einem Takt abgeschlossen ist
Antwort und Erläuterung anzeigen

Antwort: A. Befehle, die Lesen und Schreiben des Speichers als eine einzige Operation ausführen, die zwischendurch nicht von anderen Kernen unterbrochen wird

Ein atomarer Befehl führt die Folge aus Lesen, Rechnen und Schreiben so aus, dass keine Lese- oder Schreibvorgänge anderer Kerne dazwischenkommen. Für andere Kerne ist nur der Zustand vor oder nach der Operation sichtbar. Beispiele sind CAS (Compare-and-Swap), Fetch-and-Add sowie die LR/SC- und AMO-Befehle von RISC-V; sie bilden die Grundlage für Sperren und sperrfreie Datenstrukturen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Wie arbeitet der atomare Befehl CAS (Compare-and-Swap)?
  2. Der obige Code verdoppelt die gemeinsame Variable counter mit CAS(&p, erwarteter Wert, neuer Wert). Wann schlägt CAS fehl und die Schleife wird wiederholt?
  3. Wann schlägt bei einem Befehlspaar wie LR/SC (Load-Reserved/Store-Conditional) von RISC-V das SC (Store-Conditional) fehl?
  4. Welche Aussage zum ABA-Problem, das bei sperrfreien Datenstrukturen mit CAS auftritt, ist richtig?
  5. Wie arbeitet ein Fetch-and-Add-Befehl (fetch-and-add) wie der Befehl amoadd.w von RISC-V oder lock xadd von x86?

Vergleiche zu diesem Thema