¿Qué impide que un avión comercial se "restablezca" electrónicamente como lo hace a veces una computadora?

He tenido miedo de volar durante los últimos años y una de las formas en que se manifiesta esta fobia irracional es la preocupación por el ciclo de energía del avión en el aire: los motores se apagan, el equipo de control se apaga, etc.

Ocasionalmente, una computadora o un teléfono inteligente fallará y se reiniciará solo, o en el peor de los casos, la fuente de alimentación o la batería fallarán y el dispositivo no se volverá a encender.

¿Sucede esto alguna vez con aviones comerciales? Espero que estén conectados electrónicamente de una manera fundamentalmente diferente a las computadoras, de modo que una falla del sistema no afecte al resto, pero nunca le pedí a un piloto.

Bueno, todavía hay ejemplos de la necesidad de "reiniciar un avión" ;) A350: theregister.co.uk/2019/07/25/… y 787: theregister.co.uk/2015/05/01/…
Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
A veces lo hacen. Esa es (una de las razones) por la que los aviones tienen más de uno.

Respuestas (7)

Soy programador y piloto privado, así que tal vez pueda ayudar a disipar algunos de esos temores.

  1. Las computadoras que manejan un avión comercial son conceptualmente mucho más simples que la que maneja su teléfono. Esto significa muchas menos posibilidades de que se produzca un error en el software, simplemente porque el programador tiene menos que hacer un seguimiento.

  2. Si su teléfono se reinicia, no pone en peligro la vida de nadie. Por lo tanto, las pruebas y el control de calidad de dicho dispositivo son básicamente lo que la empresa quiera hacer. Por otro lado, las computadoras en la aviación se prueban mucho más a fondo antes de que puedan ser certificadas para volar.

  3. De manera similar al punto 1, las computadoras en un avión tienen cada una solo un trabajo. Muchos de los bloqueos en una PC o teléfono inteligente típicos provienen de diferentes aplicaciones que se pisan los dedos de los pies. (Se supone que el sistema operativo debe mantener cada aplicación separada para que no puedan hacer eso, pero el punto 2 también se aplica a los sistemas operativos).

  4. El avión no es una sola computadora, como su teléfono. Sí, es probable que su teléfono tenga múltiples procesadores, cada uno con múltiples núcleos, pero están estrechamente acoplados para formar una computadora. Las computadoras en un avión están conectadas en red, pero son computadoras separadas. Si su teléfono falla, incluso si el tipo que está sentado a su lado está en la misma red, no lo afecta, ¿verdad? Del mismo modo, si el FADEC de un motor falla (algo extremadamente raro, porque los FADEC se encuentran conceptualmente entre las computadoras más simples), todo lo que sucederá es que un motor se apagará, sin efecto en el resto del avión.

  5. Por otro lado, las computadoras realmente importantes (como los controladores fly-by-wire) tienen múltiples redundancias. Entonces, si uno falla, el resto de ellos puede tomar el relevo. Incluso el piloto no se daría cuenta excepto por la luz de advertencia que se mostraría en la cabina.

Si quieres ver lo que realmente sucede cuando las cosas fallan en un avión, echa un vistazo a los siguientes videos:

El piloto voló el avión a mano mientras apagaba y reiniciaba la aviónica. A continuación, el vuelo se desarrolló con normalidad.

El piloto en realidad dejó que el piloto automático lo tuviera durante unos segundos, solo por curiosidad sobre a dónde los llevaría. Pero una vez que comenzó a ladearse más de lo que se suponía, desactivó el piloto automático y asumió el control manual sin problemas.

El motor siguió funcionando a pesar de perder toda la energía eléctrica de todo el avión. Aterrizó con seguridad.

Editar: Bueno, hace solo dos horas mientras escribo esto, apareció otro video de una falla en vuelo en mi feed de YouTube:

Cambió a su generador de respaldo y, aparte de un molesto zumbido en los auriculares, no tuvo ningún otro problema con el vuelo.

