Autopilot
Autopilot

=== Computersystem ===
Die Hardware eines Autopiloten für ein typisches großes Flugzeug besteht aus fünf 80386-CPUs, dabei ist jede CPU auf einer eigenen Leiterplatte. Die 80386-CPU ist preisgünstig, hat ein ausgereiftes Design und ist durchgetestet. Auf dem 80386 kann ein echter virtueller Computer implementiert werden. Neuere Versionen sind sogar strahlenresistent und für die Verwendung in der Luftfahrt zusätzlich verstärkt. Es wird bewusst auf das sehr alte Design der 80386 zurückgegriffen, da es zuverlässig ist und sein Softwareverhalten ausführlich getestet und beschrieben ist.
Das Betriebssystem des Kunden stellt eine virtuelle Maschine für jeden Prozess zur Verfügung. Die Software des Autopiloten kontrolliert die Elektronik des Computers also immer über den Umweg und nie direkt, stattdessen steuert sie die Softwaresimulation, die auf der 80386-CPU abläuft.
Die meisten schwerwiegenden fehlerhaften Softwareoperationen führen zu einem Systemabsturz der jeweiligen CPU.
Meist läuft auf jeder CPU ein Prozess mit niedriger Priorität, der kontinuierlich den Computer testet.
Prinzipiell läuft jeder Prozess im Autopiloten in identischer Form als Kopie an drei oder mehr Stellen in verschiedenen CPUs ab. Das System entscheidet dann, welche der Ergebnisse akzeptiert werden. Dabei wird der Mittelwert übernommen, wobei extrem abweichende Werte verworfen werden.
Bei einigen Autopiloten kommt als zusätzliches Sicherheitsmerkmal noch ein unterschiedliches Design (englisch design diversity) hinzu. Dabei werden kritische Softwareprozesse nicht nur auf verschiedenen Computern ausgeführt, sondern auf jedem Computer läuft Software, die von verschiedenen Entwicklungsteams erstellt wurde, da es nicht sehr wahrscheinlich ist, dass verschiedene Entwicklungsteams den gleichen Fehler machen.
Wegen der Zunahme der Komplexität der Software und der steigenden Kosten für die Software rücken aber viele Entwicklungsfirmen von dieser Sicherheitsvorkehrung durch Diversität ab.