Planificación de procesos de tiempo real

De Wiki de Sistemas Operativos
Revisión del 17:54 21 mar 2011 de Jherrera (discusión | contribuciones) (Métodos de planificación: ejemplo)
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.(Contra mas 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.


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

Ejemplo de planificación en SSOO de tiempo real

                    ____|_PA_|_PB_|_PC_|__PD___|
         Datos del  _H0_|_0__|_1__|_2__|_3*n__|
          problema  _t__|_2__|_4__|_1__|__1___|
                   plazo|_3__|_5__|_7__|3*n+2_|
              nice value|-20_|_0__|_10_|__15__|

                      < = indica el instante de lanzamiento del proceso
                      > = indica el instante de finalización del proceso
                      X = se ejecuta el código del planificador
                      $ = se aborta el proceso
                       
                  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
              PA  <___|___>   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
              PB  |   <   |___|___|___$   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
              PC  |   |   <   |   |   |___>   |   |   |   |   |   |   |   |   |   |   |   |   |   |
              PD  |   |   |   <   |   $   <___>   |   <___>   |   <___>   |   <___>   |   <___>   |
     Planificador 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_|_PD_|
             Cálculos   __t__|_2__|_3__|_1__|_1_|
            de tiempos  __T__|_2__|_4__|_4__|_1_|
                        _T/t_|_1__|0.75|_4__|_1_|
                       |
                       |_> Indice de penalización