Computer Science Department
School of Computer Science, Carnegie Mellon University


Lightweight Preemptible Functions

Sol Boucher

Ph.D. Thesis

March 2022

Artifact File .tar

Keywords: Programming primitives, operating systems, concurrency, preemption, isolation, reentrancy, dynamic linking, timer signals, asynchronous cancellation, preemptive user threads

We introduce novel programming abstractions for isolation of both time and memory. They operate at finer granularity than traditional primitives, supporting preemption at sub-millisecond timescales and tasks defined at the level of a function call. This resolution enables new functionality for application programmers, including users of unmanaged systems programming languages, all without requiring changes to the existing systems stack. Despite being concurrency abstractions, they employ synchronous invocation to allow application programmers to make their own scheduling decisions. However, we found that they compose naturally with existing concurrency abstractions centered around asynchronous background work, such as threads and futures. We demonstrated how such composition can enable asynchronous cancellation of threads and the implementation of preemptive thread libraries in userland, both regarded for decades as challenging problems.

139 pages

Thesis Committee:
David G. Andersen (Chair)
Adam Belay (Massachusetts Institute of Technology)
Michael Kaminsky (BrdgAI)
Brandon Lucia

Srinivasan Seshan, Head, Computer Science Department
Martial Hebert, Dean, School of Computer Science

Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by