Softwarenedbrud var tæt på at afbryde månelandingen

For 45 år siden landede de første mennesker på Månen, men et problem med landingsmodulets computer var tæt på at aflyse den historiske bedrift.

Det er 45 år siden, at de første mennesker, Neil Armstrong og Buzz Aldrin, landede på Månen den 20. juli om aftenen. Men missionen var tæt på at blive afbrudt på grund af computerproblemer.

Udsynet fra landingsmodulet under indflyvningen den 20. juli 1969. Illustration: NASA

NASA havde i samarbejde med MIT fået udviklet et computerbaseret navigationssystem, som skulle hjælpe besætningen på månelandingsfartøjet. Systemet med kodenavnet Luminary genstartede under landingssekvensen tre gange i løbet af 40 sekunder og udløste en alarm hos både kontrolcentret i Houston og i landingsmodulet, skriver NASA i sin historie om månelandingscomputeren.

Luminary og den tilsvarende søstersoftware i kommandomodulet i kredsløb om Månen var nogle af de første eksempler på software, som i realtid skulle foretage beregninger, hvor der var menneskeliv på spil.

Hele udviklingsprojektet var forløbet fra 1963 og frem til Apollo 11-missionen i 1969, og i 1966 var projektet i så alvorlige problemer, at NASA måtte sætte én af sine eksperter, Howard Bill Tindall, til at overvåge udviklingsarbejdet på tæt hold.

Principperne for styring af softwareudviklingsprojekter var endnu i sin tidlige barndom, og i 1966, da Apollo 1-missionen skulle have været sendt af sted, havde besætningen fået besked om at ignorere computerens beregninger af, hvor længe motorerne skulle affyres for at bremse korrekt forud for at genindtræde i Jordens atmosfære, fordi den regnede forkert.

Softwaren nåede at blive klar til Apollo 11-missionen, men under landingssekvensen begyndte computeren at genstarte. Det var den designet til, fordi man på den måde kunne håndtere fejl, som låste computeren. Computeren var nødt til ikke at gå i baglås, hvis den eksempelvis skulle styre, hvor længe motoren skulle være tændt.

Derfor blev der indbygget en funktion i softwaren, som holdt øje med, om de øvrige funktioner kørte. Hvis det ikke var tilfældet, kunne funktionen genstarte computeren.

Da systemet under indflyvningen til Månen begyndte at genstarte hyppigt, måtte softwareteknikerne hos NASA prøve at analysere årsagen til alarmerne. Alternativet var at afbryde missionen, hvormed Apollo 11 ikke havde været dén mission, der første gang bragte mennesker til Månens overflade.

Fejlen viste sig at stamme fra en analog-til-digital-omformer i landingsmodulets radar. Antallet af datapunkter svingede kraftigt, og i visse tilfælde oversteg de, hvad computeren kunne håndtere.

Det var først, da softwarefolkene havde fundet frem til, at fejlen ikke var kritisk, fordi genstartsfunktionen kunne holde systemet kørende, at besætningen på landingsmodulet fik GO til at gennemføre landingen.

Problemerne kunne løses ved at ændre en elektrisk omskifter på radarsystemet, hvilket var heldigt, for der var ingen mulighed for at opdatere Luminary-softwaren. Programmet var nemlig lagret i magnetkerner og kunne ikke overskrives.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (16)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Torben Mogensen Blogger

Magnetkernelager er/var almindeligvis skrivbart såvel som læsbart, men kunne holde informationerne uden brug af strøm (lidt ligesom flash).

Der blev dog også lavet read-only udgaver af magnetkernelager (http://en.wikipedia.org/wiki/Core_rope_memory), som blev lavet ved at man (ofte i hånden) syede trådene ind i eller udenom ferritkernen. Denne variant havde betydeligt større datatæthed end den almindelige, derfor blev den brugt til bl.a. Apollo.

  • 6
  • 1
Martin Zacho

Det er jo et filosofisk spørgsmål om det er en hardware- eller softwarefejl. Hvis fejlen ligger i hvilket bitmønster der er specificeret, vil jeg anse det som en softwarefejl, men hvis det er "strikningen" der er lavet forkert, vil jeg anse det som en hardwarefejl :)

  • 0
  • 0
Christian Provstgaard

Faktisk opstod fejlen fordi Buzz Aldrin afveg fra aftalt procedure/anvendelsesmønster. Det var således en klar fejl 40.

Han lod radar-tracking af kommandomodulet stå tændt selvom tjeklisten foreskrev, at han skulle have slukket den. Dermed blev Computeren overbelastet med opgaver og startede det i artiklen omtalte genstartsmønster.

Buzz indrømmer selv fejlen i sin bog "Magnificent Desolation" og man kan læse om detaljerne på software og hardware i den fremragende supernørdede bog "The Apollo Guidance Computer" af Frank O'Brien (Springer).

Computerfejlen var i øvrigt kun behandlet en gang tidligere i test - til generalprøven ugen inden opsendelse. I denne generalprøve havde flyvelederen fejlagtigt kaldt en "abort mission". De lærte ved efteranalysen, at fejlen alligevel godt kunne tolereres. Uden denne fejl i generalprøven ville de sandsynligvis have kaldt en fejlagtig abort under selve missionen. "The significance of this was lost to no one in the room." (Flyveleder Gene Kranz i hans erindringer "Failure is not an option").

  • 0
  • 0
Log ind eller Opret konto for at kommentere