선점은 메모리 재정렬을 위한 GC다

Preemption is GC for memory reordering (2019)

선점은 메모리 재정렬을 위한 GC다

커널보다 유저스페이스에서 락프리 프로그래밍을 더 어렵게 만드는 선점(preemption)을 저자는 '이미 지불한 비용'으로 간주하고, 이를 활용해 명시적 배리어 없이 메모리 접근 순서를 보장하는 기법을 제안한다. x86에서 인터럽트 처리는 완전히 직렬화되므로, 인터럽트를 이용해 저장 명령이 완료되었음을 확인할 수 있다. 이는 Bounded TSO와 상호보완적이며, 이벤트 카운트와 비대칭 플래그 뒤집기 같은 락프리 동기화 프리미티브 구현에 적용된다. 저자는 Linux/x86-64에서의 구현과 코드를 공개했다.

선점은 가비지 컬렉션처럼 처리되어야 한다고 생각합니다. 우리는 이미 그 비용을 지불하고 있으니, 그것을 활용하는 것이 좋습니다.

이 날의 다른 글

2026-07-11