Software transactional memory

被引:225
|
作者
Shavit, N
Touitou, D
机构
[1] School of Mathematical Sciences, Tel-Aviv University, Ramat Aviv
关键词
multiprocessor synchronization; lock-free; transactional memory; distributed shared memory;
D O I
10.1007/s004460050028
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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 Lond-Linked/Store-Conditional 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 Load-Linked/Store-Conditional 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.
引用
收藏
页码:99 / 116
页数:18
相关论文
共 50 条
  • [31] Proving Isolation Properties for Software Transactional Memory
    Bieniusa, Annette
    Thiemann, Peter
    PROGRAMMING LANGUAGES AND SYSTEMS, 2011, 6602 : 38 - 56
  • [32] Software Transactional Memory for Multicore Embedded Systems
    Mankin, Jennifer
    Kaeli, David
    Ardini, John
    ACM SIGPLAN NOTICES, 2009, 44 (07) : 90 - 98
  • [33] PSTM: Python']Python Software Transactional Memory
    Popovic, Miroslav
    Kordic, Branislav
    2014 22ND TELECOMMUNICATIONS FORUM TELFOR (TELFOR), 2014, : 1106 - 1109
  • [34] Developing Libraries Using Software Transactional Memory
    Dias, Ricardo
    Lourenco, Joao
    Cunha, Goncalo
    COMPUTER SCIENCE AND INFORMATION SYSTEMS, 2008, 5 (02) : 103 - 117
  • [35] Software Transactional Memory for Multicore Embedded Systems
    Mankin, Jennifer
    Kaeli, David
    Ardini, John
    LCTES'09: PROCEEDINGS OF THE 2009 ACM SIGPLAN/SIGBED CONFERENCE ON LANGUAGES, COMPILERS, AND TOOLS FOR EMBEDDED SYSTEMS, 2009, : 90 - 98
  • [36] An Extensible Interpreter Framework for Software Transactional Memory
    Herzeel, Charlotte
    Costanza, Pascal
    D'Hondt, Theo
    JOURNAL OF UNIVERSAL COMPUTER SCIENCE, 2010, 16 (02) : 221 - 245
  • [37] Relaxed Concurrency Control in Software Transactional Memory
    Aydonat, Utku
    Abdelrahman, Tarek S.
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2012, 23 (07) : 1312 - 1325
  • [38] An Analytic Model of Optimistic Software Transactional Memory
    Heindl, Armin
    Pokam, Gilles
    Adl-Tabatabai, Ali-Reza
    ISPASS 2009: IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE, 2009, : 153 - +
  • [39] SPECULA: Speculative Replication of Software Transactional Memory
    Peluso, Sebastiano
    Fernandes, Joao
    Romano, Paolo
    Quaglia, Francesco
    Rodrigues, Luis
    2012 31ST INTERNATIONAL SYMPOSIUM ON RELIABLE DISTRIBUTED SYSTEMS (SRDS 2012), 2012, : 91 - 100
  • [40] Performance Evaluation of Adaptivity in Software Transactional Memory
    Payer, Mathias
    Gross, Thomas R.
    IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE (ISPASS 2011), 2011, : 165 - 174