BRPI0616858A2 - sistema de operação e inicialização rápida a partir de um estado de desligado - Google Patents

sistema de operação e inicialização rápida a partir de um estado de desligado Download PDF

Info

Publication number
BRPI0616858A2
BRPI0616858A2 BRPI0616858-2A BRPI0616858A BRPI0616858A2 BR PI0616858 A2 BRPI0616858 A2 BR PI0616858A2 BR PI0616858 A BRPI0616858 A BR PI0616858A BR PI0616858 A2 BRPI0616858 A2 BR PI0616858A2
Authority
BR
Brazil
Prior art keywords
system component
code
static data
boot
data
Prior art date
Application number
BRPI0616858-2A
Other languages
English (en)
Inventor
Michael H Tsang
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of BRPI0616858A2 publication Critical patent/BRPI0616858A2/pt
Publication of BRPI0616858B1 publication Critical patent/BRPI0616858B1/pt

Links

Classifications

    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

SISTEMA DE OPERAçãO E INICIALIZAçãO RáPIDA A PARTIR DE UM ESTADO DE DESLIGADO. é descrito um mecanismo de inicialização rápida que de uma maneira geral opera pela persistência de dados e/ou código estáticos para um componente de sistema, e então fornece o componente de sistema com acesso aos dados e/ou código estáticos durante uma inicialização de dispositivo subsequente. Por exemplo, os dados e/ou código estáticos de um ou mais componentes podem ser restaurados da memória não volátil para memória volátil, pelo que reinicializações subsequentes não necessitam que os componentes computem novamente seus dados estáticos persistidos, tornando as reinicializações subsequentes mais rápidas. Uma infra-estrutura de inicialização rápida pode incluir um conjunto de interfaces, e fornece primeiro mecanismo que persiste dados e/ou código estáticos para um componente de sistema, e um segundo mecanismo que fornece o componente de sistema com acesso aos dados e/ou código estáticos. A infra-estrutura de inicialização rápida também pode fornecer o componente com um modo para invalidar dados e/ou código estáticos, juntamente com um mecanismo de segundo plano que coleta dados e/ou código estáticos a partir do componente de sistema.

Description

