SlideShare una empresa de Scribd logo
1 de 23
Sistemas Operativos


Máquinas virtuales
Máquina Virtual

Una máquina virtual (MV) es un duplicado
 de una máquina real, eficiente y aislado.




  Página – 2 –
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
  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.

   Página – 3 –
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.

• Máquina virtual por sistema
  – Virtualización ISA (Instruction Set Architecture).
  – Ofrecen un entorno de ejecución completo.

  Página – 4 –
Algo de historia
• Idea bastante utilizada hasta los 70-80 en
  mainframes.
  – Cae en desuso con el paso a computadores más
    pequeños.
• Renace en esta década
  – Seguridad.
  – Vista uniforme de Hardware.
  – Encapsulación.
      • Replicación, checkpointing y reinicio, depuración, ...


• Esto se parece mucho a lo que hace el SO.
  Página – 5 –
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 huespedes.

• Implicaciones:
   –   MMV necesita ejecutarse en modo supervisor.
   –   Software huésped en modo usuario.
   –   Instrucciones privilegiadas de huespedes implican traps.
   –   MMV intrerpreta/emula instrucciones priviletiadas

   Página – 6 –
MMV: Aplicación
                  VM0    App0     VM1     App1            VMn    Appn

                                                    ...
  Virtual          Guest OS0       Guest OS1               Guest OSn
 Machines
  (VMs)
                           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



   Página – 7 –
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, ...
  – Ejecución de sistemas operativos en instancias de la
    máquina virtual.
  – Menos eficiente.

  Página – 8 –
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:
    – Las instrucciones no sensibles del huesped se ejecuten directamente.
    – Las instrucciones sensibles del huesped sean capturadas y
      emuladas/simuladas por el MMV.


• Ejecución eficiente.


    Página – 9 –
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 real.
  – Tablas de páginas ocultas para virtualización de
    Hardware.

  Página – 10 –
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
   – 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

   Página – 11 –
Virtualización impura
• Solución para arquitecturas no virtualizables y
  para reducir los problemas de rendimiento.

• Enfoques:
  – Paravirtualización.
  – Traducción binaria.




  Página – 12 –
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.

• Inconvenientes
   – Esfuerzo de desarrollo.
   – Necesario repetir para cada combinación de huesped, ISA,
     MMV.
   – Hace falta código fuente.


   Página – 13 –
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.
  – Permite que algunas emulaciones puedan hacerse
    en espacio de usuario.


  Página – 14 –
Memoria

• Reclamación de memoria
   – Carga de un pseudo-driver en el huesped.
   – Petición de memoria al huesped.
   – MMV puede reusar esa memoria.

• Compartición de páginas
   – MMV detecta páginas con contenido indético.
   – Página única con COW (Copy On Write).
   – Mucho ahorro se se ejecutan varias instancias del mismo SO.




   Página – 15 –
Ventajas de la virtualización
                   Aislamiento                                  Consolidación

App1        App2             App1         App2    App1         App2        App1         App2


       OS                    OS            OS      OS1          OS2         OS1          OS2

       HW                           VMM           HW1          HW2                VMM
                                     HW                                            HW

                                            Migración

                           App                                    App


                            OS                                        OS

                           VMM       VMM                 VMM      VMM
                           HW1       HW2                 HW1      HW2



       Página – 16 –
Usos de la virtualización
                    •   Legacy SW Support
       CLIENTES     •   Training/QA
                    •   Activity Partitioning
                    •   Manageability
                    •   …

                    •   Server Consolidation
       SERVIDORES




                    •   Failover infrastructure
                    •   Flexible Datacenter
                    •   Manageability
                    •   …




Página – 17 –
Intel Virtualization Technology
• Conjunto de mejoras hardware a las
  plataformas Intel.

• Diseñado para simplificar el software de
  virtualización.

• Dos tecnologías:
   – VT-x  IA-32 CPU.
   – VT-i  Itanium

 Página – 18 –
Desafíos de MMV             SO y Apps no saben que el
                                                                   MMV existe o que
                                                               comparten CPU con otras
                                                                          MV


VM0                                VM1                         MMV debe aislar las MV
 App    App   ...   App                App   App   ...   App         entre si



                             ...
   Guest OS0                             Guest OS1
                                                               MMV se ejecuta protegida
                                                                     de las MV




                          VM Monitor                           MMV debe presentar una
                                                                 interfaz a las MV
Platform Hardware




       Página – 19 –
