Qualità del servizio
La qualità del servizio (QoS) associata a un thread viene usata per indicare le prestazioni desiderate e l'efficienza energetica. 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 dei 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 su AC/carica o a seconda del livello della batteria. QoS offre una funzionalità che influisce sulla modalità di esecuzione. Questa funzionalità può aiutare 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 durante l'utilizzo dell'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 fornisce 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 possono essere modificate tramite il provisioning di Windows. Per altre informazioni sull'ottimizzazione delle prestazioni e sul provisioning, vedere opzioni di risparmio energia processore.
Livello QoS | Descrizione | Prestazioni e potenza | Rilascio |
---|---|---|---|
Alto | Applicazioni con finestre 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 finestra che possono essere visibili all'utente finale, ma che non sono in stato attivo. | Varia in base alla piattaforma, tra Alta e Bassa. | 1709 |
Basso | Applicazioni con finestra non visibili o udibili per l'utente finale. | Sulla batteria, seleziona la frequenza della CPU e le pianificazioni più efficienti per un core efficiente. | 1709 |
Utilità | Servizi in background | Sulla batteria, seleziona la frequenza della CPU e le pianificazioni più efficienti per core efficienti. | Windows 11 22H2 |
Eco | Applicazioni che contrassegnino in modo esplicito i processi con SetProcessInformation o thread con SetThreadInformation. | Seleziona sempre la frequenza e le pianificazioni più efficienti della CPU per core efficienti. | Windows 11 |
Media | I thread contrassegnati in modo esplicito dal servizio utilità di pianificazione della classe multimediale per indicare il buffer batch multimediale. | Frequenza cpu ridotta per l'elaborazione batch efficiente. | 2004 |
Scadenza | I thread contrassegnati in modo esplicito da servizio Utilità di pianificazione classi multimediali per indicare che i thread audio richiedono prestazioni per rispettare le scadenze. | Prestazioni elevate per rispettare le scadenze dei media. | 2004 |
Classificazione qualità dei servizi
La tabella seguente illustra le classificazioni QoS supportate.
Fonte | Descrizione | ||||||||
---|---|---|---|---|---|---|---|---|---|
Multimedia Foundation | Il servizio utilità di pianificazione della classe multimediale 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 un'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 funzionalità di PROCESS_POWER_THROTTLING_EXECUTION_SPEED in ProcessPowerThrottling.SetThreadInformation consente agli sviluppatori di contrassegnare in modo esplicito un thread come HighQoS o EcoQoS attivando o disattivando la funzionalità di THREAD_POWER_THROTTLING_EXECUTION_SPEED in ThreadPowerThrottling . |
||||||||
Udibile | I processi che sono determinati per la riproduzione dell'audio sono HighQoS. | ||||||||
Visibile | 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. |