Margaret Hamilton's Code Caught the Apollo 11 Lunar Computer Mid-Crash
Three minutes from landing, the guidance computer threw 1201 and 1202 alarms; her priority scheduler dropped low-priority work and kept landing.
Margaret Hamilton ran the Software Engineering Division at the MIT Instrumentation Lab through the Apollo program. She had taken the job in 1965, when software for spacecraft was new enough that there was no established term for the work; she started insisting on the phrase "software engineering" to argue, against pushback, that what she did deserved the same status as building the hardware.
The choice that made her famous came on July 20, 1969. About three minutes before Apollo 11's lunar module touched down, the Apollo Guidance Computer began throwing program alarms — a 1201 followed by a 1202 — that meant the computer was being overloaded. Buzz Aldrin had left the rendezvous radar switch on, and its data was crowding out time slices the descent program needed. On almost any other system this would have meant a crash; the computer had 64 kilobytes of read-only memory and 4 kilobytes of erasable RAM, and there was no margin for graceful failure. But Hamilton's team had designed the executive to schedule by priority: under load, it dropped low-priority work and kept the high-priority descent guidance alive. Steve Bales at Mission Control, watching the same alarms, called "Go" twice in 30 seconds; the lander reached the surface with about 25 seconds of fuel left.
The famous photograph of Hamilton standing next to a stack of Apollo source listings as tall as she is was taken in 1969 to mark the program's completion. President Obama gave her the Presidential Medal of Freedom in November 2016.
Make Recess yours.
Sign in to save the ones you loved, never see the same thing twice, and tell us what you want more of.