Antes de continuar es necesario aclarar lo que es un planificador en un sistema operativo.
Los sistemas operativos multitarea de tiempo compartido1 como Linux funcionan repartiendo el tiempo en trozos que se suelen denominar rodajas. El planificador es una parte del sistema operativo que se activa al final de cada rodaja de tiempo (gracias a los impulsos de reloj recibidos) y decide qué proceso de los que están activos pasa a ejecutarse en la siguiente rodaja.
Por lo general, se suele usar para repartir las rodajas de tiempo entre los procesos, una política llamada round-robin, en la que todos los procesos listos para ejecutar (es decir, que no están parados esperando el resultado de una operación de entrada/salida) se sitúan en una cola circular, de la que se van extrayendo y ejecutando cada uno.
Es posible usar otras políticas (como tener varias colas de planificación, según la prioridad de los procesos), pero en todo caso estos planificadores no sirven en los sistemas de tiempo real porque en los primeros priman otros resultados antes que cumplir restricciones de tiempo en los procesos. Por ejemplo, cuando llega una interrupción que indica que hay un dato del disco o de la red disponible para leer, siempre se pasa el control al sistema operativo quien por lo general se tomará su tiempo en procesar ese dato recién llegado.
De este tipo de eventos, en general, no se conoce cuándo van a llegar, lo que hace impredecible el comportamiento final del sistema. Además, al ser el sistema de tiempo compartido, una tarea crítica será expulsada en cuanto consuma su rodaja de tiempo, lo cuál impedirá cumplir las restricciones de tiempo. Los planificadores de tiempo real, en cambio, sí garantizan cumplir estas restricciones, a costa quizás de hacer que el conjunto aparente ir más lento.