The preventive maintenance is very useful to improve effectively the service availability for software systems with service degradation. In this paper, we present a stochastic model to describe an operational software, which consists of one operating system and multiple applications and provides a service in continuous time. Two kinds of maintenance strategies are taken: reconfiguration of applications as a corrective maintenance and preventive rejuvenation of an operating system. We derive the optimal preventive rejuvenation schedule maximizing the steady-state service availability in the framework of semi-Markov decision process and study analytically the optimality structure on it. We give a simple numerical example to determine the condition-based optimal rejuvenation schedule via the decision table.