In computer science, software transactional memory (STM) is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. It is an alternative to lock-based synchronization. STM is a strategy implemented in software, rather than as a hardware component. A transaction in this context occurs when a piece of code executes a series of reads and writes to shared memory. These reads and writes logically occur at a single instant in time; intermediate states are not visible to other (successful) transactions. The idea of providing hardware support for transactions originated in a 1986 paper by Tom Knight.[1] The idea was popularized by Maurice Herlihy and J. Eliot B. Moss.[2] In 1995, Nir Shavit and Dan Touitou extended this idea to software-only transactional memory (STM).[3] Since 2005, STM has been the focus of intense research[4] and support for practical implementations is growing.
^Tom Knight. An architecture for mostly functional languages. Proceedings of the 1986 ACM conference on Lisp and functional programming.
^Maurice Herlihy and J. Eliot B. Moss. Transactional memory: architectural support for lock-free data structures. Proceedings of the 20th annual international symposium on Computer architecture (ISCA '93). Volume 21, Issue 2, May 1993.
^Nir Shavit and Dan Touitou. Software transactional memory. Distributed Computing. Volume 10, Number 2. February 1997.
^""software transactional memory" - Google Scholar". Retrieved 10 November 2013.
and 22 Related for: Software transactional memory information
placed within a transaction. Transactionalmemory is limited in that it requires a shared-memory abstraction. Although transactionalmemory programs cannot...
Transactional Synchronization Extensions (TSX), also called Transactional Synchronization Extensions New Instructions (TSX-NI), is an extension to the...
control method applied to transactional systems such as relational database management systems and softwaretransactionalmemory. OCC assumes that multiple...
Sagas TransactionalMemory Composable memory transactions Transactionalmemory: architectural support for lock-free data structures Software transactional...
number of OS-level threads, usually one per processor core. The softwaretransactionalmemory (STM) extension to GHC reuses the process forking primitives...
topology to distributed computing, as well as hardware and softwaretransactionalmemory. He is the An Wang Professor of Computer Science at Brown University...
shared memory computability, and a winner of the 2012 Dijkstra Prize for the introduction and first implementation of softwaretransactionalmemory. He is...
types, concurrent and parallel programming models (such as softwaretransactionalmemory and data parallelism) and a profiler. Peyton Jones, and Marlow...
"stm-containers" adapts the algorithm for use in the context of softwaretransactionalmemory. A Javascript HAMT library based on the Clojure implementation...
32-bit microcontroller integrated circuits by STMicroelectronics Softwaretransactionalmemory, a method of handling concurrency in multithreaded systems Stepper...
JBoss Cache – v 3.0 Ehcache – v 1.6.0-beta4 Clojure – language softwaretransactionalmemory Apache Jackrabbit Oak Berkeley DB Reference Guide: Degrees of...
concurrent systems. Softwaretransactionalmemory borrows from database theory the concept of atomic transactions and applies them to memory accesses. Concurrent...
Storm: a fast transactional dataplane for remote data structures: https://dl.acm.org/doi/abs/10.1145/3319647.3325827 Storm: a fast transactional dataplane...
approval, including the fifth and final part of TS 18661, a softwaretransactionalmemory specification, and parallel library extensions. ANSI C is now...
Torvald Riegel (Technische Universitaet Dresden), for his thesis SoftwareTransactionalMemory Building Blocks 2013 Asia Slowinska (Vrije Universiteit Amsterdam)...
Variable used in a concurrent system Softwaretransactionalmemory – Concurrency control mechanism in softwareTransactional Synchronization Extensions – Extension...
computations such as error handling, nondeterminism, parsing and softwaretransactionalmemory. They are defined as ordinary datatypes, but Haskell provides...
returned by the runST above. The STM monad is an implementation of SoftwareTransactionalMemory in Haskell. It is implemented in the GHC compiler, and allows...
increasingly utilized in concurrent programming, transactionalmemory, and softwaretransactionalmemory (STM) to achieve serializability optimistically...