A Methodology for Implementing Highly Concurrent Data Objects

260Citations
Citations of this article
1.2kReaders
Mendeley users who have this article in their library.

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, nonfaulty processes will be unable to progress. By contrast, a concurrent object implementation is lock free 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 lock-free 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 atutomatically transformed into a lock-free or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data 1993 architecture in which n processes communicate by applying atomic read, write, load_linked, and store_conditional operations to a shared memory. © 1993, ACM. All rights reserved.

References Powered by Scopus

Impossibility of Distributed Consensus with One Faulty Process

3016Citations
N/AReaders
Get full text

How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs

1599Citations
N/AReaders
Get full text

Wait-Free Synchronization

1297Citations
N/AReaders
Get full text

Cited by Powered by Scopus

Hazard pointers: Safe memory reclamation for lock-free objects

373Citations
N/AReaders
Get full text

The nesC language: A holistic approach to networked embedded systems

340Citations
N/AReaders
Get full text

A pragmatic implementation of non-blocking linked-lists

324Citations
N/AReaders
Get full text

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Cite

CITATION STYLE

APA

Herlihy, M. (1993). A Methodology for Implementing Highly Concurrent Data Objects. ACM Transactions on Programming Languages and Systems (TOPLAS), 15(5), 745–770. https://doi.org/10.1145/161468.161469

Readers' Seniority

Tooltip

PhD / Post grad / Masters / Doc 774

78%

Researcher 120

12%

Professor / Associate Prof. 85

9%

Lecturer / Post doc 13

1%

Readers' Discipline

Tooltip

Computer Science 824

85%

Engineering 128

13%

Psychology 12

1%

Social Sciences 11

1%

Article Metrics

Tooltip
Mentions
References: 1

Save time finding and organizing research with Mendeley

Sign up for free