Multicore und Synchronisation
Was gilt für Speicheroperationen mit Acquire- und Release-Semantik?
- AAcquire und Release sind beide die schwerste Barriere, die alle Lese- und Schreibzugriffe vollständig anhält
- BAcquire reserviert Speicher, Release gibt ihn per free frei
- CZugriffe nach einem Acquire werden nicht vor dieses verschoben, und Zugriffe vor einem Release werden nicht hinter dieses verschoben
Antwort und Erläuterung anzeigen
Antwort: C. Zugriffe nach einem Acquire werden nicht vor dieses verschoben, und Zugriffe vor einem Release werden nicht hinter dieses verschoben
Die Operation beim Erwerb einer Sperre hat Acquire-Semantik, die beim Abgeben Release-Semantik. Operationen nach dem Acquire rutschen nicht vor den Erwerb der Sperre, und Operationen vor dem Release rutschen nicht hinter das Abgeben der Sperre, sodass die Zugriffe des durch die Sperre geschützten Bereichs innerhalb dieses Bereichs bleiben. Da sie weniger einschränken als eine vollständige Barriere in beiden Richtungen, kann die Hardware die übrigen Umordnungen nutzen und die Leistung erhalten.