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

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

Aluno: Wlysses Sebastião Pereira

Apresentações semelhantes


Apresentação em tema: "Aluno: Wlysses Sebastião Pereira"— Transcrição da apresentação:

1 Construção de um protótipo de uma máquina virtual para execução de código binário
Aluno: Wlysses Sebastião Pereira Orientador: Marcos Alberto Lopes da Silva Curso: Ciência da Computação Uberlândia, 27 de Julho de 2013

2 Objetivo da apresentação
Descrever modelos de execução de códigos executáveis. Falar sobre alguns ambientes de execução virtual. Descrever estruturas e módulos usados em ambientes de execução.

3 Objetivo da apresentação
Apresentação do estudo de caso. Protótipo de máquina virtual para execução de código binário. Compilador assembler para criação de código binário a partir de código fonte de entrada. Demonstração da execução de códigos binários.

4 Modelos de execução Execução direta de código binário em hardware:
0x0A ... X86/ARM Código executável. Hardware nativo.

5 Modelos de execução Interpretação textual: Código executável.
PRINT “X” Interpretador X86/ARM Código executável. Le o conteúdo de texto do arquivo e efetua as ações. Hardware nativo.

6 Processador/máquina virtual
Modelos de execução Processadores/máquinas virtuais: 0x01 0x0A ... Processador/máquina virtual X86/ARM Código executável. Hardware virtual. Hardware nativo.

7 Alguns ambientes de execução virtual
Máquina virtual java (JVM): 0xCAFEBABE ... JVM X86/ARM Arquivo CLASS. Máquina virtual Java. Ambiente hospedeiro.

8 Alguns ambientes de execução virtual
Plataforma .NET: (CLI) .NET X86/ARM Arquivo .exe Plataforma .NET Ambiente hospedeiro.

9 Alguns ambientes de execução virtual
Parrot: 0x0A 0x01 Parrot X86/ARM Código executável. Máquina virtual Parrot Ambiente hospedeiro.

10 Estruturas e módulos usados em ambientes de execução
Opcode (Código de operação): Instrução Valor numérico MOV EAX, DWORD PTR [EBP+8] 0x7C90EBC2 MOV ECX, DWORD PTR [EBP+4] 0x7C90EBC5 PUSH 1 0x7C90EC34 ...

11 Estruturas e módulos usados em ambientes de execução
Carregador de Opcode: Memória Código executável Área de código OPCODES

12 Estruturas e módulos usados em ambientes de execução
Just in Time i++; JIT ADD [01], 1

13 Estudo de Caso Protótipo de Máquina virtual Processador Memória
R0, R1, R2, R3, R4, R5, R6, R7, CS, DS, SS, IP, SP, BP, FLAG_Z, FLAG_S 1 byte 2 bytes

14 Protótipo de Máquina virtual
Código binário para execução Opcode de três bytes De ( ) até (FF FF FF) W 1 6 CS DS SS CÓDIGO 0xFF DADOS 1 byte 2 bytes 3 ou N bytes 0 ou N bytes

15 Protótipo de Máquina virtual
Memória Memória Código Dados Pilha

16 Protótipo de Máquina virtual
Execução de um código Memória Código executável Área de código OPCODES

17 Protótipo de Máquina virtual
Executado pelo executor de Opcodes. Exibido os valores dos registradores e das áreas da memória.

18 Estudo de Caso Compilador assembler Linguagem parecida com assembly.
Sem diferenciação entre maiúsculo e minúsculo. .VAR $variavel .PROGRAM MOV R0 2 ST0 0x0A .END

19 Demonstração da execução de códigos binários

20 Conclusão A máquina virtual executa com satisfação mesmo sendo sobre um ambiente virtual. Mostrado na prática o desenvolvimento e execução de um ambiente virtual.

21 Sugestões de trabalhos futuros
Desenvolvimento de uma linguagem de alto nível para criação de programas na máquina virtual. Expandir a máquina migrando-a para alguma linguagem de baixo nível, como por exemplo C++.

22 Perguntas

23 Obrigado


Carregar ppt "Aluno: Wlysses Sebastião Pereira"

Apresentações semelhantes


Anúncios Google