Creative Commons Attribution 3.0 Unported license
We present a static analysis technique for detecting data races in Real-Time Operating System (RTOS) applications. These applications are often employed in safety-critical tasks and the presence of races may lead to erroneous behaviour with serious consequences. Analyzing these applications is challenging due to the variety of non-standard synchronization mechanisms they use. We propose a technique based on the notion of an "occurs-in-between" relation between statements. This notion enables us to capture the interplay of various synchronization mechanisms. We use a pre-analysis and a small set of not-occurs-in-between patterns to detect whether two statements may race with each other. Our experimental evaluation shows that the technique is efficient and effective in identifying races with high precision.
@InProceedings{tulsyan_et_al:LIPIcs.FSTTCS.2020.57,
author = {Tulsyan, Rishi and Pai, Rekha and D'Souza, Deepak},
title = {{Static Race Detection for RTOS Applications}},
booktitle = {40th IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS 2020)},
pages = {57:1--57:20},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-174-0},
ISSN = {1868-8969},
year = {2020},
volume = {182},
editor = {Saxena, Nitin and Simon, Sunil},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.FSTTCS.2020.57},
URN = {urn:nbn:de:0030-drops-132983},
doi = {10.4230/LIPIcs.FSTTCS.2020.57},
annote = {Keywords: Static analysis, concurrency, data-race detection, RTOS}
}