AUTOSAR on Xen: Virtualized Real-Time Operating Systems with ARA
- Typ der Arbeit: Bachelorarbeit
- Status der Arbeit: reserviert
- Projekte: AHA
- Betreuer: Andreas Kässens, Daniel Lohmann
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:
- Build environment setup, toolchain, QEMU
- startup and interrupt handling assembly code
- Generic Interrupt Controller (GIC) and system timer
- Deployment on Raspberry Pi 4B
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:
- Xen hypercalls 3
- Xen paravirtualized serial console
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
-
Proceedings 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) -
Proceedings 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
-
Workshop 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 -
Real-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 -
Proceedings 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 -
Real-Time SystemsSpringer2024.
PDF 10.1007/s11241-024-09429-1 [BibTex]