Caracterización Sistemas de Tiempo Real respuestas deben ser válidas (correctness) y dentro de plazos (Timeliness) impuestos por el ambiente. Sistemas No de Tiempo Real respuestas válidas en plazos aceptables, no especificados. Una Definición [Audsley90]: Un Sistema de Tiempo Real es un sistema que produce reacciones a estímulos oriundos del ambiente dentro de intervalos de tiempos impuestos por el ambiente (es incluyendo entre estos estímulos el pasar del tiempo físico).
Caracterización Fuerte acoplamiento de un STR con su Ambiente: Proceso activado por estímulos del Ambiente Tiempos de Respuesta delimitan Estímulos/Respuestas Procedimientos deben terminar dentro de plazos (deadlines) Si terminar fuera de plazo sistema falla (falla temporal) Datos con plazos de validez: Datos desactualizados o no válidos (outdated data) pueden conducir a resultados o respuestas incorrectas Flujos de control en la ejecución de los procedimientos es definida por el ambiente: Imposibilidad en muchas aplicaciones del STR ejercer un control o limitación en los estímulos provenientes del ambiente
Conceptos Básicos Tarea (task ) Segmento de código cuya ejecución posee atributo temporal propio Ejemplo: método en OO, subrutina, trecho de un programa Deadline Instante máximo deseado para la conclusión de una tarea
Conceitos Básicos Tiempo real crítico ( hard real-time ) Falla temporal puede resultar en consecuencias catastróficas Necesario garantir requisitos temporales en proyecto Ejemplo: usina nuclear, industria petroquímica, misiles Tiempo real no crítico ( soft real-time ) Ejemplo: multimedia
Conceptos Básicos Modelo de Tareas (task system ) Descripción de las propiedades temporales de las tareas en el sistema Ejemplo: periódicas o no, con duración conocida o no, etc Carga de Tareas ( task load ) Descripción de cuales tareas deberan ser ejecutadas Estática: Limitada y conocida en proyecto Dinámica: Conocida solamente a lo largo de la ejecución
Conceptos Básicos Previsibilidad ( predictability ) Capacidad de afirmar algo sobre el comportamiento futuro del sistema Determinista: Garante que todos los requisitos temporales serán cumplidos Probabilista: Provee una probabilidad para su cumplimiento La previsibilidad en STRs determina implicaciones en todos los niveles: lenguages sistemas operacionales comunicación arquitectura del computador, etc
Conceptos Básicos Escalonamiento ( scheduling ) Identifica la forma cómo recursos son adjudicados a las tareas Escalonador ( scheduler ) Componente del sistema responsable de la gerencia de recursos Escala de Ejecución( schedule ) Describe cuando cada tarea ocupa cada recurso Escalonamiento Estático ( static scheduling ) Capaz de ofrecer previsibilidad determinista Escalonamento Dinámico ( dynamic scheduling ) Capaz de ofrecer apenas previsibilidad probabilista
Conceptos Básicos Event-Triggered Evento externo genera interrupción y dispara tarea
Funciona bien con carga pequeña Puede fallar en caso de carga pesada Ex: Cano estourado gera chuva de eventos
Conceptos Básicos Time-Triggered Interrupción de reloj a cada T milisegundos (tick) A cada tick algunos sensores y actuadores son apagados No existen interrupciones además de las del reloj Problema es selecionar T (carga x atraso) Ex: Relación causa-efecto en tren y cancela
Propiedades Temporales de Tareas Folga = Deadline – Liberação – Tempo de execução Atraso = MAX( 0 , Conclusão – Deadline ) Tempo de resposta = Conclusão – Chegada
Tareas Periódicas Tarea es activada a cada P unidades de tiempo Instantes de llegada pueden ser calculados a partir del inicial Ejemplo: control de proceso via lazo de realimentación
Tareas Esporádicas Instantes de llegada no son conocidos Existe un intervalo mínimo de tiempo entre llegadas Ejemplo: atención al botón de alarma
Conceptos Básicos Tarea Aperiódica Nada es sabido sobre las activaciones de la tarea Ejemplo: aparición de objeto en pantalla de radar Relaciones de exclusión mutua entre tareas Tareas A y B presentan exclusión mutua cuando NO pueden ejecutar simultáneamenteEjemplos: Estructura de datos compartida Archivo Controlador de periférico
Abordage para Escalonamiento TR
Abordages con garantía en proyecto Ofrece previsibilidad determinista, con análisis hecho en proyecto Carga limitada y conocida en proyecto ( Hipótesis de Carga ) Supuesto un límite para faltas ( Hipótesis de Faltas ) Dividida en dos partes: Análisis de escalonabilidad Construcción de escala de ejecución
Abordages con garantía en proyecto Ventajas Determina en proyecto que todos los deadlines serán cumplidos Necesario para aplicaciones críticas Teoría sirve de base para abordages sin garantia Desventajas Necesario conocer exactamente la carga Necesario reservar recursos para el peor caso Difícil determinar el pior caso en soluciones off-the-shelf Genera enorme subutilización de recursos
Ejecutivo Cíclico Todo el trabajo de escalonamiento es hecho en proyecto Resultado es uma grade de execução ( time grid ) Grade determina cual tarea ejecuta cuando Garantia obtenida a través de una simple inspección de escala Durante la ejecución: Pequeño programa lee la grade y dispara la tarea apropiada Cuando la grade termina ella es nuevamente repetida Vantaja: Comportamiento completamente conocido Desventaja: Escalonamento muy rígido, tamaño de la grade Muy usado en aplicaciones embutidas ( Embedded Systems )
Ejecutivo Cíclico Restricciones deben ser observadas en la construcción de la grade Período, tiempo máximo de computación Precedencias, exclusión Escalonamiento puede ser: Preemptivo: tarea puede ser suspendida y despues retomada En el preemtivo: después que inicia tarea va hasta el fin
Prioridades + Test de Escalonamiento Cada tarea recibe una prioridad Prioridades pueden ser fijas o variables Escalonamiento en general es preemptivo Test ejecutado en proyecto determina escalonabilidad Test considera forma cómo prioridades son atribuidas Complejidad depende del modelo de tareas No ejecución: Escalonador dispara las tareas conforme las prioridades
Prioridades + Test de Escalonamiento Ventaja: Soporta tareas esporádicas, no tiene grade Desventaja: Tests limitados a algunos modelos de tareas Usado en aplicaciones que exigen garantia mas son muy complejas para construir una grade Políticas mas usadas Earliest Deadline First EDF Rate Monotonic RM (período menor prioridad mayor) Deadline Monotonic DM (deadline menor mayor prioridad)
Inversion de Prioridades
Prioridades + Test de Escalonabilidad Ventaja: Soporta tareas esporádicas, no tiene grade Desventaja: Tests limitados a algunos modelos de tareas Usado en aplicaciones que exigen garantia mas son muy complejas para construir una grade Políticas más usadas Earliest Deadline First EDF Rate Monotonic RM (período menor prioridad mayor) Deadline Monotonic DM (deadline menor mayor prioridad)
Soportes para Aplicaciones de Tiempo Real Aplicaciones son construídas a partir de los servicios ofrecidos por un sistema operacional Atender los requisitos temporales depende no solamente del código de la aplicación mas también de la colaboración del sistema operacional En el sentido de permitir previsibilidad o por lo menos un desempeño satisfactorio
Soportes para Aplicaciones de Tiempo Real Muchas veces los requisitos temporales de la aplicación son tan rigurosos que el sistema operacional es substituído por un simple núcleo de tiempo real No incluye servicios como sistema de archivos o gerencia sofisticada de memoria Núcleos de tiempo real ofrecen una funcionalidad mínima Mas son capaces de presentar excelente comportamiento temporal
Soportes para Aplicaciones de Tiempo Real Sistemas operacionales convencionales son construídos con el objetivo de presentar buen comportamiento medio Distribuyen los recursos de forma justa entre las tareas y los usuarios No existe preocupación con la previsibilidad. Mecanismos como Caches de disco, Memoria virtual, Porciones de tiempo del procesador mejoran el desempeño medio del sistema mas tornan mas difícil hacer afirmaciones sobre los tiempos de una tarea en particular
Soportes para Aplicaciones de Tiempo Real Aplicaciones con restricciones de tiempo real menos interesadas en una distribución uniforme de los recursos más interesadas en atender requisitos tales como períodos de activación y deadlines Sistemas operacionales de tiempo real atención es dedicada al comportamiento temporal servicios son definidos no solamente en términos funcionales mas también en términos temporales
Soportes para Aplicaciones de Tiempo Real Existe una variedad muy grande de Sistemas Operacionales de Tiempo Real No existe SO mejor o peor para todas las aplicaciones La diversidad de aplicaciones de STR genera una diversidad grande de SOTR