Planificación de procesos de tiempo real
Contenido
¿Qué es un proceso de tiempo real?
Proceso de tiempo real se trata de un proceso cuya actividad tiene un plazo de finalización.
¿Qué es un sistema operativo de tiempo real?
Un sistema operativo de tiempo real dispone de un planificador de procesos que dispone de mecanismo para hacer lo máximo posible para garantizar que sus procesos de tiempo real cumplan los plazos de finalización que tienen establecidos.
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 determinado. Si no lo hace, 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 si no es posible se puede posponer. Ej: actualización 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, cuándo van a llegar ni el tiempo que va a durar. Ej: Notificaciones de errores, Sensores de emergencia en un coche, Ventiladores para refrigeración.
- Periódicas : se realizan cada cierto tiempo (actividad repetitiva).A diferencia del anterior el sistema operativo conoce a priori cuándo 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 índice 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 estáticas , pero también admite actividades aperiódicas. Cuando se presenta una actividad aperiódica , el planificador intenta construir un nuevo plan de ejecución que incluya a todas las actividades. Si no encuentra la solución que las englobe a todas, rechaza la actividad, que debe ser flexible u opcional. También 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 más notable es que en la anterior existe un análisis previo aceptando actividades aperiódicas y en ésta no existe tal análisis.
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 plazo = si la actividad no ha terminado de ejecutarse tras pasar este instante de tiempo, se aborta * = el proceso se aborta | | | | | | | | | | | | | | | | | | | | | PA <___|___> | | | | | | | | | | | | | | | | | | PB | < |___|___|___* | | | | | | | | | | | | | | | PC | | < | | |___|___> | | | | | | | | | | | | | PD | | | < | * < |___> <___> | <___> | <___> | | | | Planificador X X X 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
Si alguna actividad entrante tiene más prioridad que la que se está ejecutando, ésta última pasa a estado preparado y se da paso a la nueva.