Повышение эффективности энергопотребления для приложений

Обеспечение минимального энергопотребления компьютера одновременно с достижением максимальной скорости отклика и наилучших рабочих характеристик (чтобы сделать работу на компьютере быстрой и эффективной) представляет собой неординарную техническую задачу. Все начинается с той работы, которую мы выполняем в Windows для обеспечения поддержки использования ресурсов на должном уровне, однако для решения этой задачи необходимо, чтобы разработчики учитывали использование ресурсов во время создания своих приложений. Эффективность энергопотребления касается всех структурных параметров и всех сценариев использования, ведь снижение потребления электроэнергии — дело каждого из нас. Для компьютеров, работающих под управлением Windows 8, данный аспект относится к области внедрения значительных инноваций и основан на использовании новой модели среды выполнения в WinRT — соответствующие возможности не могут быть реализованы на базе существующих приложений рабочего стола с сохранением их функций и совместимости. Энергопотребление, как и рассмотренные ранее функции миграции состояния и настройки, — это та сфера функционирования Windows, которая была переосмыслена в рамках новых сценариев. Для существующих компьютеров x86 сохраняются все виды поддержки, и все задачи, выполняемые вами на настольном компьютере, продолжают выполняться абсолютно так же, как и прежде (и, конечно, были усовершенствованы, как мы уже отмечали). При анализе нового оборудования для всех поддерживаемых «систем на кристалле» (включая Intel) становится ясно, что со временем этот уровень эффективности энергопотребления будет получать все большее распространение. Мы рассмотрим некоторые меры, которые мы предприняли для улучшения показателей энергопотребления приложений рабочего стола, однако в целях реализации сценариев непрерывной работы с постоянным подключением к сети мы рассчитываем на разработку новых приложений для WinRT, которые будут выполняться на оборудовании нового поколения, поддерживающем современные возможности управления питанием.

Эту статью написали Шариф Фараг (Sharif Farag) и Бен Сроур (Ben Srour) , ведущие руководители программ в группе основных компонентов и группе взаимодействия с пользователем соответственно.

-- Стивен


Мы уже написали несколько статей, посвященных работе над увеличением времени работы батареи для компьютеров под управлением Windows 8. В статье Пэта Стимена (Pat Stemen) Построение операционной системы Windows общего назначения с эффективным использованием электроэнергии были рассмотрены некоторые добавления, вносимые в Windows 8 для реализации на оборудовании вида «система на кристалле» (system-on-a-chip — SOC) нового режима питания, аналогичного режиму питания смартфонов. Мы назвали его ждущим режимом с подключением к сети. В статье Обновление живых иконок без разрядки аккумулятора обсуждалось то, как живые иконки могут предоставлять вам новые и актуальные сведения без выполнения большого объема фоновых операций, которые сокращают время работы батареи. В данной статье мы подробнее остановимся на нескольких не рассмотренных ранее дополнительных инновациях по минимизации энергопотребления приложений, выполняющихся на компьютерах под управлением Windows 8, при использовании полного спектра их функциональных возможностей.

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

Например, в ответ на статью о живых иконках пользователь @ItsMe задал вопрос:

«Что же будет с заданиями копирования, выполняющимися в фоновом режиме? Если я переключу проводник в фоновый режим, чтобы просмотреть или составить документ Word, выполнение задания копирования приостанавливается, пока я снова не разверну приложение с этим заданием на весь экран? Я все правильно понял?»

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

Ориентированность на передний план

Для Windows 8 мы начали с определения правила, которое применялось бы к подавляющему большинству приложений в стиле Metro: если приложение не отображается на экране и экран выключен, оно не должно влиять на время работы батареи. Это не означает, что WinRT и эта пользовательская модель препятствуют многозадачности. Существует новое представление о том, как и когда код учитывает возможности современного оборудования, потребности в подключении к сети, конструктивные параметры, а также аспекты надежности, безопасности и конфиденциальности. Не обойдется без исключений (например, фоновая синхронизация электронной почты, средства рабочего стола), но мы считаем, что в большинстве случаев приложение выполняет основную часть работы, когда вы активно с ним взаимодействуете. Мы стремились добиться того, чтобы находящееся в неактивном режиме приложение было либо приостановлено, либо использовало ограниченные ресурсы из набора распространенных и доступных для приложения фоновых операций (таких как копирование файлов).

