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 usare la maggior parte possibile della CPU senza negare le risorse della CPU alle applicazioni con priorità inferiore.

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 per informare MMCSS che sta lavorando a tale attività.

Per un esempio di programma che usa MMCSS, vedere Flussi in modalità esclusiva.

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 CPU che devono essere garantite per le attività con priorità bassa. Ad esempio, se questo valore è 20, il 20% delle risorse della CPU è riservato per le attività con priorità bassa. Si noti che i valori che non sono divisibili in modo uniforme per 10 vengono arrotondati fino al multiplo più vicino di 10. Un valore pari a 0 viene considerato anche come 10.

La chiave contiene anche una sottochiave denominata Tasks che contiene l'elenco di attività. Per impostazione predefinita, Windows supporta le attività seguenti:

  • Audio
  • Acquisire
  • Distribuzione
  • Giochi
  • Riproduzione
  • Pro Audio
  • Gestione finestre

Gli OEMs 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
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: La 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à della GPU. L'intervallo di valori è 0-31. Questa priorità non è ancora usata.
Priorità REG_DWORD Priorità dell'attività. L'intervallo di valori è 1 (basso) a 8 (alto). Per le attività con una categoria di pianificazione elevata, questo valore viene sempre considerato come 2.
Categoria pianificazione REG_SZ Categoria di pianificazione. Questo valore può essere impostato su High, Medium o Low.
Priorità SFIO REG_SZ Priorità di I/O pianificata. Questo valore può essere impostato su Idle, Low, Normal o High. 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 Prestazioni nella Guida agli sviluppatori di Windows 7.

 

Priorità dei thread

MMCSS aumenta la priorità dei thread che lavorano su attività multimediali con priorità elevata.

MMCSS determina la priorità di un thread usando i fattori seguenti:

  • Priorità di base dell'attività.
  • Parametro Priority della funzione AvSetMmThreadPriority .
  • Se l'applicazione è in primo piano.
  • Quanto tempo di CPU viene utilizzato dai thread in ogni categoria.

MMCSS imposta la priorità dei thread client a seconda della categoria di pianificazione.

Category Priorità Descrizione
Alto 23-26 Questi thread vengono eseguiti con una priorità di thread inferiore a solo 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 garantiti 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.