¿Alguna razón por la que incluyeste spoilers en tu respuesta?
¡A mí, por mi parte, me gusta el suspenso de no saber cómo resultaría cada uno de ellos!
@ Valay_17 En caso de que quisieran ver los videos ellos mismos sin saber qué sucede.
@HiddenWindshield Ohh, no pensé en eso ... :)
Si ayuda, OP, la infraestructura nacional como las redes de telecomunicaciones también utiliza este concepto de redundancia, como algo natural. Diablos, Stack Overflow utiliza el concepto de redundancia: puede pasar al modo de solo lectura en caso de un problema. ¡Y esas ni siquiera son aplicaciones críticas para la seguridad! La comparación con la PC de su hogar está completamente fuera de lugar.
Creo que los puntos 2 y 4 no son válidos. 2: Los programas no pueden "pisarse los pies unos a otros", incluso en x86 simple, están fuertemente separados por el modo protegido, y necesitaría un exploit ring0 para evitar esto. El kernel para Windows y Linux probablemente se prueba al menos tanto como el kernel utilizado en la aviación. 4: Una PC típica también es un conjunto de computadoras "en red", mucho más allá de su ejemplo de múltiples núcleos, hay controladores para todo, muchos con capacidades de masterización de bus. Además, los sistemas de aviónica tienen estrictos requisitos de tiempo real que una PC típica no sufre.
Las computadoras fly-by-wire no solo son redundantes, sino que están construidas con diferentes arquitecturas y programadas por diferentes equipos para minimizar la posibilidad de que un problema afecte a todas las computadoras a la vez. El A320, por ejemplo, tiene dos computadoras Intel FBW y dos computadoras Motorola FBW.
@AlphaCentauri: aquí en la Tierra no necesitamos hurgar en otro espacio de proceso para "pisarnos los dedos de los pies": solicite a otra aplicación que abra un archivo con datos/nombre de archivo incorrectos o inicie el navegador en el sitio con 0 días explotar o empujar la API de accesibilidad demasiado lejos... Hay muchos canales de comunicación oficiales de IPC entre procesos que pueden usarse para causar problemas incluso sin querer. Y aquí el costo de las pruebas para la aviación (o cualquier estándar crítico para la vida) es demasiado prohibitivo para que cualquier sistema operativo de propósito general se pruebe para calificar (al menos en la configuración predeterminada del consumidor).
Una razón adicional, que puede aplicarse solo al Airbus A380, es que ejecutan un software que está parcialmente verificado formalmente, lo que significa que está matemáticamente probado que está libre de clases específicas de errores. Creo que usan un microkernel llamado INTEGRITY-178B , un microkernel RTOS compatible con DO-178B.
@AlphaCentauri: además de lo que dijo Alexei Levenkov, una PC no es un "conjunto de computadoras en red". Es una computadora con múltiples componentes. Cierto, a veces es posible que una tarjeta de red, disco duro, etc. se bloquee sin afectar el resto de la computadora, pero esto es raro. Si su disco duro falla, es mejor que espere que no se haya cambiado nada de la RAM en ese momento, porque si fue así, la computadora mostrará una pantalla azul (o el equivalente) segundos después. Y si uno de los procesadores principales falla, eso es todo para todo el sistema, independientemente.

Antes de comenzar, es importante decir que su preocupación no es irracional. Si esto sucediera, o si los sistemas de control de su avión funcionaran mal de manera peligrosa, su vida estaría verdaderamente en peligro.

Sin embargo, no eres la primera persona que ha pensado en esto. Por esta razón, tenemos una categoría de sistemas de control que describimos técnicamente como relacionados con la seguridad , y existe toda una rama de la ingeniería llamada ingeniería de seguridad dedicada a evaluar formalmente estos sistemas y tratar de prevenir accidentes. Esto incluye los sistemas de control del avión, pero también los frenos antibloqueo, los dispositivos médicos y cualquier otro sistema en el que las personas puedan resultar dañadas si fallan. El grado en que esto puede dañar a las personas se evalúa formalmente como un Nivel de integridad de la seguridad.basado en el riesgo. El riesgo es una combinación de qué tan probable es el evento, qué tan malo será el resultado y si las personas involucradas pueden tomar alguna medida de mitigación, y se evalúa por cada forma en que un sistema relacionado con la seguridad puede comportarse mal.

