BRPI1006211B1 - Método para operar um computador, meio não transitório lido por computador, e dispositivo eletrônico - Google Patents
Método para operar um computador, meio não transitório lido por computador, e dispositivo eletrônico Download PDFInfo
- Publication number
- BRPI1006211B1 BRPI1006211B1 BRPI1006211-4A BRPI1006211A BRPI1006211B1 BR PI1006211 B1 BRPI1006211 B1 BR PI1006211B1 BR PI1006211 A BRPI1006211 A BR PI1006211A BR PI1006211 B1 BRPI1006211 B1 BR PI1006211B1
- Authority
- BR
- Brazil
- Prior art keywords
- acpi
- state
- module
- fact
- request
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
MÉTODO PARA OPERAR UM COMPUTADOR,PRODUTO PROGRAMA DE COMPUTADOR, MÉTODO E DISPOSITIVO ELETRÔNICO. Métodos,sistema,aparelhos e produtos programas são divulgados para gerenciar múltiplos OSS dentro de um único computador resimilares ,É feita provisão para trocar OSS com assistência do BIOS e se conformar com características de ACPI para gerenciamento do Estado do Sistema especialmente como relacionado com o Estado de Dormir de Sistema S3 de ACPI.
Description
A presente invenção relaciona geralmente com computadores pessoais e dispositivos compartilhando arquiteturas similares, e mais particularmente relaciona com soluções para administrar, ativar e controlar uma pluralidade de ambientes de sistema operacional e/ou similares dentro de um aparelho de comunicação ou dentro de uma sessão ou contexto único operacional de computador.
Modernamente, o uso de PCs (computadores pessoais) incluindo os chamados computadores laptops e notebooks, está crescentemente comum e os próprios computadores são de potência e complexidade crescente enquanto diminuindo a potência térmica.
Uma vasta maioria de PCs têm um software controlador, por exemplo, um OS (Sistema Operacional) tal como Microsoft® Windows® Vista® ou produto similar comercial. Muitas variedades de OSs estão disponíveis grandemente devido à necessidade de produzir trocas de designs. Em particular, riqueza de características com complexidade subordinada e tamanho são trocados contra capacidades (relativamente) limitadas com velocidade aumentada (especialmente velocidade de operação e tempo de carregamento).
Portanto, uma necessidade tem existido em prover o uso de múltiplos OSS dentro de um computador e várias soluções, cada uma com suas próprias trocas, foram usadas.
Uma solução, a chamada solução de "boot duplo", envolve selecionar e carregar o OS desejado a partir de um estado relativamente frio. Isto tem uma desvantagem de lentidão mas tem a vantagem que recursos são dedicados, ao invés de compartilhados ou divididos.
Outras soluções podem envolver a virtualização, que tem a desvantagem de prover comutações rápidas entre ambientes OS, mas existe uma desvantagem em que os softwares de OS mais complexos e populares disponíveis não estão projetados para funcionar bem em ambientes virtualizados e adicionais trocas e impactos resultam. Além disso, a virtualização pode requerer caracter!sticas de hardware 5 endereçadas à mesma e portanto ser de aplicação universal relativamente menor. Infelizmente, os vendedores de software OS complexo têm poucos incentivos para fazerem seus produtos funcionarem bem em coexistência pacífica com produtos OSs mais simples através da virtualização.
Produtos OSs mais simples têm vantagens além da velocidade, por exemplo, onde tal OS é "Fonte Aberto" ["Open Source"], o código fonte é menor e portanto mais compreensível. Além disso, software menos complexo tende a ser menos vulnerável a ataque de malware [software 15 malicioso].
Existem alternativas adicionais para boot duplo e virtualização (com trocas novamente diferentes) e a presente invenção está relacionada com tais alternativas. Sumário da invenção
As configurações da invenção provêem, entre outras coisas, soluções para prover assistência de direcionamento (controle) de OS em busca de suporte para múltiplos OSs (Sistemas Operacionais).
A presente invenção provê um método para operar um 25 computador para comunicações de dados e também um aparelho que configura o método. Em adição, produtos de programas e outros meios para explorar a invenção são apresentados.
De acordo com um aspecto da presente invenção, uma 30 configuração da invenção pode prover um primeiro e segundo OSs (sistemas operacionais) em partições separadas de uma memória do sistema, executar um pedido de instrução para uma mudança de Estado de Sistema de ACPI (Interface de Energia e Configuração Avançada), 35 restaurando um estado de hardware guardado do computador, e transferindo controle entre OSs.
Uma vantagem e/ou característica provida por ou resultando de implementar a presente invenção é que o controle pode ser passado entre múltiplos OSs (tipicamente dois OSs mas opcionalmente três ou mais) sem necessidade de qualquer de um tempo de reboot prolongado 5 ou as desvantagens inerentes no uso de técnicas de virtualização. Consequentemente, existe uma aparência de comutação "instantânea" entre OSs, ou pelo menos uma comutação que é materialmente mais rápida que implementações providas anteriormente. Além disso, 10 incorporando a invenção em uma sequência de boot quente, um serviço de ligação instantânea pode ser provido ou aproximado.
As vantagens e características mencionadas anteriormente 15 e relacionadas de configurações tornar-se-ão mais bem compreendidas e apreciadas mediante o exame da descrição detalhada seguinte da invenção, tomada em conjunção com os desenhos seguintes, que são incorporados em e constituem uma parte da especificação, ilustram uma 20 configuração da invenção e onde numerais iguais representam elementos iguais, e nos quais:
A figura 1 é um diagrama de blocos esquemático de um dispositivo eletrônico configurado para implementar funcionalidade de acordo com uma configuração da 25 invenção;
A figura 2 é um diagrama de fluxo ilustrando uma visão geral das etapas executadas ao implementar uma configuração da invenção;
As figuras 3 e 4 tomadas juntas são um diagrama de fluxo 30 um pouco mais detalhado ilustrando uma visão geral de algumas das etapas executadas ao implementar uma configuração da invenção em detalhes adicionais;
A figura 5 é uma ilustração que mostra como uma configuração exemplar da invenção pode ser codificada em 35 um meio ou mídia de computador; e
A figura 6 é uma ilustração que mostra como uma configuração exemplar da invenção pode ser codificada, transmitida, recebida e decodificada usando ondas eletromagnéticas.
Os numerosos componentes mostrados nos desenhos são 5 apresentados para fornecer a uma pessoa de experiência ordinária na técnica uma divulgação habilitante, completa, de configurações da presente invenção. A descrição de componentes bem conhecidos não é incluida dentro desta descrição de modo a não obscurecer a 10 divulgação ou remover ou de outra forma reduzir a novidade de configurações da presente invenção e os principais benefícios assim providos.
Uma configuração exemplar da presente invenção será agora descrita com referência às figuras. A figura 1 é um 15 diagrama de blocos esquemático de um dispositivo eletrônico configurado para implementar a funcionalidade de segurança de acordo com uma configuração da invenção.
Em uma configuração exemplar, o dispositivo eletrônico 10 pode ser implementado como um computador pessoal, por 20 exemplo, um computador desktop, um computador laptop, um PC tablet [prancheta] ou outro dispositivo adequado. Embora a descrição delineie a operação de um computador pessoal, será apreciado por aqueles de experiência ordinária na técnica, que o dispositivo eletrônico 10 25 pode ser implementado como um PDA, dispositivo de comunicação sem fio, por exemplo, um telefone celular, controladores ou dispositivos embutidos, por exemplo, decodificadores externos, dispositivos de impressão ou outros dispositivos adequados ou combinações dos mesmos e 30 adequados para operar ou interoperar com a invenção.
O dispositivo eletrônico 10 pode incluir pelo menos um processador ou CPU (Unidade de Processamento Central) 12, configurado para controlar a operação global do dispositivo eletrônico 10. Controladores similares ou 35 MPUs (Unidades de Microprocessadores) são lugares comuns.
O processador 12 pode tipicamente ser acoplado a um controlador de barramento 14 tal como um chip Northbridge por meio de um barramento 13 tal como um FSB (Front-Side Bus [Barramento Lateral-Frontal]) . 0 controlador de barramento 14 pode tipicamente prover uma interface para memória de sistema de leitura-escrita 16 tal como RAM 5 (memória de acesso randômico).
Em operação ordinária, a CPU 12 pode conseguir instruções de computador (também denominadas códigos de instruções de computador, não mostrados na figura 1) a partir do sistema de memória 16. A CPU pode então interpretar as 10 instruções de computador trazidas e operar para interpretar as instruções para desta forma controlar a operação do dispositivo eletrônico 10. Tais usos de CPU, memória do sistema e instruções de computador que tipicamente compreendem códigos de OS (Sistema Operacional) e outro software são bem conhecidos nas técnicas de computação.
O controlador de barramento 14 também pode ser acoplado a um barramento de sistema 18, por exemplo, uma DMI (Interface de Midia Direta) em configurações tipicas 20 estilo Intel®. Acoplado à DMI 18 pode estar um chamado chip Southbridge, tal com um chip Intel® ICH8 (Hub [Nó] Controlador de Entrada/Saida tipo 8) 24.
O chip Southbridge 24 pode tipicamente incorporar um primeiro NIC (Controlador de Interface de Rede) 32, tal 25 como do tipo 1000 BASE-T da interface IEEE 802.3 (número de norma 802.3 do Instituto de Engenheiros Elétricos e Eletrônicos) se conectando a um tipo 8PC831 (8 posições, 8 contatos) de conector de rede por fios. Um conector 8PC8 31 é coloquialmente conhecido como uma porta RJ45 e 30 IEEE802.3 é coloquialmente conhecida como Ethernet.
Em uma configuração tipica, o chip Southbridge 24 pode ser conectado a um barramento PCI (interconexão de componente periférico) 22, o qual pode, por sua vez, ser conectado a um segundo NIC 66 que aciona um Transceptor 35 Sem Fio 71. O Transceptor Sem Fio 71 pode operar em conformidade com a IEEE 802.11 ou outras normas adequadas. O Transceptor Sem Fio 71 pode tipicamente ser acoplado a alguma forma de antena de rádio 72. Também, tipicamente, o chip Southbridge 24 também pode ser acoplado a uma NVRAM (memória de acesso randômico não volátil) 33.
Qualquer um ou ambos os NICs 32 e 66 podem transportar sinais de comunicações que são usados para formar conexões lógicas de rede tais como um Serviço Internet. De fato, um computador tipico ou dispositivo eletrônico 10 similar pode ter outras interfaces, por exemplo, uma 10 interface USB (Barramento Serial Universal, que não é mostrada na figura 1) que pode por sua vez se conectar com (por exemplo) um transceptor Bluetooth® para outros modos de comunicação dentro do escopo geral da invenção.
A figura 2 é um diagrama de fluxo ilustrando uma visão 15 geral de algumas das etapas executadas ao implementar uma configuração da invenção. A solução descrita na figura 2 é uma simplificação e serve como uma visão geral útil de uma compreensão superficial de como uma simples configuração de uma parte importante da invenção pode 20 operar.
Na etapa 200, a execução da parte pertinente dos códigos de instruções de BIOS começa. Como parte desta etapa, o BIOS define as áreas de memória que são usáveis por um OS e aquelas áreas que são reservadas para uso do BIOS (por 25 exemplo, EBDA (área de dados estendida do BIOS), NVS (armazenagem não volátil) de ACPI ou SMRAM (RAM do Modo de Gerenciamento de Sistema)). Alternativamente, algumas áreas de memória podem ser usadas por não BIOS, mas, entretanto, serviços dirigidos de hardware, por exemplo, 30 memória de video compartilhada. O BIOS então invoca o OSM (Módulo de Direcionamento de OS) que inicializa a memória incluindo a criação de tabelas, economizando memória base, economizando NVS de ACPI, valores PIC (controlador de interrupção programável), ganchos em serviços E820 35 para prover mapas sob medida, e similares. Os serviços E820 são bem conhecidos na técnica. Em uma configuração da invenção, o OSM é derivado do bem conhecido GRUB (programa Grande Carregador Unificado de Boot) e incorpora uma seção de carregador de boot. Portanto, inter alia, um contexto de hardware restaurável é economizado.
Na etapa 210, a seção de carregador de boot do OSM carrega o primeiro OS (sistema operacional). O OS chama serviços E820 para determinar quais áreas de memória fisica principal ele pode usar e se carrega naquela memória. 0 serviço de BIOS está ciente de qual OS está 10 solicitando serviços E820 (por exemplo, baseado no endereço de memória do chamador, ou no qual o OS foi o mais recentemente carregado ainda que os usos daqueles critérios sejam meramente exemplos) e apresenta um mapa de memória sob medida responsivo ao mesmo. Tipicamente, o primeiro OS é carregado em uma partição de memória restrita (relativamente pequena) e então executa programas de aplicações. Na etapa 220, um inicio é feito em um procedimento levando a entrar em um estado de economia, usando o pedido por Estado S3 de ACPI (ou serviços de gravar na RAM ou alguma coisa similar) incluídos em cada OS.
Na etapa 230, o OS grava o estado de cada dispositivo para o qual o OS tem um programa de driver, por exemplo, o registro pode ser em um buffer de memória. O OS também 25 pode descartar dados pendentes, tipicamente para fora para o disco. 0 OS exemplar escreve um valor especifico para um registro PM1_CNT controlado pela ACPI, indicando desta forma que o OS e contexto da plataforma são solicitados a fazer a transição iminentemente para o 30 Estado S3 de Sistema de ACPI. Os Estados de Sistema de ACPI são bem conhecidos na técnica.
A escrita para o registro PM1_CNT descrito acima pode ser capturada pelo OSM (na etapa 240) o qual, tendo adquirido controle da execução da plataforma, então faz uma 35 determinação de que o pedido é para uma comutação de contexto (em contraste com um estado de dormência da plataforma). Em uma configuração da invenção, a determinação é tornada responsiva a um bit de controle nas tabelas de dados OSM. As técnicas desenvolvidas anteriormente são tipicamente suficientes para cuidar especificamente de aspectos de multiprocessador da 5 integridade da plataforma. Vetores para despertar são armazenados da maneira usual para entrar no Estado S3 de ACPI.
Neste ponto o comportamento do OSM diverge grandemente da ação similar (até agora) envolvida em entrar em um Estado 10 S3 de ACPI. Por ter tomado muitas das mesmas ações que precedem entrar no Estado S3 de ACPI, o OSM prossegue ao invés para criar e guardar um contexto de hardware restaurável adicional e conjunto de vetores para despertar em preparação para carregar um segundo OS como 15 descrito abaixo. O processo de criar um contexto de hardware restaurável e conjunto de vetores para despertar é similar àquele descrito na etapa 200, acima.
Na etapa 250, o contexto de hardware que foi guardado na etapa 200 é reinstalado. Isto traz a plataforma 20 substancialmente de volta para seu estado de hardware inicial em preparação para carregar um segundo OS. Entretanto, o mapa de memória principal não é recriado, pelo contrário, o OSM garante que quando serviços E820 forem invocados a seguir será sabido pelo BIOS que o 25 segundo OS está ativo. O segundo OS é então carregado e alimentado.
Na etapa 260, o segundo OS, como parte de sua inicialização normal, invoca o serviço de BIOS que está ciente de qual OS está solicitando serviços E820. O mapa 30 de memória E820 retornado exclui a partição de memória restrita que foi colocada de lado para o primeiro OS e pode tipicamente incluir o residuo de RAM fisica disponível. O segundo OS então completa sua própria inicialização e executa programas de aplicações. Na etapa 270, responsive a um estimulo que torna desejável um retorno para um contexto do primeiro OS (e aplicações sendo executadas sob ele) se tornar ativo, o segundo OS invoca uma função de ACPI, a função "mudar o estado para S3", tal como por escrever novamente para o registro ACPI PM1_CNT. Pode ser notado que o segundo OS pode solicitar entrar no Estado S3 também responsivo a um 5 pedido para comutar para o primeiro OS (tal como por uma combinação personalizada de chaves). Alternativamente, o segundo OS pode escolher solicitar entrada iminente de modo S3 por uma razão não relacionada (tal como responsivo a um timer de inatividade). Na etapa 275, e em 10 geral, não obstante ganchos para fazer o segundo OS entrar em S3 sejam o propósito geral, o meio para invocá-los também adota uma ação que permite o OSM fazer uma determinação que o pedido foi conforme um desejo expresso para mudar o contexto de OS; isto envolverá tipicamente 15 colocar um valor em um registro visivel para o BIOS, p.ex., um modo para fazer só isto é invocar um serviço do BIOS criado para aquele propósito expresso. A criação e uso de tais serviços simples do BIOS para designar modos de vários tipos são bem conhecidos na técnica.
Na etapa 280, de uma maneira similar ao comportamento na etapa 240, o OSM assume o controle (tipicamente capturando uma escrita para PM1_CNT) . Assim, o OSM cria um contexto de hardware guardado substancialmente completo e conjunto de vetores para despertar para o 25 contexto do segundo OS. Tipicamente, isto pode sobrescrever o contexto guardado na etapa 200 uma vez que este não é mais necessário.
Na etapa 290, um contexto de hardware para o primeiro OS (guardado como descrito na etapa 240, acima) é 30 recarregado. O primeiro OS é reativado usando Vetores para Despertar guardados. Uma vez que o mapa de memória visto pelo primeiro OS exclui a memória dedicada ao segundo OS, não há necessidade de recarregar e/ou reinicializar o primeiro OS porque ele ainda está 35 residente na memória. Esta evitação da necessidade de recarregar e reinicializar o OS oferece uma melhoria significativa em relação a muitas soluções desenvolvidas anteriormente.
Na etapa 299, o processo continua passando para o controle para e a partir de o primeiro e segundo OSs responsive a pedidos originados pelo usuário (ou outro, 5 programático, por exemplo) para transferência de controle.
As figuras 3 e 4, tomadas juntas são um diagrama de fluxo um tanto mais detalhado ilustrando uma visão geral de algumas das etapas executadas ao implementar uma 10 particular configuração da invenção em detalhes adicionais. Esta configuração deve ser vista como puramente exemplar e não uma descrição genérica que limita a invenção.
Na etapa 300, como descrito em conexão com a figura 2, 15 novamente a execução da parte pertinente dos códigos de instrução do BIOS começa. Como parte desta etapa, o BIOS define as áreas de memória que são usáveis por um OS e aquelas áreas que são reservadas para uso do BIOS (por exemplo, EBDA (área de dados de BIOS estendida), NVS ACPI 20 (armazenagem não volátil) ou SMRAM (RAM de Modo de Gerenciamento do Sistema)). Alternativamente, algumas áreas de memória podem ser usadas por serviços de hardware não-BIOS, por exemplo, memória de video compartilhada. O BIOS então invoca o OSM (Módulo de 25 Direcionamento de OS) por INT 19 (a interrupção 19 é bem conhecida na técnica para transferir controle do BIOS para o carregador da rotina de inicialização ["bootstrap"]).
Na etapa 320, o OSM inicializa a memória incluindo a 30 criação de tabelas, guardando memória base, guardando NVS de ACPI, valores PIC (controlador de interrupção programável) , ganchos em serviços E820 para prover mapas sob medida e similares. Portanto, inter alia, um contexto de hardware restaurável é guardado.
Na etapa 350, o OSM seleciona HS (HyperSpace®, um produto da Phoenix Technologies Ltd., que inclui programas de aplicação e um OS arquiteturalmente similar a Linux®).
Na etapa 370, o OSM carrega e então transfere o controle para o HS.
Na etapa 380, o HS descobre que o OSM está carregado, e em modo real (ou não real) invoca o bem conhecido serviço E820 do BIOS (também descrito como int 15h call, AX == E820h). Sabendo que o chamador é o HS, o BIOS reserva uma porção relativamente pequena de memória para o HS (256 Mebibytes em uma implementação exemplar) e marca o espaço ARR (Faixa de Endereço Reservada). Em uma implementação, o BIOS reterá aquele espaço na ARM (Memória de Faixa de Endereço) sempre que o primeiro chamador do serviço E820 seguindo o boot ou reboot não for o HS.
Na etapa 390, o HS adapta seu mapa de memória para usar o I espaço ARR (Faixa de Endereço Reservada) de 258 MBytes. O HS evita carregar na ARM ou criar a pilha dentro do ARM -cujo comportamento é contrário à prática normal do Linux®.
Na etapa 3100, o HS executa aplicações HyperSpace® em modo de usuário.
Na etapa 3110, responsive a estimulo do usuário (p.ex., apertando Tecla Quente) o HS se prepara para comutar contextos.
Na etapa 3120, o HDD (controlador e subsistema de drive de disco rigido) é trazido para um estado inerte e de 25 dados descartados em preparação para uma mudança de estado de sistema.
Na etapa 3130, o HS escreve para um registro ACPI (p.ex., PM1_CNT) que é usado em OSs desenvolvidos anteriormente para solicitar uma comutação para modo S3 de Sistema 30 ACPI. Os modos de ACPI são bem conhecidos na técnica.
Na etapa 3140, a escrita para PM1_CNT é interceptada pelo OSM tendo sido enganchada pelo OSM durante a inicialização.
Na etapa 3150, o HS guarda os Vetores para Despertar e registros e outras informações tais como PIC e definição do Timer para voltar mais tarde para o estado ativo (estado SO no contexto HS) . Estes são mantidos separadamente das definições de PIC etc. armazenadas antes do HS ser carregado.
Na etapa 3160, o serviço GetBootOS do OSM seleciona o próximo OS a ser carregado (isto é, um OS não HS). Em uma configuração da invenção, este OS não HS é o OS Microsoft® Vista®.
Na etapa 3170, o controle é retornado para o OSM via a Int 19 (Interrupção 19), a qual novamente invoca o serviço GetBootOS do OSM para selecionar um OS para carregamento.
Na etapa 3180, as definições, etc., que foram armazenadas antes do HS ser carregado são reinstaladas.
Na etapa 3190, o OSM lança a carga do segundo OS (Vista® na configuração exemplar). 0 segundo OS não está ciente do espaço especial reservado para o HS pela rotina de serviço E820 no BIOS então ele se confinará a áreas ARM e portanto não sobrescreverá o HS na memória fisica sendo carregado em uma porção inteiramente separada da memória fisica do sistema. Isto tipicamente não criará um problema de recursos uma vez que os requisitos de memória do HS são modestos (tipicamente 256 Mebibytes) se comparados com um segundo OS tipico (provavelmente excedendo 1,5 Gibitytes ou mais).
Isto completa o carregamento dos dois OSs e traz o sistema pronto para comutar entre eles responsivo a pedido do usuário (tal como pressionamentos de Tecla Quente) ou responsivo a outros estimulos programáticos. Será aparente para um programador de experiência ordinária na técnica como estender o procedimento acima para prover comutação para e a partir de entre OSs. Entretanto, distinção deve ser feita entre um desejo em deixar o segundo OS e retornar para o primeiro OS e um desejo em entrar no estado inerte uma vez que ambos envolvem capturar uma escrita enganchada para os registros ACPI. Geralmente, isto pode ser resolvido programaticamente com o OS com o OSM capturando qualquer critério que seja usado para distinguir os dois casos.
Com relação à figura 5, instruções de computador a serem incorporadas em um dispositivo eletrônico 10 podem ser distribuídas como firmware [programa residente de inicialização] fabricado e/ou produtos de computador de 5 software 510 usando uma variedade de possíveis midias 530 tendo as instruções gravadas nelas tais como usando um gravador de armazenagem 520. Frequentemente em produtos tão complexos como aqueles que instalam a invenção, mais que um meio podem ser usados, tanto na distribuição 10 quanto na fabricação de relevante produto. Somente um meio é mostrado na figura 5 para clareza mas mais que um meio podem ser usados e um único produto computador pode ser dividido entre uma pluralidade de midias.
A figura 6 mostra como uma configuração exemplar da 15 invenção pode ser codificada, transmitida, recebida e decodificada usando ondas eletromagnéticas.
Com relação à figura 6, adicionalmente, e especialmente desde o aumento da utilização da Internet, os produtos computadores 610 podem ser distribuídos codificando-os em 20 sinais modulados como uma onda. As formas de onda resultantes podem então ser transmitidas por um transmissor 640, propagadas como ondas portadoras eletromagnéticas moduladas tangíveis 650 e recebidas por um receptor 660. Com a recepção elas podem ser desmoduladas e os sinais decodificados em uma versão ou cópia adicional do produto computador 611 em uma memória ou outro dispositivo de armazenagem que seja parte de um segundo dispositivo eletrônico 11 e tipicamente similar em natureza ao dispositivo eletrônico 10.
Outras topologias e/ou dispositivo também podem ser usados para construir configurações alternativas da invenção. As configurações descritas acima são exemplares ao invés de limitantes e os limites da invenção devem ser determinados a partir das reivindicações. Embora 35 configurações preferidas da presente invenção tenham sido descritas em detalhes aqui acima, deve ficar claramente entendido que muitas variações e/ou modificações dos conceitos inventivos básicos ensinados aqui podem aparecer àqueles experientes na presente técnica e ainda cairão dentro do espirito e escopo da presente invenção, como definidos nas reivindicações anexas.
Claims (17)
1. Método para operar um computador, caracterizado pelo fato de compreender: carregar um primeiro Sistema Operacional (OS) em uma primeira partição de uma memória de sistema; carregar um segundo OS em uma segunda partição da memória do sistema; em resposta a uma solicitação de comutar a partir do segundo OS para o primeiro OS, executar uma instrução trazida a partir do segundo OS para solicitar uma mudança de Estado de Sistema de Interface de Energia e Configuração Avançada (ACPI), em que a solicitação para mudar o Estado de Sistema de ACPI compreende uma escrita em um registro predeterminado ; capturar, por um módulo, a escrita no registro predeterminado; após a captura, o módulo guarda um estado de hardware para um contexto do segundo OS; e após guardar, o módulo restaura um estado de hardware guardado para um contexto do primeiro OS e transfere o controle para o primeiro OS.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de: o Estado de Sistema ACPI ser Estado S3 de Sistema ACPI.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de: o carregamento do segundo OS ser executado por um módulo compreendendo um carregador de boot, em que o carregamento do segundo OS é executado responsive a uma sequência de instruções de pedido ACPI no primeiro OS.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de: o módulo invocar um serviço de Sistema Básico de Entrada— Saida (BIOS) para selecionar um próximo OS a ser carregado pelo carregador de boot.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de: a primeira partição ser de um tipo Faixa de Endereço Reservada (ARR) e a segunda partição ser de um tipo Memória de Faixa de Endereço (ARM).
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente: responsivo a executar uma instrução trazida da primeira partição, restaurar o estado de hardware guardado para o contexto do segundo OS; e transferir o controle para o segundo OS.
7. Método, de acordo com reivindicação 6, caracterizado pelo fato de compreender adicionalmente: trocar página de uma porção da segunda partição da memória do sistema para um disco; acrescentar a porção trocada da memória do sistema a uma pilha de software controlada pelo primeiro OS; e reinstalar a porção trocada da memória do sistema para a primeira partição após a execução de uma instrução trazida da primeira partição e antes de transferir o controle para o segundo OS.
8. Método, de acordo com reivindicação 1, caracterizado pelo fato de a solicitação de mudança do Estado de Sistema ACPI colocar o segundo OS em um estado de potência reduzida.
9. Meio não transitório lido por computador tendo instruções codificadas nele, caracterizado pelo fato de que as instruções, quando executadas por pelo menos um processador, fazem com que o citado pelo menos um processador: carregue um primeiro Sistema Operacional (OS) em uma primeira partição de uma memória de sistema; carregue um segundo OS em uma segunda partição da memória de sistema; em resposta a uma solicitação para comutar a partir do segundo OS para o primeiro OS, executar uma instrução trazida do segundo OS para solicitar uma mudança de um Estado de Sistema de Interface de Energia e Configuração Avançada (ACPI), em que a solicitação para mudar o Estado de Sistema de ACPI compreende uma escrita em um registro predeterminado; fazer com que um módulo capture a escrita no registro predeterminado ; após a captura, fazer com que o módulo guarde um estado de hardware para um contexto do segundo OS; e após guardar, fazer com que o módulo restaure um estado de hardware guardado para um contexto do primeiro OS e transfira o controle para o primeiro OS.
10. Meio não transitório lido por computador, de acordo com a reivindicação 9, caracterizado pelo fato de: a primeira e segunda partições serem mutuamente exclusivas; e o carregamento do segundo OS ser executado pelo módulo e ser executado responsivo a uma sequência de instruções de pedido de ACPI no primeiro OS.
11. Meio não transitório lido por computador, de acordo com a reivindicação 9, caracterizado pelo fato de: o carregamento do segundo OS ser executado pelo módulo e ser executado responsivo a uma sequência de instruções de pedido de ACPI no primeiro OS; e o módulo invocar um serviço de Sistema Básico de Entrada— Saida (BIOS) para selecionar um próximo OS a ser carregado.
12. Meio não transitório lido por computador, de acordo com a reivindicação 9, caracterizado pelo fato de a solicitação de mudança do Estado de Sistema ACPI colocar o segundo OS em um estado de potência reduzida.
13. Dispositivo eletrônico, caracterizado pelo fato de compreender: um controlador; e uma primeira memória de sistema tendo instruções codificadas nela, as instruções quando executadas pelo controlador fazem com que o citado controlador: carregue um primeiro Sistema Operacional (OS) em uma primeira partição da primeira memória de sistema ou de uma segunda memória de sistema; carregue um segundo OS em uma segunda partição da primeira memória de sistema ou da segunda memória de sistema; em resposta a uma solicitação para comutar a partir do segundo OS para o primeiro OS, executar uma instrução trazida do segundo OS para solicitar uma mudança de um Estado de Sistema de Interface de Energia e Configuração Avançada (ACPI), em que a solicitação para mudar o Estado de Sistema de ACPI compreende uma escrita em um registro predeterminado ; fazer com que um módulo capture a escrita no registro predeterminado ; após a captura, fazer com que o módulo guarde um estado de hardware para um contexto do segundo OS; e após guardar, fazer com que o módulo restaure um estado de hardware guardado para um contexto do primeiro OS e transfira o controle para o primeiro OS.
14. Dispositivo eletrônico, de acordo com a reivindicação 13, caracterizado pelo fato de: a primeira segunda partições serem mutuamente exclusivas.
15. Dispositivo eletrônico, de acordo com a reivindicação 13, caracterizado pelo fato de: o carregamento do segundo OS ser executado pelo módulo e ser executado responsive a uma sequência de instruções de pedido de ACPI no primeiro OS.
16. Dispositivo eletrônico, de acordo com a reivindicação 13, caracterizado pelo fato de: o módulo ser um módulo de direcionamento de OS (OSM).
17. Dispositivo eletrônico, de acordo com a reivindicação 13, caracterizado pelo fato de a solicitação de mudança do Estado de Sistema ACPI colocar o segundo OS em um estado de potência reduzida.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US21057809P | 2009-03-20 | 2009-03-20 | |
| US61/210,578 | 2009-03-20 | ||
| US12/459,953 US8327174B2 (en) | 2009-03-20 | 2009-07-10 | Loading operating systems using memory segmentation and ACPI based context switch |
| US12/459,953 | 2009-07-10 | ||
| PCT/US2010/027430 WO2010107757A1 (en) | 2009-03-20 | 2010-03-16 | Loading operating systems using memory segmentation and acpi based context switch |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI1006211A2 BRPI1006211A2 (pt) | 2018-03-13 |
| BRPI1006211B1 true BRPI1006211B1 (pt) | 2020-07-28 |
Family
ID=42738621
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI1006211-4A BRPI1006211B1 (pt) | 2009-03-20 | 2010-03-16 | Método para operar um computador, meio não transitório lido por computador, e dispositivo eletrônico |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US8327174B2 (pt) |
| EP (2) | EP2409234B1 (pt) |
| KR (2) | KR101602991B1 (pt) |
| CN (2) | CN102439573B (pt) |
| BR (1) | BRPI1006211B1 (pt) |
| WO (2) | WO2010107757A1 (pt) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8522354B2 (en) * | 2008-05-24 | 2013-08-27 | Via Technologies, Inc. | Microprocessor apparatus for secure on-die real-time clock |
| US8327174B2 (en) * | 2009-03-20 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | Loading operating systems using memory segmentation and ACPI based context switch |
| US8433889B2 (en) | 2010-04-28 | 2013-04-30 | Acer Cloud Technology, Inc. | Operating system context switching |
| US20120297177A1 (en) * | 2010-11-15 | 2012-11-22 | Ghosh Anup K | Hardware Assisted Operating System Switch |
| US8607040B2 (en) | 2010-11-16 | 2013-12-10 | Intel Corporation | Method of provisioning firmware in an operating system (OS) absent services environment |
| CN102135910B (zh) * | 2011-03-03 | 2014-05-14 | 威盛电子股份有限公司 | 切换操作系统的方法及使用此方法的电子装置 |
| TWI455027B (zh) * | 2011-07-29 | 2014-10-01 | Via Tech Inc | 多系統平台的切換方法及支援多系統平台的電子裝置 |
| JP2014531099A (ja) * | 2011-10-28 | 2014-11-20 | インテル・コーポレーション | 動作コンテキストの切り替え |
| BR112014010182A8 (pt) * | 2011-10-28 | 2017-06-20 | Intel Corp | comutação entre contextos operacionais |
| WO2013162531A1 (en) * | 2012-04-25 | 2013-10-31 | Hewlett-Packard Development Company L.P. | Dynamic memory allocation |
| CN104285211A (zh) * | 2012-07-26 | 2015-01-14 | 惠普发展公司,有限责任合伙企业 | 硬件资源的周期性访问 |
| CN103116522B (zh) * | 2013-01-31 | 2016-09-07 | 广州海格通信集团股份有限公司 | Dsp芯片的内核程序动态切换方法及控制系统 |
| US9304780B2 (en) * | 2013-10-18 | 2016-04-05 | Google Inc. | User initiated data rollback using operating system partitions |
| CN103713542A (zh) * | 2013-11-11 | 2014-04-09 | 青岛中科英泰商用系统有限公司 | 设急停控制开关和音频接口的多功能触控工业平板计算机 |
| US9934047B2 (en) * | 2014-03-20 | 2018-04-03 | Intel Corporation | Techniques for switching between operating systems |
| US9582223B2 (en) * | 2014-04-14 | 2017-02-28 | International Business Machines Corporation | Efficient reclamation of pre-allocated direct memory access (DMA) memory |
| EP3553659B1 (en) * | 2015-02-24 | 2022-11-23 | Huawei Technologies Co., Ltd. | Multi-operating system device, notification device and methods thereof |
| CN106528453B (zh) * | 2015-09-10 | 2019-10-18 | 中国航空工业第六一八研究所 | 基于复合尺度页的页表分区管理装置和方法 |
| KR102650828B1 (ko) | 2016-05-20 | 2024-03-26 | 삼성전자주식회사 | 둘 이상의 프로세서에 의해 공유되는 메모리 장치 및 상기 메모리 장치를 포함하는 시스템 |
| US20180074967A1 (en) * | 2016-09-09 | 2018-03-15 | Sap Se | Paging Mechanism for In-Memory Data Management System |
| US10838737B1 (en) * | 2017-08-31 | 2020-11-17 | American Megatrends International, Llc | Restoration of memory content to restore machine state |
| US11720401B2 (en) * | 2020-03-27 | 2023-08-08 | Intel Corporation | Reclaiming and reusing pre-boot reserved memory post-boot |
| KR20210156617A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 데이터 스와핑 방법 및 이를 지원하는 전자 장치 |
| CN112799521B (zh) * | 2021-03-29 | 2021-08-27 | 上海捷勃特机器人有限公司 | 电子设备及操作电子设备的方法 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6049854A (en) * | 1997-05-09 | 2000-04-11 | Vlsi Technology, Inc. | System and method for sharing physical memory among distinct computer environments |
| US6772419B1 (en) * | 1997-09-12 | 2004-08-03 | Hitachi, Ltd. | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS |
| EP1037133A1 (en) | 1999-03-15 | 2000-09-20 | International Business Machines Corporation | Method and apparatus for alternation between instances of operating systems in computer systems |
| US6763458B1 (en) * | 1999-09-27 | 2004-07-13 | Captaris, Inc. | System and method for installing and servicing an operating system in a computer or information appliance |
| JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
| US6988226B2 (en) * | 2002-10-17 | 2006-01-17 | Wind River Systems, Inc. | Health monitoring system for a partitioned architecture |
| CN1658185A (zh) * | 2004-02-18 | 2005-08-24 | 国际商业机器公司 | 相互独立地共存多个操作系统的计算机系统与其切换方法 |
| KR100673681B1 (ko) * | 2004-03-25 | 2007-01-24 | 엘지전자 주식회사 | 개인용 컴퓨터에서의 인스턴트 온 기능 실행방법 |
| US7421533B2 (en) * | 2004-04-19 | 2008-09-02 | Intel Corporation | Method to manage memory in a platform with virtual machines |
| GB2418751A (en) | 2004-10-02 | 2006-04-05 | Hewlett Packard Development Co | Managing memory across a plurality of partitions |
| US7882317B2 (en) * | 2004-12-06 | 2011-02-01 | Microsoft Corporation | Process isolation using protection domains |
| US7529921B2 (en) * | 2004-12-17 | 2009-05-05 | Cardiac Pacemakers, Inc. | Fast initialization of medical device system having multiple operating systems |
| US20060184938A1 (en) | 2005-02-17 | 2006-08-17 | Intel Corporation | Method, apparatus and system for dynamically reassigning memory from one virtual machine to another |
| US7529923B2 (en) * | 2005-06-30 | 2009-05-05 | Intel Corporation | Operating system mode transfer |
| TWI279724B (en) | 2005-09-07 | 2007-04-21 | Mitac Technology Corp | Method for fast activating execution of computer multimedia playing from standby mode |
| US7950020B2 (en) * | 2006-03-16 | 2011-05-24 | Ntt Docomo, Inc. | Secure operating system switching |
| US8046570B2 (en) * | 2007-02-06 | 2011-10-25 | Microsoft Corporation | Supporting multiple operating systems in media devices |
| CN101387989A (zh) * | 2008-10-29 | 2009-03-18 | 北京世纪红山科技有限公司 | 构建基于分区管理的虚拟存储设备的计算机系统及方法 |
| US8239667B2 (en) * | 2008-11-13 | 2012-08-07 | Intel Corporation | Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory |
| US8327174B2 (en) | 2009-03-20 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | Loading operating systems using memory segmentation and ACPI based context switch |
-
2009
- 2009-07-10 US US12/459,953 patent/US8327174B2/en not_active Expired - Fee Related
- 2009-07-10 US US12/459,963 patent/US8489847B2/en not_active Expired - Fee Related
-
2010
- 2010-03-16 WO PCT/US2010/027430 patent/WO2010107757A1/en not_active Ceased
- 2010-03-16 KR KR1020117024680A patent/KR101602991B1/ko not_active Expired - Fee Related
- 2010-03-16 EP EP10709366.8A patent/EP2409234B1/en not_active Not-in-force
- 2010-03-16 CN CN201080021893.8A patent/CN102439573B/zh not_active Expired - Fee Related
- 2010-03-16 WO PCT/US2010/027428 patent/WO2010107755A1/en not_active Ceased
- 2010-03-16 BR BRPI1006211-4A patent/BRPI1006211B1/pt not_active IP Right Cessation
- 2010-03-16 KR KR1020117021841A patent/KR101620655B1/ko not_active Expired - Fee Related
- 2010-03-16 EP EP10715621A patent/EP2409227A1/en not_active Withdrawn
- 2010-03-16 CN CN201080012607.1A patent/CN102369510B/zh not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| WO2010107757A1 (en) | 2010-09-23 |
| CN102439573B (zh) | 2014-07-16 |
| EP2409227A1 (en) | 2012-01-25 |
| EP2409234A1 (en) | 2012-01-25 |
| CN102369510B (zh) | 2016-06-22 |
| KR101602991B1 (ko) | 2016-03-11 |
| EP2409234B1 (en) | 2016-09-28 |
| US8327174B2 (en) | 2012-12-04 |
| KR20120000089A (ko) | 2012-01-03 |
| KR20110130435A (ko) | 2011-12-05 |
| KR101620655B1 (ko) | 2016-05-12 |
| WO2010107755A1 (en) | 2010-09-23 |
| US20100241821A1 (en) | 2010-09-23 |
| CN102369510A (zh) | 2012-03-07 |
| BRPI1006211A2 (pt) | 2018-03-13 |
| US8489847B2 (en) | 2013-07-16 |
| US20100241839A1 (en) | 2010-09-23 |
| CN102439573A (zh) | 2012-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI1006211B1 (pt) | Método para operar um computador, meio não transitório lido por computador, e dispositivo eletrônico | |
| EP2329365B1 (en) | Turbo boot systems and methods | |
| TWI684859B (zh) | 遠端系統復原之方法 | |
| KR101251710B1 (ko) | 복수의 부트-가능 장치들 간의 부트 교섭 | |
| EP3255527B1 (en) | Remote keyboard-video-mouse technologies | |
| EP2189901B1 (en) | Method and system to enable fast platform restart | |
| JP6305976B2 (ja) | コンピューティング装置に対するネットワーク駆動のウェイクアップ操作の実行期間中においてパケットを遅延させる方法、装置およびシステム | |
| US11314578B2 (en) | Information handling system and method to detect and recover from spurious resets of PCIe devices | |
| US20080288766A1 (en) | Information processing apparatus and method for abortting legacy emulation process | |
| US9395919B1 (en) | Memory configuration operations for a computing device | |
| EP3910469A1 (en) | Interface and warm reset path for memory device firmware upgrades | |
| CN107430424A (zh) | 针对改进的混合睡眠功率管理的技术 | |
| WO2016074127A1 (zh) | 计算机设备及计算机设备内存启动的方法 | |
| US9417886B2 (en) | System and method for dynamically changing system behavior by modifying boot configuration data and registry entries | |
| US11144326B2 (en) | System and method of initiating multiple adaptors in parallel | |
| JP6050528B2 (ja) | セキュリティ・コプロセッサ・ブート性能 | |
| TWI911961B (zh) | 用於減少運算服務停機時間的運算系統 | |
| US20230195378A1 (en) | Smart network interface controller host storage access | |
| TW202542733A (zh) | 用於減少運算服務停機時間的運算系統 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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] | ||
| B25D | Requested change of name of applicant approved |
Owner name: HP INC. (US) |
|
| B25G | Requested change of headquarter approved |
Owner name: HP INC. (US) |
|
| 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 28/07/2020, 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 2766 DE 09-01-2024 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. |