Articulo de referencia

Planificación del procesador en Windows NT

La planificación del procesador en Windows NT se refiere al proceso mediante el cual Windows NT determina qué tarea debe ejecutarse en el procesador y en qué momento. Sin planif...

La planificación del procesador en Windows NT se refiere al proceso mediante el cual Windows NT determina qué tarea debe ejecutarse en el procesador y en qué momento. Sin planificación, el procesador atendería las tareas según el orden en que llegan a la cola, lo cual no suele ser óptimo. Como parte de la planificación, el procesador asigna un nivel de prioridad a los diferentes procesos que se ejecutan en la máquina. Cuando dos procesos solicitan servicio simultáneamente, el procesador ejecuta la tarea del que tiene mayor prioridad.

Existen seis niveles de prioridad con nombre:

  • Tiempo real
  • Alto
  • Por encima de lo normal
  • Normal
  • Por debajo de lo normal
  • Bajo

Estos niveles tienen números asociados. Las aplicaciones comienzan con un nivel de prioridad base de ocho. El sistema ajusta dinámicamente el nivel de prioridad para que todas las aplicaciones tengan acceso al procesador. Los niveles de prioridad del 0 al 15 son utilizados por aplicaciones dinámicas. Los niveles de prioridad del 16 al 31 están reservados para aplicaciones en tiempo real.

Impulso aleatorio

El impulso aleatorio es una estrategia utilizada por el planificador en Microsoft Windows para evitar interbloqueos debido a la inversión de prioridad . Los subprocesos listos que mantienen bloqueos se incrementan aleatoriamente en prioridad y se les permite ejecutarse el tiempo suficiente para salir de la sección crítica. Si el subproceso no tiene tiempo suficiente para liberar el bloqueo, tendrá otra oportunidad. [ 1 ] [ 2 ]

Esta estrategia ya no se utiliza en las versiones más recientes de Windows y ha sido reemplazada por una estrategia llamada AutoBoost. [ 3 ]

Afinidad

En un entorno multiprocesador con más de un procesador lógico (es decir, varios núcleos o hyperthreading ), se pueden ejecutar varias tareas simultáneamente. Sin embargo, un proceso o un hilo se puede configurar para que se ejecute solo en un subconjunto de los procesadores lógicos disponibles. La utilidad Administrador de tareas de Windows ofrece una interfaz de usuario para esto a nivel de proceso. [ 4 ]

Referencias

  1. Inversión de prioridad (Windows) , Microsoft , consultado el 12 de diciembre de 2012. El planificador resuelve este problema aumentando aleatoriamente la prioridad de los subprocesos listos (en este caso, los que poseen el bloqueo de baja prioridad). Los subprocesos de baja prioridad se ejecutan el tiempo suficiente para salir de la sección crítica, y el subproceso de alta prioridad puede entrar en ella. Si el subproceso de baja prioridad no obtiene suficiente tiempo de CPU para salir de la sección crítica la primera vez, tendrá otra oportunidad durante la siguiente ronda de planificación.
  2. Cohen, Aaron; Woodring, Mike (1998), Win32 Multithreaded Programming , O'Reilly & Associates, p. 30, Windows NT resuelve el problema de inversión de prioridad aumentando aleatoriamente las prioridades dinámicas de los subprocesos que están listos para ejecutarse. 
  3. "Inversión de prioridad (Windows)" . Consultado el 12 de octubre de 2024. El planificador de subprocesos aborda este problema mediante una función llamada AutoBoost . AutoBoost realiza un seguimiento automático de las reservas de recursos y ajusta las prioridades de los subprocesos aplicando límites mínimos de prioridad que ningún subproceso debe superar. Por ejemplo, si un subproceso de baja prioridad adquiere una sección crítica y un subproceso de mayor prioridad se bloquea esperando dicha sección, la prioridad del propietario se eleva a la prioridad máxima del subproceso en espera hasta que este libere el recurso.
  4. Russinovich, Mark E.; Solomon, David A. (2005). Microsoft Windows internals : Microsoft Windows Server 2003, Windows XP y Windows 2000 (4.ª ed.). Redmond, WA: Microsoft Press. ISBN   0735619174OCLC 57449950 
Obtenido de " https://en.wikipedia.org/w/index.php?title=Windows_NT_processor_scheduling&oldid=1357909629#Random_boosting "