Modos de operación
• VMX root:
  – Totalmente privilegiado.
  – Pensado para MMV.


• VMX non-root:
  – No privilegiado.
  – Pensado para SW huésped.



Página – 20 –
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
    –   Entra en modo root
    –   Salva el estado del huesped            VM0                            VM1
    –   Carga el estado de MMV                  App   App   ...   App          App   App   ...   App

                                                                        ...
                                                  Guest OS0                      Guest OS1


                                                   VM Exit         VM Entry          VM Monitor

                                               Physical Host Hardware



  Página – 21 –
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


Página – 23 –
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
  – MMV más pequeño y simple

• Mejora de rendimiento
  – Menos transiciones a MMV



Página – 24 –

Más contenido relacionado

La actualidad más candente

Ejercicios de entidad relacion extendida
Ejercicios de entidad relacion extendidaEjercicios de entidad relacion extendida
Ejercicios de entidad relacion extendidaDavid Rocha Bardales
 
Organizacion de un sistema operativo
Organizacion de un sistema operativoOrganizacion de un sistema operativo
Organizacion de un sistema operativofulgn
 
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...José Antonio Sandoval Acosta
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosMarvin Romero
 
Unidad 8: Puesta en marcha del equipo
Unidad 8: Puesta en marcha del equipoUnidad 8: Puesta en marcha del equipo
Unidad 8: Puesta en marcha del equipocarmenrico14
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windowsomfib123
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Instalacion de sistemas operativos
Instalacion de sistemas operativosInstalacion de sistemas operativos
Instalacion de sistemas operativosAndres Ldño
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.oriosofelia
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosFranklin Parrales Bravo
 
Técnicas de administración del planificador
Técnicas de administración del planificadorTécnicas de administración del planificador
Técnicas de administración del planificadorCristian Izquierdo
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosLuis Dario Gomez
 

La actualidad más candente (20)

Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Ejercicios de entidad relacion extendida
Ejercicios de entidad relacion extendidaEjercicios de entidad relacion extendida
Ejercicios de entidad relacion extendida
 
Organizacion de un sistema operativo
Organizacion de un sistema operativoOrganizacion de un sistema operativo
Organizacion de un sistema operativo
 
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
Unidad 8: Puesta en marcha del equipo
Unidad 8: Puesta en marcha del equipoUnidad 8: Puesta en marcha del equipo
Unidad 8: Puesta en marcha del equipo
 
Entrada salida
Entrada salidaEntrada salida
Entrada salida
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Instalacion de sistemas operativos
Instalacion de sistemas operativosInstalacion de sistemas operativos
Instalacion de sistemas operativos
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Gestion de memoria en unix y solaris
Gestion de memoria en unix y solarisGestion de memoria en unix y solaris
Gestion de memoria en unix y solaris
 
Cuadro comparativo s.o
Cuadro  comparativo s.oCuadro  comparativo s.o
Cuadro comparativo s.o
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas Operativos
 
Técnicas de administración del planificador
Técnicas de administración del planificadorTécnicas de administración del planificador
Técnicas de administración del planificador
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Google y sus servidores
Google y sus servidoresGoogle y sus servidores
Google y sus servidores
 

Similar a Maquinas virtuales

Overview Virtualización - Servers
Overview Virtualización - ServersOverview Virtualización - Servers
Overview Virtualización - ServersMarcela Berri
 
VirtualizacióN
VirtualizacióNVirtualizacióN
VirtualizacióNmonalisa
 
Hyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en LinuxHyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en LinuxDiego Gancedo
 
Virtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nubeVirtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nubeRodolfo Pilas
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Irontec
 
Virtualización - UPSAM
Virtualización - UPSAMVirtualización - UPSAM
Virtualización - UPSAMGoico_91
 
Introducción al la virtualization
Introducción al la virtualizationIntroducción al la virtualization
Introducción al la virtualizationjeysonh
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizacionmafer2012
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtualesrehoscript
 
Code Camp Santiago hyper-v
Code Camp Santiago hyper-vCode Camp Santiago hyper-v
Code Camp Santiago hyper-vPablo Campos
 
Datacenter dinamico parte1
Datacenter dinamico parte1Datacenter dinamico parte1
Datacenter dinamico parte1Pablo Campos
 

Similar a Maquinas virtuales (20)

Linux hyper-v
Linux hyper-vLinux hyper-v
Linux hyper-v
 
Overview Virtualización - Servers
Overview Virtualización - ServersOverview Virtualización - Servers
Overview Virtualización - Servers
 
