情処用語辞典

フェールセーフ

説明

システムで何らかの故障が発生した際に、常に安全側に動作する設計を指します。特に人命に関わるところでは重要な考え方です。

代表的な例が踏切の遮断機。踏切の遮断機の動作を設計する上では、(1)通常は遮断機が上がった状態で、電車が来た時に遮断機を下ろす制御をする。(2)通常は遮断機が下がった状態で、電車が来ていない時に遮断機を上げる制御をするという2種類のやり方が考えられます。

実際の踏切は(2)の考え方でできていて、故障時には重力によって遮断機が下がった状態になるように設計されており、誤って人が線路内に進入するのを防止して事故の発生を抑制しています。電車が来ていない時間の方が長いので(1)の方が素直な設計のようにも思えますが、危険な設計です。

コンピュータシステムでは、例えば何らかの処理でメモリアクセス違反があった時にその処理だけを止めるのではなくプログラム全体を止めるというやり方があります。変な状態でプログラムを動かし続けてデータを壊してしまうよりかは、怪しい動作をした時点でプログラムを止めてしまってそれ以上おかしくなるのを防ぐという設計です。

余談

フェールセーフと似た概念として「安全側に倒す」という考え方がありますね。「安全側に倒す」は故障とは関係なく、とにかく安全な方を選択するということなのでちょっと意味合いが違います。故障時に安全側に倒すというのがフェールセーフだと思います。