Question Simulateur ou émulateur? Quelle est la différence?


Bien que je comprenne ce que la simulation et l'émulation signifient en général, je suis presque toujours confus à leur sujet. Supposons que je crée un logiciel qui imite le matériel / logiciel existant, comment dois-je l'appeler? Un simulateur ou un émulateur?

Quelqu'un pourrait-il expliquer la différence en termes de programmation?

Bonus: Quelle est la différence en anglais entre ces deux termes? (Désolé, je ne suis pas un locuteur natif :))


427
2017-10-18 11:13


origine


Réponses:


L'émulation est le processus consistant à imiter le comportement observable vers l'extérieur pour correspondre à une cible existante. L'état interne du mécanisme d'émulation ne doit pas refléter avec précision l'état interne de la cible qu'il émule.

La simulation, d'un autre côté, implique la modélisation de l'état sous-jacent de la cible. Le résultat final d'une bonne simulation est que le modèle de simulation émule la cible qu'il simule.

Idéalement, vous devriez pouvoir examiner la simulation et observer les propriétés que vous verriez également si vous avez examiné la cible d'origine. En pratique, il peut y avoir des raccourcis vers la simulation pour des raisons de performances, c'est-à-dire que certains aspects internes de la simulation peuvent en fait être une émulation.

MAME est un émulateur de jeu d'arcade; Hyperterm est un émulateur de terminal (pas très bon). Il n'est pas nécessaire de modéliser la machine d'arcade ou un terminal en détail pour obtenir le comportement émulé souhaité.

Flight Simulator est un simulateur; SPICE est un simulateur d'électronique. Ils modélisent autant que possible chaque détail de la cible pour représenter ce que la cible fait dans la réalité.

EDIT: D'autres réponses ont souligné que le but d'une émulation est de pouvoir se substituer à l'objet qu'elle émule. C'est un point important. La simulation se concentre davantage sur la modélisation de l'état interne de la cible - et la simulation ne conduit pas nécessairement à une émulation. En particulier, une simulation peut fonctionner beaucoup plus lentement que le temps réel. SPICE, par exemple, ne peut pas se substituer à un circuit électronique réel (même en supposant qu’il existe une sorte de dispositif magique qui relie parfaitement les circuits électriques à une simulation SPICE). Une simulation La simulation ne conduit pas toujours à l'émulation -


389
2017-10-18 11:55



Un émulateur peut remplacer l'original pour une utilisation «réelle». Un simulateur est un modèle d'analyse.

Un PC virtuel émule un PC.

Si un simulateur de vol pouvait vous transporter de A à B, il s'agirait d'un émulateur de vol.

Un émulateur devra toujours fonctionner près du temps réel. Pour un simulateur ce n'est pas toujours le cas. Une simulation géologique pourrait faire 1000 ans / seconde ou plus.


269
2017-10-18 11:25



Simulation = Pour une analyse et étude

Emulation = Pour une utilisation en tant que remplacer

Un simulateur est un environnement qui modélise mais un émulateur est celui qui réplique l'utilisation comme sur le périphérique ou le système d'origine.

Le simulateur imite l'activité de quelque chose qu'il simule. Il "apparaît" (beaucoup peut aller avec ce "apparaît", selon le contexte) pour être identique à la chose en cours de simulation. Par exemple, le simulateur de vol "semble" être un véritable vol pour l'utilisateur, bien qu'il vous transporte d'un endroit à un autre.

Émulateur, d'un autre côté, réellement "Est-ce que" qu'est-ce que la chose émulée fait, et ce faisant aussisemble faire la même chose». Un émulateur peut utiliser différents ensemble de protocoles pour mimer la chose émulé, mais le résultat / résultat est toujours le même que l'objet original. Par exemple, EMU8086 émule le microprocesseur 8086 sur votre ordinateur, ce qui est évidemment pas en cours d'exécution sur 8086 (=différents protocoles), mais la sortie qu'elle donne est ce que donnerait un vrai 8086.


