La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Adaptación del Sistema Operativo ORK+ al hipervisor XtratuM

Presentaciones similares


Presentación del tema: "Adaptación del Sistema Operativo ORK+ al hipervisor XtratuM"— Transcripción de la presentación:

1 Adaptación del Sistema Operativo ORK+ al hipervisor XtratuM
Presentación del titulo al tribunal con el titulo “” Que he desarrollado con el tutor Juan Zamorano. Angel Esquinas Fernandez Tutor: Juan Zamorano

2 ORK+/XtratuM - PFC - A. Esquinas
Índice Objetivos XtratuM ORK+ Adaptación del sistema operativo ORK+ Evaluación Conclusiones En el cual se ha adaptado el sistema de tiempor real ORK desarrollado por el grupo al hipervisor XtratuM para conseguir un sistema particionado. Este es el contenido de la presentacion, objetivos una pequeña definicion y la descripción dle trabajo. ORK+/XtratuM - PFC - A. Esquinas

3 Sistemas Particionados
Los sistemas particionados permiten la ejecución de distintas aplicaciones con distintos niveles de criticidad en la misma plataforma. Las aplicaciones ejecutan en particiones que aseguran aislamiento espacial y temporal. Los sistemas particionados son usados en el sector aeronáutico bajo el concepto IMA (Integrated Modular Avionics). Los sistemas particionados permiten la ejecución de aplicaciones de distintos niveles de criticidad en la misma plataforma. Se asegura el aislamiento espacial y temporal entre particiones En el sector aeronautico al que va orientado este proyecto se implementan sistemas particionados bajo el concepto IMA (Integrated Modular Avionic) Los sistemas particionados estan siendo implementados en el sector aeronautico bajo el concepto de IMA. Estandar ARINC-653 que define varios conceptos una plataforma software particionada, su planificador, su sistema de comunicación y un API de servicios. ORK+/XtratuM - PFC - A. Esquinas

4 ORK+/XtratuM - PFC - A. Esquinas
Virtualización Virtualización es la creación de una versión virtual de algún recurso tecnológico, como puede ser una plataforma de hardware, un dispositivo de almacenamiento u otros recursos. Una maquina virtual es una abstracción del computador que se requiere. Virtualización completa: visión completa de todo el computador. Virtualización parcial: la visión es solo de una parte de la plataforma. posible declaración de una API (paravirtualización). Un hipervisor (o monitor de maquina virtual, VMM) es una plataforma que aplica diversas técnicas de control de virtualización para utilizar diferentes sistemas operativos en una misma computadora. Otro concepto conocer es la virtualización Completa: la abstracción es una copia. La visión es exactamente la misma que la original Parcial: Virtual address memory ORK+/XtratuM - PFC - A. Esquinas

5 ORK+/XtratuM - PFC - A. Esquinas
Objetivos Proporcionar una plataforma, de código abierto, que permita la ejecución de aplicaciones realizadas en Ada con distintos niveles de criticidad en un mismo computador. Disponer de un conjunto de herramientas de compilación que ayuden a la depuración. Evaluar el rendimiento de la nueva plataforma. Explicar lo de modo usuario y modo supervisor. La plataforma hardware utilizada es un procesador LEON2 desarrollado por la ESA y la empresa privada Gaisler. El procesador LEON2 se basa en la arquitectura SPARC v8 de tipo RISC. ORK+/XtratuM - PFC - A. Esquinas

6 ORK+/XtratuM - PFC - A. Esquinas
Hipervisor de código libre diseñado para satisfacer requisitos de tiempo real en sistema empotrados. Paravirtualizado. Ofrece una API para acceder a los servicios virtualizados. Ofrece aislamiento temporal y aislamiento espacial fuerte entre particiones. Sistema de comunicación entre particiones. Particiones del sistema. Servicios restringidos a particiones en modo normal. Desarrollado por la Universidad Politécnica de Valencia (UPV) XtratuM es la primera pieza del puzzle. Paravirtualizado: La parte virtualizada del procesador es accesible mediante un API. Explicar aislamiento. Se asegura que una partición no pueda consumir tiempo de otra y espacial regiones de memoria. Dos tipos de particiones. Supervisoras o del sistema y normales Todo expuesto en un fichero de configuración para todo sistema que haga uso de XtratuM ORK+/XtratuM - PFC - A. Esquinas

