Software Aging Analysis of a Real-Time Controller

Contact: Maaz Mashood Mohiuddin

Site: Software Rejuvenation


Software aging is the exhaustion of system resources, data corruption, numerical error accumulation, etc, which cause noticeable performance degradation of the software, crash/hang failure and other undesirable effects. In the context of real-time mission-critical systems, a minor violation of real-time requirements can lead to a failure. For instance, a delay in a real-time controller for electrical grids can cause an important control setpoint to be delayed, thereby causing a power outage [1].

Our previous studies on software aging of one such controller for Commelec [2] (a real-time control protocol for electrical grids) has shown that over time, a non-negligible degradation in performance of the controller can be observed. In this project, we aim to quantify this degradation and identify its root cause (such as memory exhaustion). On finding the root cause, we aim to build a monitoring framework that can detect software aging based on the trend in utilization of operating system resources. On successfully doing so, we can then perform software rejuvenation [3], i.e., preventive reboot of the controller.

Project goals:

  • Understanding the functioning of the Commelec controller
  • Evaluating the latency performance of the controller
  • Design and implementation of a monitoring framework for detection of aging

Required Skills:

  • C/C++
  • Linux OS
  • Performance Evaluation


  • [1]
  • [2] Bernstein, Andrey, et al. “A composable method for real-time control of active distribution networks with explicit power setpoints. Part I: Framework.”Electric Power Systems Research 125 (2015): 254-264.
  • [3] Vittorio Castelli, Richard E Harper, Philip Heidelberger, Steven W Hunter, Kishor S Trivedi, Kalyanaraman Vaidyanathan, and William P Zeggert. Proactive management of software aging. IBM Journal of Research and Development, 45(2):311–332, 2001.

Supervisors: Maaz Mashood Mohiuddin