A Fault Injection Framework for Real-time Multicore Embedded Systems - Horstmann, Leonardo Passig; Fröhlich, Antônio Augusto (Anais do Simpósio Brasileiro de Engenharia de Sistemas Computacionais (SBESC), 2020)
In this paper, we present a non-intrusive framework to inject faults in real-time multicore embedded systems without impairing the temporal characteristics of the critical tasks being executed, thus enabling a fine-grain simulation of the behavior of such systems under faulty conditions. The proposed technique consists of injecting specific traces to designated OS variables, hardware counters, and sensor values. The traces to be injected can either be defined at compile-time or generated at runtime. The fault injection framework builds upon a previously developed non-intrusive, real-time monitoring system. The fault injection mechanism actuates whenever a monitored variable is sampled by the monitoring system. The fault injection process is agnostic to hardware platform. The performance of the framework was assessed in terms of execution time overhead and of the impact on the execution of critical tasks. The results show a maximum execution time overhead on the system of 0.1001% and an average task activation jitter not higher than 5.0096µs. These results corroborate the suitability of the proposed framework to simulate the behavior of critical systems in the face of failures. After presenting the proposed architecture, the conducted experiments, and the achieved results, we discuss the application of the proposed technique in the scope of Digital Twins.