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

94

Veo con frecuencia Simulation y Emulation en informática. Estos dos términos parecen sinónimos. ¿Hay alguna diferencia entre Simulation y Emulation ?

    
pregunta user 13.02.2012 - 08:46
fuente

6 respuestas

103

Sí, los conceptos son diferentes.

Simulación

Un simulation es un sistema que se comporta similar a otra cosa, pero se implementa de una manera completamente diferente. Proporciona el comportamiento básico de un sistema, pero no necesariamente cumple con todas las reglas del sistema que se simula. Está ahí para darle una idea de cómo funciona algo.

Ejemplo

Piense en un simulador de vuelo como un ejemplo. Se ve y se siente como si estuvieras volando un avión, pero estás completamente desconectado de la realidad de volar el avión, y puedes doblar o romper esas reglas como mejor te parezca. Por ejemplo, volar un Airbus A380 boca abajo entre Londres y Sydney sin romperlo.

Emulación

Un emulation es un sistema que se comporta exactamente como otra cosa, y se adhiere a todas las reglas del sistema que se está emulando. Es efectivamente una réplica completa de otro sistema, hasta que es compatible con los binarios de las entradas y salidas del sistema emulado, pero funciona en un entorno diferente al entorno del sistema emulado original. Las reglas son fijas y no se pueden cambiar, o el sistema falla.

Ejemplo

El MAME El sistema se basa en esta premisa. Todos los viejos sistemas arcade que se han olvidado hace mucho tiempo, que se implementaron casi por completo en hardware, o en el firmware de sus sistemas de hardware, pueden emularse hasta los errores y fallas originales que se producirían cuando alcanzara el puntaje más alto posible.

    
respondido por el S.Robins 13.02.2012 - 12:51
fuente
16

Una simulación es un modelo construido a partir de otra cosa que reproduce algunas de las características de esa cosa y deja de lado a otras. Obviamente, usted desea conservar las características relevantes para su consulta y dejar de lado las irrelevantes.

Por ejemplo, una simulación del tráfico de cercanías temprano en la mañana omite los nombres del conmutador, y tal vez incluso sus identidades (utilizando una variable de contador en lugar de un conjunto real de objetos Commuter ), pero no puede ignorar su tasa de llegada .

Emulación es la ejecución de un software X creado para la plataforma A en la plataforma B, sin cambiar el software en sí. Esto requiere construir un modelo de A que se ejecute en B, y obviamente tiene que modelar todo lo relacionado con A que involucra la ejecución de código. (En teoría, podría omitir la compatibilidad con los códigos de operación que sabe que este software en particular nunca utilizará, pero es raro: hacer un emulador es un trabajo difícil, y vale mucho más la pena hacer un trabajo completo y tener algo reutilizable que un kludge). eso funciona solo para S)

    
respondido por el Kilian Foth 13.02.2012 - 09:06
fuente
7

Ambos significa algo que hace el trabajo de otra cosa.

La diferencia es que la "Simulación" ocurre en un nivel consciente (con respecto al usuario) y se finaliza normalmente para anticipar el resultado de una realidad sin tocar la realidad en sí misma.

"Emulación" ocurre en un nivel inconsciente , y tiene el propósito de reemplazar un componente subyacente con otro diferente que, en relación con el usuario, funciona como el anterior.

En otras palabras, simulación ocurre en un "mundo paralelo", mientras que emulación ocurre en un "mundo reemplazado".

    
respondido por el Emilio Garavaglia 13.02.2012 - 09:01
fuente
6

Técnicamente, ambos hacen lo mismo: hacen algo en un entorno que actúa como si fuera algo real.

Conceptualmente, sin embargo, hay una diferencia importante.

Se supone que una simulación se separa del mundo real hasta cierto punto; la salida de una simulación no está directamente conectada a lo que simula. Por ejemplo, un simulador de avión no vuela realmente, y el piloto no se está comunicando con un controlador de tráfico aéreo real.

Una simulación generalmente tiene el objetivo de probar o predecir algún proceso de la vida real en un entorno seguro; Debido a que la simulación está desconectada del mundo real, nada realmente malo puede suceder (un simulador de avión estrellado nunca mata a personas reales).

Una emulación , por el contrario, tiene el objetivo de ocupar el lugar de la realidad: por ejemplo, si emula un microcontrolador simple con una CPU programable más sofisticada, esa CPU se puede usar en lugar del microcontrolador original; estará físicamente conectado a alguna máquina, y en realidad controlará esa máquina tal como lo haría el microcontrolador.

El objetivo de una emulación es reemplazar los componentes de hardware o software con equivalentes funcionales cuando los módulos originales no están disponibles (o son demasiado caros, aunque solo sea para mantener). La emulación también puede servir al objetivo de usar el hardware de manera más flexible: el mismo microcontrolador programable puede duplicarse para varios controladores más simples, cambiando el modo de emulación según sea necesario.

    
respondido por el tdammers 13.02.2012 - 09:49
fuente
1

Si bien la etimología no es estrictamente precisa, piense en la diferencia entre la simpatía: "Puedo imaginar cómo se siente eso" y la empatía, "sé cómo se siente eso". Una simulación puede incluir la representación visual de un problema, pero puede que no. Por ejemplo, podría simplemente imprimir columnas de números que representen cuántas personas están alineadas para algo o ingresos totales o velocidad promedio. Tiene algunas características que coinciden con la realidad y otras que no.

La emulación, que a menudo se usa en el contexto de una plataforma que pretende ser otra plataforma, es mucho más completa. Así que los desarrolladores de Windows Phone pueden ejecutar o depurar sus aplicaciones de teléfono en una máquina Windows en un emulador, que se parece a un teléfono y se comporta como tal también. También puedes ejecutar tus viejos juegos Commodore 64 en un emulador.

Las palabras no son precisas. La mayoría de los simuladores de vuelo son más como emuladores en mi opinión, pero el nombre se ha atascado desde un momento en que no eran tan inmersivos. Algunas personas reservan la palabra emulador para el caso de multiplataforma y la rechazan por cualquier otra cosa. Es probable que nunca se le piense mal si hace lo mismo al hablar, pero entienda que algunas personas pueden colocar el límite entre las dos palabras de manera un poco diferente, y hacer concesiones cuando alguien dice "esto es una emulación" para una información realmente precisa y precisa. simulación completa.

    
respondido por el Kate Gregory 13.02.2012 - 14:36
fuente
0

Ambos términos son muy similares en su concepto: imitación.

La simulación o los simuladores hacen uso del software para producir un sistema replicado que es muy similar al modelo de destino con respecto a su funcionalidad básica subyacente (especialmente su metodología básica).

Los emuladores, por otro lado, se centran más en la similitud exterior en comparación con el sistema objetivo. Tiene una preocupación mínima por "cómo" se imitan las funciones. Los emuladores se utilizan, en general, cuando se trabaja en un entorno completamente diferente (por ejemplo, un sistema operativo diferente) en comparación con el sistema original.

    
respondido por el Mr. White 12.11.2013 - 05:54
fuente

Lea otras preguntas en las etiquetas