DOI:10.1145/1378704.1378725 - Corpus ID: 53245159
Composable memory transactions
@article{Harris2008ComposableMT, title={Composable memory transactions}, author={Tim Harris and Simon Marlow and Simon L. Peyton Jones and Maurice Herlihy}, journal={Commun. ACM}, year={2008}, volume={51}, pages={91-100}, url={https://api.semanticscholar.org/CorpusID:53245159}}- Tim HarrisS. MarlowM. Herlihy
- Published inCACM1 August 2008
- Computer Science
- Commun. ACM
This paper presents a concurrency model, based on transactional memory, that offers far richer composition, and describes modular forms of blocking and choice that were inaccessible in earlier work.
46 Citations
Figures from this paper
46 Citations
A graded monad for deadlock-free concurrency (functional pearl)
- Andrej IvaskovicA. Mycroft
- 2020
Computer Science
Haskell@ICFP
A new type-oriented framework for writing shared memory multithreaded programs that the Haskell type system guarantees are deadlock-free and which grades within the type specify which locks it acquires and releases.
Modular transactional memory
- Matthew BrecknellP. Roe
- 2010
Computer Science
Modular Transactional Memory is presented, the framework which allows programmers to extend STM with concurrency control algorithms tailored to the data structures they use in concurrent programs, and two example structures: a finite map which allows concurrent transactions to operate on disjoint sets of keys, and a non-deterministic channel which supports concurrent sources and sinks.
Futures and promises in Haskell and Scala
- T. DauthMartin Sulzmann
- 2019
Computer Science
PEPM@POPL
A simple core language is introduced based on which a rich set of future and promise features can be derived via shared-state concurrency making either use of Software Transactional Memory, an elementary lock-based primitive, or an atomic compare-and-swap operation.
The Future of Synchronization on Multicores: The multicore transformation (Ubiquity symposium)
- Maurice Herlihy
- 2014
Computer Science, Engineering
UBIQ
Maurice Herlihy proposes replacing locks with transactions, and discusses adapting the well-established concept of data base transactions to multicore systems and shared main memory.
Software Transactions Meet First-Class Continuations
- Aaron Grossman
- 2007
Computer Science
This work considers how transactions interact with first-class continuations, and presents a design meeting this need, addressing both escaping from and reentering the dynamic extent of a transaction.
Formalizing determinacy of concurrent revisions
- R. Overbeek
- 2020
Computer Science
An Isabelle/HOL formalization of the concurrency control model’s operational semantics and proof of determinacy is described and subtle ambiguities in the operational semantics are discussed and resolved.
A Functional Semantics for the Awkward Squad
- Wouter SwierstraThorsten Altenkirch
- 2007
Computer Science
This work provides a functional specification of three central components of Peyton Jones’s awkw ard squad: teletype IO, mutable state, and concurrency, and demonstrates how these specifications may be used in tandem with QuickCheck to autom atically test complex pointer algorithms and concurrent programs.
Compositional Formal Analysis for Concurrent Object-Oriented Languages
- Thi Mai Thuong Tran
- 2013
Computer Science
This thesis develops and formally investigates different static analysis methods for various concurrency-related problems in concurrent object-oriented programming languages to guarantee the absence of common concurrence-related errors, hence contribute to the quality of concurrent programs.
Last-use opacity: a strong safety property for transactional memory with prerelease support
- Konrad SiekPaweł T. Wojciechowski
- 2022
Computer Science
Last-use opacity and strong last- use opacity are introduced, a pair of new TM safety properties meant to be a compromise between strong properties like opacity and minimal ones like serializability, which eliminate all but a small class of benign inconsistent views and pose no stringent conditions on transactions.
User-Level Transaction Scheduling in Haskell
- R. M. DuarteA. R. D. BoisG. H. CavalheiroM. Pilla
- 2018
Computer Science
This work presents four transactional schedulers implemented entirely in Haskell using different abstraction levels and presents, despite the inherent overhead of high-level implementations, a reduction in the conflict rates.
48 References
Composable memory transactions
- T. HarrisS. MarlowS. JonesM. Herlihy
- 2005
Computer Science
This paper presents a new concurrency model, based on transactional memory, that offers far richer composition, and describes new modular forms of blocking and choice that have been inaccessible in earlier work.
Semantics of transactional memory and automatic mutual exclusion
- M. AbadiAndrew BirrellT. HarrisM. Isard
- 2008
Computer Science
This paper develops semantics and type systems for the constructs of the Automatic Mutual Exclusion (AME) programming model and model STM systems that use in-place update, optimistic concurrency, lazy conflict detection, and roll-back.
Asynchronous exceptions in Haskell
- S. MarlowS. JonesAndrew MoranJohn H. Reppy
- 2001
Computer Science
This work extends the earlier work on synchronous exceptions to Haskell to support asynchronous exceptions, and introduces scoped combinators for blocking and unblocking asynchronous interrupts, along with a somewhat surprising semantics for operations that can suspend.
Language support for lightweight transactions
This work argues that these problems can be addressed by moving to a declarative style of concurrency control in which programmers directly indicate the safety properties that they require, which is easier for mainstream programmers to use, prevents lock-based priority-inversion and deadlock problems and can offer performance advantages.
High-level small-step operational semantics for transactions
- Katherine F. MooreD. Grossman
- 2008
Computer Science
This work presents a family of formal languages that model a wide variety of behaviors for software transactions, and proves some key language-equivalence theorems to confirm that under sufficient static restrictions, no program can determine whether the language implementation uses weak isolation or strong isolation.
Concurrent Haskell
- S. JonesA. GordonSigbjørn Finne
- 1996
Computer Science
This work has developed a freely-available implementation of Concurrent Haskell, and is now using it as a substrate for a graphical user interface toolkit.
Transactional memory with data invariants
STM Haskell is extended to dynamically evaluate check statements atomically with the user’s updates: the result is that the authors can identify precisely which update is the first one to break an invariant.
Programming with transactional coherence and consistency (TCC)
- Lance HammondBrian D. CarlstromK. Olukotun
- 2004
Computer Science
ASPLOS XI
Two basic programming language constructs for decomposing programs into transactions, a loop conversion syntax and a general transaction-forking mechanism are described, so that writing correct parallel programs requires only small, incremental changes to correct sequential programs.
Imperative functional programming
We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system,…
Transactional Monitors for Concurrent Objects
- Adam WelcS. JagannathanAntony Hosking
- 2004
Computer Science
It is shown that transactional monitors are competitive with mutual- exclusion synchronization and can outperform lock-based approaches up to five times on a wide range of workloads.
Related Papers
Showing 1 through 3 of 0 Related Papers
