La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos Avanzados

Presentaciones similares


Presentación del tema: "Sistemas Operativos Avanzados"— Transcripción de la presentación:

1 Sistemas Operativos Avanzados
Máquinas virtuales

2 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 requirements for virtualizable third generation architectures. CACM, 17(7):413–421, 1974.

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.

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.

5 Algo de historia Idea bastante utilizada hasta los 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.

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

7 Virtual Machine Monitor (VMM)
MMV: Aplicación VM0 VM1 VMn App0 App1 Appn ... Virtual Machines (VMs) Guest OS0 Guest OS1 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

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.

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.

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.

11 Problemas x86: Muchísimos problemas Itanium: Casi virtualizable
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

12 Virtualización impura
Solución para arquitecturas no virtualizables y para reducir los problemas de rendimiento. Enfoques: Paravirtualización. Traducción binaria.

13 Paravirtualización Portar el código de SO huesped al ISA modificado.
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.

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.

15 Memoria Tablas de páginas en la sombra: Reclamación de memoria
Huesped accede a tabla de página en la sombra. MMV detecta cambios en tabla de páginas en la sombra y sincroniza tabla de páginas real. 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.

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

17 Usos de la virtualización
Legacy SW Support Training/QA Activity Partitioning Manageability Server Consolidation Failover infrastructure Flexible Datacenter CLIENTES SERVIDORES

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

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 entre si ... ... App App App App App App Guest OS0 ... Guest OS1 MMV se ejecuta protegida de las MV VM Monitor MMV debe presentar una interfaz a las MV Platform Hardware

20 Modos de operación VMX root: VMX non-root: Totalmente privilegiado.
Pensado para MMV. VMX non-root: No privilegiado. Pensado para SW huésped.

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 Carga el estado de MMV VM0 VM1 ... ... App App App ... App App App Guest OS0 Guest OS1 VM Monitor VM Exit VM Entry Physical Host Hardware

22 VT-x Operations VMX Non-root Operation . . . IA-32 Operation VMX Root
Ring 0 Ring 3 VM 1 Ring 0 Ring 3 VM 2 Ring 0 Ring 3 VM n VMX Non-root Operation . . . VMCS 1 VMCS 2 VMCS n VM Exit Ring 0 Ring 3 IA-32 Operation VMX Root Operation VMXON VMLAUNCH VMRESUME

23 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

24 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


Descargar ppt "Sistemas Operativos Avanzados"

Presentaciones similares


Anuncios Google