Bringing Light into the Dark: Interactive Graph Visualization of Static Analyses for Real-Time Operating Systems

ARA is a whole-system compiler to optimize the system's nonfunctional properties with global knowledge about the interaction between application and operating system. It consists of two parts: First, it statically analyzes a (real-time) system's source code to retrieve global knowledge based on system calls. Equipped with this knowledge, it then synthesizes an optimized system image with improved nonfunctional properties like reduced memory usage.

Most of ARA's analyses are based on different graph traversals (the underlying graphs are implemented with graph-tool). To make them understandable, ARA currently prints a log line for every traversal step. By doing so, it effectively flattens the search tree of the traversal into a list, which overcomplicates understanding. A much better representation would be a graphical visualization that highlights the currently searched nodes within the graph.

Goal of this thesis is to develop such a visualization for a ARA's graphs. graph-tool already supports drawing in various flavors. This support should be used to extent the existing analyses for an expressive traversal visualization.

Topics covered by this thesis:
whole system compiler, static analysis, C++, Python, GUI

Further Reading

OSPERT Workshop B
ARA: Automatic Instance-Level Analysis in Real-Time Systems
Gerion Entrup, Benedikt Steinmeier, Christian DietrichProceedings of the 15th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '19)2019.
PDF [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]