Affiliation:
1. Microsoft Research, Silicon Valley, University of California, Santa Cruz, and Collège de France
2. Microsoft Research, Silicon Valley
3. Microsoft Research, Cambridge
Abstract
Software Transactional Memory (STM) is an attractive basis for the development of language features for concurrent programming. However, the semantics of these features can be delicate and problematic. In this article we explore the trade-offs semantic simplicity, the viability of efficient implementation strategies, and the flexibility of language constructs. Specifically, we develop semantics and type systems for the constructs of the Automatic Mutual Exclusion (AME) programming model; our results apply also to other constructs, such as atomic blocks. With this semantics as a point of reference, we study several implementation strategies. We model STM systems that use in-place update, optimistic concurrency, lazy conflict detection, and rollback. These strategies are correct only under nontrivial assumptions that we identify and analyze. One important source of errors is that some efficient implementations create dangerous “zombie” computations where a transaction keeps running after experiencing a conflict; the assumptions confine the effects of these computations.
Publisher
Association for Computing Machinery (ACM)
Reference45 articles.
1. Automatic Mutual Exclusion and Atomicity Checks
2. Abadi M. Birrell A. Harris T. Hsieh J. and Isard M. 2008. Dynamic separation for transactional memory. Tech. rep. MSR-TR-2008-43 Microsoft Research. Abadi M. Birrell A. Harris T. Hsieh J. and Isard M. 2008. Dynamic separation for transactional memory. Tech. rep. MSR-TR-2008-43 Microsoft Research.
3. Implementation and Use of Transactional Memory with Dynamic Separation
4. Types for safe locking
5. A Model of Dynamic Separation for Transactional Memory
Cited by
24 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A HAT Trick: Automatically Verifying Representation Invariants using Symbolic Finite Automata;Proceedings of the ACM on Programming Languages;2024-06-20
2. AtomiS: Data-Centric Synchronization Made Practical;Proceedings of the ACM on Programming Languages;2023-10-16
3. Condition-based synchronization in data-centric concurrency control;Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing;2022-04-25
4. A survey on optimizations towards best-effort hardware transactional memory;CCF Transactions on High Performance Computing;2020-09-15
5. Modular transactions;Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming;2019-02-16