Quality of Service (QoS, Dienstqualität)

Die einem Thread zugeordnete Dienstqualität (Quality of Service, QoS) wird verwendet, um die gewünschte Leistung und Energieeffizienz anzugeben. Jedem Thread wird eine QoS-Ebene zugewiesen. Während die Terminplanungspriorität weiterhin die Standard Metrik bleibt, mit der das System bestimmt, welcher Thread als nächstes geplant werden soll, kann QoS die Kernauswahl und die Prozessorleistungsverwaltung beeinflussen. Auf Plattformen mit heterogenen Prozessoren kann die QoS eines Threads die Planung auf eine Teilmenge von Prozessoren einschränken oder eine Präferenz für eine bestimmte Prozessorklasse angeben.

Entwickler verwenden möglicherweise bereits andere Funktionen, um zu steuern, wann ausgeführt werden soll, z. B. wenn der Benutzer nicht anwesend ist, nur bei Ac/Ladevorgängen oder je nach Akkustand. QoS bietet eine Möglichkeit, die Ausführung zu beeinflussen. Diese Funktion kann dazu beitragen, die CPU-Effizienz zu verbessern und somit die Akkulaufzeit zu verlängern. Darüber hinaus kann dieser Prozess helfen, den CPU-Stromverbrauch beim Betrieb mit Wechselstrom zu reduzieren, um die Thermische Leistung zu reduzieren, was zu hohem Lüftergeräusch oder sogar zu thermischer Drosselung führen kann.

Qualität der Servicelevel

Das System verwaltet mehrere QoS-Ebenen mit differenzierter Leistung und Energieeffizienz. Windows bietet Standardeinstellungen für die Planung und Prozessorenergieverwaltung für jede QoS-Ebene. Die präzise Optimierung jeder QoS-Ebene für die Prozessorenergieverwaltung und heterogene Planung kann über die Windows-Bereitstellung geändert werden. Weitere Informationen zur Leistungsoptimierung und -bereitstellung finden Sie unter Optionen für die Prozessorenergieverwaltung.

QoS-Ebene BESCHREIBUNG Leistung und Leistung Freigabe
High Anwendungen mit Fenstern, 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 für den Endbenutzer sichtbar sind, aber nicht im Fokus stehen. Variiert je nach Plattform, zwischen Hoch und Niedrig. 1709
Niedrig Anwendungen mit Fenstern, die für den Endbenutzer nicht sichtbar oder hörbar sind. Wählt beim Akku die effizienteste CPU-Häufigkeit und Zeitpläne für den effizienten Kern aus. 1709
Hilfsprogramm Hintergrunddienste Wählt im Akku die effizienteste CPU-Häufigkeit und Zeitpläne für effiziente Kerne aus. Windows 11 22H2
Öko Anwendungen, die Prozesse explizit mit SetProcessInformation oder Threads mit SetThreadInformation kennzeichnen. Wählt immer die effizienteste CPU-Häufigkeit und Zeitpläne für effiziente Kerne aus. Windows 11
Medien Threads, die vom Multimedia Class Scheduler Service explizit markiert wurden, um multimediale Batchpuffer zu kennzeichnen. Verringerte CPU-Häufigkeit für effiziente Batchverarbeitung. 2004
Stichtag Threads, die vom Multimedia Class Scheduler Service explizit markiert wurden, um anzugeben, dass Audiothreads Leistung erfordern, um Termine einzuhalten. Hohe Leistung zur Einhaltung von Medienterminen. 2004

Dienstqualitätsklassifizierung

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

`Source` BESCHREIBUNG
Multimedia Foundation Der Multimedia Class Scheduler Service priorisiert CPU-Ressourcen für Multimediaszenarien. Der Dienst markiert bestimmte Threads, die für die Multimediaverarbeitung verantwortlich sind, und verwendet die QoS-Ebenen Media und Deadline, um Energieeffizienz bei Einhaltung von Leistungsterminen zu gewährleisten.
API Mit SetProcessInformation können Entwickler einen Prozess explizit als HighQoS oder EcoQoS markieren, indem sie das PROCESS_POWER_THROTTLING_EXECUTION_SPEED Feature in ProcessPowerThrottling umschalten.
Mit SetThreadInformation können Entwickler einen Thread explizit als HighQoS oder EcoQoS markieren, indem sie das THREAD_POWER_THROTTLING_EXECUTION_SPEED Feature in ThreadPowerThrottling umschalten.
Hörbar Prozesse, die als Audiowiedergabe bestimmt werden, sind HighQoS.
Sichtbar Prozessen, die direkt über ein Fenster verfügen (oder abhängig von Fensterbesitzprozessen sind), wird eine QoS-Ebene gemäß ihrer Sichtbarkeit und ihrem Fokusstatus zugewiesen:

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