BR112014002901B1 - método, sistema, e meio legível por computador para atribuir uma classificação de gerenciamento de energia a um processo - Google Patents

método, sistema, e meio legível por computador para atribuir uma classificação de gerenciamento de energia a um processo Download PDF

Info

Publication number
BR112014002901B1
BR112014002901B1 BR112014002901-6A BR112014002901A BR112014002901B1 BR 112014002901 B1 BR112014002901 B1 BR 112014002901B1 BR 112014002901 A BR112014002901 A BR 112014002901A BR 112014002901 B1 BR112014002901 B1 BR 112014002901B1
Authority
BR
Brazil
Prior art keywords
rating
suspended
functionality
energy management
assigning
Prior art date
Application number
BR112014002901-6A
Other languages
English (en)
Other versions
BR112014002901A2 (pt
Inventor
Matthew Robben
Jon Berry
Kalin Toshev
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112014002901A2 publication Critical patent/BR112014002901A2/pt
Publication of BR112014002901B1 publication Critical patent/BR112014002901B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Abstract

MÉTODO, SISTEMA, E MEIO LEGÍVEL POR COMPUTADOR PARA ATRIBUIR UMA CLASSIFICAÇÃO DE GERENCIAMENTO DE ENERGIA A UM PROCESSO. A presente invenção refere-se a uma ou mais técnicas e/ou sistemas para atribuir classificações de gerenciamento de energia a um processo, mudar um ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia atribuídas aos processos e mudar o ambiente de computação do estado de espera conectado para um estado de execução. Ou seja, classificações de gerenciamento de energia, tais como isenção, regulação e/ou suspensão, podem ser atribuídas aos processos com base em vários fatores, tais como se um processo provê funcionalidade desejada e/ou se o processo provê funcionalidade baseada na operação básica do ambiente de computação. Desse modo, o ambiente de computação pode ser mudado para um estado de espera conectado com pouca energia, o qual pode continuar executando a funcionalidade desejada e ao mesmo tempo reduzir o consumo de energia por meio da suspensão e/ou regulação de outra funcionalidade. Visto que alguma funcionalidade pode ainda está sendo executada, o ambiente de computação pode entrar no estado de execução em um modo responsivo para fornecer rapidamente ao usuário informações (...).

Description

ANTECEDENTES
[0001] Vários dispositivos de computação, tais como computadores do tipo desktop, laptops, smart phones e tablets, são desenvolvidos em função do consumo de energia e/ou extensão da vida útil da bateria. Por exemplo, uma tela de laptop pode ser escurecida se o laptop ficar ocioso por um período de tempo definido. A preservação de energia pode prover uma extensão operacional e/ou de tempo entre a (re)carga de um dispositivo de computação, o que pode ser desejável e conveniente para um usuário. Infelizmente, vários aplicativos não compreendem a funcionalidade de preservação de energia e isso pode reduzir de maneira significativa a preservação de energia e/ou gerar uma fraca "higiene" de energia por não fazer o hardware sair dos estados de alto consumo de energia e/ou por utilizar recursos quando o dispositivo de computação poderia estar ocioso (por exemplo, um aplicativo ocioso pode consumir desnecessariamente ciclos do processador).
[0002] Várias técnicas de preservação de energia podem degradar a experiência de um usuário com um dispositivo de computação visto que mudar o dispositivo de computação de um estado pouco energizado, tal como um estado de hibernação/latência, para um estado de execução pode exigir entrada de usuário, levar uma quantidade de tempo relativamente longa e/ou prover dados antigos até serem atualizados. Por exemplo, um usuário pode interagir periodicamente com um laptop enquanto estiver em casa. Para preservar a vida útil da bateria do laptop, uma política de hibernação/latência pode ser adotada, na qual o laptop pode ser posto em um estado suspenso caso o usuário não esteja interagindo com o laptop por um período de tempo definido, tal como 10 minutos. Infelizmente, as políticas de hibernação/latência convencionais podem levar uma quantidade significativa de tempo (por exemplo, minutos) para reiniciar o sistema de computação em um estado de execução autalizado utilizável pelo usuário, visto que uma porção substancial do sistema de computação pode ter sido suspensa (por exemplo, um processador pode ter parado a execução, o núcleo de um sistema operacional pode ter sido suspenso, etc.). A espera para que o sistema de computação reinicie completamente pode prover uma experiência menos satisfatória para o usuário.
SUMÁRIO
[0003] Este Sumário é fornecido para introduzir a seleção de conceitos de uma forma simplificada, os quais serão adicionalmente descritos abaixo na Descrição Detalhada. Este Sumário não está destinado a identificar fatores chave ou características essenciais da matéria reivindicada, nem a limitar o escopo da matéria reivindicada.
[0004] Dentre outras coisas, um ou mais sistemas e/ou técnicas para atribuir uma classificação de gerenciamento de energia para um ou mais processos associados com um ambiente de computação, mudar o ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia atribuídas aos processos e mudar o ambiente de computação de um estado de espera conectado para um estado de execução são descritos aqui.
[0005] Pode ser compreendido que em um exemplo, um estado de execução de um ambiente de computação pode corresponder a um estado operacional comum do ambiente de computação. Enquanto no estado de execução, os processos podem ser criados e executados e o ambiente de computação pode ser responsivo à entrada de usuário (por exemplo, um usuário pode interagir com um processador de texto e/ou outros aplicativos enquanto o ambiente de computação estiver no estado de execução). Pode ser compreendido que em um exemplo, um estado de espera conectado pode corresponder a um estado de baixo consumo de energia do ambiente de computação, o qual pode, no entanto, prover uma experiência sempre ativo/sempre conectado. Enquanto estiverem no estado de espera conectado, os processos particulares podem receber autorização de execução, enquanto outros processos podem ser suspensos em um estado suspenso e sem execução e/ou regulados entre o estado de execução e o estado suspenso e sem execução para reduzir o consumo de energia. Por exemplo, no estado de espera conectado, um ambiente de computação pode permitir a execução e/ou a execução regulada de processos cruciais do sistema (por exemplo, os processos de funcionalidade de rede social, os processos particulares com processo de kernel núcleo, os processos de funcionalidade de hardware, os processos de funcionalidade de envio de mensagem, etc.), aplicativos com inteligência energética (por exemplo, aplicativos com ciclos de vida útil gerenciados) e/ou outros processos que podem prover conetividade desejada (por exemplo, os processos simples de funcionalidade de email) para que o dispositivo de computação possa prover uma experiência responsiva e atualizada para um usuário quando ele mudar do estado de espera conectado para o estado de execução (por exemplo, o ambiente de computação pode inicializar rapidamente (por exemplo, em alguns segundos) e pode prover ao usuário emails autalizados, informações e/ou conectividade). No entanto, para preservar energia, serviços do sistema não cruciais (por exemplo, um spooler de impressão, um sistema verificador de atualização, etc.) e/ou aplicativos de usuário (por exemplo, um processador de texto) podem ser regulados e/ou suspensos.
[0006] Em um exemplo de atribuição de uma classificação de gerenciamento de energia para um processo, um processo pode ser identificado (por exemplo, um processo recém-criado). O processo pode ser atribuido para uma classificação de gerenciamento de energia, tal como uma classificação de isenção para suspender a classificação ou a classificação de regulação com base em vários fatores (por exemplo, o quão crucial é o processo para uma funcionalidade básica, o processo associado com um serviço do sistema, o processo associado com um aplicativo de usuário, se o processo puder ser regulado sem causar uma falha, se o processo puder ser suspenso sem perder a funcionalidade desejada e/ou sem causar uma falha, etc.). Se um ciclo de vida útil do processo for gerenciado pelo processo e/ou por um componente de gerenciamento de ciclo de vida útil, então o processo pode ser designado para a classificação de isenção,visto que talvez já esteja associado com a funcionalidade de economia de energia (por exemplo, a designação e a implantação da classificação de gerenciamento de energia no processo podem ser redundantes e/ou podem causar uma falha no processo). Se o processo puder ser suspenso sem que ocorra uma falha no sistema de computação (por exemplo, o processo de suspensão da visualização de fotos talvez não cause uma falha no ambiente de computação e/ou uma falha no aplicativo de visualização de fotos) e a funcionalidade com tempo de execução limitado, associada com o processo não for desejada (por exemplo, a funcionalidade de visualização de fotos talvez não seja desejada enquanto o ambiente de computação estiver em um estado de espera conectado), uma classificação suspensa pode ser então atribuídas ao processo.
[0007] Se o processo puder ser regulado sem que a funcionalidade de falha e tempo de execução limitado do sistema de computação associada com o processo seja desejada (por exemplo, um usuário pode querer receber notificações por mensagem enquanto o ambiente de computação estiver no estado de espera conectado), então a classificação de regulação pode ser atribuídas ao processo. Se o processo não puder ser regulado sem que a funcionalidade de falha e tempo de execução limitado do sistema de computação associada com o processo seja desejada, então a classificação de isenção pode ser atribuídas ao processo. Desse modo, a classificação de gerenciamento de energia pode ser atribuída ao processo. Em um exemplo, a classificação de gerenciamento de energia pode ser utilizada durante a mudança do ambiente de computação para um estado de espera conectado. Por exemplo, os processos de isenção podem receber autorização de execução, os processos interrompíveis podem ser suspensos e os processos reguláveis podem ser regulados.
[0008] Em um exemplo de mudança de um ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia atribuídas aos processos, um pedido de entrada no modo de espera conectado e associado com o ambiente de computação pode ser detectado (por exemplo, um usuário pode ativar o botão de espera de um dispositivo do tipo tablet, um período limite de inatividade pode ter se passado, etc.). O ambiente de computação pode ser mudado para o estado de espera conectado, por exemplo, a partir de um estado de execução. Por exemplo, para os respectivos processos interrompíveis, um processo interrompível pode ser mudado para um estado suspenso e sem execução (por exemplo, o processo interrompível pode ser ineligível para execução e desse modo, pode ser incapaz de ativar os componentes de hardware para efetuar uma atividade que consome energia). Para os respectivos processos reguláveis, um programa de regulação pode ser designado e/ou aplicado a um processo regulável (por exemplo, um processo de email pode receber autorização de execução por segundos a cada 8 minutos para verificar novas mensagens, ou então o processo de email pode estar no estado suspenso e sem execução para reduzir o consumo de energia). Para os respectivos processos de isenção, um processo de isenção pode receber autorização de execução em um estado de execução (por exemplo, um processo em rede pode receber autorização de execução para prover a funcionalidade desejada, tal como o recebimento de novos emails). Em um exemplo, os processos interrompíveis podem ser suspensos antes dos processos reguláveis, visto que os processos interrompíveis podem basear-se na funcionalidade do processo regulável e desse modo, um processo interrompível pode falhar se um processo regulável registrar um estado suspenso e sem execução antes do processo interrompível ser suspenso (por exemplo, um aplicativo de fotos online interrompível pode falhar se um processo subjacente de carregamento de fotos em rede estiver indisponível). Desse modo, o ambiente de computação pode ser mudado para o estado de espera conectado para preservar energia e para ainda assim prover a funcionalidade desejada (por exemplo, notificação de novas mensagens).
[0009] Em um exemplo de mudança de um ambiente de computação de um estado de espera conectado para um estado de execução, um pedido de saída no modo de espera conectado e associado com o ambiente de computação pode ser detectado (por exemplo, um usuário pode tentar interagir com um dispositivo do tipo tablet com usando uma ação de toque dos dedos em uma tela de tablet). O ambiente de computação pode ser mudado do estado de espera conectado para o estado de execução com base no pedido de saída no modo de espera conectado. Por exemplo, para os respectivos processos suspensos, a execução de funcionalidade pode ser restaurada para um processo suspenso (por exemplo, um processo com aplicativo de fotos online pode estar disponível de um modo responsivo, tal como em alguns segundos). Para os respectivos processos regulados, a execução da funcionalidade pode ser restaurada para um processo regulado (por exemplo, um processo de email em um estado suspenso e sem execução, com base em um programa de regulação, pode ser mudado para um estado de execução de um modo responsivo). Desse modo, o ambiente de computação pode ser mudado para um estado de execução autalizado de um modo responsivo sem que o usuário precise esperar por uma quantidade significativa de tempo pela funcionalidade resumida e/ou informações atualizadas.
[00010] Para efetuar o procedimento acima e os fins relacionados, a seguinte descrição e os desenhos em anexo descrevem determinados aspectos ilustrativos e implantações. Esses são indicativos, porém, apenas um dos vários modos nos quais um ou mais aspectos podem ser empregados. Outros aspectos, vantagens e novas características da descrição se tornarão aparentes a partir da seguinte descrição detalhada quando considerados em conjunção com os desenhos em anexo.
DESCRIÇÃO DOS DESENHOS
[00011] A Fig. 1 é um fluxograma que ilustra um método exemplar de designação de uma classificação de gerenciamento de energia para um processo.
[00012] A Fig. 2 é um diagrama em bloco do componente que ilustra um sistema exemplar para atribuir uma classificação de gerenciamento de energia para um processo.
[00013] A Fig. 3 é um fluxograma que ilustra um método exemplar para mudar um ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia atribuídas aos processos.
[00014] A Fig. 4 é um diagrama em bloco do componente que ilustra um sistema exemplar para mudar um ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia atribuídas aos processos.
[00015] A Fig. 5 é um fluxograma que ilustra um método exemplar para mudar um ambiente de computação de um estado de espera conectado para um estado de execução.
[00016] A Fig. 6 é um diagrama em bloco do componente que ilustra um sistema exemplar para mudar um ambiente de computação de um estado de espera conectado para um estado de execução.
[00017] A Fig. 7 é uma ilustração de o exemplo de um dispositivo do tipo tablet para mudar um estado de espera conectado para um estado de execução.
[00018] A Fig. 8 é uma ilustração de um meio legível exemplar por computador no qual as instruções executáveis pelo processador configurado para incorporar uma ou mais das provisões descritas aqui podem ser incluídas.
[00019] A Fig. 9 ilustra um ambiente de computação exemplar no qual uma ou mais das provisões descritas aqui podem ser implantadas.
DESCRIÇÃO DETALHADA
[00020] A matéria reivindicada será descrita agora com referência aos desenhos, nos quais números de referência similares são geralmente usados para referir-se a elementos similares ao longo de toda a descrição. Na seguinte descrição, para fins de explanação, inúmeros detalhes específicos serão descritos de modo a prover um entendimento completo sobre a matéria reivindicada. Pode tornar-se evidente, no entanto, que a matéria reivindicada pode ser praticada sem esses detalhes específicos. Em outros exemplos, estruturas e dispositivos são ilustrados na forma de diagrama em bloco de modo a facilitar a descrição da matéria reivindicada.
[00021] Vários ambientes de computação podem incorporar técnicas de economia de energia para mitigar o consumo de energia e/ou preservar a vida útil da bateria. Por exemplo, um sistema operacional pode prover uma política de hibernação/latência que possa prevenir a execução de aplicativos, os processos do sistema e/ou a funcionalidade do processador que pode ativar de outro modo os recursos de computação para efetuar tarefas que consomem energia. Infelizmente, várias técnicas de economia de energia podem suspender os processos que efetuam uma funcionalidade desejável (por exemplo, uma política de hibernação talvez não compreenda a funcionalidade para permitir seletivamente que determinados processos sejam executados durante um estado de hibernação) e desse modo, um ambiente de computação pode prover informações antigas durante a inicialização em um estado de execução (por exemplo, a inicialização do ambiente de computação a partir de um estado de hibernação talvez não forneça informações com mensagens atualizadas, visto que o processo de funcionalidade da mensagem pode ter sido suspenso durante o estado de hibernação). De maneira adicional, a inicialização a partir da hibernação/estado de latência pode levar uma quantidade considerável de tempo antes do ambiente de computação estar totalmente responsivo e/ou ser capaz de prover informações atualizadas. Desse modo, um equilíbrio entre a provisão de uma economia de energia adequada e a provisão de uma experiência responsiva e conectada para um usuário é desejável.
[00022] Consequentemente, um ou mais sistemas e/ou técnicas para atribuir classificações de gerenciamento de energia para um processo associado com um ambiente de computação, para mudar o ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia atribuídas aos processos e mudar o ambiente de computação do estado de espera conectado para um estado de execução são fornecidos aqui.
[00023] Em particular, os processos podem ser classificados com uma classificação de isenção para suspender a classificação e/ou para regular a classificação com base em vários fatores, tais como se um processo provê funcionalidade desejada e/ou funcionalidade crucial do sistema. Desse modo, o ambiente de computação pode ser mudado para um estado de espera conectado, tal como um estado de baixo consumo de energia que provê uma experiência de sempre ativo/sempre conectado. Em particular, os processos de isenção podem receber autorização de execução, os processos interrompíveis podem ter sua execução suspensa e os processos reguláveis podem ser divididos em ciclos entre um estado de execução e um estado suspenso e de não execução com base em um programa de regulação. A suspensão e/ou regulação dos processos de carga podem reduzir o consumo de energia visto que tais processos podem ser dispostos em um estado suspenso sem nenhuma execução que possa impedir tais processos de ativar os recursos para efetuar as tarefas que consomem energia. O ambiente de computação pode ser mudado do estado de espera conectado para um estado de execução de um modo responsivo que provê uma experiência atualizada para o usuário em uma quantidade de tempo nominal (por exemplo, um usuário pode ser capaz de interagir com um estado autalizado do ambiente de computação em alguns segundos). Em particular, os processos suspensos e/ou processos regulados podem ser dispostos em um estado de execução para que o ambiente de computação seja mudado para o estado de execução.
[00024] Uma modalidade de designação de uma classificação de gerenciamento de energia para um processo é ilustrado por um método exemplar 100 na Fig. 1. Em 102, o método começa. Em 104, um processo para o qual uma classificação de gerenciamento de energia deve ser designada, pode ser identificado (por exemplo, um processo para um ambiente de computação, tal como o sistema operacional de um tablet, sistema operacional de um computador do tipo desktop, sistema operacional de um dispositivo móvel, etc.). Por exemplo, um processo recém-criado pode ser identificado como o processo (por exemplo, um processo dentro um recipiente lógico, tal como um objeto com função hierárquica). Em 106, uma classificação de gerenciamento de energia pode ser atribuída ao processo. Pode ser compreendido que vários fatores podem ser avaliados para atribuir a classificação de gerenciamento de energia (por exemplo, a indispensabilidade do processo para a operação do sistema, a funcionalidade desejada fornecida pelo processo, a habilidade de regular o processo, etc.).
[00025] Em um exemplo de designação da classificação de gerenciamento de energia, um recipiente lógico do processo pode ser determinado como estando associado com um recipiente lógico principal de um processo para os (por exemplo, um recipiente lógico de um processo de verificação de pronúncia pode estar associado com (por exemplo, agrupado) a um recipiente lógico principal de um processo principal de processamento de textos). Uma classificação principal de gerenciamento de energia atribuída ao processo principal pode ser atribuída ao processo como a classificação de gerenciamento de energia atribuídas ao processo (por exemplo, uma classificação suspensa atribuída ao processo principal de processamento de textos também pode ser atribuída ao processo de verificação de pronúncia para que ambos os processos possam ser suspensos em conjunto, ao invés de um processo ser suspenso enquanto o outro processo (por exemplo, verificador de pronúncia) continua sendo desnecessariamente executado durante um estado de espera conectado).
[00026] Em outro exemplo de designação da classificação de gerenciamento de energia, se um ciclo de vida útil do processo estiver sendo gerenciado pelo processo e/ou um componente de gerenciamento do ciclo de vida útil, então uma classificação de isenção pode ser atribuída ao processo, em 108. Por exemplo, um aplicativo (por exemplo, um aplicativo relativamente recém-criado) pode ser desenvolvido em um modelo de um aplicativo que forneça um gerenciamento extensivo do consumo de energia. Desse modo, o aplicativo pode ser designado para a classificação de isenção visto que um gerenciamento adicional de consumo de energia pode ser redundante e/ou interferir na execução do aplicativo.
[00027] Em outro exemplo de designação da classificação de gerenciamento de energia, se o processo puder ser suspenso sem falha do sistema de computação (por exemplo, uma falha do ambiente de computação e/ou um aplicativo associado com o processo) e se a funcionalidade de tempo de execução limitado associada com o processo não for desejada, (por exemplo, um usuário talvez não queira imprimir a funcionalidade quando o ambiente de computação estiver em um estado de espera conectado com pouca energia), então o processo pode ser designado para uma classificação suspensa, em 110. Por exemplo, se o processo estiver associado com um aplicativo de usuário, então o processo pode ser determinado como sendo interrompível e pode ser designado para a classificação suspensa (por exemplo, um aplicativo de compartilhamento de fotos inicializado dentro de uma sessão de usuário, pode não fornecer a funcionalidade desejada para quando o ambiente de computação estiver no estado pouco energizado de espera conectado, (por exemplo, o usuário não quer visualizar/compartilhar fotos quando o seu tablet estiver em um estado de espera conectado) e/ou pode não afetar a funcionalidade do sistema de núcleo do ambiente de computação).
[00028] Em outro exemplo de designação da classificação de gerenciamento de energia, se o processo puder ser regulado sem a funcionalidade de tempo de execução limitado e falha do sistema de computação associada com o processo for desejado, então a classificação de regulação pode ser atribuída ao processo, em 112. Por exemplo, se o processo compreender um serviço (por exemplo, um serviço do sistema com envio de mensagem inicializado dentro de uma sessão do sistema) que provê a funcionalidade desejada para o estado (por exemplo, o serviço de mensagens do sistema pode atender a novas mensagens para que o usuário possa ser notificado sobre a comunicação atualizada), então o processo pode ser determinado como sendo regulável e pode ser designado para a classificação de regulação (por exemplo, um processo associado com funcionalidade antivírus, a funcionalidade com o serviço de envio de mensagem, a funcionalidade com o serviço de rede e/ou uma variedade de outras funcionalidades desejadas pode ser atribuída para a classificação de regulação).
[00029] Em outro exemplo de designação da classificação de gerenciamento de energia, se o processo não puder ser suspenso ou regulado sem nenhuma falha no sistema de computação, então a classificação de isenção pode ser atribuída ao processo em 114. Pode ser compreendido que o ambiente de computação pode basear-se em uma variedade de processos para uma funcionalidade operacional básica e desse modo, a suspensão e/ou regulação de tais processos pode resultar na falha do sistema de computação. Em um exemplo, processos particulares com processo de kernel núcleo, drivers de dispositivo e/ou outros processos que provêm a funcionalidade operacional básica podem ser designados para a classificação de isenção. Em outro exemplo, um gráfico de dependência pode ser consultado. O gráfico de dependência pode ter sido criado a partir de um processo com processo de kernel núcleo até um ou mais processos de suporte que provêm a funcionalidade da qual o processo com processo de kernel núcleo depende (por exemplo, um módulo de comunicação em rede do componente de processo que facilita a comunicação entre os componentes de processo distribuídos pode ser baseado em um ou mais processos com processo de núcleo associados com tais componentes de processo). Se o processo compreender um processo de suporte eespecíficaado dentro do gráfico de dependência, então pode ser determinado que o processo não pode ser suspenso e desse modo, pode ser designado para a classificação de isenção.
[00030] Em outro exemplo de designação da classificação de gerenciamento de energia, se o processo prover a funcionalidade associada com uma política definida para os usuários, então uma classificação de gerenciamento de energia definida para usuário pode ser atribuída ao processo. Por exemplo, um usuário pode eespecíficaar o desejo de que o ambiente de computação esteja autalizado com mensagens de entrada (por exemplo, independentemente de o ambiente de computação estar no estado de espera conectado com pouca energia ou no estado de execução). Consequentemente, os processos que provêm a funcionalidade de mensagem (por exemplo, um processo para ouvir mensagens, um processo de notificação de mensagem, etc.) pode ser designado para uma classificação de gerenciamento de energia definida para usuário, tal como a classificação de isenção. Desse modo, vários processos podem ser designados para as classificações de gerenciamento de energia que podem ser usadas na transição do ambiente de computação para um estado de espera conectado. Em 116, o método termina.
[00031] A Fig. 2 ilustra o exemplo de um sistema 200 configurado para atribuir uma classificação de gerenciamento de energia para um processo. O sistema 200 pode compreender um componente de classificação 204. O componente de classificação 204 pode ser configurado para atribuir uma classificação de gerenciamento de energia para um processo associado com um ambiente de computação. Por exemplo, o ambiente de computação pode estar associado com os processos do sistema de computação 202 que compreendem um processador do pacote em rede 208, um processador de evento do tipo hardware 210, um spooler de impressão 212, um antivírus 214, um processador de texto 216, um verificador de pronúncia 218 (por exemplo, o verificador de pronúncia 218 pode ser o processo filho do processador de texto 216), um mensageiro instântaneo 220 e/ou um notificador de mensagem 222 (por exemplo, notificador de mensagem 222 pode ser um processo filho do mensageiro instântaneo 220).
[00032] Em um exemplo, o componente de classificação 204 pode ser configurado para determinar se um processo está associado com um processo principal. Se o processo estiver associado com um processo principal, então o componente de classificação 204 pode atribuir uma classificação principal de gerenciamento de energia atribuída ao processo principal como a classificação de gerenciamento de energia atribuída ao processo. Por exemplo, o processador de texto 216 pode ser um processo principal do verificador de pronúncia 218. O processador de texto 216 pode ter sido designado para uma classificação suspensa (por exemplo, o processador de texto 216 pode estar associado com um aplicativo com processador de texto que não porvê a funcionalidade desejada durante um estado de espera conectado com pouca energia e/ou não porvê a funcionalidade do crucial sistema). Consequentemente, o verificador de pronúncia 218 pode ser designado para a classificação suspensa que foi atribuída ao processador de texto 216. De maneira similar, o notificador de mensagem 222 pode ser atribuído a uma classificação de gerenciamento de energia de usuário de isenção atribuída ao mensageiro instântaneo 220, visto que o mensageiro instântaneo 220 é um processo principal do notificador de mensagem 222. Desse modo, os processos associados podem ser classificados de maneira similar para que tal classificação de gerenciamento de energia possa ser implantada como um grupo para a eficiência (por exemplo, menos operações de classificação precisam ser efetuadas, mais incentivo para a economia de energia) e/ou para evitar resultados inconsistentes (por exemplo, se o notificador de mensagem 222 tiver sido designado para uma classificação de isenção, então o notificador de mensagem 222 pode ser executado desnecessariamente enquanto o mensageiro instântaneo 220 está suspenso durante um estado de espera conectado).
[00033] Em outro exemplo, o componente de classificação 204 pode atribuir uma classificação de isenção para o processo com base na determinação de um ciclo de vida útil do processo que é gerenciado pelo processo e/ou um componente de gerenciamento do ciclo de vida útil. Ou seja, a economia de energia já pode ser gerenciada pelo processo ou por outro componente.
[00034] Em outro exemplo, o componente de classificação 204 pode atribuir uma classificação suspensa ao processo com base na determinação do processo pode ser suspenso sem que ocorra uma falha no sistema de computação e/ou a funcionalidade com tempo de execução limitado, associada com o processo não é desejada. Por exemplo, o processador de texto 216 pode ser designado para a classificação suspensa, visto que o processador de texto 216 é um aplicativo de usuário cuja suspensão talvez não gere uma falha no sistema de computação e/ou um usuário talvez não queira ter uma funcionalidade de processamento de texto com tempo de execução limitado enquanto o ambiente de computação está em um estado de espera conectado. De maneira adicional, o spooler de impressão 212 pode ser designado para a classificação suspensa, visto que a suspensão do spooler de impressão 212 talvez não gere uma falha no sistema de computação e/ou o usuário talvez não queira funcionalidade de impressão com tempo de execução limitado enquanto o ambiente de computação estiver no estado de espera conectado.
[00035] Em outro exemplo, o componente de classificação 204 pode atribuir a classificação de regulação para o processo com base na determinação do processo que pode ser regulado e a funcionalidade com tempo de execução limitado associada com o processo é desejada. Por exemplo, o antivírus 214 (por exemplo, um serviço do sistema com antivírus inicializado dentro de uma sessão do sistema) pode prover a funcionalidade desejada de estado, visto que o acesso à gravação para armazenagem, por exemplo, pode ser bloqueado até que o antivírus 214 efetue uma verificação nos dados a serem gravados (por exemplo, um usuário pode querer que as mensagens de entrada sejam salvas para armazenamento enquanto o ambiente de computação estiver no estado de espera conectado).
[00036] Em outro exemplo, o componente de classificação 204 pode atribuir a classificação de isenção ao processo com base na determinação do processo que não pode ser suspenso ou regulado sem que uma falha ocorra no sistema de computação. Em um exemplo, o componente de classificação 204 pode determinar que processos particulares com processo de núcleo, drivers de dispositivo e/ou outros processos não podem ser suspensos sem que ocorra uma falha no sistema de computação. Por exemplo, o processador do pacote em rede 208 e/ou processador de evento do tipo hardware 210 pode prover uma funcionalidade de núcleo, baseada no ambiente de computação e desse modo, pode ser designado para a classificação de isenção. Em outro exemplo, um gráfico de dependência pode ser consultado para determinar se o processo é um processo de suporte do qual um processo com processo de núcleo depende.
[00037] Em outro exemplo, o componente de classificação 204 pode atribuir uma classificação de gerenciamento de energia definida para usuário para o processo com base na determinação do processo que provê a funcionalidade associada com uma política definida para usuário. Por exemplo, o mensageiro instântaneo pode ser designado para uma classificação de gerenciamento de energia de usuário para isenção, visto que o usuário pode querer receber mensagens instântaneas de entrada mesmo se o ambiente de computação estiver em um estado de espera conectado.
[00038] Desse modo, as designações de classificação de gerenciamento de energia 206 podem ser criadas e/ou atualizadas com as designações de classificações de gerenciamento de energia para os processos. Tais designações podem ser utilizadas na mudança do ambiente de computação para um estado de espera conectado para obter um estado pouco energizado que possa reduzir o consumo de energia e/ou aumentar a vida útil da bateria. Pode ser compreendido que tais designações podem ser utilizadas para uma variedade de outros cenários, tais como suspensão de tarefas no plano de fundo/primeiro plano e/ou regulação dos processos enquanto os mesmos estão em um estado de execução.
[00039] Uma modalidade de mudança de um ambiente de computação para um estado de espera conectado com base nas classificações de gerenciamento de energia, atribuídas aos processos é ilustrada através de um método exemplar 300 na Fig. 3. Em 302, o método começa. Em 304, um pedido de entrada no modo de espera conectado, associado com o ambiente de computação, pode ser detectado. Pode ser compreendido que um estado de espera conectado pode corresponder a um estado com baixo consumo de energia onde vários processos podem ser suspensos, regulados ou autorizados a continuar a sua execução. Desse modo, o consumo de energia pode ser reduzido e o ambiente de computação pode continuar a executar a funcionalidade desejada para prover uma experiência responsiva e atualizada durante a mudança (volta) para um estado de execução. O estado de espera conectado pode ser implantado em uma variedade de modos diferentes em vários dispositivos de computação, tais como dispositivos de computação do tipo tablet, o dispositivos de computação do tipo desktop, laptops, telefones móveis, etc.
[00040] Em 306, o ambiente de computação pode ser mudado para o estado de espera conectado. Em um exemplo, para os respectivos processos interrompíveis designados para uma classificação suspensa, um processo interrompível pode ser disposto em um estado suspenso e sem execução, em 308. Ou seja, o processo interrompível pode ser impedido de ativar os recursos para efetuar tarefas que consomem energia (por exemplo, um processador de texto pode ser suspenso para que o processador de texto não acesse os recursos do hardware que podem estar em um estado ocioso com pouca energia). A classificação suspensa pode corresponder à verificação para determinar se um processo pode ser suspenso sem que ocorra uma falha no sistema de computação e/ou se a funcionalidade com tempo de execução limitado, associada com o processo não é desejada. Desse modo, os processos interrompíveis podem ser dispostos no estado suspenso e sem execução sem gerar falhas no sistema do computador e/ou perder a funcionalidade desejada.
[00041] Em outro exemplo, para os respectivos processos aceleráveis e designados para a classificação de regulação, um programa de regulação pode ser atribuído a um processo regulável, em 310. A classificação de regulação pode corresponder à verificação para determinar se um processo pode ser regulado sem que ocorra uma falha no sistema de computação e/ou se a funcionalidade com tempo de execução limitado, associada com o processo é desejada. O programa de regulação pode ser aplicado ao processo regulável enquanto ele estiver no estado de espera conectado. Por exemplo, o processo regulável pode ser dividido em ciclos entre o estado de execução e o estado suspenso e sem execução com base no programa de regulação (por exemplo, o programa de regulação pode específicar um período de tempo de execução para o estado de execução e um período de tempo suspenso para o estado suspenso e sem execução). Por exemplo, um processo de mensagem regulável pode ser permitido em uma execução de 20 segundos para verificar novas mensagens a cada 5 minutos.
[00042] Em outro exemplo, para os respectivos processos designados de isenção, uma classificação de isenção e um processo de isenção podem ser autorizados a continuar sendo executados em um estado de execução, em 312. A classificação de isenção pode corresponder à verificação para determinar se um processo não pode ser suspenso ou regulado sem que ocorra uma falha no sistema de computação (por exemplo, um processo com processo de núcleo, um driver de dispositivo e/ou processos de suporte para os processos dekernel núcleo, etc.). Desse modo, os processos de isenção que provêm a funcionalidade de núcleo para o ambiente de computação e/ou provêm a funcionalidade desejada podem receber autorização de execução no estado de execução enquanto o ambiente de computação estiver no estado de espera conectado.
[00043] Em um exemplo de mudança do ambiente de computação para o estado de espera conectado, os processos interrompíveis podem ser dispostos no estado suspenso e sem execução antes dos processos reguláveis serem regulado. Visto que os processos interrompíveis podem basear-se em processos reguláveis (por exemplo, um aplicativo com processador de texto interrompível pode basear-se em um processo regulável de acesso à armazenagem para o acesso a documentos de texto armazenados). A suspensão antes da regulação pode mitigar os casos onde um processo interrompível pode falhar, visto que um processo regulado, no qual o processo interrompível baseia-se, talvez já tenha sido disposto no estado suspenso e sem execução antes da suspensão do processo interrompível.
[00044] Em um exemplo de mudança do ambiente de computação para o estado de espera conectado, um grupo de processos interrompíveis associados uns com os outros pode ser suspenso, o qual pode mitigar riscos de incompatibilidade, por exemplo. Em um exemplo, um primeiro processo interrompível pode ser agrupado com um segundo processo interrompível, visto que o primeiro processo interrompível pode consumir um recurso associado com o segundo recurso interrompível (por exemplo, um processo do aplicativo com processador de texto pode consumir os dados de verificação de pronúncia de um processo de verificação de pronúncia e desse modo, os processos podem ser agrupados juntos). Em outro exemplo, o primeiro processo interrompível pode ser agrupado com o segundo processo interrompível, visto que o primeiro processo interrompível pode ser um processo filho do segundo processo interrompível (por exemplo, um processo de carregamento de fotos pode ser um processo filho de um processo de compartilhamento de fotos online e desse modo, os processos podem ser agrupados juntos). Em outro exemplo, o primeiro processo interrompível pode ser agrupado com um segundo processo interrompível, visto que o primeiro processo interrompível pode ter sido inicializado dentro de um primeiro recipiente lógico associado com um segundo recipiente lógico dentro do qual o segundo processo interrompível foi inicializado (por exemplo, o processo de compartilhamento de fotos online pode ter sido inicializado dentro de um grupo de tarefas principal e o processo de carregamento de fotos pode ter sido inicializado dentro de um grupo de tarefas filho agrupado dentro do grupo de tarefas filho e desse modo, os processos podem ser agrupados juntos). Sendo assim, os processos interrompíveis que podem ser associados uns com os outros e/ou que dependem um do outro podem ser agrupados juntos para a suspensão como um grupo.
[00045] Enquanto estiver no estado de espera conectado, um processo em um estado de execução pode criar um novo processo. Durante a criação, o novo processo pode ser classificado com uma classificação de gerenciamento de energia. Ou seja, uma classificação de gerenciamento de energia pode ser aplicada a um novo processo mesmo se o ambiente de computação já estiver no estado de espera conectado.
[00046] Desse modo, o ambiente de computação pode ser mudado para o estado de espera conectado para reduzir o gasto de energia. Pode ser compreendido que técnicas adicionais de economia de energia podem ser implantadas, tal como a desativação de hardware e/ou recursos desnecessários, tais como energização da tela de um dispositivo de computação associado com o ambiente de computação. Em 314, o método termina.
[00047] A Fig. 4 ilustra o exemplo de um sistema 400 configurado para a transição de um ambiente de computação para um estado de espera conectado 410 com base nas designações de classificação de gerenciamento de energia 404 atribuídas aos processos. O sistema 400 pode compreender um componente de transição 406 e/ou o componente de regulação 408. O componente de transição 406 pode ser configurado para detectar um pedido de entrada no modo de espera conectado 402 associado com o ambiente de computação. O componente de transição 406 pode ser configurado para a transição do ambiente de computação no estado de espera conectado 410, o qual pode reduzir o consumo de energia associado com um dispositivo de computação que hospeda o ambiente de computação (por exemplo, um ou mais processos podem ser suspensos e/ou regulados para reduzir o consumo de energia associado com tais processos).
[00048] Para os respectivos processos interrompíveis designados para uma classificação suspensa dentro das designações de classificação de gerenciamento de energia 404, o componente de transição 402 pode ser configurado para colocar o processo interrompível em um estado suspenso e sem execução. Por exemplo, um processo do spooler de impressão, um processo do processador de texto, um processo de verificação de pronúncia e/ou outros processos interrompíveis podem ser dispostos no estado suspenso e sem execução enquanto o ambiente de computação estiver no estado de espera conectado 410. Em um exemplo, um grupo de processos interrompíveis associados uns com os outros pode ser suspenso em conjunto (por exemplo, um primeiro processo interrompível pode estar associado com um segundo processo interrompível com base pelo menos em um dentre o primeiro processo interrompível que é um processo filho do segundo processo interrompível, o primeiro processo interrompível que consume um recurso do segundo processo interrompível e/ou o primeiro processo interrompível que espera por um recurso travado pelo segundo processo interrompível). Por exemplo, o processo do processador de texto e o processo de verificação de pronúncia podem ser suspensos juntos para mitigar os riscos de incompatibilidade que podem ocorrer caso um processo seja suspenso enquanto o outro continua sendo executado por um período de tempo (por exemplo, o processo do processador de texto pode consumir os dados do processo de verificação de pronúncia e ele pode falhar se for suspenso antes do processo do processador de texto).
[00049] Para os respectivos processos reguláveis e designados para a classificação de regulação dentro das designações de classificação de gerenciamento de energia 404, o componente de transição 406 pode atribuir um programa de regulação para um processo regulável. Por exemplo, um processo de antivírus pode ser designado para o programa de regulação, onde o processo de antivírus pode executar por alguns segundos a cada 2 minutos. O componente de regulação 408 pode ser configurado para aplicar o programa de regulação ao processo regulável efetuando em ciclos o processo regulável entre o estado de execução e o estado suspenso de não execução, com base no programa de regulação. Em um exemplo, o componente de transição 406 pode ser configurado para dispor os processos interrompíveis no estado suspenso e sem execução antes de atribuir o programa de regulação para os processos reguláveis e/ou antes do componente de regulação 408 aplicar os programas de regulação. A suspensão dos processos antes dos processos de regulação pode mitigar conflitos onde um processo interrompível baseia-se nos dados de um processo regulável, porém, o processo regulável já está em um estado suspenso de não execução antes do processo interrompível ser suspenso.
[00050] Para os respectivos processos designados de isenção, uma classificação de isenção dentro das designações das classificações de gerenciamento de energia 404, o componente de transição 406 pode permitir que um processo de isenção continue sendo executado. Por exemplo, um processo do processador do pacote em rede, um processo do processador de evento do tipo hardware, um processo do mensageiro instântaneo, um processo do notificador de mensagem e/ou outros processos de isenção podem ser autorizados a continuar sendo executados enquanto o ambiente de computação estiver no estado de espera conectado 410 (por exemplo, o processo do processador do pacote em rede e/ou o processo do processador de evento do tipo hardware pode ser isento, visto que tal funcionalidade pode estar baseada no ambiente de computação para o funcionamento básico, enquanto o processo do mensageiro instântaneo e o processo do notificador de mensagem podem ser isentos, visto que tal funcionalidade pode ser desejável para um usuário). Desse modo, o ambiente de computação pode ser mudado pelo componente de transição 406 no estado de espera conectado 410.
[00051] Uma modalidade de mudança de um ambiente de computação de um estado de espera conectado para um estado de execução é ilustrada através de um método exemplar 500 na Fig. 5. Em 502, o método começa. Em 504, um pedido de saída do modo de espera conectado e associado com o ambiente de computação pode ser recebido. Ou seja, o ambiente de computação pode ter sido mudado para o estado de espera conectado para reduzir o consumo de energia. Por exemplo, enquanto estiverem no estado de espera conectado, um ou mais processos podem ter sido suspensos e/ou regulados para reduzir o consumo de energia, enquanto os processos baseados na operação básica do ambiente de computação e/ou os processos que provêm a funcionalidade desejada podem ter tido sua execução autorizada para que o ambiente de computação possa fazer transição perfeitamente em um estado de execução autalizado de um modo responsivo (por exemplo, um dispositivo do tipo tablet que estava no modo de espera conectado por horas pode ser mudado em alguns segundos para um estado de execução, onde mensagens de email e outras informações podem ser atualizadas e/ou acessíveis em alguns segundos para o usuário).
[00052] Em 506, o ambiente de computação pode ser mudado de um estado de espera conectado para um estado de execução. Em um exemplo, para os respectivos processos suspensos e designados para uma classificação suspensa, a funcionalidade de execução pode ser rearmazenada em um processo suspenso, em 508. A classificação suspensa pode corresponder à verificação para determinar se um processo pode ser suspenso sem que ocorra uma falha no sistema de computação (por exemplo, uma falha no ambiente de computação e/ou no processo) e/ou se a funcionalidade com tempo de execução limitado, associada com o processo não é desejada (por exemplo, um aplicativo de usuário com processamento de texto criado dentro de uma sessão de usuário pode ter sido suspenso, visto que a funcionalidade do aplicativo de usuário com processamento de texto enquanto o ambiente de computação estiver no estado de espera conectado talvez não é desejada e/ou tal funcionalidade talvez não esteja baseada na operação básica do ambiente de computação).
[00053] Em outro exemplo, para os respectivos processos regulados e designados para a classificação de regulação, a funcionalidade de execução pode ser rearmazenada em um processo regulado, em 510. Por exemplo, a funcionalidade de execução para o processo regulado pode estar baseada em um programa de regulação aplicado ao processo regulado, e talvez o programa de regulação não possa ser aplicado ao processo regulado como parte da funcionalidade de execução de rearmazenamento nesse processo (por exemplo, se o processo regulado estiver em um estado suspenso e sem execução, então o processo regulado pode ser mudado para um estado de execução). A classificação de regulação pode corresponder à verificação para determinar se um processo pode ser regulado sem que ocorra uma falha no sistema de computação e/ou se a funcionalidade com tempo de execução limitado, associada com o processo é desejada (por exemplo, um processo de antivírus pode ter sido designado para a classificação de regulação, visto que o processo de antivírus provê a funcionalidade de estado desejada para o escaneamento dos dados e antes de os dados serem gravados para armazenagem e regulação, o processo de antivírus talvez não gere uma falha no processo de antivírus e/ou no ambiente de computação).
[00054] Em um exemplo de mudança do estado de espera conectado para o estado de execução, a funcionalidade de execução pode ser rearmazenada nos processos regulados antes de ser rearmazenada nos processos suspensos (por exemplo, 510 e então 508, embora a Fig. 5 ilustre 508 antes de 510), visto que os processos suspensos podem basear-se em dados e/ou na funcionalidade fornecida pelos processos regulados. Por exemplo, a funcionalidade de execução pode ser rearmazenada em um processo regulado de acesso à armazenagem antes de ser rearmazenada no processo suspenso de edição de fotos, visto que o processo suspenso de edição de fotos pode travar caso o processo regulado de acesso à armazenagem não é disponível para prover o processo suspenso de edição de fotos com acesso à armazenagem. Em outro exemplo, a funcionalidade de execução pode ser rearmazenada em um processo suspenso principal antes de um processo suspenso filho, visto que o processo suspenso filho pode ser configurado para consumir um recurso do processo suspenso principal. Desse modo, o ambiente de computação pode ser mudado a partir do estado de espera conectado no estado de execução de um modo responsivo, o qual pode prover a um usuário informações atualizadas sem demora indevida (por exemplo, um usuário pode ser capaz de visualizar novas mensagens em alguns segundos após fazer o pedido de saída no modo de espera conectado). Em 512, o método termina.
[00055] A Fig. 6 ilustra o exemplo de um sistema 600 configurado para a transição de um ambiente de computação de um estado de espera conectado 604 para um estado de execução 608. O sistema 600 pode compreender um componente de transição 606. O componente de transição 606 pode estar configurado para detectar um pedido de saída no modo de espera conectado 602, associado com o ambiente de computação (por exemplo, usuário toca uma tela de tablet). O componente de transição 606 pode ser configurado para a transição do ambiente de computação a partir do estado de espera conectado 604 para o estado de execução 608.
[00056] Para os respectivos processos suspensos e designados para uma classificação suspensa, o componente de transição 606 pode rearmazenar a funcionalidade de execução em um processo suspenso. Por exemplo, um processo do spooler de impressão, um processo do processador de texto, um processo de verificação de pronúncia e/ou outros processos podem ter sido suspensos enquanto o ambiente de computação estava no estado de espera conectado 604, o qual pode ter reduzido o consumo de energia. Durante a funcionalidade de execução de rearmazenamento, tais processos podem ser executados normalmente enquanto o ambiente de computação estiver no estado de execução 608.
[00057] Para os respectivos processos regulados e designados para a classificação de regulação, o componente de transição 606 pode rearmazenar a funcionalidade de execução em um processo regulado. Por exemplo, um processo de antivírus pode ter sido regulado com base em um programa de regulação enquanto o ambiente de computação estava no estado de espera conectado 604, visto que o processo de antivírus pode ter fornecido a funcionalidade desejável de tempo de execução limitado (por exemplo, o processo de antivírus pode ter verificado os dados associados com os comandos de digitação para armazenagem em vários intervalos para que mensagens de entrada possam ser gravadas para armazenagem e/ou estejam disponíveis para o usuário durante a mudança de ambiente de computação do estado de execução 608). Em um exemplo, a funcionalidade de execução pode ser rearmazenada desfazando-se o programa de regulação que foi aplicado ao processo regulado (por exemplo, se o processo regulado estiver em um estado suspenso e sem execução, então o processo regulado pode ser mudado para um estado de execução).
[00058] Em um exemplo, o componente de transição 606 pode ser configurado para rearmazenar a funcionalidade de execução no processo regulado antes de rearmazenar a funcionalidade de execução de rearmazenamento no processo suspenso, visto que o processo suspenso pode consumir um recurso do processo regulado. Por exemplo, a funcionalidade de execução pode ser rearmazenada em um processo regulado de acesso à armazenagem antes de ser rearmazenada no processo suspenso de edição de fotos, visto que o processo suspenso de edição de fotos pode travar caso o processo regulado de acesso à armazenagem não esteja disponível para prover o processo suspenso de edição de fotos com acesso à armazenagem. Em outro exemplo, a funcionalidade de execução pode ser rearmazenada em um processo suspenso principal antes de a funcionalidade de execução ser rearmazenada em um processo suspenso filho, visto que o processo suspenso filho pode consumir um recurso do processo suspenso principal.
[00059] Pode ser compreendido que um ou mais processos de isenção podem ter tido sua execução autorizada em um estado de execução enquanto o ambiente de computação estava no estado de espera conectado 604 (por exemplo, um processo do processador do pacote em rede, um processo do processador de evento do tipo hardware, um processo do mensageiro instântaneo, um processo do notificador de mensagem e/ou outros processos podem ter tido sua execução autorizada). Desse modo, tais processos podem ser autorizados a continuar o processamento quando o ambiente de computação transitar no estado de execução 608. Desse modo, o ambiente de computação pode ser perfeitamente mudado a partir do estado de espera conectado 604 para o estado de execução 608 pelo componente de transição 606 de um modo responsivo, o qual pode prover um usuário com informações atualizadas sem demora indevida (por exemplo, um usuário pode ser capaz de visualizar novas mensagens em alguns segundos após fazer o pedido de saída no modo de espera conectado 602).
[00060] A Fig. 7 ilustra um exemplo 700 de um dispositivo do tipo tablet mudando de um estado de espera conectado 704 para um estado de execução 708. O dispositivo do tipo tablet pode ter entrado no estado de espera conectado 704 para reduzir o consumo de energia permitindo que alguns processos sejam executados e ao mesmo tempo regulando a carga e/ou suspendendo outros processos. Por exemplo, processos do sistema de núcleo baseados no dispositivo do tipo tablet para a operação básica e/ou outros processos que não podem ser regulados ou suspenso sem causarem uma falha no sistema de computação podem receber autorização de execução de um modo normal. Os processos do sistema de serviço e/ou outros processos que podem ser regulados sem criar uma falha no sistema de computação (por exemplo, falha em um processo e/ou no dispositivo do tipo tablet) e/ou que provêm a funcionalidade desejada de tempo de execução limitado podem ser regulados. A regulação de um processo pode preservar energia, visto que o processo regulado pode ser disposto em um estado suspenso e sem execução por períodos de tempo significativos. Desse modo, o processo regulado no estado suspenso e sem execução não pode ativar recursos (por exemplo, um processador, hardware, etc.) para efetuar a funcionalidade que consome energia. De maneira adicional, os processos que podem ser suspensos sem criar uma falha no sistema de computação e/ou que não provêm a funcionalidade desejada de tempo de execução limitado podem ser suspensos. A suspensão de um processo pode preservar energia, visto que o processo suspenso pode ser disposto no estado suspenso e sem execução para que ele não possa ativar os recursos para efetuar uma funcionalidade que consome energia. Em um exemplo do estado de espera conectado 704, um processo de funcionalidade de rede, um processo com serviço de envio de mensagem e/ou outros processos podem ser regulados e/ou totalmente executados. Consequentemente, o dispositivo do tipo tablet no estado de espera conectado 704 pode continuar a receber e/ou processar as mensagens de entrada 702. Desse modo, o dispositivo do tipo tablet pode operar em um estado de baixo consumo de energia e ao mesmo tempo continuar provendo a funcionalidade desejada.
[00061] O dispositivo do tipo tablet pode ser mudado para o estado de execução 708. Por exemplo, a entrada de usuário que corresponde a um pedido de saída no modo de espera conectado 706 pode ser recebida (por exemplo, um toque no dispositivo do tipo tablet pode ser detectado). O dispositivo do tipo tablet pode ser perfeitamente mudado para o estado de execução 708 colocando-se os processos regulados e/ou suspensos em um estado de execução. Visto que pelo menos parte da funcionalidade teve sua eecução autorizada enquanto o dispositivo do tipo tablet estava no estado de espera conectado 704, informações atualizadas podem ser fornecidas e/ou disponibilizadas para o usuário de um modo responsivo. Por exemplo, dentro de um pequeno intervalo de tempo (por exemplo, alguns segundos) da entrada do pedido de saída no modo de espera conectado 706, o usuário pode ser apresentado com as informações atualizadas associadas com as mensagens de entrada 702 processadas enquanto o dispositivo do tipo tablet estava no estado de espera conectado 704. Por exemplo, novas mensagens, atualizações de feed de RSS, convites para eventos e/ou uma infinidade de outras informações podem ser disponibilizadas para o usuário durante a mudança do dispositivo do tipo tablet para o estado de execução. Desse modo, o dispositivo do tipo tablet pode prover de maneira significativa a melhoria da vida útil da bateria em função do estado de espera conectado e ainda assim prover ao usuário com uma experiência responsiva e atualizada durante o estado de execução.
[00062] Além disso, outra modalidade envolve um meio legível por computador que compreende instruções executáveis pelo processador configuradas para implantar uma ou mais das técnicas apresentadas aqui. Um meio legível por computador exemplar que pode ser concebido dessas maneiras é ilustrado na Fig. 8, onde a implantação 800 compreende um meio legível por computador 816 (por exemplo, um CD-R, DVD-R ou uma bandeja de um drive de disco rígido) no qual encontram-se os dados codificados legíveis por computador 814. Esses dados legíveis por computador 814 por sua vez compreendem uma série de instruções de computador 812 configuradas para operar de acordo com um ou mais dos princípios descritos aqui. Nessa modalidade 800, as instruções de computador executáveis pelo processador 812 podem ser configuradas para efetuar um método 810, tal como pelo menos algum dentre o método exemplar 100 da Fig. 1, o método exemplar 300 da Fig. 3 e/ou o método exemplar 500 da Fig. 5, por exemplo. Em outra modalidade, as instruções executáveis pelo processador 812 podem ser configuradas para implantar um sistema, tal como pelo menos algum dentre o sistema exemplar 200 da Fig. 2, o sistema exemplar 400 da Fig. 4 e/ou o sistema exemplar 600 da Fig. 6, por exemplo. Vários desses meios legíveis por computador podem ser idealizados por aqueles versados na técnica, os quais estão configurados para operar de acordo com as técnicas apresentadas aqui.
[00063] Embora a matéria em questão tenha sido descrita em linguagem específica para as características estruturais e/ou medidas metodológicas, deve ser compreendido que a matéria em questão, definido nas reivindicações em anexo, não está necessariamente limitado às características específicas ou às medidas descritas acima. Ao contrário, as características e as medidas específicas descritas acima são descritas como forma de exemplo para implantar as reivindicações.
[00064] Conforme usado neste pedido de patente, os termos "componente," "módulo," "sistema", "interface" e similares referem-se geralmente a uma entidade relacionado a um computador, seja ela um hardware, uma combinação de hardware e processo, um processo ou processo em execução. Por exemplo, um componente pode ser, mas não está limitado a ser, um processo executável em um processador, um processador, um objeto, um elemento executável, uma série de execução, um programa e/ou um computador. Como forma de ilustração, tanto um aplicativo executável em um controlador quanto o controlador podem ser um componente. Um ou mais componentes podem residir dentro de um processo e/ou série de execução, e um componente pode estar localizado em um computador e/ou pode ser distribuído entre dois ou mais computadores.
[00065] Além disso, a matéria reivindicada pode ser implantada como um método, aparelho ou artigo de manufatura usando-se programação e/ou técnicas de engenharia padrão para produzir processo, firmware, hardware ou qualquer combinação dos mesmos e controlar um computador para implantar a matéria em questão descrita. O termo " artigo de manufatura " conforme usado aqui está destinado a englobar um programa de computador acessível a partir de qualquer dispositivo, condutor ou meio legível por computador. É evidente que aqueles versados na técnica reconhecerão que várias modificações podem ser feitas a essa configuração sem que se fuja do escopo ou espírito da matéria reivindicada.
[00066] A Fig. 8 e discussão a seguir provêm uma breve descrição geral de um ambiente adequado de computação para implantar as modalidades de uma ou mais das provisões descritas aqui. O ambiente operacional da Fig. 8 é apenas um exemplo de um ambiente operacional adequado e não está destinado a sugerir nenhuma limitação ao escopo de uso ou à funcionalidade do ambiente operacional. Dispositivos de computação exemplares incluem, mas não estão limitados a: computadores pessoais, computadores servidores, os dispositivos portáteis ou do tipo laptop, os dispositivos móveis (tais como telefones celulares, Assistentes Pessoais Digitais (PDAs), media players e similares), sistemas de multiprocessador, bens eletrônicos de consumo, minicomputadores, computadores mainframe, ambientes de computação distribuídos que incluem qualquer um dos sistemas ou dispositivos mencionados acima e similares.
[00067] Embora não seja requerido, as modalidades são descritas no contexto geral das "instruções legíveis por computador" que são executadas por um ou mais dispositivos de computação. As instruções legíveis por computador podem ser distribuídas atravé de um meio legível por computador (discutido abaixo). As instruções legíveis por computador podem ser implantadas como módulos de programa, tais como funções, objetos, Interfaces de Programação de Aplicativo (APIs), estruturas de dados e similares que efetuam tarefas particulares ou implantam tipos de dados abstratos particulares. Tipicamente, a funcionalidade das instruções legíveis por computador pode ser combinada ou distribuída como desejado em vários ambientes.
[00068] A Fig. 9 ilustra o exemplo de um sistema 910 que compreende um dispositivo de computação 912 configurado para implantar uma ou mais modalidades fornecidas aqui. Em uma configuração, o dispositivo de computação 912 inclui pelo menos uma unidade de processamento 916 e a memória 919. Dependendo da exata configuração e do tipo de dispositivo de computação, a memória 919 pode ser volátil (tal como RAM, por exemplo), não volátil (tal como ROM, memória flash, etc., por exemplo) ou alguma combinação das duas. Essa configuração é ilustrada na Fig. 9 por uma linha pontilhada 914.
[00069] Em outras modalidades, o dispositivo 912 pode incluir características e/ou funcionalidade adicional. Por exemplo, o dispositivo 912 também pode incluir um armazenamento adicional (por exemplo, removível e/ou não removível) o que inclui, mas não está limitado a: um armazenamento magnético, um armazenamento óptico e similar. Tal armazenamento adicional é ilustrado na Fig. 9 pelo armazenamento 920. Em uma modalidade, as instruções legíveis por computador para implantar uma ou mais modalidades fornecidas aqui podem estar no armazenamento 920. O armazenamento 920 também pode armazenar outras instruções legíveis por computador para implantar um sistema operacional, um programa de aplicativo e similares. As instruções legíveis por computador podem ser carregadas na memória 919 para serem executadas pela unidade de processamento 916, por exemplo.
[00070] O termo "meio legível por computador " conforme usado aqui inclui um meio de armazenamento computadorizado. O meio de armazenamento computadorizado inclui um meio volátil e não volátil, removível e não removível implantado em qualquer método ou tecnologia para o armazenamento de informações tais como instruções legíveis por computador ou outro dados. A memória 919 e o armazenamento 920 são exemplos de meios de armazenamento computadorizado. O meio de armazenamento computadorizado inclui, mas não está limitado a: RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, Discos Digitais Versateis (DVDs) ou outro armazenamento óptico, cassetes magnéticos, fita magnética, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético ou qualquer outro meio o qual possa ser usado para armazenar as informações desejadas e o qual possa ser acessado pelo dispositivo 912. Qualquer um desses meios de armazenamento computadorizado pode fazer parte do dispositivo 912.
[00071] O dispositivo 912 também pode incluir conexão(ões) de comunicação 926 que permite que o dispositivo 912 se comunique com outros dispositivos. A(s) conexão(ões) de comunicação 926 pode incluir, mas não está limitado a: um modem, um Cartão de Interface de Rede (NIC), uma interface de rede integrada, um transmissor/receptor de rádio frequência, uma porta infravermelha, uma conexão de USB ou outras interfaces para conectar o dispositivo de computação 912 em outros dispositivos de computação. A(s) conexão(ões) de comunicação 926 pode incluir um conexão com fio ou uma conexão sem fio. A(s) conexão(ões) de comunicação 926 pode transmitir e/ou receber meios de comunicação.
[00072] O termo "meio legível por computador" pode incluir meios de comunicação. Um meio de comunicação incorpora tipicamente instruções legíveis por computador ou outros dados em um "sinal de dados modulados", tal como uma onda portadora ou outro mecanismo de transporte, e inclui qualquer meio de distribuição de informações. O termo " sinal de dados modulados " pode incluir um sinal que tem uma ou mais de suas características definidas ou mudadas de tal modo para codificar as informações no sinal.
[00073] O dispositivo 912 pode incluir dispositivo(s) de entrada 924, tais como teclado, mouse, caneta, dispositivo de entrada de voz, dispositivo de entrada de toque, câmeras infravermelhas, dispositivos de entrada de vídeo e/ou qualquer outro dispositivo de entrada. Dispositivo de saída(s) 922 tais como uma ou mais telas, autofalantes, impressoras e/ou qualquer outro dispositivo de saída, também podem ser incluídos no dispositivo 912. O(s) dispositivo(s) de entrada 924 e o(s) dispositivo de saída(s) 922 podem ser conectados ao dispositivo 912 através de uma conexão com fio, uma conexão sem fio ou qualquer combinação das mesmas. Em uma modalidade, um dispositivo de entrada ou um dispositivo de saída de outro dispositivo de computação pode ser usado como dispositivo(s) de entrada 924 ou dispositivo de saída(s) 922 para o dispositivo de computação 912.
[00074] Os componentes do dispositivo de computação 912 podem ser conectados por várias interconexões, tal como um barramento. Tais interconexões podem incluir uma Interconexão de Componente Periférico (PCI), tal como PCI Express, um Barramento Serial Universal (USB), firewire (IEEE 1394), uma estrutura com barramento óptico e similares. Em outra modalidade, os componentes do dispositivo de computação 912 podem ser interconectados por uma rede. Por exemplo, a memória 919 pode ser composta por múltiplas unidades de memória física localizadas em diferentes locais físicos interconectado pela rede.
[00075] Aqueles versados na técnica irão compreender que os dispositivos de armazenamento utilizados para armazenar as instruções legíveis por computador podem ser distribuídos ao longo da rede. Por exemplo, um dispositivo de computação 930 acessível através da rede 929 pode armazenar as instruções legíveis por computador para implantar uma ou mais modalidades fornecidas aqui. O dispositivo de computação 912 pode acessar o dispositivo de computação 930 e fazer o download de uma parte ou de todas as instruções legíveis por computador para execução. De maneira alternativa, o dispositivo de computação 912 pode fazer o download de algumas instruções legíveis por computador, quando necessário, ou algumas instruções podem ser executadas no dispositivo de computação 912 e algumas no dispositivo de computação 930.
[00076] Várias operações das modalidades são fornecidas aqui. Em uma modalidade, uma ou mais das operações descritas podem constituir as instruções legíveis por computador rearmazenadas em um ou mais meios legíveis por computador, os quais se executados por um dispositivo de computação, farão o dispositivo de computação efetuar as operações descritas. A ordem na qual algumas ou todas as operações são descritas não deve ser construída de modo a insinuar que essas operações são necessariamente dependentes da ordem. Uma ordenagem alternativa será compreendida por uma pessoa versada na técnica que possua o benefício desta descrição. Além disso, será compreendido que nem todas as operações estão necessariamente presentes em cada modalidade fornecida aqui.
[00077] Em adição, a palavra "exemplar" é usada aqui para servir como um exemplo, situação ou ilustração. Qualquer aspecto ou modelo descrito aqui como "exemplar" não precisa ser necessariamente construído como vantajoso em relação a outros aspectos ou modelos. Ao contrário, o uso da palavra exemplar está destinado a apresentar conceitos de um modo concreto. Conforme usado neste pedido de patente, o termo "ou" está destinado a significar um "ou" inclusivo e não um "ou" excludente. Ou seja, a menos que especificado de outro modo ou esclarecido pelo contexto, "X que emprega A ou B" está destinado a significar qualquer uma das permutações naturais e inclusivas. Ou seja, se X emprega A; X emprega B; ou se X emprega tanto A quanto B, então "X emprega A ou B" que satisfaz em qualquer um dos exemplos anteriores. Em adição, os artigos "um" e "uma" conforme usados neste pedido de patente e nas reivindicações em anexo podem ser geralmente construídos para significar "um ou mais", a menos que especificado de outro modo ou esclarecido pelo contexto para ser direcionado a uma forma singular. Além disso, pelo menos um entre A e B e/ou similares significa geralmente A ou B ou tanto A quanto B.
[00078] Além disso, embora a descrição tenha sido mostrada e descrita em relação a uma ou mais implantações, alterações e modificações equivalentes irão ocorrer para outras pessoas versadas na técnica, com base em uma leitura e compreensão deste relatório descritivo e dos desenhos em anexo. A descrição inclui todas essas modificações e alterações, e é limitada apenas pelo escopo das reivindicações a seguir. Em referência particular às várias funções exercidas pelos componentes descritos acima (por exemplo, elementos, recursos, etc.), os termos usados para descrever tais componentes estão destinados a corresponder, a menos que de outro modo indicado, a qualquer componente que exerça a função especificada do componente descrito (por exemplo, ou seja funcionalmente equivalente), mesmo se não for estruturamente equivalente à estrutura descrita, a qual exerce uma função nas implantações exemplares da descrição, as quais foram ilustradas aqui. Em adição, embora uma característica particular da descrição possa ter sido descrita em relação a apenas uma das várias implantações, tal característica pode ser combinada com uma ou mais características diferentes das outras implantações, como pode ser desejado e vantajoso para qualquer aplicação fornecida ou particular. Além disso, até o ponto em que os termos "inclui", "que possui", "tem", "com" ou variantes dos mesmos são usados seja na descrição detalhada ou nas reivindicações, tais termos estão destinados a serem inclusivos de um modo similar ao termo "que compreende."

Claims (20)

1. Método para atribuir uma classificação de gerenciamento de energia a um processo caracterizado pelo fato de que compreende as etapas de: identificar (104) um processo; e atribuir (106) uma classificação de gerenciamento de energia ao processo, que compreende: determinar se um ciclo de vida útil do processo é gerenciado pelo menos por um dentre o processo ou um componente de gerenciamento do ciclo de vida útil, atribuir (108) então uma classificação de isenção ao processo; determinar se o processo pode ser suspenso sem que ocorra uma falha no sistema de computação (202) e se a funcionalidade com tempo de execução limitado, associada com o processo não é desejada, atribuir (110) então uma classificação suspensa ao processo; determinar se o processo pode ser regulado sem que ocorra uma falha no sistema de computação (202) e a funcionalidade com tempo de execução limitado, associada com o processo é desejada, atribuir (112) então uma classificação de regulação ao processo; e determinar se o processo não pode ser suspenso ou regulado sem que ocorra uma falha no sistema de computação, atribuir (114) então a classificação de isenção ao processo; e se o processo está associado com uma aplicação de usuário, determinar então que o processo pode ser suspenso e designar a classificação de suspensão ao processo.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o processo compreende um processo recém-criado dentro de um recipiente lógico.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende: determinar se o recipiente lógico está associado com um recipiente lógico principal de um processo principal; e atribuir uma classificação de gerenciamento de energia principal, atribuída ao processo principal para o processo recém-criado como a classificação de gerenciamento de energia atribuída ao processo.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a atribuição de uma classificação de gerenciamento de energia compreende: determinar se o processo proporciona funcionalidade associada com uma política definida para os usuários, atribuir então uma classificação de gerenciamento de energia definida para usuários para o processo como a classificação de gerenciamento de energia atribuída ao processo.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a classificação de gerenciamento de energia associada com um sistema de operação do desktop.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende determinar se o processo está associado com um aplicativo de usuário determinando se o aplicativo de usuário está associado com uma sessão de usuário.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende se o processo corresponde a pelo menos um dentre um processo kernel de núcleo e um driver de dispositivo, determinar então se o processo não pode ser suspenso e atribuir a classificação de isenção ao processo como a classificação de gerenciamento de energia atribuída ao processo.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende consultar um gráfico de dependência criado a partir de um processo de kernel de núcleo até um ou mais processos de suporte que provêm a funcionalidade da qual o processo de kernel de núcleo depende; e se o processo compreende um processo de suporte, determinar então se o processo não pode ser suspenso e atribuir a classificação de isenção ao processo como a classificação de gerenciamento de energia atribuída para o processo.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende se o processo compreende um serviço criado dentro de uma sessão do sistema que provê a funcionalidade desejada de estado, determinar então se o processo pode ser regulado e atribuir a classificação de regulação ao processo como a classificação de gerenciamento de energia atribuída ao processo.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a funcionalidade desejada de estado corresponde a pelo menos um dentre uma funcionalidade antivírus, uma funcionalidade de serviço de mensagem, e uma funcionalidade de serviço de rede.
11. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a classificação de gerenciamento de energia está associada com um sistema de operação de um tablet.
12. Sistema para atribuir uma classificação de gerenciamento de energia para um processo, caracterizado pelo fato de que compreende: um componente de classificação (204) configurado para: atribuir (106) uma classificação de gerenciamento de energia a um processo, que compreende: determinar se um ciclo de vida útil do processo é gerenciado por pelo menos um dentre o processo e um componente de gerenciamento do ciclo de vida útil, atribuir (108) então uma classificação de isenção ao processo; determinar se o processo pode ser suspenso sem que ocorra uma falha no sistema de computação e se a funcionalidade com tempo de execução limitado, associada com o processo não é desejada, atribuir (110) então uma classificação suspensa para o processo; determinar se o processo pode ser regulado sem que ocorra uma falha no sistema de computação e se a funcionalidade com tempo de execução limitado, associada com o processo é desejada, atribuir (112) então uma classificação de regulação ao processo; determinar se o processo não pode ser suspenso ou regulado sem que ocorra uma falha no sistema de computação, atribuir (114) então a classificação de isenção ao processo; e se o processo está associado com uma aplicação de usuário, determinar então que o processo pode ser suspenso e designar a classificação de suspensão ao processo.
13. Sistema, de acordo com a reivindicação 12, caracterizado pelo fato de que o componente de classificação (204) é configurado para: determinar se o processo está associado com um processo principal; e atribuir uma classificação de gerenciamento de energia principal atribuída ao processo principal para o processo como a classificação de gerenciamento de energia atribuída ao processo.
14. Sistema, de acordo com a reivindicação 12, caracterizado pelo fato de que o componente de classificação (204) é configurado para: se o processo proporcionar a funcionalidade associada com uma política definida para os usuários, atribuir então uma classificação de gerenciamento de energia definida pelo usuário para o processo como a classificação de gerenciamento de energia atribuída ao processo.
15. Sistema, de acordo com a reivindicação 12, caracterizado pelo fato de que a classificação de gerenciamento de energia associada com pelo menos um dentre um sistema operacional de um tablet ou sistema operacional de desktop.
16. Sistema, de acordo com a reivindicação 12, caracterizado pelo fato de que o componente de classificação (204) é configurado para: determinar se o processo não pode ser suspenso sem uma falha do sistema de computação com base na determinação se o processo corresponde a pelo menos um dentre um processo de kernel núcleo e um driver de dispositivo.
17. Sistema, de acordo com a reivindicação 12, caracterizado pelo fato de que o componente de classificação (204) é configurado para: consultar um gráfico de dependência criado a partir de um processo de kernel de núcleo para um ou mais processos de suporte que provêm a funcionalidade da qual o processo de kernel núcleo depende; e se o processo compreende um processo de suporte, determinar então se o processo não pode ser suspenso e atribuir a classificação de isenção ao processo como a classificação de gerenciamento de energia atribuída ao processo.
18. Sistema, de acordo com a reivindicação 12, caracterizado pelo fato de que o componente de classificação (204) é configurado para: se o processo compreende um serviço criado dentro de uma sessão do sistema que provê a funcionalidade desejada de estado, determinar então se o processo pode ser regulado e atribuir a classificação de regulação ao processo como a classificação de gerenciamento de energia atribuída ao processo.
19. Sistema, de acordo com a reivindicação 18, caracterizado pelo fato de que a funcionalidade desejada de estado corresponde a pelo menos um dentre uma funcionalidade antivírus, uma funcionalidade de serviço de mensagem, e uma funcionalidade de serviço de rede.
20. Meio legível por computador, excluindo sinais, compreendendo instruções executáveis em computador que, quando executadas via um processador em um computador, realizam um método para atribuir uma classificação de gerenciamento de energia a um processo caracterizado pelo fato de que compreende as etapas de: atribuir (106) uma classificação de gerenciamento de energia ao processo, que compreende: determinar se um ciclo de vida útil do processo é gerenciado pelo menos por um dentre o processo ou um componente de gerenciamento do ciclo de vida útil, atribuir (108) então uma classificação de isenção ao processo; determinar se o processo pode ser suspenso sem que ocorra uma falha no sistema de computação (202) e se a funcionalidade com tempo de execução limitado, associada com o processo não é desejada, atribuir (110) então uma classificação suspensa ao processo; determinar se o processo pode ser regulado sem que ocorra uma falha no sistema de computação (202) e a funcionalidade com tempo de execução limitado, associada com o processo é desejada, atribuir (112) então uma classificação de regulação ao processo; e determinar se o processo não pode ser suspenso ou regulado sem que ocorra uma falha no sistema de computação, atribuir (114) então a classificação de isenção ao processo; e se o processo está associado com uma aplicação de usuário, determinar então que o processo pode ser suspenso e designar a classificação de suspensão ao processo.
BR112014002901-6A 2011-08-10 2011-10-07 método, sistema, e meio legível por computador para atribuir uma classificação de gerenciamento de energia a um processo BR112014002901B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/207,167 2011-08-10
US13/207,167 US8677158B2 (en) 2011-08-10 2011-08-10 System and method for assigning a power management classification including exempt, suspend, and throttling to an process based upon various factors of the process
PCT/US2011/055472 WO2013022464A1 (en) 2011-08-10 2011-10-07 Suspension and/or throttling of processes for connected standby

Publications (2)

Publication Number Publication Date
BR112014002901A2 BR112014002901A2 (pt) 2017-02-21
BR112014002901B1 true BR112014002901B1 (pt) 2021-06-08

Family

ID=47668755

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014002901-6A BR112014002901B1 (pt) 2011-08-10 2011-10-07 método, sistema, e meio legível por computador para atribuir uma classificação de gerenciamento de energia a um processo

Country Status (11)

Country Link
US (1) US8677158B2 (pt)
EP (1) EP2742400A4 (pt)
JP (1) JP5960263B2 (pt)
KR (1) KR101850577B1 (pt)
CN (1) CN103718133B (pt)
AU (1) AU2011374896B2 (pt)
BR (1) BR112014002901B1 (pt)
CA (1) CA2844297A1 (pt)
MX (1) MX2014001632A (pt)
RU (1) RU2576045C2 (pt)
WO (1) WO2013022464A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788863B2 (en) 2011-08-10 2014-07-22 Microsoft Corporation System and method for restoring and/or continuing execution functionality to various processes based on predefined power classifications while transitioning a computing environment from connected standby state to execution state
US9588823B2 (en) * 2014-12-24 2017-03-07 Intel Corporation Adjustment of execution of tasks
US9939834B2 (en) 2014-12-24 2018-04-10 Intel Corporation Control of power consumption
US9483305B1 (en) * 2015-05-26 2016-11-01 Google Inc. Partial resume for operating system modules
CN105337849B (zh) * 2015-12-07 2019-09-13 上海斐讯数据通信技术有限公司 同步消息处理方法、同步消息控制器、发送和接收设备
US10996737B2 (en) 2016-03-31 2021-05-04 Intel Corporation Method and apparatus to improve energy efficiency of parallel tasks
CN106095051B (zh) * 2016-05-31 2019-02-01 Oppo广东移动通信有限公司 一种移动终端应用程序的处理方法、装置及移动终端
CN110704271B (zh) * 2019-08-26 2023-07-07 上海商魁信息科技有限公司 移动手持终端的外接设备模块功耗管控方法和装置
US11972267B2 (en) 2022-10-04 2024-04-30 International Business Machines Corporation Hibernation of computing device with faulty batteries
KR102536104B1 (ko) * 2022-11-28 2023-05-26 주식회사 기린 전력 사용 패턴 파악 기반의 컴퓨터 에너지 절약 시스템

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511203A (en) 1994-02-02 1996-04-23 Advanced Micro Devices Power management system distinguishing between primary and secondary system activity
US5944829A (en) 1996-09-30 1999-08-31 Intel Corporation Adjusting software characteristics by user interface based upon battery level and the amount of time the user wants the battery to last
US6260150B1 (en) 1998-03-10 2001-07-10 Agere Systems Guardian Corp. Foreground and background context controller setting processor to power saving mode when all contexts are inactive
US6834386B1 (en) 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
US6851065B2 (en) 2001-09-10 2005-02-01 Dell Products L.P. System and method for executing resume tasks during a suspend routine
US7082542B2 (en) 2001-12-21 2006-07-25 Intel Corporation Power management using processor throttling emulation
US20030158609A1 (en) * 2002-02-19 2003-08-21 Koninklijke Philips Electronics N.V. Power saving management for portable devices
US7564810B2 (en) * 2002-05-08 2009-07-21 Microsoft Corporation Method and system for managing power consumption of a network interface module in a wireless computing device
US20030214481A1 (en) 2002-05-14 2003-11-20 Yongming Xiong Finger worn and operated input device and method of use
US20050066209A1 (en) * 2003-09-18 2005-03-24 Kee Martin J. Portable electronic device having high and low power processors operable in a low power mode
US7702733B2 (en) 2003-09-18 2010-04-20 Vulcan Portals Inc. Low power email functionality for an electronic device
WO2006062270A1 (en) 2004-12-08 2006-06-15 Electronics And Telecommunications Research Institute Power management method for platform and that platform
JP4548601B2 (ja) * 2005-04-20 2010-09-22 株式会社デンソー 自動車用制御ユニット
US7721331B1 (en) 2005-05-19 2010-05-18 Adobe Systems Inc. Methods and apparatus for performing a pre-processing activity
KR100630204B1 (ko) 2005-08-30 2006-10-02 삼성전자주식회사 휴대단말기의 멀티태스킹 수행 장치 및 방법
US7500091B2 (en) 2005-11-30 2009-03-03 Microsoft Corporation Delay start-up of applications
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7584376B2 (en) 2006-08-23 2009-09-01 Palm, Inc. Method and apparatus for power management
KR100752135B1 (ko) 2006-09-15 2007-08-27 삼성전자주식회사 휴대용 단말기에서 절전 모드 관리를 위한 장치 및 방법
KR20080060649A (ko) 2006-12-27 2008-07-02 엘지전자 주식회사 데이터 처리 장치 및 방법
US7853812B2 (en) 2007-02-07 2010-12-14 International Business Machines Corporation Reducing power usage in a software application
JP4444310B2 (ja) * 2007-05-30 2010-03-31 株式会社東芝 携帯電話機
RU69691U1 (ru) * 2007-06-22 2007-12-27 Федеральное государственное унитарное предприятие "Российский научно-исследовательский институт космического приборостроения" Мобильное устройство связи
US8209701B1 (en) 2007-09-27 2012-06-26 Emc Corporation Task management using multiple processing threads
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
US9516116B2 (en) * 2008-06-06 2016-12-06 Apple Inc. Managing notification service connections
US9027027B2 (en) 2008-06-09 2015-05-05 Microsoft Technology Licensing, Llc Thread management based on device power state
US8229410B2 (en) 2008-06-30 2012-07-24 Qualcomm Incorporated Methods for supporting multitasking in a mobile device
US8305249B2 (en) 2008-07-18 2012-11-06 EchoStar Technologies, L.L.C. Systems and methods for controlling power consumption in electronic devices
US8510577B2 (en) 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8140876B2 (en) * 2009-01-16 2012-03-20 International Business Machines Corporation Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
KR101498225B1 (ko) 2009-02-19 2015-03-04 삼성전자주식회사 데이터 저장 장치 및 그것의 전원 관리 방법
US8291422B2 (en) * 2009-05-11 2012-10-16 Bbn Technologies Corp. Energy-aware computing environment scheduler
CN101923382B (zh) * 2009-06-16 2013-01-16 联想(北京)有限公司 一种计算机系统的节能方法及计算机系统
US8970507B2 (en) 2009-10-02 2015-03-03 Blackberry Limited Method of waking up and a portable electronic device configured to perform the same
JP4970560B2 (ja) * 2010-01-23 2012-07-11 レノボ・シンガポール・プライベート・リミテッド 特定の機能を維持しながら消費電力を低減するコンピュータ

Also Published As

Publication number Publication date
CN103718133B (zh) 2015-11-25
AU2011374896B2 (en) 2017-04-27
JP5960263B2 (ja) 2016-08-02
RU2014104496A (ru) 2015-08-20
US8677158B2 (en) 2014-03-18
EP2742400A1 (en) 2014-06-18
MX2014001632A (es) 2014-05-28
CA2844297A1 (en) 2013-02-14
EP2742400A4 (en) 2015-04-22
KR20140061393A (ko) 2014-05-21
AU2011374896A1 (en) 2014-02-27
CN103718133A (zh) 2014-04-09
WO2013022464A1 (en) 2013-02-14
KR101850577B1 (ko) 2018-04-19
RU2576045C2 (ru) 2016-02-27
BR112014002901A2 (pt) 2017-02-21
US20130042118A1 (en) 2013-02-14
JP2014523059A (ja) 2014-09-08

Similar Documents

Publication Publication Date Title
BR112014002886B1 (pt) método e sistema fazer a transição de um ambiente de computação para um estado de espera
US10684641B2 (en) Suspension and/or throttling of processes for connected standby
BR112014002901B1 (pt) método, sistema, e meio legível por computador para atribuir uma classificação de gerenciamento de energia a um processo
US9721660B2 (en) Configurable volatile memory without a dedicated power source for detecting a data save trigger condition

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 07/10/2011, OBSERVADAS AS CONDICOES LEGAIS.