7
CAPITULO 15 DISEÑO PARA SISTEMAS DE TIEMPO REAL Debido a que el software de tiempo real debe operar bajo restricciones de rendimiento muy rigurosas, el diseño del soft está conducido frecuentemente, tanto por la arquitectura del hard como por la del soft, por las características del sistema operativo, por los requisitos de la aplicación y, por lo tanto por los extras del lenguaje de programación como por aspectos de diseño. 15.1 CONSIDERACIONES SOBRE LOS SISTEMAS. Un sistema de tiempo real (STR) debe integrar hardware, software, personas y elementos de una base de datos, para conseguir adecuadamente un conjunto de requisitos funcionales y de rendimiento. El ingeniero en sistemas debe definir funciones y rendimiento entre los elementos del sistema. El problema para los STR es realizar la asignación adecuada. El rendimiento en tiempo real es frecuentemente tan importante como la función, pero las decisiones de asignación relativas al rendimiento son, frecuentemente, difíciles para hacer con seguridad. Características que diferencian el desarrollo de software de tiempo real de otros esfuerzos de ingeniería del soft.: - El diseño de un STR está limitado por recursos: el recurso primario de un STR es el tiempo. ( es esencial terminar una tarea dentro de un tiempo determinado). El tamaño de memoria se tiene que edecuar al tiempo necesario para lograr los objetivos del sistema. - Los STR son compactos, aunque complejos: - Los STR funcionan a menudo sin la presencia de un usuario: el STR debe detectar problemas que conduzcan a fallos y automáticamente se recuperen de estos problemas antes de que haya daños en los datos y en el entorno controlado. 15.2 SISTEMAS DE TIEMPO REAL. Los STR generan alguna acción en respuesta a sucesos externos. Para ello ejecutan una adquisición y control de datos a alta velocidad bajo varias restricciones de tiempo y fiabilidad. Debido a que esas restricciones son muy rigurosas, los STR están frecuentemente dedicados a una única aplicación. 1

CAPITULO_15 DISEÑO PARA SISTEMAS DE TIEMPO REAL

Embed Size (px)

Citation preview

Page 1: CAPITULO_15 DISEÑO PARA SISTEMAS DE TIEMPO REAL

CAPITULO 15

DISEÑO PARA SISTEMAS DE TIEMPO REAL

Debido a que el software de tiempo real debe operar bajo restricciones de rendimiento muy rigurosas, el diseño del soft está conducido frecuentemente, tanto por la arquitectura del hard como por la del soft, por las características del sistema operativo, por los requisitos de la aplicación y, por lo tanto por los extras del lenguaje de programación como por aspectos de diseño.

15.1 CONSIDERACIONES SOBRE LOS SISTEMAS.Un sistema de tiempo real (STR) debe integrar hardware, software, personas y elementos de una base de datos, para conseguir adecuadamente un conjunto de requisitos funcionales y de rendimiento. El ingeniero en sistemas debe definir funciones y rendimiento entre los elementos del sistema. El problema para los STR es realizar la asignación adecuada. El rendimiento en tiempo real es frecuentemente tan importante como la función, pero las decisiones de asignación relativas al rendimiento son, frecuentemente, difíciles para hacer con seguridad. Características que diferencian el desarrollo de software de tiempo real de otros esfuerzos de ingeniería del soft.:- El diseño de un STR está limitado por recursos: el recurso primario de un STR es el

tiempo. ( es esencial terminar una tarea dentro de un tiempo determinado). El tamaño de memoria se tiene que edecuar al tiempo necesario para lograr los objetivos del sistema.

- Los STR son compactos, aunque complejos: - Los STR funcionan a menudo sin la presencia de un usuario: el STR debe detectar

problemas que conduzcan a fallos y automáticamente se recuperen de estos problemas antes de que haya daños en los datos y en el entorno controlado.

