ATLAS is a joint project with SRA (Co-PI: Daniel Lohmann)
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.
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.
@inproceedings{toellner:23:atc, location = {Boston, MA}, author = {Töllner, Dominik and Dietrich, Christian and Ostapyshyn, Illia and Rommel, Florian and Lohmann, Daniel}, booktitle = {2023 USENIX Annual Technical Conference (USENIX '23)}, entrysubtype = {Conference}, isbn = {978-1-939133-35-9}, month = {July}, pages = {257–273}, publisher = {USENIX Association}, title = {{MELF}: Multivariant Executables for a Heterogeneous World}, url = {https://www.usenix.org/conference/atc23/presentation/tollner}, year = {2023}, }
@inproceedings{rommel:23:lctes, location = {New York, NY, USA}, author = {Rommel, Florian and Dietrich, Christian and Ziegler, Andreas and Ostapyshyn, Illia and Lohmann, Daniel}, booktitle = {Proceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems}, doi = {10.1145/3589610.3596281}, entrysubtype = {Conference}, isbn = {979-8-4007-0174-0/23/06}, month = {June}, publisher = {ACM Press}, title = {Thread-Level Attack-Surface Reduction}, venue = {Orlando, Florida, USA}, year = {2023}, }
@inproceedings{gollenstede:23:lctes, location = {New York, NY, USA}, author = {Gollenstede, Niklas and Kulau, Ulf and Dietrich, Christian}, booktitle = {Proceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems}, doi = {10.1145/3589610.3596273}, entrysubtype = {Conference}, isbn = {979-8-4007-0174-0/23/06}, month = {June}, publisher = {ACM Press}, title = {{reUpNix}: Reconfigurable and Updateable Embedded Systems}, year = {2023}, }
@inproceedings{rommel:20:osdi, author = {Florian Rommel and Christian Dietrich and Birte Friesel and Marcel K{ö}ppen and Christoph Borchert and Michael M{ü}ller and Olaf Spinczyk and Daniel Lohmann}, booktitle = {14th Symposium on Operating System Design and Implementation (OSDI '20)}, entrysubtype = {Conference}, isbn = {978-1-939133-19-9}, month = {November}, pages = {651-666}, title = {From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes}, year = {2020}, }
Permalink: /p/ATLAS
Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
Postfach: 38092 Braunschweig
Telefon: +49 (0) 531 391-0