Post on 02-Oct-2018
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 1
Sistemas operativos
avanzados
Tema 1
Introducción
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 2
Contenido
1. Definición de SO
2. Componentes del SO
3. Estructura del SO
o Alternativas de diseño
o Máquinas virtuales
4. Principios de diseño del SO
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 3
Definición de Sistema Operativo (déjà vu)
“Ubicuos pero no hacen un trabajo útil concreto”
Gestión segura y eficiente de los recursos del computador
o Reparto temporal y espacial de recursos entre programas
Ofreciendo abstracción de “máquina extendida”
o Servicios que ocultan e independizan del hardware
• Crean abstracciones de recursos hardware
¿Algo más?: Sólo con eso, tan inútil como máquina desnuda
o SO de propósito general debe ofrecer interfaz a usuarios
• ¿Debe considerarse interfaz como parte del SO?
• Suele estar implementado como aplicación externa
o Definición precisa de SO: Asunto polémico
• Linux vs. GNU/Linux
• Juicio antimonopolio a Microsoft por IE
o ¿A qué nos referimos cuando hablamos de SO?
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 4
Distintas interpretaciones del término SO
Estricta (la que usaremos primordialmente en la asignatura):
o Gestor de recursos que ofrece servicios a aplicaciones
• Interfaz de usuario es otra aplicación más fuera del SO
o SO = Núcleo (kernel): software que ejecuta en modo sistema
(a.k.a núcleo o kernel)
• No aplicable a sistemas con arquitectura microkernel
Ya que parte del SO ejecuta en modo usuario
Amplia (concepto de distribución en Linux):
o Todo el software que hace operativo al sistema
• Software de interfaz de usuario (p.e. GUI, bash)
• Herramientas del sistema (p.e. montador ld)
• “Demonios del sistema” (p.e. spooler de impresora)
• Bibliotecas del sistema (p.e. libc)
4
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 5
Modo dual de ejecución (repaso)
Los procesadores modernos (el hardware) proporcionan al menos 2
modos de ejecución:
o Modo usuario: Ejecución de programas sin privilegios
o Modo sistema (núcleo o kernel): Acceso a un conjunto extendido
de instrucciones y mapa de memoria y E/S
Transiciones entre uno y otro:
o Llamadas al sistema, interrupciones y excepciones
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 6
Componentes del sistema operativo
Gestión de procesos
Gestión de memoria
Sistema de entrada/salida
Sistema de ficheros
Sistema de seguridad y protección
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 7
Gestión de procesos
Abstracción fundamental del SO
o Proceso: programa en ejecución
Cada proceso tiene un conjunto de recursos asociados:
o Flujos de ejecución internos (threads)
o Mapa de memoria
o Ficheros abiertos, puertos de comunicación, ...
SO debe controlar:
o Creación y destrucción de procesos
o Comunicación y sincronización del proceso
• Así como asegurar su propia sincronización interna
o Asignación y liberación de recursos al proceso
• Evitando los interbloqueos
o Planificación de UCP: qué proceso ejecuta en cada instante
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 8
Gestión de memoria
SO ofrece espacio lógico propio (mapa) a cada proceso
o Mapa del proceso incluye todas las regiones requeridas
• Código, datos, pilas, DLL, ficheros proyectados, etc.
SO gestiona mem. de sistema usando esquema fijado por MMU
o Registros base/límite, segmentación, paginación, ...
SO implementa la técnica de memoria virtual que permite:
o Ejecutar procesos cuyo mapa es más grande que la memoria
o Aumentar el grado de multiprogramación
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 9
Sistema de entrada/salida
Manejadores se encargan de gestionar los dispositivos
o Uno por cada tipo de dispositivo
o Ofrecen interfaz común a pesar de gran variedad de dispositivos
o Gestionan todos los aspectos hardware (p.e. DMA)
Implementación de aspectos avanzados
o Control de consumo de energía del dispositivo en portátiles
o Hot-plugging
Manejador de disco crítico en SO (sirve a G. memoria y S. Fich.)
o Algoritmos de planificación del disco
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 10
Sistema de ficheros
Fichero: abstracción de espacio de almacenamiento
Espacio jerárquico de nombres usando directorios
Tendencia: dar soporte a distintos tipos de sistemas de ficheros
o Concepto de sistema de ficheros virtual: interfaz común
Cada tipo de sistema de ficheros específico usa estrategias para:
o Organización del espacio ocupado por los ficheros
o Gestión del espacio libre
o Técnicas de prevención ante caídas (p.e. journaling)
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 11
Sistema de seguridad y protección
Protección:
o ¿Qué operaciones puede hacer usuario con recurso?
o ¿Cómo almacenar información sobre permisos?
• Asociada al usuario: Capacidades
• Asociada al recurso: Listas de control de acceso
Autenticación:
o Asegurar que un usuario es quien dice ser
SO debe evitar amenazas a la seguridad e integridad del sistema
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 12
Estructura del sistema operativo
Existen distintas alternativas:
o Sistemas monolíticos
o Sistemas modulares
o Sistemas por capas
o Sistemas basados en microkernels
o Sistemas híbridos
o Exokernels
Máquinas virtuales:
o Virtualización completa
o Para-virtualización
o Virtualización asistida por hardware
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 13
Sistemas operativos monolíticos
SO = núcleo (kernel) programa que ejecuta en modo sistema
o Todo el código del SO enlazado en un único programa que
o Ejecuta en un mismo espacio de direcciones
Aplicaciones y programas de sistema ejecutan en modo usuario
Ventaja: Eficiencia
o Ejecución de servicio de SO:
• Sólo requiere cambio de usuario a sistema y viceversa
Desventaja: Difícil depuración y extensibilidad
o Error en cualquier parte del SO afecta al resto
Es la arquitectura más habitual
o Característica de la familia UNIX (Linux)
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 14
Sistemas operativos monolíticos
VFS: Virtual File System
IPC: Inter Process Communication
Aplicaciones
Sistema de ficheros virtual (VFS)
IPC, Sistema de ficheros
Planificador, Memoria virtual
Manejadores de dispositivos, Activador, ...
Hardware
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 15
Sistemas con módulos cargables
Mayoría de sistemas monolíticos actuales no están “cerrados”
o Permiten cargar módulos en tiempo de ejecución
Ejecutable del SO contiene funcionalidad básica
Restante en módulos (manejadores, s. ficheros, protocolos, etc.)
Módulo similar a biblioteca dinámica pero para el núcleo
o Se incorpora a espacio de SO y comparte símbolos
o Se mantienen los mismos problemas de fiabilidad
Ventajas:
o Facilita extensibilidad del SO y adaptar núcleo a características de la plataforma
• P.ej. Crear núcleo mínimo para sistema empotrado
o Posibilita técnicas como hot-plugging
Desventajas:
o Sigue siendo monolítico
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 16
Sistemas con módulos cargables (Ejemplo: Linux)
Cargador dinámico de módulos
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 17
Sistemas modulares (diseño)
Diseño basado en módulos:
o Enfoque (inspirado por) orientación a objetos
o Componentes base cláramente separados.
o Los cuales “hablan” por medio de interfaces bien definidos.
o Y son cargados por el kernel bajo demanda.
Ejemplo, diseño modular de SUN/Solaris:
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 18
Mapa de componentes Linux
htt
p:/
/ww
w.m
akel
inux.n
et/k
ernel
_m
ap
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 19
Sistemas por capas (o anillos)
Organizar funcionalidad del SO en capas independientes
o Cada capa es un ejecutable independiente que ejecuta en su propio espacio de direcciones
o Organizadas en niveles de mayor a menor privilegio
o Capa sólo se comunica con adyacentes usando llamadas al sistema
• Procesador verifica que se trata de capas adyacentes
Ventajas:
o Facilita depuración y controla propagación de errores
Desventajas:
o No siempre es posible:
• E.g., ¿El planificador debe estar por encima o por debajo del gestor de memoria virtual?
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 20
Sistemas por capas (o anillos)
Requiere que procesador provea de varios niveles de privilegio
o La familia Pentium proporciona 4
o Sistemas monolíticos sólo requieren dos modos (usuario/sistema)
• Más transportables.
o No obstante: El diseño por niveles puede hacerse dependiente o independiente de la arquitectura (más o menos portable).
Aplicaciones
Manejadores de disposit
ivos
Núcleo
Anillo 0
Anillo 1
Anillo 2
Anillo 3
Más privilegiado
Menos privilegiado
Manejadores de dispos
itivo
s
Primer SO por capas: o THE (Dijkstra, 1968)
Comercialmente: o MULTICS también usó
esta arquitectura. o El más conocido (y
usado) fue OS/2 de IBM
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 21
Microkernel (I)
“Lo perfecto no es que no falte nada sino que no sobre nada”
Kernel queda reducido a funcionalidad mínima
o Gestión básica de procesos: threads y planificación.
o Gestión de memoria de bajo nivel: Direccionado
o Primitivas de comunicación entre procesos: IPC
o Gestión E/S elemental e interrupciones.
Funcionalidad del SO en servidores en modo usuario
o Sistema de ficheros, gestor de memoria, manejadores, ...
• Microkernel proporciona nº muy reducido de llamadas
o “Llamada al sistema” de aplicación: mensaje a servidor
• Y entre servidores si es necesario
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 22
Sistema monolítico vs. microkernel
Servicios del S.O. (en los modelos monolíticos) sacados del espacio
de kernel.
o Interfaz de llamadas al sistema simplificado.
© Wikipedia
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 23
Microkernel (II)
Ventajas: Extensibilidad, fiabilidad y facilidad de depuración
o Error en parte del SO sólo afecta al servidor involucrado
o Posible convivencia de varios SS.OO.
o Facilidad en la portabilidad a otras arquitecturas
Desventajas: Eficiencia.
o Coste de llamada: Sobrecarga mensajes y cambios de proceso
Adecuación para nuevos diseños/escenarios:
o Sistemas distribuidos: Los mensajes entre servidores pueden ser a
cualquier nodo.
o S.O. Orientado a objetos: Servidores son objetos con interfaces
claramente definidos.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 24
Evolución de microkernels
Primeros sistemas: mono-servidor
o Único servidor en modo usuario proporciona todos servicios
o Menos sobrecarga por mensajes y cambios de contexto
o Pero pierde muchas de las ventajas de microkernels
IPC, MMU Abstrac.
Planificador
Memoria (kernel)
Dispositivos
Sist. Ficheros (bajo
nivel) y Swapping
Memoria (objetos)
IPC, MMU Abstrac.
Planificador
Memoria (kernel)
IPC, MMU Abstrac.
Planificador
Biblioteca
de gestión
de
memoria
1ª generación: Mach (1987) 2ª generación: L4 (1995) 3ª generación: seL4 (2009)
180 llamadas al sistema ~7 llamadas al sistema ~3 llamadas al sistema
100.000 Líneas de código ~10.000 Líneas de código 9.000 Líneas de código
IPC: 100 ms IPC: ~1 ms IPC: 0,2-1,0 ms
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 25
Familia de microkernels L4
Aparecen en la 2ª generación (Mejora de rendimiento en IPC).
Premisa:
o “A concept is tolerated inside the microkernel only if moving it
outside the kernel, i.e. permitting competing implementations,
would prevent the implementation of the system’s required
functionality.” (Liedke, 1993)
Variantes
o Experimentales: Fiasco (1998), Hazelnut (1999), Pistachio
(2002), L4-embedded (2004).
o Comerciales (OKL4 para ARM, MIPS e Intel): Telefonía móvil
(HTC, Mtotorola, Samsung, Toshiba y Sonny/Ericsson).
seL4 (Secure Embedded): Soluciona aspectos de seguridad,
formalmente validado.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 26
Sistemas híbridos
Algunos sistemas microkernel permiten servidores en modo sistema
o Más eficiente pero rompe la filosofía microkernel
o Servidores son programas independientes pero
o Ejecutan en mismo espacio de direcciones del microkernel
• Y no usan IPCs para comunicarse
Categoría discutida
o Puristas consideran que son monolíticos
Ejemplo: Mac OS X
o Interfaz UNIX
o Microkernel Mach con servidores en memoria de sistema
Fernando Pérez Costoya 26 Diseño de sistemas operativos
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 27
Comparativa: Monolítico, microkernel e híbrido
Los sistemas híbridos presentan un compromiso entre:
o “Limpieza” del diseño de los microkernels
o Aspectos prácticos de eficiencia
A pesar de correr en espacio de kernel, puede ser hilos (threads) de
ejecución independientes.
© Wikipedia
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 28
Diseño Windows 2000
Y Windows? (Difícil):
o Puede considerarse híbrido
o Comercialmente se “vendió”
como diseño microkernel.
Componentes:
o HAL: Abstrae el hardware.
o Kernel (no ejecutivo):
• Concepto de microkernel.
o Ejecutivo:
• Object manager
• Virtual memory manager
• I/O manager
• …
© Wikipedia
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 29
Exokernel (I)
Motivación:
o No todas las aplicaciones necesitan ver mismas abstracciones
• Gestor base de datos mejor maneja bloques de disco que ficheros
Uso de abstracciones inadecuadas es ineficiente
Propuesta: Exokernel (MIT, 1995)
o Kernel provee abstracciones básicas (página, bloque, ...)
o Funcionalidades de tipo SO en bibliotecas en modo usuario
o Cada aplicación se enlaza con las bibliotecas que requiera
• Gestor base de datos no requiere de sistema de ficheros
Aplicación del principio “end-to-end”
Fernando Pérez Costoya 29 Diseño de sistemas operativos
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 30
Exokernel (II)
Diseñado como una capa mínima para presentar recursos hardware a
los usuarios:
o Objetivo: Minimizar la abstracción lo más posible
o Sólo se proporciona multiplexación y protección de los recursos
Por encima del exokernel está la LibraryOS que proporciona las
funcionalidades típicas del S.O. como una biblioteca.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 31
Definición de virtualización
Proyección de una serie de recursos o servicios reales del sistema
hacia un subsistema de forma que sólo una parte de ellos sean
visibles para el mismo.
o La visibilidad también restringe lo que el subsistema puede hacer
con esos recursos/servicios.
o Dicha visibilidad está definida por una interfaz de uso (que puede
ser muy parecida a la interfaz nativa de esos recursos/servicios)
Hardwa
re
SO
SO
SO
Proc
Proc
Proc
Proc Proc
Proc
Proc
Proc
Proc
Proc
Proc
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 32
Definición de virtualización
Definición formal:
o La virtualización implica la
construcción de un isomorfismo
que proyecta un sistema virtual
alojado sobre un sistema anfitrión
real (Popek and Goldberg, 1974)
Definición para sistemas:
o Particionamiento del hardware de
un sistema y creación de diferentes
entornos virtuales (máquinas
virtuales) que pueden albergar
subsistemas independientes.
Communications of the ACM, vol 17, no
7, 1974, pp.412-421
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 33
Virtualización genérica en sistemas
Virtualización del Sistema Operativo (Máquinas Virtuales)
o Separación entre SO y el hardware real.
o SO Anfitrión (Host) SO Alojado (Guest)
SO Anfitrión
SO Alojado
Capa de Virtualización
SO Alojado SO Alojado
Hardware
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 34
Consideraciones importantes
Eficiencia:
o Aquellas instrucciones inocuas deben ejecutarse sobre el
hardware real (si es compatible).
o Diferente en el caso de una emulación.
Control de recursos:
o Los programas en ejecución sólo pueden consumir los recursos
otorgados al subsistema donde ejecutan.
Equivalencia:
o Los resultados de la ejecución sobre el sistema nativo y sobre el
sistema virtualizado deben ser equivalentes.
o A diferencia, únicamente, de aspectos de temporización o
consumo de recursos.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 35
Ventajas de la virtualización
Despliegue de sistemas:
o Se necesita validar sólo una plataforma.
o Se virtualiza dicha plataforma sobre el hardware que sea.
o Mayor facilidad de encapsulación (migración y replicación).
Eficiencia y reutilización:
o Mayor aprovechamiento del hardware.
o Escalabilidad y reparto de recursos.
En estaciones de trabajo:
o Coexistencia de varios SO en el mismo equipo.
o Validación multiplataforma o aplicaciones dependientes de SO.
o Simulación de una red (heterogénea) de equipos.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 36
Ventajas de la virtualización
Seguridad:
o Aísla aplicaciones “peligrosas”.
o Concepto de sandbox asociado a la MV.
o Separación entre SO de otras MV y del SO anfitrión.
o Particionamiento de servidores (hosting): por incompatibilidades
o por estabilidad del entorno.
o Aplicaciones de tipo legacy.
Desarrollo de software en el núcleo del SO:
o Muy difícil depuración en SO nativo.
o Si “casca” el SO alojado no afecta al SO anfitrión.
o Facilidades para hacer volcado de registros, memoria, puntos de
interrupción.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 37
Principios sobre virtualización
La virtualización está ligada al tipo de instrucciones (máquina) y a
los recursos que usan:
o Instrucciones privilegiadas: Instrucciones sólo ejecutables en
modo privilegiado.
o Instrucciones sensibles:
• A nivel de control: Modificaciones de la ubicación de memoria o
de los modos de privilegio.
• A nivel de comportamiento:
Dependientes de localización: El comportamiento depende de su
localización en memoria.
Dependientes de modo: El comportamiento depende del modo de
privilegio.
o Inocuas: Instrucciones no sensibles Un sistema de virtualización se puede construir sólo cuando las instrucciones
sensibles son un subconjunto de las instrucciones privilegiadas.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 38
Alternativas de virtualización
1ª Generación:
Virtualización completa
– Re-implementación
binaria del hardware
– Basada 100% en
capas software.
Evolución temporal
3ª Generación:
Virtualización asistida por
el hardware.
– No se altera el SO
alojado
– Plataformas hardware
diseñadas para
soportar virtualización
2ª Generación:
Para-virtualización
– Virtualización
cooperativa
– SO alojados
modificados
Traducción Dinámica
Máquina
Virtual
Hardware
Operating System
Máquina
Virtual …
Hipervisor
Hardware
MV MV
Hardware
Máquina
Virtual
Máquina
Virtual …
Lógica de Virtualización
Hipervisor
…
© Intel Corp.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 39
Virtualización completa
1ª Generación de virtualización para servidores
Traducción binaria dinámica
o El nivel de emulación implementa un hardware
virtual que le solicitará determinadas operaciones al
hardware real si lo necesita.
o El SO alojado no sabe que se está ejecutando sobre
un entorno virtual.
Todo el hardware es emulado (incluida la
CPU).
Eso implica que puede ser distinto del hardware
real.
Hardware
Emulado
Máq
uin
a Virtu
al
SO
Alo
jado
Drivers HW
Ap
p.
A
App. B
App. C
Hardware
SO Anfitrión
Drivers de
Dispositivos
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 40
Virtualización completa – ventajas
El nivel de emulación:
o Aísla las MV entre sí y del SO anfitrión.
o Controla el acceso de las MV a los recursos del sistema y
previene que MV inestables/inseguras afecten al sistema.
Portabilidad completa de MVs:
o Por medio de la emulación de un conjunto consistente de
hardware emulado (independiente del hardware real). Las MVs
tiene la posibilidad de moverse, de forma transparente, entre
sistemas con hardware diferente sin problemas.
o Es posible ejecutar una aplicación o SO que fue desarrollado para
otra arquitectura diferente del hardware real.
o Usado en el desarrollo sobre hardware experimental o específico.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 41
Virtualización completa - inconvenientes
La emulación de hardware tiene un coste en rendimiento.
Los núcleos de los SOs están diseñados con la idea de correr en
modo privilegiado.
o El uso de ciertas instrucciones sobre registros o memoria está pensadas para
agilizar ciertas operaciones. Cosa que no ocurre si implica en trap a nivel
privilegiado en cada caso.
El rendimiento motivó nuevas aproximaciones.
Aplicación Ring 3
Sistema
Operativo Ring 0
Arquitectura Tradicional
Aplicación Ring 3
SO Alojado Ring 1 / 3
Monitor de
Máquina
Virtual
Ring 0
Virtualización Completa
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 42
Para-virtualización
Los SOs alojados se modifican de forma que su ejecución en modo no-privilegiado sea eficiente:
o El SO alojado es completamente cosciente de que está virtualizado y debe saber como implementar las operacioes que requieren modo privilegiado.
o Por lo tanto, el monitor de MVs no tiene que traducir instrucciones privilegiadas.
o El SO alojado usa un API especializada para dialogar con el Monitor de MVs que le da funciones que sustituyen a las instrucciones privilegiadas.
El Monitor de MVs es responsable de manejar las solicitudes virtualizadas y pasárselas al hardware.
Monitor de Máquinas Virtuales
Máq
uin
a Virtu
al
SO
Alo
jado
Drivers
Ap
p.
A
App. B
App. C
API especializada
Hardware
Hipervisor
Drivers de
Dispositivos
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 43
Para-virtualización
Los SO alojados se modifican de dos diferentes maneras:
o Recompilando el núcleo del SO alojado:
• El SO debe sustituir determinados fragmentos de código por llamadas al API
especializada.
• Como el SO se ve modificado y resulta necesario recompilarlo entro (se pueden
distribuir versiones recompiladas con esta opción):
Algunos fabricantes (como Novell) distribuyen versiones recompiladas para
paravirtualizción, otros (como Microsoft) no.
o Instalación de drivers para paravirtualización:
• En el caso de algunos SOs no es posible una paravirtualización completa (que
requiere modificar y recompilar el SO).
• Para asegurarse un buen rendimiento (en comparación con la virtualización
completa), sólo se paravirtualizan ciertos dispositivos.
• Por ejemplo, las instrucciones asocidas a tarjetas gráficas o de red pueden
modificarse o no antes de que salgan de la máquina virtual por unos driver
específicos para ello.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 44
Virtualización asistida por el hardware
El SO alojado corre en modo privilegiado.
El monitor de MVs usa extenciones (del tipo
Intel®-VT or AMD-V®) para interceptar e
interpretar ciertas operaciones privilegiadas.
La virtualización de este tipo elimina gran
parte de las complicaciones de escribir un
monitor de MVs.
El monitor de MVs tiene determinadas
instrucciones “super-privilegiadas”.
Monitor de Máquinas
Virtuales
Máq
uin
a Virtu
al
SO
Alo
jado
Drivers
Ap
p.
A
App. B
App. C
API Especializada
Hardware
Hipervisor
Drivers de
Dispositivos
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 45
Soporte en chip (x86) de virtualización
Empieza a ser implantada desde las versiones de 64Bits.
AMD-V: AMD Virtualization (SVM- Secure Virtual Machine):
o Últimos Opteron y Phenom II (dan soporte a segunda generación)
o Soporte para virtualización de tablas de páginas (Rapid
Virtualizaton Indexing)
VT-x: Intel Virtualization:
o Ultima versión desde Nehalem.
o Extended Page Tables (mismas ideas de RVI de AMD).
45
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 46
Virtualización asistida por el hardware
Ventajas
o Permite ejecutar versiones no modificadas de SO alojados (SO antiguos
pueden ejecutarse sin problemas).
Inconvenientes
o Velocidad y Flexibilidad
• Aunque las instrucciones privilegiadas se pueden ejecutar (por pare del
SO alojado), si se supiese que se ejecuta en un entorno virtual eso
simplificaría (y agilizaría) determinadas operaciones.
Una alernativa razonable es usar algo parecido a una paravirtualización
puntual.
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 47
Principios de diseño del SO (I)
Los iremos descubriendo a lo largo de la asignatura.
Anticipo:
o SO debe definir mecanismos y permitir la configuración de las políticas
• Ej. Generalmente, se da más prioridad a procesos con más E/S
No debería estar fijo en el SO, sino ser configurable por medio de una política.
Fernando Pérez Costoya 47 Diseño de sistemas operativos
Mecanismos: o Rutinas asociadas a la
recopilación de datos (e.g.,
buscar el primer bloque de
disco disponible) o,
o A la actuación sobre
recursos del sistema (e.g.,
poner un proceso en
ejecución).
Políticas: o Reglas disparadas cuando se
debe lleva a cabo una
decisión de sistema.
o Recopilan ciertos datos y
o Ejecutan actuaciones con
unos parámetros
determinados (e.g., reservar
bloques de disco contiguos).
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 48
Principios de diseño del SO (II)
Portabilidad
o SO escrito en lenguaje de alto nivel minimizando ensamblador
o No siempre aprovechar toda la funcionalidad específica del HW
• Ejemplo: SO que usa 4 niveles de privilegio de Pentium
Principio de mínimo privilegio
o Software debe ejecutar sólo con privilegio que requiere
• Ejemplo: demonios UNIX con permisos de superusuario
Complejidad (en líneas de código) crece exponencialmente:
o Nuevo hardware y funcionalidades.
o Difícil validación.
Costes de mantenimiento:
o Actualizaciones de seguridad.