Innholdsfortegnelse:
Definisjon - Hva betyr prosessoremulering?
Prosessoremulering er en virtualiseringsprosess og teknologi som gjør at programvare som er blitt kompilert for en spesifikk prosessor eller operativsystem (OS), kan kjøres på et annet system som har en annen prosessor og operativsystem. Dette gjøres ved å dynamisk oversette prosessorinstruksjonene og alle tilknyttede operativsystemanrop til et program til instruksjonene til prosessoren og operativsystemet der det kjører.
Techopedia forklarer prosessoremulering
Prosessoremulering gjør det mulig å utføre programmer skrevet for en prosessor å utføre på en annen prosessor med en annen arkitektur og instruksjonssett. Et godt grunnleggende eksempel er en spillkonsollemulator, som lar brukerne spille konsollspill som Nintendo Entertainment System og PlayStation-spill på PC-en. Prosessoren som brukes av en spillkonsoll er veldig forskjellig fra en PC, så for å kunne spille konsollspill på en PC, må prosessoren til spillkonsollen emuleres.
Den grunnleggende ideen er at hver enkelt handling og oppførsel til programmet som må kjøres, må konverteres til tilsvarende instruksjonssett og / eller operativsystemanrop til vertssystemet. Hovedmålet er å utføre kode som endrer prosessortilstander og samhandler med maskinvaren, og dette må gjøres for hver instruksjon i det kjørende programmet.
Måter å håndtere prosessormulering på:
- Dynamisk rekompilering - En liste over operasjoner opprettes ved å kjøre koden, og når en greninstruksjon er nådd, blir listen samlet til instruksjonskoden til vertsplattformen. Denne bufres deretter for fremtidig bruk. Alternativt kan hver kode ganske enkelt settes sammen, men denne tilnærmingen er vanskelig å optimalisere.
- Statisk rekompilering - Dette er også kjent som statisk binær oversettelse der kode først konverteres til koden til målmaskinen eller arkitekturen uten å kjøre koden, slik det gjøres i dynamisk rekompilering. Problemer kan imidlertid oppstå, siden ikke alle målkodene kan bestemmes av oversetteren under kompileringstid, siden noen av dem bare kan finnes i indirekte grener, som igjen bare kan bestemmes ved kjøretid.
- Tolkning - Hver kode leses fra minnet ved å bruke instruksjonspekeren og utføres deretter i henhold til CPU-instruksjonssettet til vertsdatamaskinen. Med andre ord blir instruksjonene oversatt en til en og deretter utført innfødt. Den største ulempen her er ytelse.