136
2018-03-06 07:03



C'est une différence de concentration. Émulateurs1 se concentrer sur la recréation du comportement d'un système, sans tenir compte du fonctionnement interne du système. Simulateurs2 se concentrer sur la modélisation des composants d'un système. Vous utilisez un émulateur lorsque vous vous souciez surtout de ce que fait un système et d'un simulateur lorsque vous vous souciez de la manière dont il fonctionne.

En ce qui concerne leurs significations anglaises générales, l'émulation est «l'effort pour égaler ou exceler un autre dans les qualités ou actes", alors que la simulation est" à modèle, répliquer, dupliquer le comportement, l'apparence ou les propriétés de ".Pas de différence. æmulus, "luttant, rivalisant", et est lié à "imiter" et "image", ce qui suggère une ressemblance de levier de surface. "Simulation" vient de similis "like", tout comme le mot "similar", ce qui suggère peut-être une congruence plus profonde.

Les références:

  1. Wikipédia: Émulateur
  2. Wikipédia: Simulation par ordinateur
  3. Wiktionnaire: émulation
  4. Wiktionnaire: simulation
  5. Étymologie en ligne: émulation
  6. Étymologie en ligne: simulation

35
2017-10-18 12:02



Je ne pense pas que l'émulateur et le simulateur puissent être comparés. Les deux imitent quelque chose, mais ne font pas partie du même champ d'application, ils ne sont pas utilisés dans le même contexte.

En bref: un émulateur est conçu pour copier certaines fonctionnalités de la version d'origine et peut même le remplacer dans l'environnement réel. Un simulateur n'est pas conçu pour copier les caractéristiques de l'original, mais seulement pour ressembler à l'original aux êtres humains. Sans les fonctionnalités de l'original, le simulateur ne peut pas le remplacer dans l'environnement réel.

Un émulateur est un appareil qui imite quelque chose d'assez près pour qu'il peut être substitué à la vraie chose. Par exemple, vous voulez un circuit pour fonctionner comme un circuit ROM (lecture seule mémoire), mais veut également ajuster le contenu jusqu'à ce que ce soit ce que vous voulez. Vous utiliserez un émulateur de ROM, une boîte noire (susceptible d'être basée sur le processeur) avec des interfaces physiques et électriques compatibles avec la ROM que vous voulez émuler. L'émulateur sera branché sur l'appareil à la place de la vraie ROM. La carte mère ne verra aucune différence lors du travail, mais vous pourrez changer le contenu de la ROM émulée facilement. Dit autrement, l'émulateur agira exactement comme la chose réelle dans son contexte de la carte mère (peut-être un peu plus lent en raison du modèle interne réelle), mais il y aura des fonctions supplémentaires (comme la réécriture) visibles seulement au concepteur, hors du contexte de la carte mère . La définition de l'émulateur serait donc: quelque chose qui imite l'original, possède toutes ses fonctionnalités, peut en réalité le remplacer dans une certaine mesure dans le monde réel, et peut avoir des fonctionnalités supplémentaires non visibles dans le contexte normal.

UNE simulateur est utilisé dans un autre contexte de réflexion, par exemple un simulateur d’avion, un simulateur de voiture, etc. La simulation ne prendra en compte que certains aspects de comment un être humain le percevra et le contrôlera. Le simulateur ne remplira pas les fonctions du matériel réel, et ne peut pas lui être substitué. Le simulateur d'avion ne va pas voler ou transporter quelqu'un, ce n'est pas du tout son but. Le simulateur n'est pas destiné à fonctionner, mais à apparaître au pilote d'une manière ou d'une autre comme la chose réelle à des fins autres que normales, par ex. pour permettre l'entraînement au sol (y compris dans des situations inhabituelles comme une panne de moteur). Donc, la définition du simulateur serait: quelque chose qui peut sembler à l'homme, dans une certaine mesure, comme l'original, mais ne peut pas le remplacer pour une utilisation réelle. De plus, le pilote saura que le simulateur est un simulateur.

