Вы находитесь на странице: 1из 24

Sistemas Operativos Avanzados

Mquinas virtuales

UNIVERSIDAD CARLOS III DE MADRID


rea de Arquitectura y Tecnologa de Computadores

Mquina Virtual

Una mquina virtual (MV) es un


duplicado de una mquina real,
eficiente y aislado.
Gerald J. Popek and Robert P. Goldberg. Formal
requirements for virtualizable third generation
architectures. CACM, 17(7):413421, 1974.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 2

Caractersticas
Duplicado: La MV se debera comportar de
forma idntica a la mquina real, excepto por:
La existencia de menos recursos disponibles (incluso

diferentes entre ejecuciones).


Diferencias de temporizacin al tratar con
dispositivos.

Aislado: Se pueden ejecutar varias MV sin


interferencias.
Eficiente: La MV debera ejecutarse a una
velocidad cercana a la del HW real.
Requiere que la mayora de las instrucciones se

ejecuten directamente por el HW.


rea de Arquitectura y Tecnologa de Computadores
UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 3

Tipos de mquinas virtuales


Mquinas virtuales por proceso
Ejemplos: Java, .NET Framework
Mquina virtual instanciada para un proceso.
Cuando termina el proceso, termina la instancia de

mquina virtual.

Mquina virtual por sistema


Virtualizacin ISA (Instruction Set Architecture).
Ofrecen un entorno de ejecucin completo.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 4

Algo de historia
Idea bastante utilizada hasta los 70-80 en
mainframes.
Cae en desuso con el paso a computadores ms

pequeos.

Renace en esta dcada


Seguridad.
Vista uniforme de Hardware.
Encapsulacin.
Replicacin, checkpointing y reinicio, depuracin, ...

Esto se parece mucho a lo que hace el SO.


rea de Arquitectura y Tecnologa de Computadores
UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 5

Monitor de Mquina Virtual (MMV)


Programa que corre sobre el hardware real para
implementar la mquina virtual.
Control de recursos y planificacin de huespedes.
Implicaciones:
MMV necesita ejecutarse en modo supervisor.
Software husped en modo usuario.
Instrucciones privilegiadas de huespedes implican
traps.
MMV intrerpreta/emula instrucciones priviletiadas

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 6

MMV: Aplicacin
VM0

Virtual
Machines
(VMs)

App0

Guest OS0

VM1

VMn

App1

Guest OS1

...

Appn

Guest OSn

Virtual Machine Monitor (VMM)


Platform HW
Memory

Processor/CS

I/O Devices

MMV Capa de software de sistema


Permite que se ejecuten varias MV sobre plataforma HW nica
Permite ejecutar aplicaciones sin modificar

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 7

Tipos de MMV
Clsico: El monitor se ejecuta directamente
sobre el hardware y los huspedes sobre el
monitor.
Indirecto: El monitor se ejecuta sobre un
sistema operativo y los huspedes sobre el
monitor.
VMware, Virtual PC, ...
Ejecucin de sistemas operativos en instancias de la

mquina virtual.
Menos eficiente.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 8

Requisitos
Una arquitectura es virtualizable si todas las
instrucciones sensibles son privilegiadas.
Instruccin sensible
Cambia el estado privilegiado o lo expone.

Esto permite que:


Las instrucciones no sensibles del huesped se ejecuten

directamente.
Las instrucciones sensibles del huesped sean capturadas y
emuladas/simuladas por el MMV.

Ejecucin eficiente.
rea de Arquitectura y Tecnologa de Computadores
UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 9

Sobrecargas
VMM necesita mantener el estado privilegiado
de la mquina virtual.
Puede ser distinto del estado privilegiado de

hardware real.

VMM necesita simular instrucciones


privilegiadas
Sincronizacin de estados privilegiados de mquina

virtual y real.
Tablas de pginas ocultas para virtualizacin de
Hardware.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 10

Problemas
x86: Muchsimos 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


Tabla de interrupciones en memoria virtual.
Instruccin THASH expone la direccin de tabla de
pginas.

MIPS: Casi virtualizable


Registros de nucleo k0 y k1 accesibles en modo usuario.
Problemas de rendimiento al virtualizar direcciones
KSEG

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 11

Virtualizacin impura
Solucin para arquitecturas no virtualizables y
para reducir los problemas de rendimiento.
Enfoques:
Paravirtualizacin.
Traduccin binaria.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 12

