Aumentando a eficiência no consumo de energia pelos aplicativos

Criando o Windows 8

Nos bastidores com a equipe de engenharia do Windows

Aumentando a eficiência no consumo de energia pelos aplicativos

  • Comments 0

Diminuir o consumo de energia do seu PC e maximizar, ao mesmo tempo, sua capacidade de resposta e utilidade (tornando-o "rápido e fluido") é um grande desafio de engenharia. Esse desafio começa com o trabalho que fazemos no Windows para proporcionar o nível certo de uso de recursos, mas também requer que os desenvolvedores levem a utilização de recursos em consideração ao desenvolverem seus aplicativos. A eficiência de consumo de energia se aplica a todos os fatores forma e cenários de utilização. Usar menos energia é o que todos devem fazer. Essa é uma área de significativa inovação dos PCs com o Windows 8 e tem como base o novo modelo de tempo de execução no WinRT. Não se trata de aperfeiçoar aplicativos da área de trabalho existentes mantendo a funcionalidade e a compatibilidade. Assim como a configuração e migração de estado sobre as quais falamos anteriormente, o consumo de energia é um aspecto do Windows que foi reimaginado para novos cenários. Todo o suporte existente no seu PC com base em x86 será mantido e tudo o que você faz na área de trabalho continuará exatamente como antes (é claro que, como vimos, houve aperfeiçoamentos). Com os novos hardwares em todos os hardwares SoC com suporte (incluindo a Intel), esse nível de consumo eficiente de energia será disponibilizado mais amplamente. Embora falaremos sobre o que fizemos para aperfeiçoar o consumo de energia de aplicativos da área de trabalho, para permitir cenários sempre conectados, durante o dia todo, veremos novos aplicativos criados para WinRT executados em uma nova geração de hardware que dá suporte a novos recursos de gerenciamento de energia.

Sharif Farag e Ben Srour, gerentes de programa gerais das equipes de funções básicas e de experiência do usuário, respectivamente, foram os autores desta postagem.

--Steven


Apresentamos várias postagens sobre como estamos trabalhando para aumentar a vida útil da bateria para os PCs com o Windows 8. Na postagem de Pat Stemen Criando um Windows de propósito geral com consumo de energia inteligente, discutimos alguns dos investimentos que estamos fazendo no Windows 8 para viabilizar um novo modo de energia semelhante ao dos smartphones em hardware SOC (sistema em um chip), um modo que chamamos de Em espera conectado. Em Atualizando mosaicos dinâmicos sem acabar com sua bateria, falamos sobre como estamos habilitando os mosaicos dinâmicos para fornecer informações novas e atuais sem criar muitas atividades subjacentes que diminuam a vida útil da bateria. Nesta postagem, detalharemos algumas inovações adicionais não abordadas anteriormente sobre como diminuímos o consumo de energia por aplicativos em execução em PCs com o Windows 8, extraindo, ao mesmo tempo, o máximo deles.

Como Pat mencionou em sua postagem, os aplicativos podem afetar o consumo de energia usando recursos (CPU, disco, memória, entre outros), já que cada um deles está associado a um gasto de energia. Portanto, a ideia é permitir que os aplicativos usem os recursos necessários enquanto você os estiver usando ativamente, mas reduzir a utilização dos recursos ao mínimo possível quando você estiver fazendo outra coisa. O mesmo também se aplica, é claro, ao próprio sistema operacional. Pat abordou alguns dos trabalhos que fizemos para aperfeiçoar isso, mas, na verdade, houve centenas de pequenos aperfeiçoamentos relacionados a isso, o que chamamos de aperfeiçoamentos de "higiene de energia" para limitar a atividade e o uso de recursos no sistema operacional. Tivemos o cuidado de não ir muito longe com isso e prejudicarmos a funcionalidade esperada pelos clientes, como finalizar atividades que eles começaram e depois interromperam para fazer outra coisa.

Por exemplo, comentando a postagem sobre mosaicos dinâmicos, @ItsMe perguntou:

“Quanto aos trabalhos de cópia em segundo plano, se eu puser o aplicativo Explorer em segundo plano para olhar ou escrever um documento do Word, o trabalho de cópia será interrompido até que eu coloque o trabalho de cópia em tela inteira novamente? Sério?”