Je ne pense pas que nous verrons un simulateur de ROM, car les ROM n'interagissent pas avec les êtres humains, et nous ne verrons aucun émulateur de plan, car les avions ne peuvent pas avoir un remplacement remplissant les mêmes fonctions dans le monde réel.

À mon avis, le modèle à l'intérieur d'un émulateur ou d'un simulateur peut être n'importe quoi, et ne doit pas être similaire au modèle de l'original. Un modèle d'émulateur de ROM sera probablement un logiciel au lieu de matériel, MS Flight Simulator ne peut pas être plus logiciel qu'il ne l'est.

Cette comparaison des deux termes contredira la réponse actuellement sélectionnée (de Toybuilder) qui met la différence sur le modèle interne, alors que ma suggestion est que la différence est de savoir si le faux peut ou ne peut pas être utilisé pour remplir la fonction réelle dans le monde réel ( à une extension acceptée, en effet).

Notez que le simulateur d'avion devra également simuler la terre, le soleil, le vent, etc., qui ne font pas partie de l'avion, donc un simulateur d'avion devra imiter certains aspects de l'avion, ainsi que l'environnement de l'avion. avion parce qu'il n'est pas utilisé dans cet environnement réel, mais dans une salle d'entraînement.

C'est une grande différence avec l'émulateur qui n'émule que l'original, et son but est d'être utilisé dans l'environnement de l'original sans avoir besoin de l'émuler. Retour au contexte de l'avion ... qu'est-ce qui pourrait être un émulateur d'avion? Peut-être un train qui reliera deux aéroports - en fait deux étapes d'avion - transportant des passagers, avec des hôtesses à bord, avec l'intérieur de voiture ressemblant à une cabine d'avion réelle, et avec le capitaine disant "mesdames et messieurs notre altitude est 10 kms et la température à notre destination est 24 ° C ". Son avantage est difficile à voir, hum ...

En conclusion, l’émulateur est une chose réelle destinée à fonctionner, le simulateur est un faux destiné à tromper l’utilisateur.


19
2017-12-27 17:03



Explication simple

Si vous voulez convertir votre PC (exécutant Windows) en Mac, vous pouvez faire l'un des deux:

(1) Vous pouvez simplement installer un thème Mac sur votre Windows. Ainsi, votre PC ressemble plus à Mac, mais vous ne pouvez pas exécuter de programmes Mac. (SIMULATION)

(ou)

(2) Vous pouvez programmer votre PC pour qu'il fonctionne comme Mac (je ne suis pas sûr que cela soit possible: P). Maintenant, vous pouvez même exécuter les programmes Mac avec succès et attendre la même sortie que sur Mac. (EMULATION)

Dans le premier cas, vous pouvez faire l'expérience de Mac, mais vous ne pouvez pas attendre la même sortie que sur Mac.
Dans le second cas, vous pouvez vous attendre à la même sortie que sur Mac, mais il n'en reste pas moins que ce n'est qu'un PC.


12
2018-06-06 20:04



Il y a quelques années, j'ai trouvé un très court adage qui, je crois, capture bien l'essence de la différence:

Un simulateur est un émulateur en mission.

Je veux dire par là que vous utilisez un émulateur quand vous ne pouvez pas utiliser le vrai, et que vous utilisez un simulateur quand vous ne pouvez pas utiliser le vrai et vous voulez trouver quelque chose à ce sujet.


10
2017-10-18 12:40



Un émulateur est un modèle d'un système qui acceptera toute entrée valide que le système émulé accepterait et produira la même sortie ou le même résultat. Donc, votre logiciel est un émulateur, seulement s'il reproduit comportement du système émulé précisément.


9
2017-10-18 11:38