Olá Pessoal, tudo bom?
Continuando a descrição sobre a Arquitetura da Java Virtual Machine, no artigo de hoje iremos descrever a primeira parte sobre o subsistema de nome Runtime Data Area. Esse subsistema possui diversas áreas internas que auxiliam a execução de um projeta Java em uma Java Virtual Machine. Lembrando que esse artigo continuará a utilizar alguns conceitos sobre arquitetura de sistemas operacionais, assim termos desconhecidos podem surgir no contexto desse artigo. Peço nesses casos que me envie comentários a respeito desses termos, para que eu possa complementar o artigo e responder suas duvidas.
JVM – Runtime Data Area
Relembrando…
No artigo sobre a Arquitetura da Java Virtual Machine, foi apresentado a Figura 01. Nessa figura foram exibidos alguns subsistemas existentes dentro da JVM.
Runtime Data Area
De acordo com a arquitetura de sistemas operacionais, cada processo possui uma área de memória própria para realizar a sua execução perante o SO. Partindo desse princípio, cada instância da JVM também é um processo perante o sistema operacional, dessa forma ele também possui uma área de memória. Dentro da JVM porém, essa área de memória é dividida de forma diferenciada. Isso é necessário para o armazenamento de dados temporários relacionados a execução do código do programa Java, como variáveis locais, pilha de métodos em execução. Assim é necessário realizar a descrição dessas áreas de memória dentro da arquitetura Java.
Alem disso, a linguagem Java utiliza-se de um conceito chamado WORE (Write Once, Run Everywhere), ou seja, escreva apenas uma vez o código e você poderá executá-lo em qualquer lugar. Nesse aspecto, o termo “qualquer lugar” pode ser substituído por qualquer sistema operacional existente que possua uma implementação da JVM, o que implica que cada JVM implementada terá diferenças para poder ser utilizada pelo sistema operacional. A especificação da Java Virtual Machine define as áreas que estão apresentadas na Figura 02.
Como a Figura 02 demonstra, existem 6 subáreas dentro Runtime Data Area. Três destas (Heap, Method Area e Runtime Constant Pool) são globais à JVM, sendo compartilhadas por todas as threads. Já as outras três subáreas (PC Register, JVM Stack e Native Method Stack) são criadas para cadas thread. Todas essas subareas serão descritas com maior nível de detalhe nos próximos artigos.
finnaly{
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply