Multicore und Synchronisation
Welche Aufgabe haben Memory-Barrier-(Fence-)Befehle?
- ASie garantieren, dass Speicheroperationen vor der Barriere für andere Kerne vor den Operationen nach der Barriere sichtbar werden
- BSie unterteilen den Speicher physisch und verbieten den Zugriff
- CSie halten die Programmausführung an, bis alle Threads versammelt sind
Antwort und Erläuterung anzeigen
Antwort: A. Sie garantieren, dass Speicheroperationen vor der Barriere für andere Kerne vor den Operationen nach der Barriere sichtbar werden
Da die CPU die Reihenfolge von Speicheroperationen ändern kann, braucht es eine Anweisung, die dies verhindert, wenn Daten mit anderen Kernen in einer festgelegten Reihenfolge ausgetauscht werden sollen. Eine Memory Barrier lässt alle Lese- und Schreibzugriffe davor abschließen (und für andere Kerne sichtbar werden), bevor die Zugriffe danach erfolgen. Auch im Erwerb und in der Freigabe von Sperren ist die Wirkung einer Barriere enthalten, sodass durch Sperren geschützte Variablen korrekt weitergegeben werden.