Proceedings Article10.1145/67386.67423
Linearizable concurrent objects
Maurice Herlihy,Jeannette M. Wing +1 more
- 26 Sep 1988
- Vol. 24, Iss: 4, pp 133-135
5
TL;DR: The foundations for a new approach to extending object-oriented methodologies to highly-concurrent shared-memory multiprocessors are described and a new correctness condition, linearizability, is advocated for implementing and reasoning about concurrent objects.
read more
Abstract: Technological advances are making multiprocessors more readily available, but despite impressive progress at the hardware level, it is still difficult to realize these machines' potential for parallelism. In the sequential domain, “object-oriented” programming methodologies based on data abstraction are widely recognized as an effective means of enhancing modularity, expressibility, and correctness. Our paper describes the foundations for a new approach to extending object-oriented methodologies to highly-concurrent shared-memory multiprocessors.The basic idea is the following: rather than communicating through low-level machine constructs such as bytes, words, registers, etc., processes communicate through abstract data structures called concurrens objects. For example, in a real-time system consisting of a pool of sensor and actuator processes, the processes might communicate via a first-in-first-out (FIFO) queue object in shared memory. When a sensor process detects a condition requiring a response, it records the condition by enqueuing a record in the queue. Whenever an actuator process becomes idle, it dequeues the next item from the queue and takes appropriate action. While the correct behavior of objects such as FIFO queues is well-understood in the sequential domain, it is not so obvious how a FIFO queue should behave when manipulated by concurrent processes. We advocate a new correctness condition, linearizability, for implementing and reasoning about concurrent objects.We view a concurrent system as a collection of sequential processes that communicate through shared objects. Each object has a type, which defines a set of possible values and a set of primitive operations that provide the only means to create and manipulate that object. In the absence of concurrency, operations are executed one at a time, and their meanings can be captured by simple pre- and postconditions. In a concurrent program, however, operations can be executed concurrently, thus it is necessary to find a new meaning for operations that may overlap in time. Two requirements seem to make intuitive sense: First, each operation should appear to “take effect” instantaneously, and second, the order of non-concurrent operations should be preserved. We define a concurrent computation to be linearizable2 if it is “equivalent” to a legal sequential computation that satisfies these two requirements.Informally, linearizability provides the illusion that each operation applied by concurrent processes takes effect instantaneously at some point between its invocation and its response. This property implies that the effects of a concurrent object's operations can still be specified using pre- and post-conditions; however, we interpret a data type's sequential specification as permitting only linearizable interleavings. Thus, instead of treating data as a mass of hardware registers or single large database whose entities are uninterpreted, linearizability exploits the semantics of abstract data types. It permits a high degree of concurrency, yet it permits programmers to specify and reason about concurrent objects using known techniques from the sequential domain.Using axiomatic specifications and our notion of linearizability, we can reason about two kinds of problems: (1) the correctness of linearizable object implementations by using new techniques that generalize the sequential notions of representation invariant and abstraction function to the concurrent domain; and (2) the correctness of computations that use linearizable objects by transforming assertions about concurrent computations into simpler assertions about their sequential counterparts.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Fault-Tolerant Consensus in Unknown and Anonymous Networks
Carole Delporte-Gallet,Hugues Fauconnier,Andreas Tielmann +2 more
- 22 Jun 2009
TL;DR: A novel pseudo leader-election approach is introduced which allows a leader-based consensus implementation without breaking symmetry in unknown and anonymous message-passing networks that suffer from crash-failures.
Granularity of modules in object-based concurrent systems
Peter Wegner
- 26 Sep 1988
TL;DR: The interaction of abstraction, distribution, and synchronization in determining the granularity of modules in object-based concurrent systems is examined and the relation between linearizability and serializability as correctness criteria for processes with internal concurrency is explored.
10
Granularity of modules in object-based concurrent systems
TL;DR: In this article, the interaction of abstraction, distribution, and synchronization in determining the granularity of modules in object-based concurrent systems is examined, and the relation between linearizability and synchronization is discussed.
9
Evaluating correctness criteria for transactions
D. E. Langworthy
- 26 Sep 1988
TL;DR: A metric to evaluate correctness criteria for transactions is proposed which measures the number of conflicts between transactions and the amount of concurrency a criterion allows and is then used to evaluate several correctness criteria.
2
•Posted Content
Fault-Tolerant Consensus in Unknown and Anonymous Networks
TL;DR: In this article, a pseudo leader-election approach is proposed to solve consensus in anonymous message-passing networks with crash-failures, which allows a leader-based consensus implementation without breaking symmetry.
1
References
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
TL;DR: Many large sequential computers execute operations in a different order than is specified by the program, and a correct execution by each processor does not guarantee the correct execution of the entire program.
The serializability of concurrent database updates
TL;DR: Several efficiently recognizable subclasses of the class of senahzable histories are introduced and it is shown how these results can be extended to far more general transaction models, to transactions with partly interpreted functions, and to distributed database systems.
Axioms for concurrent objects
Maurice Herlihy,Jeannette M. Wing +1 more
- 01 Oct 1987
TL;DR: This paper defines and discusses linearizability, and gives examples of how to reason about concurrent objects and verify their implementations based on their (sequential) axiomatic specifications.