La diferencia entre 'Programación preventiva' y 'Programación no preventiva' es que la programación no preventiva ocupa el control total de la CPU, mientras que la programación preventiva permite que el sistema operativo (SO) de la computadora controle los estados de los procesos. Puede ser útil comprender un poco los diferentes estados de un proceso informático:
Hay cinco estados por los que pasa un proceso durante su ciclo;
- Nuevo: cuando un proceso se activa o crea por primera vez, como cuando se inicia un programa de software (nos mantendremos en este ejemplo a lo largo de esta explicación).
- Listo: cuando el programa está listo para ser asignado al procesador.
- En ejecución: cuando el programa se está ejecutando, se conoce como "en ejecución".
- Esperando: el proceso aquí está inactivo y esperando la comunicación de otros procesos.
- Terminado: el término utilizado para cuando el proceso ejecutado ha finalizado.
La programación preventiva es cuando un proceso de computadora se interrumpe y la energía de la CPU se entrega a otro proceso con una prioridad más alta. Este tipo de programación se produce cuando un proceso pasa de un estado de ejecución a un estado listo o de un estado de espera a un estado listo.
- Programación no preventiva
La programación no preventiva permite que el proceso se ejecute hasta su finalización antes de pasar a la siguiente tarea.
A continuación se muestra un ejemplo de la anterior Programación preventiva: si inicia una aplicación de software como un editor de texto, el sistema operativo asignará la tarea al procesador y asignará espacio en disco, memoria y otros recursos al programa; el programa editor de texto está ahora en un estado de ejecución. Si decide iniciar una segunda aplicación y se genera un nuevo proceso, se asignan varios recursos necesarios al nuevo programa y el editor de texto se mantiene en estado de espera o listo hasta que se ejecute el nuevo proceso.