Изменение приоритета процесса в windows 7. Как установить и сохранить приоритет процесса в диспетчере задач Windows

/REALTIME

Управление ценностями действий в Windows

Давайте побеседуем о ценностях Windows процессов. В большинстве случаев «играться» с настройкой ценностей нет необходимости, но, время от времени, грамотный системный админ может посодействовать системе наиболее верно распределить процессорное время меж запущенными задачками. Одного рецепта нет, но методом «подбора и перебора» это полностью реализуемо. Где это может понадобиться? К примеру, в связке 1С-SQL можно отдать больше процессорного времени 1С и SQL, как более критичным к ресурсам процессам.

В общем случае, поглядеть и поменять ценность запущенного процесса можно через Task Manager

Windows NT/2000/7/2008

В Windows 2012 это “закопали» чуток глубже

Как видно из приведенных примеров, для вас доступно всего 6 ценностей (как выяснится позднее, это классы приоритетов). Достаточно? Microsoft считает, что да. Но давайте вспомним «легендарную» фразу Билла Гейста, который произнес, что «640 KB of RAM will be enough for everybody”. Но время показало, что это далековато не так. : )

А сейчас давайте разберемся, как это есть на самом деле.

На самом деле в Windows существует 32 уровня приоритета, от 0 до 31.

Они группируются так:

  • 31 — 16 уровни настоящего времени;
  • 15 — 1 динамические уровни;
  • — системный уровень, зарезервированный для потока обнуления страничек (zero-page thread).

При разработке процесса, ему назначается один из 6 классов приоритетов:

  1. Real time class (значение 24),
  2. High class (значение 13),
  3. Above normal class (значение 10),
  4. Normal class (значение 8),
  5. Below normal class (значение 6),
  6. или Idle class (значение 4).

Посмотреть ценность процесса, как писалось выше, можно, используя Task Manager.

Примечание: Ценности Above normal и Below normal возникли, начиная с Windows 2000.

Приоритет каждого потока (базовый ценность потока) складывается из приоритета его процесса и относительного приоритета самого потока. Есть семь относительных ценностей потоков:

  1. Normal: таковой же как и у процесса;
  2. Above normal: +1 к приоритету процесса;
  3. Below normal: -1;
  4. Highest: +2;
  5. Lowest: -2;
  6. Time critical: устанавливает базисный ценность потока для Real time класса в 31, для других классов в 15.
  7. Idle: устанавливает базисный ценность потока для Real time класса в 16, для других классов в 1.
Читайте также  Как создать в outlook группу для рассылки. Создание списка рассылки в Outlook 2010

В последующей таблице показаны ценности процесса, относительный и базисный ценности потока.

Приоритет потока Класс процесса Класс процесса
Idle class Below normal class Normal class Above normal class High class Real time class
1 Idle Idle Idle Idle Idle
2 Lowest
3 Below …
4 Idle class Normal Lowest
5 Above … Below …
6 Below normal class Highest Normal Lowest
7 Above … Below …
8 Normal class Highest Normal Lowest
9 Above … Below …
10 Above normal class Highest Normal
11 Above … Lowest
12 Highest Below …
13 High class Normal
14 Above …
15 Highest
15 Time critical Time critical Time critical Time critical Time critical
16 Idle
17
18
19
20
21
22 Lowest
23 Below …
24 Real time class Normal
25 Above …
26 Highest
27
28
29
30
31 Time critical

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

Как еще можно запустить процесс с «нестандартным» ценностью либо изменить?

Метод 1. Запустить задачу/процесс и поменять ценность через Task Manager.

Минусы метода:

  • Доступно лишь 6 приоритетов
  • Переключение ценностей делается мышкой, не автоматизируется.

Метод 2. Можно пользоваться командой START с надлежащими ключами

Доступные ключи, отвечающие за ценности, последующие (я специально опускаю ключи командной строчки команды START не имеющие дела к описываемому процессу работы с приоритетами):

Как лицезреем, команда START дает возможность запустить процесс все с теми же 6-ю ценностями, которые доступны через Task Manager

Минус метода:

  • Доступно лишь 6 приоритетов

Метод 3. Внедрение утилиты wmic.exe

Как было показано выше, Task Manager, и команда START довольно неуклюжи для задачки назначения ценностей. Поглядим, как это использовать наиболее гибко. Будем применять утилиту wmic.exe.

Читайте также  Служба сетевые подключения windows 7. Windows 7 — Пропали сетевые подключения

Командная строка:

Пример:

или

Приоритеты (предопределенные):

  • idle: 64
  • below normal: 16384
  • normal: 32
  • above normal: 32768
  • high priority: 128
  • real time: 256
Отступление. Что делать ежели существует несколько одноименных процессов? Ценность процесса можно поменять как по имени процесса, так и с внедрением PID (Process ID) процесса.

Вот маленький пример пуска wmic.exe для получения нужной информации

Используем команду:

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

Вы получите перечень действий, запущенных на вашем локальном компе. Сейчас выполните команду:

Результат:

Специально запустил несколько копий cmd.exe, чтоб иллюстрация была наиболее полной.

Теперь перечень действий ограничен лишь теми действиями, в имени исполняемого модуля которых находится строчка «cmd.exe». Обратите внимание на PID процесса(ов).

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

Результат:

Сравните приобретенные результаты. Запомните PID процесса CMD.EXE.

Командная строчка для пуска wmic.exe

Ну а сейчас можем поменять ценность определенного процесса (например с PID=8476):

или

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

Оставьте комментарий