Preemption als GC für Memory Reordering: Wie Interrupts Lock-free Code beschleunigen
Preemption is GC for memory reordering (2019)

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.