7 ORK+/XtratuM - PFC - A. Esquinas
ORK+ es un sistema operativo de tiempo real, de tamaño reducido y alto rendimiento. Proporciona soporte restringido de tareas. Implementa el perfil de Ravenscar. Salvo dos excepciones: Temporizadores de tiempo de ejecución Cuotas de tiempo para grupos de tareas. Soporta aplicaciones escritas en Ada 2005 que cumplan las restricciones impuestas por el perfil de Ravenscar. Desarrollado por la Universidad Politécnica de Madrid. Bajo licencia de código libre. Pieza de puzzle El perfil de ravenscar es un conjunto de restricciones sobre el lenguaje Ada. No permite la creación de tareas en tiempo de ejecución. ORK+/XtratuM - PFC - A. Esquinas

8 Adaptación de ORK+ Integración ORK+/XtratuM en GNAT
Integración ORK+ en GNAT Integración ORK+/XtratuM en GNAT Integración de ORK en el compilador GNAT. Front-end y run-time de Ada desarrollado por GNU. Parte del compilador GCC Dado que parte del hardware es virtualizada por el Hypervisor XtratuM es necesario modificar toda la capa de software de mas bajo nivel. Rutinas realizadas en Ensamblador: Cambio de contexto, Manejo de Coma flotante, Manejador comun de interrupciones. parte del kernel que interactuaba con el hardware ORK+/XtratuM - PFC - A. Esquinas

9 ORK+/XtratuM - PFC - A. Esquinas
Arq. software ORK+ Arquitectura original del kernel ORK+. Todos los paquetes realizados en Ada. Bajo nivel y alto nivel en paquetes de Ada. Junto con el interfaz que proporcionan. Relojes de , planificaci´no, salida seria, t ORK+/XtratuM - PFC - A. Esquinas

10 Arq. software ORK+/XtratuM
Interfaz con XtratuM: XtratuM proporciona un API para el lenguaje C Uso de “Pragma Import” para definir usar las funciones desde el lenguaje Ada Creación de un paquete de adaptación de la API: System.BB.XtratuM. Modifica la capa mas cercana al hardware. Rutinas de bajo nivel. Capa de abstracción de hardware en Ada. El paquete de declaración de interrupciones Los perifericos como los relojes son virtualizados. ORK+ en modo usuario ORK+/XtratuM - PFC - A. Esquinas

11 ORK+/XtratuM - PFC - A. Esquinas
Adaptación de ORK+ Interfaz con XtratuM: XtratuM proporciona un API para el lenguaje C. Uso de “Pragma Import” para definir usar las funciones desde el lenguaje Ada. Creación de un paquete de adaptación de la API: System.BB.XtratuM. Modifica la capa mas cercana al hardware. Rutinas de bajo nivel. Capa de abstracción de hardware en Ada. ORK+/XtratuM - PFC - A. Esquinas

12 ORK+/XtratuM - PFC - A. Esquinas
Cambio de Contexto Rutina de bajo nivel. Escrita en lenguaje ensamblador. Necesario guardar el contexto de la tarea saliente y recuperar el de la tarea entrante. Ventana de registros utilizadas. Registros globales. Registro de estado del procesador. Contador de programa Registro Y. Registros de coma flotante. XtratuM virtualiza el control sobre la ventanas de registros menos la actual. Además del registro de estado. Necesario utilizar los servicios proporcionados desde la rutina de cambio de contexto. Pertenece a la parte protegida. Ventana de registros es un mecanismo de registros que utiliza la arquitectura SPARC sobre la que se basa el procesador LEON2. Utilización de un trap para pedir servicio a XtratuM ORK+/XtratuM - PFC - A. Esquinas

13 ORK+/XtratuM - PFC - A. Esquinas
Cambio de Contexto XtratuM virtualiza el control sobre la ventanas de registros menos la actual. Además del registro de estado. Necesario utilizar los servicios proporcionados desde la rutina de cambio de contexto. ORK+/XtratuM - PFC - A. Esquinas

14 ORK+/XtratuM - PFC - A. Esquinas
Temporización En los sistemas particionados aparece el concepto de Tiempo de Partición. El reloj de tiempo de partición solo avanza cuando la partición esta en ejecución. Un reloj por partición. En los sistemas particionados aparece el concepto de Tiempo de Partición. El reloj de tiempo de partición solo avanza cuando la partición esta en ejecución. Un reloj por partición. ORK+/XtratuM - PFC - A. Esquinas

