logoalt Hacker News

jonstewart • today at 2:52 AM • 3 replies • view on HN

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?


Replies

da_chicken • today at 3:35 AM

An asynchronous scheduler with task priority, interrupts, and real-time response. That goes on a spaceship with less than 70 Watts of power available for the computer. That weighed about 70 pounds. When there has never been that sort of a multi-tasking computer controlled avionics before.

At a time when the contemporary computer systems that used asynchronous, priority-scheduled multitasking operating systems were things like IBM OS/360 mainframes and DEC PDP-6/PDP-10 minicomputers.

It was like having an Apple II in mid 1960s with double the word size.

➕ show 1 reply
bronson • today at 3:27 AM

And it ran at 0.043 MIPS. Each task would get maybe 5000 instructions per second, minus scheduler overhead.

setr • today at 6:46 AM

I mean, the implementation can be incomprehensibly impressive, but as an example of “man-rated” — being sufficiently robust — rejecting the request would be sufficient and I suspect this was an obvious place to have some kind of handling for. If there were no handler of any kind in this position, it’d be unforgivable in modern, far less robust software.

The kind of example for man-rated I was expecting would be dealing with really nutty edge cases (perhaps like correctly operating under arbitrary bitflips) or the LISP recovery system from Deep Space 1.

Handling an expected error condition under normal operation is not, in my mind, a good example of man-rated robustness. It might be a good example of other things.