Was hindert einen Verkehrsjet daran, elektronisch "zurückzusetzen", wie es ein Computer manchmal tut?

Ich hatte in den letzten Jahren Flugangst, und eine der Arten, wie sich diese irrationale Phobie manifestiert, ist die Besorgnis über das Flugzeug, das mitten in der Luft kreist: Triebwerke gehen aus, Steuergeräte schalten ab usw.

Gelegentlich stürzt ein Computer oder Smartphone ab und startet sich neu, oder im schlimmsten Fall fällt die Stromversorgung oder der Akku aus und das Gerät lässt sich nicht mehr einschalten.

Passiert das jemals mit kommerziellen Jets? Ich erwarte, dass sie elektronisch grundlegend anders verkabelt sind als Computer, so dass ein Systemausfall den Rest nicht beeinflusst, aber ich habe noch nie einen Piloten gefragt.

Nun, es gibt immer noch Beispiele für die Notwendigkeit, ein Flugzeug neu zu starten;) A350: theregister.co.uk/2019/07/25/… und 787: theregister.co.uk/2015/05/01/…
Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
Manchmal tun sie es. Das ist (einer der Gründe), warum Flugzeuge mehr als einen haben.

Antworten (7)

Ich bin Programmierer und Privatpilot, also kann ich vielleicht helfen, einige dieser Ängste zu zerstreuen.

  1. Die Computer, die ein kommerzielles Flugzeug betreiben, sind konzeptionell viel einfacher als der, der Ihr Telefon betreibt. Dies bedeutet eine viel geringere Wahrscheinlichkeit eines Fehlers in der Software, nur weil der Programmierer weniger im Auge behalten muss.

  2. Wenn Ihr Telefon neu startet, gefährdet es niemandes Leben. Das Testen und QA für ein solches Gerät ist also im Grunde das, was das Unternehmen tun möchte. Andererseits werden Computer in der Luftfahrt viel gründlicher getestet, bevor sie zum Fliegen zugelassen werden können.

  3. Analog zu Punkt 1 haben die Computer in einem Flugzeug jeweils nur einen Job. Viele der Abstürze auf einem typischen PC oder Smartphone kommen von verschiedenen Apps, die sich gegenseitig auf die Zehen treten. (Das Betriebssystem soll jede App auseinanderhalten, damit sie das nicht können, aber Punkt 2 gilt auch für Betriebssysteme.)

  4. Das Flugzeug ist kein einzelner Computer, wie Ihr Telefon. Ja, Ihr Telefon verfügt wahrscheinlich über mehrere Prozessoren mit jeweils mehreren Kernen, aber sie sind eng miteinander gekoppelt, um einen Computer zu bilden. Die Computer in einem Flugzeug sind miteinander vernetzt, aber sie sind separate Computer. Wenn Ihr Telefon abstürzt, selbst wenn der Typ, der neben Ihnen sitzt, im selben Netzwerk ist, hat es keine Auswirkungen auf ihn, oder? Wenn der FADEC für ein Triebwerk ausfällt (ein verschwindend seltenes Ereignis, da FADECs konzeptionell zu den einfachsten Computern gehören), wird in ähnlicher Weise nur ein Triebwerk abgeschaltet, ohne dass sich dies auf den Rest des Flugzeugs auswirkt.

  5. Andererseits sind die wirklich wichtigen Computer (zB Fly-by-Wire-Steuerungen) mehrfach redundant. Wenn also einer ausfällt, können die anderen die Lücke füllen. Selbst der Pilot würde es nicht bemerken, außer dem Warnlicht, das im Cockpit aufleuchten würde.

Wenn Sie sehen möchten, was tatsächlich passiert, wenn in einem Flugzeug etwas ausfällt, schauen Sie sich die folgenden Videos an:

Der Pilot flog das Flugzeug von Hand, während er die Avionik abschaltete und neu startete. Der Flug verlief dann normal.

Der Pilot überließ es dem Autopiloten tatsächlich für ein paar Sekunden, nur aus Neugier, wohin es sie bringen würde. Aber als es anfing, mehr zu kippen, als es sollte, schaltete er den Autopiloten aus und übernahm ohne Probleme die manuelle Steuerung.

Der Motor lief weiter, obwohl die gesamte Stromversorgung des gesamten Flugzeugs verloren ging. Er ist sicher gelandet.

