Tranquility Base

My favourite book would be “Apollo the Race for the Moon” Catherine Cox, Charles Murray. It provides a good account, and focusses of technical and managerial issues, not the astronauts.

The “Moon Machines” documentary series, episode 3, had a good coverage of some aspects as well.

[QUOTE=RedSwinglineOne]

designed to prioritize its workload and all the “important” computations were handled.

[/QUOTE]

Microsoft Windows has been able to do this since 2007. It is called Quota-based CPU scheduling and (if used) it prevents a runaway thread or process from monopolizing the CPU:

Windows has offered Structured Exception Handling since the mid-1990s which allows an app to keep running if a thread crashes (if the developer properly uses that feature): https://www.microsoft.com/msj/0197/Exception/Exception.aspx

It’s important to understand the LM flight control computer was a real-time, life-critical embedded application. You don’t compare that to a general-purpose operating system, whether it’s Windows or IBM OS/360. General-purpose operating systems have a lot more code and are not tested to the same level as an embedded real time system. If Apple or Microsoft spent the same developer labor hours per line of code that NASA spent on the LM or Shuttle flight control computers, macOS and Windows would probably cost $1,000 per copy.

That said, there is an embedded version of Windows which is optimized for real time use: https://www.youtube.com/watch?v=JboSR_fn4LM

But you wouldn’t use it in an aircraft flight control system. It was formerly called Windows Embedded and it’s now called Windows 10 IoT Core: https://developer.microsoft.com/en-us/windows/iot/explore/iotcore

No Apollo computer ever crashed during a mission except for the Apollo 12 ascent when the Saturn V was hit by lightning. That caused an AGC “hardware restart” and it rebooted itself. Fortunately the Saturn V computer did not crash, which would have caused a launch abort. The Apollo computers were custom made from a component level and were so expensive that it was unaffordable for the shuttle program, which used off-the-shelf IBM hardware. Several times a computer crashed during a shuttle mission but they were 4-way redundant with a 5th backup computer, so it never immediately jeopardized safety.

The Apollo LM was the first use of a digital fly-by-wire control system, and it had a separate backup computer. If both computers failed, unlike the shuttle it was capable of flying key mission segments without any computer whatsoever. It used separate, independent wiring and separate thruster control solenoids which enabled a fully manual, non-computerized contingency control pathway.

Use of any of those would be an abort case and would terminate the lunar mission, so that’s what the concern was during the Apollo 11 lunar descent. They had a backup computer but switching to that mandated an abort.

I think it would also be fair to say that technology had advanced so far as to have already made the Apollo computers quite obsolete by the time the shuttle design was frozen. The IBM Sysetm 4/Pi series were a major leap ahead, and represented a generational change. The Apollo computer used 3 input RTL NOR gate logic, the Pi uses 54 series TTL. That simply didn’t exist when the Apollo computer was being designed. Indeed even the RTL chips were bleeding edge, and cost $1000 each (for a single 3 input NOR gate) at the start of the project. The IBM System 4 AP 101 version was a modern microcoded design. Quite recognisable as a general purpose computer. Even Skylab used the AP 101.

To add. The Apollo computers were also totally unsuited to really any other purpose. They were hard programmed using “rope memory”. It was not possible to change the code in an Apollo computer. It was welded (actually woven in) during manufacture. By the time the Shuttle was being constructed the facility that made the rope memory had been decommissioned. Its last ever job was weaving memory containing some of the the first full fly by wire systems test code - which used a left over Apollo computer and bits mounted in a jet fighter.

To clarify, the shuttle also used magnetic core memory (though not rope-style) and continued doing this until the AP-101S retrofit in 1991. However the shuttle core memory could be loaded from tape, whereas the Apollo core memory was manufactured to hold programming specific to each mission.

The overall principal and appearance is similar, just a different level of miniaturization. They were all manufactured by hand, through the 1970s.

Apollo AGC magnetic core rope memory: http://archive.computerhistory.org/resources/access/physical-object/2009/04/XD115-76.01.11.lg.jpg

Apollo AGC magnetic core “RAM” memory: File:Apollo 1024 bit core memory module.jpg - Wikimedia Commons

Late 1970s magnetic core memory: 32K word magnetic core memory board - CHM Revolution

It’s a good thing the computer did not have voice capabilities back then, i can hear it now

“I’m sorry Neil, i can not do that”

Let’s see…1969 to 2007 = 38 years to figure this out. Sounds about right for Microsoft.

Was the take-off fuel for the Lunar Module different from the landing fuel? Is that what is meant by the LM almost being out of fuel on the descent? They still had fuel to take off, obviously.

Different Engines.

Two different stages each with their own tanks and rocket engines: https://en.wikipedia.org/wiki/Apollo_Lunar_Module#/media/File:LM_illustration_02.jpg

