Data Race Detection in Interrupt-driven Programs

Interrupt-driven programs are widely deployed in safety-critical embedded systems to perform hardware and resource dependent data operation tasks. The frequent uses of interrupts in these systems can cause data races due to interactions between application tasks and interrupt handlers.

We develop an automated framework that helps in detecting and fixing data races in interrupt-driven embedded software. It uses a combination of static analysis, symbolic execution and dynamic simulation to synthesize the failure-inducing data input and interrupt interleaving schedule.

Assistant Researcher

My research interests mainly lies in software testing and program language, including static and dynamic analysis. Recently, I focus on improving the performance of program analysis by machine learning.