Simulador para arquitecturas multiprocesador utilizadas en el sector espacial para apoyar el desarrollo de mecanismos software de tolerancia a fallos
- Sánchez Sánchez, Jonatan
- Pablo Parra Espada Director
- Antonio da Silva Fariña Codirector
Universidad de defensa: Universidad de Alcalá
Fecha de defensa: 01 de marzo de 2022
- Daniel Meziat Luna Presidente/a
- Fernando Pescador del Oso Secretario/a
- Segundo Esteban San Román Vocal
Tipo: Tesis
Resumen
La colonización de la Luna y Marte o la minería espacial son ideas que la humanidad ha ido desarrollando durante décadas pero que hoy en día parecen estar al alcance de la mano gracias al avance tecnológico, la nueva carrera espacial en la que China es cada vez más relevante, y al aumento de interés por parte de gobiernos, agencias y empresas. Parte de estos avances tecnológicos radican en el uso de hardware y software espacial cada vez más potente y versátil. En cualquier misión espacial, el software es un componente fundamental que permite configurar de distintas maneras al sistema y manejar las situaciones excepcionales que se puedan dar. Además, en el entorno espacial tanto el hardware como el software necesitan satisfacer unos requisitos de tolerancia a fallos para evitar en mayor medida los errores producidos por la radiación. La verificación de estos requisitos en sistemas críticos consume cada vez una mayor cantidad de recursos dedicados al desarrollo de los sistemas, sobre todo en sistemas multinúcleo. En este contexto es necesario el uso de nuevas herramientas para el desarrollo y verificación tempranos del software empotrado. Entre estas herramientas se puede incluir la propuesta de este trabajo de tesis, que afronta el problema mediante el uso de técnicas de simulación e inyección de fallos. Dadas las restricciones temporales en el desarrollo de los sistemas embarcados y los estrictos requisitos de robustez del software espacial, es necesario realizar esta verificación en etapas muy tempranas del desarrollo. En un caso ideal, estas tareas serian desempeñadas de forma paralela al desarrollo hardware, permitiendo anticipar discrepancias y problemas en la especificación del sistema. Cabe resaltar que la verificación de los mecanismos de tolerancia a fallos software puede ser difícil o imposible de realizar en el hardware, dado que las técnicas de inyección de fallos hardware limitan la reproducibilidad de escenarios concretos asi como que los escenarios sean observables y con inyección de fallos controlable y transparente. En esta tesis se describe la investigación, desarrollo y uso de la plataforma virtual ``LeonViP-MC'', con capacidad de inyección de fallos y que utiliza traducción dinámica binaria (Dynamic Binary Translation) mediante LLVM y corrutinas para la simulación de sistemas multinúcleo. Gracias a esta plataforma se puede ejecutar el mismo binario a ejecutar en el hardware real, pero en un entorno controlado y determinista. Esto ha permitido la realización de distintas campanas de inyección de fallos que no serían viables de otra manera. Su utilización ha permitido demostrar la fiabilidad de las técnicas de tolerancia a fallos implementadas tanto en el software de arranque de la Unidad de Control del Instrumento (ICU) del Detector de Partículas Energéticas (EPD) embarcado en Solar Orbiter asi como de una aplicación basada en un canal de comunicaciones ARINC 653 que forma parte del desarrollo de un futuro hipervisor para el sistema multinúcleo GR740.