Jacaranda Mistkastn
Overview

Garbage Collection and Distributed Shared memory are two programming paradigms that aim to simplify the programmer's work by hiding inessencial details of the underlying system.

Garbage Collection—automatic memory management—achieves this by relieving the programmer from the need to track memory usage, and reclaim it when it is no longer needed. The garbage collector identifies objects that cannot be used by the software, and reclaims the memory they occupy. The software can directly use objects pointed to by global or local variable. By following pointers, the software can also use all the objects that are pointed to by usable objects. Objects that cannot be reached by following a chain of pointers are unusable by the software, and can, therefore, be reclaimed.

Distributed Shared Memory (DSM) is an abstraction over communication. It allows programs running on separate computers to communicate by writing to a shared region of memory. With a DSM, the programmer does not have to design and implement a communication protocol. Instead, a Coherency Protocol implemented by the DSM, is responsible for transparently forwarding memory updates made at one computer to all participating computers. To improve performance, the coherency protocol may sometimes delay the propagation of updates. The Consistency Model limits the type and scope of the optimisations used by the coherency protocol.

The purpose of the Mistkastn project is to study techniques for garbage collection for DSM. For this study, we are developing a DSM-based distributed Java virtual machine. Mistkastn is based on the JikesRVM™ research-oriented virtual machine. It extends MMTk—the JikesRVM™ memory management toolkit—to a toolkit for the rapid development and test of DSM implementations. Mistkastn is expected to support pluggable DSM implementations and garbage collectors, and will, therefore, provide the ideal environment for experimenting with garbage collection on distributed shared memory.