Máquinas virtuais Orlando Corrêa Netto.

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

Parte 1: Organização de Computadores
Capitulo 6: Entrada e Saída
gerador de código intermediário
Arquitetura e organização de computadores
Software Básico Silvio Fernandes
ARQUITETURAS RISC E CISC
Multithreading e multiprocessamento
Arquiteturas Superescalares
Aproveitamento do Processador
SSC114 Arquitetura de Computadores Arquiteturas Paralelas
SSC144 Arquitetura de Computadores Introdução
Estudo comparativo entre as arquiteturas Opteron e Itanium
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Concorrência Aula X.
Threads.
Classes e objetos P. O. O. Prof. Grace.
Prof. Felipe Ferreira de Oliveira
Monitores.
Fundamentos da Arquitetura de Computadores
Adriano da Silva Castro
SISTEMAS OPERACIONAIS
CUDA vs OpenCL Introdução.
Fundamentos de programação CUDA
Arquitetura de computadores
Concorrência entre Threads Java
Sistemas Operacionais I
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Sistemas Distribuídos
Classes, Objetos, Atributos e Métodos JAVA
Conceitos de J2EE para a WEB
Organização e Arquitetura de Computadores
Capítulo 5 Garbage Collector.
Agenda Modos de Endereçamento.
PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.
Davi de Andrade Lima Castro RA:  A plataforma C6000: ◦ Ponto-fixo:  C62x  C64 / C64x+ ◦ Ponto-flutuante:  C67x / C67x+ ◦ Arquitetura VLIW:
Ambiente de Execução - Rotinas
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Garbage Collection O que é Garbage Collector? É o coletor de lixo que é utilizado pela JVM para a limpeza da memória.
POLIMIG Curso Técnico em Informática Disciplina: Hardware
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Sistemas Operacionais
Capítulo VIII Ambientes de Execução
Unidade Central De Processamento: Processador
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Processos.
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Sistemas Operacionais
8088 Assembly Software Básico Mitsuo Takaki.
Performance Java Flávia Falcão |
Registradores.
Linguagem C.
Flávia Falcão Java Performance Flávia Falcão
GARBAGE COLLECTOR 1 UNIVERSIDADE FEDERAL DO PARÁ - UFPA.
SISTEMAS OPERACIONAIS MACH EPOS
Estrutura de Dados II Alocação Dinâmica. Alocação de memória Ao ser executado, um programa carrega seu código executável para a memória; Uma parte da.
Introdução Sintaxe Básica da Linguagem JAVA
Sistemas de Memória Cache em Multiprocessadores
Ferramentas para desenvolvimento Java
Processadores.
Funcionamento interno do computador
 é uma iniciativa da Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações.  Todo e qualquer código gerado.
Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Sistemas Operacionais de Redes Virtualização IGOR ALVES.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
ProgramaçãoConcorrente Glêdson Elias
Transcrição da apresentação:

Máquinas virtuais Orlando Corrêa Netto

Agenda Conceito de máquina virtual; Construção da máquina em função da plataforma de desenvolvimento, ao contrario da máquina física; Custo de memória de um ambiente OO; Coletor de lixo e otimizações; Micro arquitetura SMT (Simultaneous Multi Threading); Modelo de memória na presença de threads.

Maquina virtual Máquina virtual é uma abstração, com micro instruções próximas ao de maquinas físicas

Modelo de Memória Provê uma abstração para leitura e escrita do modelo de memória da plataforma; Exemplo: Double umNumero = new Double(“1.2”); Cria uma palavra de 64 bits para representação de virgula flutuante de precisão dupla, independente da plataforma.

Desalocação automática (garbage collector) Em Java não existem métodos para desalocação manual de memória como free e delete (c/c++); Ao se criar um objeto, este possui um cabeçalho (header) com atributos especiais usados pela VM e não acessiveis ao programador;

Desalocação automática - Antes Entre estes atributos: contador de referências; Ao criarmos um objeto, o contador era zerado e a cada nova referência o contador era incrementado, e decrementado caso a referência fosse eliminada; Contador = 0  lápide;

Desalocação automática Hot spot: Localizar raízes: variáveis estáticas das classes carregadas e variáveis locais de métodos de execução; A partir das raízes, e feita a marcação: para cada raiz, seguimos suas referências recursivamente, marcando os objetos encontrados como vivos; O resto é lixo;

Processo Identificar raizes: {3,4, 6} 1 2 3 4 5 6 7 8 9 A B C D E Espaço livre Lixo Vivos 2 3 4 5 6 9 B C D Identificar raizes: {3,4, 6} Encontrar referências e marcar como vivos Compactar head

Complicações O mundo que vivemos e concorrente; Enquanto você lê esta frase, ocorrem respiração, circulação sanguínea, etc... Ao contrário do nosso mundo, a maioria das linguagens tem um único fluxo de execução; Java e C# são exemplos de linguagens multi-thread;

SMT SMT é uma técnica que permite múltiplas threads despacharem múltiplas instruções a cada ciclo para unidades funcionais de um processador superescalar. SMT combina a capacidade de despacho de múltiplas instruções das arquiteturas superescalares, com a habilidade de esconder latência das arquiteturas multithreading. A cada instante de tempo instruções de diferentes threads podem estar sendo executadas simultaneamente. Busca reduzir o número de slots de despacho não ocupados a cada ciclo (elevado em arquiteturas multithreading) e o número de ciclos em que nenhuma instrução é despachada (elevado em arquiteturas superescalares).

Modelo de Memória na presença de threads É uma especificação do funcionamento das threads e da gerência de memória na presença de threads; Garante consistência da memória na presença de threads;

MMT do .NET Imagine duas threads T1 e T2; T1 atualiza um objeto não local, obj.x = 10; T2 lê a variável: x = obj.x; em seguida; Não é garantido que T2 terá o novo valor: O código de T2 pode ter sido otimizado, fazendo cache num registrador temporário; Numa maquina multiprocessada, cada processador tem seu próprios caches, Ln;

Arquiteturas Spark e Itaniun fazem reordenação de instruções do tipo: T1:W[pos] = x; ++pos; T2: x=W[pos]  T1: ++pos; W[pos-1] = x; T2: x=W[pos]; O modelo precisa garantir a consistência mesmo na ausência de sincronização;

Referências http://discuss.develop.com/archives/wa.exe?A2=ind0203B&L=DOTNET&P=R375 http://www-106.ibm.com/developerworks/library/j-jtp02244.html?ca=dgr-lnxw07JMMP1