Requerimientos de virtualización de Popek y Goldberg

Los Requerimientos de virtualización de Popek y Goldberg son un conjunto de condiciones suficientes para que una arquitectura de computadores soporte eficientemente la virtualización. Fueron elaborados por Gerald J. Popek y Robert P. Goldberg en su artículo de 1974 Formal Requirements for Virtualizable Third Generation Architectures.[1] Aunque los requisitos se derivan de suposiciones simplificadas, todavía constituyen una manera eficaz de determinar si una arquitectura soporta eficientemente la virtualización, y proporciona líneas maestras para el diseño de arquitecturas virtualizables.

Definición de máquina virtual

Los sistemas de maquinas virtuales son capaces de virtualizar un conjunto completo de recursos de hardware, incluyendo al procesador (o procesadores), memoria, recursos de almacenamiento y dispositivos periféricos. Un monitor de máquina virtual (VMM, Virtual Machine Monitor, también llamado hipervisor) es la pieza fundamental de software que provee la abstracción de una máquina virtual. Hay tres características de interés cuando se analiza el entorno creado por un VMM:

   Equivalencia / Fidelidad
   Un programa corriendo bajo el VMM debe exhibir un comportamiento 
   esencialmente idéntico a aquel demostrado cuando se ejecuta 
   directamente en una máquina equivalente.
   Control de recursos / Seguridad
   El VMM debe estar en completo control de los recursos virtualizados.
   Eficiencia / Performance
   Una fracción estadísticamente dominante de las instrucciones de máquina 
   debe ser ejecutada sin la intervención del VMM.

En la terminología de Popek y Goldberg, un Monitor de Máquina Virtual debe presentar las tres propiedades. En la terminología usada en el libro de referencia de Smith y Nair (2005), se asume que los monitores cumplen las características de equivalencia y control de recursos, y aquellos que cumplen además la característica de performance son llamados monitores eficientes.

Popek y Goldberg describen las características que el Set de Instrucciones de la Arquitectura (ISA) de la máquina física debe poseer para poder correr VMMs que presenten las propiedades arriba mencionadas. Su análisis deriva tales características usando un modelo de "arquitecturas de tercera generación" (por ej. IBM 360, Honeywell 6000, DEC PDP-10) que es sin embargo suficientemente general para ser extendido a máquinas actuales. Este modelo incluye un procesador que opera en modo núcleo (o de sistema) o modo de usuario, y tiene acceso a memoria lineal y uniformemente direccionable. Se asume que un subconjunto del set de instrucciones sólo puede ser usado desde el modo de sistema y que la memoria es direccionada relativamente a un registro de reubicación. La E/S y las interrupciones no están modeladas.

Other Languages