A methodology for implementing highly concurrent data structures (1990)
Cached
Download Links
- [www.cs.brown.edu]
- [gatekeeper.dec.com]
- [www.hpl.hp.com]
- DBLP
Other Repositories/Bibliography
| Venue: | In 2nd Symp. Principles & Practice of Parallel Programming |
| Citations: | 295 - 12 self |
BibTeX
@INPROCEEDINGS{Herlihy90amethodology,
author = {Ma. Urice Herlihy},
title = {A methodology for implementing highly concurrent data structures},
booktitle = {In 2nd Symp. Principles & Practice of Parallel Programming},
year = {1990},
pages = {197--206}
}
Years of Citing Articles
OpenURL
Abstract
A con.curren.t object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on criticaI 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 aud wait-free implementations of concurrent objects. The object’s representation and operations are written as st,ylized sequential programs, with no explicit synchronization. Each sequential operation is automatically transformed into a non-blocking or wait-free operation usiug novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIM D) architecture in which n processes communicate by applying read, write, and comparekYswa,p operations to a shared memory. 1







