Diferencia entre revisiones de «Planificación de procesos de tiempo real»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Métodos de planificación: ejercicio de ejemplo (que lo habían puesto en la sección de ejercicios))
 
(No se muestran 30 ediciones intermedias de 15 usuarios)
Línea 1: Línea 1:
 
== ¿Qué es un proceso de tiempo real? ==
 
== ¿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
+
Un proceso de tiempo real es aquel 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 tiene mecanismos 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 ==
 
== Clasificación ==
Línea 7: Línea 11:
 
Podemos clasificar los procesos de tiempo real de diferentes maneras:
 
Podemos clasificar los procesos de tiempo real de diferentes maneras:
  
Segun el plazo de tiempo:
+
Según 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,...).
+
*'''Estricto(''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 sino es posible se puede posponer.
 
  
 +
*'''Flexibles(''soft-realtime'')''': es deseable que se cumpla el plazo de tiempo. Ejemplo: Videoconferencia. (Mientras más rápido vaya mejor será la comunicación, pero si no, nos adaptamos a ella)
  
 
Según la periodicidad:
 
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.
+
*'''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. Ejemplo: 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 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.
+
*'''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 Ejemplo: leer la temperatura de un sensor.
  
*Planificación de tablas estáticas : se conocen las actividades a realizar y se elabora un plan fijo de ejecución.
+
Podemos tener aplicaciones de tiempo real (flexibles) en sistemas operativos que no son de tiempo real (Linux, [http://darwinosx.blogspot.com/p/descarga-darwin-os.html Darwin], Windows).
  
*Planificación dinámica: Es muy parecida a la de tablas estaticas , pero tambien admite actividades aperiodicas.
+
En la planificación apropiativa por plazos (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, es el más tradicional y puede ser llevado a cabo por el procesador de un sistema que no sea de tiempo real.
 
 
*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:
 
El siguiente ejemplo emplea planificación apropiativa por prioridades estática con actividades periódicas y aperiódicas:
Línea 45: Línea 38:
 
                       > = indica el instante de finalización del proceso
 
                       > = indica el instante de finalización del proceso
 
                       X = se ejecuta el código del planificador
 
                       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
 
                       * = el proceso se aborta
 
+
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 
                   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
               PA  <___|___>  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
+
               PA  <---|--->  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
               PB  |  <  |___|___|___*  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
+
               PB  |  <  |---|---|---*  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
               PC  |  |  <  |  |  |___|___>  |  |  |  |  |  |  |  |  |  |  |  |  |
+
               PC  |  |  <  |  |  |---|--->  |  |  |  |  |  |  |  |  |  |  |  |  |
               PD  |  |  |  <  |  *  <  |___>  <___>  |  <___>  |  <___>  |  |  |  |
+
               PD  |  |  |  <  |  *  <  |--->  <--->  |  <--->  |  <--->  |  |  |  |
     Planificador X  |   X  |   |  X  |   X  |  X  |  |  X  |  |  X  |  |  |  |  |
+
     Planificador X  X   X  X   |  X  X   X  |  X  |  |  X  |  |  X  |  |  |  |  |
 
             -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
 
             -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
 
                   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
 
                   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
Línea 58: Línea 52:
 
                         _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|P<sub>D1ª</sub>_|P<sub>D2ª</sub>_|_P<sub>D</sub>_|
 
                         _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|P<sub>D1ª</sub>_|P<sub>D2ª</sub>_|_P<sub>D</sub>_|
 
               Cálculos  __t__|_2__|_3__|_2__|_1__|_1__|_1__|
 
               Cálculos  __t__|_2__|_3__|_2__|_1__|_1__|_1__|
             de tiempos  __T__|_2__|_*__|_4__|_*__|_2__|_1__|
+
             de tiempos  __T__|_2__|_*__|_5__|_*__|_2__|_1__|
                         _T/t_|_1__|_*__|_2__|_*__|_1.5|_1__|
+
                         _T/t_|_1__|_*__|_5/2|_*__|_2__|_1__|
 
                         |
 
                         |
 
                         |_> Indice de penalización
 
                         |_> 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.
 +
 +
 +
4.6. [[Planificación_en_sistemas_multiprocesadores | La planificación en sistemas multiprocesadores]]

Revisión actual del 17:25 2 abr 2020

¿Qué es un proceso de tiempo real?

Un proceso de tiempo real es aquel 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 tiene mecanismos 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:

Según el plazo de tiempo:

  • Estricto(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. Ejemplo: Videoconferencia. (Mientras más rápido vaya mejor será la comunicación, pero si no, nos adaptamos a ella)

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. Ejemplo: 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 Ejemplo: leer la temperatura de un sensor.

Podemos tener aplicaciones de tiempo real (flexibles) en sistemas operativos que no son de tiempo real (Linux, Darwin, Windows).

En la planificación apropiativa por plazos (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, es el más tradicional y puede ser llevado a cabo por el procesador de un sistema que no sea de tiempo real.

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__|_*__|_5__|_*__|_2__|_1__|
                        _T/t_|_1__|_*__|_5/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.


4.6. La planificación en sistemas multiprocesadores