15.2 SISTEMAS DE TIEMPO REAL.Los STR generan alguna acción en respuesta a sucesos externos. Para ello ejecutan una adquisición y control de datos a alta velocidad bajo varias restricciones de tiempo y fiabilidad. Debido a que esas restricciones son muy rigurosas, los STR están frecuentemente dedicados a una única aplicación. (operativa militar, investigación médica, automatización industrial)

15.2.1. ASPECTOS DE INTEGRACION Y RENDIMIENTO.Un STR enfrenta al ingeniero de sistemas con difíciles decisiones sobre el hardware y sobre el software. Aspectos relativos al diseño de tiempo real:- la coordinación entre las tareas de tiempo real- el procesamiento de interrupciones del sistema- el manejo de entradas/salidas para asegurar que no se pierden datos- la especificación de las ligaduras de tiempo externas del sistema- asegurar la precisión de su base de datos.Rendimiento: en un STR se mide como una o más características relativas al tiempo y también a otras medidas, como la tolerancia al fallo. El rendimiento de un STR se determina principalmente por el tiempo de respuesta del sistema y su radio de transferencia de datos.Tiempo de respuesta: es el tiempo en el que un sistema debe detectar un suceso interno o externo y responder con una acción. Entre los parámetros clave que afectan al tiempo de respuesta está el cambio de contexto y la latencia de la interrupción. Otros parámetros que afectan al tiempo de respuesta son la velocidad de calculo y al acceso a memorias masivas.Cambio de contexto: se refiere al tiempo y sobre carga para conmutar entre tareas.Latancia de interrupción: es el tiempo que pasa antes de que el cambio sea realmente posible.

1

Page 2: CAPITULO_15 DISEÑO PARA SISTEMAS DE TIEMPO REAL

Velocidad de trasnferencia de datos: indica con que rapidez se introducen o salen del sistema los datos series o paralelos, tanto analógicos como digitales.Sistemas de tiempo real:- son parte del diseño de los mismos: el rendimiento del dispositivo de e/s, la latancia del

bus, el tamaño del buffer, el rendimiento del disco y una serie de otros factores.- Se necesitan normalmente para procesar un flujo continuo de llegada. El diseño debe

asegurar que no falte ningún dato.- Debe responder a los sucesos que son asíncronos. Por lo tanto la secuencia de llegada y el

volumén de datos, no pueden predecirse de antemano.- Hacen una especial demanda de fiabilidad, reinicialización y recuperación.- Contienen mecanismos de restauración y recuperación de fallos y frecuentemente, tienen

incorporados redundancias para asegurar la restauración.

15.2.2. MANEJO DE INTERRUPCIONESInterrupción: es un estímulo externo al STR. Debe establecerse prioridades e interrupciones prioritarias dado que se presentan múltiples estímulos. El manejo de interrupciones no sólo supone almacenar información de forma que la computadora pueda establecer correctamente la tarea interrumpida, sino también evitar interbloqueos y bucles sin fin.Manejo de interrupción:- se salva el estado del programa interrumpido- se determina la naturaleza de la interrupción- se sirve la interrupción- se restaura el estado del programa interrumpido- se vuelve al programa interrumpido. Suceso: es cualquier ocurrencia que necesita un servicio inmediato y puede ser generado por hardware o por software. Se salva el estado del programa interrumpido y se pasa el control a una rutina de servicio de interrupción, que difurca al software apropiado para el manejo de la interrupción. Al terminar el servicio de la interrupción, se restaura el estado de la máquina y continúa el flujo normal del procesamiento.

15.2.3 BASES DE DATOS DE TIEMPO REAL.Las b.d distribuidas constituyen el método preferido en los sistemas de tiempo real, debido a que la multitarea es muy común y los datos se procesan frecuentemente en paralelo. Las tareas individuales pueden acceder a sus datos de forma rápida, fiable y con menos cuello de botella. Aunque la redundancia de los datos en las B.D Distribuidas , mejora el tiempo de respuesta también producen problemas logísticoas y de sobrecarga, puesto que las copias de los archivos deben ser actualizadas. El uso de esta base introduce el problema de control de concurrencia – implica la sincronización de las bases de datos de forma que todas las copias tengan la misma y correcta información disponible para los accesos – Método convencional para el control de concurrencia- conocido como bloqueo y marcas de tiempo:1. la b.d es bloqueada de forma que se asegure el control de concurrencia: no se permite E/S.2. Se realiza la actualización requerida.3. La b.d es desbloqueada4. Los archivos son validados para asegurar que todas las actualizaciones se han hecho

