• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

First-Class User-Level Threads (1991)

Cached

  • Download as a PDF

Download Links

  • [www.cs.rochester.edu]
  • [www.cs.ucsd.edu]
  • [www-cse.ucsd.edu]
  • [www.bennetyee.org]
  • [www.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www-static.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www.cc.gatech.edu]
  • [www.informatik.hu-berlin.de]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Brian D. Marsh , Michael L. Scott , Thomas J. Leblanc , Evangelos P. Markatos
Venue:In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles
Citations:114 - 12 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@INPROCEEDINGS{Marsh91first-classuser-level,
    author = {Brian D. Marsh and Michael L. Scott and Thomas J. Leblanc and Evangelos P. Markatos},
    title = {First-Class User-Level Threads},
    booktitle = {In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles},
    year = {1991},
    pages = {110--121}
}

Years of Citing Articles

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

It is often desirable, for reasons of clarity, portability, and efficiency, to write parallel programs in which the number of processes is independent of the number of available processors. Several modern operating systems support more than one process in an address space, but the overhead of creating and synchronizing kernel processes can be high. Many runtime environments implement lightweight processes (threads) in user space, but this approach usually results in second-class status for threads, making it difficult or impossible to perform scheduling operations at appropriate times (e.g. when the current thread blocks in the kernel). In addition, a lack of common assumptions may also make it difficult for parallel programs or library routines that use dissimilar thread packages to communicate with each other, or to synchronize access to shared data. We describe a set of kernel mechanisms and conventions designed to accord first-class status to user-level threads, allowing them to be used in any reasonable way that traditional kernel-provided processes can be used, while leaving the details of their implementation to userlevel code. The key features of our approach are (1) shared memory for asynchronous communication between the kernel and the user, (2) software interrupts for events that might require action on the part of a user-level scheduler, and (3) a scheduler interface convention that facilitates interactions in user space between dissimilar kinds of threads. We have incorporated these mechanisms in the Psyche parallel operating system, and have used them to implement several different kinds of user-level threads. We argue for our approach in terms of both flexibility and performance.

Citations

420 Scheduler activations: Effective kernel support for the user-level management of threads - Anderson, Bershad, et al. - 1992
409 Multilisp: A language for concurrent symbolic computation - Halstead - 1985
265 A New Kernel Foundation for UNIX Development - Accetta, Baron, et al. - 1986
191 Process control and scheduling issues for multiprogrammed shared-memory multiprocessors - Tucker, Gupta - 1989
148 Firefly: A multiprocessor workstation - Thacker, Stewart, et al. - 1988
147 The performance of multiprogrammed multiprocessor scheduling policies - Leutenegger, Vernon - 1990
138 Experiences with Processes and Monitors in Mesa - Lampson, Redell - 1980
137 A dynamic processor allocation policy for multiprogrammed shared-memory multiprocessors - McCann, Vaswani, et al. - 1993
58 The Portable Common Runtime Approach to Interoperability - Weiser, Demers, et al. - 1989
54 The effect of scheduling discipline on spin overhead in shared memory parallel systems - Zahorjan, Lazowska, et al. - 1991
49 Multilingual parallel programming of heterogeneous machines - Bisiani, Forin - 1988
45 Distributed Processes: A Concurrent Programming Concept - Hansen - 1978
40 Multiprogramming on Multiprocessors - Crovella, Das, et al. - 1991
37 Multi-model parallel programming in Psyche - Scott, LeBlanc, et al. - 1987
36 Process Management for Highly Parallel UNIX Systems - Edler, Lipkis, et al. - 1988
31 A New Kernel Foundation for UNIX - Accetta, Baron, et al. - 1986
30 An open environment for building parallel programming systems - Bershad, Lazowska, et al. - 1988
30 Threads: A System for the Support of Concurrent Programming - DOEPPNER - 1987
28 The Uniform System: An approach to runtime support for large scale shared memory parallel processors - Thomas, Crowther - 1988
25 Design Rationale for Psyche, a General-Purpose Multiprocessor Operating System - Scott, LeBlanc, et al. - 1988
23 Scheduling Support for Concurrency and Parallelism - Black - 1990
13 The Effects of Multiprogramming on Barrier Synchronization - Markatos, Crovella, et al. - 1991
10 The Lynx Distributed Programming Language: Motivation, Design, and Experience - Scott - 1991
9 Evolution of an Operating System for Large-Scale Shared-Memory Multiprocessors - Scott, LeBlanc, et al. - 1989
6 Multi-model parallel programming - Scott, LeBlanc, et al. - 1990
5 The rochester checkers player: Multimodel parallel programming for animate vision - Marsh, Brown, et al. - 1992
4 FPort Process - Inc
3 Multi-Model Parallel Programming - Marsh - 1991
3 The Lynx Distributed Programming Language - Scott - 1991
1 Process Management for Highly Parallel - Edler, Lipkis, et al. - 1988
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University