991899 Java Apresentacao

375 palavras 2 páginas
Arquitetura da Máquina Virtual Java

James de Souza - RA 991899
IC - Unicamp - Novembro/2005

Arquitetura da JVM - Agenda
- Introdução
- Estrutura
- Tipos de dados
- Área de dados
- Conjunto de instruções
- Limitações
- Exemplo de bytecode
- Otimizações
- Conclusão
- Bibliografia

Arquitetura da JVM - Introdução
- motivação: portabilidade
- um novo nível de abstração
- trabalha com bytecodes
- pode ser implementada em diversas arquiteturas
- formato de arquivo class
- subsistemas, área de memória, tipos de dados e instruções Arquitetura da JVM - Estrutura

Arquitetura da JVM - Tipos de dados

Arquitetura da JVM - Threads e Stacks

Arquitetura da JVM - Área de métodos e heap
- área de métodos - informações das classes
- heap - área de instâncias

Arquitetura da JVM - Conjunto de Instruções
- Instruções load e store
Ex: iload, dload
- Instruções aritméticas
Ex: iadd, lsub, fmul, ishl, iand
- Instruções para conversão de dados
Ex: i2l, f2d
- Instruções para manipulação de objetos
Ex: new, newarray, getfield, putstatic

Arquitetura da JVM - Conjunto de Instruções
- Instruções para gerenciamento da pilha (operand stack) Ex: pop, dup, swap
- Instruções de controle
Ex: ifeq, ifnull, ifnonnull, goto
- Instruções de chamada e retorno de métodos
Ex: invokevirtual, invocstatic

Arquitetura da JVM - Limitações
- arquivo class - magic - 0xCAFEBABE
- campos: minor_version, major_version, access_flag
(ACC_FINAL, ACC_ABSTRACT), fields_count, fields[]
- máximo de variáveis locais: 65535
- operand stack: 65535
- número de parâmetros de um método: 255

Arquitetura da JVM - Exemplo class Act { public static void doMathForever() { int i = 0; for (;;) { i += 1; i *= 2;
}
}
}

Arquitetura da JVM - Exemplo
0
1
2
5
6
7
8
9

iconst_0 istore_0 iinc 0, 1 iload_0 iconst_2 imul istore_0 goto 2

// 03
// 3b
// 84 00 01
// 1a
// 05
// 68
// 3b
// a7 ff f9

Arquitetura da JVM - Otimizações
- inicialmente considerada lenta - interpretada
- otimização usando compilação para código

Relacionados