Disclosing and Locating Concurrency Bugs of Interrupt-Driven IoT Programs

Yuxia Sun, Shing Chi Cheung, Song Guo, Ming Cheng

Research output: Journal article publicationJournal articleAcademic researchpeer-review

2 Citations (Scopus)

Abstract

The Internet of Things (IoT) is envisioned as a distributed network formed by many end devices, e.g., the motes of wireless sensor network (WSN). These important IoT end devices enable ubiquitous sensing of environments and provide reliable services for mission-critical applications. However, programs running on WSN devices are typically interrupt-driven and prone to interrupt-induced concurrency bugs, which are primarily caused by erroneous interleavings among interrupt procedure instances (IPIs) (namely, executions of interrupt processing logic). In this paper, we use a set of dynamic bug patterns to characterize the concurrency bugs due to buggy access-interleavings among IPIs to shared resources, including shared memory locations and shared communication channels. By matching the above bug patterns, a dynamic analysis approach called disclosing and locating concurrency bugs of interrupt-driven IoT programs based on dynamic bug patterns (Daemon) is proposed to automatically detect and locate concurrency bugs in WSN programs. A GUI tool of Daemon is developed. As the empirical studies exhibit, the tool can discover concurrency bugs effectively and locate the buggy source lines visually.

Original languageEnglish
Article number8746139
Pages (from-to)8945-8957
Number of pages13
JournalIEEE Internet of Things Journal
Volume6
Issue number5
DOIs
Publication statusPublished - Oct 2019

Keywords

  • Bug pattern
  • concurrency-bug detection
  • dynamic analysis
  • interrupt procedure instance (IPI)
  • wireless sensor network (WSN) program

ASJC Scopus subject areas

  • Signal Processing
  • Information Systems
  • Hardware and Architecture
  • Computer Science Applications
  • Computer Networks and Communications

Fingerprint

Dive into the research topics of 'Disclosing and Locating Concurrency Bugs of Interrupt-Driven IoT Programs'. Together they form a unique fingerprint.

Cite this