Tenga en cuenta que esta evaluación puede no ser tan intuitiva como cree. Una vez trabajé en un sistema dispensador de bengalas y bengalas para aviones militares. Usted pensaría que el riesgo de no disparar las contramedidas y que el piloto sea derribado sería su mayor riesgo, pero la evaluación de seguridad (usamos un FMEA) mostró que el piloto tenía otras opciones de mitigación, como armadura y un asiento eyectable, ser derribado es una posibilidad que ya habían aceptado cuando aceptaron el trabajo, y el riesgo de que un avión se estrellara contra edificios era minúsculo y algo que ya había ocurrido. aceptado institucionalmente como parte de tener una fuerza aérea. El riesgo más serio era en realidad que el sistema fallara mientras un armero lo recargaba, porque entonces recibirían una andanada de 36 cartuchos de escopeta en la cabeza a quemarropa. El armero no se inscribió para correr ese riesgo, y no había forma práctica de protegerlos. Como resultado, nuestro sistema tenía que no activarse de forma predeterminada si había alguna discrepancia.

Hay muchas maneras de garantizar la fiabilidad. La redundancia es la más popular. Puede tener múltiples sensores en múltiples ubicaciones, por lo que el sistema siempre puede averiguar qué sucede si uno (o más, quizás) falla. Por lo general, hay múltiples actuadores para superficies de vuelo importantes, o múltiples superficies de vuelo en las que la aeronave puede mantener el control si una o más están dañadas. Los aviones de pasajeros generalmente también tienen múltiples motores y múltiples tanques de combustible que pueden aislarse entre sí en caso de daño. En varios casos, puede haber múltiples sistemas de control que "voten" sobre la acción correcta, por lo que se ignorará una unidad que no funcione correctamente. En el caso extremo, cada sistema de control puede incluso haber sido programado por un equipo de software diferente, de modo que un error en un equipo Es extremadamente improbable que el software de s esté presente en el software de otro equipo. Y puede haber otros sistemas de respaldo, como controles mecánicos.

Otro buen método de mitigación es el entrenamiento. Es perfectamente aceptable que las cosas salgan mal si las personas que lo operan son capaces de lidiar con esa falla y seguir adelante. Es importante no subestimar lo buenas que pueden ser las personas. Las personas pueden y también causan fallas, por lo que el entrenamiento también puede ser un caso de decirles "no hagas eso". Los aviones grandes son relativamente lentos para responder a los controles, por lo que es relativamente común que los pilotos puedan corregir en exceso y empeorar las cosas. Para algunas aeronaves comerciales, la respuesta estándar que se les enseña a los pilotos en caso de inestabilidad es soltar la palanca y permitir que la aeronave se corrija sola.

Vale la pena señalar que estos dos factores explican por qué los desastres del Boeing-737MAX son tan graves, hasta el punto de que deberían presentarse cargos penales contra las personas individualmente y contra la organización colectivamente. El sistema en cuestión no utilizaba entradas redundantes, aunque estaban disponibles; no se evaluó ni mitigó el impacto de que el sistema no respondiera correctamente; y la tripulación no recibió capacitación sobre cómo lidiar con su falla, ni siquiera se les dijo que existía. En el Reino Unido, existe el delito de "homicidio corporativo" para perseguir exactamente este tipo de fallas.

Sin embargo, el otro elemento de todo esto es la calidad , por lo que debe intentar asegurarse de que los sistemas no funcionen mal en primer lugar. La confiabilidad del software depende casi por completo de la cantidad de revisiones y pruebas que se realicen. Actualmente estoy trabajando en software para equipos científicos y calculo que dedico alrededor del 10-20 % de mi tiempo de desarrollo a las pruebas. Las PC y los teléfonos móviles serán más o menos lo mismo. Cuando trabajé en sistemas automotrices y aeroespaciales, esto se invirtió por completo: calculábamos que dedicábamos entre el 5 y el 10 % de nuestro tiempo a la codificación, entre el 10 y el 20 % de nuestro tiempo al diseño, y el resto del tiempo se dedicaba a revisar y probar. .

