Service planificateur de classes multimédias
Le service Du planificateur de classes multimédias (MMCSS) permet aux applications multimédias de s’assurer que leur traitement sensible au temps reçoit un accès prioritaire aux ressources du processeur. Ce service permet aux applications multimédias d’utiliser autant de l’UC que possible sans refuser les ressources d’UC aux applications de priorité inférieure.
MMCSS utilise des informations stockées dans le Registre pour identifier les tâches prises en charge et déterminer la priorité relative des threads effectuant ces tâches. Chaque thread qui effectue un travail lié à une tâche particulière appelle la fonction AvSetMmMaxThreadCharacteristics ou AvSetMmThreadCharacteristics fonction pour informer MMCSS qu’elle travaille sur cette tâche.
Pour obtenir un exemple de programme qui utilise MMCSS, consultez Exclusive-Mode Streams.
Windows Server 2003 et Windows XP : MMCSS n’est pas disponible.
Paramètres du Registre
Les paramètres MMCSS sont stockés dans la clé de Registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
Cette clé contient une valeur REG_DWORD nommée SystemResponsiveness qui détermine le pourcentage de ressources processeur qui doivent être garanties aux tâches de faible priorité. Par exemple, si cette valeur est 20, 20% de ressources processeur sont réservées aux tâches de faible priorité. Notez que les valeurs qui ne sont pas uniformément divisibles par 10 sont arrondies au multiple le plus proche de 10. Une valeur de 0 est également traitée comme 10.
La clé contient également une sous-clé nommée Tasks qui contient la liste des tâches. Par défaut, Windows prend en charge les tâches suivantes :
- audio
- capture
- distribution
- Jeux
- de lecture
- Pro Audio
- du Gestionnaire de fenêtres
Les oem peuvent ajouter des tâches supplémentaires en fonction des besoins.
Chaque clé de tâche contient l’ensemble de valeurs suivant qui représentent les caractéristiques à appliquer aux threads associés à la tâche.
Valeur | Format | Valeurs possibles |
---|---|---|
d’affinité | REG_DWORD | Masque de bits qui indique l’affinité du processeur. Les deux 0x00 et 0xFFFFFFFF indiquent que l’affinité du processeur n’est pas utilisée. |
arrière-plan uniquement | REG_SZ | Indique s’il s’agit d’une tâche en arrière-plan (aucune interface utilisateur). Les threads d’une tâche en arrière-plan ne changent pas en raison d’une modification dans le focus de fenêtre. Cette valeur peut être définie sur True ou False. |
BackgroundPriority | REG_DWORD | Priorité en arrière-plan. La plage de valeurs est comprise entre 1 et 8. |
fréquence d’horloge | REG_DWORD | Indicateur utilisé par MMCSS pour déterminer la granularité de la planification des ressources du processeur.Windows Server 2008 et Windows Vista : la fréquence d’horloge maximale garantie utilisée par le système si un thread joint cette tâche, dans des intervalles de 100 nanosecondes. À compter de Windows 7 et Windows Server 2008 R2, cette garantie a été supprimée pour réduire la consommation d’alimentation du système. |
de priorité GPU | REG_DWORD | Priorité du GPU. La plage de valeurs est comprise entre 0 et 31. Cette priorité n’est pas encore utilisée. |
priorité | REG_DWORD | Priorité de la tâche. La plage de valeurs est de 1 (faible) à 8 (élevé). Pour les tâches avec une catégorie de planification de haute, cette valeur est toujours traitée comme 2. |
catégorie de planification | REG_SZ | Catégorie de planification. Cette valeur peut être définie sur High, Medium ou Low. |
de priorité SFIO | REG_SZ | Priorité d’E/S planifiée. Cette valeur peut être définie sur Inactif, Faible, Normal ou Élevé. Cette valeur n’est pas utilisée. |
Note
Pour économiser de l’énergie, les applications ne doivent pas définir la résolution du minuteur à l’échelle du système sur une petite valeur, sauf si absolument nécessaire. Pour plus d’informations, consultez performances dans le guide développeurs Windows 7 .
Priorités des threads
Le MMCSS améliore la priorité des threads qui travaillent sur des tâches multimédias à priorité élevée.
MMCSS détermine la priorité d’un thread à l’aide des facteurs suivants :
- Priorité de base de la tâche.
- Paramètre Priority de la fonctionAvSetMmThreadPriority.
- Indique si l’application est au premier plan.
- Quantité de temps processeur consommée par les threads de chaque catégorie.
MMCSS définit la priorité des threads clients en fonction de leur catégorie de planification.
Catégorie | Priorité | Description |
---|---|---|
Haut | 23-26 | Ces threads s’exécutent à une priorité de thread inférieure à certaines tâches au niveau du système. Cette catégorie est conçue pour les tâches Pro Audio. |
Douleur moyenne | 16-22 | Ces threads font partie de l’application au premier plan. |
Bas | 8-15 | Cette catégorie contient le reste des threads. Elles sont garanties un pourcentage minimal des ressources processeur si nécessaire. |
1-7 | Ces threads ont utilisé leur quota de ressources d’UC. Ils peuvent continuer à s’exécuter si aucun thread de faible priorité n’est prêt à s’exécuter. |