Simulator oder Emulator? Was ist der Unterschied?

522

Obwohl ich verstehe, was Simulation und Emulation im Allgemeinen bedeuten, bin ich fast immer verwirrt. Angenommen, ich erstelle eine Software, die vorhandene Hardware / Software nachahmt. Wie soll ich sie nennen? Ein Simulator oder ein Emulator?

Könnte jemand den Unterschied in Bezug auf die Programmierung erklären?

Bonus: Was ist der Unterschied zwischen diesen beiden Begriffen auf Englisch? (Sorry, ich bin kein Muttersprachler :))

AraK
quelle
3
In der Entwicklung mobiler Apps verfügt das iPhone über einen Simulator, während Android über einen Emulator verfügt. Mehr hier - stackoverflow.com/questions/4544588/…
Vishnu Haridas
1
Ich fand die
Einstellung von
Dies könnte auch hilfreich sein, um dies zu erklären: programmers.stackexchange.com/questions/134746/…
Hakan Fıstık

Antworten:

462

Emulation ist der Prozess der Nachahmung des nach außen beobachtbaren Verhaltens, um einem vorhandenen Ziel zu entsprechen. Der interne Zustand des Emulationsmechanismus muss den internen Zustand des Ziels, das er emuliert, nicht genau wiedergeben.

Bei der Simulation wird dagegen der zugrunde liegende Zustand des Ziels modelliert. Das Endergebnis einer guten Simulation ist, dass das Simulationsmodell das Ziel emuliert, das es simuliert.

Idealerweise sollten Sie in der Lage sein, in die Simulation zu schauen und Eigenschaften zu beobachten, die Sie auch sehen würden, wenn Sie in das ursprüngliche Ziel schauen würden. In der Praxis kann es aus Leistungsgründen einige Verknüpfungen zur Simulation geben - das heißt, einige interne Aspekte der Simulation können tatsächlich eine Emulation sein.

MAME ist ein Arcade-Spielemulator. Hyperterm ist ein (nicht sehr guter) Terminalemulator. Es ist nicht erforderlich, den Arcade-Automaten oder ein Terminal im Detail zu modellieren, um das gewünschte emulierte Verhalten zu erzielen.

Flight Simulator ist ein Simulator; SPICE ist ein Elektroniksimulator. Sie modellieren so weit wie möglich jedes Detail des Ziels, um darzustellen, was das Ziel in der Realität tut.

BEARBEITEN: Andere Antworten haben darauf hingewiesen, dass das Ziel einer Emulation darin besteht, das zu emulierende Objekt zu ersetzen. Das ist ein wichtiger Punkt. Der Fokus einer Simulation liegt eher auf der Modellierung des internen Zustands des Ziels - und die Simulation führt nicht unbedingt zur Emulation. Insbesondere kann eine Simulation viel langsamer als in Echtzeit ablaufen. SPICE kann beispielsweise einen tatsächlichen elektronischen Schaltkreis nicht ersetzen (selbst wenn angenommen wird, dass es eine Art magisches Gerät gibt, das elektrische Schaltkreise perfekt mit einer SPICE-Simulation verbindet.) Eine Simulationssimulation führt nicht immer zur Emulation -

Spielzeugbauer
quelle
33
Ist es nach dieser Definition daher unmöglich, die reale Welt in Software zu simulieren ? Ich denke nicht, dass wir den zugrunde liegenden Zustand der realen Welt genau darstellen können - emulieren Sie nur beobachtbare Eigenschaften ... für den Moment.
Dolph
8
Ich stimme diesem "[Simulations] -Modell nicht so weit wie möglich jedes Detail des Ziels zu, um darzustellen, was das Ziel in der Realität tut." Simulationen haben das Modell des Zielsystems mit ausreichenden Details basierend auf dem Zweck der Simulation. Zum Beispiel modelliert Flight Simulator wahrscheinlich keine Fische im Meer, weil es für den Zweck der Simulation unbrauchbar ist.
Hamdi
16
Genau die gegenteilige Antwort hier: stackoverflow.com/questions/2174638/…
smwikipedia
3
Es scheint, dass die meisten Menschen diese Wörter anders verwenden, wie in: Simulation findet im Allgemeinen auf einer höheren Ebene als Emulation statt (ungeachtet dessen, dass beide Wörter in einem bestimmten Kontext selten zusammen verwendet werden). Siehe zum Beispiel den Android Emulator im Vergleich zum Apple Simulator. Ich schlage vor, die Wörter in dieser Antwort umzuschalten, um mit den meisten Definitionen übereinzustimmen und Verwirrung für zukünftige Besucher zu vermeiden.
Flieger
1
Ich denke, diese Antwort hat die 2 Begriffe vertauscht. Alle anderen Quellen erklären es als: Simulation = doppeltes Verhalten; Emulation = doppeltes Innenleben. Was zu folgender Schlussfolgerung führt: Beide sind verdammte SUBJEKTIVE Begriffe.
Metalim
350

