Qual é a diferença entre simulação e emulação?

94

Eu freqüentemente vejo Simulação e Emulação em ciência da computação. Esses dois termos parecem sinônimos. Existe alguma diferença entre Simulação e Emulação ?

    
por user 13.02.2012 / 08:46
fonte

6 respostas

103

Sim, os conceitos são diferentes.

Simulação

Um simulation é um sistema que se comporta semelhante a outra coisa, mas é implementado de uma maneira totalmente diferente. Ele fornece o comportamento básico de um sistema, mas pode não necessariamente aderir a todas as regras do sistema que está sendo simulado. Está aí para dar uma ideia de como algo funciona.

Exemplo

Pense em um simulador de voo como um exemplo. Parece e parece que você está pilotando um avião, mas está completamente desconectado da realidade de pilotar o avião, e você pode dobrar ou quebrar essas regras como achar melhor. Por exemplo, pilote um Airbus A380 de cabeça para baixo entre Londres e Sydney sem quebrá-lo.

Emulação

Um emulation é um sistema que se comporta exatamente como outra coisa, e segue todas as regras do sistema que está sendo emulado. É efetivamente uma replicação completa de outro sistema, até mesmo binária, compatível com as entradas e saídas do sistema emulado, mas operando em um ambiente diferente do ambiente do sistema original emulado. As regras são fixas e não podem ser alteradas ou o sistema falha.

Exemplo

O MAME sistema é construído em torno desta premissa. Todos aqueles antigos sistemas de arcade que foram esquecidos há muito tempo, que foram implementados quase inteiramente em hardware, ou no firmware de seus sistemas de hardware, podem ser emulados até os erros e falhas originais que ocorreriam quando você atingisse a maior pontuação possível. / p>     

por 13.02.2012 / 12:51
fonte
16

Uma simulação é um modelo construído de outra coisa que reproduz algumas das características dessa coisa e deixa outras pessoas de fora - obviamente você quer preservar os recursos relevantes para sua consulta e deixar de fora os irrelevantes.

Por exemplo, uma simulação de trânsito de manhã cedo omite os nomes do comutador e talvez até mesmo suas identidades (usando uma variável de contador em vez de um conjunto real de Commuter de objetos), mas não pode ignorar sua taxa de chegada .

Emulação é a execução de um software X criado para a plataforma A na plataforma B, sem alterar o software em si. Isso requer a criação de um modelo de A que seja executado em B e, obviamente, ele deve modelar tudo sobre A que envolva a execução de código. (Teoricamente, você poderia omitir o suporte para opcodes que você sabe que este software em particular nunca usará, mas isso é raro - fazer um emulador é um trabalho árduo, e vale muito mais a pena fazer um trabalho completo e ter algo reutilizável do que um kludge que funciona apenas para S.)

    
por 13.02.2012 / 09:06
fonte
7

Ambos significam algo fazendo o trabalho de outra coisa.

A diferença é que "Simulação" acontece em um nível consciente (em relação ao usuário) e é tipicamente finalizado para antecipar o resultado de uma realidade sem tocar a própria realidade.

"Emulação" acontece em um nível inconsciente e tem o objetivo de substituir um componente subjacente por outro diferente que - em relação ao usuário - funciona como o antigo.

Em outras palavras, a simulação acontece em um "mundo paralelo", enquanto a emulação acontece em um "mundo substituído".

    
por 13.02.2012 / 09:01
fonte
6

Tecnicamente, ambos fazem o mesmo: fazem algo em um ambiente que age como se fosse a coisa real.

Conceitualmente, no entanto, há uma diferença importante.

Uma simulação deve ser separada do mundo real até certo ponto; a saída de uma simulação não está diretamente conectada à coisa que ela simula. Por exemplo, um simulador de aeronave na verdade não voa, e o piloto não está realmente se comunicando com um controlador de tráfego aéreo real.

Uma simulação geralmente tem o objetivo de testar ou prever algum processo da vida real em um ambiente seguro; como a simulação é desconectada do mundo real, nada realmente ruim pode acontecer (um simulador de aeronave acidentado nunca mata pessoas reais).

Uma emulação , por outro lado, tem o objetivo de tomar o lugar da coisa real: por exemplo, se você emular um microcontrolador simples usando uma CPU programável mais sofisticada, essa CPU pode ser usada em lugar do microcontrolador original; ele estará fisicamente conectado a alguma máquina e controlará a máquina exatamente como o microcontrolador faria.

O objetivo de uma emulação é substituir os componentes de hardware ou software por equivalentes funcionais quando os módulos originais não estão disponíveis (ou se tornaram muito caros, apenas para manter). A emulação também pode servir ao objetivo de usar hardware de forma mais flexível - o mesmo microcontrolador programável pode duplicar para vários controladores mais simples, alternando o modo de emulação conforme necessário.

    
por 13.02.2012 / 09:49
fonte
1

Embora a etimologia não seja estritamente precisa, pense na diferença entre a simpatia, "eu posso imaginar como deve ser a sensação" e a empatia, "eu sei como é isso." Uma simulação pode incluir representação visual de um problema, mas talvez não. Por exemplo, pode-se apenas imprimir colunas de números representando quantas pessoas estão alinhadas para algo ou receita total ou velocidade média. Tem algumas características que combinam com a realidade e outras não.

A emulação, que é freqüentemente usada no contexto de uma plataforma que finge ser outra plataforma, é muito mais completa. Assim, os desenvolvedores do Windows Phone podem executar ou depurar seus aplicativos de telefone em uma máquina Windows em um emulador, que se parece com um telefone e se comporta como um também. Você pode rodar seus antigos jogos Commodore 64 em um emulador também.

As palavras não são precisas. A maioria dos simuladores de voo são mais parecidos com emuladores na minha opinião, mas o nome ficou preso a partir de uma época em que eles não eram tão imersivos. Algumas pessoas reservam o emulador de palavras para o caso de plataforma cruzada e o rejeitam por qualquer outra coisa. Você provavelmente nunca será considerado errado se fizer o mesmo ao falar, mas entenda que algumas pessoas podem colocar o limite entre as duas palavras de forma um pouco diferente e fazer concessões quando alguém disser "isto é uma emulação" para uma resposta realmente precisa e precisa. simulação completa.

    
por 13.02.2012 / 14:36
fonte
0

Ambos os termos são muito semelhantes no conceito - imitando.

Simulação ou Simuladores fazem uso de software para produzir um sistema replicado que é muito semelhante ao modelo de destino em relação à sua principal funcionalidade subjacente (especialmente sua metodologia básica).

Emuladores, por outro lado, focam mais na similaridade externa quando comparados ao sistema alvo. Tem preocupação mínima para "como" as funções são imitadas. Os emuladores são, em geral, usados quando se trabalha em um ambiente completamente diferente (por exemplo, um sistema operacional diferente) em comparação com o sistema original.

    
por 12.11.2013 / 05:54
fonte