Файл: Debian Таненбаум Бос.pdf

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 48178

Скачиваний: 190

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

5.8. Управление энергопотреблением   

471

скольких зон с независимым включением и отключением. На рис. 5.32 показаны 16 зон, 
разделенных пунктирными линиями. Когда курсор находится в окне 2 (рис. 5.32, а), 
подсвечиваются только четыре зоны в нижнем правом углу. Остальные 12 зон могут 
не подсвечиваться, позволяя экономить до 3/4 энергопотребления экрана.

Рис. 5.32. Использование зон подсветки экрана: а — при выборе окна 2 оно не перемещается; 

б — при выборе окна 1 оно перемещается, чтобы уменьшить количество подсвечиваемых зон

Когда пользователь перемещает курсор к окну 1, зоны для окна 2 могут быть затем-
нены, а зоны под окном 1 подсвечены. Но поскольку окно 1 занимает 9 зон, расход 
энергии увеличивается. Если менеджер окон способен оценивать обстановку, он может 
автоматически переместить окно 1, чтобы оно помещалось в четырех зонах, применив 
для этого некое действие по привязке к зонам (рис. 5.32, б). Чтобы снизить энергопо-
требление от 9/16 полной мощности до 4/16, менеджер окон должен быть нацелен на 
управление энергосбережением или уметь воспринимать команды от других компо-
нентов операционной системы, занимающихся этим вопросом. Еще более изощренной 
была бы реализация возможности частичной подсветки незаполненного окна (напри-
мер, окно, содержащее короткие текстовые строки, может иметь затемнение в своей 
правой части).

Жесткий диск

Другим главным потребителем является жесткий диск. Даже при отсутствии обра-
щений к нему он потребляет значительное количество энергии на вращение пластин 
с постоянной высокой скоростью. Многие компьютеры, в особенности ноутбуки, после 
определенного количества минут бездействия останавливают диск. При обращении 
к диску он снова начинает вращаться. К сожалению, остановленный диск скорее отклю-
чается, чем переходит в спящий режим, поскольку на его повторный запуск и раскрутку 
уходит несколько секунд, составляющих вполне ощутимую задержку для пользователя.

Кроме того, на перезапуск диска затрачивается существенная дополнительная энергия. 
Вследствие этого у каждого диска есть свой временной показатель T

d

, являющийся 

точкой равновесия, которая часто находится в диапазоне от 5 до 15 с. Предположим, что 
следующее обращение к диску ожидается через время t. Если T

d

, то будет выгоднее 

не останавливать диск, чем его остановить и снова запустить через такой промежуток 
времени. Если T

d

, то в интересах экономии энергии лучше остановить диск и запу-

стить его снова через более длинный промежуток времени. Если могут быть выстроены 


background image

472  

 Глава 5. Ввод и вывод информации 

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

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

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

Центральный процессор

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

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

Это свойство можно использовать в программах с четко определенными сроками вы-
полнения задачи, к примеру в программах просмотра мультимедиа, которым нужно 
распаковать и отобразить кадр каждые 40 мс и которые вынуждены простаивать, если 
справляются с этим быстрее. Предположим, что на работу центрального процессора 
в полную силу в течение 40 мс затрачивается x джоулей, а на работу с половинной ско-
ростью — x/4 джоулей. Если программа просмотра мультимедиа способна распаковать 
и отобразить кадр за 20 мс, процессор может работать в полную силу в течение 20 мс, 
а затем на 20 мс отключаться операционной системой, при этом общее потребление 
энергии составит x/2 джоулей. Вместо этого процессор может работать в половину 
своей мощности и справляться с выдерживанием назначенного срока, но при этом 
потреблять только x/4 джоулей. Сравнительная картина работы на полной скорости 


background image

5.8. Управление энергопотреблением   

473

и полной мощности в течение определенного интервала времени и на уменьшенной 
вдвое скорости и вчетверо более низкой мощности в течение вдвое большего интер-
вала времени показана на рис. 5.33. В обоих случаях делается одна и та же работа, но 
в ситуации, показанной на рис. 5.33, б, на нее затрачивается в два раза меньше энергии.

Рис. 5.33. Центральный процессор: а — работа с полной тактовой частотой; 

б — снижение напряжения питания вдвое приводит к двойному снижению тактовой частоты 

и вчетверо снижает энергопотребление

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

