Programador de tareas generalizado en tiempo real

Programador de tareas en tiempo real generalizado:
el programador utilizado para manejar o programar los tres tipos de tareas en tiempo real, es decir, tareas periódicas, esporádicas y aperiódicas, se conoce como programador de tareas generalizado. Programa tareas periódicas, esporádicas y aperiódicas de la manera más eficiente.

¿Por qué Programador de tareas generalizado?
Básicamente, el planificador cíclico se utiliza para acomodar tareas esporádicas y aperiódicas, pero los tiempos de llegada de las tareas esporádicas y aperiódicas se establecen estadísticamente. Por lo tanto, no se pueden asignar tareas aperiódicas y esporádicas a los marcos sin disminuir significativamente la utilización general del sistema. Por lo tanto, para programar los tres tipos de tareas de manera significativa, se introdujo el programador de tareas generalizado en los sistemas en tiempo real.
Se utiliza para superar las limitaciones del programador cíclico, el programador híbrido basado en eventos y todos los programadores de tareas en tiempo real.

Funcionamiento del Programador de tareas
generalizado: El programador de tareas generalizado prepara inicialmente el programa solo para tareas periódicas, es decir, se asignan marcos de tiempo a tareas periódicas. Ahora las tareas esporádicas y aperiódicas se programan en el tiempo de holgura disponible en los marcos después de programar tareas periódicas.
El tiempo de holgura es el tiempo que queda en un marco después de que una tarea periódica programada completó su ejecución. El tiempo de holgura puede ser cero o distinto de cero. Cuando el tiempo de ejecución de una tarea periódica es menor que el tamaño del marco, el tiempo de holgura es distinto de cero.

Las tareas esporádicas solo se pueden programar si se dispone de suficiente tiempo libre, mientras que en el caso de las tareas aperiódicas es diferente. Las tareas esporádicas deben cumplir con la fecha límite y para programar las tareas esporádicas, se realiza una prueba de aceptación para verificar el tiempo de holgura disponible.
Si el tiempo de inactividad no es suficiente, el planificador rechaza la tarea esporádica. En caso de una tarea aperiódica, no es necesaria la prueba de aceptación. Las tareas aperiódicas no necesitan cumplir con la fecha límite, por lo que se programan en el tiempo de inactividad disponible.

Pseudocódigo para el programador generalizado de tareas:
el programa precalculado para tareas periódicas se almacena en una tabla. Se supone que las tareas esporádicas han pasado por la prueba de aceptación y solo las tareas elegibles están disponibles.
El siguiente es el pseudocódigo para el programador generalizado de tareas en tiempo real:

cyclic scheduler()
{
current-task T = Schedule-table[i];

i = i + 1;
i = i mod N;

// N is the total number of tasks
// in the schedule table

dispatch-current-task(T);

schedule-sporadic-task();
// Current task T completed early,
// sporadic tasks can be scheduled

schedule-aperiodic tasks;
// At the end, aperiodic tasks
// can be scheduled

idle();
// No task to be scheduled
}

Publicación traducida automáticamente

Artículo escrito por pp_pankaj 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 *