Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Formal models of distributed memory management

Published: 01 August 1997 Publication History

Abstract

We develop am abstract model of memory management in distributed systems. The model is low-level enough so that we can express communication, allocation and garbage collection, but otherwise hides 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 [10]. 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.Distribution adds another dimension to an already complex problem. By using techniques developed for communicating and concurrent systems [9], we extend their work to 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 sub-relation 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.This model allows us to specify and prove correct in a compact manner two garbage collectors; the first one does a simple garbage collection local to a node. The second garbage collector uses migration of data in order to be able to reclaim inter-node cyclic garbage.

References

[1]
M. Ben-Art. Algorithms for on-the-fly garbage collection. A CM Transactions on Programming Languages and Systems, 6, 1984.
[2]
Gerard Boudol. Towards a lambda-calculus for concurrent and communicating systems. TAPSOFT'89 LNCS 351, pages 149-161, 1989.
[3]
Edsger Dijkstra, Leslie Lamport, A.J. Martin, C.S. Scholten, and E.F.M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):966-975, 1978.
[4]
Matthias Felleisen and Robert Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 102, 1992.
[5]
Benjamin Goldberg and Michael Gloger. Polymorphic type reconstruction for garbage collection without tags. Symposium on LISP and Functional Programming, 1992.
[6]
Paul Hudak and Robert Keller. Garbage collection and task deletion in distributed applicative processing systems. Symposium on LISP and Functional Programming, pages 168-178, 1982.
[7]
john Hughes. A distributed garbage collection algorithm. In knanctional Programming Languages and Computer Architectures, number 201 in Lecture Notes in Computer Science, pages 256-271. Springer-Verlag, 1985.
[8]
Robin Milner. A calculus for communicating systems. Lecture Notes in Computer Science, 92, 1980.
[9]
Robin Milner. Communication and Concurrency. International Series in Computer Science. Prentice Hall, 1989.
[10]
Greg Morrisett, Matthias Felleisen, and Robert Harper. Abstract models of memory management. in Functional Programming Languages and Computer Architectures, 1995.
[11]
Gordon Plotkin. Call-by-name, call-by-value and the A-calculus. Theoretical Computer Science, 1:125-159, 1975.
[12]
Mark Shapiro, David Plainfoss~, and Olivier Gruber. A garbage detection protocol for a realistic distributed object-support system. Technical Report 1320, IN- RIA, 1990.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 32, Issue 8
Aug. 1997
322 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/258949
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '97: Proceedings of the second ACM SIGPLAN international conference on Functional programming
    August 1997
    326 pages
    ISBN:0897919181
    DOI:10.1145/258948
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1997
Published in SIGPLAN Volume 32, Issue 8

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 415
    Total Downloads
  • Downloads (Last 12 months)103
  • Downloads (Last 6 weeks)20
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media