Вы находитесь на странице: 1из 23

3.

7 Diseo de
software de
arquitectura de
tiempo real

Un sistema de tiempo real es un sistema software


cuyo correcto funcionamiento depende de los
resultados producidos por el mismo y del instante del
tiempo en el que se producen estos resultados.

Un sistema de tiempo real blando o suave es un


sistema cuyo funcionamiento se degrada si los
resultados no se producen de acuerdo con los
requerimientos temporales especificados.
Un sistema de tiempo real duro es un sistema cuyo
funcionamiento es incorrecto si los resultados no se
producen de acuerdo con la especificacin temporal.
Los sistemas de tiempo real estn frecuentemente
dedicados a una nica aplicacin.

Un sistema de tiempo real enfrenta al ingeniero de


sistemas con difciles decisiones sobre el software.
Una vez que el elemento software ha sido asignado,
se establecen los requisitos detallados del software y
debe desarrollarse un diseo fundamental de
software.

Una forma de ver un sistema en tiempo real es como


un sistema de estimo/respuesta. Dado un estimulo de
entrada, el sistema debe producir la correspondiente .
Se puede, por lo tanto, definir el comportamiento de
un sistema de tiempo real haciendo una lista de
estmulos recibidos por el sistema, las respuestas
asociadas y el tiempo real en que dicha respuestas
deben producirse.

Los estmulos pueden pertenecer a dos clases:


Estmulos peridicos.
Ocurren a intervalos de tiempo predecibles.
El sistema examina un sensor cada 50 ms y ejecuta
una
accin dependiendo del valor del sensor.
Estmulos aperidicos.
Ocurren de forma irregular.
Una interrupcin que indica que se ha completado
una
tranfererencia de E/S y que los datos estn
disponibles en
un bfer.

Un sistema de tiempo real tiene que responder a


estmulos que ocurren en diferentes instantes de
tiempo por lo que se tiene que organizar su
arquitectura para que el control sea transferido al
manejador adecuado.
Se disean como un conjunto de procesos
concurrentes que cooperan entre s, para lo cual la
plataforma de ejecucin incluye un sistema operativo
de tiempo real.

La generalidad de este modelo estmulo-respuesta de


un sistema de tiempo real conduce a un modelo
arquitectnico genrico abstracto en el que hay tres
tipos de procesos:
Para cada tipo de sensor, hay un proceso de gestin
del sensor
Los procesos computacionales calculan la respuesta
requerida para el estmulo recibido por el sistema
Los procesos de control de actuadores controlan el
funcionamiento del actuador.

Este modelo permite recoger rpidamente los datos


desde el sensor y permite que su procesamiento y la
respuesta asociada al actuador se realicen ms tarde.
Los lenguajes de programacin desarrollados para
sistemas de tiempo real tienen que incluir facilidades
para acceder al hardware, y debera ser posible
predecir la duracin de operaciones particulares.

Diseo del
Sistema

Los componentes de hardware tiene un mejor


desempeo que los equivalentes de software. Los
cuellos de botella en el procesamiento de un sistema
se puede identificar y reemplazar por hardware
evitando as una optimizacin de software caras.
Proveer desempeo a travs de hardware significa
que el diseo de software se puede estructurar por
adaptabilidad y que las consideraciones de
desempeo pasan a un segundo plano.

En etapas tempranas del proceso de desarrollo se


debe tomar en cuenta:
Decisiones de bajo nivel.
Software de soporte.
Cuestiones temporales.

Los eventos deberan ser elementos centrales del


proceso de diseo de software de tiempo real en
lugar de los objetos o funciones.

Hay varias etapas en el proceso de diseo:


Identificar los estmulos que el sistema debe procesar y
las respuestas asociadas.
Para cada estimulo y respuesta asociada, identificar las
restricciones por tiempo que se aplican tanto al
procesamiento del estmulo como al de la respuesta.
Incorporar el procesamiento de estmulos y respuestas
a varios procesos concurrentes.
Para cada estmulo y respuesta, disear algoritmos
para llevar a cabo los clculos requeridos.
Disear un sistema de planificacin de los procesos que
asegure que dichos procesos comienzan a tiempo para
cumplir sus plazos de ejecucin.
Integrar el sistema bajo el control de un sistema
ejecutivo de tiempo real.
Elegir una plataforma de ejecucin para el sistema.

Una vez que se ha elegido la plataforma de ejecucin


para el sistema, se ha diseado una arquitectura para
el proceso y se ha decidido una poltica de
planificacin, puede necesitarse comprobar que se
satisface los requerimientos de tiempo.
La comprobacin se puede hacer mediante el anlisis
esttico del sistema utilizando conocimientos sobre el
comportamiento temporal de los componentes, o
tambin mediante simulacin, pero los diseadores
tienen que hacer suposiciones sobre la probabilidad
de ocurrencia de estos estmulos en un instante de
tiempo concreto.

El orden de las actividades depende del tipo de


sistema y de los requerimientos de su proceso y
plataforma.
Los procesos en un sistema de tiempo real se
coordinarse a travs de mecanismos como
semforos, monitores y regiones criticas que
aseguran la exclusin mutua de recursos.

Es posible que no se pueda usar el desarrollo


orientado a objetos para sistemas de tiempo real
duros porque existe una sobrecarga significativa que
afecta al rendimiento.
Las restricciones temporales pueden implicar que es
mejor implementar algunas funciones en hardware
por el rendimiento.

Modelado
del Sistema
de tiempo
Real

Los sistemas de tiempo real deben responder a


eventos que tienen lugar a intervalos irregulares.
Estos eventos o estmulos a menudo provocan que el
sistema pase a diferentes estado por esta razn el
modelado de mquina de estados se utiliza a menudo
para modelar sistemas de tiempo real.
Los modelos de mquina de estados son una buena
aproximacin independiente del lenguaje .

Un modelo de estados de un sistema supone que el


sistema est en uno de varios estados posibles y que
cuando recibe un estmulo puede producir una
transicin a un estado diferente.
Por ejemplo un sistema que controla una vlvula se
mueve de un estado vlvula abierta de eso sigue a
un estado vlvula cerrada cuando se recibe una
orden del operador.

Programaci
n en
tiempo Real

El lenguaje de programacin utilizado para


implementar un sistema de tiempo real tambin
influye el diseo. Los sistemas de tiempo real duros a
un se programan en el lenguaje ensamblador con el
fin de que se cumplan los tiempo y limites. Tambin
se utilizan lenguajes a nivel de sistemas como C que
permiten la generacin de cdigo eficiente.

El lenguaje ADA se desarrollo originalmente para la


implementacin de sistemas incrustados y tiene
caractersticas como las de manejo de tareas,
excepciones y clausuras de representacin. Sin
embargo la versin original de ADA no era adecuada
para las implementaciones de sistemas de tiempo
real duros. Era imposible especificar tareas de tiempo
limite, por lo cual se tuvo que hacer una revisin al
estar dar ADA de 1983.
Las versin revisada del lenguaje trajo como consigo
tipos protegidos que permitan una implementacin
mas sencilla de las estructuras de datos protegidas y
compartidas, y mas control de
las tareas de
calendarizacin y de temporizacin
Esto condujo a que ADA se considere como un
lenguaje de programacin de tiempo real.

Los problemas fundamentales con un lenguaje de


programacin de tiempo real son:
No es posible especificar el tiempo en el cual los
subprocesos se deben ejecutar.
Es incontrolable la recoleccin de basura
La implementacin de la maquina virtual de Java
varia de una computadora a otra, por lo que el mismo
programa puede tener diferentes comportamientos
en el tiempo.
El lenguaje no permite un anlisis detallado del
espacio del tiempo de ejecucin o del procesador.

Bibliografia
Ian Sommerville. Ingenieria del Software.
Editorial Pearson Addison Wesley 7ta Edicin
Pag 309-331
Ian Sommerville. Ingenieria del Software.
Editorial Addison Wesley Addison Wesley 6ta
Edicin Pag 285-303

Вам также может понравиться