Planificación de procesos de tiempo real

De Wiki de Sistemas Operativos
Revisión del 18:41 22 mar 2011 de Jdsanchez (discusión | contribuciones) (Clasificación)
Saltar a: navegación, buscar

¿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. (actualizacion de una aplicacion).

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.
  • 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