Computer Science and Information Systems 2011 Volume 8, Issue 2, Pages: 534-548
https://doi.org/10.2298/CSIS110110007L
Full text ( 294 KB)
Detecting concurrency anomalies in transactional memory programs
Lourenço João (CITI / Departamento de Informática Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa - Caparica, Portugal)
Sousa Diogo (CITI / Departamento de Informática Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa - Caparica, Portugal)
Teixeira Bruno (CITI / Departamento de Informática Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa - Caparica, Portugal)
Dias Ricardo (CITI / Departamento de Informática Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa - Caparica, Portugal)
Concurrent programs may suffer from concurrency anomalies that may lead to
erroneous and unpredictable program behaviors. To ensure program correctness,
these anomalies must be diagnosed and corrected. This paper addresses the
detection of both low- and high-level anomalies in the Transactional Memory
setting. We propose a static analysis procedure and a framework to address
Transactional Memory anomalies. We start by dealing with the classic case of
low-level dataraces, identifying concurrent accesses to shared memory cells
that are not protected within the scope of a memory transaction. Then, we
address the case of high-level dataraces, bringing the programmer’s attention
to pairs of memory transactions that were misspecified and should have been
combined into a single transaction. Our framework was applied to a set of
programs, collected form different sources, containing well known low- and
high-level anomalies. The framework demonstrated to be accurate, confirming
the effectiveness of using static analysis techniques to precisely identify
concurrency anomalies in Transactional Memory programs.
Keywords: testing, verification, concurrency, software transactional memory, static analysis