"SISTEMA DE OPERAÇÃO E INICIALIZAÇÃO RÁPIDA APARTIR DE UM ESTADO DE DESLIGADO"
ANTECEDENTES
À medida que os dispositivos móveis se tornam maispopulares a demanda por maior vida de bateria e acessibili-dade instantânea aumenta. Com a complexidade de um sistemade operação completo, tal como um sistema de operação basea-do em Windows® da Microsoft, é um desafio significativo a-tender a essa demanda. Por exemplo, um computador pessoalmóvel tipico inicializa de um estado de desligado (por exem-plo, correspondente a um estado S5 de acordo com o padrãoACPI) em cerca de vinte a quarenta segundos, o que é clara-mente considerado como não sendo um dispositivo acessívelinstantaneamente.
Vários mecanismos têm sido empreendidos para tra-zer um sistema de computador de volta para operação mais ra-pidamente. Por exemplo, foi definido um ACPI S3/estado deespera, no qual o estado de sistema é substancialmente sus-penso na memória de sistema, pelo qual é alcançado desempe-nho em tempo razoável. Entretanto, o estado S3 consome ener-gia de bateria, o que é uma preocupação para muitos usuáriose fabricantes de dispositivo, e pelo menos por esse motivotorna o uso do estado S3 uma solução insatisfatória paramuitos usuários. Também existe uma preocupação entre algunsusuários e fabricantes de que o estado S3 pode se degradarao longo do tempo, o que é provavelmente por causa dos vá-rios acionadores e serviços, os quais são obtidos a partirde várias fontes de desenvolvimento e que podem ser parte docaminho de código de reinicio critico.
Um estado de hibernação/S4 também é definido, oqual em geral transfere memória de sistema para um arquivode disco rígido para permitir que um sistema se torne ativoum pouco mais rapidamente, embora também preservando dadosno caso de uma falta de energia. 0 estado de hibernação S4tem a vantagem de não consumir nenhuma energia, mas ele com-partilha as mesmas preocupações de estabilidade e potencialperda de dados expressadas para o estado S3. Adicionalmente,um reinicio S4 ainda leva aproximadamente quinze segundos namédia, o que também é insuficiente para ser considerado so-lução "Instantânea".
Mesmo com sistemas de computador de mesa que nãosão energizados por bateria, uma experiência de ligar rapi-damente está se tornando uma exigência muito procurada. Porexemplo, já que muitos sistemas de computador estão evoluin-do na direção de fornecer entretenimento, sistemas de compu-tador particularmente domésticos, existe uma crescente ne-cessidade para se ter dispositivos de computação que ajammais como dispositivos eletrônicos de consumidor a fim devender produtos de computação no competitivo mercado de com-putadores e de produtos eletrônicos de consumidor. Por exem-plo, ao contrário do tempo de vinte a quarenta segundos men-cionado anteriormente para uma seqüência de inicialização afrio, dispositivos eletrônicos de consumidor típicos podemser ligados e se tornar funcionais dentro de alguns segun-dos.Em geral, uma inicialização mais rápida a partirde um estado de inteiramente desligado é desejável para sis-temas de computador. Uma inicialização mais rápida como estadeve ser independente de outros (por exemplo, S3 e S4) tiposde operações de reinicio e complementares a estes, porqueesses estados de espera preservam estados de sistema que sãoimportantes em alguns cenários de usuário.
SUMÁRIO
Resumidamente, vários aspectos, da presente inven-ção são direcionados para um mecanismo de inicialização rá-pida que de uma maneira geral opera pela persistência de da-dos estáticos para um componente de sistema, e então forneceo componente de sistema com acesso aos dados estáticos du-rante uma inicialização de dispositivo subseqüente. Por e-xemplo, depois da configuração ou instalação, uma imagem deinicialização rápida compreendendo os dados e possivelmentecódigo estáticos de um ou mais componentes pode ser restau-rada da memória não volátil para a memória volátil (por e-xemplo, RAM); por exemplo, colocar o caminho de código deinicialização na memória não volátil tem a vantagem de con-tornar o tempo de giro relativamente demorado das mídias gi-ratórias, por exemplo, um tempo de giro de disco rígido tí-pico pode ser tanto quanto cerca de cinco segundos. Durantereinicializações subseqüentes, cada componente de sistema emque dados estáticos persistiram é fornecido com acesso aosseus dados estáticos correspondentes, pelo que muito dos da-dos não necessitam ser especificados novamente durante cadainicialização, tornando as reinicializações subseqüentesmais rápidas.
Uma infra-estrutura de inicialização rápida é e-xemplifiçada, incluindo um primeiro mecanismo em que persis-tem dados e/ou código estáticos para um componente de siste-ma em um primeiro momento, e um segundo mecanismo que forne-ce o componente de sistema com acesso aos dados estáticos emum segundo momento que é depois do primeiro momento e duran-te uma inicialização do dispositivo de sistema. A infra-estrutura de inicialização rápida pode incluir um conjuntode interfaces pelo qual o componente de sistema (cliente)pode persistir os dados e/ou código estáticos, obter acessoaos dados estáticos, e invalidar os dados estáticos (por e-xemplo, mediante um mudança). A infra-estrutura de iniciali-zação rápida também pode empregar mecanismo de segundo planoque coleta os dados e/ou código estáticos a partir do compo-nente de sistema, tal como inicialização de sistema seguin-te .
Outras vantagens se tornarão aparentes com a des-crição detalhada a seguir quando consideradas em conjuntocom os desenhos.
DESCRIÇÃO RESUMIDA DOS DESENHOS
A presente invenção está ilustrada a titulo de e-xemplo e não de limitação nas figuras anexas, nas quais nú-meros de referência iguais indicam elementos similares, e emque:A figura 1 mostra um exemplo ilustrativo de um am-biente de computação de uso geral no qual vários aspectos dapresente invenção podem ser incorporados.
A figura 2 é um diagrama de blocos representandouma arquitetura de exemplo para persistir dados estáticos,por exemplo, durante configuração de componente de sistema.
A figura 3 é um diagrama de blocos 'representandouma arquitetura de exemplo para fornecer um componente desistema com acesso aos seus dados estáticos, por exemplo,durante uma operação de inicialização.
As figuras 4A e 4B são diagramas de blocos repre-sentando uma arquitetura de exemplo para invalidar dados es-táticos do componente mediante uma mudança, e mudar os dadosestáticos seguindo uma mudança, respectivamente.
A figura 5 é um diagrama de blocos representandouma arquitetura de exemplo para obter dados estáticos docomponente de sistema durante uma operação de segundo plano.
A figura 6 é um diagrama de blocos representandoum processo de inicialização rápida de exemplo a partir dedisco rígido ou NVRAM.
DESCRIÇÃO DETALHADA
Ambiente de Operação Exemplar
A figura 1 ilustra um exemplo de um ambiente desistema de computação adequado 100 no qual a invenção podeser implementada. O ambiente de sistema de computação 100 ésomente um exemplo de um ambiente de computação adequado enão pretende sugerir qualquer limitação tal como para o es-copo de uso ou funcionalidade da invenção. Tampouco o ambi-ente de computação 100 deve ser interpretado como tendoqualquer dependência ou exigência relativa a qualquer um oucombinação de componentes ilustrados no ambiente de operaçãoexemplar 100.
A invenção é operacional com inúmeros outros ambi-entes ou configurações de sistema de computação de uso geralou uso especial. Exemplos de sistemas de computação, ambien-tes, e/ou configurações bem conhecidos que podem ser adequa-dos para uso com a invenção incluem, mas não se limitando aestes: computadores pessoais, computadores servidores, dis-positivos de mão ou portáteis, dispositivos de placa de da-dos, sistemas multiprocessadores, sistemas baseados em mi-croprocessadores, aparelhos conversores de sinais, aparelhoseletrônicos de consumidor programáveis, PCs de rede, mini-computadores, computadores de grande porte, ambientes decomputação distribuída que incluam quaisquer dos sistemas oudispositivos indicados anteriormente, e outros mais.
A invenção pode ser descrita no contexto geral deinstruções executáveis por computador, tais como módulos deprograma, sendo executadas por um computador. De uma maneirageral, módulos de programa incluem rotinas, programas, obje-tos, componentes, estruturas de dados, e assim por diante,os quais executam tarefas particulares ou implementam tiposde dados abstratos particulares. A invenção também pode serpraticada em ambientes de computação distribuída onde tare-fas são executadas por dispositivos de processamento remotosque são ligados através de uma rede de comunicações. Em umambiente de computação distribuída, módulos de programa po-dem ser localizados em mídia de armazenamento de computadorlocal e/ou remota incluindo dispositivos de armazenamento dememória.
Com referência à figura 1, um sistema exemplar pa-ra implementação da invenção inclui um dispositivo de compu-tação de uso geral na forma de um computador 110. Componen-tes do computador 110 podem incluir, mas não se limitando aestes, uma unidade de processamento 120, uma memória de sis-tema 130, e um barramento de sistema. 121 que acopla várioscomponentes de sistema incluindo a memória de sistema à uni-dade de processamento 120. O barramento de sistema 121 podeser qualquer um dos diversos tipos de estruturas de barra-mento incluindo um barramento de memória ou controlador dememória, um barramento periférico, e um barramento local u-sando qualquer uma de uma variedade de arquiteturas de bar-ramento. A título de exemplo, e não de limitação, tais ar-quiteturas incluem barramento de Arquitetura Padrão da In-dústria (ISA), barramento de Arquitetura de Micro Canal(MCA), barramento ISA Aprimorado (EISA), barramento local deAssociação de Padrões Eletrônicos de Vídeo (VESA), e barra-mento de Interconexão de Componentes Periféricos (PCI) tam-bém conhecido como barramento Mezanino.
0 computador 110 inclui tipicamente uma variedadede mídias legíveis por computador. Mídias legíveis por com-putador podem ser quaisquer mídias disponíveis que possamser acessadas pelo computador 110 e incluem tanto mídias vo-láteis e não voláteis quanto mídias removíveis e não removí-veis. A título de exemplo, e não de limitação, mídias legí-veis por computador podem compreender mídias de armazenamen-to de computador e mídias de comunicação. Mídias de armaze-namento de computador incluem mídias voláteis e não volá-teis, removíveis e não removíveis implementadas em qualquer método ou tecnologia para armazenamento de informação taiscomo instruções legíveis por computador, estruturas de da-dos, módulos de programa ou outros dados. Mídias de armaze-namento de computador incluem, mas não se limitando a estas,RAM, ROM, EEPROM, memória relâmpago ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outroarmazenamento de disco ótico, cassetes magnéticos, fita mag-nética, armazenamento de disco magnético ou outros disposi-tivos de armazenamento magnético, ou qualquer outra mídiaque possa ser usada para armazenar a informação desejada eque possa ser acessada pelo computador 110. Mídias de comu-nicação tipicamente incorporam instruções legíveis por com-putador, estruturas de dados, módulos de programa ou outrosdados em um sinal de dados modulado tal como uma onda porta-dora ou outro mecanismo de transporte e incluem quaisquermídias de entrega de informação. O termo "sinal de dados mo-dulado" significa um sinal que tenha uma ou mais das suascaracterísticas estabelecidas ou mudadas de uma tal maneiracomo para codificar informação no sinal. A título de exem-plo, e não de limitação, mídias de comunicação incluem mí-dias a fio tal como uma rede com fio ou conexão direta comfio, e mídias sem fio tais como acústica, RF, infravermelhoe outras mídias sem fio. Combinações de quaisquer das mídiascitadas anteriormente também devem ser incluídas no escopode mídias legíveis por computador.
A memória de sistema 130 inclui mídias de armaze-namento de computador na forma de memória volátil e/ou nãovolátil tal como a memória somente de leitura (ROM) 131 e amemória de acesso aleatório (RAM) 132. Um sistema de entra-da/saída básico 133 (BIOS), contendo as rotinas básicas queajudam a transferir informação entre elementos dentro docomputador 110, tal como durante a partida, é tipicamentearmazenado na ROM 131. A RAM 132 tipicamente contém dadose/ou módulos de programa que são imediatamente acessíveispara a unidade de processamento 120 e/ou atualmente sendooperados por ela. A título de exemplo, e não de limitação, afigura 1 ilustra o sistema de operação 134, os programas deaplicação 135, os outros módulos de programa 136 e os dadosde programa 137.
O computador 110 também pode incluir outras mídiasde armazenamento de computador removíveis/não removíveis,voláteis/não voláteis. Somente a título de exemplo, a figura1 ilustra uma unidade de disco rígido 141 que lê mídias mag-néticas não removíveis não voláteis ou grava nelas, uma uni-dade de disco magnético 151 que lê um disco magnético nãovolátil removível 152 ou grava nele, e uma unidade de discoótico 155 que lê um disco ótico não volátil removível 156,ou grava nele, tal como um CD ROM ou outras mídias óticas.Outras mídias de armazenamento de computador removíveis/nãoremovíveis, voláteis/não voláteis que podem ser usadas noambiente de operação exemplar incluem, mas não se limitandoa estas, cassetes de fita magnética, cartões de memória re-lâmpago, discos versáteis digitais, fita de video digital,RAM de estado sólido, ROM de estado sólido, e outras mais. Aunidade de disco rigido 141 é tipicamente conectada ao bar-ramento de sistema 121 por meio de uma interface de memórianão removível tal como a interface 140, e a unidade de discomagnético 151 e a unidade de disco ótico 155 são tipicamenteconectadas ao barramento de sistema 121 por uma interface dememória removível, tal como a interface 150.
As unidades e suas mídias de armazenamento de com-putador associadas, descritas anteriormente e ilustradas nafigura 1, fornecem armazenamento de instruções legíveis porcomputador, estruturas de dados, módulos de programa e ou-tros dados para o computador 110. Na figura 1, por exemplo,a unidade de disco rígido 141 está ilustrada como o sistemade operação de armazenamento .144, os programas de aplicação145, os outros módulos de programa 146 e os dados de progra-ma 147. Deve-se notar que estes componentes tanto podem seriguais quanto diferentes de o sistema de operação 134, osprogramas, de aplicação 135, os outros módulos de programa136 e os dados de programa 137. Ao sistema de operação 144,programas de aplicação 145, outros módulos de programa 146 eaos dados de programa 147 são dados números diferentes nestedocumento para ilustrar que, no mínimo, eles são cópias di-ferentes. Um usuário pode entrar com comandos e informaçãopara o computador 110 por meio de dispositivos de entradatais como uma placa de dados, ou o digitalizador eletrônico164, um microfone 163, um teclado 162 e o dispositivo apon-tador 161, comumente referido como mouse, mouse estacionárioou superfície sensível ao toque. Outros dispositivos de en-trada não mostrados na figura 1 podem incluir um comando dejogos, controle manual de jogos, antena parabólica, digita-lizador, ou coisa parecida. Estes e outros dispositivos deentrada são freqüentemente conectados à unidade de processa-mento 120 por meio de uma interface de entrada de usuário160 que é acoplada ao barramento de sistema, mas podem serconectados por outra interface e outras estruturas de barra-mento, tais como uma porta paralela, porta de jogos ou umbarramento serial universal (USB). Um monitor 191 ou outrotipo de dispositivo de exibição também é conectado ao barra-mento de sistema 121 por meio de uma interface, tal como umainterface de vídeo 190. 0 monitor 191 também pode ser inte-grado com um painel de tela sensível ao toque ou coisa pare-cida. Deve-se notar que o monitor e/ou o painel de tela sen-sível ao toque pode ser fisicamente acoplado a um alojamentono qual o dispositivo de computação 110 é incorporado, talcomo em um computador pessoal do tipo sensível ao toque (ta-blet). Além do mais, computadores tais como o dispositivo decomputação 110 também podem incluir outros dispositivos pe-riféricos de saída tais como os alto-falantes 195 e a im-pressora 196, os quais podem ser conectados por meio de umainterface periférica de saída 194 ou coisa parecida.
0 computador 110 pode operar em um ambiente de re-de usando conexões lógicas para um ou mais computadores re-motos tais como um computador remoto 180. 0 computador remo-to 180 pode ser um computador pessoal, um servidor, um rote-ador, um PC de rede, um dispositivo de pares ou outro nó derede comum, e inclui tipicamente muitos dos elementos des-critos anteriormente relativos ao computador 110 ou todoseles, embora somente um dispositivo de armazenamento de me-mória 181 tenha sido ilustrado na figura 1. As conexões ló-gicas representadas na figura 1 incluem uma rede de área lo-cal (LAN) 171 e uma rede de área estendida (WAN) 173, mastambém podem incluir outras redes. Tais ambientes de comuni-cação inter-rede são comuns em escritórios, redes de compu-tadores estendidas de empresa, intranets e na Internet.
Quando usado em um ambiente de comunicação inter-rede LAN, o computador 110 é conectado à LAN 171 por meio deuma interface de rede ou adaptador 170. Quando usado em umambiente de comunicação inter-rede WAN, o computador 110 in-clui tipicamente um modem 172 ou outro dispositivo para es-tabelecer comunicações através da WAN 173, tal como a Inter-net. 0 modem 172, o qual pode ser interno ou externo, podeser conectado ao barramento de sistema 121 por meio da in-terface de entrada de usuário 160 ou por outro mecanismo a-propriado. Em um ambiente de rede, módulos de programa re-presentados relativos ao computador 110, ou partes do mesmo,podem ser armazenados no dispositivo remoto de armazenamentode memória. A titulo de exemplo, e não de limitação, a figu-ra 1 ilustra os programas de aplicação remota 185 como resi-dindo no dispositivo de memória 181. Deve ser percebido queas conexões de rede mostradas são exemplares e que outrosmeios de se estabelecer um elo de comunicações entre os com-putadores podem ser usados.Inicialização Rápida
Vários aspectos da tecnologia descrita neste docu-mento são direcionados para tecnologia que rapidamente ini-cializa um dispositivo de computação a partir de um estadode desligado, o que inclui reinicializar rapidamente o dis-positivo de computação. Em uma implementação de exemplo,parte da tecnologia pode ler dados em um dispositivo de ar-mazenamento de RAM não volátil de estado sólido, o que émais rápido do que recuperar dados de um disco, particular-mente quando o disco necessita girar a partir de um estadode desligado. Entretanto, tal como deve ser entendido, atecnologia de inicialização rápida descrita neste documentotambém fornecerá ordinariamente um experiência de iniciali-zação muito mais rápida (em relação aos tempos de iniciali-zação atuais) a partir de um disco rígido. Como tal, quais-quer dos exemplos mencionados neste documento são não Iimi-tativos, e a presente invenção pode ser usada de vários mo-dos, os quais fornecem benefícios e vantagens em computaçãoem geral.
Em geral, em cada inicialização para um sistema deoperação completo, uma máquina de computação executa muitoda mesma inicialização repetidas vezes. Algumas destas repe-tidas inicializações podem ser relativamente demoradas. Ummecanismo de inicialização rápida descrito neste documentotenta reduzir o número destas inicializações demoradas porter pelo menos parte das inicializações feitas somente umavez, por exemplo, durante a configuração inicial da máquinade computação, e então persistindo os estados inicializadosresultantes em uma forma não volátil. Pela restauração rápi-da destes estados persistidos nas inicializações subseqüen-tes, em vez de computá-los novamente a cada vez, uma grandeparte do tempo de inicialização é eliminado.
Deve ser notado que componentes usados durante i-nicialização têm tanto dados dinâmicos quanto dados estáti-cos, em que tal como usado neste documento "estático" se re-fere a dados que não são usualmente mudados entre iniciali-zações, embora eles possam ser mudados ocasionalmente. Comopode ser prontamente percebido, capturar e restaurar dadosde estado que são dinâmicos resultaria em um sistema corrom-pido. Por exemplo, o sistema de arquivo contém metadadostais como mapas de bits de agrupamento; à medida que o sis-tema é inicializado e usado, novos arquivos são criados earquivos velhos são apagados, pelo qual um mapa de bits deagrupamento capturado anteriormente é incorreto para a con-dição atual.
Em geral, a tecnologia de inicialização rápidadescrita neste documento permite que componentes que operamem tempo de inicialização preservem e restaurem seus dadosestáticos, embora deixando-os enumerar seus dados dinâmicostal como antes. Por causa de os componentes individuais co-nhecerem quais são seus estados estático e dinâmico, os com-ponentes podem identificar seus estados estáticos, e execu-tar inicialização/enumeração dinâmicas nos dados de estadodinâmico enquanto simplesmente restaura seus dados de estadoestático durante um procedimento de inicialização rápida.Desta maneira, muito da inicialização repetitiva que ocorredurante uma lenta seqüência de inicialização é eliminado.
Alguns componentes podem ser componentes legadosque não são gravados para identificar e/ou preservar dadosestáticos, ou podem escolher não participar em um dado es-quema de inicialização rápida por outros motivos. A fim "depermitir mistura de componentes participantes e não partici-pantes, um mecanismo de API é fornecido de maneira tal quesomente aqueles componentes que estão cientes da inicializa-ção rápida participarão pela chamada da API, enquanto quecomponentes legados não participantes e outros mais ignora-rão a funcionalidade fornecida.
Adicionalmente, por causa de componentes poderemter interdependências, a inicialização acontece em múltiplospassos; tal inicialização de múltiplas fases já é estrutura-da em sistemas de operação baseados em Windows®. Por exem-plo, em um núcleo NT, vários componentes de núcleo (por e-xemplo, objeto, segurança, processos, PnP, executivo, nú-cleo, gerenciamento de memória, registro e assim por diante)têm pontos de entrada de inicialização que são chamados emdiferentes fases de inicialização. Em cada fase de iniciali-zação, um componente decide qual inicializar de acordo comdependências na inicialização de outros componentes nas fa-ses anteriores.
Para participar na inicialização rápida, em cadauma das fases de inicialização, um componente pode determi-nar qual de suas inicializações leva tempo, e/ou se o traba-lho de inicialização pode ser feito uma vez e os resultadosserem salvos. Esta informação pode ser fornecida para umainfra-estrutura de inicialização rápida em vários momentos,tal como quando um novo componente é instalado, ou quando umsistema de operação de computador e seus componentes sãoconfigurados para o primeiro momento. Com esta finalidade,um instalador de dispositivo ou coisa parecida relacionacomponentes de núcleo para informação de estado de iniciali-zação rápida, e chama componentes de sistema de administra-dor de memória/arquivo para salvar a informação de estado naforma não volátil.
Por exemplo, tal como representado de uma maneirageral na figura 2, cada componente de núcleo (por exemplo,202i) pode ser chamado por um componente de configuração 204(associado com um instalador de dispositivo ou incluindo umdeste) da infra-estrutura de inicialização rápida 206 no fi-nal da configuração de sistema de operação. Em uma implemen-tação, a chamada provém o componente 202i com os dados 208identificando um ponto de entrada (ou pontos), por exemplo,uma interface de programação de aplicações (API), para umabiblioteca de API 210. Por meio do ponto de entrada, o com-ponente 202i pode especificar as localizações de memória quecontêm código e/ou estados estáticos que podem ser salvos,por meio do que estas localizações de memória podem ser res-tauradas em sessões de inicialização rápida subseqüentes.
Alternativamente, o componente 202χ pode fornecer diretamen-te os dados (por exemplo, em uma estrutura de dados entendi-da pelo componente 202χ) em resposta a uma chamada como es-ta. As localizações de memória e/ou código ou os dados pro-priamente ditos estão representados na figura 2 pelos blocosde "dados estáticos" marcados como 212i (como transferidos)e como 214χ (como persistidos) . 0 código e/ou dados estáti-cos 214i, compreendendo uma imagem de inicialização rápida,são mantidos em algum armazenamento não volátil 216, tal co-mo NVRAM ou alternativamente podem ser mantidos por inteiroou em parte em um outro tipo de midia de armazenamento, talcomo um disco rígido.
Uma vez que estes dados tenham persistido, em ini-cializações subseqüentes, quando cada componente de núcleo échamado para inicializar, por exemplo, em diferentes fases,estas localizações de memória (ou os dados propriamente di-tos) estão disponíveis para o componente usar. Como resulta-do, pelo menos certas partes de cada inicialização demoradado componente participante podem ser puladas. Deve-se notarque para componentes não participantes, a inicialização con-vencional não pode ser pulada, pelo que esse componente con-sumirá tanto tempo quanto ele consome em uma inicializaçãolonga regular.
Em uma implementação, novas interfaces para oscomponentes de núcleo e alguma nova infra-estrutura de su-porte em vários componentes são fornecidas. Uma interface decomponente de núcleo é fornecida para permitir que cada com-ponente de núcleo seja chamado de maneira que ele possa re-tornar uma lista de blocos de memória que contenha códigoe/ou -dados (ou o código/dados propriamente dito). Estes blo-cos de memória serão salvos no armazenamento não volátil216, o qual pode compreender um arquivo de imagem de estadode inicialização rápida em um disco rigido em dispositivosde computação contemporâneos ou armazenamento NVRAM ou coisaparecida em dispositivos de computação futuros.
Para construir a imagem de estado de inicializaçãorápida, esta interface para persistir os dados estáticos po-de ser chamada pelo instalador de dispositivo, tal como ini-ciado pelo programa de configuração de sistema de operação.A interface também pode ser chamada logo que um novo compo-nente é instalado. É a responsabilidade de cada componenteparticipante determinar quais dados necessitam ser salvos afim de beneficiar o tempo de inicialização de subseqüentesinicializações rápidas. Por exemplo, durante desenvolvimen-to, cada componente participante pode executar traçado deperfil de código no seu caminho de código de inicializaçãopara identificar gargalos de inicialização.
Uma outra interface é fornecida para permitir queo componente receba a lista de blocos de memória que o com-ponente tem inquirido para ser persistidos, por exemplo, emuma base por fase. Deve-se notar, por exemplo, que esta in-terface pode corresponder a uma versão modificada da inter-face de inicialização de fase existente já presente em sis-temas de operação baseados em Windows®. A capacidade pararecuperar dados de estado estático permite ao componentesaltar alguma parte das suas inicializações que consomemtempo. Uma interface de suporte também é fornecida pela qualum componente pode descobrir se inicialização rápida está emandamento. Esta interface é fornecida de maneira que o com-ponente pode conhecer quando usar ou não usar a informaçãoem armazenamento intermediário de provisão a partir da in-formação de estado de inicialização rápida salva. Adicional-mente, componentes de núcleo tais como um componente de ad-ministrador de memória, e possivelmente outros componentes,podem exportar novas APIs de utilidade que facilitem a iden-tificação e/ou o salvamento dos blocos de memória de estadode inicialização rápida. Por exemplo, APIs de alocação dememória existentes podem ser estendidas para permitir marcaralocações de memória que contenham informação de estado deinicialização rápida.
A figura 3 mostra um exemplo no qual dados persis-tidos no armazenamento não volátil são usados em uma opera-ção de inicialização rápida subseqüente. Em geral, quando umcomponente participante é chamado durante uma inicializaçãorápida, o componente reconhece uma sinalização de iniciali-zação rápida 318 (por exemplo, estabelecida na memória, talcomo por um componente de programa carregador 319 para umainicialização de disco rígido, ou pelo BIOS para uma inicia-lização NVRAM). 0 componente (por exemplo, 202i) então chamauma biblioteca de API 210 da infra-estrutura de inicializa-ção rápida 206 para receber seus dados de estado anterior-mente em armazenamento intermediário de provisão para a atu-al fase da inicialização. Deve-se notar que o componente po-de realmente receber um indicador para seus dados estáticosdescompactados ou de outro modo transferidos para a RAM 132a partir do armazenamento não volátil 216; por exemplo, al-guns ou todos os vários dados estáticos do componente podemser armazenados como uma imagem de inicialização rápida,descompactada ou de outro modo transferida para a RAM 132durante a partida, e cada componente provido de acesso a elapor meio da chamada de API.
Cada componente (por exemplo, 202i-202n) é chamadoum por um, tal como uma vez por fase, e aqueles que partici-pam podem assim recuperar acesso aos seus dados estáticos eenumerar seus dados dinâmicos. Isto está representado de umamaneira geral na figura 3 por meio dos dados 314i para a fa-se 1 do componente 202i sendo acessado na RAM 132 pelo com- ponente 202i mediante recuperação a partir do armazenamentonão volátil 216. O código de infra-estrutura de inicializa-ção rápida 320 pode processar a recuperação mediante umachamada para a biblioteca de API 210. Aqueles (por exemplo,legados) componentes que não participam no esquema de inici-alização rápida não chamarão novamente, tal como muitos com-ponentes que não têm dados em armazenamento intermediário deprovisão para uma fase particular, embora tais componentescientes de inicialização rápida possam alternativamente re-tornar uma resposta de "nenhum dado necessitado para esta fase" ou coisa parecida.
Voltando à figura 4A, é fornecida uma outra inter-face de exemplo na biblioteca de API 210, pela qual um com-ponente (por exemplo, 202i) pode notificar o código de in-fra-estrutura de inicialização rápida 206 para invalidar al-guma ou toda a sua imagem de estado salva por causa de queseu (tipicamente) estado estático mudou. Por exemplo, um u-suário pode mudar uns dados normalmente estáticos do compo-nente por meio de painel de controle e/ou interação de re-gistro. 0 componente 202i é responsável por detectar mudan-ças nos seus dados. Em uma implementação, os dados invalida-dos 430 não serão retornados, pelo que o componente 20.2i ne-cessitará enumerar os dados estáticos assim como os dadosdinâmicos na próxima inicialização, tal como em uma operaçãode inicialização lenta, e ter armazenamento intermediário deprovisão de dados válidos de novo.
Alternativamente, tal como representado na figura4B por meio de novos dados de estado estático 446i sendotransferidos e persistidos (dados de estado'448i) , a invali-dação de dados de inicialização rápida em armazenamento in-termediário de provisão pode iniciar um operação de recaptu-ra de estado, tal como por meio de um encadeamento silencio-so/de segundo plano 560 (por exemplo, figura 5), a qual, porexemplo, pode operar de forma similar à captura de estadoexecutada pelo processo de configuração de sistema de opera-ção, tal como descrito anteriormente. Em qualquer alternati-va, quando ocorre uma mudança para dados usualmente estáti-cos, pelo menos a parte mudada dos dados de estado em arma-zenamento intermediário de provisão anteriores não mais seráusada.
Uma operação de segundo plano como esta, represen-tada de uma maneira geral na figura 5, não necessita ser e-xecutada somente quando um componente detecta uma mudança,mas em vez disso pode ser executada em outros momentos. Porexemplo, parte do atual tempo de inicialização é por causade atrasos para pesquisar dispositivos (por exemplo, unida-des rígidas IDE) que podem ter sido acrescentados pelo usuá-rio; a cada tal dispositivo (um computador com dois canaisIDE pode ter de um a quatro instalados) é dado em torno deum segundo para responder quando consultado. Entretanto, u-nidades internas não são freqüentemente acrescentadas ou re-movidas, e assim em vez de dar chance a cada unidade durantea inicialização para responder, qualquer mudança pode serdetectada por uma subseqüente operação de segundo plano 560.
Adicionalmente, é possível que um componente nãoseja gravado de forma apropriada, e pode não detectar corre-tamente uma mudança nos seus dados estáticos. Um encadeamen-to/processo de segundo plano 560 (figura 5) que ocasional-mente solicita (por exemplo, em uma base aleatória ou dis-tribuição circular) que cada componente enumere novamenteseus dados estáticos pode ser usado para eliminar corrupçãode dados por causa de uma mudança errada. Adicionalmente,qualquer um ou todos os componentes podem estar ocasional-mente sujeitos a uma enumeração de inicialização lenta com-pleta em vez de uma inicialização rápida, e um usuário ououtro mecanismo (tal como uma utilidade) pode solicitar umainicialização lenta se houver suspeita de corrupção de dadosestáticos, por exemplo, de uma falha do componente para in-validar dados mudados.
Tal como descrito anteriormente, a informação deestado de inicialização rápida pode ser armazenada em algumaforma de armazenamento não volátil de estado sólido, tal co-mo NVRAM. Para tais dispositivos, uma nova interface de BIOSpadronizada pode ser estabelecida para especificar como oBIOS recuperará e restaurará qualquer informação de estadode inicialização rápida necessária a partir da NVRAM para amemória principal, por exemplo, antes de o sistema de opera-ção pegar o controle.
A figura 6 mostra uma diferença de caminho de có-digo de exemplo entre sistemas que têm uma imagem de estadode inicialização rápida armazenada como um arquivo em umaunidade rígida e novos sistemas que têm a imagem de estadode inicialização rápida armazenada na NVRAM. Deve-se notarque o dispositivo de computação (por exemplo, seu BIOS) re-conhecerá se é inicialização a partir de NVRAM ou de disco.
A etapa 602 representa a inicialização de discorígido, a qual começa pelo carregamento e execução do pro-cesso de programa carregador, por exemplo, NTLDR. O programacarregador verifica para um arquivo de hibernação válido naetapa 604, e se presente, reinicia a partir da hibernação(estado de espera S4 ACPI). De outro modo, o programa carre-gador continua para a etapa 608 onde ele verifica para apresença de uma imagem de inicialização rápida persistida.
Se uma imagem não for encontrada na etapa 608, osistema executará uma inicialização lenta (longa normal).Deve-se notar que é ainda possível inicialização rápida napróxima vez, tal como pela obtenção da informação de inicia-lização rápida a partir de componentes participantes em umaoperação de segundo plano, tal como descrito anteriormente.Por exemplo, isto pode ocorrer se a imagem de inicializaçãorápida tiver sido apagada por algum motivo.
Se em vez disso na etapa 608 o processo de progra-ma carregador de inicialização examinar e descobrir a imagemde inicialização rápida, ele restaura a informação de estadode inicialização rápida, por exemplo, usando uma chamada deBIOS para carregar a imagem na memória.
A etapa 614 representa descompactar (ou de outromodo transferir) a imagem para a sua localização final naRAM 132. Deve-se notar que para futuras máquinas que tenhamNVRAM como pelo menos uma parte de seu armazenamento persis-tente, o BIOS opera nas etapas 612 e 614 para executar ocarregamento sem exigir as etapas 602-610. Na etapa 616, ocódigo de inicialização rápida (por exemplo, um expedidor)chama então cada componente de sistema para inicializar, talcomo descrito anteriormente de uma maneira geral com refe-rência à figura 3.
Na teoria, com uma imagem de estado de inicializa-ção rápida armazenada em NVRAM e a maioria ou todos os com-ponentes de núcleo participando, o tempo de inicializaçãorápida a partir de um estado de desligado pode se aproximardo tempo de reinicio S3 (tipicamente o tempo para restaurara imagem da NVRAM mais o tempo de reinicio S3 mais iniciali-zação de estado dinâmico adicional). Com a tecnologia exis-tente, isto pode ser na ordem de cinco segundos (assumindo64 MB de NVRAM diretamente no barramento PCI, que leva menosde um segundo para recuperar o conteúdo total para RAM) .
Embora a invenção esteja sujeita a várias modifi-cações e construções alternativas, certas modalidades ilus-tradas da mesma estão mostradas nos desenhos e foram descri-tas anteriormente de forma detalhada. Deve ser entendido,entretanto, que não existe intenção de limitar a invenção àsformas especificas reveladas, mas ao contrário, a intenção éabranger todas as modificações, construções alternativas eequivalências que se incluam no espirito e escopo da inven-ção .

Claims (20)

1. Midia legível por computador tangível, CARACTE-RIZADO por ter instruções executáveis por computador, quequando executadas em um dispositivo de computação executametapas, compreendendo:manter dados e/ou código estáticos para um compo-nente de sistema; efornecer o componente de sistema com acesso aosdados e/ou código estáticos durante uma inicialização dedispositivo.
2. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que fornecer ocomponente de sistema com acesso aos dados e/ou código está-ticos compreende fornecer o componente de sistema com umponto de entrada para um conjunto de interfaces de programa-ção de aplicações de uma infra-estrutura de inicializaçãorápida.
3. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que os dadose/ou código estáticos são mantidos em uma imagem em uma me-mória de estado sólido.
4. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que os dadose/ou código estáticos são mantidos em uma imagem em uma uni-dade de disco rígido.
5. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que fornecer ocomponente de sistema com acesso aos dados e/ou código está-ticos compreende chamar o componente de sistema para inicia-lização durante a inicialização de dispositivo.
6. Midia legível por computador, de acordo com areivindicação 5, CARACTERIZADA pelo fato de que fornecer ocomponente de sistema com acesso aos dados e/ou código está-ticos compreende chamar o componente de sistema durante pelomenos duas fases de uma pluralidade de fases de inicialização.
7. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que tem adicio-nalmente instruções executáveis por computador compreendendoreceber uma chamada em uma infra-estrutura de inicializaçãorápida do componente de sistema, a chamada fornecendo a in-fra-estrutura de inicialização rápida com acesso aos dadose/ou código estáticos para persistir para uso em uma inicia-lização subseqüente.
8. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que tem adicio-nalmente instruções executáveis por computador compreendendoreceber uma chamada em uma infra-estrutura de inicializaçãorápida do componente de sistema, a chamada correspondendo ainvalidar os dados estáticos, assim os dados estáticos emuma condição atual não serão usados em uma inicializaçãosubseqüente.
9. Mídia legível por computador, de acordo com areivindicação 1, CARACTERIZADA pelo fato de que tem adicio-nalmente instruções executáveis por computador compreendendocomunicar com o componente de sistema em uma operação de se-gundo plano para fornecer uma infra-estrutura de inicializa-ção rápida com acesso aos dados e/ou código estáticos parapersistir para uso em uma inicialização subseqüente.
10. Método implementado em um sistema de computa-dor, CARACTERIZADO pelo fato de que compreende:inicializar um dispositivo de computação a partirde um estado de desligado, incluindo inicial-izar um compo-nente de sistema; ecomo parte de inicializar o componente de sistema,fornecer o componente de sistema com acesso a dados e/ou có-digo estáticos que foram persistidos anteriormente para essecomponente de sistema.
11. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que os dados e/ou código estáti-cos que foram persistidos anteriormente para aquele compo-nente de sistema foram persistidos durante uma operação deinstalação.
12. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que compreende adicionalmente,como parte de inicializar o componente de sistema, enumerardados dinâmicos no componente de sistema.
13. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que fornecer o componente de sis-tema com os dados e/ou código estáticos compreende transfe-rir os dados e/ou código estáticos do armazenamento não vo-látil para memória volátil.
14. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que fornecer o componente de sis-tema com acesso aos dados e/ou código estáticos compreendefornecer o componente de sistema com um ponto de entrada pa-ra um conjunto de interfaces de programação de aplicações deuma infra-estrutura de inicialização rápida, e estabelecerum indicativo de sinalização de uma operação de inicializa-ção rápida.
15. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que fornecer o componente de sis-tema com acesso aos dados estáticos compreende chamar o com-ponente de sistema durante pelo menos duas fases de uma plu-ralidade de fases de inicialização.
16. Sistema em um dispositivo de computação,CARACTERIZADO pelo fato de que compreende:uma infra-estrutura de inicialização rápida inclu-indo,a) um primeiro mecanismo que persiste dados e/oucódigo estáticos para um componente de sistema em um primei-ro momento; eb) um segundo mecanismo que fornece o componentede sistema com acesso aos dados e/ou código estáticos em umsegundo momento que é depois do primeiro momento e duranteuma inicialização do dispositivo de sistema.
17. Sistema, de acordo com a reivindicação 16,CARACTERIZADO pelo fato de que o primeiro mecanismo compre-ende um componente de configuração que registra o componentede sistema incluindo fornecer o componente de sistema com umconjunto de interfaces para persistir os dados e/ou códigoestáticos.
18. Sistema, de acordo com a reivindicação 17,CARACTERIZADO pelo fato de que o segundo mecanismo compreen-de código que se comunica com o componente de sistema pormeio de uma interface do conjunto de interfaces.
19. Sistema, de acordo com a reivindicação 17,CARACTERIZADO pelo fato de que a infra-estrutura de inicia-lização rápida compreende um terceiro mecanismo para invali-dar os dados estáticos.
20. Sistema, de acordo com a reivindicação 17,CARACTERIZADO pelo fato de que a infra-estrutura de inicia-lização rápida compreende um mecanismo de segundo plano paracoletar dados e/ou código estáticos a partir do componentede sistema.
BRPI0616858A 2005-10-06 2006-10-03 mídia legível por computador, método implementado em um sistema de computador e sistema em um dispositivo de computação de operação e inicialização rápida a partir de um estado de desligado BRPI0616858B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/245.629 2005-10-06
US11/245,629 US7409537B2 (en) 2005-10-06 2005-10-06 Fast booting an operating system from an off state
PCT/US2006/039127 WO2007044516A1 (en) 2005-10-06 2006-10-03 Fast booting an operating system from an off state

