A fault tolerant system is able to continue operating despite failures in hardware or software components. It gracefully degrades performance as more faults occur rather than collapsing suddenly. The goal is to ensure the probability of total system failure remains acceptably small. Redundancy is a key technique, with hardware redundancy using multiple redundant components and voting on outputs to mask faults. Static pairing and N modular redundancy are two hardware redundancy methods.