Женя Шапкин
Профи
(758)
11 лет назад
Приоритет процесса
Наверняка, практически все знают что такое приоритет процесса, если же нет, постараюсь кратко объяснить.
Это понятие, в определенном смысле, равно как для Windows, так и для Linux, а так же для некоторых других операционных систем.
Сейчас речь пойдет об операционных системах Windows Vista и Windows 7.
Windows Vista и Wnidows 7, впрочем, как и предыдущие версии, системы мультизадачные, т. е. могут выполнять параллельно множество программ, причем, еще и мультипоточные, но это уже отклонение, точнее, ненужное углубление в тему.
Каждая программа, запущенная в Windows, представляет из себя процесс или несколько процессов.
Под каждый процесс, при его запуске, в системе выделяется память, а так же устанавливается приоритет по умолчанию, если только в самой программе нет упоминания о приоритете, с которым необходимо её запускать.
Чем выше приоритет процесса, тем больше ему выделяется процессорного времени, чем ниже приоритет, тем меньше процессу выделяется процессорного времени.
Или если простым языком — чем выше приоритет, тем чаще и больше процессор «уделяет внимание» процессу и его операциям, а чем ниже приоритет, тем меньше «уделяет внимание» .
Соответственно это сказывается на скорости выполнение той или иной программы.
Практическая польза от изменения приоритета процесса
В Windows 7 меня изначально удивлял тот факт, что по-сути чисто декоративным процессам, вроде sidebar.exe (гаджеты на рабочий стол) уделяется процессорного времени ровно столько же, как и остальным процессам.
При этом sidebar.exe сам по себе не выполняет каких-то сверх важных и сверх нужных функций. Так зачем же ему уделять столько же процессорного времени, как, например, тяжелому ресурсоёмкому приложению, вроде 3D-игры или 3D-редактора с большой сценой?
Исходя из этого вопроса я и начал, что называется, играть с приоритетами процессов.
Главное что я понял, выше приоритета Normal (Средний) пользовательским программам лучше не подниматься, ибо тогда Windows Vista/7 может начать некорректно распределять процессорное время и некоторые важные системные процессы начнут «подтормаживать» .
На самый крайний случай, нужному вам пользовательскому процессу можно выставить приоритет AboveNormal (Выше среднего) , но это в очень редких случаях добавляет ощутимую разницу в производительности программе.
Но при этом никто не запрещает снизить приоритет другим, мало или не столь важным процессам, дабы они не отъедали ценное процессорное время, например, у игры.
Часто такие манипуляции действительно позволяют выиграть 5-10FPS.
Источник: НЭТ
Attiny13
Мастер
(1445)
11 лет назад
Процессор не может в один момент времени обрабатывать сразу много процессов, операционная система многозадачна она выполняет сразу много процессов, делает это она быстрым переключением с одного процесса на другой, таким убразом каждому процессу выеляет ресурсы процессора на небольшой промежуток времени, а потом отдаёт их другому процессу, и т. д. так пробегается по всем процессам, среди которых вообщем то есть и те процессы которые представляют саму операционную систему.
Приоритет как рас определяет как много апаратных ресурсов будет выделяться этому процессу. Если например у какого то процесса приоритет больше, то операцинока будет чаще на него переключаться, тем самым отдавая ему больше системных ресурсов.