Интересно, что снижение скорости работы ядер центрального процессора не всегда 
предполагает снижение производительности. В одной из работ (Hruby et al., 2013) 
показано, что иногда с замедлением работы ядер производительность сетевого стека 
повышается. Объясняется это тем, что ядро может быть слишком быстрым для вы-
полняемой задачи. Представим, к примеру, центральный процессор с несколькими 
быстрыми ядрами, в котором одно ядро отвечает за передачу сетевых пакетов от имени 
производителя, запущенного на другом ядре. Производитель и сетевой стек связаны 
напрямую посредством общей памяти, и оба они запущены на выделенных ядрах. 
Производитель осуществляет большой объем вычислений и не в состоянии поспеть за 
ядром сетевого стека. При типовом запуске по сети будет передаваться все, что имеется 
на передачу, и в течение некоторого времени производиться опрос общей памяти для 
определения того, действительно ли в ней нет больше данных на передачу. В конечном 
счете ядро сдастся и перейдет в спящий режим, поскольку непрерывный опрос при-
водит к большому расходу электроэнергии. Вскоре после этого производитель выдаст 
новые данные, но теперь сетевой стек находится в беспробудном сне. Пробуждение 
стека занимает некоторое время и снижает пропускную способность. Одним из воз-
можных решений будет отказ от перехода в спящее состояние, но вряд ли это станет 
привлекательным вариантом, поскольку при этом возрастет электропотребление, то 
есть произойдет прямо противоположное тому, к чему мы стремились. Намного более 
привлекательным будет решение о запуске сетевого стека на более медленном ядре, 
чтобы оно постоянно было занято работой (и никогда не переходило в спящий режим), 
но при этом по-прежнему сохранялся бы режим снижения энергопотребления. Если за-
медлить работу сетевого ядра достаточно целесообразным образом, его производитель-
ность будет выше, чем в той конфигурации, где все ядра работают на полной скорости.


background image

474  

 Глава 5. Ввод и вывод информации 

Память

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

Более радикальный способ заключается в записи содержимого оперативной памяти на 
диск с последующим отключением самой оперативной памяти. Этот подход относится 
к ждущему режиму, поскольку требует больших затрат времени на перезагрузку, осо-
бенно если диск тоже был отключен. Фактически можно полностью отключить память 
от источника питания. Когда память отключена, центральный процессор должен либо 
быть остановлен, либо выполнять программу с постоянного запоминающего устрой-
ства. Если центральный процессор отключен, то прерывание, вызывающее его пробуж-
дение, должно заставить его перейти к выполнению кода в постоянном запоминающем 
устройстве, чтобы память перед использованием была перезагружена. Несмотря на все 
издержки, выключение памяти на длительные периоды времени (например, на несколь-
ко часов) может быть оправданно, если хочется перезапуститься за несколько секунд, 
а не перезапускать операционную систему с диска, затрачивая на это минуту и более.

Беспроводная связь

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

Одно из эффективных решений этой проблемы предложили Кравец и Кришнан 
(Kravets and Krishnan, 1998). Суть их предложения основывалась на факте, что пере-
носные компьютеры связываются со стационарными базовыми станциями, у кото-
рых имеются большие объемы памяти и емкие диски и отсутствуют ограничения по 
электропитанию. Они предложили, чтобы переносной компьютер перед выключением 
радиоприемника отправлял сообщение базовой станции. С этого момента базовая 
станция осуществляла буферизацию входящих сообщений на своем диске. Мобильный 
компьютер мог явно указать, как долго он будет находиться в спящем состоянии, или 
просто информировать базовую станцию о том, что он снова включил радиоприемник. 
После этого все накопленные сообщения могли быть посланы компьютеру.

Исходящие сообщения, созданные за время отключения радиоаппаратуры, попадали 
в буфер на переносном компьютере. Если буфер был близок к заполнению, радио-
аппаратура включалась и сообщения передавались по очереди на базовую станцию.

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


background image

5.8. Управление энергопотреблением   

475

Разумеется, радио должно включаться и при близости заполнения выходного буфера. 
Возможны также и другие соображения.

Пример беспроводной технологии, поддерживающей такую схему энергосбережения, 
может быть найден в сетях с протоколом 802.11 (WiFi). В 802.11 мобильный компью-
тер может уведомить точку доступа, что он собирается перейти в спящее состояние, но 
проснется до того, как базовая станция отправит следующий кадр маяка (beacon frame). 
Точка доступа отправляет такие кадры периодически. В этот момент точка доступа 
может сообщить мобильному компьютеру, что у нее имеются ожидающие данные. Если 
таких данных нет, мобильный компьютер может снова перейти в спящее состояние до 
прихода следующего кадра маяка.

Управление температурным режимом

Управление температурным режимом несколько выходит за рамки рассматриваемой 
темы, но также имеет отношение к вопросам энергосбережения. Из-за высокой скоро-
сти работы современные центральные процессоры становятся очень горячими. В на-
стольных компьютерах обычно имеются внутренние электровентиляторы, выдувающие 
горячий воздух из системного блока. Поскольку сокращение энергопотребления для 
настольных компьютеров не является столь острой проблемой, вентилятор обычно 
работает постоянно.

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

В качестве руководства к действию может послужить введенная пользователем ин-
формация. К примеру, пользователь может заранее указать, что шум вентилятора его 
не устраивает, поэтому операционная система должна вместо его включения снизить 
уровень энергопотребления.

Управление аккумуляторной батареей

В прежние времена батареи служили просто источником тока до тех пор, пока полно-
стью не разряжались, после чего работа прекращалась. Но эти времена уже прошли. 
Теперь на мобильных устройствах используются «умные» батареи, способные под-
держивать связь с операционной системой. По запросу операционной системы они 
могут сообщить о таких вещах, как их максимальное напряжение, текущее напряжение, 
максимальная зарядка, текущая зарядка, максимальная скорость разрядки, текущая 
скорость разрядки и т. д. У большинства мобильных устройств есть программы, кото-
рые могут запускаться для выдачи таких запросов и отображения всех этих параме-
тров. «Умные» батареи могут также получать под управлением операционной системы 
команды для изменения различных рабочих параметров.

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