Compartir a través de


Aumentos de prioridad

Cada subproceso tiene una prioridad dinámica . Esta es la prioridad que usa el programador para determinar qué subproceso se va a ejecutar. Inicialmente, la prioridad dinámica de un subproceso es la misma que su prioridad base. El sistema puede aumentar y reducir la prioridad dinámica, para asegurarse de que tiene capacidad de respuesta y que no hay subprocesos muertos por el tiempo del procesador. El sistema no aumenta la prioridad de los subprocesos con un nivel de prioridad base entre 16 y 31. Solo los subprocesos con una prioridad base entre 0 y 15 reciben aumentos de prioridad dinámica.

El sistema aumenta la prioridad dinámica de un subproceso para mejorar su capacidad de respuesta de la siguiente manera.

  • Cuando un proceso que usa NORMAL_PRIORITY_CLASS se lleva al primer plano, el programador aumenta la clase de prioridad del proceso asociado a la ventana de primer plano, de modo que sea mayor o igual que la clase de prioridad de cualquier proceso en segundo plano. La clase priority vuelve a su configuración original cuando el proceso ya no está en primer plano.

  • Cuando una ventana recibe la entrada, como los mensajes del temporizador, los mensajes del mouse o la entrada del teclado, el programador aumenta la prioridad del subproceso propietario de la ventana.

  • Cuando se cumplen las condiciones de espera de un subproceso bloqueado, el programador aumenta la prioridad del subproceso. Por ejemplo, cuando una operación de espera asociada con el disco o la E/S del teclado finaliza, el subproceso recibe un aumento de prioridad.

    Puede deshabilitar la característica de aumento de prioridad llamando a la funciónSetProcessPriorityBoost o función setThreadPriorityBoost. Para determinar si esta característica se ha deshabilitado, llame a la funciónGetProcessPriorityBoost o GetThreadPriorityBoost.

Después de elevar la prioridad dinámica de un subproceso, el programador reduce esa prioridad en un nivel cada vez que el subproceso completa un segmento de tiempo, hasta que el subproceso vuelve a su prioridad base. La prioridad dinámica de un subproceso nunca es menor que su prioridad base.