next up previous
Siguiente: Desarrollo de sistemas de Superior: Software libre para el Anterior: El perfil de Ravenscar


El núcleo ORK

En octubre de 1999 la Agencia Espacial Europea lanzó un proyecto para desarrollar un núcleo de tiempo real libre, integrado en el sistema de compilación GNAT (GNU New York University Ada Translator), que permitiera la realización de programas seguros y eficientes en Ada 95 para computadores ERC32 mediante el uso del perfil de Ravenscar. El resultado de este proyecto es el núcleo ORK (Open Ravenscar Real-Time kernel), cuyos rasgos principales se describen a continuación.

Las tareas concurrentes de Ada se implementan en GNAT mediante un conjunto de paquetes de Ada integrados en la biblioteca de ejecución, denominada GNARL (GNU Ada Runtime Library). Esta biblioteca tiene una estructura jerárquica (figura 1), de manera que la mayoría de los paquetes que al forman son independientes del hardware y el sistema operativo subyacentes, y sólo la parte de bajo nivel, denominada GNULL (GNU Low-Level Library) varía con la plataforma de ejecución [#!Giering_SPMamp_94!#].

Figura: Arquitectura del núcleo de ejecución de GNAT
\epsfig{file=gnarl-architecture.eps, width=.7\textwidth}

El núcleo ORK se sitúa en el nivel del sistema operativo en esta estructura. Para su integración con GNAT se ha escrito una versión específica para ORK de los paquetes de GNULL, respetando la interfaz GNULLI, y también se han modificado algunos paquetes de GNARL que no son completamente independientes de la plataforma. También se ha implementado una interfaz que permite invocar las funciones del núcleo desde C (figura 2).

Figura 2: Arquitectura de aplicaciones con ORK
\epsfig{file=ork-architecture.eps, width=.7\textwidth}

ORK está escrito en Ada 95, con la excepción de algunas rutinas de bajo nivel que realizan el cambio de contexto y el tratamiento inicial de interrupciones. El núcleo está organizado como un conjunto de paquetes de Ada (figura 3). Los elementos que dependen directamente del hardware se han agrupado en dos paquetes con el fin de facilitar su transporte a otras arquitecturas. También se han separado en un paquete aparte los parámetros que se pueden configurar (como el intervalo de prioridades o el número máximo e tareas) para adaptar las características del núcleo a cada aplicación.

Figura 3: Estructura de ORK
\epsfig{file=ork-packages.eps, width=.7\textwidth}

ORK se ha diseñado de forma que tenga un comportamiento previsible, con el fin de permitir el análisis temporal de los programas construidos con este núcleo y su eventual certificación para aplicaciones críticas.


next up previous
Siguiente: Desarrollo de sistemas de Superior: Software libre para el Anterior: El perfil de Ravenscar

Download this document: [src.tar.gz][ps.gz][html.tar.gz][dvi.gz]

Open Resources (www.openresources.com)
Last updated: 2000-11-11