ATLAS: Adaptable Thread-Level Address Spaces (DFG: DI 2840/1-1)

Traditionally, an OS process contains a single address space with code and data segments that are shared among all of its threads. The fork() system call creates a new address space (and process) that, even though it starts as an exact clone of its ancestor, provides strong isolation between the respective threads by means of copy-on-write.

The core idea of ATLAS is to provide processes with additional address spaces that are, however, kept in sync with their ancestor: Changes to one of them – we call them address-space views – become immediately visible in the others. Views diverge only in explicitly specified areas. As they still belong to the same process, the threads of this process can be migrated individually between views.

Address-space views provide an efficient mean to implement temporary or permanent thread-level variations in the "view of the world", while threads can still interact with each other regarding the shared parts. In the figure, the code segment diverges and provides a thread-specific variation (e.g., an client-specific optimization or restriction of functionality), while the data segment is shared, so that th1 can still transparently interact with th2 and th3. Such variations can be arbitrary small or complex. They can be prepared in the background in a new view and atomically applied to individual threads by migrating them to the new address space.

Applications

In our OSDI '20 paper, we present a first application of these technique to implement WfPatch, a wait-free dynamic code-patching approch for large multi-threaded server applications.

People

Latest News

2021-12-23 New DFG Grant: Adaptable Thread-Level Address spaces
ATLAS: Adaptable Thread-Level Address Spaces (DFG: DI 2840/1-1)
In the ATLAS project, we investigate dynamic specialization and containment by means of thread-level address-space variations.
The German research foundation DFG is supporting our ATLAS project for two years with two positions for doctoral researchers (E13, one at OSG), two positions for student researchers (one at OSG), and some additional lab equippment. ATLAS is cooperation project with the SRA group from Daniel Lohmann.

Publications

LCTES Conference B
Thread-Level Attack-Surface Reduction
Florian Rommel, Christian Dietrich, Andreas Ziegler, Illia Ostapyshyn, Daniel LohmannProceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsACM Press2023Accepted at LCTES'23, to appear.
[BibTex]
SIGMOD Conference A*
Virtual-Memory Assisted Buffer Management
Viktor Leis, Adnan Alhomssi, Tobias Ziegler, Yannick Loeck, Christian DietrichProceedings of the ACM SIGMOD/PODS International Conference on Management of Data (SIGMOD'23)ACM2023Accepted at SIGMOD'23, to appear.
PDF [BibTex]
LCTES Conference B
reUpNix: Reconfigurable and Updateable Embedded Systems
Niklas Gollenstede, Ulf Kulau, Christian DietrichProceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsACM Press2023Accepted at LCTES'23, to appear.
[BibTex]
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 Video [BibTex]

Theses

Open Topics

Program Structure for Heterogeneous Instruction Set Architectures

 
Typ: Bachelor-/Masterarbeit
Status: offen
Supervisors: Niklas Gollenstede, Christian Dietrich
Explore new program structures that run on and fully utilize CPUs with heterogeneous ISAs.

Currently Running

Embedded Lua as a Linker-Script Replacement

Typ: Bachelor-/Masterarbeit
Status: reserviert
Supervisors: Niklas Gollenstede, Christian Dietrich
Embed Lua into the llvm-lld linker as a Turing-complete alternative to .ld-scripts.