correctamente.5. Se reconoce que la actualización se ha terminado. Todas las tareas de bloqueo están

supervisadas por un reloj maestro.Se han desarrollado algunas técnicas para aumentar la velocidad de actualización y resolver el problema de concurrencia,. Una de estás, llamada protocolo del escritor exclusivo, mantiene la consistencia de los archivos replicados permitiendo que sólo un atarea de escritura actualice un archivo en exclusiva.

15.2.4 SISTEMAS OPERATIVOS DE TIEMPO REAL2

Page 3: CAPITULO_15 DISEÑO PARA SISTEMAS DE TIEMPO REAL

Existen dos clases de sistemas operativos que se utilizan para los SRT: 1. Uno diseñado exclusivamente para aplicaciones de tiempo real2. Sistemas operativos de propósito general que se han reforzado para suministrar

capacidades de tiempo real. Un sist. operativo de tiempo real debe dar un mecanismo de prioridades que permita que las interrupciones de prioridad alta tengan precedencia sobre la menos importantes. Para garantizar el tiempo de respuesta requerido, in sist. operativo de tiempo real debe tener un mecanismo de bloqueo de memoria, es decir mantener unos mínimos programas en memoria principal, de forma que se evite la sobrecarga del almacenamiento en ella. Para determinar que tipo de sist. operativo es más adecuado deben evaluarse medidas de la calidad de sistemas operativos en tiempo real como el tiempo de cambio de contexto y el de latancia de interrupción.Tiempo de cambio de contexto: tiempo que el sistema operativo se toma para almacenar el estado de la computadora y los contenidos de los registros, de forma que pueda volver a la tarea de procesamiento después de servir a la interrupción.Latancia de interrupción: tiempo máximo que pasa antes de que el sistema pueda conmutar a una tarea, ocurre porque en un sistema operativo existen frecuentemente caminos de procesamiento críticos, en los que no se puede volver a entrar, que deben ser terminados antes de que pueda procesarse una interrupción.

15.2.5. LENGUAJES DE TIEMPO REALCaracterísticas de los lenguajes de tiempo real:- incluyen capacidad de multitarea- incluyen las construcciones para implementación directa de funciones de tiempo real- incluyen las características modernas de programación que ayuden a asegurar la

corrección del programa. Existen aplicaciones empotradas que se escriben en un lenguaje que da un soporte de tiempo real suficiente para la ejecución del programa en tiempo real. El soporte de tiempo de ejecución requiere menos memoria que un sistema operativo y puede ser adaptado a una aplicación, incrementando así el rendimiento.

15.2.6 SINCRONIZACION Y COMUNICACIÓN DE TAREAS.Un sistema de multitarea debe suministrar un mecanismo por el que las tareas se pasen información unas a otras, así como para asegurar su sincronización. Para estas funciones, los sistemas operativos y los lenguajes con soporte de tiempo real, utilizan frecuentemente semáforos de colas, buzones o sistemas de mensajes.semáforos de colas: suministran sincronización y señalización pero no contiene información. Son primitivas de soft que ayudan a gestionar el tráfico. Suministran un método para dirigir varias colas. Los semáforos coordinan las tareas en espera sin dejar que las tareas o recursos interfieran entre sí. Los semáforos se utilizan para implementar y gestionar buzonesbuzones: no señalizan la información sino que la contienen. Se almacenan temporalmente en lugares (buffer o almacenes de mensajes) para enviar mensajes de un proceso a otro. Un proceso produce una información, la sitúa en el buzón y luego señala a un proceso consumidor que hay una información en el buzón para que la utilice.Algunos sistemas de tiempo real suministran un lugar para enviar y recibir referencias a los datos del buzón. Esto elimina la necesidad de transferir todos los datos, ahorrando así tiempo y sobrecarga.sistemas de mensaje: son similares a los semáforos excepto en que ellos llevan información asociada. Con un sist. de mensajes , un proceso envía un mensaje a otro. El último se activa entonces automáticamente por el sistema de soporte de tiempo de ejecución o sistema operativo para que procese el mensaje. Tal sistema incurre en sobrecarga debido a la transferencia real de la información, pero suministra una mayor flexibilidad y facilidad de uso.

