ARA: Static Initialization of Dynamically-Created System Objects

RTAS Conference A
ARA: Static Initialization of Dynamically-Created System Objects
Björn Fiedler, Gerion Entrup, Christian Dietrich, Daniel LohmannProceedings of the 27th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'21)2021.
PDF Details Video Teaser Video 10.1109/RTAS52030.2021.00039 [BibTex]
Projects: AHA

Abstract

After power-on, crash or reboot, the system-setup point is the first deadline that a safety-critical system has to reach. Up to this point, the application not only initializes its own state but it also creates all necessary system objects (e.g., threads, mutexes, alarms, ...) in the real-time operating system. And, while the strict requirements for real-time analyses often result in a rather static set of created system objects, the commonly-provided RTOS interfaces force developers to execute these creations at run time, resulting in an unnecessarily prolonged boot process.

With ARA, we present a static whole-system transformation that discovers pseudo-dynamic system-object creations (SOCs) which yield the same object on every boot. By modifying the application and by RTOS specialization, we transform these SOCs to semantically equivalent static SOCs, which moves their instantiation from the run time to the compile time. Thereby, we maintain the well-known RTOS interfaces for dynamic SOCs but let developers enjoy the benefits that static initialization provides. In our case studies with FreeRTOS applications, we could reduce the boot time by up to 43 percent at a moderate increase of flash usage.

Source Code

The source code of the ARA framework is available on Github.

Artifacts

We provide a virtual machine image with the evaluation artifacts. You will need VirtualBox to run the virtual machine.

Download (9.5 GB)

The raw measurement data derived for the paper is available here (180 KB).