15 ORK+/XtratuM - PFC - A. Esquinas
Temporización Se utilizan los relojes proporcionados por XtratuM a través de su API. Utilización del tiempo de partición para controlar los relojes de tiempo de partición y las cuotas de grupo. Utilización del reloj de tiempo absoluto para sentencias “delay until” y eventos temporizados. ORK+/XtratuM - PFC - A. Esquinas

16 ORK+/XtratuM - PFC - A. Esquinas
Temporización En los sistemas particionados aparece el concepto de Tiempo de Partición. El reloj de tiempo de partición solo avanza cuando la partición esta en ejecución. Un reloj por partición. Se utilizan los relojes proporcionados por XtratuM a través de su API. Utilización del tiempo de partición para controlar los relojes de tiempo de partición y las cuotas de grupo. Utilización del reloj de tiempo absoluto para sentencias “delay until” y eventos temporizados. Temporizador de tiempo transcurrido ORK+/XtratuM - PFC - A. Esquinas

17 Manejo de Interrupciones
XtratuM virtualiza todos los “traps” a cada partición. Interrupciones y excepciones. XtratuM utiliza la tabla de “traps” de cada partición de la misma forma que lo haría el procesador LEON2. El registro base de la tabla de “traps” es virtualizado por XtratuM a cada partición. Añade un total de 32 interrupciones nuevas. Llamadas interrupciones virtuales. Los vectores de “traps” de las nuevas interrupciones van a continuación de la tabla de “traps” definida para el procesador LEON2. XtratuM virtualiza todos los “traps” a cada partición. Interrupciones y excepciones. XtratuM utiliza la tabla de “traps” de cada partición de la misma forma que lo haría el procesador LEON2. El registro base de la tabla de “traps” es virtualizado por XtratuM a cada partición. Añade un total de 32 interrupciones nuevas. Llamadas interrupciones virtuales. Los vectores de “traps” de las nuevas interrupciones van a continuación de la tabla de “traps” definida para el procesador LEON2. ORK+/XtratuM - PFC - A. Esquinas

18 Manejo de Interrupciones
XtratuM virtualiza todos los “traps” a cada partición. Interrupciones y excepciones. XtratuM utiliza la tabla de “traps” de cada partición de la misma forma que lo haría el procesador LEON2. El registro base de la tabla de “traps” es virtualizado por XtratuM a cada partición. Añade un total de 32 interrupciones nuevas. Llamadas interrupciones virtuales. Los vectores de “traps” de las nuevas interrupciones van a continuación de la tabla de “traps” definida para el procesador LEON2. Para el manejo de excepciones, como el caso de Floating-point es necesario indicar a XtratuM (Health Monitoring) que quieres recibir esa tipo de excepción. ORK+/XtratuM - PFC - A. Esquinas

19 Sistema de compilación
El proceso de compilación de una partición. Archivos de la aplicación, archivo configuración y especificaciones de ORK Se monta consiguiendo el código de elaboración. Encima montador .ali y .a Enlazador resuelve los símbolos no definidos en la aplicación, En este caso todos los símbolos importados del API de XtratuM y lo enlaza con la librería de XtratuM. El script de enlazado tiene que coincidir con la región del mapa de memoria asociado para esta partición según la configuración del sistema. El fichero de inicialización es utilizado para saltar a la etiqueta de entrada definida en Ada. Además se pre-inicializa la tabla de vectores de “trap” ORK+/XtratuM - PFC - A. Esquinas

20 ORK+/XtratuM - PFC - A. Esquinas
Evaluación El principal problema de ejecutar sobre un sistema particionado es la posible pérdida de rendimiento. Sobrecarga producida por el hipervisor: Cambios de partición. Virtualización de interrupciones. Uso de hiperllamadas. Ejemplo: Acceder al registro de estado (PSR). Como no esta disponible toda la arquitectura no es posible leer directamente. Realizar petición de servicio a XtratuM Hipercall, llamada al hipervisor. ORK+/XtratuM - PFC - A. Esquinas

21 ORK+/XtratuM - PFC - A. Esquinas
Caso de prueba Medición de la sobrecarga introducida por la ejecución de la prueba sobre la nueva plataforma y la plataforma original. Utilización de medidas indirectas. Las medidas se obtienen de los resultados de las prueba. No intrusiva. La prueba consiste en medir la perdida de rendimiento de una tarea que ejecuta una carga de trabajo. Hay otra tarea que introduce la perturbación. Se usa una tercera que recoge las medidas. ORK+/XtratuM - PFC - A. Esquinas

