Arquitetura da Máquina Virtual Java

Slides:



Advertisements
Apresentações semelhantes

Advertisements

ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Arquitetura de Computadores
A Abstração de Programação Concorrente
Arquitetura e organização de computadores.
Aluno: Wlysses Sebastião Pereira
Histórico do Java 1990 James Gosling (Sun Microsystems)
Paradigmas de Programação
Assembly MAC-1 Implementação de ciclos Ciclo ‘while’ // Em Java : ...
Aula 4 – Sumário Linguagem assembly do MAC-1 A pilha
ARQUITETURAS RISC E CISC
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
MC542 Organização de Computadores Teoria e Prática
MO401 Arquitetura de Computadores I
Mateus Beck Rutzig Picojava Processors Mateus Beck Rutzig
Linguagens de programação
Rebeca Schroeder Linguagem Java Rebeca Schroeder
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Introdução à Programação
TRABALHO SOBRE LINGUAGUEM DE PROGRAMAÇAO CARACTERISTICAS DO JAVA
Prof. Msc. Raul Paradeda Aula 2 Introdução
MÉTRICAS ASSOCIADAS AO DESENVOLVIMENTO DE
Introdução a Programação Orientada a Objetos
JAVA: Conceitos Iniciais
Concorrência em Java Threads em Java.
Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.
JAVA Linguagem Ambiente de Desenvolvimento
Conceitos de Linguagem de Programação
João Ferreira, Dez 2003STRINGS, 1/6 Definição de String String (sentido lato) -> um string é um conjunto de valores (não necessariamente interpretáveis.
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Métodos de Construção de Software: Orientação a Objetos
Laboratório I Mateus Raeder Material baseado nos originais da
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Arquitetura de computadores
Geração de Código Teoria e Implementação de Linguagens Computacionais – IF688 Jobson Ronan Jeronimo da Silva
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Organização e Arquitetura de Computadores
Agenda Modos de Endereçamento.
Java Bytecode Software Básico Mitsuo Takaki.
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Capítulo VIII Ambientes de Execução
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
SISTEMAS OPERACIONAIS I
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Geração de Código Equipe de Monitores Teoria e Implementação de Linguagens Computacionais – IF688.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
OOP - Java Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora 1.
Linguagens de Programação II
Programação – JAVA Unidade 1 - Introdução
Análise de Artigo – TL2 Techniques for Obtaining High Performance in Java Programs IFFAT H. KAZI, HOWARD H. CHEN, BERDENIA STANLEY, AND DAVID J. LILJA.
Flávia Falcão Java Performance Flávia Falcão
GERENCIAMENTO DE MEMÓRIA EM JAVA ALUNOS: ANTÔNIO FLÁVIO(in memorian) E HEDLEY LUNA.
Introdução a Programação Orientada a Objetos
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
Igor Steinmacher, MSc. Java!!!!
Programação em Java Prof. Edvan Chaves.
JVM- Máquina Virtual Java
Introdução Sintaxe Básica da Linguagem JAVA
Engenharia de Sistemas Embarcados Aula 4: O Ambiente de Desenvolvimento.
Introdução a linguagem de Programação Java. Linguagens de Programação Linguagens de máquina(muito difíceis de usar e compreender) – Comanda ações do computador.
Ferramentas para desenvolvimento Java
Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.
Larva/Virtuos í Antonio Kantek T ó picos Avan ç ados de Programa ç ão Orientada a Objetos - MAC 413/5715 Segundo Semestre de 2003 Prof. Fabio Kon.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Prof. Cristian Rodrigo Dalcico. Linguagem de Programação Java Aula 1.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Introdução à plataforma Java. 2 A tecnologia Java Java: linguagem de programação e plataforma de desenvolvimento Criada pela Sun Microsystems Apoiada.
Capítulo 4 Estrutura do Sistema Operacional
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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 iconst_0 // 03 1 istore_0 // 3b 2 iinc 0, 1 // 84 00 01 5 iload_0 // 1a 6 iconst_2 // 05 7 imul // 68 8 istore_0 // 3b 9 goto 2 // a7 ff f9

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)

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

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