Software-based methods for Operating system dependability