exokernel david pérez [email protected] 4/19/20151

41
Exokernel David Pérez [email protected] 06/21/22 1

Upload: amadis-pablo

Post on 22-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Exokernel

David Pérez

[email protected]

04/21/23 1

Page 2: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• ¿Qué define un SO?– Interfaz entre aplicaciones y recursos

físicos.

• Ventajas de las interfaces.– Ya conocemos las ventajas.

• ¿Cuáles son?

04/21/23 2

Page 3: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Desventajas de las interfaces.– Limitan el desempeño.– Limitan la libre implementación.

• ¿De quién?

– ¿A qué se deben estas desventajas?• Abstracción.• Portabilidad.• Características adicionales.

04/21/23 3

Page 4: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Filosofías tradicionales de SO.– Interfaces de acceso completas.– Manejo centralizado de recursos.

• Manejo descentralizado.

– Consideraciones• Conflictos Aplicaciones.• Desempeño.• Flexibilidad.

04/21/23 4

Page 5: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• ¿Cómo solventar dicho inconveniente?– Manejo distribuidos de los recursos por

aplicaciones.– ¿Esto que ofrece?

• Facilidad de expansión.• Facilidad en manejos específicos.• Posibilidad de remoción de ciertos

componentes.

04/21/23 5

Page 6: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Enfoque tradicional– Ampliar el set de instrucciones del hardware.– Esconder información sobre los recursos vía

abstracciones centralizadas.– Implementaciones particulares de la abstracción.

• Procesos.• IPC.• Manejo de Interrupciones.• Sistema de archivos.

04/21/23 6

Page 7: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Enfoque tradicional.– Abstracción centralizada.

• “Máquina virtual” para aplicaciones.– ¿Qué brinda esta “máquina virtual”?

• Implementaciones no removibles.– ¿Por quién?– Aplicaciones no confiables y/o no seguras.

04/21/23 7

Page 8: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Idea.– Es inaceptable el enfoque tradicional.

• Negar a las aplicaciones las ventajas de dominarse en base a su definición de optimización.

• Es restrictivo y poco flexible.– Definir nuevos recursos o abstracciones.

04/21/23 8

Page 9: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Evidencias.– No hablamos por vicio…– Apple et al.

• Primitivas de propósito general para memoria virtual.

– Almacenamiento persistente.– Recolector de basura.– Memoria compartida distribuida.

04/21/23 9

Page 10: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Evidencias.– Cao et al.

• Manejo de caching de archivos en aplicaciones de alto nivel.

– Reduce E/S alrededor de un 80%

– Cheriton and Krueger.• Políticas especificas en memoria virtual.

– Incremento en las prestaciones.

04/21/23 10

Page 11: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Evidencias.– Stonebraker.

• Sistemas de archivos inapropiados.– Rendimiento de BD

– Thekkath.• Retrasar el manejo de señales.

– Reduce el costo de las excepciones en las aplicaciones.

04/21/23 11

Page 12: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Idea.– Plantear una arquitectura de un SO.– Abstracción tradicional del SO.

• Implementada en niveles de aplicación.• Mediante software no confiable.

04/21/23 12

Page 13: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Idea.– Bajo el enfoque anterior.– Exokernel.

• Multiplexación segura de recursos disponibles.• Protección.• Revocación.

04/21/23 13

Page 14: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Idea.– Usando el exokernel.– Aplicación.

• Solicitar o tomar recursos.• Realizar manejo de eventos.• Participar en la revocación de recursos.

04/21/23 14

Page 15: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Idea.– Implementación de bajo nivel.

• Implementación extremadamente eficiente.

– Conjunto de Librerías.• Librerías del SO.• Trabajan sobre las interfaces del exokernel.• Implementan las abstracciones de bajo nivel.

04/21/23 15

Page 16: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• SO con arquitectura exokernel– Aegis– ExOS

04/21/23 16

Page 17: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Introducción - Exokernel

• Prestaciones.– Mejor que cualquier kernel monolítico.– Reenvío de excepciones 100 unidades.

• Memoria Virtual en nivel de aplicación.

– Manejo de IPC 10 unidades.• Estructuras variadas.

04/21/23 17

Page 18: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Motivación - Exokernel

• El costo de abstracciones centralizadas.– Desempeño de las aplicaciones sufre.

• ¿Por qué?– No existe una única manera de realizar abstracción

de los recursos físicos.– No existe una única forma de implementar una

abstracción centralizada de la mejor manera para todas las aplicaciones.

04/21/23 18

Page 19: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Motivación - Exokernel

• El costo de abstracciones centralizadas.– El SO esta forzado a elegir un soporte

intermedio para las aplicaciones.• Por ejemplo:

– Lecturas intensivas.– Escrituras intensivas.

04/21/23 19

Page 20: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

End to End - Exokernel

• Abstracción centralizada Demasiada generalidad.

• Intentar provee todas las características a las aplicaciones.

• ¿Consecuencias?

04/21/23 20

Page 21: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

End to End - Exokernel

• Lampson, Anderson, Massalin.– Implementaciones de abstracciones

centralizadas con un propósito general.• Forzar a las aplicaciones a sufrir

sobrecarga.

