Je vois fréquemment Simulation et Emulation en informatique. Ces deux termes semblent synonymes. Y a-t-il une différence entre Simulation et Emulation?
Oui, les concepts sont différents.
Un simulation
est un système qui se comporte similaire à autre chose, mais est implémenté d'une manière entièrement 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 du fonctionnement de quelque chose.
Exemple
Considérez un simulateur de vol comme exemple. On dirait et on dirait que vous pilotez un avion, mais vous êtes complètement déconnecté de la réalité du pilotage de l'avion, et vous pouvez plier ou enfreindre ces règles comme bon vous semble. Par exemple, pilotez un Airbus A380 à l'envers entre Londres et Sydney sans le casser.
Un emulation
est un système qui se comporte exactement comme autre chose, et adhère à toutes les règles du système en cours d'émulation. Il s'agit en fait d'une réplication complète d'un autre système, jusqu'à être compatible binaire avec les entrées et sorties du système émulé, mais fonctionnant dans un environnement différent de l'environnement du système émulé d'origine. Les règles sont fixes et ne peuvent pas être modifiées, ou le système tombe en panne.
Exemple
Le système M.A.M.E. est construit autour de cette prémisse même. Tous ces anciens systèmes d'arcade qui ont été oubliés depuis longtemps, qui ont été implémentés presque entièrement dans le matériel ou dans le micrologiciel de leurs systèmes matériels peuvent être émulés jusqu'aux bugs et plantages d'origine qui se produiraient lorsque vous atteindriez le score le plus élevé possible.
Un simulation est un modèle construit à partir de quelque chose d'autre qui reproduit certaines des fonctionnalités de cette chose et en laisse d'autres - évidemment, vous voulez conserver les fonctionnalités pertinentes pour votre requête, et laisser de côté celles qui ne sont pas pertinentes.
Par exemple, une simulation du trafic de banlieue tôt le matin laisse de côté les noms des navetteurs, et peut-être même leurs identités (en utilisant une variable de compteur plutôt qu'un ensemble réel d'objets Commuter
), mais elle ne peut pas ignorer leur taux d'arrivée .
Emulation est le fonctionnement d'un logiciel X créé pour la plateforme A sur la plateforme B, sans changer le logiciel lui-même. Cela nécessite de construire un modèle de A qui s'exécute sur B, et évidemment, il doit modéliser tout ce qui concerne A qui implique l'exécution de code. (En théorie, vous pourriez omettre la prise en charge des opcodes que vous savez que ce logiciel particulier n'utilisera jamais, mais cela est rare - faire un émulateur est un travail difficile, et il vaut beaucoup plus la peine de faire un travail approfondi et d'avoir quelque chose de réutilisable qu'un kludge cela ne fonctionne que pour S.)
Les deux signifient quelque chose qui fait le travail d'autre chose.
La différence est que la "simulation" se produit à un niveau conscient (par rapport à l'utilisateur) et est finalisée typiquement 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, par rapport à l'utilisateur, fonctionne comme l'ancien.
En d'autres termes, simulation se produit dans un "monde parallèle", tandis que é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, cependant, il existe une différence importante.
A simulation est censé être détaché du monde réel dans une certaine mesure; la sortie d'une simulation n'est pas directement connectée à la chose qu'elle simule. 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 le objectif de tester ou de prédire un processus réel dans un environnement sûr; parce que la simulation est déconnectée du monde réel, rien de vraiment grave ne peut se produire (un simulateur d'avion écrasé ne tue jamais de vraies personnes).
Une émulation, en revanche, a pour but de remplacer la réalité: par exemple, si vous émulez un microcontrôleur simple à l'aide d'un processeur programmable plus sophistiqué, ce processeur peut être utilisé à la place du microcontrôleur d'origine; il sera physiquement connecté à une machine, et il contrôlera cette machine comme le ferait le microcontrôleur.
objectif d'une émulation consiste à remplacer les 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 maintenir). L'émulation peut également servir l'objectif d'utiliser le matériel de manière plus flexible - le même microcontrôleur programmable peut doubler pour plusieurs contrôleurs plus simples, en changeant le mode d'émulation selon les besoins.
Bien que l'étymologie ne soit pas strictement exacte, réfléchissez à la différence entre la sympathie, "je peux imaginer à quoi cela doit ressembler" et l'empathie, "je sais à quoi cela ressemble". Une simulation peut inclure une représentation visuelle d'un problème, mais ce n'est pas le cas. Par exemple, il peut simplement imprimer des colonnes de chiffres représentant le nombre de personnes alignées pour quelque chose ou le revenu total ou la vitesse moyenne. Il a des 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 prétendant être une autre plate-forme, est beaucoup plus complète. Les développeurs de 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 également 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 plus à des émulateurs à mon avis, mais le nom est resté à une époque où ils n'étaient pas si immersifs. Certaines personnes réservent l'émulateur Word pour le cas multiplateforme et le rejettent pour autre chose. Vous ne vous tromperez probablement jamais si vous faites la même chose lorsque vous parlez, mais comprenez que certaines personnes peuvent placer la frontière entre les deux mots un peu différemment, et faire des concessions lorsque quelqu'un dit "ceci est une émulation" pour un son vraiment précis et simulation complète.
Les deux termes sont très similaires dans leur concept - imitant.
La simulation ou les simulateurs utilisent un logiciel pour produire un système répliqué qui est très similaire au modèle cible en ce qui concerne sa fonctionnalité de base sous-jacente (en particulier sa méthodologie de base).
Les émulateurs, d'autre part, se concentrent davantage sur la similitude extérieure par rapport au système cible. Il a un minimum de souci pour "comment" les fonctions sont imitées. Les émulateurs sont, en général, 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.