Full Text Views
45
Data races are a multithreading bug. They occur when at least two concurrent threads access a shared variable, and at least one access is a write, and the shared variable is not explicitly protected from simultaneous accesses of the threads. Data races are well-known to be hard to debug, mainly because the effect of the conflicting accesses depends on the interleaving of the thread executions. Hence there have been a multitude of research efforts on detecting data races through sophisticated techniques of software analysis by automatically analyzing the behavior of computer programs. Software analysis techniques can be categorized according to the time they are applied: static or dynamic. Static techniques derive program information, such as invariants or program correctness, before runtime from source code, while dynamic techniques examine the behavior at runtime. In this paper, we survey data race detection techniques in each of these two approaches.
Pilsung KANG
Youngsan University
The copyright of the original papers published on this site belongs to IEICE. Unauthorized use of the original or translated papers is prohibited. See IEICE Provisions on Copyright for details.
Copy
Pilsung KANG, "Software Analysis Techniques for Detecting Data Race" in IEICE TRANSACTIONS on Information,
vol. E100-D, no. 11, pp. 2674-2682, November 2017, doi: 10.1587/transinf.2017EDR0004.
Abstract: Data races are a multithreading bug. They occur when at least two concurrent threads access a shared variable, and at least one access is a write, and the shared variable is not explicitly protected from simultaneous accesses of the threads. Data races are well-known to be hard to debug, mainly because the effect of the conflicting accesses depends on the interleaving of the thread executions. Hence there have been a multitude of research efforts on detecting data races through sophisticated techniques of software analysis by automatically analyzing the behavior of computer programs. Software analysis techniques can be categorized according to the time they are applied: static or dynamic. Static techniques derive program information, such as invariants or program correctness, before runtime from source code, while dynamic techniques examine the behavior at runtime. In this paper, we survey data race detection techniques in each of these two approaches.
URL: https://global.ieice.org/en_transactions/information/10.1587/transinf.2017EDR0004/_p
Copy
@ARTICLE{e100-d_11_2674,
author={Pilsung KANG, },
journal={IEICE TRANSACTIONS on Information},
title={Software Analysis Techniques for Detecting Data Race},
year={2017},
volume={E100-D},
number={11},
pages={2674-2682},
abstract={Data races are a multithreading bug. They occur when at least two concurrent threads access a shared variable, and at least one access is a write, and the shared variable is not explicitly protected from simultaneous accesses of the threads. Data races are well-known to be hard to debug, mainly because the effect of the conflicting accesses depends on the interleaving of the thread executions. Hence there have been a multitude of research efforts on detecting data races through sophisticated techniques of software analysis by automatically analyzing the behavior of computer programs. Software analysis techniques can be categorized according to the time they are applied: static or dynamic. Static techniques derive program information, such as invariants or program correctness, before runtime from source code, while dynamic techniques examine the behavior at runtime. In this paper, we survey data race detection techniques in each of these two approaches.},
keywords={},
doi={10.1587/transinf.2017EDR0004},
ISSN={1745-1361},
month={November},}
Copy
TY - JOUR
TI - Software Analysis Techniques for Detecting Data Race
T2 - IEICE TRANSACTIONS on Information
SP - 2674
EP - 2682
AU - Pilsung KANG
PY - 2017
DO - 10.1587/transinf.2017EDR0004
JO - IEICE TRANSACTIONS on Information
SN - 1745-1361
VL - E100-D
IS - 11
JA - IEICE TRANSACTIONS on Information
Y1 - November 2017
AB - Data races are a multithreading bug. They occur when at least two concurrent threads access a shared variable, and at least one access is a write, and the shared variable is not explicitly protected from simultaneous accesses of the threads. Data races are well-known to be hard to debug, mainly because the effect of the conflicting accesses depends on the interleaving of the thread executions. Hence there have been a multitude of research efforts on detecting data races through sophisticated techniques of software analysis by automatically analyzing the behavior of computer programs. Software analysis techniques can be categorized according to the time they are applied: static or dynamic. Static techniques derive program information, such as invariants or program correctness, before runtime from source code, while dynamic techniques examine the behavior at runtime. In this paper, we survey data race detection techniques in each of these two approaches.
ER -