1 / 34

Informática III

Informática III. Arquitectura de Software para aplicaciones de tiempo real estricto. Ejecutivos cíclicos VS. Ejecutivos de prioridad fija. Integrantes: Anibal Barros Porri Lucas Iede Diego Magdalena. Arquitectura de Software para aplicaciones de tiempo real estricto. Introducción.

cala
Download Presentation

Informática III

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informática III Arquitectura de Software para aplicaciones de tiempo real estricto Ejecutivos cíclicos VS. Ejecutivos de prioridad fija Integrantes: Anibal Barros Porri Lucas Iede Diego Magdalena

  2. Arquitectura de Software para aplicaciones de tiempo real estricto Introducción En la práctica existen 2 enfoques basicos de aplicación para el diseño de sistemas de tiempo real, los cuales son: • La arquitectura ejecutiva cíclica • La arquitectura ejecutiva de prioridad fija

  3. Arquitectura de Software para aplicaciones de tiempo real estricto Objetivo principal de diseño • El objetivo principal de diseño de aplicaciones de tiempo real es: la arquitectura debe ser capaz de proporcionar una predicción comprobable de la capacidad del diseño de aplicaciones para satisfacer todas las limitaciones de su tiempo.

  4. Arquitectura de Software para aplicaciones de tiempo real estricto Determinismo y Predictibilidad • El determinismo se usa frecuentemente para describir un sistema en el cual el tiempo de ejecución real y la secuencia es completamente predeterminada y fija para la ejecución entera del sistema. • Si bien es cierto que el determinismo es suficiente para la predictibilidad, el determinismo no es necesario para alcanzar la predictibilidad. Además, • El objetivo especifica la probabilidad de su predictibilidad, pero no necesariamente significa llevar a cabo una prueba. En este caso, comprobabilidad significa que las técnicas de diseño utilizadas deben ser derivables de modelos de ejecución rigurosamente definidos que producen resultados demostrables dentro de las limitaciones del modelo.

  5. Arquitectura de Software para aplicaciones de tiempo real estricto Planificación • La planificación de los recursos de la CPU para sistemas de tiempo real. Se refiere al concepto de poner en secuencia el uso de cualquier recurso compartido cuyo uso involucra satisfacer las limitaciones de tiempo de aplicación. • El diseño tradicional “ejecutivo cíclico” ha captado esta idea en que cada aspecto de la aplicación es estáticamente planificado. • La estructura de “prioridad fija” mediante la programación de tasa monotónica. • La estructura completa del diseño de aplicación será dictada por la elección del algoritmo de planificación entre el ejecutivo cíclico o la prioridad fija. • Para una estructura ejecutiva cíclica, la aplicación está dividida en un set de procedimientos que están asumidos para ser no prioritarios, porque el derecho de prioridad no es requerido para el diseño ejecutivo cíclico de un uniprocesador. • Para el enfoque de prioridad fija, la aplicación está dividida en un set de tareas prioritarias; la decisión de planificación para cada recurso es determinada exclusivamente por la prioridad de las tareas, las cuales son generalmente con derecho de prioridad.

  6. Arquitectura de Software para aplicaciones de tiempo real estricto Sistemas de tiempo real estrictos • Un sistema de tiempo real es un sistema informático que interacciona con su entorno, sobre el que realiza acciones de control que se producen dentro de intervalos de tiempo bien definidos

  7. Arquitectura de Software para aplicaciones de tiempo real estricto Condición para los esquemas de planificación • La condicion que requieren se refiere a la programación (planificación) de los recursos de la CPU. Sin embargo, en un sentido más amplio, es fundamental comprender que la programación se refiere en realidad al concepto de la secuencia del uso de cualquier recurso compartido cuyo uso implica satisfacer las limitaciones de tiempo de aplicación.

  8. Arquitectura de Software para aplicaciones de tiempo real estricto Modelo de procesos simple • La aplicación está compuesta por un conjunto fijo de tareas y se conoce en tiempo de ejecución (estático) • Todas las tareas son periódicas • Las tareas son completamente independientes • Los plazos de respuesta de todas las tareas son iguales a sus periodos • El tiempo de ejecución máximo de cada tarea es conocido y fijo • Todas las sobrecargas del sistema son ignoradas • Modelo de tareas en tiempo real

  9. Arquitectura de Software para aplicaciones de tiempo real estricto Algoritmo de planificación • Un algoritmo de planificación es un código que determina el orden de acceso de las tareas a los recursos del sistema tiempos de uso del procesador, memoria, etc.

  10. Arquitectura de Software para aplicaciones de tiempo real estricto Ciclo principal y ciclo secundario • Si las tareas a ejecutar son periódicas se puede programar un plan de ejecución consistente en un ciclo principal compuesto por varios ciclos secundarios dentro de los cuales se le asigna una cantidad de tiempo a las tareas que se quiera ejecutar.

  11. Arquitectura de Software para aplicaciones de tiempo real estricto Ciclo principal y ciclo secundario

  12. Arquitectura de Software para aplicaciones de tiempo real estricto Generación de la señal de ciclos secundarios • Un diseño común y simple para un ejecutivo cíclico es cargar el período del ciclo menor en una tarea después del temporizador que genera una interrupción cuando llega a cero. Si el sistema se comporta correctamente, el software estará en un estado de espera, haciendo que el ejecutivo cíclico ejecute inmediatamente una o más tareas (secuenciales) cuyos períodos estén listos para comenzar.

  13. Arquitectura de Software para aplicaciones de tiempo real estricto Definición de marco o frame • Se llama marco o frame a cada tarea de la aplicación donde es necesaria para completar su ejecución dentro del período de ciclo menor (secundario). • El término marco se utiliza especialmente en sistemas en los que la duración del ciclo secundario no es una constante.

  14. Arquitectura de Software para aplicaciones de tiempo real estricto Relación de los períodos de todas las tareas • La ejecución de cada tarea individual se llama un ciclo secundario o menor, y la frecuencia del ciclo mayor se establecerá en el mínimo común múltiplo de las frecuencias de cada tarea.

  15. Arquitectura de Software para aplicaciones de tiempo real estricto Cómo se ejecutarían las tareas 1. Manejar la línea de tiempo con una frecuencia que es un múltiplo común de las frecuencias de las dos tareas. 2. Manejar una de las tareas a una frecuencia ligeramente superior a su frecuencia natural (por ejemplo, controlar el sensor de cada 75 ms.). 3. Una combinación de ambos (Ej. manejar la entrada del operador cada 50 ms. y el proceso del sensor cada otrociclo)

  16. Arquitectura de Software para aplicaciones de tiempo real estricto Frame overrun • Un frame overrun es una condición en la que un tiempo de ejecución de la tarea excede su marco. • Un correcto manejo de un marco de retraso es extremadamente difícil. Hay básicamente dos opciones: o bien el ejecutivo cíclico permite que la tarea de superación, lo que puede caer todo el resto de la línea de tiempo, o se aborta la tarea de generación de la superación. Ambos enfoques son peligrosos.

  17. Arquitectura de Software para aplicaciones de tiempo real estricto Ventajas del ejecutivo cíclico • Es el método más determinista o predecible. Esta condición es de las más repetidas en los sistemas de tiempo real. • El planificador cíclico suele ser sencillo y por lo tanto consume poca CPU. Así, pueden planificarse sin problemas procesos que ocupen hasta un 90% del total. • Al ser el sistema determinista, una vez en funcionamiento siempre puede saberse qué va a pasar. Esto no sucede con los planificadores basados en prioridades.

  18. Arquitectura de Software para aplicaciones de tiempo real estricto Cambio de contexto (context switch) • Entre los parámetros clave que afectan al tiempo de respuesta esta el cambio de contextos y la latencia de la interrupción. El cambio de contexto se refiere al tiempo y sobrecarga necesitado para conmutar entre tareas, y la latencia de interrupción es el tiempo que pasa antes de que el cambio sea realmente posible. Otros parámetros afectan al tiempo de respuesta son la velocidad de calculo y el acceso a memorias masivas.

  19. Arquitectura de Software para aplicaciones de tiempo real estricto jitter • Se denomina Jitter (fluctuación) a la variabilidad temporal de un resultado calculado durante el envío de señales, una ligera desviación de la exactitud de la señal de reloj. En general se denomina jitter a un cambio indeseado y abrupto de la propiedad de una señal. Esto puede afectar tanto a la amplitud como a la frecuencia y la situación de fase. El jitter es la primera consecuencia de un retraso de la señal.

  20. Arquitectura de Software para aplicaciones de tiempo real estricto Desventajas del ejecutivo cíclico • Fragilidad de aplicación: es el inconveniente mas grave, producido en un diseño de software. • Manejo de las funciones cuyo plazo de ejecución es largo en comparación con el periodo de la tarea de mas alta cadencia.

  21. Arquitectura de Software para aplicaciones de tiempo real estricto Resumen del ejecutivo cíclico • Un esquema de planificación tiene dos facetas: define un algoritmo para la compartición de recursos, y es un medio de predicción del peor caso del comportamiento de una aplicación que está utilizando esa forma de compartición de recursos. • La mayoría de los sistemas periódicos de tiempo real actuales se implementan utilizan un ejecutivo cíclico. Con este enfoque, el código de aplicación debe empaquetarse en un número fijo de ciclos secundarios, de forma que la ejecución de la secuencia de ciclos secundario llamada "ciclo principal" permita que se cumplan todos los tiempos límite del sistema. Aunque es una estrategia de implementación efectiva para sistemas pequeños, este enfoque cíclico tiene una serie de inconvenientes. • Con el enfoque del ejecutivo cíclico, la ejecución consiste en una secuencia de invocaciones a procedimientos. La noción de proceso (hilo) no se preserva durante la ejecución. Un enfoque alternativo es soportar la ejecución de procesos de forma directa (como es norma en los sistemas operativos de propósito general), y determinar cuál es el proceso que deberá ejecutarse en cada instante de tiempo, mediante uno o más atributos de planificación.

  22. Arquitectura de Software para aplicaciones de tiempo real estricto

  23. Arquitectura de Software para aplicaciones de tiempo real estricto Planificación de prioridades fijas • La planificación de prioridades fijas: es un método estático muy usado. La prioridad es un parámetro relacionado con la urgencia o importancia de la tarea • En todo momento se ejecuta la tarea con mayor prioridad de todas las ejecutables (es decir, no esté retrasado o suspendido) • Las tareas se reparten el procesador de forma dinámica (invisible para el diseñador) • Cada tarea tiene una prioridad • En cada momento se ejecuta la tarea activa de mayor prioridad • Las tareas consideradas críticas para el sistema tienen una alta prioridad, mientras que las tareas menos importantes se ejecutan a menor prioridad. En términos de previsibilidad, es fácil determinar la capacidad de la tarea de mayor prioridad para cumplir con sus plazos, pero la determinación de la previsibilidad de tareas de menor prioridad ha sido, en general es dejada para la fase de prueba del sistema de un proyecto.

  24. Arquitectura de Software para aplicaciones de tiempo real estricto

  25. Arquitectura de Software para aplicaciones de tiempo real estricto

  26. Arquitectura de Software para aplicaciones de tiempo real estricto

  27. Arquitectura de Software para aplicaciones de tiempo real estricto Algoritmo de asignación de prioridad de tasa monotónica • El algoritmo de asignación de prioridad de tasa monotónica consiste en asignar menor prioridad a las tareas de menor periodo, es óptima para el modelo de tareas simples. • El valor al que tiende el límite de utilización es 0,69 cuando N tiende a infinito en la sig. ecuación:

  28. Arquitectura de Software para aplicaciones de tiempo real estricto Instante crítico • El instante crítico es aquel en el que se activan todos los procesos a la vez (esto suele ocurrir en el instante 0). Para la planificación de prioridades estáticas, esta suposición resulta segura; si todos los procesos cumplen sus requisitos de temporización cuando son activados conjuntamente, siempre serán panificables. Existen, sin embargo, conjuntos de procesos que se pueden beneficiar de la elección explícita de sus tiempos de activación de forma que no compartan un instante crítico. Se podría decir que un proceso tiene un desplazamiento con respecto a otros.

  29. Arquitectura de Software para aplicaciones de tiempo real estricto

  30. Arquitectura de Software para aplicaciones de tiempo real estricto Análisis del tiempo de respuesta • Análisis del tiempo de respuesta • Las pruebas basadas en la utilización para FPS tienen 2 inconvenientes: • No son exactas y, • No son realmente aplicables a un modelo de tareas más general • Se verá una forma diferente basada en el cálculo del tiempo de respuesta en el peor caso de cada tarea, Ri y una simple comprobación: R≤D

  31. Arquitectura de Software para aplicaciones de tiempo real estricto Ventajas del algoritmo • 1. La ventaja principal, que afecta en gran medida el costo del ciclo de vida total del sistema, es la previsibilidad de todo el conjunto de las tareas relativas al cumplimiento de los requisitos definidos externamente de la aplicación, incluso cuando estos requisitos están cambiando. Si se determina a través de esta predicción de que la solicitud no cumple con sus requisitos mínimos (es decir, uno o más de las tareas críticas ya no estan seguras de completar en el tiempo), la teoría de la tasa monotónica también proporciona herramientas para analizar el potencial de correctivas acciones, tales como el uso de procesadores adicionales, procesadores más rápidos, o la reducción de la funcionalidad. • 2. Ya se ha señalado que esta técnica no requiere el uso de las relaciones de frecuencia armónica entre las tareas periódicas. Por lo tanto, se hace posible para las tareas periódicas el uso de frecuencias que son naturales a los requisitos de aplicación externa y no sufrir una degradación del rendimiento. • 3. El enfoque de la tasa monotónica permite la estructura de la tarea de la aplicación para reflejar con mayor precisión los requisitos de aplicación, ya que no hay necesidad de romper arbitrariamente las tareas individuales con el fin de cumplir los límites de longitud de la trama. • 4. Una planificación de tasa monotónica exhibe un alto grado de estabilidad, lo que significa que en el caso de una sobrecarga la tarea se perderán sus limitaciones de tiempo predefinidos. Esta estabilidad se deriva del hecho de que, en una sobrecarga, las tareas de mayor prioridad cuya utilización no ha superado la tasa de utilización monótona obligados, se garantiza que continúen asumiendo sus limitaciones de tiempo. Tareas en o por debajo de la prioridad en que se supere esta utilización puede pasar por alto sus limitaciones de tiempo.

  32. Arquitectura de Software para aplicaciones de tiempo real estricto Desventajas del algoritmo • La desventaja más importante resulta de la propiedad de los sistemas de periódicos descrito previamente para el ejecutivo cíclico: las fluctuaciones (jitter) • En general, este modelo no define una restricción de tiempo ajustado en la terminación real de una tarea, asegurando que se complete antes del final de su período. La variabilidad del tiempo de la terminación de una tarea monótonica esta limitado solamente por su período. Como resultado, puede haber una fluctuación (jitter) significativa, generada por el programa sobre todo para una tarea de baja prioridad.

  33. Arquitectura de Software para aplicaciones de tiempo real estricto Conclusiones • Para todas las otras aplicaciones de tiempo real se recomienda el uso del enfoque de prioridad fija utilizando algoritmos con tasa monotónica de prioridad ampliada. Las ventajas generales incluyen el ser capaz de predecir la capacidad de satisfacer las necesidades de respuesta de las aplicaciones, la eficiencia del sistema global resultante de la utilización de la periodicidad natural, no-armónico, la capacidad de generar un sistema que representa un aumento de la separación de la periodicidad y funcionalidad, y una estructura sólida cuando la modificación es necesaria durante el mantenimiento del sistema. • Es más apropiado usar el ejecutivo cíclico para sistemas con tareas periódicas y de tiempo de cómputos conocidos ya que este realizo una planificación muy sencilla que no requiere el uso de interrupciones.

  34. Arquitectura de Software para aplicaciones de tiempo real estricto Fin de la presentación Gracias

More Related