Execution trace‐based model verification to analyze multicore and real‐time systems
Abstract
As a key part of model-driven development, modeling allows users to represent the application workflow or to automatically generate source code. This is convenient for developers, particularly to create or improve real-time applications embedded in complex systems.
Multicore systems are difficult to debug because the concurrently running processes can interfere with each other. In real-time systems, timing constraints add to the complexity, invalidating results when a deadline is missed. Tracing is usually the most accurate and reliable tool to study the runtime behaviour of those applications.
However, the interpretation of voluminous detailed execution traces requires a deep understanding of the operating system and application behaviour, and time to dig through the millions of trace events.In this paper, we present the use of model-based constraints on top of user-space and kernel traces to provide weighted analysis results.
Our algorithms have been applied to multiple traces showing common problems for multi-core real-time systems. The experimental results show that our algorithms can quickly identify many different types of problems with a low runtime, even for traces with millions of events, thus helping to save time when analyzing thousands of trace events for complex systems.