An Implementation of User-level Restartable Atomic Sequences on the NetBSD Operating System
This paper outlines an implementation of restartable atomic sequences on the NetBSD operating system as a mechanism for implementing atomic operations in a mutual-exclusion facility on uniprocessor systems. Kernel-level and user-level interfaces are discussed along with implementation details. Issues associated with protecting restartable atomic sequences from violation are considered. The performance of restartable atomic sequences is demonstrated to out-perform syscall-based and emulation-based atomic operations. Performance comparisons with memory-interlocked instructions demonstrate that restartable atomic sequences continue to provide performance advantages on modern hardware. Restartable atomic sequences are now the preferred mechanism for atomic operations in the NetBSD threads library on all uniprocessor systems.
author = {Gregory McGarry},
title = {An Implementation of User-level Restartable Atomic Sequences on the {NetBSD} Operating System},
booktitle = {2003 USENIX Annual Technical Conference (USENIX ATC 03)},
year = {2003},
address = {San Antonio, TX},
url = {https://www.usenix.org/conference/2003-usenix-annual-technical-conference/implementation-user-level-restartable-atomic},
publisher = {USENIX Association},
month = jun
}