tema 1 introducción -...

48
© F Pérez, JM Peña, MS Pérez, F. Rosales, P de Miguel SOA / 1 Sistemas operativos avanzados Tema 1 Introducción

Upload: dinhdung

Post on 02-Oct-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

© 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.