A resposta a essa pergunta é "não". O processo da cópia de arquivos com certeza será continuado exatamente como ocorre hoje e não ficará suspenso se você for fazer outra coisa enquanto ele ficar em segundo plano. Não importa se você continuará usando o PC ou deixará de usá-lo tempo suficiente para que a proteção de tela ou tela de bloqueio entre em ação. A suspensão de aplicativos inativos somente ocorrerá com aplicativos estilo Metro, não com funções básicas do sistema operacional, como a cópia de arquivos.

Foco no primeiro plano

Iniciamos a criação do Windows 8 com uma regra que se aplicaria à grande maioria dos aplicativos estilo Metro: se um aplicativo não estiver na tela e a tela não estiver ligada, ele não impactará a vida útil da sua bateria. Isso não significa que o WinRT e o modelo de usuário eliminem a função multitarefas. Há uma nova ideia a respeito de como e quando o código leva em consideração funcionalidades de hardwares modernos, exigências de rede, form factors e a confiabilidade/segurança/privacidade. Haverá algumas exceções (por exemplo, sincronização de emails em segundo plano, ferramentas da área de trabalho), mas na maioria dos casos, esperamos que o aplicativo faça a maior parte de seu trabalho quando você estiver interagindo com ele ativamente. Quando um aplicativo não estiver em primeiro plano, desejamos garantir que ele suspenda totalmente o uso dos recursos ou use-os de forma limitada, com base em um conjunto de funcionalidades comuns de segundo plano (como a cópia de arquivos) que o aplicativo pode acessar.

Portanto, isso significa, basicamente que um aplicativo pode se encontrar em um destes três estados possíveis:

  1. Em execução ativa em primeiro plano
  2. Suspenso em segundo plano
  3. Realizando alguma atividade de segundo plano definida    
Em execução ativa em primeiro plano

O aplicativo em execução ativa em primeiro plano é simples, basta apenas deixar ele ser executado e utilizar a CPU, o disco, a memória e outros recursos, conforme o necessário. Nesse aspecto, os aplicativos estilo Metro são basicamente iguais aos aplicativos do Windows. Isso inclui um único aplicativo usado em tela inteira e também dois aplicativos na tela com um deles "ajustado" ao lado. Isso ocorre somente quando a tela está ligada, pois significa que o usuário está interagindo com o PC.

Há vários novos fatores a serem considerados no desenvolvimento de aplicativos rápidos e com grande capacidade de resposta. Muito semelhante à transição da programação com caracteres para a GUI, em que os conceitos eram significativamente diferentes, a criação de aplicativos que consumam recursos e energia de forma eficiente exige algumas abordagens novas. Como exemplo, os primeiros programadores do Windows, às vezes, ficavam frustrados pelo conceito de WNDPROC e achavam que a melhor maneira de lidar com a digitação era interceptando a interrupção e convertendo o pressionamento de tecla. A abordagem baseada em mensagem inverteu isso e o Windows passou a lidar com a conversão e avisar o aplicativo sobre quando se preocupar com o pressionamento de tecla, o que era bem diferente da forma inicial de se fazer as coisas. Em um mundo em que no mínimo 75% dos PCs vendidos funcionam por bateria, os programadores estão sendo solicitados a repensar em como fazer as coisas novamente.

Devido a isso, é importante pensar no desenvolvimento de aplicativos olhando para o futuro, de forma a acompanhar e planejar a evolução do hardware e necessidades do cliente. O modelo de aplicativo existente precisava evoluir para atingir a economia de energia e a vida útil da bateria desejadas pelos clientes. É claro que, como não paramos de repetir, os aplicativos da área de trabalho que você tem atualmente continuarão funcionando exatamente como funcionam hoje no Windows 7 (e eles ainda foram aperfeiçoados sob muitos aspectos). Com o tempo, estamos preparando o Windows para que ele execute mais tarefas usando menos energia, com novos aplicativos que ajudam o usuário a realizar muito mais. Isso inclui desde ferramentas profissionais até ferramentas de entretenimento. Os recursos disponíveis para a computação, os recursos necessários e os tipos de computação realizados estão sofrendo alterações, e o Windows 8 está oferecendo novas capacidades para explorar essa oportunidade.

