月面着陸を救った女性:マーガレット・ハミルトンの物語
要約
この記事では、アポロ11号の月面着陸において重要な役割を果たしたソフトウェアエンジニア、マーガレット・ハミルトンの生涯と業績について探求します。ハミルトンの革新的なソフトウェアエンジニアリング手法と、リアルタイムで予期せぬエラーを検出し回復することができる適応型プログラムを設計する能力は、月面着陸直前にミッションを中止から救いました。彼女のソフトウェアエンジニアリング分野への貢献は、私たちがテクノロジーについて考える方法に長期的な影響を与えました。
目次
- 幼少期:マーガレット・ハミルトンの背景
- チームに参加:アポロ誘導コンピュータのソフトウェア開発
- ソフトウェアエンジニアリングの高いリスク
- フェイルセーフと優先表示:ハミルトンの革新
- 月面着陸:ハミルトンのソフトウェアがミッションを救った方法
- アポロ以降:ハミルトンの遺産
- 結論
幼少期:マーガレット・ハミルトンの背景
マーガレット・ハミルトンは、1936年にインドのパウリで生まれました。幼い頃から好奇心旺盛で探究心があり、これが彼女を大学で数学と哲学を学ぶ道に導きました。卒業後、彼女はグラッドスクールの費用を稼ぐためにマサチューセッツ工科大学(MIT)で研究職に就きました。そこで、カオス理論の新しい分野における研究をサポートするソフトウェアを開発中に初めてコンピュータに出会いました。
チームに参加:アポロ誘導コンピュータのソフトウェア開発
MITでのハミルトンの仕事は、著名なエンジニアであるチャールズ・ドレイパーの注目を集めました。ドレイパーとその400人のエンジニアチームは、人類を月に送るための初のコンパクトなデジタルフライトコンピュータ、アポロ誘導コンピュータ(AGC)の発明に取り組んでいました。ハミルトンは、コマンドモジュールと月着陸船の搭載フライトソフトウェアを開発したチームを率いました。
ソフトウェアエンジニアリングの高いリスク
アポロ計画のソフトウェアエンジニアリングの作業は、非常に高いリスクが伴いました。人命がかかっていたため、すべてのプログラムは完璧でなければなりませんでした。マーガレットのソフトウェアは、予期せぬエラーを素早く検出し、リアルタイムで回復する必要がありました。しかし、初期のソフトウェアは、決められた順序でジョブを処理することしかできず、適応型プログラムを構築することが困難でした。この問題を解決するために、ハミルトンはプログラムを非同期に設計し、ソフトウェアの重要なジョブが優先され、それ以外のジョブが中断されるようにしました。彼女のチームは、すべてのタスクにユニークな優先度を割り当て、予期せぬ事態に関わらず、各ジョブが正しい順序で正しい時間に実行されるようにしました。
フェイルセーフと優先表示:ハミルトンの革新
ハミルトンのソフトウェアは、緊急時のオーバーロードが発生したときに警告を発するフェイルセーフがありました。バズ・オルドリンがランデブーレーダースイッチを誤って切り替えており、重要な計算リソースを消費していたためです。オーバーロード中、ソフトウェアの再起動プログラムは、着陸に必要なプログラムを含む最も優先度の高いジョブのみを処理するようにしました。優先度表示により、宇宙飛行士は着陸するかどうかを選択できました。残り時間わずかで、ミッションコントロールは命令を出しました。