Virtualización

Una máquina virtual suele emular un entorno de ejecución: es decir, emula el interfaz de este entorno. (Al contrario que la emulación, la simulación reflejará a todos los estados internos del entorno al mismo tiempo). Java, es un ejemplo de virtualización con Java Virtual Machine (JVM): se trata de una emulación basada en especificaciones estrictas. Los estados internos no son de interés para el usuario. El JVM trabaja como un procesador virtual dentro de un entorno virtual de ejecución. También es posible este tipo de emulación para un sistema completo de computación. La tarea no suele desempeñarse por el hardware: requiere un componente de software especial, una especie de sistema operativo rudimentario conocido como Virtual Machine Monitor (VMM) o hipervisor

MV, con monitor de MV (VMW) MV, con SO host completo (VPC_MS)

Sin embargo, el hardware, especialmente la CPU, tiene que cumplir ciertos requerimientos. VmWare y VirtualPC o VirtualServer * soportan este tipo de virtualización bajo la arquitectura x86 **. Sin embargo, los procesadores Intel y AMD no proporcionan todo lo necesario para soportar una virtualización eficiente. Para ello, cada instrucción de la máquina que permite el acceso a los recursos del sistema host necesitará disparar una interrupción software, a menos que esté ejecutándose en uno de los modos con privilegios del procesador.