Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism

The work

AuthorsThomas E. Anderson; Brian N. Bershad; Edward D. Lazowska; Henry M. Levy
Editors
Typearticle
Year1992
Citekeyanderson1992scheduler

Where it appeared

Published inACM Transactions on Computer Systems
Volume10
Issue1
Pages53--79

Identifiers

DOI10.1145/146941.146944

Abstract

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.

A copy is held

pdf, 1.9 MB. Not published — it may be under copyright. The facts and links here are.

How it got here

How it got hereimport via bibtex
Added2026-08-10 00:00 UTC
Approved bya person 2026-08-23 14:12 UTC

Cite it as

@article{anderson1992scheduler,
  title        = {Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism},
  author       = {Thomas E. Anderson and Brian N. Bershad and Edward D. Lazowska and Henry M. Levy},
  year         = {1992},
  journal      = {ACM Transactions on Computer Systems},
  volume       = {10},
  number       = {1},
  pages        = {53--79},
  doi          = {10.1145/146941.146944},
}

This record lives at https://refs.drheap.org/anderson1992scheduler/ and will keep doing so.