La planificación de la CPU puede ser preventiva o no preventiva. La planificación no preventiva, permite que un proceso mantenga la CPU hasta que termine o entre en estado de espera. En contraste, la planificación preventiva, permite que el sistema operativo interrumpa un proceso para asignar la CPU a otro.
Aunque la planificación preventiva mejora la eficiencia y la capacidad de respuesta, puede causar condiciones de carrera y complicar el diseño del núcleo del sistema operativo. Para evitar inconsistencias, ciertos sistemas esperan a que las llamadas al sistema se completen antes de cambiar de contexto. Además, las interrupciones, que son necesarias para evitar la pérdida de datos, deben ser manejadas cuidadosamente para mantener la integridad del sistema.