Na abordagem baseada em primeiro plano, a simultaneidade adquire um papel importante no desenvolvimento de aplicativos rápidos, fluidos e com grande capacidade de resposta. Na conferência //build/, mostramos como usar as novas ferramentas e APIs para desenvolver aplicativos com grande capacidade de executar tarefas simultâneas. Isso permite que os desenvolvedores pensem de forma diferente sobre como codificar cenários. Portanto, por exemplo, em vez de manter um aplicativo separado em segundo plano sempre em execução para fazer algo mesmo quando não é necessário (o que diminui a vida útil da bateria), os programadores podem usufruir a nova infraestrutura de tarefas em segundo plano do sistema operacional para executar a atividade necessária em segundo plano com economia de energia. As tarefas em segundo plano podem ser iniciadas de várias maneiras, como por uma notificação por push, um evento de tempo limite ou até mesmo dados de rede de entrada. O sistema também é inteligente o suficiente para permitir que os aplicativos sejam executados com maior frequência em segundo plano quando o seu PC estiver ligado na tomada. No geral, trata-se de um grande ganho para a vida útil da bateria porque o código somente será executado quando necessário, não mais o tempo todo. Por exemplo, o seu aplicativo de leitura de notícias poderá baixar conteúdo para você automaticamente no meio da noite enquanto o seu PC estiver conectado na tomada. Dessa forma, você terá o conteúdo mais novo disponível quando iniciar o aplicativo. E isso não limita de forma alguma a capacidade de execução das atividades. Trata-se de uma nova maneira de realizar o trabalho que minimiza o impacto sobre os recursos críticos do sistema.

Além dos aperfeiçoamentos na forma como o código do aplicativo pode ser executado em segundo plano, fizemos várias melhorias na infraestrutura das ferramentas e na API do WinRT para tornar a programação assíncrona mais fácil e avançada. Aplicativos rápidos e com grande capacidade de resposta são criados em uma base sólida da programação assíncrona. Em uma sessão principal da conferência //build/, Anders Hejlsberg mostrou uma abordagem do WinRT para criar uma experiência do usuário assíncrona centrada na exibição de um enorme catálogo de itens. Aproveitar técnicas como essas ajudará a proporcionar aos aplicativos ótimos cenários e desempenho em primeiro plano, além de maior vida útil da bateria.

Suspensão de aplicativos em segundo plano

No segundo estado, depois que você iniciar um aplicativo e deixar de usá-lo, o sistema operacional o suspenderá. Isso significa que o agendador do Windows (o componente que agenda o acesso da CPU a processos e threads) não incluirá o aplicativo no agendamento da CPU. Como o sistema operacional não agenda o aplicativo, ele não usa a CPU, e a CPU pode diminuir os estados de energia. Colocar a CPU em estados de energia baixos pode ser fundamental para uma vida útil da bateria mais longa. Os desenvolvedores podem estar familiarizados com essa abordagem. Ela é semelhante ao que ocorre quando se pausa o processo de depuração de um aplicativo. Basicamente, todos os threads em execução do aplicativo são interrompidos. Os aplicativos suspensos ficam em um tipo semelhante de estado em cache. Como o aplicativo já foi inicializado, você tem a vantagem da alternância instantânea entre os aplicativos. É simplesmente uma questão de o agendador do sistema operacional permitir que o aplicativo volte a ser executado quando colocado novamente em primeiro plano.

O que é ótimo nesse novo estado suspenso é que os aplicativos ficam prontos instantaneamente para que você volte a usá-los. Quando você volta a um aplicativo suspenso, ele é retomado de forma instantânea e retorna exatamente ao ponto em que você parou. Dessa forma, você poderá alternar entre mais aplicativos no Windows de forma mais rápida do que nunca. Você não precisará se preocupar com o número de aplicativos em execução no seu PC. Com a ajuda dos mosaicos dinâmicos que informam o que acontece com os aplicativos, e a capacidade que os aplicativos têm de salvar e restaurar o estado, ótimos aplicativos sempre parecem estar em execução.

