Servizio Utilità di pianificazione classi multimediali
Il servizio Utilità di pianificazione classi multimediali (MMCSS) consente alle applicazioni multimediali di garantire che l'elaborazione sensibile al tempo riceva l'accesso prioritario alle risorse DELLA CPU. Questo servizio consente alle applicazioni multimediali di utilizzare il maggior numero possibile di CPU senza negare le risorse della CPU alle applicazioni con priorità più bassa.
MMCSS usa le informazioni archiviate nel Registro di sistema per identificare le attività supportate e determinare la priorità relativa dei thread che eseguono queste attività. Ogni thread che esegue operazioni correlate a una determinata attività chiama la funzione AvSetMmMaxThreadCharacteristics o AvSetMmThreadCharacteristics funzione per informare MMCSS che sta lavorando a tale attività.
Per un esempio di programma che usa MMCSS, vedere Exclusive-Mode Streams.
Windows Server 2003 e Windows XP: MMCSS non è disponibile.
Impostazioni del Registro di sistema
Le impostazioni MMCSS vengono archiviate nella chiave del Registro di sistema seguente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
Questa chiave contiene un valore REG_DWORD denominato SystemResponsiveness che determina la percentuale di risorse della CPU che devono essere garantite per le attività con priorità bassa. Ad esempio, se questo valore è 20, 20% di risorse della CPU sono riservate per le attività con priorità bassa. Si noti che i valori che non sono divisibile uniformemente per 10 vengono arrotondati al multiplo più vicino di 10. Un valore pari a 0 viene considerato anche 10.
La chiave contiene anche una sottochiave denominata Tasks che contiene l'elenco di attività. Per impostazione predefinita, Windows supporta le attività seguenti:
- audio
- Capture
- distribuzione
- Giochi
- riproduzione
- Pro Audio
- Window Manager
Gli OEM possono aggiungere attività aggiuntive in base alle esigenze.
Ogni chiave dell'attività contiene il set di valori seguente che rappresentano le caratteristiche da applicare ai thread associati all'attività.
Valore | Formato | Valori possibili |
---|---|---|
di affinità | REG_DWORD | Maschera di bit che indica l'affinità del processore. Sia 0x00 che 0xFFFFFFFF indicano che l'affinità del processore non viene usata. |
solo sfondo | REG_SZ | Indica se si tratta di un'attività in background (nessuna interfaccia utente). I thread di un'attività in background non cambiano a causa di una modifica dello stato attivo della finestra. Questo valore può essere impostato su True o False. |
BackgroundPriority | REG_DWORD | Priorità in background. L'intervallo di valori è 1-8. |
frequenza di clock | REG_DWORD | Hint usato da MMCSS per determinare la granularità della pianificazione delle risorse del processore.Windows Server 2008 e Windows Vista: Frequenza di clock massima garantita utilizzata dal sistema se un thread unisce questa attività, in intervalli di 100 nanosecondi. A partire da Windows 7 e Windows Server 2008 R2, questa garanzia è stata rimossa per ridurre il consumo di energia del sistema. |
priorità GPU | REG_DWORD | Priorità GPU. L'intervallo di valori è 0-31. Questa priorità non viene ancora usata. |
priorità | REG_DWORD | Priorità dell'attività. L'intervallo di valori è compreso tra 1 (basso) e 8 (alto). Per le attività con una categoria di pianificazione alta, questo valore viene sempre considerato come 2. |
categoria pianificazione | REG_SZ | Categoria di pianificazione. Questo valore può essere impostato su Alto, Medio o Basso. |
priorità SFIO | REG_SZ | Priorità di I/O pianificata. Questo valore può essere impostato su Inattiva, Bassa, Normale o Alta. Questo valore non viene utilizzato. |
Nota
Per risparmiare energia, le applicazioni non devono impostare la risoluzione del timer a livello di sistema su un valore ridotto, a meno che non sia assolutamente necessario. Per altre informazioni, vedere performance nella guida per sviluppatori di Windows 7 .
Priorità thread
MMCSS aumenta la priorità dei thread che lavorano su attività multimediali ad alta priorità.
MMCSS determina la priorità di un thread usando i fattori seguenti:
- Priorità di base dell'attività.
- Parametro Priority della funzioneAvSetMmThreadPriority.
- Indica se l'applicazione è in primo piano.
- Quantità di tempo della CPU usata dai thread in ogni categoria.
MMCSS imposta la priorità dei thread client a seconda della categoria di pianificazione.
Categoria | Priorità | Descrizione |
---|---|---|
Alto | 23-26 | Questi thread vengono eseguiti con priorità di thread inferiori solo a determinate attività a livello di sistema. Questa categoria è progettata per le attività Pro Audio. |
Medio | 16-22 | Questi thread fanno parte dell'applicazione in primo piano. |
Basso | 8-15 | Questa categoria contiene il resto dei thread. Sono garantite una percentuale minima delle risorse della CPU, se necessario. |
1-7 | Questi thread hanno usato la quota della risorsa CPU. Possono continuare a essere eseguiti se non sono pronti per l'esecuzione thread con priorità bassa. |