По сути это означает, что приложение может находиться в одном из трех состояний:

  1. Активное выполнение на переднем плане
  2. Приостановка выполнения в фоновом режиме
  3. Выполнение некоторых заданных фоновых операций    
Активное выполнение на переднем плане

Случай с приложением, которое активно выполняется на переднем плане, достаточно прост, поскольку мы просто позволяем этому приложению выполняться и использовать ЦП, диск, память и другие ресурсы по мере необходимости. В этом режиме работа приложений в стиле Metro полностью совпадает с работой обычных приложений Windows. К этому сценарию относится как случай, когда одно приложение работает в полноэкранном режиме, так и случай, когда на экране отображаются два приложения и одно из них «прикреплено» к боковой части экрана. Все вышесказанное относится только к ситуации с включенным экраном, так как именно это указывает на то, что пользователь взаимодействует с компьютером.

При разработке высокоскоростных и быстро реагирующих приложений следует принимать во внимание множество новых факторов. Как и переход от текстовых средств программирования к средствам программирования с графическим интерфейсом с применением совершенно иных методик, создание приложений, экономящих электроэнергию и ресурсы системы, также требует применения новых подходов. Например, раньше программисты Windows беспокоились о представлении WNDPROC и считали, что наилучший способ обработки ввода данных заключается в регистрации прерывания и преобразовании нажатия клавиши. Но подход на основе сообщений все изменил: операционная система Windows стала выполнять преобразование и уведомлять приложение о нажатиях клавиш, что в значительной степени отличалось от применявшегося ранее подхода. В мире, где больше 75 % продаваемых компьютеров работают от батареи, программистам по определению приходится переосмысливать методики работы.

В этих условиях важно заранее продумывать процесс разработки приложений, чтобы «идти в ногу» с развитием оборудования и изменением запросов пользователей. Для обеспечения необходимого пользователям уровня энергосбережения и увеличения времени работы батареи нужно было преобразовать существующую модель разработки приложений. Как мы часто говорим, приложения, которыми вы пользуетесь в настоящее время, будут работать точно так же, как и в Windows 7 (а по многим показателям — даже лучше). Но с течением времени мы снабжаем Windows новыми приложениями, которые работают более эффективно при меньшем энергопотреблении и помогают вам выполнять поставленные задачи в любых областях — от развлечений до профессиональной деятельности. Доступные вычислительные ресурсы, требования к ресурсам и типы выполняемых вычислений постоянно меняются, и Windows 8 предоставляет новые средства, позволяющие использовать эти возможности.

В подходе, связанном с выполнением приложения на переднем плане, важную роль играет параллелизм как средство разработки быстрых, эффективных и удобных приложений. На конференции //build/ мы продемонстрировали, как использовать новые средства и интерфейсы API для разработки приложений с высоким уровнем параллелизма. Эти возможности позволяют разработчикам переосмыслить способы программирования сценариев. Например, вместо поддержания отдельного фонового приложения в рабочем состоянии для выполнения определенных задач даже когда в этом нет необходимости (на что расходуется заряд батареи), программисты могут воспользоваться преимуществами инфраструктуры фоновых задач новой операционной системы, чтобы выполнять необходимые операции в фоновом режиме с минимальным энергопотреблением. Фоновые задачи можно вызывать различными способами, например из push-уведомления, из запланированного события или даже из входящих сетевых данных. Кроме того, система достаточно «интеллектуальна» для того, чтобы позволить приложениям чаще выполняться в фоновом режиме, если компьютер подключен к электрической розетке. В целом это значительный прогресс с точки зрения увеличения времени работы батареи, поскольку код выполняется только тогда, когда это требуется. Например, ваше новостное приложение может автоматически загружать содержимое ночью, пока компьютер подключен к электрической сети, благодаря чему при запуске приложения вы сможете просмотреть самые свежие новости. При этом ваши возможности работы ни в коей мере не ограничиваются, наоборот — это новый способ работы, подразумевающий минимальную нагрузку на критически важные системные ресурсы.

