Results 1 - 10
of
13
Cyclic Weighted Reference Counting without Delay
- of Lecture Notes in Computer Science
, 1992
"... Weighted Reference Counting is a low communication distributed storage reclamation scheme for loosely-couple multiprocessors. The algorithm we present herein extends weighted reference counting to allow the collection of cyclic data structures. To do so, the algorithm identifies candidate objects th ..."
Abstract
-
Cited by 17 (4 self)
- Add to MetaCart
Weighted Reference Counting is a low communication distributed storage reclamation scheme for loosely-couple multiprocessors. The algorithm we present herein extends weighted reference counting to allow the collection of cyclic data structures. To do so, the algorithm identifies candidate objects that may be part of cycles and performs a tricolour mark-scan on their subgraph in a lazy manner to discover whether the subgraph is still in use. The algorithm is concurrent in the sense that multiple useful computation processes and garbage collection processes can be performed simultaneously. Keywords: Memory management, Distributed memory, Reference counting, Garbage collection. Introduction Computation on distributed systems involving several processors is already a reality. In a distributed multiprocessor system each processor is responsible for allocating and reclaiming structures residing in its local memory; interprocessor communication is far less efficient than local memory access...
A Distributed Garbage Collector with Diffusion Tree Reorganisation and Mobile Objects
- In Proceedings of the 3rd ACM international conference on functional programming
, 1997
"... We present a new distributed garbage collection algorithm that is able to reorganise diffusion trees and to support mobile objects. It has a modular design comprising three components: a reliable transport mechanism, a referencecounting based distributed garbage collector for non-mobile objects, and ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
We present a new distributed garbage collection algorithm that is able to reorganise diffusion trees and to support mobile objects. It has a modular design comprising three components: a reliable transport mechanism, a referencecounting based distributed garbage collector for non-mobile objects, and an extra layer that provides mobility. The algorithm is formalised by an abstract machine and is proved to be correct. The safety property ensures that an object may not be reclaimed as long as it is referred to locally or remotely. The liveness property guarantees that unreachable objects will eventually be reclaimed. The mobility property certifies that messages are always forwarded towards more recent mobile object positions. 1 Introduction Distributed object systems provide programmers with the capability to refer to remote objects and to activate remote computations (generally called remote method invocation) [27, 28]. In this context, distributed garbage collection is a valuable tec...
A Construction of Distributed Reference Counting
, 1999
"... Distributed reference counting is a general purpose technique, which may be used, e.g., to detect termination of distributed programs or to implement distributed garbage collection. We present a distributed reference counting algorithm and a mechanical proof of correctness carried out using the p ..."
Abstract
-
Cited by 12 (8 self)
- Add to MetaCart
Distributed reference counting is a general purpose technique, which may be used, e.g., to detect termination of distributed programs or to implement distributed garbage collection. We present a distributed reference counting algorithm and a mechanical proof of correctness carried out using the proof assistant Coq. The algorithm is formalised by an abstract machine, and its correctness has two dierent facets. The safety property ensures that if there exists a reference to a resource, then its reference counter will be strictly positive. Liveness guarantees that if all references to a resource are deleted, its reference counter will eventually become null. 1 Introduction Reference counting is a general purpose technique that is able to count the number of references to a given resource. Collins [5] was the rst to use it in order to determine when list cells were no longer needed. Operating systems rely on this technique in order to decide when les may be deleted or when le...
Tree Rerooting in Distributed Garbage Collection: Implementation and Performance Evaluation
- Higher-Order and Symbolic Computation
, 2000
"... We have recently defined a new algorithm for distributed garbage collection based on reference-counting [20, 24]. At the heart of the algorithm, we find tree rerooting, a mechanism able to reduce third-party dependencies by reorganising diffusion trees. In reality, the algorithm describes a spectrum ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
We have recently defined a new algorithm for distributed garbage collection based on reference-counting [20, 24]. At the heart of the algorithm, we find tree rerooting, a mechanism able to reduce third-party dependencies by reorganising diffusion trees. In reality, the algorithm describes a spectrum of algorithms according to the policy used to manage messages. In this paper, we present the implementation of the algorithm and evaluate its performance. We have implemented two policies, which are extremes of the spectrum, respectively using and not using tree rerooting. In addition, two different strategies for managing action queues have been implemented. The conclusions of our experimentations are the following. Tree rerooting offers more parallelism during distributed gc activity; we explain this phenomenon by the length reduction of causality chains in the distributed gc. Grouping messages per destination dramatically reduces the number of messages, but requires a more complex implementation as messages have to be sorted per destination. Speed up of 100% has been observed on some benchmarks.
A Generic Middleware for Intra-Language Transparent Distribution
, 2003
"... It is generally recognized that developing distributed applications is very difficult. The simplest approach is to program each process using established centralized programming techniques and complement with coordinated message sending between processes using some communication service like TCP. Th ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
It is generally recognized that developing distributed applications is very difficult. The simplest approach is to program each process using established centralized programming techniques and complement with coordinated message sending between processes using some communication service like TCP. There are many aspects that must be dealt with; synchronization between processes, getting the coordination in message sending right, preventing race conditions, avoiding deadlock, constructing outgoing messages, and parsing incoming messages. The sheer complexity of programming distributed applications on this level is overwhelming. To lessen the inherent complexity of distributed programming a number of distributed programming systems and/or middlewares have been developed over the years. Some target special kinds of networks, e.g. clusters on LANs. Others are more general and can be used on many different kinds of networks; LANs, WANs, the Internet and possibly wireless. In this paper we are concerned with systems of the second kind, systems that do not assume any special network topology or hardware. Some middlewares are geared...
Starting with termination: A methodology for building distributed garbage collection algorithms
- Aust. Comput. Sci. Commun
, 2001
"... We propose an effective methodology in which a distributed garbage collector may be derived from a distributed termination algorithm and a centralized garbage collector in a manner that preserves interesting properties of the original collector, such as completeness. To illustrate our technique we s ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
We propose an effective methodology in which a distributed garbage collector may be derived from a distributed termination algorithm and a centralized garbage collector in a manner that preserves interesting properties of the original collector, such as completeness. To illustrate our technique we show how two distributed termination algorithms, credit recovery and task balancing, may be suitably described; and then map four centralized garbage collectors—reference counting, mark/scan, a generational scheme, and the Mature Object Space collector (MOS)—onto this description. The advantage of our approach is that, by separating the issues of distribution and collection, we alleviate the difficulty of inventing, understanding, and comparing distributed garbage collection techniques. 1
Distributed garbage collection for mobile actor systems: The pseudo root approach
- In Advances in Grid and Pervasive Computing, First International Conference, GPC 2006, volume 3947 of Lecture Notes in Computer Science
, 2006
"... Abstract. Automatic distributed garbage collection (GC) gives abstraction to grid application development, promoting code quality and improving resource management. Unreachability of active objects or actors from the root set is not a sufficient condition to collect actor garbage, making passive obj ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
Abstract. Automatic distributed garbage collection (GC) gives abstraction to grid application development, promoting code quality and improving resource management. Unreachability of active objects or actors from the root set is not a sufficient condition to collect actor garbage, making passive object GC algorithms unsafe when directly used on actor systems. In practical actor languages, all actors have references to the root set since they can interact with users, e.g., through standard input or output streams. Based on this observation, we introduce pseudo roots: a dynamic set of actors that can be viewed as the root set. Pseudo roots use protected (undeletable) references to ensure that no actors are erroneously collected even with messages in transit. Following this idea, we introduce a new direction of actor GC, and demonstrate it by developing a distributed GC framework. The framework can thus be used for automatic life time management of mobile reactive processes with unordered asynchronous communication. This report is an extended version of [42]. It provides more information about how we built a distributed garbage collector with the help of the pseudo root approach. It also shows experimental results for local GC. 1
Sparsely Faceted Arrays: A Mechanism Supporting Parallel Allocation, Communication, and Garbage Collection
- Communication, and Garbage Collection”, Ph.D. Thesis, Dept. of EECS, M.I.T
, 2002
"... Conventional parallel computer architectures do not provide support for nonuniformly distributed objects. In this thesis, I introduce sparsely faceted arrays (SFAs), a new low-level mechanism for naming regions of memory, or facets, on different processors in a distributed, shared memory parallel pr ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Conventional parallel computer architectures do not provide support for nonuniformly distributed objects. In this thesis, I introduce sparsely faceted arrays (SFAs), a new low-level mechanism for naming regions of memory, or facets, on different processors in a distributed, shared memory parallel processing system. Sparsely faceted arrays address the disconnect between the global distributed arrays provided by conventional architectures (e.g. the Cray T3 series), and the requirements of high-level parallel programming methods that wish to use objects that are distributed over only a subset of processing elements. A sparsely faceted array names a virtual globally-distributed array, but actual facets are lazily allocated. By providing simple semantics and making efficient use of memory, SFAs enable efficient implementation of a variety of non-uniformly distributed data structures and related algorithms. I present example applications which use SFAs, and describe and evaluate simple hardware mechanisms for implementing SFAs.
Birrell’s Distributed Reference Listing Revisited
"... The Java RMI collector is arguably the most widely used distributed garbage collector. Its distributed reference listing algorithm was introduced by Birrell in the context of Network Objects, where the description was informal and heavily biased toward implementation. In this paper, we formalise thi ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
The Java RMI collector is arguably the most widely used distributed garbage collector. Its distributed reference listing algorithm was introduced by Birrell in the context of Network Objects, where the description was informal and heavily biased toward implementation. In this paper, we formalise 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 are not accounted for by Birrell. We use our formalisation 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 optimised, either by placing constraints on message channels or by tightening the coupling between application program and distributed garbage collector.
Semantic Analyses for Storage Management Optimizations in Functional Language Implementations
, 1991
"... One of the major overheads in implementing functional languages is the storage management overhead due to dynamic allocation and automatic reclamation of indefinite-extent storage. This dissertation investigates the problems of statically inferring lifetime information about dynamically-allocated ob ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
One of the major overheads in implementing functional languages is the storage management overhead due to dynamic allocation and automatic reclamation of indefinite-extent storage. This dissertation investigates the problems of statically inferring lifetime information about dynamically-allocated objects in higher-order polymorphic functional languages, both strict and non-strict, and of applying that information to reduce the storage management overhead. We have developed a set of compile-time semantic analyses for a higher-order, monomorphic, strict functional language based on denotational semantics and abstract interpretation. They are 1) escape analysis, which provides information about the relative lifetimes of objects such as arguments and local objects defin...