22 Descripción del escenario
Lector: Prioridad alta. Periódicamente obtiene el valor del contador y lo almacena. Perturbación: Tarea periódica con prioridad media. El intervalo de interrupción es modificado para que interrumpa n veces. Carga de trabajo: Baja prioridad. Continuamente incrementa un contador. ORK+/XtratuM - PFC - A. Esquinas

23 Resultados Periodo Tarea Periodica (ms) 1000 500 100 50 10 5 1 Media
Maximo Min Direrencia 495 4996 10615 55604 111844 554947 Diff (PR1) 0,00% 0,05% 0,11% 0,56% 1,12% 5,55% ORK+ sobre procesador Leon2 Periodo Tarea Periodica (ms) 1000 500 100 50 10 5 1 Media Maximo Min Direrencia 2437 21994 46442 242010 486474 Dif. (PR2) 0,00% 0,02% 0,22% 0,46% 2,42% 4,87% 24,43% Dif. ejecución nativa (PR3) 0,03% 0,19% 0,38% 1,89% 3,80% 20,00% Ork+ sobre el hypervisor Xtratum 35mips Perdida de rendimiento comparada con el caso óptimo donde no existe perturbación. PR3 perdida de rendimiento por tener XtratuM. Sobrecarga neta. ORK+/XtratuM - PFC - A. Esquinas

24 ORK+/XtratuM - PFC - A. Esquinas
Resultados Sector espacial normalmente, como mucho 10ms con estos procesadores. Sobrecarga grande para 1ms pero frecuencia muy alta para estos tipos de procesadores rendimientos ~= mips ORK+/XtratuM - PFC - A. Esquinas

25 ORK+/XtratuM - PFC - A. Esquinas
Conclusiones Combinando ORK+ con XtratuM se pone a disposición una plataforma software completamente funcional que permite la ejecución de aplicaciones de tiempo real escritas en Ada, con distintos niveles de criticidad, sobre la misma plataforma hardware. Siguiendo el concepto IMA. Una plataforma gratuita, y de código libre, con la que poder familiarizarse e investigar en entornos universitarios, y que posibilita el uso de sistemas particionados en proyectos de código libre. El comportamiento temporal de las aplicaciones que se ejecutan en un entorno de programación jerárquica como ORK+ / XtratuM pueden ser analizados estáticamente, utilizando una extensión de los métodos de análisis de tiempo de respuesta. La nueva plataforma ha sido sometida a continuas pruebas durante todo el desarrollo, tanto funcionales como de rendimiento. La sobrecarga inducida por ejecutar sobre el hipervisor XtratuM es pequeña teniendo en cuenta la velocidad de ejecución de los procesadores LEON2. Los beneficios de obtener un sistema particionado superan las pérdidas producidas. ORK+/XtratuM - PFC - A. Esquinas

26 ORK+/XtratuM - PFC - A. Esquinas
Trabajo futuro Adaptar ORK+ a XtratuM 3 para Leon3. El soporte que LEON2 provee para el aislamiento espacial es bastante primitiva. Consiste en un conjunto reducido de registros valla. XtratuM 3 funciona sobre el procesador LEON3, que gracias al uso de una MMU completamente funcional, asegura el aislamiento espacial. Comunicación entre particiones. XtratuM ofrece un servició de comunicación entre particiones que sigue el estándar ARINC-653. La implementación de este sistema de comunicación permitiría comunicación entre las particiones. Adaptar ORK+ a plataformas multiprocesador. La evolución natural de los procesadores es la adición de más cores a su arquitectura. Salvando diferencias el sector aeroespacial sigue la misma evolución, por ello es necesario ofrecer la plataforma para sistemas multiprocesador. Actualmente las particiones son independientes entre si. Universidad de valencia desarrolla version para multicores, seria interesante Ada 2012 perfil para multiprocesadores . Ravenscar multiprocesadores. ORK+/XtratuM - PFC - A. Esquinas

27 ORK+/XtratuM - PFC - A. Esquinas
FIN Gracias por su atención Ángel Esquinas Fernández .: ORK+/XtratuM - PFC - A. Esquinas


Descargar ppt "Adaptación del Sistema Operativo ORK+ al hipervisor XtratuM"

Presentaciones similares


Anuncios Google