Automatic Real-Time System Analysis

Realtime systems are composed of an operating system and an application (that can be made out of several tasks/threads). Often the whole system is defined before execution. For the application the operating system is only an interface that provides a specific semantic. Two realtime systems can be treated as equivalent, if the semantic of the two systems is equal, independent of the implementation of the operating system.

In the field of realtime systems a wide range of operating systems exist, that differ in the provided API, the used algorithm and data structures and the memory management. Additionally, operating systems often provide different configuration systems, that can be used to change used algorithms or to drop unneeded parts of the operating system. The used algorithms are not always optimal for the application, the data structures are often fairly generic and the system configuration mostly happens in a manual way and not necessarily with the application in mind.

Because of this properties, an automatic tailoring of the operating system to the application can result in a benefit regarding code size, memory consumption, execution time, etc. The usage of algorithms and data structures that fit best to the application and removal of features that are unneeded by the application are made possible with tailoring. An essential part of this process is the analysis of the application respectively the interaction between application and operating system.

The subject of this thesis is to write an analyzer that is able to extract instances of operating system concepts that are used in the application (e.g. what threads are used). Moreover, the program should be able to determine the interactions between instances. For this theses it is enough, to extract the interactions on a per instance basis and not on a global scope. However, the program should be expendable with this aspect.

The basis of the program is a system model, that describes what instances exist and how they interact with each other. The model should be independent (as far as possible) of the concrete implementation of the realtime operating system and should recognize concepts, that are shared between different operating systems (e.g. tasks/threads). Part of this thesis is the development of this model at least for OSEK and FreeRTOS. The analyzer should be capable of analyzing at least applications, that are made for one of this operating systems. The extraction should be made on base of the LLVM-IR. For the analyzer an appropriate test method should be developed and the program evaluated on that. A possibility is the recognition of false usage of operating system instruments (e.g. the false order or incomplete usage of locks).

LCTES Conference A
Cross-Kernel Control-Flow-Graph Analysis for Event-Driven Real-Time Systems
Christian Dietrich, Martin Hoffmann, Daniel LohmannProceedings of the 2015 ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems (LCTES '15)ACM Press2015.
PDF Raw Data 10.1145/2670529.2754963 [BibTex]
Workshop
dOSEK: Maßgeschneiderte Zuverlässigkeit
Martin Hoffmann, Florian Lukas, Christian Dietrich, Daniel LohmannBetriebssysteme und EchtzeitSpringer2015.
10.1007/978-3-662-48611-5_8 [BibTex]
TECS Journal A
Global Optimization of Fixed-Priority Real-Time Systems by RTOS-Aware Control-Flow Analysis
Christian Dietrich, Martin Hoffmann, Daniel LohmannACM Transactions on Embedded Computing Systems16.2ACM Press2017.
PDF Raw Data 10.1145/2950053 [BibTex]
OSPERT Workshop B Best Paper Award
Levels of Specialization in Real-Time Operating Systems
Björn Fiedler, Gerion Entrup, Christian Dietrich, Daniel LohmannProceedings of the 14th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '18)2018Best Paper Award.
PDF [BibTex]