Для чего устанавливает приоритет процесса 'в реальном времени'?

  • Автономные модули, которые должны все же быть запущены
  • Недостающие средства разработки, которые они могут интегрировать (как автоматизированный менеджер по сборке)

, Прежде всего, я думаю о вещах, которые позволяют им остаться вне пути в настоящее время разрабатывающих людей. Я действительно соглашаюсь с Мифическим Месяцем Человека, но я также думаю, что существуют исключения ко всему.

65
задан Community 3 September 2019 в 14:31
поделиться

3 ответа

Поток с приоритетом в реальном времени никогда не может быть вытеснен прерываниями таймера и выполняется с более высоким приоритетом, чем любой другой поток в системе. Таким образом, поток с приоритетом реального времени, связанный с ЦП, может полностью разрушить машину.

Для создания потоков с приоритетом в реальном времени требуется привилегия ( SeIncreaseBasePriorityPrivilege ), поэтому это могут делать только пользователи с правами администратора.

Для Vista и выше. , один из вариантов для приложений, которые действительно требуют, чтобы они выполнялись с приоритетами в реальном времени, - это использовать службу Multimedia Class Scheduler Service (MMCSS) и позволить ей управлять приоритетом ваших потоков. MMCSS предотвратит использование вашим приложением слишком большого количества процессорного времени, поэтому вам не придется беспокоиться о том, что машина будет загружена.

77
ответ дан 24 November 2019 в 15:25
поделиться

Проще говоря, класс приоритета «Реальное время» выше, чем класс приоритета «Высокий». Я не думаю, что в этом есть что-то еще. Ах да, у вас должен быть SeIncreaseBasePriorityPrivilege , чтобы поместить поток в класс реального времени.

Windows иногда повышает приоритет потока по разным причинам, но не повышает приоритет поток в другой класс приоритета. Это также не повысит приоритет потоков в классе приоритета реального времени. Таким образом, поток с высоким приоритетом не получит никакого автоматического временного повышения класса приоритета реального времени.

Глава Руссиновича «Внутри Windows» о том, как Windows обрабатывает приоритеты, является отличным ресурсом для изучения того, как это работает:

Обратите внимание, что нет абсолютно никаких проблем с потоком, имеющим приоритет реального времени в нормальной системе Windows - их нет. t обязательно для специальных процессов, запущенных на выделенных машинах. Я полагаю, что мультимедийным драйверам и / или процессам могут потребоваться потоки с приоритетом в реальном времени. Однако такой поток не должен требовать много CPU - он должен большую часть времени блокировать, чтобы нормальные системные события могли обрабатываться.

Я полагаю, что мультимедийным драйверам и / или процессам могут потребоваться потоки с приоритетом в реальном времени. Однако такой поток не должен требовать много CPU - он должен большую часть времени блокировать, чтобы нормальные системные события могли обрабатываться.

Я полагаю, что мультимедийным драйверам и / или процессам могут потребоваться потоки с приоритетом в реальном времени. Однако такой поток не должен требовать много CPU - он должен блокировать большую часть времени, чтобы нормальные системные события могли обрабатываться.

25
ответ дан 24 November 2019 в 15:25
поделиться

Это будет наивысший доступный параметр приоритета, и обычно он используется только в блоке, предназначенном для выполнения этой конкретной программы. На самом деле он достаточно высок, чтобы вызвать нехватку потоков клавиатуры и мыши до такой степени, что они перестанут отвечать.

Итак, в основном, если вам нужно спросить, не используйте его :)

16
ответ дан 24 November 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: