Preemption is GC for memory reordering (2019)
4 days ago
- #interrupts
- #lock-free programming
- #memory ordering
- 抢占可被用作一种‘沉没成本’,在无锁编程中通过中断作为隐式屏障来为内存访问提供排序保证。
- 有界TSO(总存储顺序)无需屏障即可确保活跃性,但缺乏实时保证;中断追踪提供了一种保守的基于时间的排序保证。
- 事件计数支持无锁算法中的高效阻塞,单生产者优化可通过非原子递增和基于中断的安全检查实现。
- 不对称标志翻转(例如在危险指针和纪元回收中)利用中断来避免如membarrier等昂贵屏障,通过守护进程(barrierd)降低开销。
- 中断驱动屏障(通过barrierd)在负载下比基于IPI的方法提供更低延迟和更好可扩展性,但其依赖于定期中断触发。