Inhaltsverzeichnis:
Definition - Was bedeutet Prozessoremulation?
Die Prozessoremulation ist ein Virtualisierungsprozess und eine Virtualisierungstechnologie, mit der Software, die für einen bestimmten Prozessor oder ein bestimmtes Betriebssystem kompiliert wurde, auf einem anderen System mit einem anderen Prozessor und einem anderen Betriebssystem ausgeführt werden kann. Dazu werden die Prozessoranweisungen und alle zugehörigen Betriebssystemaufrufe eines Programms dynamisch in die Anweisungen des Prozessors und des Betriebssystems übersetzt, auf dem es ausgeführt wird.
Techopedia erklärt die Prozessoremulation
Die Prozessoremulation ermöglicht die Ausführung von Programmen, die für einen Prozessor geschrieben wurden, auf einem anderen Prozessor mit einer anderen Architektur und einem anderen Befehlssatz. Ein gutes einfaches Beispiel ist ein Spielekonsolen-Emulator, mit dem Benutzer Konsolenspiele wie Nintendo Entertainment System und PlayStation-Spiele auf ihrem PC spielen können. Der von einer Spielekonsole verwendete Prozessor unterscheidet sich stark von dem eines PCs. Um also Konsolenspiele auf einem PC spielen zu können, muss der Prozessor der Spielekonsole emuliert werden.
Die Grundidee ist, dass jede einzelne Aktion und jedes Verhalten des Programms, das ausgeführt werden muss, in den entsprechenden Befehlssatz und / oder die entsprechenden Betriebssystemaufrufe des Hostsystems konvertiert werden muss. Das Hauptziel besteht darin, Code auszuführen, der den Prozessorstatus ändert und mit der Hardware interagiert. Dies muss für jede Anweisung des ausgeführten Programms erfolgen.
Möglichkeiten zur Behandlung der Prozessoremulation:
- Dynamische Neukompilierung - Durch Ausführen des Codes wird eine Liste von Vorgängen erstellt. Wenn eine Verzweigungsanweisung erreicht wird, wird die Liste mit dem Anweisungscode der Hostplattform kompiliert. Dies wird dann für die zukünftige Verwendung zwischengespeichert. Alternativ könnte jeder Code einfach im laufenden Betrieb kompiliert werden, aber dieser Ansatz ist schwer zu optimieren.
- Statische Neukompilierung - Dies wird auch als statische Binärübersetzung bezeichnet, bei der Code zunächst in den Code des Zielcomputers oder der Zielarchitektur konvertiert wird, ohne den Code auszuführen, wie dies bei der dynamischen Neukompilierung der Fall ist. Es können jedoch Probleme auftreten, da nicht alle Zielcodes während der Kompilierungszeit vom Übersetzer bestimmt werden können, da einige von ihnen möglicherweise nur in indirekten Verzweigungen gefunden werden, die wiederum möglicherweise nur zur Laufzeit bestimmt werden.
- Interpretation - Jeder Code wird mit dem Befehlszeiger aus dem Speicher gelesen und dann gemäß dem CPU-Befehlssatz des Host-Computers ausgeführt. Mit anderen Worten, die Anweisungen werden eins zu eins übersetzt und dann nativ ausgeführt. Der größte Nachteil hierbei ist die Leistung.