Bearbeiten: Nun, gerade vor zwei Stunden, als ich das hier tippe, tauchte zufällig ein weiteres Video eines Flugausfalls in meinem YouTube-Feed auf:

Er schaltete auf seinen Backup-Generator um und hatte außer einem nervigen Heulen in den Kopfhörern keine weiteren Probleme mit dem Flug.

Gibt es einen Grund, warum Sie Spoiler in Ihre Antwort aufgenommen haben?
Ich für meinen Teil mag die Spannung, nicht zu wissen, wie sich jede davon entwickeln würde!
@Valay_17 Nur für den Fall, dass sie sich die Videos selbst ansehen wollten, ohne zu wissen, was passiert.
@HiddenWindshield Ohh, hah, daran habe ich nicht gedacht ... :)
Wenn es hilft, OP, verwenden nationale Infrastrukturen wie Telekommunikationsnetze dieses Konzept der Redundanz selbstverständlich ebenfalls. Verdammt, Stack Overflow nutzt das Konzept der Redundanz – es kann im Falle eines Problems in den schreibgeschützten Modus umschalten. Und das sind nicht einmal sicherheitskritische Anwendungen! Der Vergleich mit Ihrem Heim-PC ist einfach wild daneben.
Punkt 2 und 4 halte ich für ungültig. 2: Programme können sich nicht "auf die Zehen treten", selbst auf einfachem x86 sind sie stark durch den geschützten Modus getrennt, und Sie benötigen einen ring0-Exploit, um dies zu umgehen. Der Kernel für Windows und Linux wird wahrscheinlich mindestens so oft getestet wie der Kernel, der in der Luftfahrt verwendet wird. 4: Ein typischer PC ist auch eine Reihe von "vernetzten" Computern, weit über Ihr Beispiel mit mehreren Kernen hinaus gibt es Controller für alles, viele davon mit Bus-Mastering-Fähigkeiten. Darüber hinaus haben Avioniksysteme strenge Echtzeitanforderungen, unter denen ein typischer PC nicht leidet.
Die Fly-by-Wire-Computer sind nicht nur redundant, sie werden auch mit unterschiedlichen Architekturen gebaut und von verschiedenen Teams programmiert, um die Wahrscheinlichkeit zu minimieren, dass ein Problem alle Computer gleichzeitig betrifft. Der A320 beispielsweise verfügt über zwei Intel FBW-Computer und zwei Motorola FBW-Computer.
@AlphaCentauri - hier auf der Erde müssen wir nicht in einen anderen Prozessraum stochern, um uns "auf die Zehen zu treten" - bitten Sie eine andere App, eine Datei mit fehlerhaften Daten / Dateinamen zu öffnen, oder starten Sie den Browser zur Site mit 0-Tag Zugänglichkeits-API zu weit ausnutzen oder verschieben ... Es gibt viele offizielle IPC-Kommunikationskanäle zwischen Prozessen, die verwendet werden können, um sogar unbeabsichtigt Probleme zu verursachen. Und hier sind die Kosten für das Testen nach Luftfahrtstandards (oder anderen lebenskritischen) Standards für jedes zu testende Allzweck-Betriebssystem zu unerschwinglich (zumindest in der Standardkonfiguration für Verbraucher).
Ein weiterer Grund, der vielleicht nur für den Airbus A380 zutrifft, ist, dass sie Software ausführen, die teilweise formal verifiziert ist, was bedeutet, dass sie mathematisch bewiesenermaßen frei von bestimmten Klassen von Fehlern ist. Ich glaube, sie verwenden einen Mikrokernel namens INTEGRITY-178B , einen DO-178B-kompatiblen RTOS-Mikrokernel.
@AlphaCentauri - Zusätzlich zu dem, was Alexei Levenkov sagte, ist ein PC kein "Satz von vernetzten Computern". Es ist ein Computer mit mehreren Komponenten. Es ist zwar manchmal möglich, dass eine Netzwerkkarte, Festplatte usw. abstürzt, ohne den Rest des Computers zu beeinträchtigen, aber das ist selten. Wenn Ihre Festplatte ausfällt, sollten Sie besser hoffen, dass zu diesem Zeitpunkt nichts aus dem RAM ausgelagert wurde, denn wenn dies der Fall war, wird der Computer Sekunden später einen Bluescreen (oder das Äquivalent) anzeigen. Und wenn einer der Hauptprozessoren ausfällt, ist das für das gesamte System egal.

