Reactive execution-time forecasting of dynamically-adaptable software - Brennan, Shane (Trinity College (Dublin, Ireland). School of Computer Science & Statistics, 2011)
Software operating in domains such as process management systems, wireless sensor networks and spacecraft control systems are expected to continue uninterrupted operation over extended periods, without any manual supervision, maintenance or external intervention. However, unexpected events or changes in the operating environment over time, require the software to occasionally update itself to ensure correct operation over a prolonged interval. These updates to software behaviour may be achieved by a process known as dynamic software adaptation. Adapting software dynamically allows it to respond to unexpected operational challenges, to update unwanted or unnecessary functionality, and to optimize its behaviour to fit the prevailing operating conditions. However, adaptations can also unintentionally alter the execution time of the software. In this way, timing delays, missed deadlines and functional errors may be unwittingly introduced into an otherwise dependable codebase. Estimating the likely execution time of dynamically-adaptable software is critical to avoid functional interference caused by timing uncertainty. Unfortunately, predicting the execution time of dynamically-adaptable software cannot be accomplished using traditional timing analysis methods, without halting the system or restricting the set of adaptable software behaviours. Static timing analysis methods cannot re-evaluate timing estimates at runtime, since they require a lengthy off-line analysis period. Conversely, measurement-based dynamic timing analysis methods cannot provide any timing estimates immediately following an adaptation, until a large number of observations have been recorded and evaluated. Reliably and precisely estimating the execution time provides assurances about the suitability of the dynamically-adaptable software within its current operating environment, as well as indicating the likely improvement in timing behaviour due to recent functional adaptations. The research question addressed by this thesis is whether adaptive statistical methods, applied at runtime, can accurately predict the timing behaviour of dynamically-adaptable software. To address this question, this thesis describes the application of statistical methods at runtime to predict the timing behaviour of dynamically-adaptable software. Using a dynamically generated predictive model, forecasts are made about the likely execution time of the current configuration of the software, as well as allowing estimates to be generated describing the probabilistic timing impact of functional adaptations. The contributions of this thesis are three-fold. Firstly, the timing behaviour of a dynamically adaptable software system can be accurately and precisely predicted at runtime using statistical methods. Next, these predictions can be generated with limited prior warning and without halting the system to perform the analysis, restricting the scope of adaptations or relying on extensive off-line generated measurements. Lastly, timing predictions for dynamically adaptable software can be used as feedback into the adaptation process itself, to select the most appropriate configuration of the software for the prevailing operating conditions. A dynamically-adaptable software system, executing on a resource-constrained embedded device, is used to evaluate this predictive model. The timing estimates produced at run-time show that the accuracy and precision are only slightly below what would be achieved using a well-established static timing analysis method executed offline under ideal circumstances.
Keywords: Computer Science, Ph.D.; Ph.D. Trinity College Dublin