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:
|
||||||||
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. |