Quality of Service (QoS, Dienstqualität)

Die Quality of Service (QoS), die einem Thread zugeordnet ist, wird verwendet, um die gewünschte Leistung und Energieeffizienz anzugeben. Jeder Thread wird einer QoS-Ebene zugewiesen. Die Planungspriorität bleibt die Hauptmetrik, mit der das System bestimmt, welcher Thread als Nächstes geplant werden soll. QoS kann jedoch die Kernauswahl und die Energieverwaltung des Prozessors beeinflussen. Auf Plattformen mit heterogenen Prozessoren kann die QoS eines Threads die Planung auf eine Teilmenge von Prozessoren beschränken oder eine Einstellung für eine bestimmte Prozessorklasse angeben.

Entwickler verwenden möglicherweise bereits andere Einrichtungen, um zu steuern, wann sie ausgeführt werden müssen, z. B. wenn der Benutzer nicht vorhanden ist, nur bei Wechselstrom/Ladevorgang oder je nach Akkustand. QoS bietet eine Möglichkeit, die Ausführung zu beeinflussen. Diese Einrichtung kann zur Verbesserung der CPU-Effizienz und somit zur Verlängerung der Akkulebensdauer beitragen. Darüber hinaus kann dieser Prozess bei der Reduzierung des CPU-Energieverbrauchs beim Betrieb mit Wechselstrom helfen, um die wärmeren Ausgaben zu reduzieren, was zu hohem Lüfterrauschen oder sogar einer wärmeren Drosselung führen kann.

Quality of Service Ebenen

Das System verwaltet mehrere QoS-Ebenen mit jeweils unterschiedlicher Leistung und Energieeffizienz. Windows stellt Standardeinstellungen für die Planung und Prozessorleistungsverwaltung für jede QoS-Ebene zur Verfügung. Die genaue Optimierung der einzelnen QoS-Ebene für die Prozessorleistungsverwaltung und heterogene Planung kann über die Windows geändert werden. Weitere Informationen zur Leistungsoptimierung und -bereitstellung finden Sie unter Prozessor-Energieverwaltungsoptionen.

QoS-Ebene Beschreibung Leistung und Leistung Freigabe
Hoch Fensteranwendungen, die sich im Vordergrund und im Fokus oder hörbar befinden und Prozesse explizit mit SetProcessInformation oder Threads mit SetThreadInformation markieren Hohe Standardleistung. 1709
Medium Anwendungen mit Fenstern, die möglicherweise für den Endbenutzer sichtbar sind, sich aber nicht im Fokus befinden. Variiert je nach Plattform, zwischen Hoch und Niedrig. 1709
Niedrig Anwendungen mit Fenstern, die für den Endbenutzer nicht sichtbar oder hörbar sind. Bei Akku wählt die effizienteste CPU-Frequenz und zeitplanungs für effiziente Kerne aus. 1709
Eco Anwendungen, die Prozesse explizit mit SetProcessInformation markieren, oder Threads mit SetThreadInformation. Wählt immer die effizienteste CPU-Frequenz und Zeitpläne für effiziente Kerne aus. Windows 11
Medien Threads, die explizit vom Multimedia-Klassenplanerdienst markiert wurden, um die Multimediabatchpufferung zu bezeichnen. Die CPU-Frequenz wurde für eine effiziente Batchverarbeitung reduziert. 2004
Stichtag Threads, die explizit vom Multimedia-Klassenplanerdienst gekennzeichnet wurden, um zu bezeichnen, dass Audiothreads Leistung erfordern, um Stichtage zu erfüllen. Hohe Leistung, um Medientermine zu erfüllen. 2004

Quality of Service Klassifizierung

Die folgende Tabelle zeigt die unterstützten QoS-Klassifizierungen.

Quelle Beschreibung
Multimedia Foundation Der Multimedia-Klassenplanerdienst priorisiert CPU-Ressourcen für Multimediaszenarien. Der Dienst markiert bestimmte Threads, die für die Multimediaverarbeitung mithilfe der QoS-Ebenen Media und Deadline verantwortlich sind, um Energieeffizienz zu gewährleisten und gleichzeitig Leistungstermine zu erfüllen.
API Mit SetProcessInformation können Entwickler einen Prozess explizit als HighQoS oder EcoQoS markieren, indem sie das Feature PROCESS_POWER_THROTTLING_EXECUTION_SPEED in ProcessPowerThrottling umbenennen.
Mit SetThreadInformation können Entwickler einen Thread explizit als HighQoS oder EcoQoS markieren, indem sie das Feature THREAD_POWER_THROTTLING_EXECUTION_SPEED in ThreadPowerThrottling umbenennen.
Hörbar Prozesse, die als Audiowiedergabe bestimmt sind, sind HighQoS.
Sichtbar Prozessen, die direkt ein Fenster besitzen (oder Nachfolger von Fensteren besitzenden Prozessen sind), wird eine QoS-Ebene entsprechend ihrem Sichtbarkeits- und Fokuszustand zugewiesen:

FensterzustandQuality of Service (QoS, Dienstqualität)
Im FokusHoch
SichtbarMedium
Minimiert oder vollständig okkludedNiedrig
Heuristik Threads, die nicht von den oben genannten Quellen klassifiziert werden, wird automatisch vom System eine QoS-Ebene zugewiesen. Diese Heuristiken umfassen (aber nicht beschränkt auf) Threadpriorität, wobei Threads, die mit einer niedrigeren Threadpriorität ausgeführt werden, eine niedrigere QoS-Ebene implizieren können.