A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura da Máquina Virtual Java

Apresentações semelhantes


Apresentação em tema: "Arquitetura da Máquina Virtual Java"— Transcrição da apresentação:

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


Carregar ppt "Arquitetura da Máquina Virtual Java"

Apresentações semelhantes


Anúncios Google