El control de cambios también está radicalmente más bloqueado. Microsoft puede lanzar una actualización y luego controlar los daños en los pocos casos en los que se comporta mal, e introducir algunas características adicionales al mismo tiempo. Sin embargo, en el desarrollo relacionado con la seguridad, no cambia una sola línea de código sin una aprobación formal de que (a) todos entienden lo que hará ese cambio, (b) que este cambio corrige este error y no cambia nada más , y (c) que este cambio es incluso necesario. Muchas sesiones de clasificación de errores implican que detectemos errores en los que eventualmente decidimos que el impacto del error es pequeño (tal vez 10 ms después encendamos una luz de advertencia, por ejemplo), pero el riesgo de intentar corregir el error podría ser alto si nos equivocamos, por lo que es más seguro que este error trivial se quede.

Como nos muestra el caso del Boeing-737MAX, todos estos procesos solo valen un carajo si la gente los sigue. Sin embargo, los procesos existen y son las mejores prácticas en una industria de decenas de miles de ingenieros en todo el mundo que tiene muchos estándares formales a nivel internacional para establecer esto. El incumplimiento de estos estándares es casi por definición negligencia grave, y la mayoría de los países tienen leyes que permiten el enjuiciamiento de personas y empresas que son negligentes en este grado. A la mayoría de los ingenieros les gustaría hacer un buen trabajo de todos modos; pero las leyes aseguran que una organización en su conjunto se mantenga honesta y no tome atajos.

Muy buena respuesta. Si tiene tiempo, podría elaborar una frase o dos sobre cómo se definen estrictamente los procesos de desarrollo de software y hardware para sistemas críticos de seguridad para garantizar la seguridad del producto terminado, por ejemplo, como en IEC 61508 y luego las normas específicas del dominio. Tener realmente un proceso probado, sistemático y documentado que asegure que se cumplan los requisitos, se sigan las especificaciones, se garanticen revisiones y pruebas, etc. es la diferencia más crucial para el desarrollo general del producto.
@Peter-ReinstateMonica Gracias. Todo muy cierto, por supuesto. ¡Aunque me preocupaba haberme extendido demasiado! :)
Vale la pena señalar que el proceso de prueba/calidad requiere independencia del equipo que realmente implementó el código en muchos casos. (Ciertamente cierto para DO-178 y DO-254).
"El riesgo más grave era en realidad que el sistema fallara mientras un armero lo recargaba, porque entonces recibirían una andanada de 36 cartuchos de escopeta en la cabeza a corta distancia" - ¿Por qué estaba el armero parado en la línea del dispensador de bengalas? disparar mientras se recarga?
@Vikki El diseño del dispensador es básicamente una cuadrícula de tubos de 6x6 en un marco rectangular. Se coloca un cartucho de bengala o chaff en cada orificio, y luego el armero conecta el marco cargado en el panel de montaje que tiene los contactos de disparo. Inevitablemente, esto significa que tiene 36 tubos armados frente a él mientras lo desliza hacia su lugar.
@Graham: Parece que... no es el mejor diseño.
@Vikki Es el único diseño práctico, dada la forma en que necesita que se disparen las cosas. Y como dije en la publicación, es lo suficientemente seguro si te aseguras de que los contactos de disparo no puedan estar activos cuando lo estén haciendo.

Sus preocupaciones son razonables y justificadas. Un apagado o reinicio en pleno vuelo sería catastrófico para un avión. Es por eso que los ingenieros diseñaron los sistemas de tal manera que este escenario es prácticamente imposible de suceder.

Energía eléctrica

Un avión de pasajeros tiene múltiples fuentes de energía eléctrica. Cada motor a reacción tiene un generador incorporado. Cuando la turbina gira, se genera electricidad. Cada generador se puede apagar de forma independiente en caso de que surja un problema. La mayoría de los aviones también tienen una unidad de energía auxiliar o APU. La APU se puede iniciar en caso de emergencia para proporcionar energía eléctrica e hidráulica de respaldo al avión, como se hizo en el famoso Hudson Riving Landing .