3

Page 4: CAPITULO_15 DISEÑO PARA SISTEMAS DE TIEMPO REAL

15.3. ANALISIS Y SIMULACION DE SISTEMAS DE TIEMPO REAL.Atributos dinámicos que no pueden separarse de los requisitos funcionales de un sistema de tiempo real:

- manejo de interrupciones y cambio de contexto.- Tiempo de respuesta- Razón de transferencia de datos y tiempo invertido- Asignación de recursos y manejo de prioridades- Sincronización de tareas y comunicación entre tareas.

El análisis de sistemas de tiempo real requiere modelización y simulación que permitan al ingeniero establecer aspectos de tiempo y tamaño.

15.3.1 HERRAMIENTAS MATEMATICAS PARA EL ANALISIS DE SISTEMAS DE TIEMPO REALExisten herramientas matemáticas para el análisis de sistemas de tiempo real que calculan:1. El número esperado de visitas a un proceso.2. El tiempo gastado en el sistema cuando el procesamiento comienza en un proceso

específico.3. El tiempo total empleado por el sistema.

15.3.2 TECNICAS DE SIMULACION Y MODELADOSe utilizan para construir un prototipo, ejecutarlo y de esta manera ganar conocimiento sobre el comportamiento del sistema.Enfoque de I-Login (empresa que desarrolla herramientas para ing. en sistemas) para la simulación y modelado de sistemas de tiempo real:Planeamiento conceptual: Los conceptos funcionales se tratan mediante actividades que representan las capacidades del proceso del sistema. Este planeamiento funcional del sistema se captura mediante diagramas de actividad, parecidos a los diagramas de flujos convencionales. Los aspectos de control, se tratan mediante diagramas de estado. Ambos diagramas proporcionan el modelo conceptual.Planeamiento físico: es describir el sistema en una perspectiva física (implementación) y los medios para asegurar que el sistema este implementado de forma que se corresponda con la especificación. Se debe describir la descomposición física del sistema y sus relaciones con el modelo conceptual.Análisis y simulación: una vez construído el modelo conceptual, se puede analizar y probar totalmente. Debemos asegurarnos que el modelo es sintácticamente correcto. Todas las pruebas, normalmente, reciben el nombre de pruebas de consistencia y de compleción y la mayoría de ellas son análogas a la comprobación realizada por un compilador antes de la verdadera compilación de un lenguaje de programación.Ejecuci ón de escenarios: el ingeniero debe crear y ejecutar un escenario que le permita observar el comportamiento del modelo antes de que el sistema este realmente construído. La ejecución de un escenario simula la ejecución del sistema en tiempo real y sigue la pista de la información dependiente del tiempo.Programación de simulaciones. Traducción automática a código

15.4 DISEÑO EN TIEMPO REAL.Debe incorporar todos los conceptos asociados con el software de alta calidad. Además posee un conjunto de problemas para el diseñador:

- Representación de interrupciones y cambio de contexto- Concurrencia, tal como se manifiesta en multitarea y multiporcesamiento- Comunicación y sincronización entre tareas.- Amplias variaciones en las tasas de datos y comunicación representación de las

restricciones de tiempo- Requisitos especiales para manejo de errores y recuperación de fallos.

4

Page 5: CAPITULO_15 DISEÑO PARA SISTEMAS DE TIEMPO REAL

- Procesamiento asíncrono.

Principios de modelado:Atomicidad explícitaEntrelazadoHistorias y justicia no determinantePrincipio de sistema cerradoEstructuración del estado

5