Wenn ein Flugsimulator Sie von A nach B transportieren könnte, wäre er ein Flugemulator.

Ein Emulator kann das Original für den tatsächlichen Gebrauch ersetzen .
Ein virtueller PC emuliert einen PC.

Ein Simulator ist ein Modell für Studien und Analysen.

Ein Emulator muss immer nahezu in Echtzeit arbeiten. Für einen Simulator ist das nicht immer der Fall. Eine geologische Simulation kann 1000 Jahre / Sekunde oder mehr dauern.

Henk Holterman
quelle
6
@Henk Dein "Cockpit" -Beispiel ist fantastisch, obwohl ich es verstanden habe, nachdem ich die Antwort von Toybuilder gelesen habe. Danke :)
AraK
1
Der virtuelle PC emuliert nicht , er virtualisiert. QEmu, auf der anderen Seite tut emulieren. In beiden Fällen sollte der Name ein Hinweis sein.
Jörg W Mittag
24
Ich denke, man kann mit Sicherheit sagen, dass Virtual PC einen PC emuliert. Die Emulation des PCs erfolgt durch Virtualisierung, dies ist jedoch eher ein Implementierungsdetail. Sie könnten argumentieren, dass die Hardwarevirtualisierung eine Obermenge der Emulation darstellt, die eine beschleunigte CPU-Unterstützung, exklusiven Zugriff auf Hardwaregeräte usw. bieten kann
Lee B,
Warten Sie, bietet Virtual PC nicht eine 1: 1-Replik eines echten PCs? (Ich meine, die Systemvirtualisierung sollte im Allgemeinen nicht nur externes Verhalten simulieren, sondern so ziemlich jeden Winkel eines Systems, im Gegensatz zur Anwendungsvirtualisierung, bei der z. B. der Netzwerkstapel nicht neu erstellt wird.)
Camilo Martin
1
Wo finde ich den Flugemulator?
Jerry Dodge
175

Simulation = Zur Analyse und Untersuchung

Emulation = Zur Verwendung als Ersatz

Ein Simulator ist eine Umgebung, die modelliert, aber ein Emulator ist eine Umgebung, die die Verwendung wie auf dem ursprünglichen Gerät oder System repliziert.

Der Simulator ahmt die Aktivität von etwas nach, das er simuliert. Es "erscheint" (je nach Kontext kann viel damit einhergehen "erscheint") ist dasselbe wie das simulierte Objekt. Zum Beispiel "scheint" der Flugsimulator für den Benutzer ein echter Flug zu sein, obwohl er Sie nicht von einem Ort zum anderen transportiert.

Der Emulator hingegen " tut " tatsächlich das, was das emulierte Ding tut, und dabei scheint es auch " dasselbe zu tun ". Ein Emulator kann verschiedene Protokolle verwenden, um das zu emulierende Objekt nachzuahmen, aber das Ergebnis ist immer das gleiche wie das ursprüngliche Objekt. Beispielsweise emuliert EMU8086 den 8086-Mikroprozessor auf Ihrem Computer, der offensichtlich nicht auf 8086 (= verschiedenen Protokollen ) ausgeführt wird, aber die Ausgabe, die er liefert, entspricht der eines echten 8086.

Dheepak J.
quelle
9
Klarste Antwort, die ich gesehen habe. Für mich könnte nur verbessert werden, indem der zusätzliche Satz weggelassen oder in Ihre hervorragenden kontrastierenden Definitionen integriert wird :-D
Doughgle
40

Es ist ein Unterschied im Fokus. Emulatoren 1 konzentrieren sich auf die Wiederherstellung des Verhaltens eines Systems, ohne Rücksicht darauf, wie das System intern funktioniert. Simulatoren 2 konzentrieren sich auf die Modellierung der Komponenten eines Systems. Sie verwenden einen Emulator, wenn Sie sich hauptsächlich für die Funktionsweise eines Systems interessieren, und einen Simulator, wenn Sie sich für die Funktionsweise eines Systems interessieren.

Was ihre allgemeinen englischen Bedeutungen betrifft, so ist Emulation "das Bestreben, andere in Qualitäten oder Handlungen gleichzustellen oder zu übertreffen ", während Simulation " das Verhalten, das Aussehen oder die Eigenschaften von" zu modellieren , zu replizieren, zu duplizieren ist. Kein großer Unterschied. Die Emulation kommt von æmulus , "streben, konkurrieren", und hängt mit "imitieren" und "Bild" zusammen, was auf eine Ähnlichkeit mit dem Oberflächenhebel hindeutet. „Simulation“ kommt aus similis „gefällt mich“, tut als das Wort „ähnlich“ , das vielleicht eine tiefere Kongruenz vermuten läßt.

