virtualizador simular simulador que juegos imitar entre emular emulador emulacion diferencia cual emulation simulation

emulation - simular - emulacion



¿Cuál es la diferencia entre emulación y simulación? (11)

(Usando como ejemplo su primer enlace)

Si desea duplicar el comportamiento de una calculadora HP anterior, existen dos opciones:

  1. Usted escribe un nuevo programa que dibuja la pantalla y las teclas de la calculadora, y cuando el usuario hace clic en las teclas, sus programas hacen lo que hacía la calculadora antigua. Este es un simulador

  2. Obtienes un volcado del firmware de la calculadora, luego escribes un programa que carga el firmware y lo interpreta de la misma manera que el microprocesador en la calculadora. Este es un emulador

El simulador intenta duplicar el comportamiento del dispositivo.
El Emulador intenta duplicar el funcionamiento interno del dispositivo.

Posible duplicado:
Simulador o emulador? ¿Cuál es la diferencia?

En términos simples y comprensibles, ¿cuál es la diferencia entre los dos términos?

[Ya he visto this , this y this ]


Ambos son modelos de un objeto que tiene algún medio para controlar entradas y observar salidas. Con un emulador, quiere que la salida sea exactamente lo que produciría el objeto que está emulando. Con un simulador, quiere que ciertas propiedades de su salida sean similares a las que produciría el objeto.

Permítanme dar un ejemplo: supongamos que quiere hacer algunas pruebas del sistema para ver cómo el agregar un nuevo sensor (como un termómetro) a un sistema afectaría el sistema. Usted sabe que el termómetro envía un mensaje 8 veces por segundo que contiene su medida.

Simulación: si aún no tiene el termómetro, pero desea probar que este índice de mensajes no sobrecargará su sistema, puede simular el sensor conectando una unidad que envíe un número aleatorio 8 veces por segundo. Puede ejecutar cualquier prueba que no dependa del valor real que envía el sensor.

Emulación: supongamos que tiene un termómetro muy costoso que mide hasta 0.001 C, y quiere ver si puede salir adelante con un termómetro más barato que solo mide hasta 0.5 C. Puede emular el termómetro más económico usando un termómetro costoso redondeando la lectura al 0.5 C más cercano y ejecutando pruebas que dependen de los valores de temperatura.


Aquí hay un ejemplo: recientemente desarrollamos un modelo de simulación para medir el tiempo de respuesta de transmisión remota de un sistema aún por desarrollar. Un análisis de emulación no nos hubiera dado la respuesta a tiempo para actualizar la capacidad de ancho de banda, por lo que la simulación fue nuestro enfoque. Como estábamos más que interesados ​​en determinar las necesidades de ancho de banda, nos preocupamos principalmente por el tamaño y el volumen de las transacciones, no por el procesamiento del sistema. El modelo de simulación estaba en una pieza independiente de software que fue diseñada para modelar procesos de eventos discretos. Para resumir en respuesta a su pregunta, la emulación es un tipo de simulación. Pero, en este caso, la simulación NO era una emulación porque no representaba completamente el nuevo sistema, solo el tamaño y el volumen de las transacciones.


En base a la experiencia en ingeniería de sistemas y sistemas, resumiría la diferencia de la siguiente manera:

Simulación: para mí, esto siempre está en software: cada aspecto del sistema real solo está MODELADO por algún código y / o matemática. La simulación intenta reproducir con precisión el comportamiento (o predecirlo) del sistema real, pero solo lo aproxima.

Emulación: A diferencia de la simulación, NO APROXIMA el comportamiento del sistema real, COPIAS el comportamiento del sistema real. Un emulador puede involucrar hardware. Pero también puede ser completamente en software. Por ejemplo, obtienes estos emuladores de software para consolas antiguas como Sega Genesis. Es un emulador porque COPIAS la funcionalidad de génesis real tanto que puedes ejecutar el código Genesis original en el emulador. Un simulador de genesis no podría ejecutar el código original, APROXIMARÍA su comportamiento solo, produciendo resultados similares, dependiendo de qué tan buenos eran los modelos del sistema original.

Se puede incluir un emulador de un componente del sistema en un sistema más grande, reemplazando por completo el componente que está emulando; un simulador no podría hacerlo porque no es una representación suficientemente precisa del comportamiento del componente original.


En general, pienso en esta gran pregunta en tres partes: simulación, estimulación, emulación y modelado.

La simulación es el uso del modelado para crear un stand representativo y controlable en un sistema complejo. Las simulaciones son, por definición, siempre incompletas.

La estimulación es el uso de entradas ambientales artificiales a una interfaz bien definida para conducir, examinar y probar el comportamiento de un dispositivo del mundo real.

La emulación es la sustitución de un dispositivo del mundo real con un modelo en una interfaz bien definida con el fin de permitir respuestas controladas del dispositivo emulado del mundo real. La emulación es "completa" si todas las interfaces están presentes, y el comportamiento observado resultante coincide con el del dispositivo del mundo real.

El modelado es el uso de técnicas matemáticas, hardware especializado y juicio de ingeniería para crear un soporte representativo para un entorno, dispositivo, sistema o comportamiento real.

En "términos simples", esto significa que un emulador es algo que, a través de una interfaz bien definida, es indistinguible del equivalente en el mundo real (excepto en velocidad). Las emulaciones pueden ser completas o incompletas.

En "términos simples" una simulación es cualquier sistema que se puede controlar y examinar para una gama de comportamientos que son similares o análogos a un sistema del mundo real. Las simulaciones nunca son, por definición, completas.


Esta es una pregunta difícil de responder definitivamente porque los términos ya menudo se usan mal o se confunden.

A menudo, un emulador es una reimplementación completa de un dispositivo o plataforma en particular. El emulador actúa exactamente como lo haría el dispositivo real. Por ejemplo, un emulador de NES implementa la CPU, el chip de sonido, la salida de video, las señales del controlador, etc. El código no modificado de un castridge de NES puede descargarse y luego la imagen resultante puede cargarse en nuestro emulador y reproducirse.

Un simulador es una implementación parcial de un dispositivo / plataforma, hace lo suficiente para sus propios fines. Por ejemplo, el simulador de iPhone ejecuta una "aplicación de iPhone" que se ha compilado específicamente para apuntar a x86 y la API Cocoa en lugar de la CPU ARM del dispositivo real y la API Cocoa Touch. Sin embargo, el binario que ejecutamos en el simulador no funcionaría en el dispositivo real.


Estaba confundido entre los dos procesos. Encontré esta explicación simple sobre la diferencia entre emuladores y simuladores

  1. Simulador:
    Supongamos que ha escrito el programa de ensamblaje en un archivo y el archivo exe correspondiente está listo. El simulador es el software de la PC que lee las instrucciones del exe y ''minmics'' del funcionamiento del procesador.

  2. Emulador:
    Emulator es un (software para PC + un procesador). El procesador se puede conectar a TARGET BOARD cuando desee probar el software desarrollado en tiempo real para verificar los errores de tiempo de ejecución. Cuando no está en uso, puede desenchufarse. El procesador tendrá una interfaz paralela o JTAG con la PC para descargar el archivo exe para su ejecución.

Por lo tanto, mientras que el Simulador es de ejecución lenta, el Emulador podrá dar verificación en tiempo real del código desarrollado. En general, primero probarás tu código desarrollado en el simulador y luego buscarás el emulador.

fuente: http://www.dsprelated.com/groups/c6x/show/148.php


No sé si esta es la opinión general, pero siempre he diferenciado los dos por lo que se utilizan. Se usa un emulador si realmente desea usar la máquina emulada para su salida. Un simulador, por otro lado, es para cuando quieres estudiar la máquina simulada o probar su comportamiento.

Por ejemplo, si desea escribir alguna lógica de máquina de estado en su aplicación (que se ejecuta en una CPU de propósito general), escriba un emulador de máquina de estado pequeño. Si desea estudiar la eficiencia o la viabilidad de una máquina de estado para un problema en particular, escriba un simulador.


Por favor, perdóname si estoy equivocado. Y tengo que admitir por adelantado que no he hecho ninguna investigación sobre estos 2 términos. De todas formas...

La emulación es imitar algo con resultados conocidos detallados, cualesquiera que sean los comportamientos internos en realidad. Solo tratamos de hacer las cosas y no nos importa mucho lo que sucede dentro.

La simulación, por otro lado, es imitar algo con algunos comportamientos conocidos para estudiar algo que aún no se conoce.

mis 2cents


Un "emulador" es un término para un simulador de hardware basado en software, pero en general los dos son sinónimos.


Viniendo del mundo de desarrollo de hardware. . .

Funcionalidad de las pruebas de simulación. 2 + 2 = 4 etc.

La emulación prueba la funcionalidad en el entorno específico (64 bits, 16 bits, dedos de manos y pies).

Aquí hay un ejemplo de comida:

Tienes dos pedazos de pan, un cuchillo, mantequilla de maní y mermelada y se los darás a un niño de kínder. Usted escribe instrucciones sobre cómo hacer un emparedado.

En la simulación, representarías el proceso, fingirías que abrías los frascos, fingirías extendiendo la mantequilla de maní, etc.

Si al final de las instrucciones te queda solo jalea y no mantequilla de maní, fallaste en la simulación y necesitas corregir tus instrucciones. Por otro lado, si tiene un "bocadillo" completo, entonces las instrucciones deben ser válidas

En la emulación, utilizaría representaciones cercanas de las partes reales (mismo pan, mantequilla de maní con cuchillo, etc.). ¿Qué pasa si le regalaste a tu niño de kindergarten un cuchillo de plástico barato y mantequilla de maní realmente espesa? El cuchillo se rompería en la emulación y las instrucciones necesitarían ser aclaradas o arregladas para acomodar este problema. En este caso, puede sugerir calentar la mantequilla de maní en el microondas.

En la práctica: considere un sistema de 64 bits en el que está programando y un sistema de 32 bits que realmente ejecutará el código. Agrega dos números muy grandes e imprime el resultado. En la simulación, todo funciona (lograste obtener el código correcto para agregar dos números). Sin embargo, en la emulación encuentras que recibes una respuesta incorrecta. ¿Que pasó? La emulación del sistema de 32 bits no pudo manejar los números grandes. Este es un ejemplo de la funcionalidad correcta (es decir, simulación) pero no el soporte adecuado para su entorno de tiempo de ejecución (emulación)