1991
DOI: 10.1145/121133.344329
|View full text |Cite
|
Sign up to set email alerts
|

First-class user-level threads

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 d… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
19
0

Year Published

1994
1994
2016
2016

Publication Types

Select...
3
3
1

Relationship

2
5

Authors

Journals

citations
Cited by 37 publications
(19 citation statements)
references
References 20 publications
0
19
0
Order By: Relevance
“…Similar to scheduler activations, Psyche [18] allows user-level threads to install event handlers for scheduler interrupts and implement the scheduling logic in user-space. Unlike these works, our system utilises scheduler activations in the language runtime rather than OS kernel.…”
Section: Related Workmentioning
confidence: 99%
“…Similar to scheduler activations, Psyche [18] allows user-level threads to install event handlers for scheduler interrupts and implement the scheduling logic in user-space. Unlike these works, our system utilises scheduler activations in the language runtime rather than OS kernel.…”
Section: Related Workmentioning
confidence: 99%
“…Finally, several researchers have suggested operating system mechanisms that provide user applications with a limited degree of control over scheduling, allowing them to avoid [4,5,14,19,25] or recover from [1,2,31,33] inopportune preemption. Commercial support for such mechanisms, however, is neither universal nor consistent.…”
Section: Related Workmentioning
confidence: 99%
“…Level II and III APIs are generally confined to research systems [1,4,19]. The Mach scheduler [2] provides a variant of the Level III API that includes a directed yield of the processor to a specified thread.…”
Section: Scheduling and Preemptionmentioning
confidence: 99%
“…In the implementation of the shared memory area, each kernel thread (referred to as a virtual processor) has an associated context structure [7] which contains information such as current user thread context, next runnable thread, global deadline and next asynchronous event time value. Each context is mapped into kernel space and used to exchange/share information with the kernel, thus avoiding unnecessary system calls.…”
Section: Schedulingmentioning
confidence: 99%
“…Scheduler activations would solve this problem by injecting a new execution context whenever the actor's kernel thread blocks (but at the expense of an undesirable increase in kernel level concurrency as discussed above). Our favoured solution is to employ non blocking system calls [7]. These calls return immediately and thus allow the calling kernel thread to resume acting as a virtual processor for user level threads (the result of the call will eventually be notified by a software interrupt as discussed above).…”
Section: Schedulingmentioning
confidence: 99%