Sol Boucher

Lightweight Preemptible Functions Degree Type: Ph.D. in Computer Science
Advisor(s): David G. Andersen
Graduated: May 2022

Abstract:

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.

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

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

CMU-CS-22-101.pdf (3.95 MB) ( 139 pages)
Code libraries & thesis document files (.tar)
Copyright Notice