QoS (Quality of Service)

La qualità del servizio (QoS) associata a un thread viene usata per indicare le prestazioni e l'efficienza energetica desiderate. Ogni thread viene assegnato a un livello QoS. Mentre la priorità di pianificazione rimane la metrica principale in base alla quale il sistema determina il thread da pianificare successivo, QoS può influenzare la selezione di core e il risparmio energia del processore. Nelle piattaforme con processori eterogenei, il QoS di un thread può limitare la pianificazione a un subset di processori o indicare una preferenza per una determinata classe di processore.

Gli sviluppatori potrebbero già impiegare altre strutture per controllare quando eseguire, ad esempio quando l'utente non è presente, solo in ac/ricarica o a seconda del livello della batteria. QoS offre una funzionalità per influenzare la modalità di esecuzione. Questa struttura può contribuire a migliorare l'efficienza della CPU e quindi estendere la durata della batteria. Inoltre, questo processo può contribuire a ridurre il consumo di energia della CPU mentre opera sull'alimentazione AC per ridurre l'output termico che può causare un rumore elevato della ventola o persino una limitazione termica.

Qualità dei livelli di servizio

Il sistema gestisce più livelli QoS, ognuno con prestazioni differenziate ed efficienza energetica. Windows offre impostazioni predefinite standard per la pianificazione e il risparmio energia del processore per ogni livello QoS. L'ottimizzazione precisa di ogni livello QoS per il risparmio energia del processore e la pianificazione eterogenea può essere modificata tramite il provisioning di Windows. Per altre informazioni sull'ottimizzazione delle prestazioni e sul provisioning, vedere Opzioni di risparmio energia del processore.

Livello QoS Descrizione Prestazioni e potenza Versione
Alto Applicazioni finestra che si trovano in primo piano e in primo piano, o udibili, e contrassegnano in modo esplicito i processi con SetProcessInformation o thread con SetThreadInformation Prestazioni elevate standard. 1709
Medio Applicazioni con finestra che possono essere visibili all'utente finale ma che non sono in stato attivo. Varia in base alla piattaforma, tra Alto e Basso. 1709
Basso Applicazioni finestra che non sono visibili o udibili all'utente finale. Sulla batteria, seleziona la frequenza e le pianificazioni della CPU più efficienti per un core efficiente. 1709
Utilità Servizi in background Sulla batteria, seleziona la frequenza e le pianificazioni della CPU più efficienti per core efficienti. Windows 11 22H2
Eco Applicazioni che contrassegnano in modo esplicito i processi con SetProcessInformation o thread con SetThreadInformation. Seleziona sempre la frequenza e le pianificazioni della CPU più efficienti per i core efficienti. Windows 11
File multimediali Thread contrassegnati in modo esplicito dal servizio Utilità di pianificazione classi multimediali per indicare il buffering batch multimediale. Frequenza cpu ridotta per l'elaborazione batch efficiente. 2004
Scadenza I thread contrassegnati in modo esplicito dal servizio Utilità di pianificazione classi multimediali indicano che i thread audio richiedono prestazioni per rispettare le scadenze. Prestazioni elevate per rispettare le scadenze dei media. 2004

Classificazione qualità del servizio

La tabella seguente illustra le classificazioni QoS supportate.

Source (Sorgente) Descrizione
Multimedia Foundation Il servizio Utilità di pianificazione classi multimediali assegna priorità alle risorse DELLA CPU per gli scenari multimediali. Il servizio contrassegna thread specifici responsabili dell'elaborazione multimediale usando i livelli QoS media e scadenza per garantire efficienza energetica rispettando le scadenze delle prestazioni.
API SetProcessInformation consente agli sviluppatori di contrassegnare in modo esplicito un processo come HighQoS o EcoQoS attivando o disattivando la PROCESS_POWER_THROTTLING_EXECUTION_SPEED funzionalità in ProcessPowerThrottling.
SetThreadInformation consente agli sviluppatori di contrassegnare in modo esplicito un thread come HighQoS o EcoQoS attivando o disattivando la THREAD_POWER_THROTTLING_EXECUTION_SPEED funzionalità in ThreadPowerThrottling .
Udibile I processi che vengono determinati per la riproduzione dell'audio sono HighQoS.
Visible Ai processi che possiedono direttamente una finestra (o sono discendenti di processi proprietari di finestre) viene assegnato un livello QoS in base alla visibilità e allo stato attivo:

Stato della finestraQoS (Quality of Service)
Messa a fuocoAlto
VisibleMedio
Ridotta a icona o completamente bloccataBasso
Euristico Ai thread non classificati dalle origini precedenti viene assegnato automaticamente un livello QoS dal sistema. Queste euristiche includono (ma non solo) la priorità del thread, in cui i thread in esecuzione con priorità di thread ridotta possono implicare un livello QoS inferiore.