Exokernel David Prez david perezciens ucv ve 10292021

  • Slides: 41
Download presentation
Exokernel David Pérez david. perez@ciens. ucv. ve 10/29/2021 1

Exokernel David Pérez david. perez@ciens. ucv. ve 10/29/2021 1

Introducción - Exokernel • ¿Qué define un SO? – Interfaz entre aplicaciones y recursos

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? 10/29/2021 2

Introducción - Exokernel • Desventajas de las interfaces. – Limitan el desempeño. – Limitan

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. 10/29/2021 3

Introducción - Exokernel • Filosofías tradicionales de SO. – Interfaces de acceso completas. –

Introducción - Exokernel • Filosofías tradicionales de SO. – Interfaces de acceso completas. – Manejo centralizado de recursos. • Manejo descentralizado. – Consideraciones • Conflictos Aplicaciones. • Desempeño. • Flexibilidad. 10/29/2021 4

Introducción - Exokernel • ¿Cómo solventar dicho inconveniente? – Manejo distribuidos de los recursos

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. 10/29/2021 5

Introducción - Exokernel • Enfoque tradicional – Ampliar el set de instrucciones del hardware.

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. • • 10/29/2021 Procesos. IPC. Manejo de Interrupciones. Sistema de archivos. 6

Introducción - Exokernel • Enfoque tradicional. – Abstracción centralizada. • “Máquina virtual” para aplicaciones.

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. 10/29/2021 7

Introducción - Exokernel • Idea. – Es inaceptable el enfoque tradicional. • Negar a

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. 10/29/2021 8

Introducción - Exokernel • Evidencias. – No hablamos por vicio… – Apple et al.

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. 10/29/2021 9

Introducción - Exokernel • Evidencias. – Cao et al. • Manejo de caching de

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. 10/29/2021 10

Introducción - Exokernel • Evidencias. – Stonebraker. • Sistemas de archivos inapropiados. – Rendimiento

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. 10/29/2021 11

Introducción - Exokernel • Idea. – Plantear una arquitectura de un SO. – Abstracción

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. 10/29/2021 12

Introducción - Exokernel • Idea. – Bajo el enfoque anterior. – Exokernel. • Multiplexación

Introducción - Exokernel • Idea. – Bajo el enfoque anterior. – Exokernel. • Multiplexación segura de recursos disponibles. • Protección. • Revocación. 10/29/2021 13

Introducción - Exokernel • Idea. – Usando el exokernel. – Aplicación. • Solicitar o

Introducción - Exokernel • Idea. – Usando el exokernel. – Aplicación. • Solicitar o tomar recursos. • Realizar manejo de eventos. • Participar en la revocación de recursos. 10/29/2021 14

Introducción - Exokernel • Idea. – Implementación de bajo nivel. • Implementación extremadamente eficiente.

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. 10/29/2021 15

Introducción - Exokernel • SO con arquitectura exokernel – Aegis – Ex. OS 10/29/2021

Introducción - Exokernel • SO con arquitectura exokernel – Aegis – Ex. OS 10/29/2021 16

Introducción - Exokernel • Prestaciones. – Mejor que cualquier kernel monolítico. – Reenvío de

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. 10/29/2021 17

Motivación - Exokernel • El costo de abstracciones centralizadas. – Desempeño de las aplicaciones

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. 10/29/2021 18

Motivación - Exokernel • El costo de abstracciones centralizadas. – El SO esta forzado

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. 10/29/2021 19

End to End - Exokernel • Abstracción centralizada Demasiada generalidad. • Intentar provee todas

End to End - Exokernel • Abstracción centralizada Demasiada generalidad. • Intentar provee todas las características a las aplicaciones. • ¿Consecuencias? 10/29/2021 20

End to End - Exokernel • Lampson, Anderson, Massalin. – Implementaciones de abstracciones centralizadas

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. 10/29/2021 21

End to End - Exokernel • Las aplicaciones intentar conocer las operaciones del sistema

End to End - Exokernel • Las aplicaciones intentar conocer las operaciones del sistema y la interacción con el hardware. – ¿Con qué propósito? 10/29/2021 22

End to End - Exokernel • Manejo de recursos de la forma apropiada. •

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? 10/29/2021 23

Arquitectura - Exokernel • Pequeña capa de multiplexación de recursos. • Librerías. – “Sistemas

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. 10/29/2021 24

Arquitectura - Exokernel 10/29/2021 25

Arquitectura - Exokernel 10/29/2021 25

Librerías - Exokernel • Librerías del Sistema Operativo • Vienen a brindar – Flexibilidad

Librerías - Exokernel • Librerías del Sistema Operativo • Vienen a brindar – Flexibilidad – Eficiencia • Implementaciones – Especializadas – Simples – Ejemplo 10/29/2021 26

Librerías - Exokernel • Permite minimizar. – Cambios de modos o transiciones a kernel.

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. 10/29/2021 27

Librerías - Exokernel • ¿Alguien me obliga a utilizar las librerías? • ¿Qué necesito

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. 10/29/2021 28

Librerías - Exokernel • ¿Cómo portar en un exokernel? – Emulando del código binario

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. 10/29/2021 29

Diseño - Exokernel • Metas. – Aplicaciones extensibles. – Aplicaciones especializadas. – Reemplazo de

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. 10/29/2021 30

Diseño - Exokernel • Responsabilidades. – Mapeo de recursos - usuarios (Propietarios). – Multiplexación

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. 10/29/2021 31

Diseño - Exokernel • No manejar los recursos más allá de ofrecer protección –

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. 10/29/2021 32

Diseño - Exokernel • Principios guías. – Exponer el hardware. • Ubicación completa y

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. 10/29/2021 33

Diseño - Exokernel • Multiplexación. – Dividir o No. • Ejemplo. – MIPS. –

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. 10/29/2021 34

Diseño - Exokernel • Nombramiento físico. – Manejo correcto y simple de los recursos.

Diseño - Exokernel • Nombramiento físico. – Manejo correcto y simple de los recursos. – Ejemplo: • # de páginas. 10/29/2021 35

Diseño - Exokernel • Multiplexación segura. – Tarea primordial. – Verificar privilegios. • Al

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. 10/29/2021 36

Diseño - Exokernel • Multiplexación segura. – Tarea primordial. – Verificar privilegios. • Al

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. 10/29/2021 37

Diseño - Exokernel • Multiplexación Memoria Física. – Unión segura. • Página. • Propietario.

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. 10/29/2021 38

Diseño - Exokernel • Multiplexación de Red. – Múltiples protocolos. • Estudio del paquete.

Diseño - Exokernel • Multiplexación de Red. – Múltiples protocolos. • Estudio del paquete. • No complicar el exokernel. 10/29/2021 39

Diseño - Exokernel • Revocación. – Recursos manejados a nivel de aplicación. – Reclamar

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. 10/29/2021 40

Diseño - Exokernel • Protocolo de aborto. – ¿Qué pasa si la revocación falla?

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. 10/29/2021 41