Периодически ли пересчитывается приоритет процесса ОС?

319
tom.wolanski

У меня есть вопрос относительно графика win-7 и приоритета процесса.

Сценарий таков: у меня запущен процесс, изначально с приоритетом "Normal"

Я считаю, что этот процесс часто сводится к фону (низкий уровень ввода / вывода). Я заканчиваю тем, что устанавливаю приоритет обратно на «Нормальный» или «Выше Нормального», однако через несколько минут он снова уменьшится.

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

Итак, вопрос заключается в следующем: пересчитывается ли приоритет процесса, чтобы покрыть его использование ввода-вывода? Процесс в этой ситуации - Visual Studio 2015, который использует довольно много HDD, что может быть узким местом.

3

3 ответа на вопрос

0
Keltari

Насколько я знаю, операционные системы Windows не изменят приоритет процесса, если не указано иное. Однако это не означает, что приоритет не может быть изменен запущенной программой. Существует свойство .NET с именем Process.PriorityClass, которое может изменять приоритет. Возможно, VS решает, что может уменьшить использование своего процессора, чтобы позволить другим потокам больше процессорного времени?

Спасибо за этот ответ. Да, известно, что изменение приоритета возможно программно, но это не решает начальную проблему. Да, это может быть связано с VS, но такая же конфигурация на другом компьютере работает хорошо. Итак, я не могу дать вам награду, потому что ваш ответ не решает начальную проблему. tym32167 7 лет назад 0
0
panos415

Изменение приоритета процесса в ситуации, которую вы описываете, не является необычным.

Чтобы упростить ситуацию, давайте подумаем о ситуации следующим образом: более высокий приоритет обычно означает, что процесс «просыпается» чаще, чем процесс с более низким приоритетом (для выполнения некоторой работы). Учитывая, что ваш процесс выполняет много (случайного) дискового ввода-вывода, поддержание его на высоком приоритете означает, что он часто "просыпается" только для того, чтобы ждать, пока диск вернет данные. Поскольку переключение процессов может быть дорогой / трудоемкой операцией, снижение приоритета процесса, интенсивно использующего диск, приводит к лучшему использованию процессора. Другими словами, регулируя приоритет процесса, процессор может тратить больше времени на выполнение работы, а не тратить это время на переключение между процессами.

Я думаю, что более вероятно, что VS или сам процесс делают перераспределение приоритетов.

Этот ответ не решает исходную проблему, но, по крайней мере, объясняет, почему это происходит. Спасибо. tym32167 7 лет назад 0
0
jan-glx

Планировщик окон, скорее всего, будет косвенно учитывать использование ввода-вывода (потому что он будет планировать процессы реже, которые возвращаются быстро, как процессы, ожидающие ввода-вывода). Однако приоритет процесса должен быть числом, установленным пользователем [или другими программами (включая сам процесс)], и далее влиять на планировщик. ... Хватит моих диких догадок.

Эти ответы sugegst с помощью Prio, чтобы сохранить приоритет процесса (вынужденный фоновой службой) может также помочь в вашем случае.