Exokernel
description
Transcript of Exokernel
![Page 2: Exokernel](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/16.jpg)
Introducción - Exokernel
• SO con arquitectura exokernel– Aegis– ExOS
04/21/23 16
![Page 17: Exokernel](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/25.jpg)
Arquitectura - Exokernel
04/21/23 25
![Page 26: Exokernel](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/26.jpg)
Librerías - Exokernel
• Librerías del Sistema Operativo• Vienen a brindar
– Flexibilidad– Eficiencia
• Implementaciones– Especializadas– Simples– Ejemplo
04/21/23 26
![Page 27: Exokernel](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/28.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/29.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/30.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/31.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/34.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/35.jpg)
Diseño - Exokernel
• Nombramiento físico.– Manejo correcto y simple de los recursos.– Ejemplo:
• # de páginas.
04/21/23 35
![Page 36: Exokernel](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/36.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/37.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/38.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/39.jpg)
Diseño - Exokernel
• Multiplexación de Red.– Múltiples protocolos.
• Estudio del paquete.• No complicar el exokernel.
04/21/23 39
![Page 40: Exokernel](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/40.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062519/568153e3550346895dc1e09e/html5/thumbnails/41.jpg)
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