Distributed Shared Memory Management for Java

Jackal is a fine-grained distributed shared memory system that can run multithreaded Java programs on distributedmemory systems. The Jackal compiler generates an access check for every use of an object field or array element. The overhead of the access checks is reduced using compiler optimizations. The runtime system uses a homebased consistency protocol that manages (and caches) objects and array partitions. In addition, the runtime system manages the virtual address space and dynamically maps and unmaps pages, to support large data structures. Jackal uses local and global mark-and-sweep garbage collectors, which also deal with replicated objects and partitioned arrays. The paper discusses the various distributed memory management techniques used in the system and presents performance results on a cluster of workstations.

[1]  Jason Maassen,et al.  An efficient implementation of Java's remote method invocation , 1999, PPoPP '99.

[2]  Michael Philippsen,et al.  JavaParty - Transparent Remote Objects in Java , 1997, Concurr. Pract. Exp..

[3]  James R. Larus,et al.  Fine-grain access control for distributed shared memory , 1994, ASPLOS VI.

[4]  Henri E. Bal,et al.  User-Level Network Interface Protocols , 1998, Computer.

[5]  Henri E. Bal,et al.  Performance evaluation of the Orca shared-object system , 1998, TOCS.

[6]  Alan L. Cox,et al.  Conservative garbage collection on distributed shared memory systems , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

[7]  Marc Shapiro,et al.  A Survey of Distributed Garbage Collection Techniques , 1995, IWMM.

[8]  James R. Larus,et al.  Sirocco: cost-effective fine-grain distributed shared memory , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[9]  Kourosh Gharachorloo,et al.  Shasta: a low overhead, software-only approach for supporting fine-grain shared memory , 1996, ASPLOS VII.

[10]  Charles L. Seitz,et al.  Myrinet: A Gigabit-per-Second Local Area Network , 1995, IEEE Micro.

[11]  Akinori Yonezawa,et al.  An effective garbage collection strategy for parallel programming languages on large scale distributed-memory machines , 1997, PPOPP '97.

[12]  Thierry Le Sergent,et al.  LEMMA: A Distributed Shared Memory with Global and Local Garbage Collection , 1995, IWMM.

[13]  Assaf Schuster,et al.  Collecting Garbage Pages in a Distributed Shared Memory with Reduced Memory and Communication Overhead , 1997, ESA.

[14]  Alan L. Cox,et al.  TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems , 1994, USENIX Winter.

[15]  William Pugh Fixing the Java memory model , 1999, JAVA '99.

[16]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[17]  Philip J. Hatcher,et al.  Executing Java threads in parallel in a distributed-memory environment , 1998, CASCON.

[18]  John Hughes A Distributed Garbage Collection Algorithm , 1985, FPCA.