He aquí por qué:
* Programación preventiva significa que el sistema operativo puede interrumpir un proceso de ejecución y dar la CPU a otro proceso, incluso si el primer proceso no ha terminado su tarea actual. Esto asegura que todos los procesos tengan una buena cantidad de tiempo de CPU y evite que cualquier proceso único monopolice los recursos.
* Programación no preventiva , por otro lado, requeriría un proceso para renunciar voluntariamente al control de la CPU, que es ineficiente y puede conducir a problemas como el hambre.
El kernel de Linux utiliza un programador preventivo para administrar procesos. Permite la programación de tareas en función de su prioridad, requisitos en tiempo real y otros factores. Esto asegura que el sistema permanezca receptivo y que las tareas de alta prioridad reciban los recursos necesarios.
Si bien el núcleo en sí es preventivo, algunas tareas dentro del núcleo pueden no ser preventivas. Esto generalmente se realiza para secciones críticas de código donde la preferencia podría conducir a la corrupción o inconsistencias de datos. Sin embargo, el diseño general del núcleo de Linux se basa en la programación preventiva.