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



из того, что я читал в прошлом, вам рекомендуется не изменять приоритет ваших приложений windows программно, и если вы это сделаете, вы никогда не должны менять их на "realtime".



Что делает параметр приоритета процесса "в реальном времени" по сравнению с "высоким" и "выше нормального"?

7185   7  

7 ответов:

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

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

для Vista и за ее пределами, один вариант для приложений, которые требуют, чтобы они работали на приоритеты в реальном времени-использовать Служба Планировщика Мультимедийных Классов (MMCSS) и пусть он управляет вашим приоритетом потоков. MMCSS не позволит вашему приложению использовать слишком много времени процессора, поэтому вам не придется беспокоиться о заправке машины.

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

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

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

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

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

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

в режиме реального времени является высшим приоритетом класс доступно для процесса. Поэтому он отличается от "высокого" тем, что он на один шаг больше, и "выше нормального" тем, что он на два шага больше.

аналогичным образом, в режиме реального времени также уровень приоритета потока.

приоритет процесса класс повышает или понижает все эффективные приоритеты потоков в процессе и поэтому считается "базовым приоритетом".

Итак, процесс а:

  1. базовый класс приоритета процесса.
  2. индивидуальные приоритеты потоков, смещения базового класса приоритета.

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

в NT6+ (Vista+), использование Vista Планировщик мультимедийных классов-это правильный способ достижения операций в реальном времени в том, что не ОС реального времени. Это работает, по большей части, хотя и не идеально, так как ОС не предназначена для операций в реальном времени.

Microsoft считает этот приоритет очень опасным, правильно. Ни одно приложение не должно использовать его, кроме как в очень специализированных обстоятельствах, и даже тогда пытаться ограничить его использование временными потребностями.

Как только Windows узнает, что программа использует более высокий, чем обычно, приоритет, похоже, ограничивает приоритет процесса.

установка приоритета от простоя до реального времени не изменяет использование ЦП.

Я обнаружил на своем многопроцессорном процессоре AMD, что если я отброшу один из процессоров ot, как последний, использование процессора будет максимальным, а последний процессор останется без работы. Скорость процессора увеличивается до 75% на моем четырехъядерном AMD.

использовать Диспетчер задач - > выбрать процесс - > справа Нажмите на процесс- > выбрать - >установить сходство Щелкните все, кроме последнего процессора. Использование ЦП увеличится до максимума на остальных процессорах и подсчетах кадров, если обработка видео увеличится.

Это в основном выше / больше во всем остальном. Клавиатура имеет меньший приоритет, чем процесс в реальном времени. Это означает, что процесс будет учитываться быстрее, чем клавиатура, и если он не может справиться с этим, то ваша клавиатура замедляется.

Как и все другие ответы, прежде чем в режиме реального времени дает этой программе класс наивысшего приоритета. Ничего не обрабатывается до тех пор, пока эта программа не будет обработана.
На моей машине pentium 4 я установил minecraft в режиме реального времени много, так как это значительно повышает производительность игры, и система кажется полностью стабильной. так что realtime не так плох, как кажется, просто если у вас есть многоядерный набор привязанности программы к определенному ядру или ядрам (просто не все из них, просто чтобы все остальное могло работать в случае, если программы установки реального времени зависают) и установите приоритет в режиме реального времени.

Comments

    Ничего не найдено.