Bevor wir beginnen, ist es wichtig zu sagen, dass Ihre Besorgnis nicht irrational ist. Wenn dies passieren sollte oder wenn die Steuersysteme Ihres Flugzeugs auf andere Weise gefährlich versagen würden, wäre Ihr Leben wirklich in Gefahr.

Du bist aber nicht der Erste, dem das eingefallen ist. Aus diesem Grund haben wir eine Kategorie von Steuerungssystemen, die wir technisch als sicherheitsrelevant bezeichnen , und es gibt einen ganzen Zweig der Technik namens Sicherheitstechnik, der sich der formalen Bewertung dieser Systeme und dem Versuch widmet, Unfälle zu verhindern. Dazu gehören Flugzeugsteuerungssysteme, aber auch Antiblockiersysteme, medizinische Geräte und alle anderen Systeme, bei denen Personen Schaden nehmen könnten, wenn sie schief gehen. Das Ausmaß, in dem Menschen dadurch geschädigt werden können, wird formal als Safety Integrity Level bewertetbasierend auf Risiko. Das Risiko ist eine Kombination aus der Wahrscheinlichkeit des Ereignisses, der Schwere des Ergebnisses und der Frage, ob die beteiligten Personen Abhilfemaßnahmen ergreifen können, und es wird für jede Art von Fehlverhalten eines sicherheitsbezogenen Systems bewertet.

Beachten Sie, dass diese Bewertung möglicherweise nicht so intuitiv ist, wie Sie denken. Ich habe einmal an einem Spreu- und Fackelspendersystem für Militärflugzeuge gearbeitet. Sie würden denken, dass das Risiko, Gegenmaßnahmen zu unterlassen und der Pilot abgeschossen zu werden, Ihr Hauptrisiko wäre - aber die Sicherheitsbewertung (wir haben eine FMEA verwendet) zeigte, dass der Pilot andere mildernde Optionen wie Panzerung und einen Schleudersitz hatte, abgeschossen zu werden war eine Chance, die sie bereits akzeptiert hatten, als sie den Job annahmen, und das Risiko, dass ein Flugzeug abstürzt und Gebäude trifft, war winzig und etwas, das es bereits gab wurde als Teil einer Luftwaffe institutionell akzeptiert. Das größte Risiko bestand tatsächlich darin, dass das System fehlzündete, während ein Waffenschmied es nachlud, weil sie dann aus nächster Nähe eine Salve von 36 Schrotpatronen an den Kopf bekamen. Der Waffenschmied wollte dieses Risiko nicht eingehen, und es gab keine praktische Möglichkeit, sie zu schützen. Infolgedessen musste unser System standardmäßig nicht auslösen, wenn es Abweichungen gab.

Es gibt viele Möglichkeiten, Zuverlässigkeit zu gewährleisten. Redundanz ist die beliebteste. Sie können mehrere Sensoren an mehreren Stellen haben, sodass das System immer herausfinden kann, was los ist, wenn einer (oder vielleicht mehrere) ausfallen sollte. Es gibt normalerweise mehrere Aktuatoren für wichtige Flugflächen oder mehrere Flugflächen, auf denen das Flugzeug die Kontrolle behalten kann, wenn eine oder mehrere beschädigt sind. Passagierflugzeuge haben in der Regel auch mehrere Triebwerke und mehrere Treibstofftanks, die im Schadensfall voneinander isoliert werden können. In einer Reihe von Fällen kann es mehrere Steuersysteme geben, die über die richtige Aktion "abstimmen", sodass eine fehlerhaft funktionierende Einheit ignoriert wird. Im Extremfall kann sogar jedes Steuerungssystem von einem anderen Softwareteam programmiert worden sein, so dass ein Bug in einem Team Es ist äußerst unwahrscheinlich, dass die Software eines anderen Teams in der Software eines anderen Teams vorhanden ist. Und es können andere Backup-Systeme vorhanden sein, wie z. B. mechanische Steuerungen.

Eine weitere gute mildernde Methode ist das Training. Es ist vollkommen akzeptabel, dass etwas schief geht, wenn die Leute, die es betreiben, in der Lage sind, mit diesem Fehler umzugehen und weiterzumachen. Es ist wichtig, nicht zu unterschätzen, wie gut Menschen sein können. Menschen können auch Fehler verursachen und tun dies auch , also kann Training auch darin bestehen, ihnen zu sagen, „tu das nicht“. Große Flugzeuge reagieren relativ langsam auf Steuerungen, daher kommt es relativ häufig vor, dass Piloten überkorrigieren und die Situation verschlimmern. Bei einigen Verkehrsflugzeugen besteht die Standardreaktion, die den Piloten im Falle einer Instabilität beigebracht wird, darin, den Steuerknüppel loszulassen und dem Flugzeug zu erlauben, sich selbst zu korrigieren.

Es ist erwähnenswert, dass diese beiden Faktoren der Grund dafür sind, dass die Boeing-737MAX-Katastrophen so schlimm sind, dass es strafrechtliche Anklagen gegen die Menschen einzeln und die Organisation insgesamt geben sollte. Das betreffende System verwendete keine redundanten Eingänge, obwohl sie verfügbar waren; die Auswirkungen einer nicht korrekten Reaktion des Systems wurden weder bewertet noch gemindert; und die Besatzung wurde nicht darin geschult, wie sie mit ihrem Versagen umgehen sollte, noch wurde ihnen nicht einmal gesagt, dass es existierte. In Großbritannien gibt es das Verbrechen des „Corporate Totschlags“, um genau diese Art von Versäumnissen zu verfolgen.

Das andere Element zu all dem ist jedoch die Qualität , sodass Sie versuchen, sicherzustellen, dass die Systeme gar nicht erst schief gehen. Die Zuverlässigkeit von Software hängt fast ausschließlich von der Anzahl der Überprüfungen und Tests ab, die stattfinden. Ich arbeite derzeit an Software für wissenschaftliche Geräte, und ich schätze, dass ich etwa 10-20 % meiner Entwicklungszeit für Tests aufwende. PCs und Mobiltelefone werden ungefähr gleich sein. Als ich an Automobil- und Luft- und Raumfahrtsystemen arbeitete, war dies völlig umgekehrt – wir schätzten, dass wir etwa 5-10 % unserer Zeit für das Programmieren, 10-20 % unserer Zeit für das Design und den Rest unserer Zeit für das Überprüfen und Testen aufwenden mussten .

Die Änderungskontrolle ist auch radikal stärker eingeschränkt. Microsoft kann ein Upgrade veröffentlichen und dann in den wenigen Fällen, in denen es sich schlecht benimmt, Schadensbegrenzung betreiben und gleichzeitig ein paar zusätzliche Funktionen einschleichen. In der sicherheitsrelevanten Entwicklung ändert man jedoch keine einzige Codezeile ohne formelle Zustimmung, dass (a) jeder versteht, was diese Änderung bewirken wird, (b) dass diese Änderung diesen Fehler behebt und nichts anderes ändert . und (c) dass diese Änderung überhaupt notwendig ist. Viele Bug-Triage-Sitzungen beinhalten, dass wir Bugs entdecken, bei denen wir schließlich entscheiden, dass die Auswirkungen des Bugs gering sind (vielleicht schalten wir zum Beispiel 10 ms später eine Warnleuchte ein), aber das Risiko, den Bug zu beheben, könnte möglicherweise hoch sein, wenn Wir haben es zufällig falsch verstanden, daher ist es sicherer, dass dieser triviale Fehler in der Nähe bleibt.

Wie uns der Fall Boeing-737MAX zeigt, sind all diese Prozesse nur einen Dreck wert, wenn Menschen sie befolgen. Die Prozesse existieren jedoch und sie sind Best Practice in einer Branche mit Zehntausenden von Ingenieuren weltweit, die international viele formale Standards hat, um dies zu etablieren. Die Nichteinhaltung dieser Standards ist fast per Definition grobe Fahrlässigkeit, und die meisten Länder haben Gesetze, die die strafrechtliche Verfolgung von Personen und Unternehmen erlauben, die in diesem Maße fahrlässig handeln. Die meisten Ingenieure möchten ohnehin gute Arbeit leisten; Aber die Gesetze stellen sicher, dass eine Organisation als Ganzes ehrlich bleibt und keine Abstriche macht.

Sehr gute Antwort. Wenn Sie Zeit haben, könnten Sie ein oder zwei Sätze darüber ausarbeiten, wie die eigentlichen Prozesse der Software- und Hardwareentwicklung für sicherheitskritische Systeme streng definiert sind, um die Sicherheit des Endprodukts zu gewährleisten, z. B. wie in IEC 61508 und dann in domänenspezifischen Normen. Tatsächlich einen erprobten, systematischen, dokumentierten Prozess zu haben , der sicherstellt, dass Anforderungen erfüllt, Spezifikationen befolgt, Reviews und Tests sichergestellt werden etc., ist der entscheidende Unterschied zur allgemeinen Produktentwicklung.
@Peter-ReinstateMonica Danke. Alles sehr wahr, natürlich. Ich war besorgt, dass ich zu lange so weitergemacht hatte! :)
Es könnte erwähnenswert sein, dass der Test-/Qualitätsprozess in vielen Fällen Unabhängigkeit von dem Team erfordert, das den Code tatsächlich implementiert hat. (Sicher wahr für DO-178 und DO-254).
"Das größte Risiko bestand tatsächlich darin, dass das System fehlzündete, während ein Waffenschmied es nachlud, weil sie dann aus nächster Nähe eine Salve von 36 Schrotpatronen auf den Kopf bekamen" - Warum stand der Waffenschmied in der Reihe des Leuchtsignalspenders? Feuer beim Nachladen?
@Vikki Das Design des Spenders ist im Grunde ein 6x6-Rohrraster in einem rechteckigen Rahmen. Eine Fackel- oder Spreupatrone wird in jedes Loch gesteckt, und dann steckt der Waffenschmied den beladenen Rahmen auf die Montageplatte, die die Zündkontakte hat. Dies bedeutet zwangsläufig, dass ihm 36 bewaffnete Röhren gegenüberstehen, wenn er sie nach Hause schiebt.
@Graham: Das scheint ... nicht das beste Design zu sein.
@Vikki Es ist das einzige praktische Design, wenn man bedenkt, wie die Dinge abgefeuert werden müssen. Und wie ich in der Post sagte, ist es sicher genug, wenn Sie verdammt sicher sind, dass die Zündkontakte nicht aktiv sein können, wenn sie es tun.

Ihre Bedenken sind begründet und gerechtfertigt. Ein Herunterfahren oder Neustarten mitten in der Luft wäre für ein Verkehrsflugzeug katastrophal. Aus diesem Grund haben die Ingenieure die Systeme so konzipiert, dass dieses Szenario praktisch unmöglich ist.

Elektrische Energie

Ein Verkehrsflugzeug hat mehrere elektrische Energiequellen. Jedes Strahltriebwerk hat einen eingebauten Generator. Wenn sich die Turbine dreht, wird Strom erzeugt. Jeder Generator kann unabhängig voneinander abgeschaltet werden, falls ein Problem auftritt. Die meisten Flugzeuge haben auch eine Auxiliary Power Unit oder APU. Die APU kann im Notfall gestartet werden, um das Flugzeug mit elektrischer und hydraulischer Notstromversorgung zu versorgen, wie es beim berühmten Hudson Riving Landing der Fall war .

Wenn alles ausfällt (zum Beispiel wenn dem Flugzeug der Treibstoff ausgeht), kann begrenzte elektrische Energie durch Windmilling bereitgestellt werden, entweder unter Verwendung der Ram Air Turbine (zB Boeing 777) oder durch Windmilling der Turbinen selbst (zB Boeing 747) als Flugzeug gleitet langsam auf einen Landeplatz zu.

Dann ist da natürlich noch der Akku, der immer geladen ist. Es kann in Notfällen eine begrenzte Leistung bereitstellen.

Computers

Alle Flugzeuge sind mit mehreren Flugsteuerungscomputern ausgestattet. Die Einheiten werden von verschiedenen Herstellern, auf verschiedenen CPU-Architekturen und verschiedenen Quellcodes gebaut. Die Wahrscheinlichkeit, dass alle Einheiten gleichzeitig aufgrund eines Fehlers oder Defekts ausfallen, ist sehr gering. Im unwahrscheinlichen Fall, dass eine der Einheiten ausfällt, können die Piloten diese Einheit vom Rest des Systems trennen.

Zum Beispiel hat der Airbus A320 2 Elevator Aileron Computer, 3 Spoiler Elevator Computer und 2 Flight Augmentation Computer. Jede Einheit kann bei einer Fehlfunktion deaktiviert werden.

Mechanische Verbindung

Für den außergewöhnlich unwahrscheinlichen Fall, dass die Stromversorgung vollständig ausfällt, sind bestimmte Flugsteuerungen mechanisch mit dem Cockpit verbunden und können mit menschlicher Kraft bedient werden. Zum Beispiel besteht das Notfallverfahren bei einem kompletten Flugcomputerausfall im Airbus A320 darin, das Flugzeug nur mit Ruderschlägen, dem Höhenruder-Trimmrad und Drosseln zu landen. Das hat es in der Geschichte noch nie gegeben.

Darf ich auch hinzufügen, dass lange Ozeanflüge wie London nach New York ETOPS-zertifiziert sein müssten (Flugzeug, Besatzung, Fluggesellschaft usw.). Dies stellt sicher, dass es zu jedem Zeitpunkt des Fluges immer einen Ort für eine Notlandung gibt, falls dennoch etwas schief geht.

als jemand, der Softwaretests an einem unwichtigen (Klasse D, wird gleich erklären) System für ein Flugzeug durchgeführt, das zum Landen auf zivilen Flughäfen zugelassen werden soll: Im Flugzeug gibt es eine strenge Hierarchie, was Softwarefunktionen bedeuten; sie sind in DO-178B aufgeführt .

  • Systeme der Klasse A gelten als „fehlerfrei“; Sie sind sehr gut getestet. Diese Systeme sind nicht für einen Neustart vorgesehen, und sie werden normalerweise bei einem Fehlerzustand nicht ausgeschaltet oder andere zusätzliche Maßnahmen ergriffen. (z. B. wenn eine Triebwerkssteuerung die Verbindung zum Flugdeck verliert, bleibt sie einfach in ihrer letzten Triebwerkseinstellung). Klasse-A-Systeme werden unter einem hohen Maß an Tests und strenger Prüfung entwickelt.
  • ...
  • Für das System (Klasse D), das ich getestet habe, lautete die Hauptlogik: "Wenn ein Fehler vorliegt, senden Sie eine Fehlermeldung und holen Sie sich dann aus dem Netzwerk, halten Sie an und warten Sie auf einen Reset vom Cockpit aus. Sogar Klasse-D-Systemtests beinhalten Testverfahren die nicht oft verwendet werden (z. B. White-Box-Tests mit Hardware-Emulatoren) Dies ist immer noch die am besten getestete Software, die ich in meinem Leben gesehen habe.

Die Logik hier ist, dass ein unwichtiger Systemabsturz niemals die wichtige Systemfunktion beeinträchtigen wird (der Pilot kann wählen, wann er diese ausruhen lässt). Die meisten Systeme in einem Flugzeug sind doppelt redundant. Die verwendeten Mikrocontroller und die HW-Architektur sind so konzipiert, dass einfache Fehler auf einer Platine ihre Auswirkungen begrenzen. Das Hauptnetzwerk (z. B. AFDX) ist ebenfalls redundant, und es werden Maßnahmen in der Schnittstelle getroffen, dass wild laufende Software ihre Grenzen bei der Verwendung der Busse nicht überschreitet.

Normale Reset-Prozeduren sind im Hinblick darauf sicher, das Flugzeug immer in einem kontrollierbaren Zustand zu belassen. Ein Beispiel für ein falsches Reset-Verfahren – das Abschalten beider Flugsteuerungscomputer, was während des Flugs nicht erlaubt ist, weil der Pilot mit den Ergebnissen der Standardmethode zum Zurücksetzen der Computer nicht zufrieden war – war Air Asia Flug 8501 .

Gelegentlich stürzt ein Computer oder Smartphone ab und startet sich neu

Dies kann zwei Gründe haben: einen Softwarefehler oder einen Hardwarefehler. Beides kann dazu führen, dass die CPU die Verarbeitung neuer Anweisungen stoppt ( dh ein "Hängen" ) oder die Maschine veranlasst, sich selbst neu zu starten. Letzteres steht kurz vor einem Stillstand, da das Betriebssystem erkennt, dass es nicht normal weiterarbeiten kann, und einen Hardware-Neustart auslöst.

Die möglichen Ursachen sind endlos, aber die Ergebnisse sind gleich: Der Prozessor kann keine neuen Operationen ausführen und arbeitet daher nicht normal weiter. Dies ist suboptimal, wenn Menschenleben von seinem kontinuierlichen Funktionieren abhängen.

Hardwarefehler können durch eingeschränkte Funktionalität, durch Beschädigung oder Verschleiß verursacht werden. Zum Beispiel ein Netzteil, das nicht immer die erforderliche Leistung liefern kann, oder ein Speichermodul, das durch elektrostatische Entladung beschädigt wird , wodurch zufällige Bits „umkippen“ (eine 1 wird unbeabsichtigt als 0 gelesen oder umgekehrt).

