Affiliation:
1. Universidad Politécnica de Madrid
2. Technion
3. IMDEA Software Institute
4. Tel-Aviv University
Abstract
Transactional memory
(TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, e.g., to improve performance or to support legacy code. In this case, programmers would ideally like the TM to guarantee
strong atomicity
, where transactions can be viewed as executing atomically also with respect to non-transactional accesses. Since guaranteeing strong atomicity for arbitrary programs is prohibitively expensive, researchers have suggested guaranteeing it only for certain
data-race free (DRF)
programs, particularly those that follow the
privatization
idiom: from some point on, threads agree that a given object can be accessed non-transactionally. Supporting privatization safely in a TM is nontrivial, because this often requires correctly inserting
transactional fences
, which wait until all active transactions complete.
Unfortunately, there is currently no consensus on a single definition of transactional DRF, in particular, because no existing notion of DRF takes into account transactional fences. In this paper we propose such a notion and prove that, if a TM satisfies a certain condition generalizing opacity and a program using it is DRF
assuming
strong atomicity, then the program indeed has strongly atomic semantics. We show that our DRF notion allows the programmer to use privatization idioms. We also propose a method for proving our generalization of opacity and apply it to the TL2 TM.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Graph Transformation System formalism for correctness of Transactional Memory algorithms;25th Brazilian Symposium on Programming Languages;2021-09-27
2. Modular transactions;Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming;2019-02-16
3. Transaction Protocol Verification with Labeled Synchronization Logic;Lecture Notes in Computer Science;2019
4. A Graph Transformation System formalism for Software Transactional Memory Opacity;Proceedings of the XXIII Brazilian Symposium on Programming Languages - SBLP 2019;2019
5. Automated Refactoring for Stampedlock;IEEE Access;2019