Effective Kernel Support for User-Level Management of Parallelism
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.
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
This paper addresses this dilemma. First, we argue that the performance of
kernel threads is
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
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.