Servicio de programador de clases multimedia
El servicio Programador de clases multimedia (MMCSS) permite a las aplicaciones multimedia asegurarse de que su procesamiento sensible al tiempo recibe acceso prioritario a los recursos de CPU. Este servicio permite que las aplicaciones multimedia usen la mayor parte de la CPU posible sin denegar recursos de CPU a aplicaciones de prioridad inferior.
MMCSS usa información almacenada en el Registro para identificar las tareas admitidas y determinar la prioridad relativa de los subprocesos que realizan estas tareas. Cada subproceso que realiza trabajos relacionados con una tarea determinada llama a la función AvSetMmMaxThreadCharacteristics o AvSetMmThreadCharacteristics para informar a MMCSS de que está trabajando en esa tarea.
Para obtener un ejemplo de un programa que usa MMCSS, consulte Exclusive-Mode Streams.
Windows Server 2003 y Windows XP: MMCSS no está disponible.
Configuración del Registro
La configuración de MMCSS se almacena en la siguiente clave del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
Esta clave contiene un valor de REG_DWORD denominado SystemResponsiveness que determina el porcentaje de recursos de CPU que se deben garantizar para tareas de prioridad baja. Por ejemplo, si este valor es 20, se reservan 20% de recursos de CPU para tareas de prioridad baja. Tenga en cuenta que los valores que no son divisibles uniformemente en 10 se redondean hasta el múltiplo más cercano de 10. Un valor de 0 también se trata como 10.
La clave también contiene una subclave denominada Tasks que contiene la lista de tareas. De forma predeterminada, Windows admite las siguientes tareas:
- audio de
- de captura de
- distribución de
- Games
- de reproducción
- Pro Audio
- del Administrador de ventanas de
Los OEM pueden agregar tareas adicionales según sea necesario.
Cada clave de tarea contiene el siguiente conjunto de valores que representan las características que se aplicarán a los subprocesos asociados a la tarea.
Valor | Formato | Valores posibles |
---|---|---|
de afinidad | REG_DWORD | Máscara de bits que indica la afinidad del procesador. Tanto 0x00 como 0xFFFFFFFF indican que no se usa la afinidad del procesador. |
solo en segundo plano | REG_SZ | Indica si se trata de una tarea en segundo plano (sin interfaz de usuario). Los subprocesos de una tarea en segundo plano no cambian debido a un cambio en el foco de la ventana. Este valor se puede establecer en True o False. |
backgroundPriority | REG_DWORD | Prioridad en segundo plano. El intervalo de valores es de 1 a 8. |
de velocidad de reloj | REG_DWORD | Sugerencia usada por MMCSS para determinar la granularidad de la programación de recursos del procesador.Windows Server 2008 y Windows Vista: La velocidad de reloj máxima garantizada que usa el sistema si un subproceso se une a esta tarea, en intervalos de 100 nanosegundos. A partir de Windows 7 y Windows Server 2008 R2, esta garantía se quitó para reducir el consumo de energía del sistema. |
de prioridad de GPU | REG_DWORD | Prioridad de GPU. El intervalo de valores es 0-31. Esta prioridad aún no se usa. |
prioridad | REG_DWORD | Prioridad de la tarea. El intervalo de valores es de 1 (bajo) a 8 (alto). En el caso de las tareas con una categoría de programación de alto, este valor siempre se trata como 2. |
categoría de programación de | REG_SZ | Categoría de programación. Este valor se puede establecer en Alto, Medio o Bajo. |
de prioridad de SFIO | REG_SZ | Prioridad de E/S programada. Este valor se puede establecer en Inactivo, Bajo, Normal o Alto. Este valor no se usa. |
Nota
Para ahorrar energía, las aplicaciones no deben establecer la resolución del temporizador de todo el sistema en un valor pequeño a menos que sea absolutamente necesario. Para obtener más información, consulta rendimiento en la guía de desarrolladores de Windows 7 de .
Prioridades de subprocesos
MMCSS aumenta la prioridad de los subprocesos que trabajan en tareas multimedia de alta prioridad.
MMCSS determina la prioridad de un subproceso mediante los siguientes factores:
- Prioridad base de la tarea.
- Parámetro Priority de la funcióndeAvSetMmThreadPriority.
- Indica si la aplicación está en primer plano.
- Cantidad de tiempo de CPU que consumen los subprocesos de cada categoría.
MMCSS establece la prioridad de los subprocesos de cliente en función de su categoría de programación.
Categoría | Prioridad | Descripción |
---|---|---|
Alto | 23-26 | Estos subprocesos se ejecutan en una prioridad de subproceso inferior a solo determinadas tareas de nivel de sistema. Esta categoría está diseñada para tareas pro Audio. |
Medio | 16-22 | Estos subprocesos forman parte de la aplicación que está en primer plano. |
Bajo | 8-15 | Esta categoría contiene el resto de los subprocesos. Se garantiza un porcentaje mínimo de los recursos de CPU si es necesario. |
1-7 | Estos subprocesos han usado su cuota de recursos de CPU. Pueden seguir ejecutándose si no hay subprocesos de prioridad baja listos para ejecutarse. |