12.8 Hardware-Based Fault Tolerance
12.8.1 General Aspects
This section is concerned with the last line of defense in fault-tolerant systems: the use of hardware. Naturally enough, much of this hardware actually contains software. And it is at this level that hardware, software, and system aspects become almost inseparable. This topic is a major one in its own right; all that can be done here is to give a very broad view of the subject. However, any software engineer involved in the development of real-time critical systems should understand these basics.
Three questions are central to the choice of fault-tolerant designs:
- What do we want to achieve?
- How can we achieve it?
- What are the pros and cons of the various solutions?
The first point is dealt with in this section, while the others are discussed later.
There is a wide range of critical systems. Thus, it is no surprise to find that their operational requirements – in terms of fault-tolerance...