AUTOSAR on Xen: Virtualized Real-Time Operating Systems with ARA

Xen mascot

Context🔗

Within the AHA project, we focus on optimizing embedded systems by specialization of the OS itself. Using the Automatic Real-time Analyzer (ARA), we perform static analysis to find interactions between different tasks1. With the latest addition, the MultiSSE, ARA can analyze interactions on systems like multicore AUTOSAR to allow for static optimization.

However, modern complex embedded systems may not only distribute tasks over multicore systems, but instead statically partition the hardware into multiple hypervised domains2 for safety reasons. Each domain can run its own isolated Real-Time OS or General-Purpose OS instance, making powerful central computing hardware with time-critical software from various suppliers feasible.

Problem🔗

Our current implementation of an multicore AUTOSAR-compatible RTOS on ARM is running in 32-bit mode on the Raspberry Pi 4B. In order to deploy other 64-bit Xen guests on the same system, the architecture-specific implementation must be ported to ARMv8. Additionally, paravirtualization drivers for the console and hypercalls are missing in order to run the RTOS as Xen guest.

Goal🔗

In this thesis, the current 32-bit architecture-specific codebase must be ported to 64-bit. This includes:

To test the implementation, the ARA project contains many test applications that check the correct implementation of the system libraries. Additionally, the student should add following features:

In order to evaluate the real-time properties of the ported system, timing measurements shall be executed. The student can compare the execution performance of e.g. cross-core system calls, interrupt handling or scheduling to the current implementation. Finally, also the overhead of hypervisor execution can be quantified, optionally taking interference from the dom0 (i.e. Linux) into account.

Topics: ARM assembly, C++, LLVM, Real-Time Operating System, Hypervisor

References🔗

Xen and the Art of Virtualization
Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew WarfieldProceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP '03)ACM Press2003.
10.1145/945445.945462 [BibTex]
OSPERT Workshop B
Look Mum, no VM Exits! (Almost)
Ralf Ramsauer, Jan Kiszka, Daniel Lohmann, Wolfgang MauererProceedings of the 13th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '17)2017.
PDF Slides [BibTex]
Bao: A Lightweight Static Partitioning Hypervisor for Modern Multi-Core Embedded Systems
José Martins, Adriano Tavares, Marco Solieri, Marko Bertogna, Sandro PintoWorkshop on Next Generation Real-Time Embedded Systems (NG-RES 2020)Schloss Dagstuhl – Leibniz-Zentrum für Informatik2020.
10.4230/OASIcs.NG-RES.2020.3 [BibTex]
RTSJ Journal
Applied static analysis and specialization of cross-core syscalls for multi-core AUTOSAR OS
Gerion Entrup, Andreas Kässens, Björn Fiedler, Daniel LohmannReal-Time SystemsSpringer2024.
PDF 10.1007/s11241-024-09429-1 [BibTex]
RTAS Conference A Best Paper Award
dOSEK: The Design and Implementation of a Dependability-Oriented Static Embedded Kernel
Martin Hoffmann, Florian Lukas, Christian Dietrich, Daniel LohmannProceedings of the 21st IEEE International Symposium on Real-Time and Embedded Technology and Applications (RTAS '15)IEEE Computer Society Press2015Best Paper Award.
PDF 10.1109/RTAS.2015.7108449 [BibTex]
RTSJ Journal
Applied static analysis and specialization of cross-core syscalls for multi-core AUTOSAR OS
Gerion Entrup, Andreas Kässens, Björn Fiedler, Daniel LohmannReal-Time SystemsSpringer2024.
PDF 10.1007/s11241-024-09429-1 [BibTex]