Affiliation:
1. Digital Equipment Corporation, Cambridge Research Center, One Kendall Square, Cambridge, MA
Abstract
A
concurrent object
is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on
critical sections
: ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, non-faulty processes will be unable to progress. By contrast, a concurrent object implementation is
non-blocking
if it always guarantees that some process will complete an operation in a finite number of steps, and it is
wait-free
if it guarantees that
each
process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing non-blocking and wait-free implementations of concurrent objects. The object's representation and operations are written as stylized sequential programs, with no explicit synchronization. Each sequential operation is automatically transformed into a non-blocking or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIMD) architecture in which
n
processes communicate by applying
read, write
, and
compare&swap
operations to a shared memory.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
25 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Performant almost-latch-free data structures using epoch protection in more depth;The VLDB Journal;2024-06-17
2. History-Independent Concurrent Objects;Proceedings of the 43rd ACM Symposium on Principles of Distributed Computing;2024-06-17
3. Exploiting Concurrency in Sharded Parallel State Machine Replication;IEEE Transactions on Parallel and Distributed Systems;2022-09-01
4. Jiffy;Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming;2022-03-28
5. Non-Blocking Technique for Parallel Algorithms with Global Barrier Synchronization;2021 International Conference on Computational Science and Computational Intelligence (CSCI);2021-12