Ansätze gibt es da ja einige, je nach Anforderung.
Bei Aktiv-Passiv Clustern, wird ein Heartbeat überwacht und wenn der Node mit dem Lead nicht mehr den Anforderungen genügt, bekommt die Software einen Reset verpasst, und ein anderer Node übernimmt den Lead.
Bei Aktiv-Aktiv Clustern kann entweder Synchon gearbeitet werden und die mehrheitlich identischen Ergebnisse entscheiden darüber welches Ergebniss als Fehlerhaft angesehen wird (Luftfahrt). oder es wird Lastverteilend je Node eine andere Aufgabe duchgeführt und pro Node laufen Watchdogs und Selbsttestroutinen.
Bei Raumfahrttauglichen Systemen, wird es noch mal ungleich schwieriger.
Da steht ja nur eine begrenzte Teileauswahl zur Verfügung.
Da fängt man schon an beim Schaltungsdesign Fehler zu vermeiden.
Elkos fallen flach, da im Vakuum das Elektrolyt per Dampfexplosion den Elko zerstören würde.
Alle Bautele werden auf Strahlungsfestigkeit ausgewählt (Abschirmung, Sruckturgröße und Werkstofftechnologie https://de.wikipedia.org/wiki/Silicon-on-Sapphire )
Und die Bauteile müssen in einem erweiterten Temperaturspektrum funktionsfähig sein (oft -55°C bis +150°C)
Es gibt sowohl von der NASA als auch von der ESA PDF Dokumente für freigegebene Bauteile.
Bei Speichern werden selbstkorrektur Möglichkeiten vorgesehen.
Auf Byte Ebene Paritätsbits, Dann ECC Hash für 2 Bit Fehler, Memory RAID (5) für größere Blöcke und doppelte Ausführung, (mirroring) um defekte Bits ersetzen zu können.
Als Backup System kommen auch teilweise diskret aufgebaute Command Sequenzer zum Einsatz, die festverdrahtete Programme abspulen.
Die NASA hat mit HAL/S dann noch eine eigene echtzeitfähige Programmiersprache.
http://www.brouhaha.com/~eric/nasa/h...g_in_hal-s.pdf
Lesezeichen