requisitos previos –
- Programación de CPU
- Programación preventiva
- Programa para la programación de CPU de prioridad preventiva
Programación monotónica de fecha límite:
es un algoritmo basado en prioridades fijas en el que las prioridades se asignan a cada tarea en función de su fecha límite relativa. A la tarea con la fecha límite más corta se le asigna la prioridad más alta. Es un algoritmo de programación preventiva que significa que si llega alguna tarea de mayor prioridad, la tarea en ejecución se adelanta y la tarea de mayor prioridad se asigna a la CPU.
La prioridad de la tarea es inversamente proporcional a la fecha límite, es decir, a la tarea con la fecha límite más corta se le asigna la prioridad más alta. La fecha límite es el límite de tiempo en el que se debe completar la tarea.
La tarea se puede representar como se muestra en la figura:
Ejemplo:
suponga que hay dos tareas que deben ejecutarse.
Task1 tiene tiempo de liberación 0, período 7 unidades, tiempo de ejecución 2 unidades y fecha límite de 6 unidades ( T1 ( 0, 7, 2, 6 ) ). Task2 tiene tiempo de liberación 0, período 5 unidades, tiempo de ejecución 2 unidades y fecha límite de 4 unidades (T2 (0, 5, 2, 4)).
Explicación paso a paso –
- En T=0 , tanto T1 como T2 están disponibles, pero la fecha límite (T2) < fecha límite (T1). Entonces T2 obtiene CPU y se ejecuta hasta T = 2. Ahora T2 estará disponible en T=5.
- En T=2 solo está disponible T1, por lo que T1 se ejecuta hasta T=4. Ahora T1 estará disponible en T=7.
- En T=4 a T=5 , la CPU permanece inactiva ya que no hay ninguna tarea disponible para su ejecución.
- En T=5 solo está disponible T2, por lo que T2 se ejecuta hasta T=7. Ahora T2 estará disponible en T=10.
- En T=7 solo está disponible T1, por lo que T1 se ejecuta hasta T=9. Ahora T1 estará disponible en T=14.
- En T=9 a T=10 , la CPU permanece inactiva ya que no hay ninguna tarea disponible para su ejecución.
- En T=10 , solo T2 está disponible, por lo que T2 se ejecuta hasta T=12. Ahora T2 estará disponible en T=15.
- En T=12 a T=14 , la CPU permanece inactiva ya que no hay ninguna tarea disponible para su ejecución.
- En T=14 solo está disponible T1, por lo que T1 se ejecuta hasta T=15. Todavía queda 1 unidad de trabajo para T1.
- En T=15 , tanto T1 como T2 están disponibles, pero la fecha límite (T2) < fecha límite (T1). Entonces T2 obtiene CPU y se ejecuta hasta T = 17. Ahora T2 estará disponible en T=20.
El proceso de ejecución completo se muestra en la siguiente figura:
ventajas :
- Óptimo para la programación de prioridad estática.
- Funciona bien en caso de disponibilidad de tareas que tengan un período más largo pero un plazo más corto.
- Buen comportamiento en caso de sobrecarga.
Desventajas:
- La implementación es compleja.
- Es un proceso que toma tiempo.
Publicación traducida automáticamente
Artículo escrito por kumaravnish792 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA