Compartir a través de


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.