Garbage collection in distributed systems

The provision of system-wide heap storage has a number of advantages. However, when the technique is applied to distributed systems automatically recovering inaccessible variables becomes a serious problem. This thesis presents a survey of such garbage collection techniques but finds that no existing algorithm is entirely suitable. A new, general purpose algorithm is developed and presented which allows individual systems to garbage collect largely independently. The effects of these garbage collections are combined, using recursively structured control mechanisms, to achieve garbage collection of the entire heap with the minimum of overheads. Experimental results show that new algorithm recovers most inaccessible variables more quickly than a straightforward garbage collection, giving an improved memory utilisation.

[1]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[2]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[3]  Alexandru Nicolau,et al.  Comparison of Compacting Algorithms for Garbage Collection , 1983, TOPL.

[4]  Janak H. Patel,et al.  Parallel Garbage Collection Without Synchronization Overhead , 1985, ISCA.

[5]  Ivor P. Page,et al.  Improving the Performance of Buddy Systems , 1986, IEEE Transactions on Computers.

[6]  William M. Waite,et al.  An efficient machine-independent procedure for garbage collection in various list structures , 1967, CACM.

[7]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.

[8]  Edward M. Reingold A nonrecursive list moving algorithm , 1973, CACM.

[9]  Peter Boehler Bishop,et al.  Computer systems with a very large address space and garbage collection , 1977 .

[10]  Roger M. Needham,et al.  An asynchronous garbage collector for the CAP filing system , 1978, OPSR.

[11]  William A. Wulf,et al.  HYDRA , 1974, Commun. ACM.

[12]  Janak H. Patel,et al.  An efficient LISP-execution architecture with a new representation for list structures , 1985, ISCA '85.

[13]  Richard J. Beach,et al.  A structural view of the Cedar programming environment , 1986, TOPL.

[14]  F. Lockwood Morris,et al.  A time- and space-efficient garbage compaction algorithm , 1978, CACM.

[15]  K.A.G. Müller,et al.  On the feasibility of concurrent garbage collection , 1976 .

[16]  Edward G. Coffman,et al.  On the Asymptotic Optimality of First-Fit Storage Allocation , 1985, IEEE Transactions on Software Engineering.

[17]  Joseph Weizenbaum Symmetric list processor , 1963, CACM.

[18]  Ivor P. Page Analysis of a Cyclic Placement Scheme , 1984, Comput. J..

[19]  Lars-Erik Thorelli A fast compactifying garbage collector , 1976 .

[20]  George E. Collins,et al.  A method for overlapping and erasure of lists , 1960, CACM.

[21]  Ronald Morrison,et al.  Procedures as persistent data objects , 1985, TOPL.

[22]  Georg Ch. Pflug Dynamic Memory Allocation - A Markovian Analysis , 1984, Comput. J..

[23]  Paul Hudak Object and task reclamation in distributed applicative processing systems , 1982 .

[24]  Brian Randell,et al.  A note on storage fragmentation and program segmentation , 1969, CACM.

[25]  Ian A. Newman,et al.  A Hybrid Multiple Processor Garbage Collection Algorithm , 1987, Comput. J..

[26]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[27]  Ben Wegbreit,et al.  A generalised compactifying garbage collector , 1972, Comput. J..

[28]  Richard C. H. Connor,et al.  Polymorphism, persistence and software re-use in a strongly typed object-oriented environment , 1987, Softw. Eng. J..

[29]  Konrad Lai,et al.  Supporting ada memory management in the iAPX-432 , 1982, ASPLOS I.

[30]  Paul Walton Purdom,et al.  Statistical Properties of the Buddy System , 1970, JACM.

[31]  Ian A. Newman,et al.  Improved Multiprocessor Garbage Collection Algorithms , 1983, ICPP.

[32]  Jon L. White,et al.  Address/Memory Management for a Gigantic LISP Environment. , 1980 .

[33]  James E. White A high-level framework for network-based resource sharing , 1976, AFIPS '76.

[34]  Norihisa Suzuki,et al.  Creating efficient systems for object-oriented languages , 1984, POPL '84.