← Back to context

Comment by underlipton

17 hours ago

First thing I thought of, too. "Who? ...Wait, not the cool book chick!"

Tangential: the software documented in the books next to her were likely developed with a level of rigor that consumer software can only dream of, per the seminal article on similar matters: https://www.eng.auburn.edu/~kchang/comp6710/readings/They%20...

The term she coined for it was "man-rated". Meaning that it had been tested rigorously enough to be trusted to keep humans alive.

During the Apollo 11 descent to the lunar surface, Buzz Aldarin pressed a button to display altitude and position during the landing sequence. As it turns out, this was the 8th task the Apollo 11 lander's guidance computer was asked to run, and it was only capable of running 7 tasks in real-time. Thanks to Hamilton and her team's priority scheduler, the guidance computer threw an alarm, killed the lowest priority task, and then resumed the execution of the other 7. If that hadn't been programmed to rescue itself like that, the computer would have crashed, and the Apollo 11 lander would not likely not have been the success that it was.

  • That does not seem like particularly notable example of foresight & robustness, given that it’s such a low number of maximum tasks, and such a fundamental & frequently used element of its operation.

    Like it wouldn’t even be describable as a “rescue itself” if the response was simply “No. Too many jobs running. Please kill one to continue”

    • At that time running that many concurrent tasks on such anemic hardware was a small miracle. This wasn't your average linux kernel.

    • > “No. Too many jobs running. Please kill one to continue”

      A thing no other computer had ever done before, so, they had to come up with the idea in the first place - a brand new idea. But it was not only that - IIRC, the alarm happened when the OS (a tiny sliver of software not many computers even had at the time) skipped a less important task so it could run the more important ones before their configured deadlines.

    • It is infinitely harder to be first. Once it is known that viable path exists, the task becomes a lot easier

    • The Apollo Guidance Computer had 4KB of RAM and 16KB of ROM. Can you write a scheduler that would execute 8 programs related to landing on the moon in 4KB?

      8 replies →

That is an excellent article and I’d like to read more. Are there other resources about the shuttle software development or projects with a similar level of software engineering?

[flagged]

  • It is possible to respect someone and also give them a silly nickname. At least I sincerely hope it is, considering some of the things my children call me.

    • "Chick" is incredibly disrespectful, though. Maybe period correct, which makes it even more so.