Skip to main content

Die Konzeption des Apollo Guidance Computers

Dr. Charles Stark Draper vom Massachusetts Institute of Technology (MIT) hat in den 1950er-Jahren ein Gyroskop-basiertes Navigationssystem entwickelt, das „inertial guidance system”. In einem Testflug im Jahre 1953 hat dieses Navigationssystem ein Flugzeug ohne Bezugnahme auf äußere Landmarken sicher von Boston nach Los Angeles geleitet. Charles Draper war bei diesem Flug mit an Bord, da er stets ein großes Vertrauen in seine Entwicklungen hatte. Durch dieses Navigationssystem wurde Draper bekannt als „Vater der Inertialnavigation”. Daher war es naheliegend für die NASA, Charles Draper für ein so ambitioniertes Projekt wie Apollo an Bord zu nehmen. Er erhielt den Auftrag, das Leitsystem für die Apollo Missionen zu entwickeln, dies war der erste Auftrag der NASA im Rahmen des Apollo-Programms, unterzeichnet am 10. August 1961.

Charles Draper konnte dabei auf seine Erfahrungen mit dem „inertial guidance system” zurückgreifen. Auch bei der Arbeit am Navigationscomputer für das Apollo-Programm zeigte sich wieder sein Vertrauen in die eigene Arbeit und in die seines Teams.

Charles Stark Draper (1901 - 1987) [CON07]

Zu Beginn des Projektes im Jahre 1961 gab es bei der NASA-Führung wiederholt Zweifel daran, dass das MIT ein Navigationssystem entwickeln könne, das Menschen zum Mond und zurück bringen kann. Hugh L. Dryden, Deputy Administrator der NASA, beorderte Draper zu dem verantwortlichen NASA-Administrator James E. Webb, um vor diesem Stellung zu nehmen. Draper betonte nicht nur seine Überzeugung und sein Vertrauen in die Arbeit seines Teams und in die Technik, nein, er ging noch einen Schritt weiter: Am 21. November 1961 schrieb er an den Deputy Administrator Robert Seamans eine Bewerbung als Astronaut im Apollo-Programm. Darin versicherte er nicht nur sein Vertrauen in seine Mitarbeiter am MIT, sondern zeigte mit dem Brief auch, dass er als Apollo-Astronaut sein Leben dem Navigationscomputer anvertrauen würde, den das MIT entwickelte.

Charles Drapers Team bestand natürlich aus zahlreichen Mitarbeitern, die hier nicht alle vorgestellt werden können. Dennoch sollen zumindest einige der Personen, die für bestimmte Aspekte der Entwicklung des AGC von besonderer Bedeutung waren, etwas näher betrachtet werden:

Ein weiterer Wissenschaftler von besonderer Bedeutung für die Entwicklung des AGC in Drapers Team war Hal Laning:

Die Computer der 1960er Jahre arbeiteten mit gleich verteilten Zeitfenstern (Time-Slices), um mehrere Aufgaben (quasi-) parallel zu bearbeiten. Die einzelnen Aufgaben (Tasks) erhielten dabei jeweils einen gleichgroßen Anteil an der Rechenkapazität. Das funktionierte zwar, konnte jedoch dazu führen, dass eine einzelne Aufgabe, die nicht mehr reagierte, das ganze System blockierte. Für kritische Anwendungen war dieses Verfahren bei Weitem nicht sicher genug. Bei einem bemannten Flug zum Mond könnte ein solcher „Systemabsturz” die Astronauten in unmittelbare Lebensgefahr bringen. Eine bessere Lösung als die Aufteilung in gleichgroße Zeitscheiben musste her.

Hal Laning hatte nun die Idee, Prioritäten für die einzelnen Aufgaben einzuführen. Im Apollo Guidance Computer setzte er diese Idee um: Kritische Aufgaben wurden bei Engpässen in der Rechenkapazität vorrangig behandelt, weniger kritische Aufgaben wurden zurückgestellt.

J. Halcombe „Hal” Laning, Jr. (1920 - 2012) [NAT18]

Die einzelnen Prozesse überprüften dabei ihre jeweiligen Prioritäten selbst (kooperatives Multitasking). Prioritätenbasiertes Scheduling wurde später zum Bestandteil zahlreicher Betriebssysteme, wie z.B. Linux, MS-Windows (in den Varianten bis einschließlich Windows 3x, also in den 16-Bit-Versionen, wurde kooperatives Multitasking für das Scheduling verwendet) und Solaris. Das im AGC eingesetzte Scheduling-Verfahren war jedoch kein reines kooperatives Multitasking, sondern eine Mischung aus kooperativem und preemptivem Multitasking; somit wurden hier bereits Techniken eingesetzt, die noch über das Scheduling-Verfahren von Systemen wie Windows 3x hinausgingen und bereits preemptive Komponenten beinhalteten.

Die hohe Bedeutung von Lanings prioritätenbasiertem Scheduling zeigte sich bei der Landung von Apollo 11 auf dem Mond, als der AGC durch zahlreiche Radardaten außerordentlich stark belastet wurde.

Hal Laning hatte zu Beginn seiner Arbeit am Apollo-Programm bereits umfangreiche Erfahrungen mit der Entwicklung von Softwaresystemen; bereits 1952 entwickelte er einen Compiler für den MIT Whirlwind, der die Eingaben von Gleichungen in den Computer gegenüber der Programmierung in Assembler vereinfachte. In den 1950er-Jahren arbeitete er mit Richard Battin zusammen. Battin wurde im Rahmen des Apollo-Programms „Director of Mission Development” des AGC und war damit verantwortlich für das Softwaredesign des Navigationssystems.