Publications (2)

Publication Number Publication Date
BRPI0616858A2 true BRPI0616858A2 (pt) 2011-07-05
BRPI0616858B1 BRPI0616858B1 (pt) 2018-09-25

Family

ID=37912167

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0616858A BRPI0616858B1 (pt) 2005-10-06 2006-10-03 mídia legível por computador, método implementado em um sistema de computador e sistema em um dispositivo de computação de operação e inicialização rápida a partir de um estado de desligado

Country Status (8)

Country Link
US (1) US7409537B2 (pt)
EP (1) EP1934714A4 (pt)
JP (1) JP4459290B2 (pt)
KR (1) KR101292429B1 (pt)
CN (1) CN101283330B (pt)
BR (1) BRPI0616858B1 (pt)
RU (1) RU2435200C2 (pt)
WO (1) WO2007044516A1 (pt)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7624260B2 (en) * 2006-05-04 2009-11-24 Qnx Software Systems Gmbh & Co. Kg System executing a fast boot wake-up
TW200842569A (en) * 2007-04-24 2008-11-01 Inventec Corp Method for initiating system
DE102007044199A1 (de) * 2007-09-17 2009-04-02 Fujitsu Siemens Computers Gmbh Steuergerät für einen Massenspeicher und Verfahren zum Bereitstellen von Daten für einen Startvorgang eines Computers
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
EP2250609B1 (en) * 2008-01-30 2018-07-18 Panasonic Intellectual Property Management Co., Ltd. Secure boot with optional components method
US7900037B1 (en) 2008-02-12 2011-03-01 Western Digital Technologies, Inc. Disk drive maintaining multiple logs to expedite boot operation for a host computer
US8082433B1 (en) 2008-02-12 2011-12-20 Western Digital Technologies, Inc. Disk drive employing boot disk space to expedite the boot operation for a host computer
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US8230208B2 (en) * 2009-04-20 2012-07-24 Intel Corporation Booting an operating system of a system using a read ahead technique
TWI421769B (zh) * 2009-12-28 2014-01-01 Apacer Technology Inc 增加電子裝置開機速度之方法
US10394570B2 (en) * 2010-02-26 2019-08-27 Hp Printing Korea Co., Ltd. Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US8656149B2 (en) 2010-06-07 2014-02-18 International Business Machies Corporation Rapid activation of service management processor subsystem for server device
WO2012036665A1 (en) * 2010-09-13 2012-03-22 Hewlett-Packard Development Company, L.P. Operating speed of a component
US8719559B2 (en) 2010-10-13 2014-05-06 International Business Machines Corporation Memory tagging and preservation during a hot upgrade
US9405668B1 (en) 2011-02-15 2016-08-02 Western Digital Technologies, Inc. Data storage device initialization information accessed by searching for pointer information
CN102693137A (zh) * 2011-03-24 2012-09-26 昆达电脑科技(昆山)有限公司 用于缩短开机时间的驱动程序加载与初始化方法
US20120311312A1 (en) * 2011-05-31 2012-12-06 Broadcom Corporation Fast Boot Via State Recreation
US9286079B1 (en) 2011-06-30 2016-03-15 Western Digital Technologies, Inc. Cache optimization of a data storage device based on progress of boot commands
US9952879B2 (en) * 2012-08-30 2018-04-24 Microsoft Technology Licensing, Llc Application pre-layout in byte-addressable persistent random access memory
US9740500B2 (en) 2012-08-30 2017-08-22 Microsoft Technology Licensing, Llc Layout system for operating systems using BPRAM
US20140075174A1 (en) * 2012-09-10 2014-03-13 Texas Instruments Incorporated Boot State Restore from Nonvolatile Bitcell Array
US9250922B2 (en) 2013-02-28 2016-02-02 Qualcomm Incorporated Method and apparatus for prefetching peripheral device drivers for smart phones and other connected devices prior to HLOS boot
US9477484B2 (en) * 2013-07-23 2016-10-25 Samsung Electronics Co., Ltd. System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
US9588774B2 (en) * 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US10114661B2 (en) * 2014-11-07 2018-10-30 Roku, Inc. System and method for fast starting an application
US10037071B2 (en) 2015-02-25 2018-07-31 Texas Instruments Incorporated Compute through power loss approach for processing device having nonvolatile logic memory
CN105117246A (zh) * 2015-08-04 2015-12-02 晶晨半导体(上海)有限公司 电子设备快速启动的方法
US10452594B2 (en) 2015-10-20 2019-10-22 Texas Instruments Incorporated Nonvolatile logic memory for computing module reconfiguration
TWI569129B (zh) 2015-12-01 2017-02-01 財團法人工業技術研究院 系統暫停方法、系統回復方法及應用其之電腦系統
US10331203B2 (en) 2015-12-29 2019-06-25 Texas Instruments Incorporated Compute through power loss hardware approach for processing device having nonvolatile logic memory
KR20170091436A (ko) * 2016-02-01 2017-08-09 삼성전자주식회사 영상 표시 장치 및 그 동작방법
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
US10289421B2 (en) * 2017-02-17 2019-05-14 Dell Products, L.P. Booting of IHS from SSD using PCIe
US11204715B1 (en) * 2018-09-25 2021-12-21 Amazon Technologies, Inc. Derived data generation and storage
US11194589B2 (en) 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11010249B2 (en) 2019-01-08 2021-05-18 Dell Products L.P. Kernel reset to recover from operating system errors
US11126420B2 (en) 2019-01-08 2021-09-21 Dell Products L.P. Component firmware update from baseboard management controller
US11550593B2 (en) 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
US11003483B1 (en) 2019-06-28 2021-05-11 Amazon Technologies, Inc. Parameterized launch acceleration for compute instances
CN110457899B (zh) * 2019-08-12 2021-06-01 北京无线电测量研究所 一种操作系统保护系统及方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6101601A (en) 1998-04-20 2000-08-08 International Business Machines Corporation Method and apparatus for hibernation within a distributed data processing system
US7134133B1 (en) * 1999-11-08 2006-11-07 Gateway Inc. Method, system, and software for creating and utilizing broadcast electronic program guide templates
US20030233534A1 (en) * 2002-06-12 2003-12-18 Adrian Bernhard Enhanced computer start-up methods
US7017037B2 (en) 2002-06-27 2006-03-21 Microsoft Corporation Apparatus and method to decrease boot time and hibernate awaken time of a computer system utilizing disk spin-up-time
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
CN1282059C (zh) * 2003-03-12 2006-10-25 联想(北京)有限公司 一种加快操作系统的引导方法
US7430661B2 (en) * 2004-09-09 2008-09-30 Hewlett-Packard Development Company, L.P. System and method of storing user data in a partition file or using a partition file containing user data

