5.5.26 · D5Embedded Systems & Real-Time Software
Question bank — Fault tolerance — fail-safe vs fail-operational
Before we start, let us pin down every symbol and acronym these questions lean on, in plain words:
True or false — justify
Fail-safe systems are always safer than fail-operational systems.
False — "safe" is contextual. In an aircraft at cruise, shutting down (the fail-safe move) is the dangerous option; there loss of function is worse than degraded function, so fail-operational is the safer design.
A fail-operational system never needs a safe state.
False — it needs one for the case where redundancy is finally exhausted. Hybrid designs (like the insulin pump) stay operational through transient faults, then fall back to a fail-safe shutdown when a fault persists.
Adding Triple Modular Redundancy always increases Mean Time To Failure.
False — TMR gives , which is lower than a single unit's . TMR wins on early-life reliability, not on long-run average lifetime.
A high safe failure fraction makes a component fail less often.
False — does not change the total failure rate at all; it only changes which kind of failure occurs, converting dangerous failures into detected safe ones.
If every redundant channel is identical, three channels are three times as reliable against all faults.
False — identical channels share every common-mode failure (same software bug, same power rail). Against a design bug, three identical units are exactly as vulnerable as one.
A watchdog timer detecting a hang means the system was fail-operational.
False — detection is not continuation. A watchdog typically forces a reset or a safe state; that is a fail-safe reaction unless a redundant unit keeps the function alive.
"Four nines" availability () means the system is almost never wrong.
False — availability measures being up and operational, not being correct. A system can be highly available while producing subtly wrong outputs; that's why we track dangerous-failure rate separately.
Passive-safe and active-safe are two names for the same thing.
False — passive-safe reaches safety by doing nothing (power down, disconnect, spring pulls to REST); active-safe must keep doing something (hold the brakes clamped). Active-safe needs a working actuator, so it is harder to guarantee.
Spot the error
"Our elevator brake is fail-safe because software commands the brake to engage on any error."
The reliance on software commanding the brake is the flaw. Truly fail-safe means the brake engages on loss of power/signal without software acting — a spring-loaded, energize-to-release brake. If the CPU that must "command" is itself dead, nothing engages.
"We set , so 99% of failures are safe, so MTTDf improves by 99%."
The gain is far larger than 99%. Dangerous rate is , so divides the dangerous rate by 100, giving roughly a 100× (two orders of magnitude) improvement in Mean Time To Dangerous Failure, not 99%.
"TMR tolerates two failures because it has three units."
TMR tolerates only one failure. With a majority voter, two failed units outvote the one good one, so the system fails on the second fault. Three units buy single-fault tolerance, not double.
"The A320 flight computers vote, so a software bug in the voting logic is fine — two out of three will be right."
Voting protects against independent faults in identical software. A bug in the shared voting/software logic is a common-mode failure present in all three; majority voting cannot outvote a defect they all share. That is why dissimilar (diverse) backup exists.
"In Direct Law the A320 is under mechanical control, so software failure no longer matters."
Wrong per the parent note — Direct Law is still software-driven fly-by-wire (stick maps directly to surfaces, minus envelope protection). The only mechanical backup is rudder + trimmable stabilizer for steadying, not full manual flight.
"The insulin pump is fail-operational, so it should keep dosing no matter what."
It is a hybrid. It stays operational only for transient faults via cross-checking processors; for persistent faults it deliberately becomes fail-safe by stopping delivery and alarming, because a wrong dose can be fatal.
"Default the signal state variable to GREEN and switch to RED on fault."
Backwards. The safe default is RED; if initialization or a fault leaves the variable untouched, it must land on the harmless state. Defaulting to GREEN means an uninitialized or stuck system shows "go" — the dangerous outcome.
Why questions
Why does making failures self-revealing (raising ) buy so much safety?
Because a detected failure can trigger the safe state, so it stops being dangerous. Raising shifts probability mass from the dangerous stream to the safe stream, shrinking dangerous rate and multiplying MTTDf.
Why can't we just make a system both fully fail-safe and fully fail-operational?
They pull opposite ways: fail-safe wants to stop on any doubt, fail-operational wants to keep going. You cannot simultaneously stop and continue, so real systems pick a strategy per function or stage a hybrid (operate a while, then fall to safe).
Why does fail-operational design demand redundancy while fail-safe often does not?
To continue a function after a unit dies, you need another unit ready to carry it — that is redundancy. To merely stop safely, a single passive mechanism (a spring, a de-energizing relay) suffices; nothing has to keep the function alive.
Why is diversity (different hardware/software) sometimes preferred over more identical copies?
Identical copies share common-mode failures — one design bug or one shared power fault takes them all. Diverse implementations are unlikely to fail from the same cause, so they cover the failure class that pure replication cannot.
Why does TMR's benefit concentrate in early life rather than over the whole mission?
Early on, unit failures are rare and independent, so the voter almost always has a healthy majority — big reliability boost. As time grows, the probability of a second failure climbs and eventually the redundant system is worse than betting on one long-lived unit (hence the lower MTTF).
Why does the TMR average lifetime come out to exactly ?
MTTF is the area under the reliability curve, , with (probability that at least two units still work). Integrating term by term gives — the two-failure "wait" contributes less than the single unit's , which is why TMR's average life is shorter.
Why measure availability and dangerous-failure rate instead of just one number?
Availability answers "is it running?"; dangerous-failure rate answers "when it acts, could it act harmfully?" A system can score high on one and badly on the other, so a single number hides the failure mode that actually kills people.
Edge cases
At exactly the deadline , is the fail-safe requirement met?
The specification demands reaching the safe state within the deadline with probability ; the boundary instant must be included as "in time." Any design that only usually makes it, or slips past , violates the safety claim.
What happens to a fail-operational system when its last redundant channel fails?
Redundancy is exhausted, so it can no longer continue safely by voting. A well-designed system detects this and falls back to a defined safe state (or best-effort degraded mode); an ill-designed one silently produces unchecked, possibly dangerous, output.
If (every failure detected and made safe), is the dangerous rate zero?
In the model , so MTTDf — dangerously optimistic. In reality is unachievable; some failure modes evade detection or the detector itself fails, so true dangerous rate is small but never exactly zero.
If two units disagree in a Dual Modular Redundancy (DMR) pair, which is right?
DMR can detect the disagreement but cannot decide which channel is faulty — there is no majority to break the tie. The safe response is usually to declare a fault and go to a safe state, which is why DMR alone is fail-safe, not fail-operational.
What does a fail-operational system do when a fault arrives during startup, before redundancy is armed?
It has no healthy backup to switch to yet, so during the vulnerable window it must either hold outputs inert or default to the safe state until all channels are confirmed live — treating startup as a temporarily non-operational phase.
If common-mode failures are ignored in the reliability math, is the computed MTTF optimistic or pessimistic?
Optimistic — the binomial/TMR formulas assume independent failures. Any shared cause makes real simultaneous failures more likely than the maths predicts, so the true reliability is worse than the number on paper.
Can a system be perfectly safe (never dangerous) and perfectly available () at once?
No — perfect safety would require never acting when uncertain (favouring shutdown), while requires never being down. Real design trades one against the other; the "right" balance depends on whether lost function or wrong function is the greater harm.
Recall One-line summary to lock in
Fail-safe minimises dangerous failures by choosing safe shutdown; fail-operational minimises loss of function through redundancy; both meet where redundancy runs out and a safe state must catch the fall.