プリエンプションをGCのように使う:メモリ再順序付けの新たな視点

Preemption is GC for memory reordering (2019)

プリエンプションをGCのように使う:メモリ再順序付けの新たな視点

著者は、ユーザー空間のロックフリープログラミングにおいて、プリエンプションをGCと同様に「支払い済みのコスト」として利用することを提案する。x86では割り込み処理が完全にシリアライズされるため、明示的なバリアなしにメモリ順序を保証できる。この手法はBounded TSOと相補的であり、イベントカウントや非対称フラグ反転などの同期プリミティブに応用できる。Linux/x86-64での実装例を通じて、プリエンプションがロックフリーコードのための有用なバリア源であることを示す。

割り込み処理はx86上で完全にシリアライズされており、他のプラットフォームでも同様である。ユーザー空間の任意の命令は、割り込みの前に完全に実行されるか、ユーザー空間への復帰後に最初から再実行されるかのどちらかである。

この日のほかの記事

2026-07-11