間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

火星でいったい何が起きたのか?

http://catless.ncl.ac.uk/Risks/19.54.html#subj6
http://www.unixuser.org/~euske/doc/risks-ja/mars.html

1997年に火星に到着した NASA の火星探査機マーズ・パスファインダー (Mars Pathfinder) 号は、火星地表で探査機のコンピュータシステムが再起動してしまうという問題にみまわれた。これは OS のスケジューリングにおいて出てくる priority inversion (優先度逆転) という現象が、現実のシステムに深刻な影響を引きおこした例である。

現在のたいていの OS では複数の処理が並列して行われているが、各処理 (プロセス) には優先度 (priority) という属性が与えられている。実時間で何かを制御するさいには、コンピュータが決められた時間内で正しく応答する必要があるため、プロセスを正しい優先度で動かすことは非常に重要である。ところが、ある状況下では優先度の低いプロセスが優先度の高いプロセスよりも速く走ってしまうという現象が起こる。これが優先度逆転である。優先度逆転はそれまで大した問題ではないと思われてきたが、マーズ・パスファインダー号の場合はこれがシステムの再起動という深刻な問題につながった。 NASA ジェット推進研究所 (JPL) のソフトウエアチームはこの問題の原因が優先度逆転であることをつきとめ、火星地表の探査機上のソフトウエアを修正することにより問題を解決した。

めも

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。