Si todo falla (por ejemplo, si el avión se queda sin combustible), se puede proporcionar energía eléctrica limitada mediante molinos de viento, ya sea utilizando la turbina de aire Ram (p. ej., Boeing 777) o mediante el molino de viento de las turbinas mismas (p. ej., Boeing 747), ya que el avión se desliza lentamente hacia un lugar de aterrizaje.

Luego está la batería, por supuesto, que está cargada en todo momento. Puede proporcionar energía limitada en caso de emergencias.

Ordenadores

Todos los aviones vienen con múltiples computadoras de control de vuelo. Las unidades están construidas por diferentes fabricantes, en diferentes arquitecturas de CPU y diferentes códigos fuente. La posibilidad de que todas las unidades fallen al mismo tiempo debido a un error o defecto es muy baja. En el improbable caso de que una de las unidades falle, los pilotos pueden desconectar esa unidad del resto del sistema.

Por ejemplo, el Airbus A320 tiene 2 computadoras de alerón de elevador, 3 computadoras de elevador de spoiler y 2 computadoras de aumento de vuelo. Cada unidad se puede desactivar en caso de mal funcionamiento.

Enlace mecánico

En el caso extraordinario e improbable de que la energía eléctrica se pierda por completo, ciertos controles de vuelo están conectados a la cabina por medios mecánicos y pueden ser operados con fuerza humana. Por ejemplo, el procedimiento de emergencia para una falla completa de la computadora de vuelo en el Airbus A320 es aterrizar la aeronave utilizando nada más que los repiques del timón, la rueda de ajuste del elevador y los aceleradores. Esto nunca ha sucedido en la historia.

También podría agregar que los vuelos oceánicos largos, como Londres a Nueva York, tendrían que estar certificados por ETOPS (avión, tripulación, aerolínea, etc.). Esto garantiza que siempre haya un lugar para el aterrizaje de emergencia en cualquier punto del vuelo si algo sale mal.

como alguien que hizo pruebas de software en un sistema sin importancia (clase D, lo explicaré pronto) para que un avión sea aprobado para aterrizar en aeropuertos civiles: En avión hay una jerarquía estricta sobre qué tipo de funciones de software significan; se enumeran en DO-178B .

  • Se supone que los sistemas de Clase A están "libres de fallas"; están extremadamente bien probados. Estos sistemas no están destinados a reiniciarse y, por lo general, no se apagarán ni realizarán ninguna otra acción adicional ante una condición de error. (por ejemplo, cuando un controlador de motor pierde la conexión con la cabina de vuelo, permanecerá en su última configuración de motor). Los sistemas de Clase A se desarrollan bajo una gran cantidad de pruebas y niveles de escrutinio.
  • ...
  • para el sistema (clase D) que probé, la lógica principal era "si hay un error, envíe un mensaje de error y luego salga de la red, deténgase y espere un reinicio desde la cabina. Incluso las pruebas del sistema Clase D incluyen procedimientos de prueba que no se utilizan con frecuencia (por ejemplo, pruebas de caja blanca con emuladores de hardware) Siguen siendo el software mejor probado que he visto en mi vida.

La lógica aquí es que un accidente de sistemas sin importancia nunca obstaculizará la función de los sistemas importantes (el piloto puede elegir cuándo descansar estos). La mayoría de los sistemas en un avión son doblemente redundantes. Los microcontroladores y la arquitectura HW utilizados están diseñados de manera que las fallas simples en una placa tengan un impacto limitado. La red principal (por ejemplo, AFDX) también es redundante, y se toman medidas en la interfaz para que el software que se ejecuta de forma salvaje no se salga de sus límites al usar los buses.

Los procedimientos normales de reinicio son seguros con respecto a dejar el avión siempre en un estado controlable. Un ejemplo de un procedimiento de reinicio incorrecto (apagar ambas computadoras de control de vuelo, lo que no está permitido mientras se está en el aire porque el piloto no estaba satisfecho con los resultados de la forma estándar de reiniciar las computadoras) fue el vuelo 8501 de Air Asia .

