A Lock-Free Multiprocessor OS Kernel

Typical shared-memory multiprocessor OS kernels use interlocking, implemented as spin-locks or waiting semaphores. We have implemented a complete multiprocessor OS kernel, including threads, virtual memory, and I/O (including a window system and a file system), using only lockfree synchronization methods based on Compare-and-Swap. Lock-free synchronization avoids many serious problems caused by locks: considerable overhead, concurrency bottlenecks, deadlocks, and priority inversion in real-time scheduling. Measurements show the low overhead of our implementation, competitive with user-level thread management systems.