Planificación de procesos de tiempo real
De Wiki de Sistemas Operativos
¿Qué es un proceso de tiempo real?
Proceso de tiempo real se denomina a aquella actividad que debe ser realizada en un plazo de tiempo, si la actividad no es realizada en dicho plazo de tiempo carece de sentido realizarla. Ej: Actividades industriales, videoconferencias, etc
Clasificación
Podemos clasificar los procesos de tiempo real de diferentes maneras:
Segun el plazo de tiempo:
- Rígidos(hard-realtime) : se debe realizar en un plazo de tiempo estricto, sino deja de tener sentido. Si el plazo de tiempo para realizarla es superado el proceso se aborta. Ejemplo: Industriales ( sensores, activadores,...).
- Flexibles(soft-realtime) : es deseable que se cumpla el plazo de tiempo. Ej: Videoconferencia.(Mientras más rapido vaya mejor sera la comunicacion , pero si no , nos adaptamos a ella)
- Opcionales : conviene hacerla en el plazo de tiempo, pero sino es posible se puede posponer. Ej: actualizacion de una aplicacion/programa instalada en el ordenador.
Según la periodicidad:
- Aperiódicas : se deben a sucesos externos que deben ser atendidos. El sistema operativo no sabe, a priori, cuando van a llegar ni el tiempo que va a durar. Ej: Notificaciones de errores, Sensores de emergencia en un coche, Ventiladores para refrigeracion.
- Periódicas : se realizan cada cierto tiempo (actividad repetitiva).A diferencia del anterior el sistema operativo conoce a priori cuando van a llegar y su tiempo de duración Ej: leer una temperatura de un sensor.
Métodos de planificación
Los métodos de planificación a utilizar en SSOO de tiempo real son:
- Planificación apropiativa con prioridad estática: Cada proceso tiene asociado un indice de prioridad y el procesador elige aquel proceso de la lista de preparados con mayor prioridad.
- Planificación de tablas estáticas: se conocen las actividades a realizar y se elabora un plan fijo de ejecución.
- Planificación dinámica: Es muy parecida a la de tablas estaticas , pero tambien admite actividades aperiodicas. Cuando se presenta una actividad aperiodica , el planificador intenta construir un nuevo plan de ejecucion que incluya a todas las actividades. Si no encuentra la solucion que las englobe a todas, rechaza la actividad, que debe ser flexible u opcional. Tambien puede retrasar alguna actividad flexible/opcional.
- Planificación dinámica con un mejor resultado: Las actividades fuera de plazo se abortan. Es muy similar a la anterior, la diferencia mas notable es que en la anterior existe un análisis previo aceptando actividades aperiodicas y en ésta no existe tal analisis.
El siguiente ejemplo emplea planificación apropiativa por prioridades estática con actividades periódicas y aperiódicas:
____|__PA__|_PB__|_PC__|_PD___| Datos del _H0_|__0___|_1___|_2___|_3*n__| problema _t__|__2___|_4___|_2___|_1____| plazo|__3___|_5___|_7___|_3*n+2| prioridad|__-20_|_0___|_10__|_15___| (-20 a 19) UNIX < = indica el instante de lanzamiento del proceso > = indica el instante de finalización del proceso X = se ejecuta el código del planificador * = el proceso se aborta | | | | | | | | | | | | | | | | | | | | | PA <___|___> | | | | | | | | | | | | | | | | | | PB | < |___|___|___* | | | | | | | | | | | | | | | PC | | < | | |___|___> | | | | | | | | | | | | | PD | | | < | * < |___> <___> | <___> | <___> | | | | Planificador X | X | | X | X | X | | X | | X | | | | | -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 _____|_PA_|_PB_|_PC_|PD1ª_|PD2ª_|_PD_| Cálculos __t__|_2__|_3__|_2__|_1__|_1__|_1__| de tiempos __T__|_2__|_*__|_4__|_*__|_2__|_1__| _T/t_|_1__|_*__|_2__|_*__|_2__|_1__| | |_> Indice de penalización