Je vois fréquemment Simulation et Émulation en informatique. Ces deux termes semblent synonymes. Existe-t-il une différence entre simulation et émulation ?
Je vois fréquemment Simulation et Émulation en informatique. Ces deux termes semblent synonymes. Existe-t-il une différence entre simulation et émulation ?
Réponses:
Oui, les concepts sont différents.
A simulation
est un système qui se comporte de manière similaire à autre chose, mais qui est mis en œuvre de manière totalement différente. Il fournit le comportement de base d'un système, mais ne respecte pas nécessairement toutes les règles du système simulé. Il est là pour vous donner une idée de la façon dont quelque chose fonctionne.
Exemple
Imaginez un simulateur de vol. On dirait que vous pilotez un avion, mais vous êtes complètement déconnecté de la réalité, et vous pouvez vous plier à ces règles ou les enfreindre à votre guise. Par exemple, pilotez un Airbus A380 à l'envers entre Londres et Sydney sans le briser.
An emulation
est un système qui se comporte exactement comme autre chose et qui respecte toutes les règles du système imité. Il s’agit d’une réplication complète d’un autre système, jusqu’à ce qu’il soit compatible binaire avec les entrées et les sorties du système émulé, mais fonctionnant dans un environnement différent de celui du système émulé original. Les règles sont fixes et ne peuvent pas être modifiées ou le système échoue.
Exemple
Le système MAME est construit autour de ce principe. Tous ces vieux systèmes d'arcade oubliés depuis longtemps, implémentés presque entièrement dans du matériel ou dans le micrologiciel de leurs systèmes matériels peuvent être imités jusqu'aux bugs et plantages d'origine qui se produiraient si vous atteigniez le score le plus élevé possible.
Une simulation est un modèle construit à partir de quelque chose d'autre qui reproduit certaines de ses fonctionnalités et en laisse d'autres. Nous souhaitons évidemment préserver les fonctionnalités pertinentes pour votre requête et laisser de côté celles qui ne le sont pas.
Par exemple, une simulation du trafic de banlieue tôt le matin laisse de côté les noms des banlieusards et peut-être même leurs identités (en utilisant une variable de compteur plutôt qu'un ensemble d' Commuter
objets), mais elle ne peut ignorer leur vitesse d'arrivée.
L'émulation est l'exécution d'un logiciel X créé pour la plate-forme A sur la plate-forme B, sans modifier le logiciel lui-même. Cela nécessite de construire un modèle de A qui s'exécute sur B et, évidemment, de modéliser tout ce qui concerne A impliquant l'exécution de code. (En théorie, vous pourriez omettre le support des opcodes que vous savez que ce logiciel n’utilisera jamais, mais cela est rare: créer un émulateur est un travail difficile, et il est bien plus intéressant de faire un travail minutieux et d’avoir quelque chose de réutilisable. cela ne fonctionne que pour S.)
Les deux signifient quelque chose faisant le travail de quelque chose d'autre.
La différence est que la "simulation" se produit à un niveau conscient (vis-à-vis de l'utilisateur) et se finalise généralement pour anticiper le résultat d'une réalité sans toucher à la réalité elle-même.
"L'émulation" se produit à un niveau inconscient et a pour but de remplacer un composant sous-jacent par un autre différent qui, en ce qui concerne l'utilisateur, fonctionne comme l'ancien.
En d'autres termes, la simulation se produit dans un "monde parallèle", tandis que l' émulation se produit dans un "monde remplacé".
Techniquement, ils font tous les deux la même chose: faire quelque chose dans un environnement qui agit comme si c'était la vraie chose.
Sur le plan conceptuel, toutefois, il existe une différence importante.
Une simulation est supposée être détachée du monde réel dans une certaine mesure; la sortie d'une simulation n'est pas directement reliée à la chose simulée. Par exemple, un simulateur d'avion ne vole pas réellement et le pilote ne communique pas réellement avec un vrai contrôleur de la circulation aérienne.
Une simulation a généralement pour objectif de tester ou de prévoir un processus réel dans un environnement sécurisé; étant donné que la simulation est déconnectée du monde réel, rien de grave ne peut arriver (un simulateur d'avion écrasé ne tue jamais de vraies personnes).
Une émulation , au contraire, a pour objectif de remplacer le réel: par exemple, si vous émulez un simple microcontrôleur à l'aide d'un processeur programmable plus sophistiqué, ce dernier peut être utilisé à la place du microcontrôleur d'origine; il sera physiquement connecté à une machine et le contrôlera comme le ferait un microcontrôleur.
Le but d'une émulation est de remplacer des composants matériels ou logiciels par des équivalents fonctionnels lorsque les modules d'origine ne sont pas disponibles (ou sont devenus trop chers, ne serait-ce que pour les maintenir). L'émulation peut également servir à utiliser le matériel de manière plus flexible: le même microcontrôleur programmable peut doubler pour plusieurs contrôleurs plus simples, en commutant le mode d'émulation si nécessaire.
"technically"
, ils sont totalement différents. La différence conceptuelle que vous décrivez est fondamentale pour cette différence.
Bien que l’étymologie ne soit pas tout à fait exacte, réfléchissez à la différence entre sympathie, "je peux imaginer ce que cela doit ressentir" et empathie, "je sais ce que cela fait." Une simulation peut inclure une représentation visuelle d'un problème, mais pas nécessairement. Par exemple, il peut simplement imprimer des colonnes de nombres représentant le nombre de personnes alignées pour quelque chose, le total des revenus ou la vitesse moyenne. Il présente certaines caractéristiques qui correspondent à la réalité et d'autres non.
L'émulation, qui est souvent utilisée dans le contexte d'une plate-forme se faisant passer pour une autre, est beaucoup plus complète. Les développeurs Windows Phone peuvent donc exécuter ou déboguer leurs applications téléphoniques sur une machine Windows dans un émulateur, qui ressemble à un téléphone et se comporte comme tel. Vous pouvez également exécuter vos anciens jeux Commodore 64 dans un émulateur.
Les mots ne sont pas précis. La plupart des simulateurs de vol ressemblent davantage à des émulateurs à mon avis, mais le nom a été collé à une époque où ils n'étaient pas aussi immersifs. Certaines personnes réservent le mot émulateur pour le cas multiplate-forme et le refusent pour toute autre chose. Vous ne serez probablement jamais trompé si vous faites la même chose lorsque vous parlez, mais comprenez que certaines personnes peuvent placer la limite entre les deux mots un peu différemment, et faire preuve de tolérance lorsque quelqu'un dit "ceci est une émulation" simulation complète.
Les deux termes sont très similaires dans le concept - imitant.
La simulation ou les simulateurs utilisent un logiciel pour produire un système répliqué qui ressemble beaucoup au modèle cible en ce qui concerne ses fonctionnalités principales sous-jacentes (en particulier sa méthodologie de base).
Les émulateurs, quant à eux, se concentrent davantage sur la similitude extérieure par rapport au système cible. Il ne tient pas compte de la manière dont les fonctions sont imitées. Les émulateurs sont généralement utilisés lorsque vous travaillez dans un environnement complètement différent (par exemple, un système d'exploitation différent) par rapport au système d'origine.