Inhaltsverzeichnis   Druckansicht   Datenschutz  

Apollo Guidance Computer

Menü

Hal Laning

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) [NAT2018]

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.