Кроме усовершенствований в области выполнения кода в фоновом режиме мы также внесли множество улучшений в инфраструктуру средств и программный интерфейс WinRT с целью упростить асинхронное программирование и сделать его более эффективным. Быстродействующие и динамичные приложения создаются на базе надежной платформы асинхронного программирования. На основном семинаре в рамках конференции //build/ Андерс Хейлсберг (Anders Hejlsberg) рассказал о подходе WinRT к реализации асинхронного пользовательского опыта работы с системой, сосредоточенного на просмотре огромного каталога элементов. Использование таких методик поможет реализовать эффективные сценарии и обеспечит высокую производительность для приложений, работающих на переднем плане, а также продлит время работы батареи.

Приостановка выполнения приложений в фоновом режиме

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

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

Предположим, у вас есть приложение, отслеживающее ваши предстоящие перелеты. Это приложение может показать состояние вашего следующего рейса с помощью уведомления в виде живой иконки, хотя само приложение может быть приостановлено и даже не выполняться в фоновом режиме. Когда вы переключаетесь на это приложение, оно может открыться на последнем просмотренном вами экране (например, на экране поиска рейса), как будто вы и не покидали его. Поскольку понятие о том, какие приложения выполняются в системе, стало достаточно отвлеченным, мы сделали запуск приложения и переключение на приложение, по сути, синонимами. Переключаетесь ли вы на приложение с помощью стека обратного перехода, клавиш ALT+TAB или экрана «Пуск», вы можете мгновенно вернуться к приостановленному приложению.

Таким образом, список «выполняемых» программ во всех практических целях аналогичен списку программ, который вы видите на экране «Пуск». Пользователям, предпочитающим работать с помощью клавиатуры, следует помнить, что клавиши ALT+TAB работают для всех запущенных программ так же, как и в Windows 7, и панель задач для приложений рабочего стола работает аналогичным образом (и даже лучше в сценариях с несколькими мониторами).

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

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

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

Следует отметить, что, хотя в фоновом режиме может работать несколько использующих память приложений, это не оказывает никакого отрицательного влияния на производительность компьютера или время работы батареи. Фактически вам вообще не нужно управлять приложениями или закрывать их. Это распространенный подход, который в настоящее время используется на вычислительных устройствах, и именно он иллюстрирует современное представление о структуре операционной системы (например, см. эту запись блога, написанную Фрейзером Спирсом (Frasier Spears) и посвященную многозадачности iOS).

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

В сборке Developer Preview вы можете увидеть состояние приостановки в действии, открыв новый диспетчер задач после запуска нескольких приложений, входящих в состав этой сборки, например Stocks, News или Weather. Обратите внимание на то, что для показателя использования ЦП указано значение 0 %, так как хотя эти приложения и размещены в памяти, они находятся в спящем режиме и не могут оказывать отрицательное влияние на время работы батареи или производительность.

Приложения в стиле Metro в диспетчере задач, для нескольких приложений отображается состояние «Приостановлено» и показатель использования ЦП равен 0 %

Приложения в стиле Metro, приостановленные в фоновом режиме

Выполнение фоновых операций

Как мы уже обсуждали, разработчикам необходимо подумать о том, как можно выполнить работу, которая раньше осуществлялась в фоновом режиме, без уменьшения времени работы батареи. Простое решение заключается в реализации многозадачности, однако его недостаток заключается в том, что постоянное выполнение фоновых задач всеми приложениями никак не способствует увеличению (даже незначительному) времени работы батареи. В мобильном мире ноутбуков и постоянного подключения к сети, этот показатель чрезвычайно важен. Поэтому мы создали новые интерфейсы API для Windows 8 и WinRT, чтобы организовать фоновую обработку для приложений в стиле Metro.

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

