Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Syste 2020
DOI: 10.1145/3373376.3378475
|View full text |Cite
|
Sign up to set email alerts
|

Atomicity Checking in Linear Time using Vector Clocks

Abstract: Multi-threaded programs are challenging to write. Developers often need to reason about a prohibitively large number of thread interleavings to reason about the behavior of software. A non-interference property like atomicity can reduce this interleaving space by ensuring that any execution is equivalent to an execution where all atomic blocks are executed serially. We consider the well studied notion of conflict serializability for dynamically checking atomicity. Existing algorithms detect violations of confl… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
8
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
5
1
1

Relationship

1
6

Authors

Journals

citations
Cited by 21 publications
(8 citation statements)
references
References 69 publications
(155 reference statements)
0
8
0
Order By: Relevance
“…This algebraic treatment allows to naturally lift language-inclusion problems from the verification of sequential programs to concurrent programs [7]. As such, it has been the most studied partial order in the context of concurrency, with deep applications in dynamic analyses [25,38,42], ensuring consistency [57] and stateless model checking [26]. In shared memory concurrency, the standard independence relation deems two events as dependent if they conflict, and independent otherwise [28].…”
Section: The Mazurkiewicz Partial Ordermentioning
confidence: 99%
See 2 more Smart Citations
“…This algebraic treatment allows to naturally lift language-inclusion problems from the verification of sequential programs to concurrent programs [7]. As such, it has been the most studied partial order in the context of concurrency, with deep applications in dynamic analyses [25,38,42], ensuring consistency [57] and stateless model checking [26]. In shared memory concurrency, the standard independence relation deems two events as dependent if they conflict, and independent otherwise [28].…”
Section: The Mazurkiewicz Partial Ordermentioning
confidence: 99%
“…Prominent examples include the widespread use of HB [19,24,30,49,60], schedulably-happens-before (SHB) [37], causally-precedes (CP) [63], weak-causally-precedes (WCP) [31], doesn't-commute (DC) [53], and strong/weak-dependently-precedes (SDP/WDP) [28], M2 [48] and SyncP [41]. Beyond race detection, partial orders are often employed to detect and reproduce other concurrency bugs such as atomicity violations [9,26,42], deadlocks [57,65], and other concurrency vulnerabilities [70]. Vector clocks in dynamic analyses.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Java, due to its unflagging popularity, is still one of the most popular languages used in research on these errors. The paper [47] presents an algorithm called AeroDrome, which was implemented in the RAPID tool, which is used for dynamic analysis of applications written for JRE (Java Runtime Environment) to detect atomicity violation. Research on the algorithm is at an early stage of development and its authors indicate that it is not good enough and should be used as part of a hybrid method.…”
Section: ) Deadlockmentioning
confidence: 99%
“…Guaranteeing the correctness of concurrent programs often relies on dynamic analysis and verification approaches. Some approaches target generic concurrency errors such as data races [29,37], deadlocks [11], and atomicity violations [28,47,57]. Others target behavioral properties such as null-pointer dereferences [27], and typestate violations [36,38,55] and more generally order violations with runtime verification [42].…”
Section: Introductionmentioning
confidence: 99%