火星の最初のバグ

1971年、ソビエト連邦は火星に世界初の「スキー」惑星探査機を納入しました。これは、スタイラス(動的浸透計とガンマ線密度計)で表面を突くと想定されていました。 最初のデバイスは11月27日にクラッシュし、2番目のデバイスは12月2日にソフトランディングを行いましたが、火星探査機はランディングモジュールの「シェル」から抜け出すことができなかったため、試行はカウントされませんでした。



25年が経過しました。

1997年7月4日、アメリカのデバイスが火星に飛んで、最初のバグで「エイリアン」をもたらしました。





映画「火星人」からのショット。 主人公はローバーソジャーナーを持っています



プロジェクトは危険にさらされていましたが、オペレーティングシステムをデバッグする強力なツールと地球上のプログラマーの優れた仕事(みんな、必要なもの)により、すべてを最短時間で迅速に修正することができました。





ソジャーナー



画像








プログラムの費用は比較的低かった-2億6500万ドル。

ローバーは83ソルで働きました。



ローバーの名前、ソヨルナーは、文字通り「一時的な居住者」または「道路」を意味し、投票の勝者-米国コネチカット州からの12歳の少年によって与えられました。 ローバーの名前は、黒人奴隷制に対する女性の戦闘機-ソヨルナートルトにちなんでいます。



画像








ミッション結果:





優先順位の逆転



画像








優先順位の逆転は、異なる優先順位を持つ2つ以上のスレッドが紛争にある場合に発生します。これらのスレッドのうち、どれがプロセッサによって処理される必要があります。



画像






ランディングモジュール上のコンピューターは、128 MB RAMおよび6 MB EEPROMを備えたIBM Risc 6000シングルチップ(Rad6000 SC)20 MIPS CPUです。 OS- VxWorks



画像






ローバーには、512 KBのRAMと176 KBのソリッドステートフラッシュメモリを搭載した0.1 MIPS Intel 80C85 CPUが搭載されていました。





1553バスでは、優先順位の異なる3つのタスクがハングします。



気象データを収集するとき、ローバーはホバリングして再起動し始めました。 地球上のエンジニアがソフトウェアのコピーを取り出し、何が起こっているのかを理解し始めました。 詳細なログを詳しく調べると、エンジニアは18時間で何が起こっているのかを理解しました。

画像








画像








セマフォのフラグをいくつか調整するだけでした。



バグを修正する方法



いいえ、vxWorksシェルを使用してソフトウェアを変更しませんでした(シェルは宇宙船で使用可能ですが)。 宇宙船でソフトウェアを「パッチ」するプロセスは、特殊なプロセスです。 それには、宇宙船に搭載しているものと欲しいもの(そして地球上にあるもの)の違いを送信することが含まれます。 宇宙船のカスタムソフトウェア(検証が多数行われている)は、オンボードコピーを変更します。 さらに情報が必要な場合は、メールを送信してください。



宇宙船のソフトウェアを「修正」するプロセスは、特殊なプロセスです。 それは、あなたが持っているものとあなたが望むもの(そして地球上にあるもの)の違いを宇宙船に送ることを伴います。



宇宙船のソフトウェアは、組み込みのコピーを変更します。 誰かが詳細を知りたい場合、ソフトウェアの作者はglenn.e.reeves@jpl.nasa.govで彼に書くことを提案します。



-Mars Pathfinderソフトウェア開発者のチームリーダー、Glen Reeves




パッチはどのようにアップロードされましたか?



VxWorksには、デバッグ中にその場でステートメントを実行するC言語インタープリターが含まれていました。 JPLエンジニアは、この機能を引き続き有効にして宇宙船を打ち上げることにしました。 短いCプログラムが宇宙船にアップロードされ、解釈されると、優先度継承のmutexフラグの値がfalseからtrueに変更されました。 これ以上システムのリセットは発生しませんでした!










バグを見つけて修正したエンジニアであるMars Pathfinderの複製の中でグレンリーブス



このバグは、起動前の地球でのテスト中に発見されましたが、低い優先度が割り当てられていました。



詳細



画像










中国の専門家によるプレゼンテーション







おわりに



グレン・リーブスは、ウインドリバーのOSの開発者に、このような緊急事態でもディベースできるシステムを開発してくれたことに感謝します。 地球上でバグが発見されたことに注目するのは興味深いですが、「期限」と「優先順位」により、「弱点」があることを知って、宇宙への乗り物の発射が強制されます。



All Articles