VirtualizacióN
VirtualizacióNVirtualizacióN
VirtualizacióN
 
Hyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en LinuxHyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en Linux
 
Virtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nubeVirtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nube
 
Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6Virtualizacion KVM + libvirt + HREL6
Virtualizacion KVM + libvirt + HREL6
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
MAQUINA VIRTUAL
MAQUINA VIRTUALMAQUINA VIRTUAL
MAQUINA VIRTUAL
 
Presentacin3 090720202939-phpapp01
Presentacin3 090720202939-phpapp01Presentacin3 090720202939-phpapp01
Presentacin3 090720202939-phpapp01
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
Virtualización - UPSAM
Virtualización - UPSAMVirtualización - UPSAM
Virtualización - UPSAM
 
Virtualización - UPSAM
Virtualización - UPSAMVirtualización - UPSAM
Virtualización - UPSAM
 
Hyper v r2 -javier acero
Hyper v r2  -javier aceroHyper v r2  -javier acero
Hyper v r2 -javier acero
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Introducción al la virtualization
Introducción al la virtualizationIntroducción al la virtualization
Introducción al la virtualization
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizacion
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtuales
 
Code Camp Santiago hyper-v
Code Camp Santiago hyper-vCode Camp Santiago hyper-v
Code Camp Santiago hyper-v
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtuales
 
Datacenter dinamico parte1
Datacenter dinamico parte1Datacenter dinamico parte1
Datacenter dinamico parte1
 

Más de ayreonmx

Presentation1
Presentation1Presentation1
Presentation1ayreonmx
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosayreonmx
 
Clase 6 sistemas raid
Clase 6   sistemas raidClase 6   sistemas raid
Clase 6 sistemas raidayreonmx
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Tratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicacionesTratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicacionesayreonmx
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3ayreonmx
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos javaayreonmx
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2ayreonmx
 
Intro to the arduino
Intro to the arduinoIntro to the arduino
Intro to the arduinoayreonmx
 
Introducción a los microprocesadores vi
Introducción a los microprocesadores viIntroducción a los microprocesadores vi
Introducción a los microprocesadores viayreonmx
 
Programacion de microcontroladores
Programacion de microcontroladoresProgramacion de microcontroladores
Programacion de microcontroladoresayreonmx
 
Presentacion3
Presentacion3Presentacion3
Presentacion3ayreonmx
 
Presentacion2
Presentacion2Presentacion2
Presentacion2ayreonmx
 
Manual del proteus
Manual del proteusManual del proteus
Manual del proteusayreonmx
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3ayreonmx
 
Java – ejercicio 2
Java – ejercicio 2Java – ejercicio 2
Java – ejercicio 2ayreonmx
 
Presentacion 4
Presentacion 4Presentacion 4
Presentacion 4ayreonmx
 
Java ejercicio 1
Java   ejercicio 1Java   ejercicio 1
Java ejercicio 1ayreonmx
 

Más de ayreonmx (20)

Raid
RaidRaid
Raid
 
Presentation1
Presentation1Presentation1
Presentation1
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Clase 6 sistemas raid
Clase 6   sistemas raidClase 6   sistemas raid
Clase 6 sistemas raid
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Tratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicacionesTratamiento de seguridad en aplicaciones
Tratamiento de seguridad en aplicaciones
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos java
 
Introduccion poo2
Introduccion poo2Introduccion poo2
Introduccion poo2
 
Intro to the arduino
Intro to the arduinoIntro to the arduino
Intro to the arduino
 
Introducción a los microprocesadores vi
Introducción a los microprocesadores viIntroducción a los microprocesadores vi
Introducción a los microprocesadores vi
 
Programacion de microcontroladores
Programacion de microcontroladoresProgramacion de microcontroladores
Programacion de microcontroladores
 
Presentacion3
Presentacion3Presentacion3
Presentacion3
 
Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Cli unix2
Cli unix2Cli unix2
Cli unix2
 
Manual del proteus
Manual del proteusManual del proteus
Manual del proteus
 
Java – ejercicio 3
Java – ejercicio 3Java – ejercicio 3
Java – ejercicio 3
 
Java – ejercicio 2
Java – ejercicio 2Java – ejercicio 2
Java – ejercicio 2
 
Presentacion 4
Presentacion 4Presentacion 4
Presentacion 4
 
Java ejercicio 1
Java   ejercicio 1Java   ejercicio 1
Java ejercicio 1
 