Of note, Jack Garmin, who was 24 years old at the time of the landing, passed away last year:(

Quota-based (sometimes called class-based) scheduling has been used in general-purpose operating systems since at least the 1980s. Dave Cutler who led development of DEC’s VAX/VMS operating system also led the development of Windows NT in the early 1990s.

Dave was well aware of the pros and cons of using a quota-based thread scheduler in Windows NT, and generally felt it wasn’t worth the complexity and risk. This was a carefully-measured, informed decision based on vast experience. Some minicomputer operating systems such as Data General’s AOS/VS II had used quota-based process scheduling since the mid-1980’s, and it could easily cause problems.

The problem is the preemptive scheduler is frequently invoked – every 10 milliseconds on some machines. This is driven by a hardware interrupt from a programmable interval timer. The scheduling algorithm must be quite simple else it degrades performance. The user or administrator must define groups or classes for processes and assign CPU quotas to them. If done incorrectly it will artificially cap performance, yet the vast majority of time it’s not needed.

In operating system design there is a general tradeoff between overall throughput vs latency. Windows and most other general purpose operating systems are designed for maximum throughput not minimum latency. A real time operating system can afford to trade total throughput for reduced latency and/or better control over task scheduling.

Without classes or quotas, the typical scheduling algorithm is very simple – highest priority thread in a runnable state is dispatched to an available CPU or core. Some operating systems dynamically bump priorities up and down within a range, but the general algorithm must by necessity be quite simple.

The Apollo AGC used a highly specialized real time operating system, much like runs embedded real time control systems in aircraft and elevators. It did not have to handle thousands of threads, gigabytes of RAM, terabytes of storage, and a complex GUI as today’s computers do. On such a rudimentary single-purpose computer, it was much easier to implement an interrupt-driven arrangement of task priorities which would exhibit predictable latency and would gracefully degrade with increasing load.

The difference between core and rope is the same as between RAM and ROM. The Apollo computer stored its entire program code in ROM - which was implemented as rope memory. Rope operates similarly to conventional core, but rather than the values being stored as the (changeable) magnetisation direction in a core, the values were forced into the construction of the memory by the direction the wire passed through the core. The big difference is that the rope memory cores could take up to 128 sense wires (later 192). This meant that a single core could be used to implement up to 128 bits of read only memory. Each module contained 512 cores, and thus up to 65k bits of ROM. But it was impossibly to modify the contents. Especially after the module had been potted.

The MIT Science Reporter video on the construction of the computer shows some detail of the construction. However I think the part of the video describing the construction of the logic modules is for the Block-1 computer, as the Block-2 modules were soldered rather than welded (and used the afore mentioned dual RTL 3 input NOR gates.)

Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.

Apollo guidance computer instruction set.

Wikipedia entry on the Apollo guidance computer.  (Lots of cool links)
 Apollo Guidance Computer - Wikipedia

I know a man who knew Neil Armstrong, many of the other astronauts and plenty of folks in NASA.

His summary of the opinions of nearly all these folks: “It’s possible the US has never produced anyone cooler under pressure than Neil Armstrong.”

I just wanted to interject that the absorbency might help if you piss yourself, but i’m not quite sure it’s going to help when you have now weightless turds floating around in your suit. :eek:

I’m kidding of course, the suits had to have some way of containing solid waste, but i am really scared to look up and see how

Thanks folks - a great collection of links and commentary that bring home just how amazing an achievement it was.

Nothing taken away from the Mercury and earlier Apollo missions that paved the way, but this does remain the greatest human event of my lifetime.

Thanks for the explanation.

…or when he was testing the first Lunar Landing Research Vehicle. From Wikipedia:

On May 6, 1968 Armstrong was forced to use LLRV #1’s ejection seat from about 200 feet (60 m) altitude after a control problem, and had about four seconds on his full parachute before landing on the ground unhurt. The accident investigation board found that the fuel for the vehicle’s attitude control thrusters had run out, and that high winds were a major factor. As a result, the decision was made by JSC management to terminate further LLRV flights as the first LLTV was about to be shipped from Bell to Ellington to begin ground and flight testing.

When Neil died, the world’s supply of balls dropped significantly.

Lunar Landing Research Vehicle

There is no possibility that he blew the line.

Yeah, he came within fifteen seconds of killing himself and his friend, as well as stranding them on the Moon, and then, chokes on a line in in a High School play.

Yeah, not so much.

Oh yeah, and he requested to be buried at sea, so his grave wouldn’t become a shrine.

And after he got on the ground he went back to the office and worked the rest of his shift doing whatever administrivia he’d planned to do before the near-fatal accident.

I’ve known some pretty cold dudes. But that takes the cake.