next up previous
Siguiente: El perfil de Ravenscar Superior: Software libre para el Anterior: Introducción


Sistemas de tiempo real críticos

Como se ha explicado en la introducción, los sistemas de tiempo real críticos se suelen someter a un proceso de certificación riguroso, que tiene como objetivo llegar a un grado de confianza razonable en el comportamiento del sistema. Para ello se utilizan distintos métodos, según el grado de criticidad del sistema y los requisitos específicos del tipo de aplicación de que se trate 2. En general, se considera que sólo se puede conseguir una confianza adecuada en la corrección del software utilizando técnicas de análisis estático del software, además de las pruebas dinámicas habituales.

El lenguaje de programación empleado es uno de los elementos clave para la utilización de técnicas de análisis estático. Aunque ningún lenguaje puede garantizar por sí solo la corrección de los programas escritos en él, Ada 95 [#!Ada95!#,#!Ada95b!#] es uno de los que facilitan en mayor medida la comprobación de los programas. Ada tiene una semántica bien definida y una sintaxis con un grado de redundancia elevado, que ayuda a detectar muchos errores durante la compilación. Los compiladores se suelen someter a un proceso de validación que asegura su conformidad con el estándar, y el lenguaje se ha empleado con éxito en numerosos sistemas críticos. Además, hay un grupo de trabajo de ISO 3, que se ocupa de definir y revisar periódicamente un conjunto de directrices para el uso de Ada en sistemas críticos, [#!HRG00!#]. Por todos estos motivos, la Agencia Europea del Espacio recomienda el uso de Ada para el software embarcado.

Ada es un lenguaje muy extenso, y no es posible analizar programas escritos en este lenguaje si se utilizan todas sus posibilidades. Por ello, para programar sistemas críticos se suelen definir subconjuntos seguros del lenguaje, de los cuales el más conocido es probablemente el que forma parte de SPARK [#!Barnes97!#], un lenguaje basado en Ada con anotaciones que facilitan el análisis de los programas. El informe sobre sistemas críticos de la ISO proporciona directrices para seleccionar las partes del lenguaje que se deben utilizar en proyectos concretos, según el grado de integridad deseado y las técnicas de análisis que se necesite utilizar. Algunos de los elementos del lenguaje que se suelen restringir en sistemas críticos son los tipos de acceso, la memoria dinámica, la herencia, los manejadores de excepciones, y las tareas. Algunos de estos componentes del lenguaje se empiezan a utilizar en sistemas críticos, sin embargo, a medida que se conoce mejor su funcionamiento y se perfeccionan los métodos de análisis.



Notas al pie

... trate2
Los sistemas embarcados en naves espaciales se suelen considerar críticos con respecto al cumplimiento de su misión (mission-critical).
... ISO3
Organización Internacional de Normalización.

next up previous
Siguiente: El perfil de Ravenscar Superior: Software libre para el Anterior: Introducción

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

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