Skip to main navigation Skip to search Skip to main content

A survey on exposing, detecting and avoiding concurrency bugs

  • School of Computer Science and Technology, Harbin Institute of Technology

Research output: Contribution to journalArticlepeer-review

Abstract

The prevalent multi-core architecture today makes real concurrency come true. In order to benefit from the concurrency power of hardware, concurrent programming is becoming more and more popular. However, out of inherent concurrency and non-determinism, concurrent programs are more likely to suffer from concurrency bugs, which are hard to detect, debug and repair. In this paper, we point out the trend that software development is turning toward concurrent model from sequential model. We reveal three characteristics respectively for concurrent programs and concurrency bugs and explore three challenges confronted by concurrency bug analysis. We then divide concurrency bugs into four categories, i.e. deadlock, data race, atomicity violation and order violation and investigate relations among them. For each category of concurrency bugs, we make analyses, comparisons and summarizations on previous researches about how to quickly expose, in time detect and efficiently avoid them. At last, we look into the research priorities in future from the following five aspects: smart and quick concurrency bugs exposure, common and accurate concurrency bug detection, deterministic replay support, collaborative design involving software and hardware and new concurrent programming model.

Original languageEnglish
Pages (from-to)2215-2233
Number of pages19
JournalJisuanji Xuebao/Chinese Journal of Computers
Volume38
Issue number11
DOIs
StatePublished - 1 Nov 2015
Externally publishedYes

Keywords

  • Atomicity violation
  • Concurrency bug
  • Data race
  • Deadlock
  • Order violation
  • Program analysis
  • Software testing

Fingerprint

Dive into the research topics of 'A survey on exposing, detecting and avoiding concurrency bugs'. Together they form a unique fingerprint.

Cite this