Principles of transactional memory
By: Rachid Guerraoui and Michał Kapałka
Contributors: Kapałka, Michał
Series: Synthesis lectures on distributed computing -- # 4
Publisher: Morgan & Claypool; Morgan & Claypool Publishers
Published: 2010
Place of publication: San Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA)
Language: eng
Format: [electronic resource] /
Number of pages: 179
ISBN-13: 9781608450121; 9781608450114
Subjects: Threads (Computer programs); Synchronization; Transaction systems (Computer systems); Parallel programming (Computer science)
Other titles: Synthesis digital library of engineering and computer science.
Description: Transactional memory (TM) is an appealing paradigm for concurrent programming on shared memory architectures. With a TM, threads of an application communicate, and synchronize their actions, via in-memory transactions. Each transaction can perform any number of operations on shared data, and then either commit or abort. When the transaction commits, the effects of all its operations become immediately visible to other transactions; when it aborts, however, those effects are entirely discarded. Transactions are atomic: programmers get the illusion that every transaction executes all its operations instantaneously, at some single and unique point in time. Yet, a TM runs transactions concurrently to leverage the parallelism offered by modern processors. The aim of this book is to provide theoretical foundations for transactional memory. This includes defining a model of a TM, as well as answering precisely when a TM implementation is correct, what kind of properties it can ensure, what are the power and limitations of a TM, and what inherent trade-offs are involved in designing a TM algorithm. While the focus of this book is on the fundamental principles, its goal is to capture the common intuition behind the semantics of TMs and the properties of existing TM implementations.
Notes: Part of: Synthesis digital library of engineering and computer science.

Series from website.

Includes bibliographical references (p. 171-178).

Abstract freely available; full-text restricted to subscribers or individual document purchasers.

Also available in print.

Mode of access: World Wide Web.

System requirements: Adobe Acrobat Reader.
Table of contents: title: 1. Introduction; title: Problems with explicit locking; title: Transactional memory; title: Scope of this book; title: Contents; title: Part I. Basics; title: 2. Shared memory systems; title: Basic abstractions; title: Processes and shared objects; title: Shared object implementations; title: Executions of concurrent algorithms; title: Histories; title: Semantics of base objects; title: Configurations and indistinguishability; title: Asynchrony and wait-freedom; title: Computability questions; title: Summary of notation; title: 3. Transactional memory: a primer; title: TM shared object; title: Transactions; title: T-objects and their semantics; title: TM histories; title: Status of transactions; title: Real-time order; title: Conflicts; title: Restrictions; title: High-level TM API; title: Discussion; title: Nested transactions; title: Non-transactional access to T-objects; title: False conflicts; title: A transaction abstraction; title: Summary of notation; title: 4. TM correctness issues; title: Atomicity of committed transactions; title: Real-time order; title: Precluding inconsistent views; title: 5. Implementing ATM; title: General idea; title: (Read-write) try-locks; title: Phase locking TM algorithm; title: An improved TM algorithm; title: Alternative implementation techniques; title: Obstruction-free mechanisms; title: Validation heuristics; title: Contention management; title: Multi-version schemes; title: Deferred updates; title: 6. Further reading; title: Shared memory systems; title: Transactional memory; title: Part II. Safety; title: 7. Opacity; title: Opacity step by step; title: Definition of opacity; title: Examples; title: 8. Proving opacity: an example; title: Preliminaries; title: A graph characterization of opacity; title: 2-phase locking TM; title: TM with invisible reads; title: 9. Opacity vs. atomicity; title: Properties of TM implementations; title: Complexity lower bound; title: Circumventing the lower bound; title: 10. Further reading; title: The roots of opacity; title: Alternatives and extensions of opacity; title: Part III. Progress; title: 11. The liveness of ATM; title: 12. Lock-based TMs; title: Strong progressiveness; title: Verifying strong progressiveness; title: Strong try-locks; title: Reduction theorem; title: Examples; title: The computational power of a lock-based TM; title: Equivalence between lock-based TMs and try-locks; title: The computational power of a strong try-lock; title: Weakening strong progressiveness; title: 13. Obstruction-free TMs; title: Obstruction-freedom; title: Implementing an OFTM; title: The computational power of an OFTM; title: Definition of an Fo-consensus object; title: Implementing an OFTM from fo-consensus objects; title: Equivalence between OFTMs and Fo-consensus objects; title: The power of an Fo-consensus object; title: Impossibility of strict disjoint-access-parallelism; title: Alternative forms of obstruction-freedom; title: 14. General liveness of TMs; title: High-level liveness of a TM; title: Preliminaries; title: Definition of (high-level) TM liveness; title: Examples of TM liveness properties; title: Classes of TM liveness properties; title: Impossibility result; title: Ensuring non-(n - 1), prioritizing TM liveness properties; title: Summary and discussion; title: 15. Further reading; title: 16. Conclusions; title: Bibliography; title: Authors' biographies.