next up previous
Siguiente: El núcleo ORK Superior: Software libre para el Anterior: Sistemas de tiempo real


El perfil de Ravenscar

Las tareas concurrentes son uno de los elementos de Ada que se han excluido habitualmente de los sistemas de tiempo real críticos. Tradicionalmente se ha considerado que el uso de tareas o threads, en cualquiera de sus formas, hace que la ejecución del programa no sea determinista, y que esto impide analizar de forma adecuada los aspectos temporales de la ejecución de los programas, que son clave en los sistemas de tiempo real [#!Kopetz97!#]. En consecuencia, los sistemas de tiempo real críticos se han diseñado hasta hace poco con un esquema denominado de planificación cíclica. En este esquema el núcleo del sistema operativo se sustituye por un ejecutivo cíclico, que es un procedimiento activado por una señal periódica proveniente de un reloj de hardware, que invoca secuencialmente otros procedimientos que contienen el código correspondiente a cada una las actividades del sistema, en función de un plan de ejecución elaborado de antemano [#!Baker_SPMamp_89!#,#!Locke92!#,#!Zamorano_SPMamp_97a!#].

En los últimos años, sin embargo, se ha producido un avance considerable en los métodos de análisis temporal de sistemas multiprogramados, basado sobre todo en un modelo de multiprogramación en el que las tareas concurrentes se reparten el uso del procesador mediante un método de planificación basado en prioridades fijas [#!Audsley_SPMamp_95!#,#!Liu_SPMamp_73!#,#!Klein_SPMamp_93!#]. Este modelo se ha tenido en cuenta al definir las tareas concurrentes de Ada y su uso en sistemas de tiempo real [#!Ada95!#], por lo que los métodos de análisis de tiempo de respuesta se pueden aplicar de manera muy directa muchos de los programas de tiempo real escritos en Ada [#!Burns_SPMamp_96!#]. Sin embargo, el uso de tareas concurrentes sin ninguna restricción lleva fácilmente a realizar programas difíciles o imposibles de analizar, y hace necesario, por tanto, definir un subconjunto seguro de la parte concurrente de Ada, igual que se suele hacer con la parte secuencial.

El 8th International Real-Time Ada Workshop (IRTAW'8) se celebró en 1997 en Ravenscar (Yorkshire, Inglaterra). En esta reunión se definió un subconjunto de la parte concurrente de Ada 95, denominado perfil de Ravenscar5 4, con intención de permitir el uso de tareas en sistemas de tiempo real críticos [#!Baker_SPMamp_97!#,#!Burns_SPMamp_98!#,#!Dobbing_SPMamp_98!#]. En el perfil se permite utilizar tareas y objetos protegidos en el nivel de biblioteca (es decir, estáticos), una entrada como máximo en objetos protegidos, con una barrera formadas por una variable booleana local, y se permite únicamente el método de planificación con prioridades fijas y techo de prioridad para el acceso a los objetos protegidos. Se prohiben las tareas y objetos protegidos dinámicos, y otros elementos del lenguaje que pueden impedir el análisis del comportamiento temporal de los programas. El perfil se revisó en la siguiente reunión (IRTAW'9) [#!Asplund_SPMamp_99!#], y posteriormente se elaboró una definición refundida [#!Burns99!#], que actualmente forma parte de la guía para sistemas críticos de ISO [#!HRG00!#].

El perfil de Ravenscar está pensado de tal forma que se puede comprobar si un programa cumple sus restricciones al compilarlo, mediante un uso adecuado del pragma Restrictions de Ada. De esta forma es relativamente sencillo sustituir el núcleo de ejecución (run-time system) de Ada por otro más sencillo y robusto, que permita certificar la seguridad de las aplicaciones construidas sobre él. Hay ya una implementación comercial del mismo, denominada Raven, que está basada en el compilador Object Ada de Aonix. La experiencia inicial de los desarrolladores de Raven ha permitido confirmar la utilidad del perfil para la realización de sistemas críticos, y ha aumentado el interés hacia el mismo [#!Dobbing_SPMamp_99!#].



Notas al pie

... Ravenscar54
Posteriormente se definió ``RAVENSCAR'' como acrónimo de Reliable Ada Verifiable Executive Needed for Scheduling Critical Applications in Real-Time.

next up previous
Siguiente: El núcleo ORK Superior: Software libre para el Anterior: Sistemas de tiempo real

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

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