Un proceso es un programa en ejecución. Una computadora debe realizar muchas tareas al mismo tiempo. Por lo tanto, la CPU debe obtener procesos y ejecutarlos. A veces es necesario ejecutar algunos procesos que los otros procesos. En ese momento, el proceso de ejecución se interrumpe y la CPU se asigna al nuevo proceso. Una vez completada la tarea, la CPU se asigna de nuevo al proceso anterior. La programación según este mecanismo se conoce como programación preventiva. Si el proceso en ejecución no puede interrumpirse y es obligatorio ejecutar el proceso en ejecución, entonces se conoce como programación no preventiva. Este artículo analiza la diferencia entre la programación preventiva y la no preventiva en un sistema operativo. La programación preventiva es el mecanismo de programación de procesos mediante el cual un proceso puede ser interrumpido por otro proceso en medio de su ejecución. La programación no preventiva es el mecanismo de programación de procesos a través del cual un proceso comienza a ejecutarse solo después de que finaliza el proceso anterior. Eso es el diferencia clave Entre Programación preventiva y no preventiva en OS.
1. Resumen y diferencia clave
2. ¿Qué es la programación preferente en el sistema operativo?
3. ¿Qué es la programación no preventiva en el sistema operativo?
4. Similitudes entre la programación preventiva y no preventiva en OS
5. Comparación lado a lado: programación preferente frente a no preventiva en el sistema operativo en forma tabular
6. Resumen
Round Robin Scheduling es un ejemplo de programación preventiva. Cada proceso recibe una pequeña cantidad de tiempo de CPU. Por lo general es de 10 a 100 milisegundos. Esta pequeña unidad de datos también se conoce como cantidad de tiempo. Una vez transcurrido este tiempo, el proceso se anula y se agrega al final de la cola lista. Supongamos que hay 4 procesos como P1, P2, P3 y P4. Los tiempos de ráfaga de la CPU en milisegundos son los siguientes. El cuanto de tiempo es 20..
Figura 01: Ejemplo de programación de Round Robin
El proceso P1 se ejecuta hasta el 20. Quedan otros 33 ms. Entonces se ejecuta el P2. Como el cuanto de tiempo es 20 y el tiempo requerido P2 es 17 ms, P2 se ejecutará durante 17 ms. Por lo tanto, el proceso de P2 se completa. Entonces se le da la oportunidad a P3. Se ejecutará durante 20ms. El resto es 48ms. Entonces el P4 se ejecutará durante 20ms. Tiene 4ms para completar el proceso total. De nuevo, el P1 se ejecutará durante 20ms. Tiene otros 13ms para completar el proceso. El cambio se da a P3. Se ejecutará durante 20 ms, y tiene otros 28 ms para finalizar completamente. El P4 se ejecuta. Solo tiene 4ms. Por lo tanto, P4 completa la ejecución. P2 y P4 ya han terminado. Los procesos restantes son P1 y P3. Se le da la oportunidad a P3. Tenía 13ms para completar, por lo que se completa. Ahora el único proceso restante es P3. Tiene 28ms para completar. Así que P3 se ejecutará durante 20ms. El resto es 8ms. Todos los demás procesos ya se han completado de ejecución. Por lo tanto, nuevamente se ejecutará el resto de 8ms de P3. Asimismo, cada proceso tiene la posibilidad de ejecutar..
La programación de First Come First Served (FCFS) se puede tomar como un ejemplo de programación no preventiva. El proceso que solicita primero se asigna primero a la CPU. Esta programación es fácilmente gestionada por la cola First In First Out (FIFO). Si hay procesos que vienen en orden como P1, P2 y P3, primero se le da la oportunidad a P1. Una vez completado, P2 se ejecutará. Cuando P2 se completa, el P3 se ejecutará. Supongamos que hay 3 procesos como P1, P2 y P3 con tiempos de ráfaga de CPU en milisegundos de la siguiente manera:.
Figura 02: Ejemplo de programación de FCFS
De acuerdo con lo anterior, se ejecutará P1. Una vez que se completa, el proceso P2 se ejecuta durante 3 ms. Ahora el proceso restante es P3. Entonces se ejecutará. El tiempo de espera para P1 es cero. El proceso P2 tuvo que esperar 24 ms y el proceso P3 tuvo que esperar 27 ms. Si los procesos llegaron en orden P2, P3 y P1, P2 se completará primero. Siguiente P3 se completará, y finalmente, P1 se completará.
Programación preventiva frente a no preventiva en el sistema operativo | |
La programación preventiva es el mecanismo de programación de procesos a través del cual un proceso puede ser interrumpido por otro proceso en medio de su ejecución.. | La programación no preventiva es el mecanismo de programación de procesos a través del cual un proceso comienza a ejecutarse solo después de que finaliza el proceso anterior. |
Interrupción del proceso | |
En la programación preventiva, los procesos pueden ser interrumpidos. | En la programación no preventiva, los procesos pueden ser interrumpidos. |
Utilización de CPU | |
En la programación preventiva, la utilización de la CPU es mayor que la programación no preventiva. | En la programación no preventiva, la utilización de la CPU es mínima en comparación con la programación anticipada. |
Flexibilidad | |
La programación preferente es flexible. | La programación no preventiva no es flexible. |
Hay múltiples procesos que se ejecutan en una computadora. Cuando se ejecuta cada proceso, la CPU se asigna a ese proceso específico. A veces, es necesario detener la ejecución del proceso actual y dar prioridad a otro proceso. Los mecanismos de programación de procesos pueden ser preventivos o no preventivos. La programación preventiva es el mecanismo de programación de procesos mediante el cual otro proceso puede interrumpir el proceso en medio de su ejecución. La programación no preventiva es el mecanismo de programación del proceso a través del cual un proceso comienza a ejecutarse solo después de que finaliza el proceso anterior. Esta es la diferencia entre la programación preferente y no preventiva en el sistema operativo.
Puede descargar la versión en PDF de este artículo y utilizarla para fines fuera de línea según la nota de cita. Descargue la versión en PDF aquí: Diferencia entre la programación preferente y no preventiva en el sistema operativo
1. ¿Qué es la programación pre-emptiva y no preventiva??. Disponible aquí
2.Puntos, Tutoriales. "Algoritmos de Programación del Sistema Operativo"., Punto de tutoriales. 8 de enero de 2018. Disponible aquí
3. “¿Qué son los términos pre-emptivos y no preventivos en el contexto del sistema operativo?” Preguntas y respuestas de GeeksforGeeks. Disponible aquí