Automatische Generierung statistisch spezialisierter FreeRTOS-Kerne mit LLVM

FreeRTOS is an open source real-time operating system used for embedded systems. Configuration of the OS and it's features is currently done on level of abstractions. This means developers are able to select, for example, whether they want locks to be reentrant or not. Instantiation of operating-system objects in FreeRTOS is done dynamically during runtime in a POSIX like style. Previous work has shown that by using knowledge about all possibly existing OS objects it is possible to improve nonfunctional properties of the whole system. The benefits may be, but are not limited to, reduced memory footprint and robustness against transient faults or improved security. Although, there are functions which pretend to instantiate objects statically, the heavy lifting is done at runtime.

The goal of this thesis is to develop a code generator which produces a FreeRTOS compatible OS kernel which is able to run the application for which it was generated. This kernel should fulfill the needs of the given application without unused flexibility. This allows to use fixed size data structures instead of dynamically growing lists which result in improvement of the nonfunctional properties. It is target of the thesis to evaluate the benefits of the resulting variations and to compare their properties to the default FreeRTOS system.

tl;dr: Improve FreeRTOS nonfunctional properties by generating a statically instantiated kernel.

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]