Dynamic Analysis Method for Concurrency Bugs in Multi-process/Multi-thread Environments
- PDF / 3,801,914 Bytes
- 29 Pages / 439.37 x 666.142 pts Page_size
- 85 Downloads / 199 Views
Dynamic Analysis Method for Concurrency Bugs in Multi‑process/Multi‑thread Environments Jihyun Park1 · Byoungju Choi1 · Seungyeun Jang1 Received: 14 November 2019 / Accepted: 6 May 2020 © Springer Science+Business Media, LLC, part of Springer Nature 2020
Abstract In this paper, we propose a method of analyzing the types and causes of concurrency bugs that can occur in multi-process/multi-thread environments by analyzing the information gathered in the execution environment. Our method reduces the false detection rate by employing a hooking technique that intercepts the software’s execution at runtime and reduces the overhead that can occur in the original software due to defect detection methods using optimized data collection. We implemented the proposed method as a tool and demonstrated its effectiveness by applying it to weapon system software that previously had concurrency bugs. In addition, the proposed method’s high performance was proven by applying it to software into which faults were injected and comparing the results with those obtained using other tools. Keywords Concurrency bug · Defect detection · Multi-process · Multi-thread
1 Introduction The incidence rate of concurrency bugs is increasing [1]. Particularly in the dynamic bug analysis of defense weapon system software, the proportion of concurrency bugs was found to be very high [2]. Previous bugs in six applications related to weapon systems were analyzed in [2]. In total, 264 bugs occurred after software integration, of which 144 were concurrency bugs and only 95 were memory bugs. Although this analysis was performed for bugs in weapon system software, general software will follow this tendency. The proportion of * Byoungju Choi [email protected] Jihyun Park [email protected] Seungyeun Jang [email protected] 1
Ewha Womans University, 52, Ewhayeodae‑gil, Seodaemun‑gu, Seoul 03760, Republic of Korea
13
Vol.:(0123456789)
International Journal of Parallel Programming
concurrency bugs is increasing due to the generalization of multi-CPU environments. In the past, there was no real concurrency even in multi-threaded or multiprocess environments since everything ran in single-CPU environments. Consequently, there was a low occurrence of bugs caused by competitive conditions between threads or processes. However, as multi-CPU environments have become common, the incidence rate of concurrency bugs, such as the frequency of cases in which multiple CPUs simultaneously attempt to access shared resources or execution order of threads is reversed, is increasing [3]. Concurrency bugs occur due to the use of shared resources or the execution order of processes and threads when multiple tasks are concurrently processed in a multithread, multi-process, or multi-CPU environment. These bugs can largely be classified as deadlocks, atomicity violations, and order violations. When a concurrency bug occurs, it can cause a system to stop its current program or even crash entirely. In software that needs to respond in real-time such as medical equipm
Data Loading...