Preferencia (informática)


En informática , la preferencia es el acto de interrumpir temporalmente una tarea en ejecución , con la intención de reanudarla en un momento posterior. Esta interrupción la realiza un programador externo sin ayuda ni cooperación de la tarea. [1] : 153  Este programador preventivo generalmente se ejecuta en el anillo de protección más privilegiado , lo que significa que la interrupción y la reanudación se consideran acciones altamente seguras. Tal cambio en la tarea que se está ejecutando actualmente de un procesador se conoce como cambio de contexto .

En cualquier diseño de sistema dado, algunas operaciones realizadas por el sistema pueden no ser reemplazables. Esto generalmente se aplica a las funciones del kernel y las interrupciones de servicio que, si no se permite que se ejecuten hasta su finalización , tenderán a producir condiciones de carrera que darán como resultado un punto muerto . Impedir que el programador se apropie de las tareas mientras procesa las funciones del kernel simplifica el diseño del kernel a expensas de la capacidad de respuesta del sistema . La distinción entre el modo de usuario y el modo de kernel , que determina el nivel de privilegio dentro del sistema, también puede usarse para distinguir si una tarea es actualmente prioritaria.

La mayoría de los sistemas operativos modernos tienen núcleos preventivos , que están diseñados para permitir que las tareas sean reemplazadas incluso cuando están en modo kernel. Ejemplos de tales sistemas operativos son Solaris 2.0 / SunOS 5.0, [2] Windows NT , kernel de Linux (2.5.4 y más reciente), [3] AIX y algunos sistemas BSD ( NetBSD , desde la versión 5).

El término multitarea preventiva se utiliza para distinguir un sistema operativo multitarea , que permite la preferencia de tareas, de un sistema multitarea cooperativo en el que los procesos o tareas deben programarse explícitamente para ceder cuando no necesitan recursos del sistema.

En términos simples: la multitarea preventiva implica el uso de un mecanismo de interrupción que suspende el proceso que se está ejecutando actualmente e invoca un programador para determinar qué proceso debe ejecutarse a continuación. Por lo tanto, todos los procesos obtendrán una cierta cantidad de tiempo de CPU en un momento dado.

En la multitarea preventiva, el kernel del sistema operativo también puede iniciar un cambio de contexto para satisfacer la restricción de prioridad de la política de programación , adelantándose así a la tarea activa. En general, la preferencia significa "incautación previa de". Cuando la tarea de alta prioridad en esa instancia se apodera de la tarea que se está ejecutando actualmente, se conoce como programación preventiva.