A METHODOLOGY FOR IMPLEMENTING HIGHLY CONCURRENT DATA OBJECTS

被引:172
作者
HERLIHY, M
机构
[1] Digital Equipment Corporation, Cambridge Research Laboratory, Cambridge, MA 02139, One Kendall Square
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 1993年 / 15卷 / 05期
关键词
ALGORITHMS; MANAGEMENT; PERFORMANCE; THEORY;
D O I
10.1145/161468.161469
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 automatically 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 (MIMD) architecture in which n processes communicate by applying atomic read, write, load-linked, and store-conditional operations to a shared memory.
引用
收藏
页码:745 / 770
页数:26
相关论文
共 42 条
[1]  
Anderson T. E., 1990, IEEE Transactions on Parallel and Distributed Systems, V1, P6, DOI 10.1109/71.80120
[2]   ON THE MINIMAL SYNCHRONISM NEEDED FOR DISTRIBUTED CONSENSUS [J].
DOLEV, D ;
DWORK, C ;
STOCKMEYER, L .
JOURNAL OF THE ACM, 1987, 34 (01) :77-97
[3]  
Dwork C., 1986, 27th Annual Symposium on Foundations of Computer Science (Cat. No.86CH2354-9), P222, DOI 10.1109/SFCS.1986.20
[4]   CONCURRENT SEARCH AND INSERTION IN 2-3 TREES [J].
ELLIS, CS .
ACTA INFORMATICA, 1980, 14 (01) :63-86
[5]   IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS [J].
FISCHER, MJ ;
LYNCH, NA ;
PATERSON, MS .
JOURNAL OF THE ACM, 1985, 32 (02) :374-382
[6]   BASIC TECHNIQUES FOR THE EFFICIENT COORDINATION OF VERY LARGE NUMBERS OF COOPERATING SEQUENTIAL PROCESSORS [J].
GOTTLIEB, A ;
LUBACHEVSKY, BD ;
RUDOLPH, L .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1983, 5 (02) :164-189
[7]  
GOTTLIEB A, 1983, IEEE T COMPUT, V32, P175, DOI 10.1109/TC.1983.1676201
[8]  
Guibas L.J., 1978, 19TH P ANN IEEE S F, P8
[9]  
HERLIHY M, 1993, CONF PROC INT SYMP C, P289, DOI 10.1145/173682.165164
[10]   CONCURRENT OPERATIONS ON PRIORITY-QUEUES [J].
JONES, DW .
COMMUNICATIONS OF THE ACM, 1989, 32 (01) :132-137