Scheduler activations
- 1 September 1991
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGOPS Operating Systems Review
- Vol. 25 (5), 95-109
- https://doi.org/10.1145/121133.121151
Abstract
Threads are the vehicle for concurrency in many approaches to parallel programming. Threads separate the notion of a sequential execution stream from the other aspects of traditional UNIX-like processes, such as address spaces and I/O descriptors. The objective of this separation is to make the expression and control of parallelism sufficiently cheap that the programmer or compiler can exploit even fine-grained parallelism with acceptable overhead.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; we thus argue that managing parallelism at the user level is essential to high-performance parallel computing. Next, we argue that the lack of system integration exhibited by user-level threads is a consequence of the lack of kernel support for user-level threads provided by contemporary multiprocessor operating systems; we thus argue that kernel threads or processes, as currently conceived, 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.Keywords
This publication has 19 references indexed in Scilit:
- The effect of scheduling discipline on spin overhead in shared memory parallel systemsIEEE Transactions on Parallel and Distributed Systems, 1991
- A methodology for implementing highly concurrent data structuresPublished by Association for Computing Machinery (ACM) ,1990
- Multi-model parallel programming in psychePublished by Association for Computing Machinery (ACM) ,1990
- Performance of the Firefly RPCACM Transactions on Computer Systems, 1990
- The performance implications of thread management alternatives for shared-memory multiprocessorsInternational Conference on Acoustics, Speech, and Signal Processing (ICASSP), 1989
- Firefly: a multiprocessor workstationInternational Conference on Acoustics, Speech, and Signal Processing (ICASSP), 1988
- WorkCrews: An abstraction for controlling parallelismInternational Journal of Parallel Programming, 1988
- The V distributed systemCommunications of the ACM, 1988
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Experience with processes and monitors in MesaCommunications of the ACM, 1980