Fine grained software rejuvenation models

Preventive maintenance of operational software systems is a technique used to counteract the phenomenon of software "aging". Haung et al. (1995) proposed a technique called "software rejuvenation" in which the software is periodically stopped and then restarted in a "robust" state after a proper maintenance. This "renewal" of the software prevents, or at least postpones, the occurrence of crash failures. Previous models of software rejuvenation were all based on a "black box" approach in which the degradation mechanism was modeled by three stares: a fully available state, a degraded state from which the decision whether to rejuvenate can be taken, and a crash state. The present paper proposes a fine grained model for the quantitative analysis of software rejuvenation. The model is based on the assumption that it is possible to identify the current degradation level of the system by monitoring an observable quantity, so that the future strategy can be tuned on the measured parameter. Two different strategies are discussed to decide whether and when to rejuvenate. Furthermore, resorting to the theory of renewal processes with reward the steady-state unavailability can be estimated for the various policies and an optimality criterion can be invoked to evaluate the proper rejuvenation intervals. A set of numerical experiments conclude the paper.