Ocasionalmente, una computadora o un teléfono inteligente se bloquea y se reinicia solo

Esto puede ocurrir por dos motivos: un error de software o un error de hardware. Ambos pueden hacer que la CPU deje de procesar nuevas instrucciones ( es decir, un "bloqueo" ) o que la máquina se reinicie. Este último está cerca de colgarse, porque el sistema operativo detecta que no puede continuar funcionando normalmente y emite un reinicio de hardware.

Las posibles causas son infinitas, pero los resultados se reducen a lo mismo: el procesador no puede ejecutar ninguna operación nueva y, por lo tanto, no puede seguir funcionando con normalidad. Esto es subóptimo si las vidas humanas dependen de su funcionamiento continuo.

Los errores de hardware pueden ser causados ​​por una funcionalidad degradada, por daño o desgaste. Por ejemplo, una fuente de alimentación que no puede entregar la energía requerida en todo momento, o un módulo de memoria que está dañado por una descarga electrostática , lo que hace que los bits aleatorios se "inviertan" (un 1 se lee involuntariamente como un 0 o viceversa).

Los errores de software son causados ​​por errores del programador o errores de instalación. Una instalación limpia del sistema operativo (Windows, Linux, MacOS, ...) en su computadora o teléfono inteligente, con un hardware que funcione bien, dado que el hardware es compatible con el sistema operativo y los controladores apropiados están instalados para que el sistema operativo pueda comunicarse correctamente con el hardware, no se bloqueará . Claro, hace décadas, algunos sistemas operativos eran propensos a fallar después de estar activos durante un cierto período de tiempo, pero ahora estamos en 2020. Todos esos problemas se han solucionado en los sistemas operativos modernos.

El problema con el hardware y el software de nivel de consumidor es que no es crítico para la vida, no es redundante, y la gente quiere poder instalar aplicaciones aleatorias en sus dispositivos, distribuidas por desarrolladores de software aleatorios. No verá a un piloto abrir la tienda de aplicaciones en su Airbus en el aire e instalar la nueva aplicación Christmas Lights para que las luces de la cabina parpadeen festivamente, lo que simplemente detiene las bombas de combustible porque el desarrollador nunca lo probó en vuelo.

Entonces, ¿cómo evitan los fabricantes de aviones que esto suceda?

  • Redundancia: cuando un sistema se detiene (o sus salidas se encuentran fuera de los valores válidos), hay un sistema de reserva para tomar el control.
  • Especificidad: a diferencia de las computadoras de propósito general, los dispositivos en un avión tienen un objetivo muy específico y se construyen, instalan, configuran y prueban para ese objetivo.
  • Pruebas: puede llevar su computadora o teléfono a la tienda para mantenimiento cuando comienza a comportarse de manera errática. Puede que sea demasiado tarde para ese hardware, pero por lo general podrán recuperar sus imágenes. Compre nuevo hardware y/o reinstale el sistema operativo y estará listo para comenzar. Los aviones se revisan más regularmente.
Me encanta leer este Stack Exchange, pero no sé mucho sobre aviones. Sin embargo, sé un par de cosas sobre computadoras, así que espero que esta respuesta sea útil y esté relacionada con el tema.
Los sistemas operativos modernos, como Windows, no se utilizan en las computadoras de vuelo. Se puede usar Linux , pero creo que es raro (debido a las modificaciones necesarias para cumplir con los estándares de aviónica). Más comúnmente sería LynxOS o VxWorks, que son sistemas altamente especializados diseñados para ejecutarse en aviónica de alta confiabilidad y otros sistemas industriales, y no son un sistema operativo tradicional como pensaría en Windows o Linux.
@Ron eso no era en absoluto lo que quería insinuar, ¡lo siento si es así! "Reiniciando el control del motor para Windows Update..."
@RonBeyer: además del certificado VxWorks, la integridad de Greenhills también se utiliza en aplicaciones de aviónica críticas para la seguridad. vxWorks también es muy popular en aviónica para aplicaciones de misión crítica.
Una computadora de escritorio tiende a bloquearse para que el usuario / desarrollador pueda ver eso y tal vez obtener información sobre por qué se bloqueó. (O al menos el hecho de que se estrelló). Cuando tiene otros requisitos que tienen prioridad (seguir funcionando) como muchos sistemas integrados, incluye un temporizador de vigilancia que reinicia el sistema si el sistema operativo no lo activa cada milisegundo o lo que sea. Los sistemas integrados normalmente no tardan mucho en iniciarse. Un ejemplo clásico de algo similar es ¿El error 1202 y el reinicio asociado evitaron un desastre en el aterrizaje del Apolo 11?

