Verification of Data Races in Concurrent Interrupt Handlers

Data races are common in interrupt-driven programs and have already led to well-known real-world problems. Unfortunately, existing dynamic tools for reporting data races in interrupt-driven programs are not only unsound, but they also fail to verify the existence of data races in such programs. This...

Full description

Saved in:
Bibliographic Details
Main Authors: Guy Martin Tchamgoue, Kyong Hoon Kim, Yong-Kee Jun
Format: Article
Language:English
Published: Wiley 2013-11-01
Series:International Journal of Distributed Sensor Networks
Online Access:https://doi.org/10.1155/2013/953593
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Data races are common in interrupt-driven programs and have already led to well-known real-world problems. Unfortunately, existing dynamic tools for reporting data races in interrupt-driven programs are not only unsound, but they also fail to verify the existence of data races in such programs. This paper presents an efficient and scalable on-the-fly technique that precisely detects, without false positives, apparent data races in interrupt-driven programs. The technique combines a tailored lightweight labeling scheme to maintain logical concurrency between the main program and every instance of its interrupt handlers with a precise detection protocol that analyzes conflicting shared memory accesses by storing at most two accesses for each shared variable. We implemented a prototype of this technique, called i Race, on top of the Avrora simulation framework. An empirical evaluation of i Race revealed the presence of data races in some existing TinyOS components and applications with a worst-case slowdown of only about 6 times on average and an increased average memory consumption of only about 20% in comparison with the original program execution. The evaluation also proved that the labeling scheme alone generates an average runtime overhead of only about 0.4x while consuming only about 12% more memory than the original program execution.
ISSN:1550-1477