Для чего нужна настройка приоритета процесса «в реальном времени»?

Из того, что я читал в прошлом, вам рекомендуется не изменять приоритет ваших приложений Windows программно, а если вы это сделаете, вам никогда не следует менять их на «Реальное время».

Что делает параметр приоритета процесса «В реальном времени» по сравнению с «Высоким» и «Выше нормального»?Приоритет процесса  список, начиная от низкого до реального времени».  /></p>
    </div>

    <br>

    <div class=

person Chris S    schedule 02.11.2009    source источник


Ответы (7)


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

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

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

person ReinstateMonica Larry Osterman    schedule 03.11.2009
comment
Может ли быть опасно для системы, если один случайный процесс (например, видеоигра) будет иметь приоритет реального времени? Будет ли рекомендован высокий приоритет/будет ли заметное падение производительности для этого приложения? - person mrfred; 09.04.2015
comment
@mrfred Я бы не сказал, что это опасно, просто это замедляет работу всей системы, если это большая программа. Попробуйте установить приоритет Minecraft на Realtime. Поверь мне, это весело. Ваша мышь замедляется, клавиши реагируют через 5 секунд, а explorer.exe перестает отвечать на запросы! - person AMDG; 08.07.2015
comment
@mrfred Я лично запускал Skyrim с высоким приоритетом и приоритетом в реальном времени в течение нескольких месяцев, и это сделало игру намного более плавной, только со случайными звуковыми артефактами (по какой-то причине). У меня никогда не было проблем с этим... Я предполагаю, что система, по крайней мере, перегреется, если что-то пойдет не так, но, конечно, я действительно не знаю, что МОЖЕТ пойти не так. Возможно, наличие нескольких ядер компенсирует нехватку ресурсов для устройств ввода-вывода и т. д. - person Totem; 28.06.2016
comment
Существует разница между приоритетом реального времени thread и базовым классом приоритета реального времени. Последнее относится ко всему процессу и без дополнительной настройки приоритетов отдельных потоков не приведет к тому, что какие-либо потоки будут работать в режиме реального времени. - person dyasta; 26.11.2020

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

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

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

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

person Michael Burr    schedule 02.11.2009
comment
Да, потоки в реальном времени подходят, если у вас есть поток, в котором не так много дел, но требуется обеспечить хорошее время отклика. - person Artelius; 03.11.2009
comment
Я знаю, что знаю, что это старый пост, но я нашел эту главу в книге действительно хорошей ... меня зацепило! google. ca/ - person MotherDawg; 22.02.2015
comment
Я нашел ссылку на главу книги благодаря Wayback Machine Archive.org: http://web.archive.org/web/20140909124652/http://download.microsoft.com/download/5/b/3/5b38800c-ba6e-4023-9078-6e9ce2383e65/C06X1116607.pdf (кстати, я настоятельно рекомендую система пользовательского поиска в Chrome, например: i.imgur.com/0kNVAi0.png). Затем вы просто набираете wayback‹tab› и вставляете тот же URL-адрес, по которому находитесь. Возможно, вам придется удалить префикс http://. - person Brent Rittenhouse; 22.10.2018

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

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

person Eric Petroelje    schedule 02.11.2009
comment
Согласованный. Важно знать, что это значит (самый высокий приоритет отдается этому потоку, прежде всего), но если вы когда-нибудь поймаете себя на том, что должны ли вы использовать его, вы определенно не должны этого делать. - person Daniel T.; 03.11.2009
comment
как ты собираешься научиться им пользоваться, если ты не спрашиваешь, как им пользоваться? Я думаю, вы можете использовать его и посмотреть, что произойдет, тогда вы узнаете, но я чувствую, что ваше обучение обескураживает - person fifamaniac04; 09.06.2015

Реальное время — это класс с наивысшим приоритетом, доступный для процесса. Таким образом, он отличается от «Высокого» тем, что он на один шаг выше, а от «Выше нормального» — на два шага выше.

Точно так же режим реального времени также является уровнем приоритета потока.

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

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

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

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

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

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

person dyasta    schedule 23.04.2011

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

Установка приоритета с IDLE на REALTIME НЕ меняет использование ЦП.

Я обнаружил на своем многопроцессорном процессоре AMD, что если я отключу один из процессоров, например, ПОСЛЕДНИЙ, использование ЦП будет МАКСИМАЛЬНЫМ, а последний ЦП останется бездействующим. Скорость процессора увеличивается до 75% на моем Quad AMD.

Используйте Диспетчер задач-> выберите процесс-> Щелкните правой кнопкой мыши процесс-> Выбрать-> Установить сходство. Щелкните все, кроме последнего процессора. Использование ЦП увеличится до МАКСИМАЛЬНОГО на оставшихся процессорах, а количество кадров увеличится, если обработка видео увеличится.

person wizkid18    schedule 21.10.2012
comment
Вы правы в том, что изменение класса приоритета процесса не влияет на загрузку ЦП, пока не возникает конкуренция за ЦП. НО, вы ошибаетесь, думая, что Windows ограничивает максимальные приоритеты процессов в зависимости от загрузки ЦП. Вместо этого привилегия безопасности защищает от настройки «реального времени», чтобы предотвратить случайное использование. - person dyasta; 16.08.2014
comment
(читает годы спустя) - Проблема здесь в том, что нити нельзя разделить. Таким образом, у вас может быть 8 ядер, но только 2 потока, привязанных к ЦП (100% активных). Таким образом, вы говорите, почему мои другие 6 ядер не используются? Или, в вашем случае, почему не используется мое последнее ядро? Остальные ядра, похоже, ничего не делают. И это то, как вы этого хотите. Если бы поток переключался с ядра на ядро, это снижало бы производительность. Разработчик приложений должен использовать многопоточность, а не все может быть многопоточным. - person dyasta; 21.09.2017

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

person Cheaty Hotbeef    schedule 23.05.2015

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

person Sam Hook    schedule 28.12.2016