Preemption als GC für Memory Reordering: Wie Interrupts Lock-free Code beschleunigen

Preemption is GC for memory reordering (2019)

Preemption als GC für Memory Reordering: Wie Interrupts Lock-free Code beschleunigen

In diesem technischen Artikel argumentiert der Autor, dass Preemption in Userspace als eine Art Garbage Collection für Memory Reordering betrachtet werden sollte: Da wir bereits dafür bezahlen, können wir es nutzen. Er zeigt, wie Interrupts auf x86 vollständig serialisierend wirken und daher als implizite Barrieren für lock-free Programmierung dienen können. Anhand von Event Counts und asymmetrischen Flag-Flips (wie bei Hazard Pointers) demonstriert er Implementierungen, die auf Linux/x86-64 auf Interrupts basieren. Diese Techniken ermöglichen effiziente Synchronisation ohne explizite Barrieren, ähnlich wie Bounded TSO, aber mit anderen Trade-offs.

Ich glaube inzwischen, dass Preemption als versunkene Kosten betrachtet werden sollte, wie Garbage Collection: Wir zahlen bereits dafür, also können wir es auch nutzen.

Mehr von diesem Tag

2026-07-11