Paravirtualizacin
Portar el cdigo de SO huesped al ISA
modificado.
ISA
Aumentado con llamadas explcitas al MMV.
Eliminacin de instrucciones no virtualizables.

Inconvenientes
Esfuerzo de desarrollo.
Necesario repetir para cada combinacin de huesped,
ISA, MMV.
Hace falta cdigo fuente.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 13

Traduccin binaria
Localizar instrucciones no virtualizables en el
binario ejecutable y cambiarlas por cdigo de
emularcin o llamada a MMV.
Puede detectar combinaciones de instrucciones

sensibles y sustituir por una nica emulacin.


No requiere cdigo fuente.
Permite que algunas emulaciones puedan hacerse en
espacio de usuario.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 14

Memoria
Tablas de pginas en la sombra:
Huesped accede a tabla de pgina en la sombra.
MMV detecta cambios en tabla de pginas en la sombra y

sincroniza tabla de pginas real.

Reclamacin de memoria
Carga de un pseudo-driver en el huesped.
Peticin de memoria al huesped.
MMV puede reusar esa memoria.

Comparticin de pginas
MMV detecta pginas con contenido indtico.
Pgina nica con COW (Copy On Write).
Mucho ahorro se se ejecutan varias instancias del mismo SO.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 15

Ventajas de la virtualizacin
Aislamiento
App1

App2
OS

Consolidacin

App1
OS

App2

App1

App2

App1

OS

OS1

OS2

OS1

HW1

HW2

VMM

HW

HW

App2
OS2

VMM
HW

Migracin
App

App

OS

OS

VMM

VMM

VMM

VMM

HW1

HW2

HW1

HW2

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 16

SERVIDORES CLIENTES

Usos de la virtualizacin

Legacy SW Support
Training/QA
Activity Partitioning
Manageability

Server Consolidation
Failover infrastructure
Flexible Datacenter
Manageability

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 17

Intel Virtualization Technology


Conjunto de mejoras hardware a las plataformas
Intel.
Diseado para simplificar el software de
virtualizacin.
Dos tecnologas:
VT-x IA-32 CPU.
VT-i Itanium

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 18

Desafos de MMV

VM0
App

VM1
App

...

App

Guest OS0

App

...

App

...

App

Guest OS1

VM Monitor
Platform Hardware

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

SO y Apps no saben
que el MMV existe o
que comparten CPU
con otras MV

MMV debe aislar las


MV entre si

MMV se ejecuta
protegida de las MV

MMV debe presentar


una interfaz a las MV

Pgina 19

Modos de operacin
VMX root:
Totalmente privilegiado.
Pensado para MMV.

VMX non-root:
No privilegiado.
Pensado para SW husped.

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 20

Entrada y Salida de Mquinas


virtuales
VM Entry

Transicin de MMV a Huesped.


Entra en modo non-root.
Carga el estado del huesped.
VMLAUNCH instruccin usada en entrada incial.

VMRESUME instruccin usada en llamadas siguientes.

VM Exit

VMEXIT instruccin usada para pasar a MMV


Entra en modo root
VM0
Salva el estado del huesped
App
App ... App
Carga el estado de MMV

VM1
App

...

Guest OS0
VM Exit

App

...

Guest OS1
VM Entry

VM Monitor

Physical Host Hardware


rea de Arquitectura y Tecnologa de Computadores
UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

App

Pgina 21

VT-x Operations
VM 1

VMX
Non-root
Operation
VM Exit

IA-32
VMX Root
Operation

VM 2

VM n

Ring 3

Ring 3

Ring 0

Ring 0

Ring 0

VMCS
1

VMCS
2

VMCS
n

...

Ring 3

Ring 3
VMRESUME
VMLAUNCH
VMXON

Ring 0

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 22

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

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 23

Beneficios de tecnologa VT
Reduce dependencia del SO
Elimina necesidad de traduccin binaria.
Facilita el soporte para SO antiguos

Mejora de robustez
Elimina la necesidad de tcnicas complejas
MMV ms pequeo y simple

Mejora de rendimiento
Menos transiciones a MMV

rea de Arquitectura y Tecnologa de Computadores


UNIVERSIDAD CARLOS III DE MADRID
Doctorado en Ingeniera Informtica Sistemas Operativos Avanzados
Curso 2005/2006

Pgina 24

Вам также может понравиться