Axioms for memory access in asynchronous hardware systems
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Abstraction and specification in program development
Abstraction and specification in program development
The serializability of concurrent database updates
Journal of the ACM (JACM)
A Proof System for Communicating Sequential Processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving Liveness Properties of Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Final Data Types and Their Specification
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communicating sequential processes
Communications of the ACM
Abstract data types and software validation
Communications of the ACM
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Fundamentals of Algebraic Specification I
Fundamentals of Algebraic Specification I
Verification of concurrent programs, Part I: The temporal framework
Verification of concurrent programs, Part I: The temporal framework
Interleaving set temporal logic
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Impossibility and universality results for wait-free synchronization
PODC '88 Proceedings of the seventh annual ACM Symposium on Principles of distributed computing
Taking concurrency seriously (position paper)
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
Linearizable concurrent objects
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
Transactions for concurrent object-oriented programming systems
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
Sticky bits and universality of consensus
Proceedings of the eighth annual ACM Symposium on Principles of distributed computing
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Atomic snapshots of shared memory
PODC '90 Proceedings of the ninth annual ACM symposium on Principles of distributed computing
PODC '90 Proceedings of the ninth annual ACM symposium on Principles of distributed computing
Lazy replication: exploiting the semantics of distributed services
PODC '90 Proceedings of the ninth annual ACM symposium on Principles of distributed computing
Lower bounds for wait-free computation in message-passing systems
PODC '90 Proceedings of the ninth annual ACM symposium on Principles of distributed computing
Wait-free data structures in the asynchronous PRAM model
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
A methodology for implementing highly concurrent data structures
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Wait-free parallel algorithms for the union-find problem
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
Proving sequential consistency of high-performance shared memories (extended abstract)
SPAA '91 Proceedings of the third annual ACM symposium on Parallel algorithms and architectures
Lazy replication: exploiting the semantics of distributed services (extended abstract)
ACM SIGOPS Operating Systems Review
A methodology for implementing highly concurrent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A method for implementing lock-free shared-data structures
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
Wait-freedom vs. bounded wait-freedom in public data structures (extended abstract)
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
Computing with faulty shared objects
Journal of the ACM (JACM)
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Thread scheduling for multiprogrammed multiprocessors
Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures
Practical Byzantine fault tolerance
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Proceedings of the thirteenth annual ACM symposium on Parallel algorithms and architectures
Lazy replication: exploiting the semantics of distributed services
EW 4 Proceedings of the 4th workshop on ACM SIGOPS European workshop
Partial order relations in distributed object environments
ACM SIGOPS Operating Systems Review
Practical byzantine fault tolerance and proactive recovery
ACM Transactions on Computer Systems (TOCS)
International Journal of Parallel Programming
A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap
IEEE Transactions on Computers
Characterizing the Performance of Algorithms for Lock-Free Objects
IEEE Transactions on Computers
Public data structures: counters as a special case
Theoretical Computer Science
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Ninja: A Framework for Network Services
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Byzantine Fault Tolerance Can Be Fast
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
A taxonomy of correctness criteria in database applications
The VLDB Journal — The International Journal on Very Large Data Bases
Secure routing for structured peer-to-peer overlay networks
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
BASE: Using abstraction to improve fault tolerance
ACM Transactions on Computer Systems (TOCS)
Secure routing for structured peer-to-peer overlay networks
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Distributed Computing - Special issue: Verification of lazy caching
Time and space optimal implementations of atomic multi-writer register
Information and Computation
Proactive recovery in a Byzantine-fault-tolerant system
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Abortable and query-abortable objects and their efficient implementation
Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
HQ replication: a hybrid quorum protocol for byzantine fault tolerance
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Large-scale byzantine fault tolerance: safe but not always live
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Showing correctness of a replication algorithm in a component based system
IDEAS '08 Proceedings of the 2008 international symposium on Database engineering & applications
Finding race conditions in Erlang with QuickCheck and PULSE
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Time and space optimal implementations of atomic multi-writer register
Information and Computation
ACM SIGACT News
Mechanically verified proof obligations for linearizability
ACM Transactions on Programming Languages and Systems (TOPLAS)
Less is more: consensus gaps between restricted and unrestricted objects
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Lock-Free parallel algorithms: an experimental study
HiPC'04 Proceedings of the 11th international conference on High Performance Computing
An epistemic perspective on consistency of concurrent computations
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Hi-index | 0.01 |
Specification and verification techniques for abstract data types that have been successful for sequential programs can be extended in a natural way to provide the same benefits for concurrent programs. We propose an approach to specifying and verifying concurrent objects based on a novel correctness condition, which we call “linearizability.” Linearizability provides the illusion that each operation takes effect instantaneously at some point between its invocation and its response, implying that the meaning of a concurrent object's operations can still be given by pre- and post-conditions. In this paper, we will define and discuss linearizability, and then give examples of how to reason about concurrent objects and verify their implementations based on their (sequential) axiomatic specifications.