Maquinas virtuales

  • 2. Máquina Virtual Una máquina virtual (MV) es un duplicado de una máquina real, eficiente y aislado. Página – 2 –
  • 3. 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 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. Página – 3 –
  • 4. 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. • Máquina virtual por sistema – Virtualización ISA (Instruction Set Architecture). – Ofrecen un entorno de ejecución completo. Página – 4 –
  • 5. Algo de historia • Idea bastante utilizada hasta los 70-80 en mainframes. – Cae en desuso con el paso a computadores más pequeños. • Renace en esta década – Seguridad. – Vista uniforme de Hardware. – Encapsulación. • Replicación, checkpointing y reinicio, depuración, ... • Esto se parece mucho a lo que hace el SO. Página – 5 –
  • 6. 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 huespedes. • Implicaciones: – MMV necesita ejecutarse en modo supervisor. – Software huésped en modo usuario. – Instrucciones privilegiadas de huespedes implican traps. – MMV intrerpreta/emula instrucciones priviletiadas Página – 6 –
  • 7. MMV: Aplicación VM0 App0 VM1 App1 VMn Appn ... Virtual Guest OS0 Guest OS1 Guest OSn Machines (VMs) 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 Página – 7 –
  • 8. 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, ... – Ejecución de sistemas operativos en instancias de la máquina virtual. – Menos eficiente. Página – 8 –
  • 9. 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: – Las instrucciones no sensibles del huesped se ejecuten directamente. – Las instrucciones sensibles del huesped sean capturadas y emuladas/simuladas por el MMV. • Ejecución eficiente. Página – 9 –
  • 10. 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 real. – Tablas de páginas ocultas para virtualización de Hardware. Página – 10 –
  • 11. 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 – 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 Página – 11 –
  • 12. Virtualización impura • Solución para arquitecturas no virtualizables y para reducir los problemas de rendimiento. • Enfoques: – Paravirtualización. – Traducción binaria. Página – 12 –
  • 13. 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. • Inconvenientes – Esfuerzo de desarrollo. – Necesario repetir para cada combinación de huesped, ISA, MMV. – Hace falta código fuente. Página – 13 –
  • 14. 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. – Permite que algunas emulaciones puedan hacerse en espacio de usuario. Página – 14 –
  • 15. Memoria • Reclamación de memoria – Carga de un pseudo-driver en el huesped. – Petición de memoria al huesped. – MMV puede reusar esa memoria. • Compartición de páginas – MMV detecta páginas con contenido indético. – Página única con COW (Copy On Write). – Mucho ahorro se se ejecutan varias instancias del mismo SO. Página – 15 –
  • 16. Ventajas de la virtualización Aislamiento Consolidación App1 App2 App1 App2 App1 App2 App1 App2 OS OS OS OS1 OS2 OS1 OS2 HW VMM HW1 HW2 VMM HW HW Migración App App OS OS VMM VMM VMM VMM HW1 HW2 HW1 HW2 Página – 16 –
  • 17. Usos de la virtualización • Legacy SW Support CLIENTES • Training/QA • Activity Partitioning • Manageability • … • Server Consolidation SERVIDORES • Failover infrastructure • Flexible Datacenter • Manageability • … Página – 17 –
  • 18. Intel Virtualization Technology • Conjunto de mejoras hardware a las plataformas Intel. • Diseñado para simplificar el software de virtualización. • Dos tecnologías: – VT-x  IA-32 CPU. – VT-i  Itanium Página – 18 –
  • 19. Desafíos de MMV SO y Apps no saben que el MMV existe o que comparten CPU con otras MV VM0 VM1 MMV debe aislar las MV App App ... App App App ... App entre si ... Guest OS0 Guest OS1 MMV se ejecuta protegida de las MV VM Monitor MMV debe presentar una interfaz a las MV Platform Hardware Página – 19 –
  • 20. Modos de operación • VMX root: – Totalmente privilegiado. – Pensado para MMV. • VMX non-root: – No privilegiado. – Pensado para SW huésped. Página – 20 –
  • 21. 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 – Entra en modo root – Salva el estado del huesped VM0 VM1 – Carga el estado de MMV App App ... App App App ... App ... Guest OS0 Guest OS1 VM Exit VM Entry VM Monitor Physical Host Hardware Página – 21 –
  • 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 Página – 23 –
  • 23. 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 – MMV más pequeño y simple • Mejora de rendimiento – Menos transiciones a MMV Página – 24 –