Communicating sequential processes
Communicating sequential processes
Introduction to the ISO specification language LOTOS
Computer Networks and ISDN Systems - Special Issue: Protocol Specification and Testing
Communication and concurrency
Process algebra
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Linear Time - Branching Time Spectrum II
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Compositional Theories Based on an Operational Semantics of Contexts
Stepwise Refinement of Distributed Systems, Models, Formalisms, Correctness, REX Workshop
Extending Memory Consistency of Finite Prefixes to Infinite Computations
CONCUR '01 Proceedings of the 12th International Conference on Concurrency Theory
Using Timestamping and History Variables to Verify Sequential Consistency
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Information and Computation
Hi-index | 0.00 |
In this paper we present a proof of the sequential consistency of the lazy caching protocol of Afek, Brown, and Merritt. The proof will follow a strategy of stepwise refinement, developing the distributed caching memory in five transformation steps from a specification of the serial memory, whilst preserving the sequential consistency in each step. The proof, in fact, presents a rationalized design of the distributed caching memory. We will carry out our proof using a simple process-algebraic formalism for the specification of the various design stages. We will not follow a strictly algebraic exposition, however. At some points the correctness will be shown using direct semantic arguments, and we will also employ higher-order constructs like action transducers to relate behaviours. The distribution of the design/proof over five transformation steps provides a good insight into the variations that could have been allowed at each point of the design while still maintaining sequential consistency. The design/proof in fact establishes the correctness of a whole family of related memory architectures. The factorization in smaller steps also allows for a closer analysis of the fairness assumptions about the distributed memory.