Мы стремимся достичь баланса между реализацией широкого спектра удобных функциональных возможностей и многозадачностью (того, что пользователи ожидают от операционной системы Windows), а также добиться экономного использования ресурсов. Для этого мы составили список необходимых ключевых сценариев и стали работать над тем, чтобы реализовать каждый из них наиболее эффективным образом с точки зрения использования ресурсов. В результате был создан набор интерфейсов API, предназначенных для поддержки многозадачности и позволяющих приложениям выполнять операции в фоновом режиме при пониженном уровне энергопотребления и использования ресурсов; они также позволяют разработчикам приложений избавиться от лишней работы и сосредоточиться на функциях приложения.

Чтобы обеспечить поддержку наиболее распространенных задач, которые приложения должны выполнять в фоновом режиме, мы решили использовать подход на основе сценариев. Ниже перечислены поддерживаемые задачи фонового режима для приложений в стиле Metro в WinRT:

  • Воспроизведение музыки
  • Загрузка файла или отправка его на веб-сайт
  • Динамическое обновление живых иконок с использованием нового содержимого
  • Печать
  • Прием вызова VoIP
  • Получение мгновенного сообщения
  • Получение сообщения электронной почты
  • Совместное использование содержимого (например, отправка фотографий в Facebook)
  • Синхронизация содержимого со связанным устройством (например, синхронизация фотографий)

Этот набор сценариев основан на распространенных типовых задачах, используемых разработчиками и, по нашему мнению, востребованных среди пользователей. Для некоторых из этих сценариев используются одни и те же возможности платформы, поэтому давайте рассмотрим каждый из них, чтобы осознать перспективы и эффективность операционной системы Windows 8:

Сценарий

Описание

Фоновая загрузка или отправка

Доступ к содержимому и сохранение его в Интернете являются достаточно распространенным сценарием для приложений. Мы хотим, чтобы при переключении обратно к приложению вам всегда предоставлялось актуальное содержимое. Эта возможность будет особенно удобна для приложений, имеющих формат журналов или служб новостей. Приложения могут использовать новый интерфейс API фоновой передачи, чтобы выполнять операции отправки и загрузки в фоновом режиме. Мы называем этот API «полностью посредническим», что указывает на выполнение отправки и загрузки самой операционной системой. Это позволяет исключить из операции код приложения и помогает достичь максимального времени работы батареи.

Фоновое воспроизведение звука

Мы по-прежнему стремимся к тому, чтобы вы могли выполнять несколько задач одновременно, особенно, если одна из них заключается в воспроизведении музыки. Любое мультимедийное или коммуникационное приложение может воспроизводить звук в фоновом режиме. Чтобы добиться максимальной эффективности, при установке воспроизведения звука на паузу приложение приостанавливается.

Общий доступ

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

Приложения экрана блокировки

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

Печать

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

Синхронизация с устройством

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

Живые иконки и служба уведомлений Windows

У вас может создаваться впечатление, что приложения выполняются постоянно (даже если они приостановлены), благодаря отправке push-уведомлений на компьютер под управлением Windows 8 с целью предоставления наиболее актуального содержимого для живой иконки приложения.

Запланированные уведомления

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

Фоновые задачи

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

Компьютеры с поддержкой ждущего режима с подключением к сети и спящего режима

Ко времени выпуска операционной системы Windows 8 диапазон доступных компьютеров станет еще шире. С точки зрения функций питания многие из них будут аналогичны компьютерам, которые сейчас работают под управлением Windows 7. Кроме полного выключения они смогут переходить в «спящее» состояние — как по требованию, так и после заданного периода бездействия. В спящем режиме выполнение всех системных операций полностью приостанавливается.

