CN103999040A - 在操作上下文之间切换 - Google Patents

在操作上下文之间切换 Download PDF

Info

Publication number
CN103999040A
CN103999040A CN201180076030.5A CN201180076030A CN103999040A CN 103999040 A CN103999040 A CN 103999040A CN 201180076030 A CN201180076030 A CN 201180076030A CN 103999040 A CN103999040 A CN 103999040A
Authority
CN
China
Prior art keywords
operating system
calculation element
standby power
storer
power status
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201180076030.5A
Other languages
English (en)
Other versions
CN103999040B (zh
Inventor
M.罗思曼
V.J.齐默
C.K.沈
T.M.侯
Y.H.钱
Y.芮
J.J.王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN103999040A publication Critical patent/CN103999040A/zh
Application granted granted Critical
Publication of CN103999040B publication Critical patent/CN103999040B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

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)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

从计算装置的待机电源状态呼出多个操作上下文。操作上下文运行在计算装置的一个或多个操作系统上。当诸如借助通过用户发起的动作或热键的激活来选择期望操作上下文时,从待机电源状态引导支持期望操作上下文的操作系统。

Description

在操作上下文之间切换
背景技术
存在用于通过暂停计算机执行而节能并用于实现多重引导计算装置的机构。在现有技术系统中,一次通常引导单个操作系统(OS)。如果需要第二OS,则计算装置断电并且固件重新引导。可存在掌控引导过程的标准,诸如基本输入/输出系统(BIOS)引导规范和/或可扩展固件接口(EFI)引导管理器。
而且,可存在掌控计算装置的电源管理的标准和规范。例如,美国能源之星评级规定对于机器(计算装置)的示范要求是仅耗散100瓦特。高级配置与电源接口即ACPI(见http://www.acpi.info)是由英特尔公司、微软公司、东芝公司和惠普公司联合开发的工业规范以标识用于管理电源的标准。休眠状态和转变由ACPI规范定义。例如,存在定义如何构建硬件以支持S4休眠状态或休止(hibernate)状态的ACPI规范。在S4休眠状态,计算装置进入深度休眠以节能。在S4休眠状态,计算机装置的OS获取所有其存储器内容并将它们存储成盘文件(硬盘)。另一状态是被视为待机状态的S3休眠状态。在S3,内容被保留在系统随机存取存储器(RAM)中。小量电力被提供给系统RAM和芯片集以捕捉或侦听唤醒事件,诸如膝上型计算机盖打开或激活热键。相比之下,对于S4休眠状态,一切都掉电。
计算装置可使用多个操作上下文,其中应用运行在相同或不同OS上。例如,用户可玩运行在第一OS(诸如Windows? OS)上的游戏。玩游戏是一个操作上下文。用户然后期望使用运行在第二OS(诸如Linux OS)上的触摸垫。触摸垫应用是另一操作上下文。在操作上下文之间跳转可涉及诸如关上膝上型计算装置的盖或激活计算装置上的指定热键的事件。鉴于在操作上下文之间跳转涉及关闭和打开不同OS,操作上下文之间的时间可能是相当大的。将高度期望以最小延迟在操作上下文之间跳转。要理解到,运行在计算装置上的虚拟机器可提供操作上下文之间的最小延迟。运行虚拟机器需要相当大的计算资源和计算装置功率。当计算装置具有有限资源(包含功率资源)时,这可能变成问题。当计算装置是小形状因子装置(诸如平板计算机或超级本)时,特别是这种情况。因此,将期望能够以最小延迟、计算资源和功率在操作上下文之间跳转。
附图说明
具体实施方式参考附图进行描述。在附图中,附图标记最左边的数位标识附图标记第一次出现的附图。附图通篇使用相同的数字来引用相似的特征和组件。
图1是用于在操作上下文之间切换的示例流程图。
图2是用于当在操作上下文之间切换时运行操作系统的示例流程图。
图3是用于当在操作上下文之间切换时发起和运行系统管理(模式)中断或SMI处理机的示例流程图。
图4是用于当在操作上下文之间切换时保存切换的操作系统上下文的示例流程图。
图5是用于当在操作上下文之间切换时重新开始目标切换上下文的示例流程图。
图6是用于当在操作上下文之间切换时跳到操作系统重新开始向量的示例流程图。
图7是用于当在操作上下文之间切换时在基本输入/输出系统(BIOS)中实现的预先可扩展固件接口(Pre-EFI或PEI)中从休眠状态唤醒的示例流程图。
图8是用于当在操作上下文之间切换时在基本输入/输出系统(BIOS)中实现的驱动器执行环境(DXE)中从休眠状态唤醒的示例流程图。
图9是实现在操作上下文之间切换的计算装置的示例架构的框图。
图10是实现在操作上下文之间切换的示例存储器的框图。
具体实施方式
在计算装置中在操作上下文之间切换利用低功率状态,诸如待机或S3休眠状态。使用低功率状态可允许在最小时间内在操作上下文之间跳转和/或呼出(call up)操作上下文。
概述
本文描述的是允许在计算装置中在(例如变化的)操作上下文之间切换、实现低功率状态的方法、计算装置和计算机可读存储介质。通常,待机状态(例如S3状态)用于单个过程和单个实例;然而,本文描述的是将待机或S3状态用于N个操作上下文的方法、计算装置和计算机可读存储介质。例如,待机状态或S3状态可用于以时间有效和响应方式切换操作上下文。操作可以是平台不可知的或OS不可知的,并使用计算装置的基本输入/输出系统(BIOS)实现。
在如下详细描述中,阐述了众多特定细节,以便提供本发明的透彻理解。然而,本领域技术人员将理解,没有这些特定细节也可实践本发明。在其它实例中,众所周知的方法、过程、组件和电路未详细描述,以免使本发明模糊不清。
随后的详细描述的一些部分依据对计算机存储器内的数据位或二进制数字信号的操作的算法和符号表示给出了。这些算法描述和表示可以是数据处理领域的技术人员用于向本领域技术人员传达它们工作的实质的技术。
除非特别声明,否则根据如下讨论显然的是,要认识到,在说明书通篇利用诸如“处理”、“计算”、“算出”、“确定”等术语的讨论是指计算机或计算系统或类似的电子计算装置的动作和/或过程,其操控在计算系统的寄存器和/或存储器内表示为物理(诸如电子)量的数据和/或将它们变换成计算系统的存储器、寄存器或其它此类信息存储或传送装置内的类似地表示为物理量的其它数据。本文所使用的术语“一个”被定义为一个或多于一个。本文所使用的术语“多个”被定义为两个或多于两个。本文所使用的术语“另一个”被定义为至少第二个或更多个。本文所使用的术语包含和/或具有被定义为包括但不限于包括。本文所使用的术语耦合被定义为以任何期望的形式例如机械、电气、数字、直接、通过软件、通过硬件等可操作地连接。应该理解,本发明可以用在各种各样的应用中。
一些实施例可结合各种装置和系统使用,例如个人计算机(PC)、台式计算机、移动计算机、膝上型计算机、笔记本计算机、平板计算机、服务器计算机、手持计算机、手持装置、个人数字助理(PDA)装置、手持PDA装置、板上装置、板下装置、混合装置、车载装置、非车载装置、移动或便携装置、消费装置、非移动或非便携装置、无线通信站和/或无线通信装置。此类装置在本文被统称为“计算装置”。
计算装置实现低功率状态,例如,计算装置使用ACPI规范,并且能够进入S3休眠状态或待机状态。计算装置包含一个或多个OS,包括“全”OS、专用OS、OS/应用等。运行在计算装置上的应用可运行在它们自己的操作上下文上。每个OS和操作上下文是可兼容的,或者利用低功率状态(例如待机或S3状态)。操作上下文或OS可通过用户动作(诸如关上膝上型计算装置上的盖和/或激活计算装置上的热键)来呼出(call up)或者从一个OS/操作上下文切换到另一个。要理解到,其它触发事件可实现为或者预先编程为和/或集成为计算装置的一部分,和/或由用户编程。
所描述的方法和过程可实现为计算装置的基本输入/输出系统(BIOS)的一部分。而且,计算装置实现具体BIOS引导规范和/或可扩展固件接口(EFI)引导管理器规范。方法和过程还可利用定义的系统管理模式(SMM)操作,包含SMM中断(SMI)操作,并且具体地说是SMI处理机。SMI处理机具体针对当引导OS时检测和寻址“错误”。
示例过程
现在参考附图。图1示出了用于在操作上下文之间切换的示例过程100。在块102,假定接通计算装置电源,尽管计算装置可处于几种休眠状态之一。确定计算装置是否处于待机状态,例如S3休眠状态。具体地说,在块104,确定计算装置是否从待机或S3休眠状态重新开始。
如果计算装置未从待机或S3休眠状态重新开始,在块104的“否”分支之后,则在块106计算装置为目标OS预留资源,其中目标OS被定义为计算装置用于具体操作上下文的OS。在块108,为OS切换上下文预留资源。例如,OS可从Windows? OS切换到Linux OS。在块110,发起期望OS。
如果计算装置来自于待机或S3休眠状态,在块104的“是”分支之后,则在块112确定是否已经设置了OS切换标志。具体地说,在块112,该确定针对OS是否被切换或改变以支持期望的操作上下文。如果确定使用与之前相同的OS,在112的“否”分支之后,则在块114执行从待机或S3状态的正常重新开始。则在块110,发起OS。
如果计算装置100要改变或切换OS,在块112的“是”分支之后,则计算装置从一个OS中的待机或S3状态跳转到运行在另一OS上的操作上下文。因此,另一OS需要被唤醒或被引导。
在块116,为了维护目的,清除OS切换标志。在块118,执行更新以引导目标。对于每个OS,预留存储器以便相应的OS从那儿引导。从期望OS的相应存储器位置执行重新开始。在块120,为目标OS预留资源。在块122,从引导模式向目标/切换的OS的全引导执行改写。在块124,在计算装置的BIOS,执行引导以发起不同OS或目标OS。在块126,引导目标OS,并且在块110,发起OS。
图2示出了用于当在操作上下文之间切换时运行操作系统的过程200。过程200遵循过程100。在块110,发起OS。在块202,确定是否触发事件(诸如关上膝上型计算机上的盖或者已经按下了热键)发起了到运行不同操作上下文(即运行在不同OS上的另一操作上下文)的不同OS的切换。如果确定不存在到不同OS的切换,在块202的“否”分支之后,则流程200跳转回块110。否则,在块202的“是”分支之后,在块204设置OS切换标志。在块206,触发待机状态或S3状态。通过触发S3状态,在块208,调用或发起SMI处理机(下面在有关图3的讨论中进一步描述)。SMI处理机具体针对当引导OS时检测和寻址“错误”。
执行块110还涉及在块210确定是否已经设置了OS切换标志。在块210的“否”分支之后,流程200跳转回块110。如果已经设置了OS标志,在块210的“是”分支之后,则流程200跳转回206以触发待机或S3状态。
图3示出了示例过程300以发起系统管理(模式)中断或SMI处理机。通过触发待机或S3状态,在块208发起SMI处理机。过程300(包含诸如调用SMI处理机的块)可基于高级配置与电源接口即ACPI标准。在块302,S3寄存器被保存到存储器(即RAM)用于源OS,包含保存上下文信息。待机或S3状态与深度休眠状态或S4状态相比,允许计算装置变成正常运转并且比在深度休眠状态或S4状态更快速地运行。换句话说,为了到达该操作状态,当与深度休眠状态或S4状态比较时,在待机或S3状态,初始化是最小的。
在块304,确定是否切换OS。如果确定未切换OS,在块304的“否”分支之后,则在块306过程继续。如果OS被切换,在块304的“是”分支之后,则在块308保持或保存OS切换上下文(下面在有关图4的讨论中进一步描述)。
在块310,进行关于是否引导目标OS的确定。如果未引导目标OS,在块310的“否”分支之后,则在块312设置用于OS的自动唤醒。如果那个目标OS被引导,在块310的“是”分支之后,则在块314,重新开始目标OS切换上下文(下面在有关图5的讨论中进一步描述)。
在块316,执行跳到目标OS的重新开始向量(下面在有关图6的讨论中进一步描述)。当切换上下文时,有效地从计算装置的初始重新设置向量开始软件代码流程。运行BIOS代码,并且作为用于待机或S3状态的正常重新开始代码路径的一部分,代替运行目标OS的加载程序(即有效加载OS),执行跳到OS重新开始向量,其存储在存储器中的位置。此类代码可由OS从现有待机或S3状态唤醒它自己所用的手段实现。当BIOS尝试唤醒回OS时,可运行该代码。在块318,运行目标OS。这可包含运行期望的操作上下文。
图4示出了当在操作上下文之间切换时保存切换的操作系统上下文的示例过程400。在块308之后,按定义的ACPI要求,在块402,保存ACPI表中的值的拷贝。在块404,保存或保持为源OS上下文预留的指定存储器以便随后使用或参考。在具体实现中,指定存储器(即RAM)中的特定区域。例如,指定RAM中“N”MB以下的存储器。过程400然后跳转回在块310确定是否引导目标OS。
图5示出了当在操作上下文之间切换时重新开始目标切换上下文的示例过程500。在块314之后,在块502,进行关于保存的待机或S3状态寄存器的重新开始。在块504,呼出并重新开始所保存的ACPI表。在块506,呼出并实现指定存储器(即例如在块404所保存的存储器)。
图6是当在操作上下文之间切换时跳到重新开始操作系统重新开始向量的示例过程600。过程600可实现为BIOS内的逻辑。此类逻辑可用于管理处于待机模式的多个OS。BIOS控制或确定启动哪个OS重新开始向量。因此,如果切换上下文,则当前重新开始向量与先前重新开始向量切换。为了执行切换,当前重新开始向量的位置可被写到临时存储区,并且恢复对于新目的地OS活动的老重新开始向量,并建立那个向量作为当前重新开始向量,并且最终使用老重新开始向量。这可提供在各种重新开始向量之间安全地来来回回而不丢失上下文的能力。在某些实现中,预留的存储器区域可实现成将这个数据保持在BIOS上下文内。BIOS是理解上下文切换的计算平台的实体。在块316(其中跳到OS的重新开始向量)之后,在块602,对于当呼出时SMM重新开始到的存储器区域的拷贝执行保存。具体地说,执行的保存是老重新开始向量数据连同与从那儿切换的OS关联的任何其它必要数据。这可避免数据丢失,并且启用在将来恢复和切换回的能力。在块604,如果之前未执行,则对于之前OS将重新开始到的较早存储器区域执行恢复。使用的存储器区域可被视为在BIOS内私用预留的存储器存储区,使得分配充分的空间来预留“N”个上下文,并且避免必须改写其它操作上下文,因为每个操作上下文有效地具有为每个预留的“插槽”。例如,如果存在两个操作上下文,则可存在用于操作上下文1的插槽1和用于操作上下文2的插槽2。因此,当从操作上下文1切换到操作上下文2时,与操作上下文1关联的活动信息可保存到插槽#1。可从插槽#2读取用于活动当前活动设置的数据,诸如插槽#2的重新开始向量。在块606,执行自举过程,其包含用允许跳到备选OS重新开始向量的代码替换存储器区域。具体地说,在块606,相应私用存储区或“插槽”中的数据被用于建立当前行为。因此,私用存储区或“插槽”可被视为数据的“备份”。真实配置数据(例如当前重新开始信息)用来自此类备份的数据编程。诸如“mwait”的命令可用于设置电源状态的应用过程。在块608,发起重新开始指令以摆脱SMI处理机过程。SMI处理机过程可由各种事故发起;然而,在这个示例中,SMI处理机过程如进入待机或S3状态、触发SMI的ACPI S状态转变所定义的发起。因此,在块602是SMI处理机进入时,并且块608是对SMI处理机的退出。在块610,操作在上面描述的块318继续。
BIOS过程
如所讨论的,实现可使用计算装置的BIOS执行。一般而言,BIOS执行从“上电”到转接到计算装置OS的动作。BIOS操作可包含各种阶段。BIOS的一部分是统一可扩展固件接口或UEFI或EFI。Pre-EFI或PEI是计算装置BIOS初始化的早期阶段。驱动器执行环境或DXE发生在计算装置中BIOS初始化的后半段。DXE在启动OS的BIOS中之处。
在待机或S3状态,重新开始OS能以比较快的方式发生,因为许多初始化由于保存到存储器(即RAM)而不需要再次发生。在待机或S3状态,启动可以在PEI阶段。DXE当OS被引导至少一次时实现,并且是每个OS的全BIOS初始化的一部分。OS引导被实现至少一次以到达待机或S3状态。
一般而言,当在PEI或者在S3流程或者模式引导时,确定引导目标OS是否是之前目标。例如,从Windows? OS进入S3模式,并且从Windows? OS回来。如果情况是真,则重新开始正常流程。如果情况不是真,则执行到备选流程或OS重新开始向量的切换。确定是否启动另一OS,并跳转到待机状态或S3状态。如果确定不是真,则过程进入DXE和正常引导流程,并在DXE中启动OS。
图7是用于当在操作上下文之间切换时在Pre-EFI或PEI中从休眠状态唤醒的示例过程700。过程700可由BIOS实现。在块702,发起上电,或者发起从较早的BIOS流程唤醒。在块704,进行关于是否从待机或S3状态重新开始引导模式的确定。
如果从待机或S3状态的引导模式未重新开始,在块704的“否”分支之后,则在块706,执行非待机或S3状态。在块708,确定引导目标是否来自第二或其它OS。在块708的“否”分支之后,接着是现有或第一OS引导流程。在块712,设置转接块(hand off block)以指示引导目标是现有或第一OS。在块714,继续BIOS过程。在块708的“是”分支之后,在块716,执行非待机状态或非S3流程。在块718,设置转接块以指示引导目标是第二或其它OS。在块714,继续BIOS。
如果从待机状态或S3状态的引导模式重新开始,在块704的“是”分支之后,则在块720,接着是S3流程。在块722,进行关于该引导目标是否来自之前引导目标的确定。在块722的“是”分支之后,在块724,接着是正常重新开始流程。在块722的“否”分支之后,执行到备选OS重新开始向量的切换。在块728,确定是否从待机或S3状态引导OS。在块728的“否”分支之后,执行块708。在块728的“是”分支之后,在块730,保存上下文,并且跳到备选OS重新开始向量。
图8是用于当在操作上下文之间切换时在DXE中从休眠状态唤醒的示例过程800。过程800可由BIOS实现。在块802,执行引导选项流程。在块804,进行关于是否启用OS切换BIOS选项的确定。在块804的“否”分支之后,在块806,确定来自PEI阶段的转接块是否指示切换。在块806的“是”分支之后,在块808,引导选项被修改成指向含有备选OS的存储器存储区。在块806的“否”分支之后,在块810,BIOS过程继续。如果启用了OS切换BIOS选项,在块804的“是”分支之后,则应用代码以禁用发起热键或触发调用操作上下文的小应用程序。在块810,BIOS过程继续。
示例计算装置
图9示出了实现操作上下文之间切换的示例计算装置900。如上面所讨论的,计算装置900可包含各种装置,诸如平板计算机、膝上型计算机等。
计算装置900包含一个或多个处理器、处理器902。处理器902可以是单个处理单元或若干处理单元,它们全都可包含单个或多个计算单元或多个核。处理器902可实现为一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令操纵信号的任何装置。在其它能力之中,处理器902可配置成提取和执行存储在存储器904或其它计算机可读存储介质中的计算机可读指令或处理器可存取指令。
存储器904是用于存储由处理器902执行以执行上面描述的各种功能的指令的计算机可读存储介质的示例。例如,存储器904一般可包含易失性存储器和非易失性存储器(例如RAM、ROM等)。存储器904在本文可被称为存储器或计算机可读存储介质。存储器904能够存储计算机可读、处理器可执行程序指令作为可由处理器902执行的计算机程序代码,作为配置用于执行在本文的实现中描述的操作和功能的具体机器。
存储器904可包含一个或多个操作系统906,并且可存储一个或多个应用908。操作系统906可以是为个人计算机、音频/视频装置等实现的各种已知和将来操作系统之一。应用908可包含预先配置的/安装的和可下载的应用。此外,存储器904可包含数据910。操作系统906和应用908可定义上面所描述的操作上下文。
存储器904具体地说包含随机存取存储器或RAM 912,上面描述的过程将信息存储到那儿的同时处于待机或S3状态。而且,BIOS 914包含在存储器904中。BIOS 914可存储在只读存储器(ROM)中。
计算装置900包含存储器控制器916。当处于待机或S3状态时,存储器中的操作可使用存储器控制器916运行。RAM 912可保持在自刷新模式,允许RAM 912保持最小上下文以保持计算装置通电。因此,当处理器902和计算装置的其它装置唤醒时,存储器正在等待。这允许待机状态或S3状态相比应用908正在运行时是低功耗状态。
计算装置还可包含连接到各种内部和外部装置的输入/输出918以及外设,诸如监视器、键盘、指点装置等。各种已知和将来接口可包含在输入/输出918中。具体地说,输入/输出918可提供对可发起到现有或不同操作上下文的转变的预先安装的或用户编程的热键的访问。
本文描述的示例计算装置900仅仅是适合于一些实现的示例,而不打算暗示对于可实现本文描述的过程、组件和特征的环境、架构和框架的使用或功能性的范围的任何限制。
一般而言,参考附图描述的任何功能都可使用软件、硬件(例如固定逻辑电路)或这些实现的组合来实现。程序代码可存储在一个或多个计算机可读存储器装置或其它计算机可读存储装置中。从而,本文描述的过程和组件可由计算机程序产品实现。
如上面所提到的,计算机存储介质包含用任何方法或技术实现的易失性和非易失性、可拆卸和不可拆卸介质,以便存储信息,诸如计算机可读指令、数据结构、程序模块或其它数据。计算机存储介质包含但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储装置或可用于存储由计算装置访问的信息的任何其它介质。
示例存储器分配
参考图10,RAM 912可被分配,或者具有为上面相对于过程讨论的信息/数据预留的部分。TSEG 1000是SMM定义用于初始化CPU或处理器902的存储器中的区段。TSEG 1000含有与SMM关联的SMM代码和逻辑。预留的OS切换上下文1002是作为BIOS的开销以完成附加保存和恢复与可来回切换的多个操作上下文关联的信息而预留的区域。OS1存储器页面1004和OS2存储器页面1006是用于具体OS的部分。要理解到,可实现其它OS,并且RAM 912中的部分预留用于此类OS。可兼容地址范围1010是访问具体OS的地址。RAM 912的部分可预留用于与切换操作上下文相关的其它数据和信息1008。其余RAM 1012指示未用于所描述过程的RAM 912的部分。
已经在具体实施例的上下文中描述了根据本发明的实现。这些实施例意在是阐明性的而非限制性的。许多改变、修改、添加和改进是有可能的。于是,可为在本文中作为单个实例描述的组件提供多个实例。各种组件、操作和数据存储区之间的界限某种程度上是任意的,并且具体操作在特定的阐明性配置上下文中阐明了。功能性的其它分配可被想到,并且可落入随后的权利要求书的范围内。最后,在各种配置中作为分立组件给出的结构和功能性可实现为组合的结构或组件。这些以及其它改变、修改、添加和改进可落入在如下权利要求书中所定义的本发明的范围内。

Claims (20)

1. 一种在操作上下文之间切换的方法,包括:
在配置有可执行指令的一个或多个处理器的控制下,
使计算装置处于待机电源状态;
确定多个操作系统之一来从所述待机电源状态启动;以及
从所述待机电源状态启动运行在所确定的操作系统上的期望操作上下文。
2. 如权利要求1所述的方法,其中所述确定所述操作系统基于所述计算装置上的用户动作。
3. 如权利要求1所述的方法,其中所述确定包含从之前的操作系统切换到不同的操作系统。
4. 如权利要求1所述的方法,其中从所述待机电源状态启动包含:检测引导操作系统和引导所述确定的操作系统时的错误。
5. 如权利要求1所述的方法,其中所述使处于、确定和启动是平台和操作系统不可知的。
6. 如权利要求1所述的方法,还包括:将数据保存到存储器以执行所述启动。
7. 如权利要求1所述的方法,还包括:为数据预留存储器以启动所述多个操作系统。
8. 一种计算装置,包括:
一个或多个处理器;
存储器控制器,其配置到所述一个或多个处理器;以及
存储器,其配置到所述一个或多个处理器和存储器控制器,其中所述存储器包含一个或多个操作系统,使得当所述计算装置处于待机电源状态时,支持期望操作上下文的操作系统从所述待机电源状态启动。
9. 如权利要求8所述的计算装置,其中所述存储器控制器运行来自存储器的操作,同时所述计算装置处于待机电源状态。
10. 如权利要求8所述的计算装置,其中所述存储器包含被分配成从待机电源状态启动所述操作系统的随机存取存储器。
11. 如权利要求8所述的计算装置,其中所述存储器包含随机存取存储器,并且数据被保存到随机存取存储器以从待机电源状态启动所述操作系统。
12. 如权利要求8所述的计算装置,其中所述存储器包含系统管理代码以检测启动操作系统,以及启动用于所述期望操作上下文的适当操作系统时的错误。
13. 如权利要求8所述的计算装置,还包括:发起启动操作上下文的装置和外设所连接到的输入/输出接口。
14. 如权利要求8所述的计算装置,还包括:基本输入/输出系统(BIOS),其支持所述待机电源状态,并且其中所述期望操作系统被启动。
15. 如权利要求14所述的计算装置,其中所述BIOS包含从其启动所述期望操作系统的各种阶段。
16. 至少一个计算机可读存储介质,其上具有计算机可读指令,所述指令当由计算装置执行时使所述计算装置执行包括如下操作的操作:
使计算装置处于待机电源状态;
将数据位置保存在存储器中以从所述待机电源状态启动支持多个操作上下文的一个或多个操作系统;以及
从所述待机电源状态启动支持期望操作上下文的操作系统。
17. 如权利要求16所述的计算机可读存储介质,其中所述使所述计算装置处于待机电源状态以及启动所述操作系统是基于所述计算装置的用户动作。
18. 如权利要求16所述的计算机可读存储介质,其中所述将数据位置保存在存储器中包含保存来自之前实现的操作系统的数据。
19. 如权利要求16所述的计算机可读存储介质,其中所述启动包含:从分配成引导所述一个或多个操作系统的保存的存储器读取。
20. 如权利要求16所述的计算机可读存储介质,还包括:确定在引导所述操作系统和启动另一操作系统时的系统错误。
CN201180076030.5A 2011-10-28 2011-10-28 在操作上下文之间切换 Expired - Fee Related CN103999040B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/058192 WO2013062564A1 (en) 2011-10-28 2011-10-28 Switching between operational contexts

Publications (2)

Publication Number Publication Date
CN103999040A true CN103999040A (zh) 2014-08-20
CN103999040B CN103999040B (zh) 2017-11-28

Family

ID=48168233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180076030.5A Expired - Fee Related CN103999040B (zh) 2011-10-28 2011-10-28 在操作上下文之间切换

Country Status (6)

Country Link
US (1) US20150347155A1 (zh)
EP (1) EP2771784A4 (zh)
KR (1) KR101646425B1 (zh)
CN (1) CN103999040B (zh)
BR (1) BR112014010182A8 (zh)
WO (1) WO2013062564A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213301A (zh) * 2017-06-29 2019-01-15 美商安迈科技股份有限公司 支援省电模式的uefi壳程序方法及其电脑系统
CN115576645A (zh) * 2022-09-29 2023-01-06 中汽创智科技有限公司 一种虚拟处理器调度方法、装置、存储介质及电子设备

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014122694A1 (ja) * 2013-02-08 2014-08-14 三菱電機株式会社 情報処理装置およびプログラム
CN105339898B (zh) * 2013-07-23 2019-08-06 英特尔公司 操作系统切换方法及装置
RS63700B1 (sr) * 2013-08-23 2022-11-30 Foursquare Labs Inc Sistem i postupak za komunikaciju informacija u sistemu za pružanje usluga zasnovanih na lokaciji korisnika
US10175993B2 (en) 2013-09-26 2019-01-08 Hewlett-Packard Development Company, L.P. Device configuration prior to initialization of a system
US9645864B2 (en) 2014-02-06 2017-05-09 Intel Corporation Technologies for operating system transitions in multiple-operating-system environments
US9934047B2 (en) 2014-03-20 2018-04-03 Intel Corporation Techniques for switching between operating systems
US9690596B1 (en) * 2014-09-02 2017-06-27 Phoenix Technologies Ltd. Firmware based runtime operating system switch
US10642651B2 (en) 2016-06-23 2020-05-05 Intel Corporation Systems, methods and devices for standby power savings

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162629B2 (en) * 2003-11-20 2007-01-09 Intel Corporation Method to suspend-and-resume across various operational environment contexts
US7886136B2 (en) * 2004-05-21 2011-02-08 Samsung Electronics Co., Ltd. Computer system, method, and medium for switching operating system
TWI279724B (en) * 2005-09-07 2007-04-21 Mitac Technology Corp Method for fast activating execution of computer multimedia playing from standby mode
US7757010B2 (en) * 2006-04-28 2010-07-13 Mediatek Inc. Systems and methods for managing mass storage devices in electronic devices
US8046570B2 (en) * 2007-02-06 2011-10-25 Microsoft Corporation Supporting multiple operating systems in media devices
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
US8171280B2 (en) * 2009-06-22 2012-05-01 Matthew Laue Method of running multiple operating systems on an X86-based computer system having a dedicated memory region configured as a do not use region
US8516237B2 (en) * 2010-01-12 2013-08-20 Oracle America, Inc. Method and system for providing information to a subsequent operating system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213301A (zh) * 2017-06-29 2019-01-15 美商安迈科技股份有限公司 支援省电模式的uefi壳程序方法及其电脑系统
CN115576645A (zh) * 2022-09-29 2023-01-06 中汽创智科技有限公司 一种虚拟处理器调度方法、装置、存储介质及电子设备
CN115576645B (zh) * 2022-09-29 2024-03-08 中汽创智科技有限公司 一种虚拟处理器调度方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN103999040B (zh) 2017-11-28
US20150347155A1 (en) 2015-12-03
BR112014010182A2 (pt) 2017-06-13
WO2013062564A1 (en) 2013-05-02
EP2771784A1 (en) 2014-09-03
EP2771784A4 (en) 2015-06-24
KR20140073554A (ko) 2014-06-16
BR112014010182A8 (pt) 2017-06-20
KR101646425B1 (ko) 2016-08-05

Similar Documents

Publication Publication Date Title
CN103999040A (zh) 在操作上下文之间切换
US10775875B2 (en) Devices and methods for switching and communication among multiple operating systems and application management methods thereof
US20150365892A1 (en) Low-power wearable devices and methods for switching and communication among multiple operating systems and application management methods thereof
EP3274788B1 (en) Technologies for improved hybrid sleep power management
EP2239662B1 (en) System management mode inter-processor interrupt redirection
US10684865B2 (en) Access isolation for multi-operating system devices
TWI390410B (zh) 不須執行電力開啟自我測試之操作系統傳送及啟動
EP1983431A2 (en) Method and apparatus for quickly changing the power state of a data processing system
US7188238B2 (en) Methods and apparatus to update a basic input/output system (BIOS)
TW201502764A (zh) 用以從睡眠狀態加速回復之專用啟動路徑
US20090150662A1 (en) Firmware modification in a computer system environment supporting operational state changes
US20170300342A1 (en) Techniques for switching between operating systems
CN114879828A (zh) 具有持久性存储器存储装置的固件接口
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
JP2009266027A (ja) 情報処理装置および制御方法
JP2014531099A (ja) 動作コンテキストの切り替え
US8364943B2 (en) S3 BIOS operating system switch
JP2003242026A (ja) 情報処理システムおよびプログラム実行モード制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171128

Termination date: 20191028

CF01 Termination of patent right due to non-payment of annual fee