Verweise:

  1. Wikipedia: Emulator
  2. Wikipedia: Computersimulation
  3. Wiktionary: Emulation
  4. Wiktionary: Simulation
  5. Etymology Online: Emulation
  6. Etymologie Online: Simulation
outis
quelle
Ihre Antwort unterscheidet sich von anderen. Ist Virtual PC Ihrer Meinung nach ein Simulator oder ein Emulator?
Mikaël Mayer
@ MikaëlMayer: Viele der Antworten unterscheiden sich von denen der anderen, nur einige sind ähnlich. Ich würde meine Antwort als gleichwertig (insofern würden die Dinge auf die gleiche Weise klassifiziert) als Toybuilder und cdiggens und als kompatibel mit der von Jörg betrachten. Es ist nur im Gegensatz zu Pontus und Aeolai.
Outis
@ MikaëlMayer Virtual PC ist ein Emulator. Es kann alles, was ein echter PC kann.
Ein Benutzer
1
@Pri Siehe die Antwort dieses Threads zum virtuellen PC. Es ist beides, es hängt von der Perspektive ab. Zum Beispiel kann man immer noch sagen, dass es sich um eine Simulation handelt, da sie nicht wie ein echter Computer heizen kann.
Mikaël Mayer
Vielen Dank, dass Sie @ MikaëlMayer zurückgekommen sind, aber um ehrlich zu sein, können wir manchmal nicht wirklich unterscheiden, ob ein System ein Emulator oder ein Simulator ist. Eine gute Debatte beginnt. Hoffe ich habe recht! Nur wenige leiten den Unterschied aufgrund der Verwendung, der englischen Bedeutung, der Funktionalität und der Erschwinglichkeit ab. Aber wenn ich alle Antworten in meiner Fallstudie anwende, ist es keine einfache Sache
Ein Benutzer
19

Ich denke nicht, dass Emulator und Simulator verglichen werden können. Beide ahmen etwas nach, sind aber nicht Teil desselben Argumentationsumfangs, sie werden nicht im gleichen Kontext verwendet.

Kurz gesagt: Ein Emulator kopiert einige Funktionen des Originals und kann es sogar in der realen Umgebung ersetzen. Ein Simulator ist nicht dazu gedacht, die Merkmale des Originals zu kopieren, sondern nur dem Menschen ähnlich wie das Original zu erscheinen. Ohne die Funktionen des Originals kann der Simulator es in der realen Umgebung nicht ersetzen.

Ein Emulator ist ein Gerät, das etwas Nahes nachahmt, so dass es durch das Original ersetzt werden kann. Sie möchten beispielsweise, dass eine Schaltung wie eine ROM-Schaltung (Nur-Lese-Speicher) funktioniert, möchten aber auch den Inhalt anpassen, bis er Ihren Wünschen entspricht. Sie verwenden einen ROM-Emulator, eine Black Box (wahrscheinlich CPU-basiert) mit physischen und elektrischen Schnittstellen, die mit dem zu emulierenden ROM kompatibel sind. Der Emulator wird anstelle des realen ROM an das Gerät angeschlossen. Das Motherboard sieht beim Arbeiten keinen Unterschied, aber Sie können den emulierten ROM-Inhalt einfach ändern. Ansonsten wird der Emulator in seinem Motherboard-Kontext genau so funktionieren wie das eigentliche Element (möglicherweise etwas langsamer aufgrund des tatsächlichen internen Modells), aber es gibt zusätzliche Funktionen (wie das Umschreiben), die nur für den Designer außerhalb des Motherboard-Kontexts sichtbar sind . Die Emulatordefinition wäre also: etwas, das das Original nachahmt, alle seine Funktionsmerkmale hat,

Ein Simulator wird in einem anderen Denkkontext verwendet, z. B. einem Flugzeugsimulator, einem Autosimulator usw. Die Simulation kümmert sich nur um einen Aspekt der tatsächlichen Sache, normalerweise um diejenigen, die sich darauf beziehen, wie ein Mensch sie wahrnimmt und kontrolliert. Der Simulator führt die Funktionen des realen Materials nicht aus und kann nicht unterstützt werden. Der Flugzeugsimulator wird nicht fliegen oder jemanden tragen, es ist überhaupt nicht sein Zweck. Der Simulator soll nicht funktionieren, sondern dem Piloten für andere als die normalen Zwecke irgendwie wie das eigentliche Ding erscheinen, z. B. um Bodentraining zu ermöglichen (auch in ungewöhnlichen Situationen wie einem Ausfall des gesamten Motors). Die Simulatordefinition wäre also: etwas, das dem Menschen in gewissem Maße wie das Original erscheinen kann, es aber für den tatsächlichen Gebrauch nicht ersetzen kann. Außerdem weiß der Pilot, dass der Simulator ein Simulator ist.