Softwarefehler werden durch Programmierfehler oder Installationsfehler verursacht. Eine saubere Betriebssysteminstallation (Windows, Linux, MacOS, ...) auf Ihrem Computer oder Smartphone mit gut funktionierender Hardware, sofern die Hardware vom Betriebssystem unterstützt wird und die entsprechenden Treiber installiert sind, damit das Betriebssystem ordnungsgemäß mit dem Betriebssystem kommunizieren kann Hardware, stürzt nicht ab . Sicher, vor Jahrzehnten neigten einige Betriebssysteme dazu, abzustürzen, nachdem sie eine gewisse Zeit in Betrieb waren, aber jetzt ist 2020. Diese Probleme wurden alle von modernen Betriebssystemen ausgebügelt.

Das Problem mit Hardware und Software für Endverbraucher ist, dass sie nicht lebenswichtig und nicht redundant ist, und die Leute möchten in der Lage sein, zufällige Anwendungen auf ihren Geräten zu installieren, die von zufälligen Softwareentwicklern vertrieben werden. Sie werden keinen Piloten sehen, der den App Store auf Ihrem Airbus in der Luft öffnet und die neue Christmas Lights-App installiert, um die Kabinenbeleuchtung festlich blinken zu lassen, was zufällig die Kraftstoffpumpen stoppt, weil der Entwickler es nie im Flug getestet hat.

Wie also verhindern Flugzeughersteller, dass dies geschieht:

  • Redundanz: Wenn ein System stoppt (oder seine Ausgänge außerhalb gültiger Werte liegen), muss ein Reservesystem übernehmen.
  • Spezifität: Im Gegensatz zu Allzweckcomputern haben die Geräte in einem Flugzeug ein ganz bestimmtes Ziel und werden für dieses Ziel gebaut, installiert, konfiguriert und getestet.
  • Testen: Möglicherweise bringen Sie Ihren Computer oder Ihr Telefon zur Wartung in die Werkstatt, wenn es anfängt, sich unregelmäßig zu verhalten. Das könnte für diese Hardware zu spät sein, aber normalerweise können sie Ihre Bilder wiederherstellen. Kaufen Sie neue Hardware und/oder installieren Sie das Betriebssystem neu und Sie können loslegen. Flugzeuge werden regelmäßiger überprüft.
Ich liebe es, diesen Stack Exchange zu lesen, aber ich weiß nicht viel über Flugzeuge. Ich weiß jedoch ein oder zwei Dinge über Computer, daher hoffe ich, dass diese Antwort nützlich und themenbezogen ist.
Moderne Betriebssysteme wie Windows werden in Flugcomputern nicht verwendet. Linux könnte verwendet werden, aber ich denke, es ist selten (wegen der Modifikationen, die erforderlich sind, um Avionikstandards zu erfüllen). Häufiger sind LynxOS oder VxWorks, hochspezialisierte Systeme, die für den Betrieb auf hochzuverlässigen Avionik- und anderen Industriesystemen entwickelt wurden und keine traditionellen Betriebssysteme sind, wie Sie es von Windows oder Linux erwarten würden.
@Ron das war absolut nicht das, was ich andeuten wollte, sorry wenn ja! "Neustart der Engine-Steuerung für Windows Update..."
@RonBeyer - Abgesehen vom VxWorks-Zertifikat wird die Greenhills-Integrität auch in sicherheitskritischen Avionikanwendungen verwendet. vxWorks ist auch in der Avionik für unternehmenskritische Anwendungen sehr beliebt.
Ein Desktop neigt dazu, bei einem Absturz hängen zu bleiben, sodass der Benutzer / Entwickler dies sehen und möglicherweise einige Informationen darüber erhalten kann, warum er abgestürzt ist. (Oder zumindest die Tatsache, dass es abgestürzt ist). Wenn Sie wie viele eingebettete Systeme andere Anforderungen haben, die Vorrang haben (weiter funktionieren), fügen Sie einen Watchdog-Timer hinzu, der das System neu startet, wenn das Betriebssystem es nicht jede Millisekunde oder was auch immer anstößt. Eingebettete Systeme brauchen in der Regel nicht lange zum Hochfahren. Ein klassisches Beispiel für etwas Ähnliches ist Hat der 1202-Fehler und der damit verbundene Neustart eine Katastrophe bei der Landung von Apollo 11 verhindert?

