Concurrencia
Los sistemas de tiempo real controlan actividades del mundo exterior que son concurrentes
Para ello deben ejecutar varias actividades o tareas en paralelo (concurrentemente)
La ejecución de las tareas se multiplexa en el tiempo en uno o varios procesadores
Concurrencia
En un programa concurrente, no es necesario especificar el orden exacto en el cual se ejecutan los procesos.
Para forzar las restricciones de ordenación se usan primitivas de sincronización, tales como la exclusión mutua, pero el comportamiento general del programa muestra un no determinismo significativo.
Si el programa es correcto, su comportamiento funcional es el mismo independientemente de los detalles de implementación. Ej.: 5 procesos independientes pueden ejecutarse (sin desalojo) de 120 formas distintas en un único procesador.
Concurrencia
Aunque las salidas del programa sean idénticas en todos estos posibles entrelazamientos, el comportamiento temporal puede variar considerablemente.
Un sistema de tiempo real necesita restringir el no determinismo que se da en los sistemas concurrentes.
Este proceso se conoce como planificación (scheduling).
Multiplexado del procesador
El multiplexado del tiempo de uso del procesador puede hacerse:
Ejecución síncrona:
Las tareas se ejecutan según un plan de ejecución fijo (realizado por el diseñador)
El SO se reemplaza por un ejecutivo cíclico
Ejecución asíncrona:
SO de tiempo real
Lenguaje de programación concurrente. En este caso se realiza por medio del run-time system.
Las tareas se reparten el procesador de forma dinámica (invisible para el diseñador), de acuerdo a la prioridad asociada a cada una de ellas. En todo momento, se ejecuta la tarea activa de mayor prioridad.
Esquema de planificación
¿Cómo planificar el uso de los recursos de forma tal de garantizar los requisitos temporales?
En general un esquema de planificación proporciona dos elementos:
Un algoritmo de planificación que determina el orden de acceso de las tareas a los recursos del sistema (en particular, el procesador)
Un método de análisis que permite predecir el comportamiento temporal del sistema
Las predicciones son útiles para confirmar que pueden garantizarse los requisitos temporales del sistema
En general, se estudia el peor comportamiento posible
Definiciones de atributos temporales
Definiciones de atributos temporales
Definiciones de atributos temporales
Released
Absolute deadline
(Gp:) Relative deadline
Execution time
Página siguiente |