Ich glaube nicht, dass wir einen ROM-Simulator sehen werden, weil ROM nicht mit Menschen interagiert, und wir werden auch keinen Flugzeugemulator sehen, weil Flugzeuge keinen Ersatz haben können, der die gleichen Funktionen in der realen Welt ausführt.

Meiner Ansicht nach kann das Modell in einem Emulator oder Simulator alles sein und muss dem Modell des Originals nicht ähnlich sein. Ein ROM-Emulatormodell ist wahrscheinlich Software anstelle von Hardware. MS Flight Simulator kann nicht mehr Software sein als es ist.

Dieser Vergleich beider Begriffe widerspricht der aktuell ausgewählten Antwort (von Toybuilder), die den Unterschied zum internen Modell darstellt, während mein Vorschlag lautet, dass der Unterschied darin besteht, ob die Fälschung zur Ausführung der tatsächlichen Funktion in der tatsächlichen Welt verwendet werden kann oder nicht ( in gewissem Umfang sogar akzeptiert).

Beachten Sie, dass der Flugzeugsimulator auch die Erde, die Sonne, den Wind usw. simulieren muss, die nicht Teil des Flugzeugs sind, sodass ein Flugzeugsimulator einige Aspekte des Flugzeugs sowie die Umgebung des Flugzeugs nachahmen muss Flugzeug, weil es nicht in dieser tatsächlichen Umgebung verwendet wird, sondern in einem Schulungsraum.

Dies ist ein großer Unterschied zu dem Emulator, der nur das Original emuliert, und sein Zweck besteht darin, in der Umgebung des Originals verwendet zu werden, ohne dass es emuliert werden muss. Zurück zum Flugzeugkontext ... was könnte ein Flugzeugemulator sein? Vielleicht ein Zug, der zwei Flughäfen verbindet - eigentlich zwei Flugzeugstufen - und Passagiere befördert, mit Stewardessen an Bord, mit einem Innenraum, der wie eine echte Flugzeugkabine aussieht, und einem Kapitän, der sagt: "Meine Damen und Herren, unsere Höhe beträgt derzeit 10 km und die Temperatur an unserem Ziel ist 24 ° C ". Sein Nutzen ist schwer zu sehen, summen ...

Als Fazit ist der Emulator eine echte Sache, die funktionieren soll, der Simulator ist eine Fälschung, die den Benutzer austricksen soll.

min
quelle
1
Der Ausdruck "ROM-Emulator" erinnert mich an virtuelle Videospielkonsolen.
Joe Z.
11

Einfache Erklärung.

Wenn Sie Ihren PC (unter Windows) in einen Mac konvertieren möchten, haben Sie folgende Möglichkeiten:

(1) Sie können einfach ein Mac-Design unter Windows installieren. Ihr PC fühlt sich also eher wie ein Mac an, aber Sie können keine Mac-Programme ausführen.(SIMULATION)

(oder)

(2) Sie können Ihren PC so programmieren, dass er wie ein Mac läuft (ich bin mir nicht sicher, ob dies möglich ist: P). Jetzt können Sie sogar Mac-Programme erfolgreich ausführen und die gleiche Ausgabe wie auf dem Mac erwarten.(EMULATION)

Im ersten Fall können Sie Mac erleben, aber Sie können nicht die gleiche Ausgabe wie auf Mac erwarten.
Im zweiten Fall können Sie die gleiche Ausgabe wie auf dem Mac erwarten, aber es bleibt die Tatsache, dass es sich nur um einen PC handelt.

Vishnu Vivek
quelle
3
Dies ist sowohl einfach als auch völlig falsch. (2) ist nahe an der Emulation, aber (1) ist weder Emulation noch Simulation.
Nick Bastin
10

Um den Unterschied zwischen einem Simulator und einem Emulator zu verstehen, denken Sie daran, dass ein Simulator versucht, das Verhalten eines realen Geräts nachzuahmen. Im Fall des iOS-Simulators wird beispielsweise das tatsächliche Verhalten eines tatsächlichen iPhone / iPad-Geräts simuliert. Der Simulator selbst verwendet jedoch die verschiedenen auf dem Mac installierten Bibliotheken (z. B. QuickTime), um das Rendern so durchzuführen, dass der Effekt dem eines tatsächlichen iPhone entspricht. Darüber hinaus werden auf dem Simulator getestete Anwendungen in x86-Code kompiliert, dem vom Simulator verstandenen Bytecode. Umgekehrt verwendet ein echtes iPhone-Gerät ARM-basierten Code.

