Diseño de software de arquitectura de tiempo real

23
3.7 Diseño de software de arquitectura de tiempo real

description

3.7 Diseño de software de arquitectura de tiempo real

Transcript of Diseño de software de arquitectura de tiempo real

Page 1: Diseño de software de arquitectura de tiempo real

3.7 Diseño de software de arquitectura de tiempo real

Page 2: Diseño 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.

Page 3: Diseño de software de arquitectura de tiempo real

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 especificación temporal.

Los sistemas de tiempo real están frecuentemente dedicados a una única aplicación.

Page 4: Diseño de software de arquitectura de tiempo real

Un sistema de tiempo real enfrenta al ingeniero de sistemas con difíciles decisiones sobre el software. Una vez que el elemento software ha sido asignado, se establecen los requisitos detallados del software y debe desarrollarse un diseño fundamental de software.

Page 5: Diseño de software de arquitectura de tiempo real

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 estímulos recibidos por el sistema, las respuestas asociadas y el tiempo real en que dicha respuestas deben producirse.

Page 6: Diseño de software de arquitectura de tiempo real

Los estímulos pueden pertenecer a dos clases:

Estímulos periódicos. 

Ocurren a intervalos de tiempo predecibles. El sistema examina un sensor cada 50 ms y

ejecuta una acción dependiendo del valor del sensor.

Estímulos aperiódicos. 

Ocurren de forma irregular. 

Una interrupción que indica que se ha completado una tranfererencia de E/S y que los datos están disponibles en un búfer.

Page 7: Diseño de software de arquitectura de tiempo real

Un sistema de tiempo real tiene que responder a estímulos 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 diseñan como un conjunto de procesos concurrentes que cooperan entre sí, para lo cual la plataforma de ejecución incluye un sistema operativo de tiempo real. 

Page 8: Diseño de software de arquitectura de tiempo real
Page 9: Diseño de software de arquitectura de tiempo real

La generalidad de este modelo estímulo-respuesta de un sistema de tiempo real conduce a un modelo arquitectónico genérico abstracto en el que hay tres tipos de procesos:

Para cada tipo de sensor, hay un proceso de gestión del sensor

Los procesos computacionales calculan la respuesta requerida para el estímulo recibido por el sistema

Los procesos de control de actuadores controlan el funcionamiento del actuador. 

Page 10: Diseño de software de arquitectura de tiempo real

Este modelo permite recoger rápidamente los datos desde el sensor y permite que su procesamiento y la respuesta asociada al actuador se realicen más tarde.

Los lenguajes de programación desarrollados para sistemas de tiempo real tienen que incluir facilidades para acceder al hardware, y debería ser posible predecir la duración de operaciones particulares. 

Page 11: Diseño de software de arquitectura de tiempo real

Diseño del Sistema

Los componentes de hardware tiene un mejor desempeño 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 optimización de software caras. Proveer desempeño a través de hardware significa que el diseño de software se puede estructurar por adaptabilidad y que las consideraciones de desempeño pasan a un segundo plano.

Page 12: Diseño de software de arquitectura de tiempo real

En etapas tempranas del proceso de desarrollo se debe tomar en cuenta:

Decisiones de bajo nivel. Software de soporte. Cuestiones temporales.

Los eventos deberían ser elementos centrales del proceso de diseño de software de tiempo real en lugar de los objetos o funciones. 

Page 13: Diseño de software de arquitectura de tiempo real

Hay varias etapas en el proceso de diseño: Identificar los estímulos 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 estímulo como al de la respuesta.

Incorporar el procesamiento de estímulos y respuestas a varios procesos concurrentes. 

Para cada estímulo y respuesta, diseñar algoritmos para llevar a cabo los cálculos requeridos. 

Diseñar un sistema de planificación de los procesos que asegure que dichos procesos comienzan a tiempo para cumplir sus plazos de ejecución.

Integrar el sistema bajo el control de un sistema ejecutivo de tiempo real.

Elegir una plataforma de ejecución para el sistema. 

Page 14: Diseño de software de arquitectura de tiempo real

Una vez que se ha elegido la plataforma de ejecución para el sistema, se ha diseñado una arquitectura para el proceso y se ha decidido una política de planificación, puede necesitarse comprobar que se satisface los requerimientos de tiempo. 

La comprobación se puede hacer mediante el análisis estático del sistema utilizando conocimientos sobre el comportamiento temporal de los componentes, o también mediante simulación, pero los diseñadores tienen que hacer suposiciones sobre la probabilidad de ocurrencia de estos estímulos en un instante de tiempo concreto. 

Page 15: Diseño de software de arquitectura de tiempo real

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 través de mecanismos como semáforos, monitores y regiones criticas que aseguran la exclusión mutua de recursos.

Page 16: Diseño de software de arquitectura de tiempo real

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. 

Page 17: Diseño de software de arquitectura de tiempo real

Modelado del Sistema de tiempo Real

Los sistemas de tiempo real deben responder a eventos que tienen lugar a intervalos irregulares. Estos eventos o estímulos a menudo provocan que el sistema pase a diferentes estado por esta razón el modelado de máquina de estados se utiliza a menudo para modelar sistemas de tiempo real.

Los modelos de máquina de estados son una buena aproximación independiente del lenguaje .

Page 18: Diseño de software de arquitectura de tiempo real

Un modelo de estados de un sistema supone que el sistema está en uno de varios estados posibles y que cuando recibe un estímulo puede producir una transición a un estado diferente. 

Por ejemplo un sistema que controla una válvula se mueve de un estado “válvula abierta” de eso sigue a un estado “válvula cerrada” cuando se recibe una orden del operador.

Page 19: Diseño de software de arquitectura de tiempo real
Page 20: Diseño de software de arquitectura de tiempo real

Programación en tiempo Real

El lenguaje de programación utilizado para implementar un sistema de tiempo real también influye el diseño. 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. También se utilizan lenguajes a nivel de sistemas como C que permiten la generación de código eficiente.

Page 21: Diseño de software de arquitectura de tiempo real

El lenguaje ADA se desarrollo originalmente para la implementación de sistemas incrustados y tiene características como las de manejo de tareas, excepciones y clausuras de representación. Sin embargo la versión 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 revisión al estar dar ADA de 1983.

Las versión revisada del lenguaje trajo como consigo tipos protegidos que permitían una implementación mas sencilla de las estructuras de datos protegidas y compartidas, y mas control de las tareas de calendarización y de temporización

Esto condujo a que ADA se considere como un lenguaje de programación de tiempo real.

Page 22: Diseño de software de arquitectura de tiempo real

Los problemas fundamentales con un lenguaje de programación de tiempo real son:

No es posible especificar el tiempo en el cual los subprocesos se deben ejecutar.

Es incontrolable la recolección de basura

La implementación 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 análisis detallado del espacio del tiempo de ejecución o del procesador.

Page 23: Diseño de software de arquitectura de tiempo real

Bibliografia Ian Sommerville. Ingenieria del Software.

Editorial Pearson Addison Wesley 7ta Edición Pag 309-331

Ian Sommerville. Ingenieria del Software. Editorial Addison Wesley Addison Wesley 6ta Edición Pag 285-303