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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 Máquinas virtuais Orlando Corrêa Netto

2 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.

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

4 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.

5 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;

6 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;

7 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;

8 Processo A6BCDE BCD9 1.Identificar raizes: {3,4, 6} 2.Encontrar referências e marcar como vivos 3.Compactar head Espaço livre Lixo Vivos

9 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;

10 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).

11 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;

12 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;

13 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;

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google