La programación de ejecución hasta su finalización o programación no preemptiva es un modelo de programación en el que cada tarea se ejecuta hasta que finaliza o cede explícitamente el control al programador. [1] Los sistemas de ejecución hasta su finalización normalmente tienen una cola de eventos a la que se atiende en estricto orden de admisión mediante un bucle de eventos o mediante un programador de admisión que es capaz de programar eventos fuera de orden, en función de otras restricciones como las fechas límite .
Algunos sistemas de programación multitarea preventiva se comportan como programadores de ejecución hasta su finalización en lo que respecta a la programación de tareas en un nivel de prioridad de proceso particular , al mismo tiempo que esos procesos todavía reemplazan otras tareas de menor prioridad y son reemplazados por tareas de mayor prioridad.