Arquitectura de Hardware

Máquinas Virtuales
Ingeniería en Sistemas de Información
Santa Lucía Cotzumalguapa
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Máquina Virtual
Una máquina virtual (MV) es un
duplicado de una máquina real,
eficiente y aislado.
Gerald J. Popek and Robert P. Goldberg. Formal
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 2 –
Gerald J. Popek and Robert P. Goldberg. Formal
requirements for virtualizable third generation
architectures. CACM, 17(7):413–421, 1974.
Características
Duplicado: La MV se debería comportar de forma
idéntica a la máquina real, excepto por:
La existencia de menos recursos disponibles (incluso
diferentes entre ejecuciones).
Diferencias de temporización al tratar con dispositivos.
Aislado: Se pueden ejecutar varias MV sin
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 3 –
Aislado: Se pueden ejecutar varias MV sin
interferencias.
Eficiente: La MV debería ejecutarse a una velocidad
cercana a la del HW real.
Requiere que la mayoría de las instrucciones se ejecuten
directamente por el HW.
Tipos de máquinas virtuales
Máquinas virtuales por proceso
Ejemplos: Java, .NET Framework
Máquina virtual instanciada para un proceso.
Cuando termina el proceso, termina la instancia de máquina
virtual.
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 4 –
Máquina virtual por sistema
Virtualización ISA (Instruction Set Architecture).
Ofrecen un entorno de ejecución completo.
Monitor de Máquina Virtual (MMV)
La parte fundamental de una máquina virtual se
conoce como Monitor de Máquina Virtual (MMV).
Corre a nivel de hardware y se encarga de manejar
los recursos del sistema para exportarlos a la MV.
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 5 –
En otras palabras, el MMV se encarga de preparar el
contexto de ejecución de la MV, y de manejar los
errores y excepciones que genere la MV.
Monitor de Máquina Virtual (MMV)
Programa que corre sobre el hardware real para
implementar la máquina virtual.
Control de recursos y planificación de huéspedes.
Implicaciones:
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 6 –
Implicaciones:
MMV necesita ejecutarse en modo supervisor.
Software huésped en modo usuario.
Instrucciones privilegiadas de huéspedes implican traps.
MMV interpreta/emula instrucciones privilegiadas
Conceptos de SO: Ejecución Multinivel
Es el hardware de
la máquina
En este nivel:
• Puertas lógicas
• Circuitos integrados
• Circuitos
Sistema Operativo
Lenguaje ensamblador
Lenguajes de Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 7 –
• Circuitos
combinacionales
• Circuitos aritméticos
• Relojes
• Memorias
• Microprocesadores
• Buses
Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
Conceptos de SO: Ejecución Multinivel
Microprograma. Genera
valores lógicos 0 y 1 de
las líneas de control del
hardware
La función del
microprograma es
Sistema Operativo
Lenguaje ensamblador
Lenguajes de Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 8 –
microprograma es
interpretar las
instrucciones del nivel 2
En algunas máquinas
no existe el nivel de
microprogramación Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
Conceptos de SO: Ejecución Multinivel
Las instrucciones del
nivel de máquina las
interpreta el
microprograma
En las máquinas en
las que no existe el
Sistema Operativo
Lenguaje ensamblador
Lenguajes de Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 9 –
las que no existe el
nivel de
microprogramación,
las instrucciones del
nivel de máquina son
realizadas
directamente por los
circuitos electrónicos
Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
Conceptos de SO: Ejecución Multinivel
Algunas
instrucciones del
nivel 2
Posibilidad de
ejecutar 2 o más
programas
Sistema Operativo
Lenguaje ensamblador
Lenguajes de Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 10 –
programas
Las nuevas
instrucciones las
interpreta el
sistema operativo
Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
Conceptos de SO: Ejecución Multinivel
Utilizados por los
programadores de
aplicaciones.
El ensamblador es
el programa que
lleva a cabo la
Sistema Operativo
Lenguaje ensamblador
Lenguajes de Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Cuando se ejecuta
un programa objeto
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 11 –
lleva a cabo la
traducción de un
programa del nivel
4.
Forma simbólica de
lenguaje de
maquina
Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
un programa objeto
generado por el
lenguaje
ensamblador,
interactúan estos
tres niveles
Conceptos de SO: Ejecución Multinivel
Los lenguajes de
nivel 5 son
denominados de
alto nivel dado que
son muy cercanos a
las personas.
Sistema Operativo
Lenguaje ensamblador
Lenguajes de Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 12 –
las personas.
Ejemplos de estos
lenguajes son
Visual Basic,
Fortran, COBOL,
Delphi, entre otros.
Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
Monitor de Máquina Virtual (MMV)
Programa que corre sobre el hardware real para
implementar la máquina virtual.
Control de recursos y planificación de huéspedes.
Implicaciones:
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 13 –
Implicaciones:
MMV necesita ejecutarse en modo supervisor.
Software huésped en modo usuario.
Instrucciones privilegiadas de huéspedes implican traps.
MMV interpreta/emula instrucciones privilegiadas
Conceptos de SO: Ejecución Multinivel
Sistema Operativo
Lenguaje ensamblador
Lenguajes Alto Nivel
Nivel 3
Nivel 4
Nivel 5
Modo
Usuario
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 14 –
Lógica digital
Microprogramación
Máquina convencional
Nivel 0
Nivel 1
Nivel 2
Modo
Supervisor
Monitor de Máquina Virtual (MMV)
Programa que corre sobre el hardware real para
implementar la máquina virtual.
Control de recursos y planificación de huéspedes.
Implicaciones:
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 15 –
Implicaciones:
MMV necesita ejecutarse en modo supervisor.
Software huésped en modo usuario.
Instrucciones privilegiadas de huéspedes implican traps.
MMV interpreta/emula instrucciones privilegiadas
Instrucciones Privilegiadas
Cuando se ejecuta una MV, algunas instrucciones no
se pueden ejecutar directamente por el procesador
debido a que pueden interferir con el estado del MMV
o del SO anfitrión, estas instrucciones se denominan
instrucciones sensitivas. La clave para implementar
un MMV es prevenir la ejecución directa de las
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 16 –
un MMV es prevenir la ejecución directa de las
instrucciones sensitivas.
Una MV se ejecuta en modo usuario y el MMV se
ejecuta en modo privilegiado. Cuando las
instrucciones privilegiadas se ejecutan en una MV, se
genera una excepción que es manejada por MMV
quien simula el comportamiento de la instrucción.
MMV: Aplicación
...
Virtual Machine Monitor (VMM)
VM
n
VM
0
VM
1
Virtual
Machines
(VMs)
App
n
App
0
Guest OS
0
App
1
Guest OS
1
Guest OS
n
MMV
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 17 –
MMV
Permite que se ejecuten varias MV sobre plataforma HW única
Permite ejecutar aplicaciones sin modificar
Platform HW
I/O Devices Processor/CS Memory
Tipos de MMV
Clásico: El monitor se ejecuta directamente sobre el
hardware y los huéspedes sobre el monitor.
Indirecto: El monitor se ejecuta sobre un sistema
operativo y los huéspedes sobre el monitor.
VMware, Virtual PC, ...
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 18 –
VMware, Virtual PC, ...
Ejecución de sistemas operativos en instancias de la
máquina virtual.
Menos eficiente.
Requisitos
Una arquitectura es virtualizable si todas las instrucciones
sensibles son privilegiadas.
Instrucción sensible
Cambia el estado privilegiado o lo expone.
Esto permite que:
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 19 –
Esto permite que:
Las instrucciones no sensibles del huésped se ejecuten
directamente.
Las instrucciones sensibles del huésped sean capturadas y
emuladas/simuladas por el MMV.
Ejecución eficiente.
Sobrecargas
VMM necesita mantener el estado privilegiado de la
máquina virtual.
Puede ser distinto del estado privilegiado de hardware real.
VMM necesita simular instrucciones privilegiadas
Sincronización de estados privilegiados de máquina virtual y
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 20 –
Sincronización de estados privilegiados de máquina virtual y
real.
Tablas de páginas ocultas para virtualización de Hardware.
Problemas
x86: Muchísimos problemas
PUSH y PSW sensibles y no privilegiadas.
Tablas de descriptores de segmento y de interrupciones en
memoria virtual.
Descriptores de segmento exponen el nivel privilegiado.
Itanium: Casi virtualizable
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 21 –
Itanium: Casi virtualizable
Tabla de interrupciones en memoria virtual.
Instrucción THASH expone la dirección de tabla de páginas.
MIPS: Casi virtualizable
Registros de nucleo k0 y k1 accesibles en modo usuario.
Problemas de rendimiento al virtualizar direcciones KSEG
Virtualización impura
Solución para arquitecturas no virtualizables y para
reducir los problemas de rendimiento.
Enfoques:
Paravirtualización.
Traducción binaria.
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 22 –
Traducción binaria.
Paravirtualización
Portar el código de SO huesped al ISA modificado.
ISA
Aumentado con llamadas explícitas al MMV.
Eliminación de instrucciones no virtualizables.
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 23 –
Inconvenientes
Esfuerzo de desarrollo.
Necesario repetir para cada combinación de huesped, ISA,
MMV.
Hace falta código fuente.
Traducción binaria
Localizar instrucciones no virtualizables en el binario
ejecutable y cambiarlas por código de emularción o
llamada a MMV.
Puede detectar combinaciones de instrucciones sensibles y
sustituir por una única emulación.
No requiere código fuente.
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 24 –
Permite que algunas emulaciones puedan hacerse en
espacio de usuario.
Aislamiento
Ventajas de la virtualización
Consolidación
HW
App
2
App
1
OS
HW
1
HW
2
App
2
App
1
OS
1
OS
2
VMM
HW
App
2
App
1
OS
1
OS
2
VMM
HW
App
1
App
2
OS OS
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 25 –
Migración
VMM
HW
1
App
HW
2
VMM
OS
VMM
HW
1
App
HW
2
VMM
OS
Usos de la virtualización
Legacy SW Support
Training/QA
Activity Partitioning
Manageability

C
L
I
E
N
T
E
S
S
E
R
V
I
D
O
R
E
S
INVESTIGACIÓN
Fecha de Entrega:
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 26 –
Server Consolidation
Failover infrastructure
Flexible Datacenter
Manageability

S
E
R
V
I
D
O
R
E
S
Fecha de Entrega:
22/Septiembre/2011
Intel Virtualization Technology
Conjunto de mejoras hardware a las plataformas Intel.
Diseñado para simplificar el software de virtualización.
Dos tecnologías:
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 27 –
Dos tecnologías:
VT-x IA-32 CPU.
VT-i Itanium
VM
1
VM
0
Guest OS
0
App App App
...
...
Guest OS
1
App App App
...
SO y Apps no saben
que el MMV existe o que
comparten CPU con
otras MV
MMV se ejecuta
Desafíos de MMV
MMV debe aislar las MV
entre si
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 28 –
Platform Hardware
VM Monitor
...
MMV se ejecuta
protegida de las MV
MMV debe presentar
una interfaz a las MV
Modos de operación
VMX root:
Totalmente privilegiado.
Pensado para MMV.
VMX non-root:
No privilegiado.
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 29 –
No privilegiado.
Pensado para SW huésped.
Entrada y Salida de Máquinas virtuales
VM Entry
Transición de MMV a Huesped.
Entra en modo non-root.
Carga el estado del huesped.
VMLAUNCH instrucción usada en entrada incial.
VMRESUME instrucción usada en llamadas siguientes.
VM Exit
VMEXIT instrucción usada para pasar a MMV
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 30 –
VMEXIT instrucción usada para pasar a MMV
Entra en modo root
Salva el estado del huesped
Carga el estado de MMV
Physical Host Hardware
VM
1
VM Monitor
VM
0
Guest OS
0
App App App ...
...
Guest OS
1
App App App ...
VM Exit VM Entry
VT-x Operations
VMX
Non-root
Operation
. . .
Ring 0
Ring 3
VM 1
Ring 0
Ring 3
VM 2
Ring 0
Ring 3
VM n
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 31 –
IA-32
Operation
Ring 0
Ring 3
VMX Root
Operation
VMXON VMLAUNCH VMRESUME
VM Exit
VMCS
2
VMCS
n
VMCS
1
Virtual Machine Control Structure (VMCS)
VMCSs son estructuras de control en memoria
Solo un VMCS activo por procesador virtual
VMCS con formato no definido y variable
VMPTRLD: Establece el puntero al VMCS
VMREAD/VMWRITE: Instrucciones de acceso a VMCS
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 32 –
VMREAD/VMWRITE: Instrucciones de acceso a VMCS
Beneficios de tecnología VT
Reduce dependencia del SO
Elimina necesidad de traducción binaria.
Facilita el soporte para SO antiguos
Mejora de robustez
Elimina la necesidad de técnicas complejas
Arquitectura de Hardware
MSc. Jorge Mario Aceituno Díaz
Página – 33 –
Elimina la necesidad de técnicas complejas
MMV más pequeño y simple
Mejora de rendimiento
Menos transiciones a MMV