Im Gegensatz dazu emuliert ein Emulator die Arbeitsweise eines realen Geräts. Auf einem Emulator getestete Anwendungen werden in den tatsächlichen Bytecode kompiliert, der vom realen Gerät verwendet wird. Der Emulator führt die Anwendung aus, indem er den Bytecode in ein Formular übersetzt, das vom Hostcomputer ausgeführt werden kann, auf dem der Emulator ausgeführt wird.

Um den subtilen Unterschied zwischen Simulation und Emulation zu verstehen, stellen Sie sich vor, Sie versuchen ein Kind davon zu überzeugen, dass das Spielen mit Messern gefährlich ist. Um dies zu simulieren, geben Sie vor, sich mit einem Messer zu schneiden und vor Schmerz zu stöhnen. Um dies zu emulieren, schneiden Sie sich tatsächlich.

पवन
quelle
7
Versuchen Sie dies nicht zu Hause Kinder: D
Gearoid Murphy
9

Ein Emulator ist ein Modell eines Systems, das alle gültigen Eingaben akzeptiert, die das emulierte System akzeptieren würde, und dieselbe Ausgabe oder dasselbe Ergebnis erzeugt. Ihre Software ist also nur dann ein Emulator, wenn sie das Verhalten des emulierten Systems präzise wiedergibt .

cdiggins
quelle
Vielen Dank. Ich denke, dies ist eine sehr genaue Definition von Emulation. So ist beispielsweise Wine ein Simulator, weil er nicht unbedingt die gleiche genaue Ausgabe liefert, die in Windows definiert ist?
AraK
6
Seien Sie vorsichtig, wenn Sie versuchen, WINE in einen Emulator oder Simulator zu stecken. WINE ist eine Kompatibilitätsschicht, mit der Binärdateien von einem System auf der binären API-Schicht eines anderen Systems ausgeführt werden. Man könnte es einen Adapter nennen. Ich nehme an, Simulator ist auch kein schlechter Weg, um es zu verstehen, aber es ist nicht viel näher als Emulator.
Lee B
Wein ist Emulation in diesem Spektrum. Es sieht äußerlich so aus, als würde es Windows-Binärdateien verknüpfen, aber wenn Sie sich die Interna ansehen würden, würden Sie nichts über Windows erfahren.
Nick Bastin
9

Vor einigen Jahren habe ich mir ein sehr kurzes Sprichwort ausgedacht, das meiner Meinung nach die Essenz des Unterschieds sehr gut einfängt:

Ein Simulator ist ein Emulator auf einer Mission.

Damit meine ich, dass Sie einen Emulator verwenden, wenn Sie das Original nicht verwenden können, und Sie verwenden einen Simulator, wenn Sie das Original nicht verwenden können und etwas darüber herausfinden möchten .

Jörg W Mittag
quelle
8

Im mehr oder weniger normalen Sprachgebrauch: Wenn Ihre Software alles kann, was das nachgeahmte System kann, ist es ein Emulator. Wenn es nur die Ergebnisse eines Systems (IT oder anderweitig) annähert, ist es ein Simulator.

Pontus Gagge
quelle
5

Simulator: Es ähnelt dem Interpreter. dh es führt tatsächlich den realen Code zeilenweise aus , um das Verhalten nachzuahmen

Emulator: Es ist ähnlich ausführbar. dh es nimmt kompilierten Code und führt ihn aus.

Satya
quelle
4

Ein Emulator ist eine Alternative zum realen System, aber ein Simulator wird verwendet, um das reale System zu optimieren, zu verstehen und zu schätzen.

Ramsharan
quelle
3

Die Unterscheidung zwischen den beiden Begriffen ist etwas unscharf. Sie stammen aus einer Welt, in der "Emulatoren" Hardware sind, mit der Sie eingebettete Systeme debuggen können. Und denken Sie daran, dass Produkte, mit denen Sie ICE-Funktionen (In Circuit Emulation) zum Debuggen einer PC-Plattform verwenden konnten, die Verwendung des Begriffs "Emulation" für Software, die das Verhalten einer Hardware simuliert, eine Art Fehlbezeichnung darstellt.

Meine Rechtfertigung für die derzeitige Verwendung des Begriffs "Emulation" ist, dass er die Funktionalität "erweitern" kann und sich nur mit einer "vernünftigen" Annäherung an das Verhalten des Systems befasst.

ICE: (In Circuit Emulation) Eine Hardware, die anstelle des eigentlichen Prozessors an eine Platine angeschlossen wird. Sie können das System so ausführen, als ob der tatsächliche Prozessor vorhanden wäre. Typischerweise haben diese eine Variante des Prozessors, um die Software tatsächlich mit Klebelogik auszuführen, damit der Benutzer die Ausführung und den einzelnen Schritt unter Hardwaresteuerung unterbrechen kann. Einige würden auch Protokollierungsfunktionen bereitstellen. Die meisten modernen Prozessorentwicklungssysteme haben die ICE-Emulation durch die JTAG-Emulation ersetzt, bei der der JTAG nur über eine spezielle serielle Verbindung mit dem Prozessor kommuniziert und die gesamte Ausführung von dem auf der Platine montierten Prozessor ausgeführt wird.