• Generalización.– Importantes mejoras en el manejo del

hardware a bajo nivel.– Aplicaciones de software más precisas

y específicas.04/21/23 21

Page 22: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

End to End - Exokernel

• Las aplicaciones intentar conocer las operaciones del sistema y la interacción con el hardware.– ¿Con qué propósito?

04/21/23 22

Page 23: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

End to End - Exokernel

• Manejo de recursos de la forma apropiada.

• Toma de decisiones de acuerdo a la situación actual y no al caso común.– ¿Qué contradice lo anterior?

04/21/23 23

Page 24: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Arquitectura - Exokernel

• Pequeña capa de multiplexación de recursos.

• Librerías.– “Sistemas Operativos” que implementan

objetos y políticas.

• ¿Qué deberían preguntar?– Ideas.

04/21/23 24

Page 25: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Arquitectura - Exokernel

04/21/23 25

Page 26: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Librerías - Exokernel

• Librerías del Sistema Operativo• Vienen a brindar

– Flexibilidad– Eficiencia

• Implementaciones– Especializadas– Simples– Ejemplo

04/21/23 26

Page 27: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Librerías - Exokernel

• Permite minimizar.– Cambios de modos o transiciones a kernel.– La mayoría del SO.

• ¿Donde se ejecuta?

• No todo es bueno.– Problemas.

• Portabilidad.• Complejidad.

– Soluciones.• Ideas.

04/21/23 27

Page 28: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Librerías - Exokernel

• ¿Alguien me obliga a utilizar las librerías?• ¿Qué necesito para que esto funcione?

– Soporte para librerías compartidas.– Soporte para enlace dinámico.

04/21/23 28

Page 29: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Librerías - Exokernel

• ¿Cómo portar en un exokernel?– Emulando del código binario del SO y las

aplicaciones.– Muevo las abstracciones necesarias al SO

anfitrión.– Implemento de nuevo lo que deseo, tal vez

recompilo y adapto.

04/21/23 29

Page 30: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Metas.– Aplicaciones extensibles.– Aplicaciones especializadas.– Reemplazo de las abstracciones centralizadas,

con pie en el concepto de aplicaciones no confiables.

• Filosofía de diseño.– Control distribuido.

04/21/23 30

Page 31: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Responsabilidades.– Mapeo de recursos - usuarios (Propietarios).– Multiplexación segura de recursos.

• Protección.• Puntos de servicio.

– Revocación de acceso a los recursos.

04/21/23 31

Page 32: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• No manejar los recursos más allá de ofrecer protección– Ejemplo:

• Exportar instrucciones privilegiadas.• Exportar DMA.• Exportar los recursos de la máquina.

• Detalles de las interfaces.– Solicitar recursos.– Liberar recursos.– Usar recursos.

04/21/23 32

Page 33: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Principios guías.– Exponer el hardware.

• Ubicación completa y granular.

– Exponer nombres.• Espacios de nombres numerables.

– Exponer eventos.• Revocación de recursos.

04/21/23 33

Page 34: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Multiplexación.– Dividir o No.

• Ejemplo.– MIPS.– SPARC.

• Costos.

• ¿Por qué exportar las instrucciones privilegiadas?– Abstracciones típicas del SO.– Encapsulamiento.– Verificación de recursos.

04/21/23 34

Page 35: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Nombramiento físico.– Manejo correcto y simple de los recursos.– Ejemplo:

• # de páginas.

04/21/23 35

Page 36: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Multiplexación segura.– Tarea primordial.– Verificar privilegios.

• Al usar el recurso.• Conocimiento limitado.

– Bajo Nivel.– Alto Nivel ¿Dónde se implementa?.

• Unión segura.– Separar alto de bajo nivel.

04/21/23 36

Page 37: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Multiplexación segura.– Tarea primordial.– Verificar privilegios.

• Al usar el recurso.• Conocimiento limitado.

– Bajo Nivel.– Alto Nivel ¿Dónde se implementa?.

• Unión segura.– Separar alto de bajo nivel.

04/21/23 37

Page 38: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Multiplexación Memoria Física.– Unión segura.

• Página.• Propietario.• Capacidades.

• Multiplexación Frame Buffer.– Dificultad al conocer los dispositivos.

• Ejemplos:– Disco.– Silicon Graphics.

04/21/23 38

Page 39: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Multiplexación de Red.– Múltiples protocolos.

• Estudio del paquete.• No complicar el exokernel.

04/21/23 39

Page 40: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Revocación.– Recursos manejados a nivel de aplicación.– Reclamar recursos.– Invisible.

• No involucrar a la aplicación.• Menor latencia.• Falta de control y escasez.

– Visible.• Involucrar a la aplicación.• Ventajas.• Desventajas.

04/21/23 40

Page 41: Exokernel David Pérez david.perez@ciens.ucv.ve 4/19/20151

Diseño - Exokernel

• Protocolo de aborto.– ¿Qué pasa si la revocación falla?– Revocación en dos fases.

• Ejemplo

– ¿Sí falla también esto?• Opciones.

– Mato todo.– Protocolo de aborto.

» Recursos por la fuerza.» Vector de reposición.» Elección de recursos.

04/21/23 41