Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Generalized FLP impossibility result for t-resilient asynchronous computations
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
X-Ability: a theory of replication
Distributed Computing
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Toward a theory of transactional contention managers
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Dynamic performance tuning of word-based software transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Communications of the ACM - Web science
Permissiveness in Transactional Memories
DISC '08 Proceedings of the 22nd international symposium on Distributed Computing
Implementing and Exploiting Inevitability in Software Transactional Memory
ICPP '08 Proceedings of the 2008 37th International Conference on Parallel Processing
Steal-on-Abort: Improving Transactional Memory Performance through Dynamic Transaction Reordering
HiPEAC '09 Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers
Transactional Scheduling for Read-Dominated Workloads
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
A universal construction for wait-free transaction friendly data structures
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
RobuSTM: a robust software transactional memory
SSS'10 Proceedings of the 12th international conference on Stabilization, safety, and security of distributed systems
Deadline-aware scheduling for Software Transactional Memory
DSN '11 Proceedings of the 2011 IEEE/IFIP 41st International Conference on Dependable Systems&Networks
Universal constructions that ensure disjoint-access parallelism and wait-freedom
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
STM systems: enforcing strong isolation between transactions and non-transactional code
ICA3PP'12 Proceedings of the 12th international conference on Algorithms and Architectures for Parallel Processing - Volume Part I
Towards a universal construction for transaction-based multiprocess programs
Theoretical Computer Science
Hugh: a semantically aware universal construction for transactional memory systems
Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
A practical wait-free simulation for lock-free data structures
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
The aim of a Software Transactional Memory (STM) system is to discharge the programmer from the explicit management of synchronization issues. The programmer's job resides in the design of multiprocess programs in which processes are made up of transactions, each transaction being an atomic execution unit that accesses concurrent objects. The important point is that the programmer has to focus her/his efforts only on the parts of code which have to be atomic execution units without worrying on the way the corresponding synchronization has to be realized. Non-trivial STM systems allow transactions to execute concurrently and rely on the notion of commit/abort of a transaction in order to solve their conflicts on the objects they access simultaneously. In some cases, the management of aborted transactions is left to the programmer. In other cases, the underlying system scheduler is appropriately modified or an underlying contention manager is used in order that each transaction be ("practically always" or with high probability) eventually committed. This paper presents a deterministic STM system in which (1) every invocation of a transaction is executed exactly once and (2) the notion of commit/abort of a transaction remains unknown to the programmer. This system, which imposes restriction neither on the design of processes nor or their concurrency pattern, can be seen as a step towards the design of a deterministic universal construction to execute transaction-based multiprocess programs on top of a multiprocessor. Interestingly, the proposed construction is lock-free (in the sense that it uses no lock).