Software-EMULATOR: Ein 0x86-Emulator befasst sich nur mit der Ausführung der Assemblersprache 0x86 und liefert kein genaues Verhaltensmodell für einen Zyklus pro Zyklus eines SPEZIFISCHEN 0x86-Prozessors. Bochs ist ein Beispiel dafür. QEMU tut dies, ermöglicht aber auch die "Virtualisierung" mit speziellen Kernelmodulen.

SIMULATOR: Texas Instruments bietet ein CYCLE ACCURATE-Verhaltensmodell seiner Prozessoren für die Softwareentwicklung, das den Entwicklern eine genaue SIMULATION des Verhaltens spezifischer Prozessorkerne bieten soll, bevor sie über funktionierende Hardware verfügen.

Erweiterungsfunktionalität des Software-EMULATORS: Mit BLEEM konnten Sie nicht nur die Playstation-Software ausführen, sondern auch die Anzeige mit einer höheren Auflösung ausgeben, als die Playstation bieten konnte, und die erweiterten Funktionen der verfügbaren GPUs nutzen. (dh Besseres Mischen und Glätten von Texturen.)

NoMoreZealots
quelle
3

Beide sind Modelle eines Objekts, mit denen Sie Eingaben steuern und Ausgaben beobachten können.

Der Hauptunterschied ist, dass:

  • Mit einem Emulator soll die Ausgabe genau dem entsprechen, was das zu emulierende Objekt erzeugen würde.
  • Mit einem Simulator möchten Sie, dass bestimmte Eigenschaften Ihrer Ausgabe denen des Objekts ähneln .

Lassen Sie mich ein Beispiel geben - Angenommen, Sie möchten einige Systemtests durchführen, um festzustellen, wie sich das Hinzufügen eines neuen Sensors (wie eines Thermometers) zu einem System auf das System auswirkt. Sie wissen, dass das Thermometer 8 Mal pro Sekunde eine Nachricht mit seiner Messung sendet.

Simulation - Wenn Sie das Thermometer noch nicht haben, aber testen möchten, dass diese Meldungsrate Ihr System nicht überlastet, können Sie den Sensor simulieren, indem Sie eine Einheit anbringen, die 8-mal pro Sekunde eine Zufallszahl sendet. Sie können jeden Test ausführen, der nicht vom tatsächlichen Wert abhängt, den der Sensor sendet.

Emulation - Angenommen, Sie haben ein sehr teures Thermometer mit einer Temperatur von 0,001 ° C und möchten wissen, ob Sie mit einem billigeren Thermometer auskommen, das nur auf 0,5 ° C genau misst. Sie können das billigere Thermometer mit einem teuren Thermometer emulieren und Runden Sie dann den Messwert auf 0,5 ° C ab und führen Sie Tests durch, die auf den Temperaturwerten basieren.

Beachten Sie, dass Simulationen auch zur Vorhersage oder Vorhersage des Verhaltens verwendet werden können. Finite-Elemente-Analyse-Simulationen werden in vielen Anwendungen verwendet, einschließlich Wettervorhersage und virtuellen Windkanälen.

Die Definitionen der Begriffe:

  • Emulation - übertreffen oder genau übereinstimmen
  • simulieren - im Aussehen oder Charakter imitieren
Jay Elston
quelle
Hinweis - Dies ist der Antwort auf eine Frage sehr ähnlich, die als Dup dieser Frage markiert wurde ( stackoverflow.com/questions/2174638/… ). Ich habe eine Definition der Begriffe hinzugefügt (in der Frage angefragt, aber noch nicht beantwortet) und auch einige Informationen zu Verwendungszwecken für die Simulation (Finite-Elemente-Analyse) für etwas mehr als die Nachahmung eines Geräts hinzugefügt.
Jay Elston
2

Diese Frage lässt sich wahrscheinlich am besten mit einem Blick auf die historische Praxis beantworten.

In der Vergangenheit habe ich Spielekonsolenemulatoren auf dem PC für PlayStation & SEGA gesehen.

Simulatoren sind an der Tagesordnung, wenn auf Software verwiesen wird, die versucht, reale Aktionen wie Fahren oder Fliegen nachzuahmen. Gran Turismo und Microsoft Flight Simulator sind klassische Beispiele für Simulatoren.

Was den sprachlichen Unterschied betrifft, bezieht sich Emulation normalerweise auf das Kopieren der lobenswerten Eigenschaften oder Verhaltensweisen von jemandem (oder etwas). Emulation unterscheidet sich von Nachahmung, bei der eine Person zum Zwecke des Spottes kopiert wird.

