Continuations and threads: Expressing machine concurrency directly in advanced languages (1997)
Abstract:
It is well known [Wand] that concurrency can be expressed within languages that provide a continuation type. However, a number of misconceptions persist regarding the relationship between threads and continuations. I discuss the proper relationship between these two objects, and present a model for directly expressing concurrency using continuations. The model is designed to support systems programming, and has several novel features: it is synchronous, preemptable, and fully virtualisable, allowing schedulers to be written by unprivileged users that are indistinguishable from top-level schedulers that actually control access to the hardware resources. 1 Introduction An operating system exports to its client programs protected interfaces to the machine resources, such as memory, persistent storage, network connections, and processors. An important part of the OS design is the model of these resources that the OS presents to the client program. For example, one of the benefits...
Citations
| 65 | Continuation-based multiprocessing – Wand - 1980 |
| 28 | A foundation for an efficient multi-threaded scheme system – Jagannathan, Philbin - 1992 |
| 4 | A tractable Scheme implementation. To appear – Kelsey, Rees |
| 4 | A Scheme shell. To appear in the Journal of Lisp and Symbolic Computation. (Also available as technical report – Shivers - 1994 |
| 2 | The Design of an Operating System for Modern Programming Languages. Doctoral Dissertation – Philbin - 1993 |

