Abstract:
We develop an abstract model of memory management in distributed systems.
The model is low-level enough so we can express communication, allocation
and garbage collection, but otherwise hide many of the lower-level details
of an actual implementation.
Recently, such formal models have been developed for memory management in a
functional, sequential setting by Morrisett, Felleisen, and Harper. The
models are rewriting systems whose terms are programs. Programs have both
the "code" (control string) and the "store" syntactically apparent.
Evaluation is expressed as conditional rewriting and includes store operations. Garbage collection becomes a rewriting relation that removes part of the store
without affecting the behavior of the program.
By using techniques developed for communicating and concurrent systems such
as Milner's CCS, we extend the model for a distributed environment. Sending
and receiving messages is also made apparent at the syntactic level. A very
general garbage collection rule based on reachability is introduced and proved
correct. Now, proving correct a specific collection strategy is reduced to
showing that the relation between programs defined by the strategy is a
subrelation of the general relation. Any actual implementation which is
capable of providing the transitions (including their atomicity constraints)
specified by the strategy is therefore correct.