Optimizing performance and dependability of computer systems: software rejuvenation stochastic modeling