- ATLAS: Adaptable Thread-Level Address Spaces (DFG: LO 1719/7-1 and DI 2840/1-1)
- In the ATLAS project, we investigate dynamic specialization and containment by means of thread-level address-space variations.
Address-Space Views: Traditionally, an OS process contains a single address space with code and data segments that are shared among all of its threads.
With address-space views we allow additional address spaces within a process that are kept in sync with their each other: Changes to one of them 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.
- CADOS: Configurability-Aware Development of Operating Systems (DFG: LO 1719/3-2)
- In the CADOS project, we investigate scalable methods and tools to deal with the implementation of variability across all implementation layers of modern system software.
Multiverse: While static variability can be completely resolved at
compile time, dynamic variation points come at a cost arising from
extra tests and branches in the control flow.
Multiverse is an approach to
handle dynamic variability efficiently by means of binary patching.
It provides an extension to the C programming language that enables
the developer to express dynamic variability in performance-critical
paths. With specially annotated config variables, multiverse can
generate multiple versions of a function and dynamically binary patch
the running system to use the version of the current configuration.
The goal is to narrow the gap between dynamic and static variability
by allowing the developer to easily employ run-time configurability at
zero or low cost.
From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes
14th Symposium on Operating System Design and Implementation (OSDI '20)2020.
Multiverse: Compiler-Assisted Management of Dynamic Variability in Low-Level System Software
Fourteenth EuroSys Conference 2019 (EuroSys '19)ACM Press2019.
Wait-Free Code Patching of Multi-Threaded Processes
Proceedings of the 10th SOSP Workshop on Programming Languages and Operating Systems (PLOS '19)ACM2019.
Open Theses Topics
☹ ️Currently, I have no open topics. Have a look at Theses for all open thesis topics at SRA.
Implement the basic abstraction for self-contained virtual-address-space areas in Linux, by which we want to ease the allocation, the sharing, and the management of huge amounts of memory.
Finished Student Theses
Designing and implementing a lock-free and log-free page allocator for morsels, a new abstraction for the management of non-volatile memory in the linux kernel [PDF]
Using virtual address space clones to avoid blocking on a global barrier in live patching situations and implement this mechanism in the Linux kernel.