In this paper we present a proof outline of the sequential consistency the lazy caching protocol of Afek, Brown, and Merritt. We 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. What we present, in fact, is a rationalized design of the distributed caching memory. We will use 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 follow 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.
[1]
Kim G. Larsen,et al.
Compositional Theories Based on an Operational Semantics of Contexts
,
1989,
REX Workshop.
[2]
Yehuda Afek,et al.
Lazy caching
,
1993,
TOPL.
[3]
Tommaso Bolognesi,et al.
Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling
,
1994,
FORTE.
[4]
Rob J. van Glabbeek,et al.
The Linear Time - Branching Time Spectrum II
,
1993,
CONCUR.
[5]
Robin Milner,et al.
Communication and concurrency
,
1989,
PHI Series in computer science.
[6]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[7]
Ed Brinksma.
On the Uniqueness of Fixpoints Modulo Observation Congruence
,
1992,
CONCUR.