Tareas en sistemas de tiempo real

El sistema está sujeto a tiempo real, es decir, la respuesta debe garantizarse dentro de una restricción de tiempo especificada o el sistema debe cumplir con el plazo especificado. Por ejemplo, sistemas de control de vuelo, monitores en tiempo real, etc. 

Hay dos tipos de tareas en los sistemas de tiempo real: 

  1. Tareas periódicas
  2. Tareas dinámicas
  • Tareas periódicas: en las tareas periódicas, los trabajos se liberan a intervalos regulares. Una tarea periódica es aquella que se repite después de un intervalo de tiempo fijo. Una tarea periódica se denota por cuatro tuplas: T i = < Φ i , P i , e i , D i > 
    Donde, 
    • Φ i – es la fase de la tarea. La fase es el tiempo de liberación del primer trabajo en la tarea. Si no se menciona la fase, se supone que el tiempo de liberación del primer trabajo es cero.
    • Pi – es el período de la tarea, es decir, el intervalo de tiempo entre los tiempos de liberación de dos trabajos consecutivos.
    • e i – es el tiempo de ejecución de la tarea.
    • D i – es el plazo relativo de la tarea.

Por ejemplo: considere la tarea Ti con un período = 5 y un tiempo de ejecución = 3.
No se proporciona la fase, por lo tanto, suponga que el tiempo de liberación del primer trabajo es cero. Entonces, el trabajo de esta tarea se libera primero en t = 0, luego se ejecuta durante 3 segundos y luego el siguiente trabajo se libera en t = 5, que se ejecuta durante 3 segundos, y luego el siguiente trabajo se libera en t = 10. Entonces, los trabajos se liberan en t = 5k donde k = 0, 1, . . ., norte

Interval real time

El hiperperíodo de un conjunto de tareas periódicas es el mínimo común múltiplo de los períodos de todas las tareas de ese conjunto. Por ejemplo, dos tareas T 1 y T 2 que tienen un período 4 y 5 respectivamente tendrán un hiperperíodo, H = lcm(p1, p2) = lcm(4, 5) = 20. El hiperperíodo es el tiempo después del cual el patrón de los tiempos de liberación de trabajo comienzan a repetirse.

  • Tareas Dinámicas: Es un programa secuencial que es invocado por la ocurrencia de un evento. Un evento puede ser generado por procesos externos al sistema o por procesos internos al sistema. Las tareas que llegan dinámicamente se pueden categorizar según su criticidad y conocimiento sobre sus tiempos de ocurrencia. 
    1. Tareas aperiódicas: en este tipo de tarea, los trabajos se liberan a intervalos de tiempo arbitrarios, es decir, aleatoriamente. Las tareas aperiódicas tienen plazos flexibles o no tienen plazos.
    2. Tareas esporádicas: Son similares a las tareas aperiódicas, es decir, se repiten en instancias aleatorias. La única diferencia es que las tareas esporádicas tienen plazos estrictos. Una tarea esporádica se denota por tres tuplas: T i =(e i , g i , D i ) 
      Donde 
      e i – el tiempo de ejecución de la tarea. 
      g i – la separación mínima entre la ocurrencia de dos instancias consecutivas de la tarea. 
      D i – el plazo relativo de la tarea.

Fluctuación: a veces no se conoce el tiempo real de liberación de un trabajo. Solo sepa que r i está en un rango [ r i -, r i + ]. Este rango se conoce como fluctuación de tiempo de liberación. Aquí r i – es qué tan temprano se puede liberar un trabajo y r i + es qué tan tarde se puede liberar un trabajo. Solo se conoce el rango [ e i -, e i + ] del tiempo de ejecución de un trabajo. Aquí e i – es la cantidad mínima de tiempo requerida por un trabajo para completar su ejecución y e i + es la cantidad máxima de tiempo requerida por un trabajo para completar su ejecución. 

Restricción de precedencia de trabajos: los trabajos en una tarea son independientes si se pueden ejecutar en cualquier orden. Si hay un orden específico en el que deben ejecutarse los trabajos de una tarea, se dice que los trabajos tienen restricciones de precedencia. Para representar las restricciones de precedencia de los trabajos se utiliza una relación de orden parcial <. Esto se llama relación de precedencia. Un trabajo J i es un predecesor del trabajo J j si J i < J j , es decir, J j no puede comenzar su ejecución hasta que J i se complete. J i es un predecesor inmediato de J j si J i < J j y no hay otro trabajo J k tal que J i< J k < J j . J i y J j son independientes si ni J i < J j ni J j < J i son verdaderos. 
Una forma eficiente de representar las restricciones de precedencia es usar un gráfico dirigido G = (J, <) donde J es el conjunto de trabajos. Este gráfico se conoce como el gráfico de precedencia. Los trabajos se representan mediante vértices del gráfico y las restricciones de precedencia se representan mediante bordes dirigidos. Si hay un borde dirigido de J i a J j , entonces significa que J i es el predecesor inmediato de J j . Por ejemplo: Considere una tarea T que tiene 5 trabajos J 1, J 2 , J 3 , J 4 y J 5 tales que J 2 y J 5 no pueden comenzar su ejecución hasta que J 1 se complete y no haya otras restricciones. 

Las restricciones de precedencia para este ejemplo son: 
J 1 < J 2 y J 1 < J 5  

Precedence graph

Establecer la representación del gráfico de precedencia: 

  1. < (1) = { }
  2. < (2) = {1}
  3. < (3) = { }
  4. < (4) = { }
  5. < (5) = {1}

Considere otro ejemplo donde se da un gráfico de precedencia y tiene que encontrar restricciones de precedencia 

precedence graph another example

Del gráfico anterior, derivamos las siguientes restricciones de precedencia:  

  1. J 1 < J 2
  2. J 2 < J 3
  3. J 2 < J 4
  4. J 3 < J 4

Publicación traducida automáticamente

Artículo escrito por priyanka dahiya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *