Synchronized Thread-Level Address-Space Views for the Dragonfly BSD Kernel

In the ATLAS project, we explore the possibilities of address-space views which are synchronized variants of a process's address space that only differ in explicitly specified areas. Each thread can switch between a process's address-space views, thereby allowing context-based variation.

Address-space views can be used to facilitate run-time alterations of multi-threaded programs without the need of stopping the threads before modification. The approach was already successfully used for applying run-time software updates in various multi-threaded server applications [1]. The current implementation of the technique is based on the Linux kernel.

The goal of this thesis is to design and implement address-space views for the DragonFly BSD operating system. This includes extending the kernel data structures and functions and providing an appropriate system-call interface which allows creation and deletion of address-space views, migration of threads between them, and marking specific memory regions as not synchronized between the views.

The prototype is to be evaluated systematically using synthetic test programs. In addition, existing benchmarks for the Linux implementation can be ported to prove the correct functioning under real-world conditions.

OSDI Conference A*
From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes
Florian Rommel, Christian Dietrich, Daniel Friesel, Marcel Köppen, Christoph Borchert, Michael Müller, Olaf Spinczyk, Daniel Lohmann14th Symposium on Operating System Design and Implementation (OSDI '20)2020.
PDF Details Video [BibTex]