Die sprachliche Bedeutung des Verbs "Simulation" besteht im Wesentlichen darin, jemanden oder etwas vorzutäuschen oder nachzuahmen.

Zaid
quelle
2

In der Informatik erzeugen sowohl eine Simulation als auch eine Emulation dieselben Ausgaben aus denselben Eingaben wie das ursprüngliche System. Eine Emulation verwendet jedoch auch dieselben Prozesse , um dies zu erreichen, und besteht aus denselben Materialien . Eine Simulation verwendet andere Prozesse als das ursprüngliche System. Erwähnenswert ist auch der Begriff Replikation, der das Zwischenprodukt der beiden ist - mit denselben Prozessen, aber aus einem anderen Material.

Wenn ich also mein altes Super Mario Bros-Spiel auf meinem PC ausführen möchte, verwende ich einen SNES- Emulator , da er denselben oder einen ähnlichen Computercode (Prozesse) zum Ausführen des Spiels verwendet und dieselben oder ähnliche Materialien (Siliziumchip) verwendet. . Wenn ich jedoch einen Boeing 747-Jet auf meinem PC fliegen möchte, verwende ich einen Flugsimulator, da dieser völlig andere Prozesse als das Original verwendet (es sind keine tatsächlichen Flügel, Auftrieb oder Aerodynamik beteiligt!).

Hier sind die genauen Definitionen aus einem Informatik-Glossar:

Eine Simulation ist ein Modell eines Systems, das die funktionalen Verbindungen zwischen Ein- und Ausgängen des Systems erfasst, ohne jedoch notwendigerweise auf Prozessen zu basieren, die mit denen des Systems selbst identisch oder diesen ähnlich sind.

Eine Replikation ist ein Modell eines Systems, das die funktionalen Verbindungen zwischen Ein- und Ausgängen des Systems erfasst und auf Prozessen basiert, die mit denen des Systems selbst identisch oder diesen ähnlich sind.

Eine Emulation ist ein Modell eines Systems, das die funktionalen Verbindungen zwischen Ein- und Ausgängen des Systems erfasst, basierend auf Prozessen, die mit denen dieses Systems identisch oder diesen ähnlich sind und aus denselben Materialien wie dieses System aufgebaut sind .

Referenz: The Open University, M366 Glossar 1.1, 2007

Aeolai
quelle
2

Eine Simulation ist ein System, das sich ähnlich wie etwas anderes verhält , aber auf eine ganz andere Weise implementiert wird. Es bietet das grundlegende Verhalten eines Systems, muss jedoch möglicherweise nicht alle Regeln des simulierten Systems einhalten. Es soll Ihnen eine Vorstellung davon geben, wie etwas funktioniert.

Eine Emulation ist ein System, das sich genau wie etwas anderes verhält und alle Regeln des emulierten Systems einhält. Es ist praktisch eine vollständige Replikation eines anderen Systems, bis hin zur Binärkompatibilität mit den Ein- und Ausgängen des emulierten Systems, die jedoch in einer anderen Umgebung als die Umgebung des ursprünglichen emulierten Systems arbeitet. Die Regeln sind festgelegt und können nicht geändert werden oder das System fällt aus.

DIXON THANKACHAN
quelle
2

Die Definitionen der Wörter beschreiben den Unterschied am besten. Eine Google-Suche enthält die folgenden Definitionen für Simulieren und Emulieren:

simulieren imitieren das Aussehen oder den Charakter von.

emulieren Match oder Surpass (eine Person oder Leistung), typischerweise durch Nachahmung.

Eine Simulation imitiert ein System. Eine Emulation simuliert ein System so gut, dass es es ersetzen oder sogar übertreffen kann.

Beim Rechnen wäre eine Emulation ein Ersatz für das System, das sie emuliert. Oft übertrifft es sogar das System, das es imitiert. Beispielsweise führen Spielkonsolenemulatoren normalerweise Verbesserungen durch, z. B. eine größere Hardwarekompatibilität, eine bessere Leistung und eine verbesserte Audio- / Videoqualität.

Simulationen hingegen sind dadurch begrenzt, dass sie Modelle sind. Sie sind der beste Versuch, ein System nachzuahmen, aber kein Ersatz dafür. Es gibt Hardware-Emulatoren, da Hardware nachgeahmt werden kann und es schwierig ist, den Unterschied zu erkennen. Es gibt keinen Farming Emulator, da es keine Emulation gibt, die die tatsächliche Landwirtschaft ersetzen könnte. Wir können nur ein Modell der Landwirtschaft simulieren, um Einblicke in die bessere Landwirtschaft zu erhalten.

Keiner
quelle
1

Ein virtueller PC versucht, einen Computer aus Sicht eines Programmierers zu emulieren , simuliert jedoch gleichzeitig einen Computer aus Sicht eines Elektrotechnikers .

