Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Arquitetura da Máquina Virtual Java
James de Souza - RA IC - Unicamp - Novembro/2005
2
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
3
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
4
Arquitetura da JVM - Estrutura
5
Arquitetura da JVM - Tipos de dados
6
Arquitetura da JVM - Threads e Stacks
7
Arquitetura da JVM - Área de métodos e heap
- área de métodos - informações das classes - heap - área de instâncias
8
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
9
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
10
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
11
Arquitetura da JVM - Exemplo
class Act { public static void doMathForever() { int i = 0; for (;;) { i += 1; i *= 2; }
12
Arquitetura da JVM - Exemplo
0 iconst_ // 03 1 istore_ // 3b 2 iinc 0, // 5 iload_ // 1a 6 iconst_ // 05 7 imul // 68 8 istore_ // 3b 9 goto // a7 ff f9
13
Arquitetura da JVM - Otimizações
- inicialmente considerada lenta - interpretada - otimização usando compilação para código nativo direto - otimização usando hardware: picoJava - otimização utilizando JIT (Just-In-Time)
14
Arquitetura da JVM - Conclusão
- simples e de fácil implementação - permite independência de hardware - ao mesmo tempo abre espaço para implementações específicas - utilização de bytecodes - outras linguagens - lenta quando interpretada, porém otimizada em hardware e JIT
15
Arquitetura da JVM - Bibliografia
- Sun Microsystems, Inc. The Java Virtual Machine Specification, 1999. - B. Venners. Inside the Java Virtual Machine. Artima Software, Inc., 2003. - Tom R. Halfhill, How To Soup Up Java, 1998. - Austin C. e Pawlan M., Advanced Programming for the Java 2 Platform, 1999. - Apache Software Foundation, Byte Code Engineering Library, 2003
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.