Fallo de prioridad en la misión Mars Pathfinder de la NASA

Fuentes: Mars Pathfinder Priority Inversion Bug

La misión Mars Pathfinder de la NASA, lanzada en 1996 y que aterrizó en Marte en 1997, sufrió una serie de reinicios totales del sistema debido a un error de inversión de prioridad en su sistema operativo en tiempo real, VxWorks. Este fallo técnico impidió la ejecución de tareas críticas, lo que activó un temporizador de supervisión y forzó el reinicio de la nave. El problema surgió porque una tarea de baja prioridad mantenía un mutex compartido mientras una tarea de alta prioridad esperaba, violando el modelo de programación predecible del sistema. Los ingenieros diagnosticaron el error mediante trazas detalladas del comportamiento del sistema, identificando que la falta de herencia de prioridad en la configuración del mutex era la causa raíz. La solución implementada activó la herencia de prioridad en el parámetro de inicialización del semaphore, permitiendo que la tarea de baja prioridad heredara la prioridad de la tarea de alta prioridad cuando accediera al recurso compartido. Este caso ilustra la importancia crítica de comprender el escalado de RTOS y la inversión de prioridad en sistemas embebidos. Además, destaca el valor de las herramientas de depuración integradas en el sistema, que permitieron modificar variables globales en tiempo real para corregir el fallo sin necesidad de hardware adicional. El incidente subraya que, aunque los fallos de hardware pueden ser atribuidos a errores de diseño, la inversión de prioridad es un problema lógico que requiere una configuración explícita y rigurosa para evitar el bloqueo de tareas críticas en entornos de tiempo real.