Служба мультимедийного планировщика классов
Служба мультимедийного планировщика классов (MMCSS) позволяет мультимедийным приложениям гарантировать, что их обработка с учетом времени получает приоритетный доступ к ресурсам ЦП. Эта служба позволяет мультимедийным приложениям использовать как можно больше ресурсов ЦП, не запрещая ресурсы ЦП приложениям с более низким приоритетом.
MMCSS использует сведения, хранящиеся в реестре, для определения поддерживаемых задач и определения относительного приоритета потоков, выполняющих эти задачи. Каждый поток, выполняющий работу, связанную с определенной задачей, вызывает функцию AvSetMmMaxThreadCharacteristics или AvSetMmThreadCharacteristics , чтобы сообщить MMCSS о том, что она работает над этой задачей.
Пример программы, использующей MMCSS, см. в разделе Потоки в монопольном режиме.
Windows Server 2003 и Windows XP: MMCSS недоступна.
Параметры реестра
Параметры MMCSS хранятся в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
Этот ключ содержит значение REG_DWORDс именем SystemResponsiveness , которое определяет процент ресурсов ЦП, которые должны быть гарантированы для задач с низким приоритетом. Например, если это значение равно 20, 20 % ресурсов ЦП зарезервировано для низкоприоритетных задач. Обратите внимание, что значения, не делимые равномерно на 10, округляются до ближайшего значения, кратного 10. Значение 0 также обрабатывается как 10.
Ключ также содержит подраздел с именем Tasks , содержащий список задач. По умолчанию Windows поддерживает следующие задачи:
- Звук:
- возможность использования функции записи.
- Distribution
- Игры
- Воспроизведение
- Pro Audio
- Диспетчер окон
Изготовители оборудования могут добавлять дополнительные задачи по мере необходимости.
Каждый ключ задачи содержит следующий набор значений, представляющих характеристики, применяемые к потокам, связанным с задачей.
Значение | Формат | Возможные значения |
---|---|---|
Сходство | REG_DWORD | Битовая маска, указывающая сходство процессора. И 0x00, и 0xFFFFFFFF указывают на то, что сходство процессоров не используется. |
Только фон | REG_SZ | Указывает, является ли эта задача фоновой (без пользовательского интерфейса). Потоки фоновой задачи не изменяются из-за изменения фокуса окна. Для этого значения можно задать значение True или False. |
BackgroundPriority | REG_DWORD | Приоритет фона. Диапазон значений — 1–8. |
Частота синхронизации | REG_DWORD | Указание, используемое MMCSS для определения детализации планирования ресурсов процессора. Windows Server 2008 и Windows Vista: Максимальная гарантированная частота часов, используется системой при соединении потока с этой задачей в 100-наносекундные интервалы. Начиная с Windows 7 и Windows Server 2008 R2, эта гарантия была удалена для снижения энергопотребления системы. |
Приоритет GPU | REG_DWORD | Приоритет GPU. Диапазон значений — от 0 до 31. Этот приоритет пока не используется. |
Приоритет | REG_DWORD | Приоритет задачи. Диапазон значений от 1 (низкий) до 8 (высокий). Для задач с высокой категорией планирования это значение всегда считается 2. |
Категория планирования | REG_SZ | Категория планирования. Для этого значения можно задать значение Высокий, Средний или Низкий. |
Приоритет SFIO | REG_SZ | Запланированный приоритет ввода-вывода. Для этого значения можно задать значение "Бездействуй", "Низкий", "Обычный" или "Высокий". Это значение не используется. |
Примечание
Для экономии энергии приложения не должны устанавливать разрешение таймера на уровне системы на небольшое значение, если это не является абсолютно необходимым. Дополнительные сведения см. в разделе Производительностьв руководстве разработчиков для Windows 7.
Приоритеты потоков
MMCSS повышает приоритет потоков, работающих над высокоприоритетными мультимедийными задачами.
MMCSS определяет приоритет потока, используя следующие факторы:
- Базовый приоритет задачи.
- Параметр Priority функции AvSetMmThreadPriority .
- Указывает, находится ли приложение на переднем плане.
- Сколько времени ЦП потребляет потоки в каждой категории.
MMCSS задает приоритет клиентских потоков в зависимости от их категории планирования.
Категория | Приоритет | Описание |
---|---|---|
Высокий | 23-26 | Эти потоки выполняются с приоритетом потока, который ниже, чем только некоторые задачи системного уровня. Эта категория предназначена для задач Pro Audio. |
Средний | 16-22 | Эти потоки являются частью приложения, которое находится на переднем плане. |
Низкий | 8-15 | Эта категория содержит остаток потоков. При необходимости гарантируется минимальный процент ресурсов ЦП. |
1-7 | Эти потоки использовали квоту ресурсов ЦП. Они могут продолжать выполняться, если потоки с низким приоритетом не готовы к запуску. |