Энергопотребление, 0–60 с: Экран включен; 60–120 с: Яркость экрана уменьшена; 120–180 с: Экран выключен; 180–240 с: Спящий режим (S3). Приложения рабочего стола продолжают выполняться в течение 180 секунд, а затем останавливаются, когда компьютер переходит в спящий режим. Приложения в стиле Metro управляются операционной системой в течение 180 секунд, а затем останавливаются, когда компьютер переходит в спящий режим.

Выполнение приложений на компьютерах, поддерживающих спящий режим (параметры по умолчанию)

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

Как Пэт описал в своей статье, для нового класса компьютеров, полное выключение которых осуществляется редко, мы реализовали новый режим питания, аналогичный режиму питания смартфонов. Эти компьютеры, созданные обычно на базе архитектур «система на кристалле», весьма интересны, так как вместо полного отключения во время бездействия они переходят в режим крайне низкого энергопотребления, оставаясь в рабочем состоянии. Этот новый режим называется «ждущим режимом с подключением к сети». Он позволяет реализовать эффективные сценарии с подключением к сети, гарантирующие, например, постоянное наличие актуальной электронной почты и возможность получения мгновенных сообщений или приема телефонных вызовов, при этом данные сценарии обеспечивают потрясающие показатели времени работы батареи. На графике, приведенном ниже, показано поведение приложений рабочего стола и приложений в стиле Metro в ждущем режиме с подключением к сети. Для обеспечения эффективной работы мы учли особенности приложений в стиле Metro (которые, как было показано, обеспечивают экономное использование системных ресурсов) и приложений рабочего стола, которые создают больше трудностей, поскольку разрабатывались достаточно давно и требуют полного доступа к системным ресурсам (при работе на переднем плане или в фоновом режиме) или отсутствие доступа (когда компьютер находится в спящем режиме).

Энергопотребление, 0–60 с: Экран включен; 60–120 с: Яркость экрана уменьшена; 120–180 с: Экран выключен; 180–240 с: Ждущий режим с подключением к сети. Приложения рабочего стола продолжают выполняться в течение 180 секунд, а затем останавливаются, когда компьютер переходит в ждущий режим с подключением к сети. Приложения в стиле Metro управляются операционной системой постоянно, включая то время, когда компьютер находится в ждущем режиме с подключением к сети.

Выполнение приложений на компьютерах, поддерживающих ждущий режим с подключением к сети

Мы добавили в Windows 8 новый компонент под названием «Модератор приложений рабочего стола» (Desktop Activity Moderator), который выполняется только на платформах, поддерживающих новый ждущий режим с подключением к сети. Этот компонент предназначен для снижения уровня использования ресурсов приложениями рабочего стола, когда устройство переходит в ждущий режим с подключением к сети. Если позволить приложениям бесконтрольно выполняться в этом режиме пониженного энергопотребления, заряд батареи израсходуется быстрее. Вместо этого работа приложений рабочего стола приостанавливается, в результате чего прекращается использование ими ресурсов и достигается максимальное время работы батареи. С точки зрения приложений это будет выглядеть как простое переключение компьютера в спящий режим. После выхода компьютера из ждущего режима с подключением к сети приложение возобновит работу, как если бы компьютер вышел из спящего режима.

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

Заключение

Как видите, при проектировании операционной системы Windows 8 мы приложили значительные усилия для того, чтобы обеспечить высокие показатели времени работы батареи. Мы разработали новую модель приложений для обеспечения длительного времени работы батареи и реализации возможностей взаимодействия, связанных с подключением к сети. Приложения, разработанные для Windows 7, будут работать точно так же, как и раньше, а для реализации новых возможностей взаимодействия, обеспечивающих более эффективное энергопотребление благодаря использованию преимуществ фоновой инфраструктуры, предоставляемой операционной системой, можно разрабатывать новые приложения в стиле Metro.

-- Шариф Фараг (Sharif Farag) и Бен Сроур (Ben Srour)