Abhinav
quelle
0

Emulator:

Stellen Sie sich eine Situation vor, in der Sie nur Englisch sprechen und sich in China befinden. Um mit einer chinesischen Person interagieren zu können, benötigen Sie einen Übersetzer. Die Rolle des Übersetzers besteht nun darin, dass er Eingaben von Ihnen auf Englisch einholt und in Chinesisch konvertiert und diese Eingaben an die chinesische Person weitergibt. Er erhält eine Antwort von der chinesischen Person und konvertiert in Englisch und gibt Ihnen die Ausgabe auf Englisch. Jetzt ist dieser Übersetzer und Chinese der Emulator. Beide Mähdrescher bieten ähnliche Funktionen, als ob Sie mit der englischen Person kommunizieren würden. Die Hardware kann also unterschiedlich sein, aber die Funktionalität ist gleich.

Simulator:

Ich kann kein besseres Beispiel geben als SPICE oder Flugsimulator. Beide ersetzen das Verhalten von Hardwarekomponenten durch die Software oder das mathematische Modell, die sich ähnlich wie die Hardware verhalten.

Letztendlich hängt es vom Kontext ab, welche Lösung den Projektanforderungen besser entspricht.

Vaibhav Gautam
quelle
0

Simulator ist etwas umfassender als Emulator und es scheint, dass die Dualität dieser Begriffe in den obigen Beiträgen überlegt ist.

Emulator

Die Leute entschieden sich für eine neue Wortemulation in der "Computerwelt", als sie anfingen, einige Hardwareteile des vorhandenen Systems auf einfache Weise zu ersetzen - sie ahmten ihr Verhalten nach und vertrauten auf die rechnerische Natur, um sicherzugehen, dass nichts kaputt geht und alles in der Welt bleibt äquivalenter Zustand. Also haben wir das Stück davon emuliert! (und das ganze funktioniert immer noch wie zuvor)

Emulator, der im digitalen Bereich normalerweise im engeren Sinne als Ersatz und Virtualisierung verwendet wird - in digitaler Form als Software dargestellt - für etwas Bekanntes und Vorhandenes (virtuelle Chips, Leiterplatten, elektronische Geräte). Als die Welt digitaler wurde und das Emulatorwort zu den Massen brachte, fügten die Massen ihr Unsicherheit hinzu (oder zusätzliche Gründe).

Simulator

Zunächst sah ich viele Kommentare über Emulatoren, die etwas Reales tun oder ersetzen, Simulatoren jedoch nicht.

ABER der Flugsimulator wird für eine echte Sache verwendet - er bildet Piloten aus, vermittelt ihnen Fähigkeiten und Wissen und ersetzt teure echte Flugzeuge und spart viel Geld. Und wir können nicht einfach einen Flugzeugemulator sagen, weil wir das innere Gefühl haben, dass dies viel mehr als das ist, also nennen wir es Simulator :) Der Flugzeugsimulator könnte emuliertes Radar oder einen Transponder enthalten, der wahr ist.

Gegenaussagen, dass Simulatoren für Analysen und Studien verwendet werden (und Emulatoren für etwas Reales), aber dass Analysen und Studien nicht weniger real sind als emulierte GSM-Boards (noch mehr im Informationszeitalter, in dem wir leben). Die Analyse erhöht den Wert des Geschäfts, senkt die Kosten oder weist auf Gewinne hin, die nicht geringer sind als die ersetzte (emulierte) Hardware.

Der Simulator ähnelt der Modellierung von etwas, das wir aus irgendeinem Grund nicht erhalten können (Kosten, Technologie, physische Unmöglichkeit). Es wird normalerweise für etwas Neues oder Immaterielles oder Komplexes simuliert oder ist uns nicht richtig bekannt, wie Markt, Wetter, Verbrennung, Benutzer. Hier kommt also der Flug, das Schwarze Loch, die Börse, Simulationen.

So endlich:

  1. Der Simulator ist breiter als der Emulator
  2. Der Simulator neigt dazu, globalere Prozesse / Dinge im Allgemeinen zu imitieren / zu modellieren, wobei die Imitation eingegrenzt werden kann (z. B. Kondensatorsimulator mit Voreinstellungen, die einige bekannte Modelle darstellen).
  3. Der Emulator ahmt tendenziell bestimmte Hardwaregeräte mit bestimmten Spezifikationen, bekannten Eigenschaften und Eigenschaften nach (z. B. SNES-Emulator, Intel 8087 oder Roland TB-303).

Wie für Wörter Herkunft

Alle kamen aus dem Lateinischen und meinen:

  • emulieren ist "gleich sein" (sieht aggressiver und unkomplizierter aus - Rivalität)
  • simulieren ist "ähnlich sein" (sieht schlauer und kniffliger aus - Nachahmung)
Turm
quelle