2

Раньше, когда я запускал клиент Folding @ Home, а теперь при использовании BOINC они всегда использовали "простое" время процессора (для тех из вас, кто не знаком с этими программами, они выполняют огромные научные вычисления на вашем компьютере, поэтому очень интенсивно). Однако я заметил, что как в Windows, так и в Linux, пытаясь сделать что-то другое (Firefox, программирование в Netbeans и т.д.), Все эти программы работают очень медленно.

Теперь я знаю, что вы можете делать такие вещи, как запуск клиентов только на 2 или 3 ядрах (при условии 4-х ядерных систем), но меня больше интересует, почему это "простое" время процессора приводит к замедлению работы программ с обычным приоритетом. Разве процесс с нормальным приоритетом не будет запущен раньше, чем процесс с приоритетом простоя, прерывая его при необходимости? Почему операционным системам сложно управлять этим?

2 ответа2

4

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

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

Поскольку центральный процессор теперь работает на 100% все время, а не имеет доступных циклов простоя, нетрудно представить, что некоторые процессы и прерывания могут занять больше времени, чем если бы процессор простаивал из-за накладных расходов на переключение потоков.

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

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

1

Я просто должен добавить некоторые мелочи к ответу Криса Томпсона, он уже сказал основную часть.

Потребление энергии и влияние на ваш счет за электроэнергию могут быть действительно значительными, просто чтобы подчеркнуть это немного больше. Причины, по которым другие программы могут быть затронуты дополнительными потоками с низким приоритетом, могут быть дополнительной работой при изменении процессов (кеш и регистры фактически используются сейчас). И операции ввода / вывода могут действительно иметь некоторое влияние. Большая часть работы этих программ только интенсивно использует процессор, и это может зависеть от приоритета процесса, но дополнительный ввод / вывод трудно расставить по приоритетам. И дополнительное использование памяти замедляет вашу систему тоже. Если ваша память достаточно заполнена, замена может значительно снизить производительность вашей системы.

Чтобы уточнить энергопотребление: я нашел фактические значения энергопотребления для Intel Core i7 Extreme Edition около 300 Ватт при большой нагрузке. Более новые процессоры Intel Core имеют некоторые действительно хорошие функции энергосбережения, которые даже позволяют процессору отключать питание для разных ядер, если они простаивают. Поэтому я полагаю, что вы могли бы использовать на 150–200 Вт больше, если у вас всегда работают такие программы. (Более старые цифры, которые я обнаружил, показывают разницу в 150+ Ватт) Но поскольку я не нашел надежных цифр, давайте предположим, что вы используете на 100 Ватт больше (не забывайте, что ваша система охлаждения должна работать больше, если ваш процессор выделяет больше тепла) - это дает 100 * 24 * 30 = 72 кВтч / месяц или 864 кВтч / год, если ваш компьютер будет работать 24/7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .