The design of state-of-the-art real-time embedded systems is mainly characterized by reuse and integration of HW/SW components and subsystems. Despite reuse, it cannot be expected that all data required for system verification and validation are fully available up front. On the other hand, in order to define contracts with the component providers, the system designer requires a performance model of the system quite early in the design process.
Where data is not available, estimates are used instead. The designer must take into account that modifications of the design data and of the system architecture may occur later in the design process. In this context, the sensitivity of a given architecture to changes becomes a major concern. Sensitivity is important during design to identify if and how far a system component can accommodate later changes, variants or whether it can be reused in a next generation product. In the product life-cycle, sensitivity helps the designer perform changes as a result of product updates, integration of new components and subsystems or changes of the environment. Hence, sensitivity analysis represents an essential approach to handle uncertainties that result from incomplete specifications, early performance estimates, late feature requests, and so on. Sensitivity analysis allows the system designer to quickly assess the impact of changes of individual hardware and software components on the overall system performance.
In this thesis sensitivity is defined as the inverse of the performance reserve, the slack in performance before a system fails to meet timing requirements. However, due to the large design space and the complex interactions between the system properties it is rather difficult and less comprehensive to determine the total performance reserve of the system. Instead, the performance slack of the system properties subject to modification is first calculated in isolation. This information, referred to as one-dimensional performance slack, helps the system designer to determine the performance bottlenecks in the system as well as to efficiently dimension the single components.
Later on, when performing more complex modifications, like the integration of new applications or components, one must assume that the values of several system properties are changing simultaneously. To determine the joint performance slack of several system properties, multidimensional sensitivity analysis calculates the bound between feasible and unfeasible configurations of the analyzed system properties.
The framework proposed in this work enables both one-dimensional and multi-dimensional sensitivity analysis of real time systems. Both analyses combine heuristic search techniques with a set of formal equations derived from the real-time scheduling theory. The search technique requires monotonic dependency between the analyzed system properties and the system performance metrics. While this is the case for the most system properties, for some other, when accounting for additional performance information like task activation offsets, the performance metrics may have unexpected anomalous behavior. Timing anomaly analysis is therefore applied in order to discover the anomalous dependencies and to calculate the bounds of the different behavioral intervals.
In conclusion, the methods presented in this thesis allow to characterize the system performance and to determine the flexibility in the system properties assuming that modifications of the design data may occur at any design phase or later in the field. The interface to the underlying performance verification approach offers full transparency with respect to system architecture and application structure, and allows us to account for a large range of scheduling and global performance constraints.