Back-to-Basics Weekend Reading - Using continuations to implement thread management and communication in operating systems
I have returned from a great series of AWS Summits in NYC and in Europe so it is time to get back to some weekend reading.
During the nineties much operating systems research focussed on microkernels, which resulted in a large collection of prototype systems: Mach 3.0, L3/L4, Plan 9, Xenokernel, Minix and others. Not many of those made into production, the version of Mach that rolled into Mac OS X through the XNU integration was an earlier, monolithic version. I believe commercially QNX has been the most successful microkernel.
There was a wealth of interesting, fundamental research triggered by the concepts of microkernels: new communication paradigms, memory management structures, schedulers, etc. It resulted in many publications that go back to the roots of OS research. For this weekends reading I picked a more esoteric paper. As part of the Mach 3.0 research Rich Draves implemented continuations inside the operating system as a fundament structuring component for communication, thread management and exception handling. There were performance improvements but more importantly, and my reason for reading the paper again, it had impact on how the OS was structured, leading to a reduction in complexity.
Using continuations to implement thread management and communication in operating systems, Richard Draves , Brian N. Bershad , Richard F. Rashid , All W. Dean, Proceedings of the thirteenth ACM symposium on Operating systems principles Pages 122-136