Por exemplo, vamos supor que você tenha um aplicativo que acompanha os seus próximos voos. Esse aplicativo pode mostrar o status do seu próximo voo por meio de uma notificação de mosaico dinâmico, mesmo que o aplicativo esteja suspenso ou nem esteja em execução em segundo plano. Ao voltar para esse aplicativo, ele poderá ser aberto no ponto em que você o deixou (por exemplo, uma pesquisa de voo), como se você não tivesse saído dele. Como a noção do que está em execução é abstrata, inicializar um aplicativo e voltar a ele se tornou basicamente a mesma coisa. Você pode voltar a um aplicativo suspenso usando a pilha traseira, Alt + Tab ou a tela inicial de forma instantânea.

Dessa forma, a lista de programas "em execução" é praticamente a mesma lista de programas que você vê na tela inicial. (Os usuários do teclado devem ter em mente que o atalho Alt + Tab funciona com todos os programas em execução da mesma forma que ocorre no Windows 7 e a barra de tarefas também funciona exatamente igual (e ainda foi aperfeiçoada para cenários com mais de um monitor) com aplicativos da área de trabalho.

A vantagem de poder suspender os aplicativos é a rapidez com que você pode alternar entre eles sem impactar a vida útil da bateria ou o desempenho do seu sistema. Isso tudo é diferente dos aplicativos da área de trabalho tradicionais. Estávamos acostumados a otimizar o nosso fluxo de trabalho para aqueles aplicativos que levavam muito tempo para serem iniciados.

Em geral, há dois casos em que não suspenderemos um aplicativo se ele não estiver realizando atividade em segundo plano. Primeiro, se ainda não tiver iniciado o aplicativo na sua sessão de logon atual, você precisará tocar no mosaico do aplicativo para iniciá-lo. O segundo caso é mais interessante. O sistema pode remover um aplicativo do estado suspenso e terminá-lo se o sistema começar a ficar com pouca memória. A memória é um recurso finito e desejamos que os aplicativos que você estiver usando com mais frequência fiquem prontos para você instantaneamente. Se você estiver sem usar um aplicativo suspenso por um tempo e o sistema operacional precisar de mais memória, ele terminará um dos aplicativos suspensos. Isso deve acontecer de forma relativamente infrequente porque o gerenciador de memória salvará os aplicativos suspensos em disco (que normalmente tem mais capacidade do que a memória física). Quando você voltar a esse aplicativos, eles estarão prontos de forma instantânea. Entretanto, haverá casos em que o sistema não precisará terminar um aplicativo suspenso. Isso normalmente ocorrerá quando houver vários usuários conectados em um PC ou quando você estiver usando vários aplicativos com uso de memória intensivo.

O sistema operacional leva vários fatores em consideração para decidir quais aplicativos terminar, como quando o aplicativo foi usado pela última vez e a quantidade de memória que ele está usando. O sistema operacional termina o menor número de aplicativos suspensos possível, para que você possa voltar aos aplicativos suspensos com a maior frequência possível. Mesmo que um aplicativo seja terminado enquanto estiver suspenso, haverá realmente muito pouco impacto para você porque o modelo de aplicativo evoluiu para permitir que os desenvolvedores salvem facilmente o estado de forma incremental enquanto o aplicativo estiver sendo usado e restaurem-no quando o aplicativo for reiniciado. Por exemplo, o aplicativo de acompanhamento de voos se lembraria de que você estava na página de pesquisa de voos quando decidiu usar outro aplicativo e utilizaria essa informação para retornar a essa página quando você voltasse a usar o aplicativo, mesmo que ele tivesse sido terminado.

É importante salientar que mesmo que haja vários aplicativos suspensos em segundo plano usando a memória, não haverá impacto na vida útil da bateria nem no desempenho do seu PC. Você realmente não precisa gerenciar nem fechar aplicativos diretamente. Trata-se de uma abordagem comum usada hoje em vários dispositivos de computação e que representa uma visão moderna de design do sistema operacional (veja, por exemplo, esta postagem de blog sobre multitarefa no iOS escrita por Frasier Spears).

Embora não precise fechar aplicativos para aumentar o desempenho ou vida útil da bateria, você poderá fechar aplicativos na versão beta do Windows 8. Às vezes, um aplicativo entra em um estado ruim ou você já acabou de usá-lo e não deseja vê-lo mais. Você poderá usar o mouse, toque ou atalho de teclado para fechar um aplicativo. Em uma futura postagem, falaremos sobre as alterações que estamos fazendo aqui para quando a versão beta for lançada, portanto, fique ligado!

Na compilação do Developer Preview, você poderá ver o estado suspenso em ação abrindo o novo Gerenciador de Tarefas após iniciar dois aplicativos que acompanham a compilação, como o Stocks, News ou Weather. Observe que a utilização da CPU aparece como 0% porque mesmo que esses aplicativos estejam na memória, eles estão suspensos e não podem impactar negativamente a vida útil da bateria nem o desempenho.

Aplicativos estilo Metro no Gerenciador de tarefas com vários aplicativos estilo Metro exibindo o status: Suspenso, usando 0% da CPU

Os aplicativos estilo Metro ficam suspensos em segundo plano

Realizando atividades de segundo plano

Como já discutimos, os desenvolvedores precisam pensar sobre como um trabalho realizado anteriormente em segundo plano ainda pode ser executado sem impactar a vida útil da bateria. É fácil solicitar a multitarefa e habilitá-la, mas a parte negativa disso é que, como todos os aplicativos sempre ficam executando tarefas em segundo plano, uma vida útil longa da bateria (ou maior) nunca será alcançada. No mundo móvel e constantemente conectado dos laptops, isso é muitíssimo importante. Portanto, com o Windows 8 e o WinRT, criamos novas APIs para o processamento de aplicativos estilo Metro em segundo plano.

Repito: os seus aplicativos da área de trabalho continuarão sendo executados exatamente como antes, mas também continuarão afetando a vida útil da bateria como fazem hoje (embora terão alguns aperfeiçoamentos sobre os quais falaremos abaixo).

Decidimos atingir um equilíbrio entre a habilitação dos tipos de recursos de aplicativos avançados e da multitarefa que as pessoas esperam no Windows e o cuidado na utilização dos recursos. Para tanto, listamos um conjunto de cenários principais que desejávamos habilitar e resolvemos alcançar cada um deles com a máxima economia de recursos possível. O resultado foi um conjunto de APIs multitarefas em segundo plano que permitem aos aplicativos concluir uma ação em segundo plano economizando recursos e energia, além de permitirem aos desenvolvedores se concentrar no que desejam que o aplicativo faça sem a necessidade de fazer vários trabalhos extras.

Optamos por uma abordagem centrada no cenário para permitir as tarefas mais comuns que os aplicativos precisariam realizar em segundo plano. Veja o que habilitamos em segundo plano para os aplicativos estilo Metro no WinRT:

  • Executar música
  • Baixar um arquivo de um site ou carregá-lo para o site
  • Manter os mosaicos dinâmicos ativos com conteúdo atualizado
  • Imprimir
  • Receber uma chamada de VoIP
  • Receber mensagem instantânea
  • Receber email
  • Compartilhar conteúdo (como carregar fotos para o Facebook)
  • Sincronizar conteúdo com um dispositivo com cabo (como a sincronização de fotos)

Esse conjunto de cenários é baseado em padrões comuns usados por desenvolvedores e padrões comuns aguardados por nós. Alguns desses cenários acabam usando o mesmo affordance de plataforma, então, vamos passear por cada um deles para que você possa entender o contexto e a força do Windows 8:

Cenário

Descrição

Download ou carregamento em segundo plano

O acesso e o armazenamento de conteúdo na Internet é um cenário muito comum dos aplicativos. Desejamos que o conteúdo mais novo esteja sempre carregado assim que você voltar a usar um aplicativo. Isso será especialmente útil nos aplicativos de revista ou notícias. Os aplicativos podem usar a nova API de transferência em segundo plano para realizar carregamentos e downloads em segundo plano. Essa API é o que chamamos de “totalmente mediada", o que significa que o próprio sistema operacional realiza o carregamento/download. Isso tira o código do aplicativo de cena e ajuda a maximizar a vida útil da bateria.

Áudio em segundo plano

Continuamos desejando que você possa fazer mais de uma coisa ao mesmo tempo, especialmente se uma delas for apenas ouvir música. Qualquer aplicativo de mídia ou de comunicação pode executar áudio em segundo plano. Para maximizar a eficiência, suspendemos o aplicativo quando você pausar o áudio.

Compartilhamento

Se o seu aplicativo estiver no meio de um envio de conteúdo para um serviço de nuvem, com o uso do botão Compartilhar, ele poderá concluir a operação em segundo plano.

Aplicativos com tela de bloqueio

Os aplicativos com tela de bloqueio normalmente precisam emitir notificação com as últimas informações e isso pode acontecer a qualquer momento, mesmo quando você não estiver usando o aplicativo. Os exemplos mais comuns são os aplicativos de email, VoIP e mensagens instantâneas. Os aplicativos com tela de bloqueio podem transmitir as notificação e sincronizar os seus dados mesmo em segundo plano, com o uso da bateria ou quando a tela estiver bloqueada.

Imprimir

Você pode imprimir documentos mesmo que o aplicativo de impressão esteja em segundo plano.

Sincronização do dispositivo

Você pode sincronizar o conteúdo entre um dispositivo conectado (como uma câmera) e o seu PC mesmo que o aplicativo não esteja aparecendo na tela.

Mosaicos dinâmicos com o Serviço de notificação do Windows

Os aplicativos podem dar a impressão de estarem sempre em execução (mesmo que estejam suspensos) com o envio de notificações por push para o seu PC com o Windows 8 a fim de fornecer o conteúdo mais novo para o mosaico dinâmico do aplicativo.

Notificações agendadas

Os aplicativos podem notificá-lo de um evento em um determinado horário atualizando um mosaico em um horário específico (imaginemos os compromissos de calendário) ou exibindo uma notificação via pop-up na área de trabalho lembrando que você precisa fazer algo antes de sair do escritório. Esses eventos são agendados pelo aplicativo, mas o Windows é responsável por entregar a notificação, o que ajuda a minimizar o impacto na bateria.

Tarefas em segundo plano

Os aplicativos poderão executar código quando ocorrerem determinados eventos, como em um intervalo periódico ou quando você entrar no Windows ou em um serviço de mensagens instantâneas, por exemplo. Os aplicativos com tela de bloqueio podem executar código a cada 15 minutos, mas aqueles sem tela de bloqueio podem executar código a cada 15 minutos, contanto que o dispositivo esteja conectado a uma fonte A/C.

Computadores habilitados para suspensão e o modo em espera conectado

Quando o Windows 8 for lançado, haverá uma gama de PCs disponíveis maior do que nunca. Muitos deles terão opções de energia semelhantes àqueles que executam o Windows 7 hoje. Além do desligamento completo, eles poderão entrar no estado de "suspensão" tanto voluntariamente ou após um período de inatividade. Durante a suspensão, toda a atividade do sistema fica totalmente suspensa.

Consumo de energia, de 0 a 60 segundos: Tela ligada; de 60 a 120 segundos: Tela esmaecida; de 120 a 180 segundos: Tela desligada; de 180 a 240 segundos: Suspensão (S3). Os aplicativos da área de trabalho permanecem em execução por 180 segundos e depois são interrompidos quando o PC é suspenso. Os aplicativos estilo Metro são gerenciados pelo sistema operacional por 180 segundos e depois são interrompidos quando o PC é suspenso.

Execução de aplicativos em PCs habilitados para a suspensão (configurações padrão)

O PC fica ocioso exatamente antes da suspensão. O gráfico acima mostra como os aplicativos da área de trabalho continuam em execução assim como ocorre nas versões anteriores do Windows, enquanto os aplicativos estilo Metro são executados na forma gerenciada descrita por mim. Quando o PC é suspenso, os aplicativos da área de trabalho e estilo Metro ficam totalmente suspensos. Isso é ótimo para a vida útil da bateria, pois quando o computador fica suspenso, ele consome muito pouca energia. No entanto, isso não é tão bom para a atualização de dados porque quando o computador está suspenso, ele não recebe atualizações de mosaicos dinâmicos, não baixa emails nem emite alertas com alarmes ou outras notificações.

Como Pat abordou em sua postagem, habilitamos um novo estado de energia parecido com o dos smartphones para uma nova classe de PCs que raramente são desligados completamente. Normalmente baseados em arquiteturas Soc ("sistema em um chip"), esses PCs são interessantes porque em vez de serem desligados em períodos de inatividade, eles entram em um estado de consumo de energia muito baixo e continuam em execução. Esse novo estado é o modo em espera conectado. Ele permite alguns ótimos cenários de conexão, como sempre ficar com os emails atualizados e receber mensagens instantâneas ou chamadas telefônicas, permitindo uma ótima economia da vida útil da bateria. O gráfico abaixo mostra o comportamento dos aplicativos da área de trabalho e estilo Metro durante o modo em espera conectado. Para que isso funcionasse de forma realmente eficiente, porém, tivemos de considerar tanto os aplicativos estilo Metro (que, como vimos antes, podemos garantir que são econômicos em termos de recursos de sistema), quanto os aplicativos da área de trabalho, que representaram um desafio ainda maior porque foram projetados por anos para ter total acesso aos recursos de sistema (sendo executados em primeiro ou segundo plano) ou nenhum acesso (durante a suspensão do PC).

Consumo de energia, de 0 a 60 segundos: Tela ligada; de 60 a 120 segundos: Tela esmaecida; de 120 a 180 segundos: Tela desligada; de 180 a 240 segundos: Em espera conectado. Os aplicativos da área de trabalho permanecem em execução por 180 segundos e depois são interrompidos quando o PC entra no modo em espera conectado. Os aplicativos estilo Metro são sempre gerenciados pelo sistema operacional, até mesmo quando o PC entra no modo em espera conectado.

Execução de aplicativos em PCs com o modo em espera conectado

Para solucionar essa questão, adicionamos um novo componente ao Windows 8 chamado "Moderador de atividades da área de trabalho", que somente é executado nessas novas plataformas habilitadas para o modo em espera conectado. Esse componente foi criado para ajudar a reduzir a utilização de recursos pelos aplicativos da área de trabalho quando o dispositivo entra no modo em espera conectado. Se permitíssemos que os aplicativos continuassem sendo executados de forma ilimitada nesse modo de baixo consumo de energia, a bateria do PC acabaria mais rapidamente. Em vez disso, suspendemos os aplicativos da área de trabalho, interrompemos o uso de seus recursos e maximizamos a vida útil da bateria. Do ponto de vista dos aplicativos, parecerá que o PC simplesmente foi colocado em suspensão. Quando o PC sai do estado em espera conectado, o aplicativo será retomado como se o PC tivesse saído do estado de suspensão.

Entretanto, na verdade há vários componentes no sistema necessários para o modo em espera conectado que não podemos suspender. Eles incluem os drivers, alguns serviços de terceiros e de caixa de entrada e, obviamente, os aplicativos estilo Metro que usam os recursos de segundo plano mencionados anteriormente. Muitos deles permitem funcionalidades como resposta à entrada do usuário quando ele volta ao dispositivo ou fornecem funcionalidade de rede. Habilitamos a execução deles no modo em espera conectado após uma avaliação cuidadosa para garantir que eles não causassem um impacto significativo na vida útil da bateria. Além disso, há um conjunto de processos que precisam ser executados em resposta a atividade no sistema. Esses processos são controlados para serem executados somente por curtos períodos de tempo, até que uma atividade em segundo plano seja iniciada, quando, então, podem ser executados livremente. Um ótimo exemplo disso é um programa antivírus, que está sempre fazendo verificações em resposta a atividades no sistema. Quando há alguma atividade ocorrendo em segundo plano, como o recebimento de um email via affordances em segundo plano, o antivírus pode ser executado livremente durante o processo. Durante a maior parte do tempo em que não ocorre nenhuma atividade de rede de entrada, há muito pouca atividade, portanto, esses componentes são controlados para que minimizar seu impacto na vida útil da bateria.

Resumo

Como você pode ver, investimos muito na engenharia do Windows 8 para que ele fosse ótimo para a vida útil da bateria. Projetamos o novo modelo de aplicativo para proporcionar uma vida útil da bateria longa e constante, permitindo, ao mesmo tempo, experiências de conexão. Os aplicativos que foram projetados para o Windows 7 continuarão funcionando como sempre, sem nenhuma alteração em seu comportamento, e os novos aplicativos estilo Metro podem ser desenvolvidos para permitir novas experiências de conexão que funcionem de forma a economizar energia, usufruindo a infraestrutura de segundo plano oferecida pelo sistema operacional.

-- Sharif Farag e Ben Srour