In der Informatik sehe ich häufig Simulation und Emulation . Diese beiden Begriffe scheinen synonym zu sein. Gibt es einen Unterschied zwischen Simulation und Emulation ?
quelle
In der Informatik sehe ich häufig Simulation und Emulation . Diese beiden Begriffe scheinen synonym zu sein. Gibt es einen Unterschied zwischen Simulation und Emulation ?
Ja, die Konzepte sind unterschiedlich.
A 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 nicht unbedingt alle Regeln des zu simulierenden Systems einhalten. Es soll Ihnen eine Vorstellung davon geben, wie etwas funktioniert.
Beispiel
Stellen Sie sich als Beispiel einen Flugsimulator vor. Es sieht aus und fühlt sich an, als würden Sie ein Flugzeug fliegen, aber Sie sind völlig unabhängig von der Realität des Flugzeugfliegens, und Sie können diese Regeln biegen oder brechen, wie Sie es für richtig halten. Fliegen Sie beispielsweise einen Airbus A380 verkehrt herum zwischen London und Sydney, ohne ihn zu beschädigen.
An emulation
ist ein System, das sich genau wie etwas anderes verhält und alle Regeln des zu emulierenden 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, wobei jedoch eine andere Umgebung als die Umgebung des ursprünglichen emulierten Systems verwendet wird. Die Regeln sind fest und können nicht geändert werden, oder das System fällt aus.
Beispiel
Das MAME- System basiert auf dieser Prämisse. Alle alten Arcade-Systeme, die lange in Vergessenheit geraten sind, die fast ausschließlich in Hardware oder in der Firmware ihrer Hardware-Systeme implementiert wurden, können bis zu den ursprünglichen Fehlern und Abstürzen emuliert werden, die auftreten würden, wenn Sie die höchstmögliche Punktzahl erreichen würden.
Eine Simulation ist ein Modell, das aus etwas anderem aufgebaut ist, das einige der Merkmale des Dings reproduziert und andere weglässt - offensichtlich möchten Sie die für Ihre Abfrage relevanten Merkmale beibehalten und die irrelevanten weglassen.
Bei einer Simulation des Pendlerverkehrs am frühen Morgen werden beispielsweise die Namen des Pendlers und möglicherweise sogar seine Identität (unter Verwendung einer Zählervariablen anstelle eines tatsächlichen Satzes von
Commuter
Objekten) ausgelassen, die Ankunftsrate kann jedoch nicht außer Acht gelassen werden.Emulation ist das Ausführen einer für Plattform A erstellten Software X auf Plattform B, ohne die Software selbst zu ändern. Dazu muss ein Modell von A erstellt werden, das auf B ausgeführt wird, und natürlich muss alles an A modelliert werden, das die Codeausführung umfasst. (Theoretisch könnten Sie auf die Unterstützung von Opcodes verzichten, von denen Sie wissen, dass diese bestimmte Software sie niemals verwenden wird. Dies ist jedoch selten. Es ist harte Arbeit, einen Emulator zu erstellen, und es lohnt sich viel mehr, eine gründliche Arbeit zu erledigen und etwas Wiederverwendbares als einen Kludge zu haben das funktioniert nur für s.)
quelle
Beides bedeutet, etwas anderes zu tun.
Der Unterschied besteht darin, dass "Simulation" auf einer bewussten Ebene (in Bezug auf den Benutzer) stattfindet und in der Regel abgeschlossen wird, um das Ergebnis einer Realität zu antizipieren, ohne die Realität selbst zu berühren.
"Emulation" geschieht auf einer unbewussten Ebene und hat den Zweck, eine zugrunde liegende Komponente durch eine andere zu ersetzen, die - in Bezug auf den Benutzer - wie die alte funktioniert.
Mit anderen Worten, die Simulation findet in einer "parallelen Welt" statt, während die Emulation in einer "ersetzten Welt" stattfindet.
quelle
Technisch machen beide dasselbe: in einer Umgebung, die sich so verhält, als wäre es die Realität.
Konzeptionell gibt es jedoch einen wichtigen Unterschied.
Eine Simulation soll sich bis zu einem gewissen Grad von der realen Welt lösen; Der Ausgang einer Simulation ist nicht direkt mit dem zu simulierenden Objekt verbunden. Beispielsweise fliegt ein Flugzeugsimulator nicht wirklich und der Pilot kommuniziert nicht wirklich mit einem echten Fluglotsen.
Eine Simulation hat normalerweise das Ziel , einen realen Prozess in einer sicheren Umgebung zu testen oder vorherzusagen. Da die Simulation von der realen Welt getrennt ist, kann nichts wirklich Schlimmes passieren (ein abgestürzter Flugzeugsimulator tötet niemals reale Menschen).
Im Gegensatz dazu hat eine Emulation das Ziel, den Platz des Realen einzunehmen: Wenn Sie beispielsweise einen einfachen Mikrocontroller mit einer komplexeren programmierbaren CPU emulieren, kann diese CPU anstelle des ursprünglichen Mikrocontrollers verwendet werden. Es ist physisch mit einer Maschine verbunden und steuert diese Maschine genau wie der Mikrocontroller.
Das Ziel einer Emulation ist Hardware- oder Software - Komponenten mit funktionalen Äquivalente zu ersetzen , wenn die ursprünglichen Module nicht verfügbar sind (oder zu teuer werden, wenn auch nur zu halten). Die Emulation kann auch dem Ziel dienen, die Hardware flexibler einzusetzen - derselbe programmierbare Mikrocontroller kann sich für mehrere einfachere Controller verdoppeln und den Emulationsmodus nach Bedarf umschalten.
quelle
"technically"
Sie sind ganz anders. Der von Ihnen beschriebene konzeptuelle Unterschied ist für diesen Unterschied von grundlegender Bedeutung.Denken Sie an den Unterschied zwischen Sympathie, "Ich kann mir vorstellen, wie sich das anfühlen muss", und Empathie, "Ich weiß, wie sich das anfühlt", obwohl die Etymologie nicht genau ist. Eine Simulation kann eine visuelle Darstellung eines Problems enthalten, dies ist jedoch möglicherweise nicht der Fall. Beispielsweise werden möglicherweise nur Spalten mit Zahlen ausgedruckt, die angeben, wie viele Personen für etwas oder den Gesamtumsatz oder die Durchschnittsgeschwindigkeit anstehen. Es hat einige Eigenschaften, die mit der Realität übereinstimmen, und einige, die dies nicht tun.
Die Emulation, die häufig im Zusammenhang mit einer Plattform verwendet wird, die vorgibt, eine andere Plattform zu sein, ist weitaus vollständiger. So können Windows Phone-Entwickler ihre Telefon-Apps auf einem Windows-Computer in einem Emulator ausführen oder debuggen, der aussieht wie ein Telefon und sich auch so verhält. Sie können Ihre alten Commodore 64-Spiele auch in einem Emulator ausführen.
Die Worte sind nicht präzise. Die meisten Flugsimulatoren ähneln meiner Meinung nach eher Emulatoren, aber der Name stammt noch aus einer Zeit, als sie noch nicht so einnehmend waren. Einige Leute reservieren das Wort Emulator für den plattformübergreifenden Fall und lehnen es für alles andere ab. Sie werden wahrscheinlich nie für falsch gehalten, wenn Sie beim Sprechen dasselbe tun, aber verstehen, dass einige Leute die Grenze zwischen den beiden Wörtern möglicherweise ein wenig anders setzen und berücksichtigen, wenn jemand sagt, "das ist eine Emulation" für eine wirklich genaue und komplette Simulation.
quelle
Beide Begriffe ähneln sich sehr im Konzept - imitieren.
Simulation oder Simulatoren verwenden Software, um ein repliziertes System zu erstellen, das in Bezug auf die zugrunde liegende Kernfunktionalität (insbesondere die grundlegende Methodik) dem Zielmodell sehr ähnlich ist.
Emulatoren hingegen konzentrieren sich im Vergleich zum Zielsystem eher auf äußere Ähnlichkeiten. Es besteht nur eine minimale Sorge, wie die Funktionen nachgeahmt werden. Emulatoren werden im Allgemeinen verwendet, wenn Sie in einer völlig anderen Umgebung (z. B. einem anderen Betriebssystem) als das ursprüngliche System arbeiten.
quelle