Планировщик процессора распределение приоритета
Потоки планируются для запуска на основе их приоритета планирования. Каждому потоку назначается приоритет планирования. Уровни приоритета находятся в диапазоне от нуля (самый низкий приоритет) до 31 (наивысший приоритет). Только поток нулевой страницы может иметь приоритет, равный нулю. (Поток нулевой страницы — это системный поток, ответственный за обнуление свободных страниц при отсутствии других потоков, которые необходимо выполнить.)
Система рассматривает все потоки с одинаковым приоритетом, равным. Система назначает временные срезы циклическим перебору для всех потоков с наивысшим приоритетом. Если ни один из этих потоков не готов к выполнению, система назначает временные срезы циклическим перебору для всех потоков со следующим высшим приоритетом. Если поток с более высоким приоритетом станет доступным для выполнения, система прекратит выполнение потока с низким приоритетом (не позволяя ему завершить работу с его временным срезом) и назначает полный временной срез для потока с более высоким приоритетом. Дополнительные сведения см. в разделе контекстные переключения.
Приоритет каждого потока определяется следующими критериями.
- Класс приоритета его процесса
- Уровень приоритета потока в классе приоритета его процесса
Класс приоритета и уровень приоритета объединяются для формирования базового приоритета потока. Сведения о динамическом приоритете потока см. в разделе повышение приоритета.
Приоритеты потоков
Планирование потоков полагается на их приоритеты. Windows использует 32 уровня приоритета для потоков от 0 до 31:
- 16 — 31 — уровни реального времени;
- 1 — 15 — обычные динамические приоритеты;
- 0 — зарезервирован для потока обнуления страниц.
Вначале поток получает свой Базовый приоритет, который наследуется от приоритета процесса:
Дальше назначается относительный приоритет который увеличивает или уменьшает приоритет потока:
После получения базового приоритета и корректировки относительным приоритетом получается динамический приоритет:
Изменить базовый приоритет процесса можно из “Диспетчера задач” на вкладке “Подробности“, или в “Process Explorer“. Однако, это не поменяет относительный приоритет потока.
Приоритеты отдельных потоков можно посмотреть в программе “Process Explorer“. Но изменять их нет смысла, так как только разработчик данной программы понимает как лучше расставить приоритеты потокам.
Получается что относительный приоритет у потока Notepad.exe равен 2, так как динамический приоритет больше базового на 2.
Изменение приоритета
Итак, чтобы поменять приоритет работающей программы (процесса) в Windows — необходимо воспользоваться диспетчером задач. Для того, чтобы его вызвать — нажмите сочетание кнопок Ctrl+Shift+Esc (либо Ctrl+Alt+Del).
Для вызова диспетчера задач — нажмите Ctrl+Shift+Esc
Далее откройте вкладку "Подробности" (это для Windows 11/10, для Windows 7 — "Процессы" ) и найдите в списке нужный процесс ( прим. : название программы совпадает с названием процесса).
После, на нужном процессе кликните правой кнопкой мышки: в появившемся меню перейдите во вкладку "Задать приоритет" и укажите нужный вам. 👇
Задание приоритета для запущенного процесса
Собственно, на этом всё! Теперь запущенная программа будет работать с новым приоритетом. 📌 При выставлении приоритета реального времени — возможно, компьютер начнет тормозить и зависать!
Класс Priority
Каждый процесс принадлежит одному из следующих классов приоритета: _класс приоритета простоя _
НИЖЕ _ обычного _ класса приоритета _
_класс обычного приоритета _
ВЫШЕ _ класса с нормальным _ приоритетом _
класс с высоким _ приоритетом _
_класс приоритета в режиме реального времени _
По умолчанию класс приоритета процесса — это класс с НОРМАЛЬным _ приоритетом _ . Используйте функцию CreateProcess , чтобы указать класс приоритета дочернего процесса при его создании. Если вызывающий процесс является _ классом приоритета простоя _ или ниже _ обычного _ класса приоритета _ , новый процесс будет наследовать этот класс. Используйте функцию жетприоритикласс для определения текущего класса приоритета процесса и функции сетприоритикласс , чтобы изменить класс приоритета процесса.
Процессы, выполняющие мониторинг системы, такие как экранные заставки или приложения, которые периодически обновляют отображение, должны использовать _ класс приоритета простоя _ . Это препятствует потокам этого процесса, которые не имеют высокого приоритета, от влияния на потоки с более высоким приоритетом.
Используйте _ класс с высоким приоритетом _ с осторожностью. Если поток выполняется с наивысшим приоритетом для расширенных периодов, другие потоки в системе не будут получать процессорное время. Если несколько потоков одновременно устанавливаются с высоким приоритетом, потоки теряют свои эффективность. Класс с высоким приоритетом должен быть зарезервирован для потоков, которые должны отвечать на критические по времени события. Если приложение выполняет одну задачу, для которой требуется класс с высоким приоритетом, в то время как остальные задачи имеют нормальный приоритет, используйте сетприоритикласс , чтобы временно вызвать класс приоритета приложения. затем сократите его после завершения задачи, критичной по времени. Другая стратегия состоит в том, чтобы создать высокоприоритетный процесс, в большинстве случаев блокирующий все его потоки, выводят потоки только при необходимости выполнения критических задач. Важно отметить, что поток с высоким приоритетом должен выполняться в течение короткого промежутка времени и только тогда, когда он имеет критическую для выполнения работу.
Почти никогда не следует использовать _ класс приоритета реального времени _ , так как это прерывает системные потоки, управляющие вводом мыши, вводом с клавиатуры и фоновым сбросом дисков. Этот класс может быть пригоден для приложений, которые «говорите» непосредственно на оборудование или выполняют короткие задачи, которые должны иметь ограниченные перерывы.
Эксперимент
Позвольте продемонстрировать следующий эксперимент, который покажет как посмотреть за повышением и понижением динамического приоритета:
- Запустите программу «Блокнот».
- Запустите «Системный монитор».
- Щелкните на кнопке панели инструментов «Добавить» (Add Counter).
- Выберите объект «Поток» (Thread), а затем выберите счетчик «Текущий приоритет» (Priority Current).
- В поле со списком введите «Notepad», а затем щелкните на кнопке «Поиск» (Search).
- Найдите строку «Notepad/0». Выберите ее, щелкните на кнопке «Добавить» (Add), а затем щелкните на кнопке «ОК».
- Как только вы щелкните мышкой по блокноту, то заметите в Системном мониторе, что приоритет у потока «Блокнот» поднялся до 12, если свернуть блокнот то приоритет вновь упадет до 10.
Настройка CPU Control, чтобы еще сильнее ускорить процессор
Дальше есть несколько путей, а именно:
- Ручной , т.е когда мы задаем для каждого процесса всё сами, т.е на каком ядре/ах он будет, что называется обрабатываться;
- Авто , т.е, когда программа сама назначает распределение по ядрам, чтобы ускорить наш процессор;
- CPU1 , т.е, когда приоритет отдается первому ядру;
- CPU2 , т.е, когда приоритет отдается второму ядру;
- И тд.
Последние два нас не интересуют, ибо идея передачи нагрузки куда-то в одно место мне не ясна. Мы как-никак занимаемся оптимизацией, а не наоборот :). Поэтому будем работать с первыми двумя.
Для начала пару слов про " Авто ". Это довольно удобный режим, когда нет особого желания заморачиваться с тонкой настройкой или знаний на эту самую настройку не хватает. Посему можно выбрать этот режим и один из 9 профилей для него, которые, на базе неких правил, распределяют приложения по ядрам.
Так можно получить неплохой прирост производительности без особых заморочек, особенно, если некоторое время повыбирать правильный профиль под Вашу текущую систему.
Второй вариант, как уже говорилось,- это режим "Ручной" . Он более сложен, т.к требует определенного понимания концепции работы системы, приложений и тп.
Перейдя в этот режим, Вы сможете сами распределять процессы по ядрам или группам ядер. Делается это путем выделения одного или нескольких процессов и последующим нажатием правой кнопки мышки. Здесь собственно, CPU и его номер - это номер ядра.
Т.е. если Вы хотите ускорить процессор и повесить процесс на 4 -ое ядро, то выбираете CPU4 , если на 1 -ое и 3 -тье, то CPU 1+3 , и тд. Думаю, что идея ясна. Теперь о том как лучше распределять.
Глобально, имеет смысл растаскивать процессы на группы, а ресурсоёмким приложением выделять все ядра сразу. Т.е, например, фаерволл и антивирус отдать на попечение 3+4 ядер, системные мелкие процессы, а так же небольшие программы, вроде аськи , Punto Switcher и прочую шушеру на 1-ое, игры-фотошоп-прочее-тяжелое на 1+2+3+4 .
Либо, как вариант, попробовать всё повесить на все и посмотреть, что будет.
Список полезных примечаний, которые стоит знать
Что еще стоит знать и понимать по этой теме:
- Примечание : на вкладке Exlusions можно добавить приложения, которые Вы хотите исключить из списка оптимизируемых программой, т.е. она не будет присваивать оным какие-либо приортитеты. Для этого воспользуйтесь кнопкой Add new process и выберите программу, которую хотите исключить;
- Примечание 2 : на вкладке CPU Manager можно распределить процессы на разные ядра (кнопки Add new process и Run new process ), т.е, скажем, отвести одним программам одни ядра, а другим другие, что в некотором смысле может сказаться на приросте производительности. По принципу схоже с работой этой программы;
- Примечание 3 : я сам не сталкивался, но допускаю (пусть и маловероятно), что на некоторых машинках могут быть проблемы (в виде притормаживания системы) из-за выбора излишне высокого приоритета. В случае оных попробуйте использовать кружок High вместо Realtime .
Теперь перейдем к послесловию.
Работа с приоритетами
Как посмотреть результаты ускорения и вообще изменения
Мониторить нагрузку на ядра можно в том же диспетчере задач.
Важно включить в нем мониторинг нагрузки на ядра, что делается по кнопке “ Вид ” - “ Вывод времени ядра ” и “ Вид ” - “ Загрузка ЦП ” - “ По графику на каждый ЦП ”.
В идеале таки делать всё это не в режиме простоя сразу после запуска компьютера, а в режиме загруженной системы, т.е при запущенных ресурсоёмких приложениях, вроде игр, фотошопов или что там у Вас кушает ресурсы.
К слову, вот на 4 -х ядрах даже в автоматическом режиме прирост производительности значительно ощутим, зато на двух почему-то даже в ручную не всегда удается достигнуть мощи.
В общем и целом здесь огромное поле для экспериментов, которое Вам, надеюсь, будет изучить, ибо у каждого своя система, набор программ и всё такое прочее. Поле, кстати, минное, ибо легко можно добиться обратного эффекта вместо оптимизации, но зато как интересно поковыряться :).
Попробуйте использовать разные профили в авторежиме или ручную настройку, дабы добиться максимальной производительности на Вашем компьютере.
Как же ускорить компьютер на практике, используя программу
Месяца два назад я наткнулся на замечательную программку под названием Mz CPU Accelerator . Занимается она как раз тем, что автоматически изменяет процессорный приоритет активного окна или приложения на заранее указанный, что в общем-то нам и нужно, т.к именно оно и позволит ускорить процессор и компьютер.
Причем реализовано всё это реально редкостно удобно, логично и не требует лишних телодвижений от пользователя. Плюс к оному есть поддержка многопроцессорности (многоядерности) и возможности запуска приложения в отдельном сегменте (т.е, скажем, выделить программе только два ядра из четырех (это уже ближе к совсем точечной оптимизации)).
Примечание . Как я раньше не наткнулся на это чудо, - не знаю :)
В настройках в общем-то тоже ничего сложного, но я все таки опишу их. И так, запустив программу мы увидим перед собой её окно (если нет, то кликните по иконке (в виде меняющихся цифорок) в трее (это где часы)):
Переходим на вкладку Options и выставляем настройки как на скриншоте:
- ставим кружок Realtime ;
- отмечаем галочки Load on Windows startup (чтобы программа загружалась сразу при старте системы);
- Start Activated (чтобы программа была сразу активирована, т.е чтобы не требовала дополнительного нажатия кнопочки дабы приступить к своим обязанностям) и..
- Start Minimized (чтобы была изначально свернута в трей).
По желанию так же можете отметить Check for updates on startup (чтобы сразу проверялось не вышли ли обновления программы), а так же на свой вкус выбрать как программа будет отображаться в трее: Show Mz CPU Accelerator Icon (в трее будет иконка самой программы) либо Shows CPU Usage (показывает насколько загружен процессор) (из выпадающего списка выбирается цвет цифр).
Всё, остается только нажать кнопку Activate и наслаждаться тем как ускорился компьютер, точнее говоря, активное окно или приложение.
Поток простоя — idle
К вашему сведению процессор всегда обрабатывает какой-нибудь поток. Когда кажется что процессор ничем не занят, на самом деле запускается специальный поток idle (поток простоя). Притом, на каждое ядро процессора существует свой собственный поток простоя. В общем-то все потоки простоя принадлежат процессу простоя. Поток простоя имеет самый низкий приоритет (1), поэтому выполняется только тогда — когда полезных потоков нет.
Послесловие
Вот такая вот штука. Вообще мне программа очень понравилась, т.к она реально эффективна и позволяет ускорить компьютер и Windows , и, условно говоря, процессор.
К слову, по идее особенно сильно прирост ощутят владельцы многоядерных процессоров, а так же пользователи браузера FireFox (он процессорозависим и при получении Realtime приоритета начинает ощутимо шустрее летать (особенно в купе с этими настройками)) и всех кто как-то связан с процессорозависимыми полновесными приложениями (это я про всякие рендеры в фото, видео и 3D редакторах).
Если есть какие-то вопросы, то, как и всегда, спрашивайте в комментариях к статье, - буду рад помочь.
PS : Отзывы о личных ощущениях в плане прироста производительности интересны ничуть не меньше чем вопросы ;)
Белов Андрей (Sonikelf) Заметки Сис.Админа [Sonikelf's Project's] Космодамианская наб., 32-34 Россия, Москва (916) 174-8226
Доброго времени!
Первый и самый главный вопрос, с которого следовало бы начать данную статью: зачем вообще менять приоритет и стоит ли это делать. 👀
Представьте, вот вы запускаете тяжелую игру (или редактор видео, или еще что-то. ) далеко на не самом мощном компьютере. Причем, помимо вашей игры в Windows (обычно) запущено достаточно большое количество процессов, приложений. И в определенное время они могут "забирать" часть ресурсов себе — в результате игра время от времени притормаживает. 😥
Смена приоритета процесса же позволяет указать Windows, что запущенная игра — это первоочередная задача, которой нужно выделить все основные ресурсы (а все остальное может подождать. ) . Благодаря заданию приоритетов для самых "главных" для вас программ — можно снизить количество притормаживаний и лагов, ускорить их работу. 👌
Т.е. тема достаточно интересна, и может быть очень полезна как для любителей игр, так и для работы с видео, фото и пр. ресурсоемкими задачами.
Теперь ближе к сути.
Как ускорить процессор и компьютер с помощью настроек CPU Control
После запуска видим примерно такую картину:
Где сразу идем на вкладку “ Options ” и задаем галочками “ Автозапуск с Windows ”, “ Минимизировать ”, язык и ставим галочку 4 ядра, если у нас их, собственно, 4 или не ставим, если, собственно, их два.
Какие они бывают (основы)
У каждой запускаемой программы или процесса в Windows есть приоритет. Обычно, ОС Windows "сама знает" кому и что выделять, и делает это автоматически (без участия пользователя). Вообще разнообразие приоритетов не такое уж и большое:
- Idle (низкий) — программы, выполнение которых может и подождать (при выставлении данного приоритета некоторый софт может тормозить);
- Below Normal (ниже среднего);
- Normal (средний) — большинство программ запускаются со средним приоритетом;
- Above Normal (выше среднего);
- High (высокий);
- Real Time (реального времени) — самый высокий приоритет. При его выставлении — в первую очередь будет выполняться именно эта программа.
📌 Отмечу, что с приоритетом Real Time нужно быть крайне осторожным: в некоторых случаях при его выставлении — компьютер может зависнуть или Windows завершит работу с ошибкой. Поэтому, предпочтение стоит отдать варианту High !
📌 Еще один совет : нет необходимости выставлять приоритет каждой запускаемой программе (с этим Windows хорошо справляется в авто-режиме). Как правило, есть смысл указать приоритет для 2÷5 часто-используемых приложений, которые для вас наиболее важны (например, для любимой игры 😉).
Послесловие
В двух словах как-то так. Кто-то конечно скажет, что не стоит всем этим заморачиваться ради сколько-то процентного прироста и плавности работы, - Ваше право.
Я люблю возится с системой и доводить её скорость, удобство и всё такое прочее до новых высот, пусть и не всегда больш и х, но зато б о льших, т.е ускорять процессор хотя бы как-то.
Посмотрим, что получится у Вас. В общем, рекомендую хотя бы попробовать.
Белов Андрей (Sonikelf) Заметки Сис.Админа [Sonikelf's Project's] Космодамианская наб., 32-34 Россия, Москва (916) 174-8226
Состояния потоков
Поток может находиться в следующих состояниях:
- Готов (Ready) — поток готов к выполнению и ожидает процессор.
- Готов с отложенным выполнением (Deferred ready) — поток выбран для выполнения на конкретном ядре и ожидает именно это ядро.
- В повышенной готовности (Standby) — поток выбран следующим для выполнения на конкретном ядре. Как только сможет процессор выполнит переключение контекста на этот поток.
- Выполнение (Running) — выполняется на процессоре пока не истечет его квант времени, или пока его не вытеснит поток с большем приоритетом.
- Ожидание (Waiting) — поток ждет каких-то ресурсов.
- Переходное состояние (Transition) — готов к выполнению, но стек ядра выгружен из памяти, как только стек загрузится в память поток перейдет в состояние Готов.
- Завершение (Terminated) — поток выполнил свою работу и завершился сам, или его завершили принудительно.
- Инициализация (Initializated) — состояние при создании потока.
Сохранение приоритета с помощью настроек реестра
После перезагрузки компьютера (или при перезапуске программы) — установленный вами приоритет сбрасывается (т.е. Windows снова задает его автоматически). И это не очень удобно.
Но с помощью настроек реестра можно "сохранить" указанный вами приоритет (т.е. Windows будет "знать", что эту программу нужно запустить с таким-то приоритетом).
Как это сделать:
-
сначала необходимо открыть 👉 редактор реестра (нажмите Win+R , и введите команду regedit , нажмите OK);
regedit — открыть редактор реестра
Какую ветку в реестре нужно открыть
Узнаем название исполняемого файла игры / Кликабельно
Создание раздела / Реестр
Создать параметр DWORD32
Что получилось в итоге!
📌 Кстати!
Для Windows 7 есть спец. программа Prio, позволяющая задавать (и сохранять) приоритеты для практически любых программ и процессов. Правда, в Windows 10/11 она не работает (поэтому выше я и привел универсальный рабочий способ для всех современных ОС Windows).
Кванты времени
Как я уже говорил квант времени выполнения потока может быть длинным или коротким. В настольных системах по умолчанию квант времени короткий, чтобы различные приложения быстро уступали друг другу место. В серверных системах по умолчанию длинный квант времени, чтобы серверные службы реже переключали контекст процессора.
Итак, теперь я вам покажу как переключить систему на работу с длинным или коротким квантом. Длительность кванта времени настраивается тут: “Свойства системы” / “Дополнительные параметры системы” / “Дополнительно” / “Быстродействие” / “Параметры” / “Дополнительно”:
На серверной системе можно выбрать “программ” если это сервер терминалов или просто настольный компьютер с установленной серверной системой.
На десктопной системе можно выбрать “служб” если вы запускаете какую-то длительную компиляцию или рендерите видео, а потом вернуть обратно в состояние “программ“.
Уровень приоритета
Ниже приведены уровни приоритета в каждом классе приоритета. приоритет потока — _ _ бездействие
_ _ самый низкий приоритет потока
_приоритет потока _ ниже _ обычного
приоритет потока — _ _ нормальный
_приоритет потока _ выше _ обычного
приоритет потока — _ _ самый высокий
_ _ критическое время ПРИОРИТЕТа потока _Все потоки создаются с использованием _ обычного приоритета потока _ . Это означает, что приоритет потока аналогичен классу приоритета процесса. После создания потока используйте функцию сетсреадприорити , чтобы изменить ее приоритет относительно других потоков в процессе.
Типичной стратегией является использование _ приоритета потока _ выше _ обычного или _ приоритета потока _ для входного потока процесса, чтобы обеспечить реагирование приложения на запросы пользователя. Фоновым потокам, в частности, которые являются ресурсоемкими, можно задать _ приоритет потока _ ниже _ обычного или _ приоритета потока _ , чтобы гарантировать, что при необходимости они могут быть вытеснены. Однако при наличии потока, ожидающего другого потока с более низким приоритетом для выполнения некоторой задачи, не забудьте заблокировать выполнение ожидающего потока с высоким приоритетом. Для этого используйте функцию Wait, критическую секциюили функцию Sleep , слипексили свитчтосреад . Это предпочтительнее, чтобы поток выполнял цикл. В противном случае процесс может привести к взаимоблокировке, так как не запланировано выполнение потока с более низким приоритетом.
Чтобы определить текущий уровень приоритета потока, используйте функцию жетсреадприорити .
Изменение приоритета планировщиком
Планировщик Windows периодически меняет текущий приоритет потоков. Делается это например для:
- повышения приоритета, если поток слишком долго ожидает выполнение (предотвращает зависание программы);
- повышения приоритета, если происходит ввод из пользовательского интерфейса (сокращение времени отклика);
- повышения приоритета, после завершения операции ввода/вывода (чтобы потоки ждущие ввод/вывод быстрее выполнялись). При ждать могут:
- диск, cd-rom, параллельный порт, видео — повышение на 1 пункт;
- сеть, почтовый слот, именованный канал, последовательный порт — повышение на 2 пункта;
- клавиатура или мышь — повышение на 6 пунктов;
- звуковая карта — повышение на 8 пунктов.
Как ускорить процессор - вводная, скачиваем CPU Control
Что это за распределение нагрузки и как оно выглядит? Говоря простым языком, можно вручную, запустив программку, повесить все системные службы на просчитывание первым ядром, антивирус и фаерволл вторым, браузер и аську третьим и тд и тп.
Подобные манипуляции, бывает повышают производительность системы за счет более адекватного использования процессорных ядер, т.е. в некотором смысле получается мы можем ускорить процессор, т.е получается этакая расширенная насильная поддержка многоядерности.
В этом нам поможет такая программа, как CPU Control . К сожалению, оная несколько устарела и может поддерживать не все процессоры, но для решений 2-4 ядра подойдет вполне. С более многоядреными версиями не факт.
Так же, что печально, но хочется отметить, что имеется поддержка не всех версий процессоров, что, опять же, связано с давностью обновления программы, но, думаю, не мешает всё таки некоторым поэкспериментировать.
Собственно, программа полностью бесплатна, поддерживает русский язык, не требует установки (можно тягать на флешке) и предельно проста в управлении. Владельцам одноядерных процессоров вряд ли принесет какую-то пользу, если только одноядерный процессор не имеет в себе функцию разбиения физического ядра на два логических.
Как ускорить процессор (компьютер) - теория
Уже давненько я столкнулся с интересной программой, которая позволяет управлять приоритетом использования ядер процессоров, т.е. фактически распределять нагрузку на то или иное ядро. О ней и пойдет речь в этой небольшой статье.
Вообще говоря, процессор является одним из ключевых, если не самых главных, компонентов, отвечающих за производительность в системе, посему имеет смысл корректно и правильно использовать его возможности.
Глобально, в этом направлении, с точки зрения программной оптимизации есть два пути:
- В случае с многоядерными процессорами, - это распределение нагрузки по ядрам. Дело здесь в том, что изначально не все процессы могут использовать адекватно все ядра в системе (т.е нет поддержки многоядерности) или корректно занимать те из них, что не заняты обсчетом других приложений и нужд, а посему имеет смысл вручную (или автоматически) разносить приложения на отдельные ядра или группы ядер, для корректного распределения нагрузки и/или ушустрения работы;
- В случае со всеми процессорами, т.е одноядерными в том числе, - это работа с приоритетами системы. Дело в том, что по умолчанию Windows присваивает всем запускаемым процессам нормальный приоритет, что ставит приложения в равные условия в плане получения процессорных мощностей;
- Однако, согласитесь, что, скажем, 3D игра и обычный блокнот, – это немного разные приложения и, очевидно, что игре нужно больше ресурсов процессора в реальном времени, т.к находясь в трехмерном приложении Вы вряд ли взаимодействуете с этим самым блокнотом и он Вам не нужен до поры до времени (да особых мощностей процессора блокноту почти не надо, – там той программы то.. раз два и нету). Отсюда, вроде как логично вытекает, что приоритеты у разных приложений должны быть разные (особенно во времена многоядерности то), но на практике это далеко от реальности.
И в том и в другом случае, решить проблему с тем как ускорить процессор (вздохнул), а точнее компьютер и Windows , собственно, помогут программы для того предназначенные.
Про приоретизацию я уже немного говорил в соответствующей статье, а про распределение речь пойдет ниже.
Запуск приложения с нужным приоритетом (через командную строку)
Есть еще один вариант задания приоритета приложению — речь идет о командной строке (разумеется, если создать "BAT" файл — то запуская его, можно всегда иметь программу с нужным приоритетом).
Как это сделать:
-
создать на рабочем столе (например) обычный текстовый файл;
Как Вы поняли из заголовка, мы поговорим про то как ускорить процессор , а точнее говоря (просто некоторые неопытные пользователи называют системный блок так ;) ) компьютер и Windows .
Т.е, сегодня я решил обновить и дополнить одну из старых и неполных статей по оптимизации, причем обновить не просто, а вставив в неё часть материала одного из уроков нашего курса обучения ;)
Не смотря на то, что многоядерные процессоры (и уж, тем более, многопроцессорные компьютеры) давно вошли в нашу жизнь, далеко не все программы умеют корректно взаимодействовать с несколькими ядрами, а так же грамотно использовать и оптимизировать доступные системные ресурсы Windows и.. ускорить процессор.
- Как ускорить процессор (компьютер) - теория
- Как ускорить процессор - вводная, скачиваем CPU Control
- Как ускорить процессор и компьютер с помощью настроек CPU Control
- Настройка CPU Control, чтобы еще сильнее ускорить процессор
- Как посмотреть результаты ускорения и вообще изменения
- Послесловие
Базовый приоритет
Класс приоритета процесса и уровень приоритета потока объединяются для формирования базового приоритета каждого потока.
В следующей таблице показан базовый приоритет для сочетания класса приоритета процесса и значения приоритета потока.
Рассмотрим, как в системе Windows осуществляется планирование потоков для их выполнения на центральном процессоре. Также посмотрим на приоритеты процессов и потоков.
Групповое планирование
Планирование потоков на базе потоков отлично работает, но не способно решить задачу равномерного распределения процессорного времени между несколькими пользователями на терминальном сервере. Потому в Windows Server 2012 появился механизм группового планирования.
Термины группового планирования:
- поколение — период времени, в течении которого отслеживается использование процессора;
- квота — процессорное время, разрешенное группе на поколение (исчерпание квоты означает, что группа израсходовала весь свой бюджет);
- вес — относительная важность группы от 1 до 9 (по умолчанию 5);
- справедливое долевое планирование — вид планирования, при котором потокам исчерпавшим квоту могут выделяться циклы простоя;
- ранг — приоритет групповой политики, 0 — наивысший, чем больше процессорного времени истратила группа, тем больше будет ранг, и с меньшей вероятностью получит процессорное время (ранг всегда превосходит приоритет) (0 ранг у потоков которые: не входят ни в одну группу, не израсходовали квоту, потоки с приоритетами реального времени).
Где же применяется групповое планирование? Например его использует механизм DFSS для справедливого распределения процессорного времени между сеансами на машине. Этот механизм включается по умолчанию при установке роли служб терминалов.
Помимо DFSS групповое планирование применяется в объектах Jobs (Задания), так мы можем ограничить Задание по % потребления CPU, например задание будет потреблять не больше 20% процессорного времени.
Всем доброго времени суток. Сегодня, как Вы поняли из заголовка, мы поговорим о том как ускорить компьютер и процессор , используя приоритезацию.
Многие наверняка слышали о том, что можно с помощью диспетчера задач выставлять различные приоритеты (фоновый, нормальный, высокий, реального времени и тп) разным процессам, тем самым, оптимизируя их производительность и выделяя им больше процессорных мощностей (процессорного времени).
Порой это помогало солидно ускорить работу того или иного приложения или же системы в целом и даже снизить задержки (пинг) (причины снижения пинга в зависимости от процессорных приоритетов и мощностей в принципе изложу отдельной статьей).
Дело в том, что по умолчанию Windows присваивает всем запускаемым процессам нормальный приоритет, что ставит приложения в равные условия в плане получения процессорных мощностей. Впрочем, если Вам лень возится самим, то можете не читать статью и заказать услугу в нашей лаборатории.
Впрочем, давайте размышлять далее.
Как же ускорить компьютер и процессор в теории
Однако, согласитесь, что, скажем, 3D игра и обычный блокнот, - это немного разные приложения и, очевидно, что игре нужно больше ресурсов процессора в реальном времени, т.к находясь в трехмерном приложении Вы вряд ли взаимодействуете с этим самым блокнотом и он Вам не нужен до поры до времени (да особых мощностей процессора блокноту почти не надо, - там той программы то.. раз два и нету).
Отсюда, вроде как логично вытекает, что приоритеты у разных приложений должны быть разные (особенно во времена многоядерности то), но на практике это далеко от реальности.
Как Вы уже поняли, я клоню к тому, что полновесным приложениям надо выставлять больший приоритет, что автоматически будет существенно оптимизировать их за счет вливания больших ресурсов компьютера.
Но таки, думаю, что Вы согласитесь, что делать это каждый (потому, что приоритет выставленный в диспетчере задач забывается системой после перезапуска) раз вручную, - сущее наказание и вообще вселенски лень, а посему нужно как-то этот процесс автоматизировать, т.е, условно, ускорить компьютер и процессор не совсем вручную.
Вот об оном и пойдет речь в данной статье.
Планирование потоков в системе
В Windows всегда выполняется хотя бы один поток с самым высоким приоритетом. Если в системе много ядер, то Windows делит все ядра на группы по 64 ядра. Каждому процессу даётся доступ к определённой группе ядер. Следовательно потоки этих процессов могут видеть только свою группу ядер.
Поток выполняется на процессоре определённое время, затем уступает место другому потоку. Кстати, максимальное время на которое поток может занять процессор называется квантом. Причем время кванта можно настроить, выбрав короткие или длинные кванты. Как это сделать, я покажу ниже в этой статье, так что читайте дальше.
Поток может не отработать весь свой квант, так как если другой поток готов к выполнению и имеет более высокий приоритет, то он вытеснит первый поток.
В системе существует планировщик, который и занимается управлением потоками. Именно он решает какой поток будет выполняться на процессоре следующим. Причем планировщик работает в режиме ядра.
Так как процессор постоянно обрабатывает разные, несвязанные между собой потоки, то он должен запоминать на каком результате он остановился выполняя определённый поток. Такое запоминание предыдущего потока и переключение на новый называют – переключением контекста.
Планирование осуществляется на уровне потоков, а не процессов. Например, Процесс_А имеет 10 потоков, а Процесс_Б – 2 потока. Тогда процессорное время распределился между этими 12 потоками равномерно.
Читайте также: