Qualité de service

La qualité de service (QoS) associée à un thread est utilisée pour indiquer les performances et l’efficacité énergétique souhaitées. Chaque thread est affecté à un niveau QoS. Bien que la priorité de planification reste la main métrique par laquelle le système détermine le thread à planifier, la qualité de service peut influencer la sélection du cœur et la gestion de l’alimentation du processeur. Sur les plateformes avec des processeurs hétérogènes, la Qualité de service d’un thread peut restreindre la planification à un sous-ensemble de processeurs ou indiquer une préférence pour une classe particulière de processeur.

Les développeurs peuvent déjà utiliser d’autres installations pour contrôler le moment de l’exécution, par exemple quand l’utilisateur n’est pas présent, uniquement sur le secteur/charge, ou en fonction du niveau de batterie. QoS fournit une fonctionnalité permettant d’influencer la façon d’exécuter. Cette fonctionnalité peut aider à améliorer l’efficacité du processeur et ainsi à prolonger l’autonomie de la batterie. En outre, ce processus peut aider à réduire la consommation d’énergie du processeur tout en fonctionnant sur l’alimentation ca pour réduire la sortie thermique, ce qui peut entraîner un bruit élevé du ventilateur, voire une limitation thermique.

Niveaux de qualité de service

Le système maintient plusieurs niveaux qoS, chacun avec des performances et une efficacité énergétique différenciées. Windows fournit des paramètres par défaut standard pour la planification et la gestion de l’alimentation du processeur pour chaque niveau QoS. Le réglage précis de chaque niveau QoS pour la gestion de l’alimentation du processeur et la planification hétérogène peut être modifié via l’approvisionnement Windows. Pour plus d’informations sur le réglage des performances et l’approvisionnement, consultez Options de gestion de l’alimentation du processeur.

Niveau QoS Description Performances et puissance Libérer
Élevé Applications fenêtrés qui sont au premier plan et dans le focus, ou audibles, et étiqueter explicitement des processus avec SetProcessInformation ou des threads avec SetThreadInformation Hautes performances standard. 1709
Moyenne Applications fenêtrés qui peuvent être visibles par l’utilisateur final, mais qui ne sont pas mises au point. Varie selon la plateforme, entre High et Low. 1709
Faible Applications fenêtrés qui ne sont pas visibles ou audibles pour l’utilisateur final. Sur batterie, sélectionne la fréquence du processeur la plus efficace et planifie le cœur efficace. 1709
Utilitaire Services d’arrière-plan Sur batterie, sélectionne la fréquence du processeur la plus efficace et planifie les cœurs efficaces. Windows 11 22H2
Eco Applications qui balisent explicitement des processus avec SetProcessInformation ou des threads avec SetThreadInformation. Sélectionne toujours la fréquence de processeur la plus efficace et planifie les cœurs efficaces. Windows 11
Média Threads explicitement marqués par le service Planificateur de classes multimédia pour désigner la mise en mémoire tampon par lots multimédia. Fréquence du processeur réduite pour un traitement par lots efficace. 2004
Échéance Threads explicitement étiquetés par le service Planificateur de classes multimédia pour indiquer que les threads audio nécessitent des performances pour respecter les échéances. Hautes performances pour respecter les échéances des médias. 2004

Classification de la qualité de service

Le tableau suivant montre les classifications QoS prises en charge.

Source Description
Multimedia Foundation Le service Planificateur de classes multimédias hiérarchise les ressources processeur pour les scénarios multimédias. Le service étiquette des threads spécifiques responsables du traitement multimédia à l’aide des niveaux Media et Deadline QoS pour fournir une efficacité énergétique tout en respectant les délais de performances.
API SetProcessInformation permet aux développeurs de marquer explicitement un processus comme HighQoS ou EcoQoS en basculant la PROCESS_POWER_THROTTLING_EXECUTION_SPEED fonctionnalité dans ProcessPowerThrottling.
SetThreadInformation permet aux développeurs de baliser explicitement un thread comme HighQoS ou EcoQoS en basculant la THREAD_POWER_THROTTLING_EXECUTION_SPEED fonctionnalité dans ThreadPowerThrottling .
Audible Les processus qui sont déterminés pour lire de l’audio sont HighQoS.
Visible Un niveau QoS est attribué aux processus qui possèdent directement une fenêtre (ou qui sont des descendants de processus propriétaires de fenêtres) en fonction de leur visibilité et de leur état de focus :

État de la fenêtreQualité de service
In FocusÉlevé
VisibleMoyenne
Réduit ou entièrement obclluFaible
Heuristique Les threads qui ne sont pas classés par les sources ci-dessus se voient automatiquement attribuer un niveau QoS par le système. Ces heuristiques incluent (mais ne sont pas limités à) la priorité des threads, où les threads exécutés avec une priorité de thread réduite peuvent impliquer un niveau de qualité de service inférieur.