Вопрос

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

Что делает настройка приоритета процесса «В реальном времени» по сравнению с настройками «Высокий» и «Выше нормального»?enter image description hereenter image description here

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top