月面着陸を救った女性:マーガレット・ハミルトンの物語
要約
本記事では、アポロ誘導コンピュータの先駆的な機内ソフトウェアを開発したチームを率いたソフトウェアエンジニア、マーガレット・ハミルトンの物語を紹介します。彼女のソフトウェアはアポロ11号の成功に重要な役割を果たし、ジョン・F・ケネディ大統領が掲げた月面到達の目標にインスパイアされたエンジニアや科学者たちの仕事に不可欠な貢献をしました。ハミルトンの業績はアポロ11号にとどまらず、彼女は技術に対する私たちの考え方を変えたことに対して大統領自由勲章を受賞しました。
目次
- アポロ誘導コンピュータ
- ハミルトンのソフトウェアエンジニアリングの突破口
- 非同期環境と優先度表示
- 月面着陸の緊急事態
- ハミルトンの遺産
アポロ誘導コンピュータ
アポロ誘導コンピュータ(AGC)は、宇宙船の誘導、ナビゲーション、制御を担当する最初のコンパクトなデジタルフライトコンピュータでした。NASAは、AGCを発明するためにチャールズ・ドレイパーと彼の400人のエンジニアのグループを頼りました。ドレイパーは、ハードウェアの設計チームとソフトウェアの開発チームに分けました。ハミルトンは、コマンドモジュールと月着陸船の搭載フライトソフトウェアを構築したチームを率いました。信頼性の低いコンピュータが部屋全体を占めていた時代に、AGCはエラーなく動作し、1立方フィートのスペースに収まる必要がありました。
ハミルトンのソフトウェアエンジニアリングの突破口
ハミルトンのソフトウェアは、予期せぬエラーを素早く検出し、リアルタイムで回復する必要がありました。しかし、このような適応型プログラムは、初期のソフトウェアが決められた順序でジョブを処理することしかできなかったため、構築することが困難でした。これを解決するために、マーガレットはプログラムを非同期に設計し、より重要なジョブがより重要でないものを中断することができるようにしました。彼女のチームは、各タスクに固有の優先度を割り当て、どんな予期せぬ状況でも正しい順序で、そして正しい時に各ジョブが実行されるようにしました。
非同期環境と優先度表示
この突破口の後、マーガレットは、彼女のソフトウェアが宇宙飛行士が非同期の環境で作業するのに役立つことに気づきました。彼女は、優先度表示を設計し、緊急事態が発生した場合に宇宙飛行士の定期的なタスクを中断して警告することができるようにしました。宇宙飛行士は、ミッションコントロールと通信して、最善の道を決定することができました。これは、初めてフライトソフトウェアがパイロットと直接、そして非同期に通信したことを示しました。
月面着陸の緊急事態
1969年7月20日、人類は月面に着陸する直前でした。しかし、宇宙飛行士たちが最終降下を開始する前に、緊急警報が点灯しました。何かがコンピュータを過負荷にして、着陸を中止する危険がありました。バズ・オルドリンはすぐに自分のミスに気づきました。彼は、ランデブーレーダースイッチを誤ってオンにしていました。このレーダーは帰路で必要不可欠でしたが、ここでは重要な計算リソースを消費していました。幸いなことに、アポロ誘導コンピュータはこれに対応するのに十分に備えていました。オーバーロード中、ソフトウェア再起動プログラムにより、着陸に必要なプログラムを含む最高優先度のジョブのみが処理されました。優先度表示により、宇宙飛行士は着陸するかどうかの選択肢を与えられました。残りわずかな時間の中、ミッションコントロールは命令を下しました。