Autores

2273
135,563
2274
135,563

Informações:

Publicações do PESC

Título
Clusters Java: Implementação e Avaliação
Linha de pesquisa
Arquitetura e Sistemas Operacionais
Tipo de publicação
Dissertação de Mestrado
Número de registro
Data da defesa
19/5/2003
Resumo

 

Nesta tese, propomos um novo ambiente de execução distribuída que denominamos cJava para executar transparentemente aplicações Java em clusters. Especificamente, clava esconde a distribuição física das memórias dos nós do cluster, substituindo-a pela abstração de uma única memória compaitilhada distribuída. Para isso, cJava é capaz de distribuir as threads que compõem a aplicação Java pelas máquinas do cluster de maneira transparente ao programador. Nossa implementação de cJava requereu extensões significativas na máquina virtual Java original para fornecer a abstração proposta. Primeiro, um gerente de objetos distribuídos foi incorporado ao subsistema gerente de memória para criar um espaço global de objetos. Segundo, os acessos sincronizados ao espaço global de objetos foram estendidos para utilizar as primitivas lock() e unlock() fornecidas pelo sistema de memória compartilhada distribuída que cJava suporta. Terceiro, o subsistema de threads foi estendido para suportar criação remota e monitores globais. Finalmente, um subsistema responsável pela sinalização remota foi incorporado à máquina virtual Java. A principal propriedade de cJava é não requerer qualquer modificação da especificação da linguagem Java. Ainda mais importante é que os resultados experimentais de desempenho de cJava demonstram que a estratégia que esta tese defende para se construir clusters Java não somente é viável como também é altamente promissora.

Abstract

 

In this thesis, we propose a new distributed run-time environment, which we called cJava, for executing transparently multithread Java applications in clusters. Specifically, cJava is able to hide the physical memory distribution of the cluster's nodes by replacing it with the abstraction of a single distributed shared-memory. To this end, cJava distributes the threads of a Java application over the cluster's nodes in a transparent way to the programmer. Our implementation of cJava required significant extensions to the original Java virtual machine (JVM) to support the abstraction we proposed. First, a distributed object manager was incorporated to the memory management subsystem for creating the global object space. Second, synchronized accesses to the global object space were extended so that they could use the lock() and unlock() primitives the cJava's distributed shared memory system supports. Third, cJava extends the thread subsystem to support remote creation and global monitors. Last, a subsystem for remote signaling was added to the original JVM. The main property of cJava is that it does not require any modification to the Java Language specification. Most importantly, our experimental results of cJava's performance demonstrate that the strategy this thesis defends for building Java clusters is not only feasible but also highly promising.

Arquivo
Topo