Download:
by Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, Henry M. Levy
http://calab.kaist.ac.kr/courses/530/97/Readings/scheduler-act.pdf
Add To MetaCart
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.
Citations
|
865
|
Actors: A Model of Concurrent Computation in Distributed Systems
– Agha
- 1986
|
|
262
|
The V distributed system
– Cheriton
- 1988
|
|
261
|
A methodology for implementing highly concurrent data objects
– Herlihy
- 1993
|
|
213
|
The Amber system: Parallel programming on a network of multiprocessors
– Chase, Amador, et al.
- 1989
|
|
205
|
Process Control and Scheduling Issues for Multiprogrammed SharedMemory Multiprocessors
– Tucker, Gupta
- 1989
|
|
143
|
Fire y: a Multiprocessor Workstation
– Thacker, Stewart, et al.
- 1988
|
|
134
|
A hierarchical O(N log N) force-calculation algorithm
– Barnes, Hut
- 1986
|
|
127
|
The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors
– Anderson, Lazowska, et al.
|
|
115
|
E.P.Markatos. First-Class User-Level Threads
– Marsh, Scott, et al.
- 1991
|
|
108
|
Hydra/C.mmp: An Experimental Computer System
– Wulf, Levin, et al.
- 1981
|
|
97
|
Processor Scheduling in Shared Memory Multiprocessors
– Zahorjan, McCann
- 1990
|
|
93
|
Scheduling Support for Concurrency and Parallelism in the Mach Operating System
– Black
- 1990
|
|
78
|
Workcrews: an abstraction for controlling parallelism
– Vandevoorde, Roberts
- 1988
|
|
57
|
The Portable Common Runtime approach to interoperability
– Weiser, Demers, et al.
- 1989
|
|
55
|
The effect of scheduling discipline on spin overhead in shared memory parallel systems
– Zahorjan, Lazowska, et al.
- 1991
|
|
40
|
Synchronization primitives for a multiprocessor: A formal specification
– Birrell, Guttag, et al.
- 1987
|
|
38
|
Process management for highly parallel UNIX systems
– Edler, Lipkis, et al.
- 1988
|
|
36
|
Multi-model parallel programming in Psyche
– Scott, LeBlanc, et al.
- 1990
|
|
31
|
Concurrency features for the Trellis/Owl language
– Moss, Kohler
- 1987
|
|
24
|
A comparative analysis of multiprocessor scheduling algorithms
– Lo, Gligor
- 1987
|
|
21
|
Experience with Topaz TeleDebugging
– Redell
- 1988
|
|
19
|
Mach Threads and the Unix Kernel: The Battle for Control
– Tevanian, Rashid, et al.
- 1987
|
|
13
|
Performance of firefly rpc
– Schroder, Burrows
- 1990
|
|
11
|
Problem-Heap: A Paradigm for Multiprocessor Algorithms
– Moller-Nielsen, Staunstrup
- 1987
|
|
3
|
Empirical Studies of Competitive Spinning for a Shared�Memory Multiprocessor
– Manasse�, Owicki
- 1991
|
|
2
|
Multilisp: A language for concurrent symbolic computation
– HAL, R
- 1985
|