Con respecto al ciclo de energía específicamente (a diferencia de las fallas basadas en software en general, que otras respuestas han detallado muy bien), no es un problema en absoluto. A diferencia de una PC o un teléfono inteligente típicos que tardan en volver a encenderse y pueden perder datos cuando se corta la energía, los sistemas de control en un avión generalmente están diseñados de tal manera que reanudarán la operación completa en el momento en que se restablezca la energía.

Piense en ello más como el monitor de temperatura interna de su refrigerador que como su computadora personal. Si lo vuelve a encender, inmediatamente comenzará a funcionar de nuevo como si nada hubiera pasado.

En particular, aparte del piloto automático y el sistema de navegación, prácticamente ninguno de los sistemas depende de ningún tipo de almacenamiento, ni siquiera de la memoria RAM. Se ocupan de datos de sensores en tiempo real. Si se reinician, no se pierden datos, porque de todos modos solo funcionan con datos que se capturan en tiempo real. Y un piloto automático o NAV que se comporta mal no hace que el avión se caiga del cielo, simplemente significa que la responsabilidad de hacia dónde se dirige y dónde se encuentra ahora pasa de la computadora al piloto.
@JörgWMittag Bueno, estrictamente hablando, todos tienen RAM, aunque solo sean unos pocos kilobytes. Si bien es posible ejecutar un programa sin RAM, es demasiado limitado incluso para estos fines. Hacer cálculos en datos de sensores en tiempo real, o incluso aritmética no trivial, requiere más que unos pocos registros de propósito general.

A veces, los reinicios también pueden ser aceptables si puede reiniciar rápidamente sin perder información crítica. Esto ocurrió como parte del aterrizaje del Apolo 11 cuando tenían la alarma 1202 :

Se dio cuenta de que el 1202 era un código que significaba que la computadora de guía a bordo de la lancha de desembarco se estaba sobrecargando de tareas. Los programadores habían anticipado que esta sobrecarga podría ocurrir algún día, por lo que habían establecido un aspecto interno del sistema que haría automáticamente un reinicio rápido y luego una restauración de la memoria para intentar que la computadora volviera a funcionar.

pero esto no se aplicaría en absoluto a los controles fly by ethernet que operan las superficies de control reales, ¿no?
Si se detecta un error, en muchos casos es mejor que el sistema esté inoperativo temporalmente mientras se reinicia en lugar de quedarse atascado en un estado de falla.
@Fattie seguro que lo haría. Es mejor no hacer nada por un momento y luego hacer lo correcto, que hacer lo incorrecto de inmediato.
Esto parece más un comentario, ya que realmente no hay comparación entre una computadora antigua con memoria de núcleo magnético y memoria de cuerda y requisitos informáticos excepcionalmente limitados, y una máquina moderna compleja con cientos de microprocesadores con ISA increíblemente complejos y millones de líneas de código escritas en múltiples lenguajes de programación.
@forest: los sistemas integrados modernos todavía tienen un temporizador de vigilancia que se reinicia si el sistema se bloquea, en lugar de simplemente sentarse allí como un escritorio para que un usuario pueda escribir el código de error (o notar que se bloqueó en primer lugar). Pero sí, la cita en esta respuesta suena como un esquema primitivo de recolección de basura. Sin embargo, el AGC de Apollo 11 tenía un temporizador de vigilancia (lo llamaron "Nightwatchman": P, y fue una de las pocas cosas que podrían desencadenar un reinicio: ¿ Cómo manejó la computadora de guía de Apollo errores de bit de paridad? )