An article titled “Software Fault Tolerance: A Tutorial” by NASA was published in 2000 and is at the link provided. It talks about a number of techniques including check-pointing. Note that fault tolerance may not be consistent with risk management goals depending on the type of device and its design.