Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
My Menu
Saved Items

Software transactional memory

Nir Shavit1 and Dan Touitou1

(1)  School of Mathematical Sciences, Tel-Aviv University, Ramat Aviv, Tel-Aviv 69978, Israel, IL
Summary.   As we learn from the literature, flexibility in choosing synchronization operations greatly simplifies the task of designing highly concurrent programs. Unfortunately, existing hardware is inflexible and is at best on the level of a LoadLinked/StoreConditional operation on a single word. Building on the hardware based transactional synchronization methodology of Herlihy and Moss, we offer software transactional memory (STM), a novel software method for supporting flexible transactional programming of synchronization operations. STM is non-blocking, and can be implemented on existing machines using only a LoadLinked/StoreConditional operation. We use STM to provide a general highly concurrent method for translating sequential object implementations to non-blocking ones based on implementing a k-word compare&swap STM-transaction. Empirical evidence collected on simulated multiprocessor architectures shows that our method always outperforms the non-blocking translation methods in the style of Barnes, and outperforms Herlihy’s translation method for sufficiently large numbers of processors. The key to the efficiency of our software-transactional approach is that unlike Barnes style methods, it is not based on a costly “recursive helping” policy.

Key words: Multiprocessor synchronization - Lock-free - Transactional memory - Distributed shared memory

Received: January 1996 / Revised: June 1996 / Accepted: August 1996

Fulltext Preview (Small, Large)
Image of the first page of the fulltext


Export this article
Export this article as RIS | Text
 
Referenced by
4 newer articles

  1. Imbs, Damien (2010) Software transactional memories: an approach for multicore programming. The Journal of Supercomputing
    [CrossRef]
  2. Luchangco, Victor (2008) Nonblocking k-Compare-Single-Swap. Theory of Computing Systems
    [CrossRef]
  3. DONNELLY, KEVIN (2008) Transactional events. Journal of Functional Programming 18(5-6)
    [CrossRef]
  4. Michael, M.M. (2004) Hazard pointers: safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems 15(6)
    [CrossRef]
Remote Address: 38.107.191.97 • Server: mpweb07
HTTP User Agent: CCBot/1.0 (+http://www.commoncrawl.org/bot.html)