Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Providing high availability using lazy replication
ACM Transactions on Computer Systems (TOCS)
An introduction to assertional reasoning for concurrent systems
ACM Computing Surveys (CSUR)
Sharing memory robustly in message-passing systems
Journal of the ACM (JACM)
Eventually-serializable data services
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
ACM Transactions on Computer Systems (TOCS)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Distributed computing: fundamentals, simulations and advanced topics
Distributed computing: fundamentals, simulations and advanced topics
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
Distributed Algorithms
TAME: Using PVS strategies for special-purpose theorem proving
Annals of Mathematics and Artificial Intelligence
How to Construct an Atomic Variable (Extended Abstract)
Proceedings of the 3rd International Workshop on Distributed Algorithms
DISC '02 Proceedings of the 16th International Conference on Distributed Computing
Simple Wait-Free Multireader Registers
DISC '02 Proceedings of the 16th International Conference on Distributed Computing
RAMBO: A Reconfigurable Atomic Memory Service for Dynamic Networks
DISC '02 Proceedings of the 16th International Conference on Distributed Computing
PVS: Combining Specification, Proof Checking, and Model Checking
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Robust emulation of shared memory using dynamic quorum-acknowledged broadcasts
FTCS '97 Proceedings of the 27th International Symposium on Fault-Tolerant Computing (FTCS '97)
Distributed elections in an archimedean ring of processors
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
Timed I/O Automata: A Mathematical Framework for Modeling and Analyzing Real-Time Systems
RTSS '03 Proceedings of the 24th IEEE International Real-Time Systems Symposium
Byzantine disk paxos: optimal resilience with byzantine shared memory
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Compiling IOA without Global Synchronization
NCA '04 Proceedings of the Network Computing and Applications, Third IEEE International Symposium
Distributed Computing
Static analysis of atomicity for programs with non-blocking synchronization
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Verifiable compilation of i/o automata without global synchronization
Verifiable compilation of i/o automata without global synchronization
Atomic shared register access by asynchronous hardware
SFCS '86 Proceedings of the 27th Annual Symposium on Foundations of Computer Science
Concurrent reading while writing II: The multi-writer case
SFCS '87 Proceedings of the 28th Annual Symposium on Foundations of Computer Science
A Scalable and Oblivious Atomicity Assertion
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Hi-index | 0.00 |
Atomicity (or linearizability) is a commonly used consistency criterion for distributed services and objects. Although atomic object implementations are abundant, proving that algorithms achieve atomicity has turned out to be a challenging problem. In this paper, we initiate the study of systematic ways of verifying distributed implementations of atomic objects, beginning with read/write objects (registers). Our general approach is to replace the existing operational reasoning about events and partial orders with assertional reasoning about invariants and simulation relations. To this end, we define an abstract state machine that captures the atomicity property and prove correctness of the object implementations by establishing a simulation mapping between the implementation and the specification automata. We demonstrate the generality of our specification by showing that it is implemented by three different read/write register constructions: the message-passing register emulation of Attiya, Bar-Noy and Dolev, its optimized version based on real time, and the shared memory register construction of Vitanyi and Awerbuch. In addition, we show that a simplified version of our specification is implemented by a general atomic object construction based on the Lamport’s replicated state machine algorithm.