Scheduler Activations: 

Effective Kernel Support for User-Level Management of Parallelism

Thomas Anderson, Brian Bershad, Edward Lazowska and Henry Levy.  Scheduler Activations: Effective Kernel Support for User-Level Management of Parallelism.  ACM Transactions on Computer Systems, vol. 10, no. 1, February 1992, pages 53 - 79. Also appeared in Proc. Thirteenth ACM Symposium on Operating Systems Principles (SOSP), October 1991.


Threads are the vehicle for concurrency in many approaches to parallel programming. Threads can be supported either by the operating system kernel or by user-level library code in the application address space, but neither approach has been fully satisfactory. This paper addresses this dilemma. First, we argue that the performance of kernel threads is inherently worse than that of user-level threads, rather than this being an artifact of existing implementations; managing parallelism at the user level is essential to high-performance parallel computing. Next, we argue that the problems encountered in integrating user-level threads with other system services is a consequence of the lack of kernel support for user-level threads provided by contemporary multiprocessor operating systems; kernel threads are the wrong abstraction on which to support user-level management of parallelism. Finally, we describe the design, implementation, and performance of a new kernel interface and user-level thread package that together provide the same functionality as kernel threads without compromising the performance and flexibility advantages of user-level management of parallelism.