Índice:
Definição - O que significa Emulação do Processador?
A emulação de processador é um processo e tecnologia de virtualização que permite que o software que foi compilado para um processador ou sistema operacional (SO) específico seja executado em um sistema diferente que possui um processador e SO diferente. Isso é feito convertendo dinamicamente as instruções do processador e todas as chamadas de sistema operacional associadas de um programa nas instruções do processador e do SO em que ele está sendo executado.
Techopedia explica emulação de processador
A emulação de processador permite a execução de programas escritos para um processador executar em um processador diferente, com uma arquitetura e conjunto de instruções diferentes. Um bom exemplo básico é um emulador de console de jogos, que permite aos usuários jogar jogos de console como o Nintendo Entertainment System e jogos de PlayStation em seus PCs. O processador usado por um console de jogos é muito diferente do de um PC; portanto, para poder jogar jogos de console em um PC, o processador do console de jogos deve ser emulado.
A ideia básica é que todas as ações e comportamentos individuais do programa que precisam ser executados sejam convertidos no conjunto de instruções equivalente e / ou nas chamadas do sistema operacional do sistema host. O objetivo principal é executar o código que modifica os estados do processador e interage com o hardware, e isso deve ser feito para cada instrução do programa em execução.
Maneiras de lidar com a emulação do processador:
- Recompilação dinâmica - Uma lista de operações é criada executando o código e, quando uma instrução de ramificação é alcançada, a lista é compilada no código de instrução da plataforma host. Isso é armazenado em cache para uso futuro. Como alternativa, cada código poderia simplesmente ser compilado em tempo real, mas essa abordagem é difícil de otimizar.
- Recompilação estática - também conhecida como conversão binária estática, na qual o código é primeiro convertido no código da máquina ou arquitetura de destino sem executar o código, como é feito na recompilação dinâmica. Problemas podem surgir, no entanto, pois nem todos os códigos de destino podem ser determinados pelo tradutor durante o tempo de compilação, pois alguns deles podem ser encontrados apenas em ramificações indiretas, que, por sua vez, só podem ser determinados em tempo de execução.
- Interpretação - Cada código é lido da memória usando o ponteiro de instruções e, em seguida, é executado de acordo com o conjunto de instruções da CPU do computador host. Em outras palavras, as instruções são traduzidas uma a uma e depois executadas nativamente. A maior desvantagem aqui é o desempenho.