An evaluation of cJava system architecture - Silva, A. F. da; Lobosco, M.; Amorim, C. L. de (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), 2003)
We propose a new distributed run-time environment, which we called cJava, that enables multithread Java applications to execute in clusters transparently. Our implementation of cJava supports the distributed shared memory (DSM) which required significant extensions to the original Java virtual machine (JVM). First, a distributed object manager was incorporated to the JVM's memory management subsystem for creating a global object space. Second, synchronized accesses to the global object space were extended so that they could use the lock() and unlock() primitives that cJava's DSM supports. Third, cJava adapted the thread subsystem to enable remote creation and global monitors. Last, a subsystem/or remote signaling was added to the original JVM. The main advantage of cJava is that it can execute existing multithread Java applications straightaway. Most importantly, our results of cJava's performance across several benchmarks show that cJava offers an efficient run-time system for executing transparently multithread Java applications in clusters.