Algorithms for on-the-fly garbage collection
ACM Transactions on Programming Languages and Systems (TOPLAS)
Volume I: Parallel architectures on PARLE: Parallel Architectures and Languages Europe
Volume I: Parallel architectures on PARLE: Parallel Architectures and Languages Europe
An efficient garbage collection scheme for parallel computer architectures
Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
"Algorithms for on-the-fly garbage collection" revisited
Information Processing Letters
Fine-grained mobility in the Emerald system
ACM Transactions on Computer Systems (TOCS)
A multicomputer garbage collector for a single-assignment language
International Journal of Parallel Programming
Indirect reference counting: a distributed garbage collection algorithm
PARLE '91 Proceedings on Parallel architectures and languages Europe : volume I: parallel architectures and algorithms: volume I: parallel architectures and algorithms
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Fault-tolerant reference counting for garbage collection in distributed systems
The Computer Journal - Special issue on distributed systems
Robust, distributed references and acyclic garbage collection
PODC '92 Proceedings of the eleventh annual ACM symposium on Principles of distributed computing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The derivation of distributed termination detection algorithms from garbage collection schemes
ACM Transactions on Programming Languages and Systems (TOPLAS)
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Portable, unobtrusive garbage collection for multiprocessor systems
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software—Practice & Experience - Special issue on object-oriented programming and technology
Lag, drag, void and use—heap profiling and space-efficient compilation revisited
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Collecting distributed garbage cycles by back tracing
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
An implementation of complete, asynchronous, distributed garbage collection
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Garbage collecting the Internet: a survey of distributed garbage collection
ACM Computing Surveys (CSUR)
A protocol for distributed reference counting
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Proving Liveness Properties of Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
An exercise in proving parallel programs correct
Communications of the ACM
Diffusion tree restructuring for indirect reference counting
Proceedings of the 2nd international symposium on Memory management
A method for overlapping and erasure of lists
Communications of the ACM
Distributed directory service and message routing for mobile agents
Science of Computer Programming
A construction of distributed reference counting
Acta Informatica
A fault-tolerant directory service for mobile agents based on forwarding pointers
Proceedings of the 2002 ACM symposium on Applied computing
Estimating the impact of heap liveness information on space consumption in Java
Proceedings of the 3rd international symposium on Memory management
Tree Rerooting in Distributed Garbage Collection: Implementation and Performance Evaluation
Higher-Order and Symbolic Computation
On the usefulness of type and liveness accuracy for garbage collection and leak detection
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Survey of Distributed Garbage Collection Techniques
IWMM '95 Proceedings of the International Workshop on Memory Management
A Cyclic Distributed Garbage Collector for Network Objects
WDAG '96 Proceedings of the 10th International Workshop on Distributed Algorithms
Cyclic Distributed Garbage Collection with Group Merger
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
On-the-Fly Garbage Collection: New Algorithms Inspired by Program Proofs
Proceedings of the 9th Colloquium on Automata, Languages and Programming
Cyclic Weighted Reference Counting without Delay
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
Verifying a Garbage Collection Algorithm
Proceedings of the 11th International Conference on Theorem Proving in Higher Order Logics
Verifying the Safety of a Practical Concurrent Garbage Collector
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Recording Process Documentation in the Presence of Failures
Methods, Models and Tools for Fault Tolerance
Time based agent garbage collection algorithm for multicore architectures
Proceedings of the International Conference on Advances in Computing, Communications and Informatics
Fully concurrent garbage collection of actors on many-core machines
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
The Java RMI collector is arguably the most widely used distributed garbage collector. Its distributed reference listing algorithm was introduced by Birrell et al. in the context of Network Objects, where the description was informal and heavily biased toward implementation. In this article, we formalize this algorithm in an implementation-independent manner, which allows us to clarify weaknesses of the initial presentation. In particular, we discover cases critical to the correctness of the algorithm that were not accounted for by Birrell. We use our formalization to derive an invariant-based proof of correctness of the algorithm that avoids notoriously difficult temporal reasoning. Furthermore, we offer a novel graphical representation of the state transition diagram, which we use to provide intuitive explanations of the algorithm and to investigate its tolerance to faults in a systematic manner. Finally, we examine how the algorithm may be optimized, either by placing constraints on message channels or by tightening the coupling between the application program and distributed garbage collector.