La diferencia entre simulación y emulación (traducido)
La diferencia entre simulación y emulación
Explicación 1:
La simulación significa seleccionar ciertas características de comportamiento de un sistema físico o abstracto y usar otro sistema A para representar sus procesos. La etapa avanzada de la tecnología de simulación se llama emulación y simulación de sistemas, que consiste en utilizar un sistema de procesamiento de datos para simular total o parcialmente un determinado sistema de procesamiento de datos, de modo que el sistema simulado pueda aceptar los mismos datos que el sistema simulado. mismo procedimiento y obtener los mismos resultados.
Explicación 2:
La emulación es un intento de imitar el diseño interno de un dispositivo; la simulación es un intento de imitar la función de un dispositivo.
Explicación 3:
Emulación: cuando un sistema funciona exactamente de la misma manera que otro, aunque quizás no a la misma velocidad. Un ejemplo típico sería la emulación de una computadora por (. un programa que se ejecuta en) otro. Podrías usar la emulación como reemplazo de un sistema, mientras que usarías una simulación si solo quisieras analizarlo y hacer predicciones sobre él.
Simulación: intentar predecir aspectos de. el comportamiento de algún sistema mediante la creación de un modelo aproximado (matemático) del mismo. Esto se puede hacer mediante modelado físico, escribiendo un programa informático de propósito especial o utilizando un paquete de simulación más general, probablemente todavía destinado a un tipo particular de simulación (. p.ej. ingeniería estructural, flujo de fluidos). Ejemplos típicos son los simuladores de vuelo de aeronaves o los simuladores de circuitos electrónicos. Existen muchos lenguajes de simulación, p.ej. {Simula}
Explicación 4:
Simulación. , se refiere al uso de software para simular las funciones de un determinado sistema. No requiere la implementación de los detalles internos del sistema siempre que la salida del software sea consistente con la salida del sistema simulado bajo el mismo. aporte. Por ejemplo, si utiliza un software en su PC para simular el juego "Super Mario" en NES, solo necesita hacer que su software se ejecute con el mismo efecto que el juego "Super Mario" en NES. , usted Cómo se logra es irrelevante.
La emulación se refiere al uso de software para simular la composición de cada componente de un sistema y simular verdaderamente el mecanismo operativo del sistema. Esto requiere que el autor del software tenga una buena comprensión de la estructura interna del sistema simulado y sea capaz de utilizar varias estructuras de datos para implementar modelos de cada componente. De manera similar, para emular el juego "Super Mario" en Famicom, primero debes usar software para simular varios hardware en Famicom, como CPU, memoria, chip de procesamiento de gráficos, chip de procesamiento de sonido, controlador de juego, etc., y luego usar Carga la ROM del juego para ejecutarlo. Hoy en día, varios emuladores de juegos, como MAME y VirtualNes, utilizan la emulación para lograr la simulación de juegos, por lo que también se les llama emuladores.
La simulación se refiere al uso de software puro en una determinada plataforma para simular la ejecución de un programa en otra plataforma. La simulación incluye "Simulación" y "Emulación". Como puede saber, a través del análisis anterior de estos dos. "Simulación" es una simulación de alto nivel, similar a una "caja negra", mientras que "Emulación" se centra más en la simulación de la capa inferior, similar a una "caja blanca".
Hay muchas explicaciones de simulación. Algunos dicen que la simulación se refiere al uso de microinstrucciones en la parte inferior de la máquina para interpretar y ejecutar las instrucciones de otra plataforma. Algunos dicen que la simulación es software combinado con hardware. para simular otra plataforma. La ejecución del programa es "simulación de hardware y simulación de software". De hecho, los dos están dirigidos a diferentes objetos de simulación y plataformas de host: el primero habla específicamente de la simulación del sistema, que toma la CPU central (ahora también conocida como PC) como objeto de simulación, generalmente en el proceso de desarrollo de la CPU. La CPU del host para simular el funcionamiento de su software puede sincronizar el proceso de desarrollo de hardware y software y acelerar el progreso de desarrollo del sistema general; este último generalmente se refiere a la simulación integrada. Los amigos que han realizado desarrollo integrado saben que el proceso de desarrollo. use un emulador para depurar programas. Podemos depurar un programa en un sistema integrado en una PC y enviar señales de depuración (como JTAG) al microcontrolador integrado a través del emulador para que el microcontrolador ejecute una determinada instrucción. se mostrará en consecuencia en la PC, haciendo que parezca como si la PC estuviera "ejecutando" la instrucción, logrando así el propósito de la simulación. Pero pase lo que pase, la simulación siempre está relacionada con el hardware, que es diferente de la simulación.
El término "máquina virtual" también aparece ahora. En mi opinión, una máquina virtual utiliza más tecnología de simulación que emulación, pero una máquina virtual es mucho más complicada que un emulador, una máquina virtual como debería. esencialmente un emulador, mientras que las máquinas virtuales como VirtualPC, VMWare y VirtualBox utilizan tecnologías más complejas, que incluyen simulación, emulación e incluso emulación de sistemas, por lo que no puede simplemente pensar en ello como un emulador.
Explicación 5
La simulación es un modelo abstracto que simula el sistema original sin hacer realmente lo que hace el sistema real. Por lo tanto, en realidad no tiene las funciones de un sistema real, pero cuando se ejecuta una determinada función, generalmente no es necesario generar el resultado de la ejecución de la función, sino registrar los cambios de estado resultantes en el simulador. Por lo tanto, se utiliza a menudo para la verificación del modelo en las primeras etapas del diseño.
La emulación va un paso más allá y en realidad hace todo lo que el sistema real puede hacer, pero el "proceso" es diferente. Generalmente se usa para abordar problemas de compatibilidad y se completa en condiciones de recursos limitados. prototipo.
Si se compara el sistema real con una persona, el simulador es un retrato de esta persona y el emulador es un clon de esta persona
Por ejemplo, queremos implementar A Sistema de distribución de archivos p2p.
Al principio, podemos implementar un simulador: utiliza una función para simular la comunicación entre nodos. La entrada de esta función es el rendimiento de la red (ancho de banda, recuento de saltos...) y la salida es la comunicación. retraso—— ——Tenga en cuenta que no se transmiten ni copian datos reales, ni siquiera nodos reales. Simplemente simulamos la "característica" del retraso de comunicación.
A continuación, implementamos este sistema de distribución y lo compilamos en un archivo exe, pero en ese momento descubrimos que no teníamos suficientes computadoras para formar una red real de escala suficiente para realizar más pruebas (generalmente el número (El número de nodos en una red p2p es cientos o miles). En este momento, podemos escribir un emulador: puede distinguir diferentes procesos en la misma computadora, por lo que podemos abrir 100 procesos en una computadora, de modo que podamos usar 100 emuladores. La computadora simula una red de 10,000 computadoras. Tenga en cuenta que los datos realmente se transmiten a través del Socket en este momento, pero algunos datos pasan por el puerto loopback y realmente no ingresan a la tarjeta de red.
Explicación 6
La simulación se implementa en software, mientras que la emulación implica implementación de hardware. Esta distinción es simple y clara, y se aplica en muchas situaciones (incluido el ejemplo de un sistema de distribución p2p dado anteriormente). Pero esta afirmación es sólo una explicación inductiva para la mayoría de las situaciones, por lo que en algunos casos es imposible distinguir entre ambas. Por ejemplo, esta explicación no puede distinguir entre el emulador del sistema operativo y el simulador del sistema operativo; ninguno de ellos involucra hardware en este momento. Esto se debe a que el sistema real (sistema operativo) en sí no involucra hardware.
Hablemos de “simulación” y “simulación”. En primer lugar, incluso en un entorno formal (como el título de un artículo), los dos conjuntos {simulación, emulación} y {simulación, emulación} no se asignan uno a uno. Puedes ver la combinación "simulación" y puedes ver la combinación "simulación". Obviamente, esta inconsistencia se debe a la existencia de dos mapeos uno a uno al mismo tiempo. Este problema no se puede solucionar mediante el razonamiento. Dependerá de los hábitos de la mayoría de las personas a medida que aumente la frecuencia de uso. Personalmente, la simulación se traduce como "simulación", mientras que la emulación se traduce más a menudo como "simulación".
Por último, mencionemos el concepto de “virtual”. Este concepto es muy popular recientemente y su nombre en inglés es virtualización. No he investigado cuidadosamente las diferencias sutiles entre este y los dos primeros conceptos, pero es seguro que la virtualización y la emulación son similares y no lo mismo que la simulación. Para los demás, los revisaré más tarde y los agregaré.
Explicación 7
Las explicaciones de emulador y simulador en Wikipedia son las siguientes:
El emulador, también conocido como programa de simulación, en ingeniería de software, se refiere a un computadora u otra plataforma multimedia (PDA, teléfono móvil) que puede ejecutar programas en otras plataformas. A menudo se le llama erróneamente emulador. Los emuladores se utilizan principalmente en videojuegos y salas de juegos, y algunos también se utilizan en computadoras portátiles. Los emuladores generalmente requieren ROM para ejecutarse. La fuente original de la ROM son algunos chips ROM de la plataforma original. El programa original se copia de alguna manera (este proceso generalmente se llama "volcado") y luego se usa el emulador para cargar estas ROM. implementar el proceso de emulación.
()
Para explicar intuitivamente la diferencia entre los dos, puede comparar el emulador (emulador) de Palm Os y el simulador (simulador).
Emulador de Palm Os (emulador)
El emulador de Palm Os (emulador) parece más realista en uso, debe cargar el archivo ROM en el Palm real y, desde la apariencia, interfaz de operación, también reproduce fielmente el Palm real. Se puede decir que el emulador (emulador) es una PDA de Palm implementada en software.
El uso del emulador (simulador) de Palm Os es relativamente simple y también puede probar e implementar la mayoría de las PDA de Palm. Función.
Explicación 8
El simulador utiliza exclusivamente software para simular las funciones y los resultados operativos de la plataforma fuente; el emulador utiliza software y hardware para simular el diseño interno, el comportamiento y los resultados operativos de la fuente; plataforma.
Por ejemplo:
Quienes usan hardware para simular son todos emuladores. Por ejemplo, simulación basada en microcontrolador. (¿Qué es usar la simulación de hardware? Por ejemplo, simular el temporizador/PPU/SPU de la plataforma de origen y usar directamente el temporizador/PPU/SPU de la plataforma de destino es simulación de hardware).
Generalmente, el simulador que se ejecuta en la PC se llama Simulador, y el más común es simular la pantalla LCD, el simulador que se ejecuta en la plataforma integrada se llama Emulador, porque si se ejecuta en la plataforma integrada; plataforma, para mejorar la eficiencia, la plataforma de origen se simulará con los módulos de hardware correspondientes.
Si el emulador en la PC simula su diseño y comportamiento interno, como lectura de archivos ROM, interrupciones precisas, excepciones, sistema operativo, etc., es un emulador.
Explicación 9
Los simuladores son todos software. Los emuladores pueden ser duros o blandos o pueden ser una combinación de blando y duro.
Por ejemplo, GBA y. Los emuladores de juegos de PS se mencionan a menudo en PC. En sentido estricto, ¡debería ser un emulador! Extrae el código de máquina de la CPU de la consola de videojuegos línea por línea del archivo rom binario, lo reconoce y luego simula el comportamiento de la CPU de la consola de juegos. Es decir, simular y ejecutar el código de máquina de otras CPU en la PC se denomina simulación de nivel binario porque ejecuta directamente el código de máquina.
La próxima vez que vea "wm Simulator" o "iPhone Simulator", debe tener un conocimiento profundo de ellos y saber si realmente está simulado al nivel de código de máquina para dar su verdadero valor. Como no los conozco bien, no me atrevo a sacar conclusiones precipitadas.
En términos generales, hay más oportunidades para entrar en contacto con emuladores (emuladores). No puedo pensar en ningún emulador (simulador) real famoso para el desarrollo.
Además. es un emulador de hardware. Hay dos opciones en la opción de depuración de MDK
El simulador de uso en la parte superior izquierda se refiere al uso de simulación de software.
El ULINK en la esquina superior derecha se refiere al uso de un emulador en tiempo real, es decir, un emulador de hardware. Otro emulador en tiempo real llamado ICE (In Circuit Emulator, ICE) se utiliza bajo ADS.
Estas dos palabras se ven a menudo y es fácil confundirlas. Según tengo entendido, son las siguientes:
El simulador simula las funciones y comportamientos del sistema objetivo. El simulador y el sistema de destino parecen idénticos.
El emulador es la interfaz subyacente para simular el sistema de destino. El sistema de destino se ejecuta directamente en el emulador.