Simulation and Software Technology
Area of research:
Diploma & Master Thesis
Modern space missions incorporate at least one on-board computer that needs to process a wide range of computational tasks. DLR developed the Tasking Framework as a middleware between the operating system and the applications. One of its main purposes is the efficient scheduling of multiple computational tasks like control algorithms for spacecraft. Tasking Framework is used in a wide variety of missions ranging from satellites to reentry experimental vehicles. Increasing demands on the complexity of the control algorithms results in more complex task networks to be handled by the scheduler.
With larger task networks it becomes also more complex to reconstruct its actual behavior. However, this is required to develop and debug applications. It becomes also more difficult to prove that the application meets certain requirements like timing constraints.
One solution to the problem is the usage of tracing tools to supervise the running application. This allows for a later reconstruction of the behavior from the log files. Modern tracing tools like TRACE COMPASS use the Common Trace Format (CTF). The tools also help to preprocess and visualize the results.
Your mission is to evaluate the potential and the pitfalls of using tracing with the DLR Tasking framework. The main task is to investigate and implement a tracing functionality into the Tasking Framework software stack. Therefore, you will first need to familiarize yourself with the general design of satellite onboard software and with the specific design of the DLR Tasking Framework. Additionally, you need to investigate the state of the art and potential of using tracing in embedded systems. The developed concept for tracing shall be implemented into the software stack of the Tasking Framework. Finally, the implemented tracing tools will be applied on demo applications to trace the runtime performance and to check for possible bottlenecks. The results should contain an evaluation of the tracing tools, with focus on how the extracted information can prove valuable for the development of larger and more complex real-time software systems.