Also Published As

Publication number Publication date
US7409537B2 (en) 2008-08-05
RU2435200C2 (ru) 2011-11-27
JP4459290B2 (ja) 2010-04-28
KR101292429B1 (ko) 2013-08-07
JP2009512020A (ja) 2009-03-19
US20070083743A1 (en) 2007-04-12
CN101283330B (zh) 2012-06-06
CN101283330A (zh) 2008-10-08
EP1934714A1 (en) 2008-06-25
BRPI0616858B1 (pt) 2018-09-25
EP1934714A4 (en) 2009-01-14
WO2007044516A1 (en) 2007-04-19
RU2008113217A (ru) 2009-10-10
KR20080052625A (ko) 2008-06-11

Similar Documents

Publication Publication Date Title
BRPI0616858A2 (pt) sistema de operação e inicialização rápida a partir de um estado de desligado
TWI524205B (zh) 用以在無作業系統服務環境中供應韌體之方法
US9489029B2 (en) Operating system independent network event handling
US7543048B2 (en) Methods and apparatus for enabling of a remote management agent independent of an operating system
US20060242398A1 (en) Booting from non-volatile memory
US7409536B2 (en) Computer systems with several operating systems coexisting thereon and swapping between these operating systems
US10387261B2 (en) System and method to capture stored data following system crash
US9563439B2 (en) Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US7962734B2 (en) Method of restarting a computer platform
JP2004178596A (ja) ディスクレスネットワークブータブルコンピュータにおける不揮発性メモリキャッシュを用いた信頼性の改善
BRPI0618586A2 (pt) método e aparelho para inicialização rápida de um sistema operacional
US10909247B2 (en) Computing device having two trusted platform modules
US20190243658A1 (en) Restoring a processing unit that has become hung during execuation of an option rom
US20230350755A1 (en) Coordinated operating system rollback
US20240036896A1 (en) Generating installation images based upon dpu-specific capabilities
BRPI1004953A2 (pt) mÉtodo gerenciador de inicializaÇço méltipla

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B15K Others concerning applications: alteration of classification

Ipc: G06F 9/44 (1980.01)

B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 25/09/2018, OBSERVADAS AS CONDICOES LEGAIS.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 14A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2599 DE 27-10-2020 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.