Speziell in Bezug auf das Power Cycling (im Gegensatz zu softwarebasierten Fehlern im Allgemeinen, die andere Antworten sehr gut detailliert haben), ist dies überhaupt kein Problem. Im Gegensatz zu einem typischen PC oder Smartphone, das Zeit braucht, um sich wieder einzuschalten, und bei einem Stromausfall Daten verlieren können, sind die Steuersysteme in einem Flugzeug normalerweise so konzipiert, dass sie den vollständigen Betrieb wieder aufnehmen, sobald die Stromversorgung wiederhergestellt ist.

Betrachten Sie es eher als Ihren Kühlschrank-Innentemperaturmonitor als als Ihren PC. Wenn Sie es aus- und wieder einschalten, funktioniert es sofort wieder, als wäre nichts passiert.

Insbesondere abgesehen vom Autopiloten und dem Navigationssystem ist so gut wie keines der Systeme tatsächlich auf irgendeine Form von Speicher angewiesen, nicht einmal auf RAM. Sie verarbeiten Echtzeit-Sensordaten. Wenn sie zurückgesetzt werden, gehen keine Daten verloren, weil sie ohnehin nur mit Daten arbeiten, die in Echtzeit erfasst werden. Und ein sich schlecht benehmender Autopilot oder NAV lässt das Flugzeug nicht vom Himmel fallen, es bedeutet nur, dass die Verantwortung dafür, wohin Sie fliegen und wo Sie sich jetzt befinden, vom Computer auf den Piloten übergeht.
@JörgWMittag Also streng genommen haben alle RAM, auch wenn es nur ein paar Kilobyte sind. Es ist zwar möglich, ein Programm ohne RAM auszuführen, aber selbst für diese Zwecke ist es zu begrenzt. Berechnungen mit Echtzeit-Sensordaten oder sogar nicht triviale Arithmetik erfordern mehr als nur ein paar Allzweckregister.

Neustarts können manchmal auch akzeptabel sein, wenn Sie schnell neu starten können, ohne wichtige Informationen zu verlieren. Dies geschah im Rahmen der Landung von Apollo 11, als sie den 1202-Alarm hatten :

Er erkannte, dass 1202 ein Code war, der bedeutete, dass der Leitcomputer an Bord des Landungsboots mit Aufgaben überlastet wurde. Die Programmierer hatten erwartet, dass diese Überlastung eines Tages auftreten könnte, und hatten daher einen systeminternen Aspekt eingerichtet, der automatisch einen schnellen Neustart und dann eine Speicherwiederherstellung durchführt, um zu versuchen, den Computer wieder in Gang zu bringen.

aber für die Fly-by-Ethernet-Steuerungen, die die eigentlichen Steuerflächen bedienen, würde dies überhaupt nicht gelten, oder?
Wenn ein Fehler erkannt wird, ist es in vielen Fällen besser, wenn das System während des Neustarts vorübergehend außer Betrieb ist, anstatt in einem fehlerhaften Zustand festzustecken.
@Fattie sicher würde es. Besser einen Moment nichts tun und dann das Richtige tun, als gleich das Falsche zu tun.
Dies scheint eher ein Kommentar zu sein, da es wirklich keinen Vergleich zwischen einem alten Computer mit Magnetkernspeicher und Seilspeicher und außergewöhnlich begrenzten Rechenanforderungen und einer komplexen modernen Maschine mit Hunderten von Mikroprozessoren mit unglaublich komplexen ISAs und Millionen von eingeschriebenen Codezeilen gibt mehrere Programmiersprachen.
@forest: Moderne eingebettete Systeme haben immer noch einen Watchdog-Timer, der neu startet, wenn das System abstürzt, anstatt nur wie ein Desktop dort zu sitzen, damit ein Benutzer den Fehlercode aufschreiben kann (oder bemerkt, dass es überhaupt abgestürzt ist). Aber ja, das Zitat in dieser Antwort lässt es wie ein primitives Garbage-Collection-Schema klingen. Die Apollo 11 AGC hatte jedoch einen Watchdog-Timer (sie nannten ihn "Nightwatchman": P, und war eines der wenigen Dinge, die einen Neustart auslösen konnten: Wie behandelte der Apollo-Leitcomputer Paritätsbitfehler? )