Diferencia entre la programación preventiva y no preventiva en los sistemas operativos

Programación del procesador (o programación de la CPU) que determina los procesos asignados y eliminados de la CPU, en función de modelos de programación como Con derecho preferente y Programación no preventiva (llamó Programación colaborativa).

Los sistemas más antiguos podían operar en modos simples e independientes, pero con la creciente necesidad de sistemas flexibles y con capacidad de respuesta, así como de virtualización, que brindan una respuesta rápida a cada solicitud de procesamiento para administrar una tarea de manera efectiva.

Las unidades de programación a menudo se denominan tarea y el trabajo del Programador es ejecutar y administrar estas tareas cuando sea necesario; El Programador selecciona la tarea que se eliminará y asignará a la CPU para su procesamiento, de acuerdo con el modelo de programación utilizado.

¿Cómo sabe el Programador qué tareas tienen prioridad?

El Programador debe ejecutar un proceso de selección justo y eficiente, teniendo en cuenta las solicitudes de procesamiento variables y dinámicas y aprovechando al máximo los ciclos de la CPU.

Las tareas pueden estar en dos estados mientras se procesan:

  1. yo ráfaga de CPU donde la CPU está haciendo cálculos para procesar la tarea (el período para una ráfaga de CPU varía de una tarea a otra y de un programa a otro).
  2. En el Ráfaga de entrada/salida (E/S) esperando recibir o enviar datos del sistema.

Cuando la CPU está inactiva, el Programador lee la cola Listo y selecciona la siguiente tarea para ejecutar. Entonces es el Remitente que da el control de la tarea elegida de la CPU, ¡así que debe ser rápido! Cualquier tiempo tomado por el Remitente se da Latencia de envío.

Hay varias estructuras y parámetros personalizados para definir la cola Listo, así como varios métodos que se pueden usar para administrar las complejidades del proceso de programación.

En general, está relacionado con el uso de la CPU, el rendimiento, etc. optimizar y maximizar.

Descubre también la:  Diferencia entre gasolina y diesel

El Programador debe tomar una decisión durante uno de los siguientes pasos:

  1. Cuando la tarea cambia de un Correr a Estado de espera (por ejemplo, esperando durante una solicitud de E/S).
  2. Cuando la tarea cambia de Correr a Listo (por ejemplo, responder a una interrupción).
  3. Cuando la tarea cambia de Esperando a Listo (por ejemplo, se ha completado una solicitud de E/S).
  4. Cuando el Tarea

Se debe seleccionar una nueva tarea si se realiza el paso 1 o 4 para garantizar la utilización completa de la CPU, y tanto en el paso 2 como en el 3, la tarea puede continuar o se selecciona una nueva.

Después de comprender cómo se procesa una tarea, veamos dos modelos de programación que se ocupan de las interrupciones de la CPU.

Ambos tienen características similares con tareas, estados de tareas, colas y prioridades (estáticas o dinámicas):

  • Programación no preventiva es decir, cuando una tarea se ejecuta hasta que se detiene (voluntariamente) o finaliza. Windows® tenía programación no preventiva hasta Windows 3.x, luego cambió a preventiva desde Windows 95.
  • Programación preventiva ahí es donde una tarea puede ser suspendida por la fuerza por una interrupción de la CPU, a diferencia de Non-Preemptive donde la tarea se ejecuta hasta que libera el control de la CPU.

Programación no preventiva

Las tareas dentro de un sistema no preventivo se ejecutarán hasta su finalización.

Luego, el Programador verifica el estado de todas las tareas y programa la siguiente tarea prioritaria con el estado Listo.

Con la programación sin área, una vez que se asigna una tarea a la CPU, no se puede eliminar, incluso si las tareas cortas tienen que esperar a que se completen las tareas más largas.

La gestión de la programación en todas las tareas está «equilibrada» y los tiempos de respuesta son predecibles porque las tareas de alta prioridad no pueden bloquear las tareas que esperan más abajo en la cola.

Descubre también la:  Diferencia entre radar y sensor ToF

El Programador asegura que cada tarea obtenga su parte de la CPU, evitando cualquier retraso con cualquier tarea. La ‘cantidad de tiempo’ asignada a la CPU puede no ser igual, ya que depende de cuánto tiempo lleve completar la tarea.

Programación preventiva

Este modelo de programación permite que las tareas se interrumpan, a diferencia de la programación no preventiva, que tiene un enfoque de «ejecutar hasta terminar».

La interrupción, que podría iniciarse desde llamadas externas, le pide al programador que pause una tarea actual para administrar una tarea de mayor prioridad, de modo que se pueda anticipar el control de la CPU.

La tarea de mayor prioridad se ejecuta en estado Listo, lo que permite una respuesta rápida a eventos en tiempo real.

Algunas de las desventajas de la programación preventiva están relacionadas con una mayor sobrecarga de recursos cuando se usan interrupciones y puede haber problemas con dos tareas que comparten datos, ya que una podría interrumpirse y las estructuras de datos compartidas se actualizarían, lo que podría tener un impacto negativo en la integridad de los datos.

Por otro lado, es práctico poder pausar una tarea para gestionar otra tarea que puede ser crítica.

En breve

Se pueden definir muchas variaciones y dependencias en diferentes políticas, por ejemplo, una “Política de Round Robin[i]» en el que cada tarea (con la misma prioridad) se ejecuta una vez y luego se coloca al final de la cola, para el próximo ciclo.

Otras políticas incluyen Primero en entrar primero en salir, Es trabajo corto primero, Es corto-trabajo-siguiente, El tiempo restante más cortoetc.

El análisis de los datos históricos puede proporcionar información sobre aspectos como la velocidad a la que llegan nuevas tareas, la CPU y las ráfagas de E/S, etc.

Wlip.es

Somos entusiastas de la tecnología, la ciencia y sus avances. Nuestra curiosidad nunca se sacia y por eso intentamos investigar y conocer cada día más cosas. Te traemos las diferencias más curiosas sobre conceptos, cosas y mucho más.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *