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