用于多个操作系统环境中的操作系统转变的技术的制作方法

文档序号:10517825阅读:181来源:国知局
用于多个操作系统环境中的操作系统转变的技术的制作方法
【专利摘要】用于在操作系统之间转变的技术包括具有主存储器和数据存储设备的计算设备。该计算设备执行第一操作系统并且监视操作系统切换事件。切换事件可以是软件命令、硬件按钮按压或其它用户命令。响应于切换事件,计算设备将第一操作系统的状态数据复制到预留存储器区域。在复制了状态数据之后,计算设备执行第二操作系统。在第二操作系统执行时,计算设备将第一操作系统的状态数据从预留存储器区域复制到数据存储设备。计算设备在第二操作系统的执行期间监视操作系统切换事件,并且可以类似地切换执行回到第一操作系统。描述并要求保护其它实施例。
【专利说明】用于多个操作系统环境中的操作系统转变的技术
[0001]相关美国专利申请的交叉引用
本申请要求2014年2月6日提交的题为“DEEP CACHING OF TRANSIT1NS IN DUAL OSENVIRONMENTS”的美国临时申请序列号61/936,610以及2014年6月26日提交的题为“TECHNOLOGIES FOR OPERATING SYSTEM TRANSIT1NS IN MULTIPLE-OPERATING-SYSTEMENVIRONMENTS”的美国实用新型专利申请序列号14/316,370的优先权。
【背景技术】
[0002]—些计算设备装载有由制造商安装的多个操作系统(OS)。例如,计算设备可以包括诸如Microsoft ? Windows?之类的通用操作系统以及诸如Android?之类的面向移动设备的操作系统二者。典型计算设备可以在双启动或多启动配置中支持多个操作系统。然而,在多启动配置中的操作系统之间的转换可能是冗长的并且典型地要求(多个)未使用操作系统关闭并丢失状态。一些计算设备能够基于一些事件(例如,系统事件或用户发起的事件,诸如硬件按钮按压或软件命令)而在不丢失活动操作系统状态的情况下在操作系统之间“切换(toggle)”。那些计算设备可以使用电力管理特征在操作系统之间切换,例如通过使活动操作系统休眠到盘(例如通过进入ACPI “S4”电力管理状态)。这样的基于休眠的操作系统切换典型地称为“S4切换”。
[0003]ACPI “S3”电力管理状态允许计算设备进入低供电状态而同时留存易失性存储器的内容。许多最近的处理器、芯片组和片上系统(SoC)能够实现连接待机电力管理状态而不是ACPI S3睡眠状态。连接待机电力管理状态可以允许那些计算设备执行某些网络任务而同时处于低供电状态中。许多当前的计算设备不能够进入S3睡眠状态。附加地,如果计算设备被放置到S3模式中,则连接待机的电力利用益处可能丢失。
【附图说明】
[0004]以示例的方式并且不以限制的方式在附图中图示了本文描述的概念。出于图示的简单和清楚起见,在图中图示的元件未必按照比例绘制。在考虑适当的情况下,在各图之间重复参考标记以指示对应或类似的元件。
[0005]图1是用于在操作系统之间转变的计算设备的至少一个实施例的简化框图;
图2是图示了各种多个操作系统环境中的操作系统转变性能的图;
图3是图1的计算设备的环境的至少一个实施例的简化框图;并且图4是可以由图1和3的计算设备执行的用于在操作系统之间转变的方法的至少一个实施例的简化流程图。
【具体实施方式】
[0006]尽管本公开的概念易受各种修改和可替换形式,但是其具体实施例已经在图中以示例的方式示出并且将在本文中详细地描述。然而,应当理解到,不意图将本公开的概念限于所公开的特定形式,而是相反,本发明要覆盖与本公开和随附权利要求一致的所有修改、等同方案和可替换方案。
[0007]在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每一个实施例可以或可以不必包括该特定特征、结构或特性。此外,这样的短语不必是指相同的实施例。另外,当结合实施例描述特定特征、结构或特性时,主张的是,不管是否明确描述,与其它实施例结合地实现这样的特征、结构或特性是本领域技术人员所知晓的。附加地,应当领会到,包括在以“至少一个A、B和C”形式的列表中的项目可以意指(A) ; (B) ; (C) ; (A和B) ; (A和C) ; (B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”形式列出的项目可以意指(A) ; (B) ; (C) ; (A和B) ; (A和C) ; (B和C);或者(A、B和C)。
[0008]所公开的实施例可以在一些情况下以硬件、固件、软件或其任何组合实现。所公开的实施例还可以实现为由暂时性或非暂时性机器可读(例如计算机可读)存储介质承载或存储于其上的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以由机器可读的形式存储或传送信息的任何存储设备、机构或其它物理结构(例如,易失性或非易失性存储器、媒体盘或其它媒体设备)。
[0009]在图中,可以以具体布置和/或次序示出一些结构或方法特征。然而,应当领会到,可以不要求这样的具体布置和/或次序。相反,在一些实施例中,这样的特征可以以说明性图中示出的不同方式和/或次序进行布置。附加地,在特定图中包括结构或方法特征不意为暗示着在所有实施例中都要求这样的特征,并且在一些实施例中可以不包括这样的特征或者可以与其它特征组合这样的特征。
[0010]现在参照图1,用于在多个操作系统之间转变的说明性计算设备100包括处理器120、1/0子系统122、存储器124和数据存储设备130。在使用中,如下文所述,计算设备100配置成执行多个操作系统。在一个操作系统的执行期间,计算设备100监视操作系统切换事件。操作系统切换事件可以例如响应于用户选择(例如,软件菜单选择、预限定的按键、硬件按钮按压或任何其它用户动作)而生成。响应于操作系统切换事件,计算设备100将活动操作系统的状态数据复制到存储器124的预留区域并且随后发动另一操作系统。在随后的操作系统执行时,计算设备100将状态数据从存储器124的预留区域复制到数据存储设备130。将状态数据复制到存储器124可以减少在操作系统之间切换时所要求的存储I/O量并且因而可以改进性能,特别是对于具有相对慢或低带宽数据存储设备130的设备而言。附加地,将状态数据复制到存储器124可以通过能够实现连接待机电力管理状态而不能够实现ACPIS3睡眠状态的当前计算设备来执行。
[0011]现在参照图2,图200图示了可以利用本公开实现的操作系统切换性能增益。曲线202图示了可以由使用S4切换(即进入S4 ACPI休眠状态)的典型计算设备展现的切换性能。曲线202图示了使用若干不同类型的数据存储设备完成针对主存储器的2千兆字节(2 GB)的S4切换所要求的时间。要求在典型的S4切换期间保存和/或恢复(restore)的平均数据量可以小于500兆字节,但可以变化。S4切换时间可以反映存储I/O的平均速度和在切换期间所招致的开销加上约两秒的转换时间。如所图示的,在一些实施例中,平均S4切换时间对于固态盘(SSD)可以是九秒,对于硬盘驱动器(HDD)可以是十五秒,并且对于eMMC(嵌入式闪速介质)可以是十八秒。因而,对于使用诸如eMMC之类的较慢数据存储设备的S4切换所要求的时间相比于使用SSD而言实际上可以加倍。然而,许多部署的计算设备包括较慢的数据存储设备以减少成本。事实上,eMMC用在许多当前的平板计算设备中。
[0012]曲线204图示了根据本公开的可以由计算设备100实现的切换性能。曲线204图示了针对2GB的活动主存储器124和若干不同类型的数据存储设备130在操作系统之间切换可能要求的时间。类似于S4切换,要保存和/或恢复的平均数据量可以小于500兆字节,但可以变化。如上文所述,操作系统切换时间可以反映存储I/O的平均速度和切换期间的开销加上约两秒的转换时间。如所图示的,针对本公开的平均切换时间对于SSD可以是七秒,对于HDD可以是十秒,并且对于eMMC可以是八秒。因而,如图2中所示,根据本公开的计算设备100相比于典型的S4切换而言可以改进操作系统切换性能,特别是在使用较慢数据存储设备130(诸如eMMC)时。
[0013]返回参照图1,计算设备100可以体现为能够在操作系统之间转变并且以其它方式执行本文描述的功能的任何类型的设备。例如,计算设备100可以体现为(而非限制)膝上型计算机、笔记本计算机、平板计算机、智能电话、移动计算设备、可穿戴计算设备、计算机、台式计算机、工作站、服务器计算机、分布式计算系统、多处理器系统、消费者电子设备、智能器具和/或能够在操作系统之间转变的任何其它计算设备。如图1中所示,说明性的计算设备100包括处理器120、I/O子系统122、存储器124和数据存储设备130。当然,在其它实施例中,计算设备100可以包括其它或附加的组件,诸如通常在平板计算机中找到的那些(例如各种输入/输出设备)。附加地,在一些实施例中,说明性组件中的一个或多个可以并入在另一组件中或者以其它方式形成另一组件的部分。例如,在一些实施例中,存储器124或其部分可以并入在处理器120中。
[0014]处理器120可以体现为能够执行本文描述的功能的任何类型的处理器。例如,处理器可以体现为(多个)单核或多核处理器、数字信号处理器、微控制器、或者其它处理器或处理/控制电路。类似地,存储器124可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。存储器124在活动存储器区域126和预留存储器区域128中划分。在操作中,存储器124的活动存储器区域126可以存储在计算设备100的操作期间使用的各种数据和软件,这样的操作系统、应用、程序、库和驱动程序。预留存储器区域128可以体现为从由计算系统、应用或由计算设备100执行的其它过程的一般使用划分、保护、隔离或以其方式预留的存储器124的任何部分。在一些实施例中,活动存储器区域126和预留存储器区域128均可以包括存储器124的一半。例如,在具有四千兆字节(4GB)的主存储器124的实施例中,活动存储器区域126和预留存储器区域128均可以占用两千兆字节(2GB)。在其它实施例中,可以预留任何量的存储器124。例如,在一些实施例中,预留存储器区域128可以占用少于存储器124的一半。
[0015]存储器124经由I/O子系统122通信地耦合到处理器120,1/0子系统122可以体现为促进与处理器120、存储器124和计算设备100的其它组件的输入/输出操作的电路和/或组件。例如,I/O子系统122可以体现为或以其它方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链接(即点对点链接、总线链接、电线、电缆、光导、印刷电路板迹线等)和/或促进输入/输出操作的其它组件和子系统。在一些实施例中,I/O子系统122可以形成片上系统(SoC)的部分并且连同处理器120、存储器124和计算设备100的其它组件一起并入在单个集成电路芯片上。
[0016]数据存储设备130可以体现为配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储卡、硬盘驱动器、固态驱动器或其它数据存储设备。在一些实施例中,数据存储设备130可以体现为嵌入式闪速存储器模块,诸如eMMC。数据存储设备130可以包含休眠文件132,其可以体现为用于在计算设备100处于低供电休眠状态(例如ACPI S4状态)中时存储设备状态的数据存储设备130的任何文件、文件系统、块、分区或其它区段。例如,休眠文件132可以存储存储器124的内容、处理器120的状态和/或其它设备状态。在一些实施例中,设备状态可以被压缩、消重(de-duplicate)或以其它方式处理以减少休眠文件132的大小。在从低供电休眠状态唤醒之后,计算设备100可以将休眠文件132的内容复制回到主存储器124中以重新开始操作。
[0017]在一些实施例中,计算设备100还可以包括一个或多个外围设备134。外围设备134可以包括任何数目的附加输入/输出设备、接口设备和/或其它外围设备。例如,在一些实施例中,外围设备134可以包括显示器、触摸屏、图形电路、键盘、鼠标、扬声器系统、和/或其它输入/输出设备、接口设备和/或外围设备。特别地,在一些实施例中,外围设备134可以包括专用硬件按钮或其它控制以在操作系统之间切换。
[0018]现在参照图3,在说明性实施例中,计算设备100在操作期间建立环境300。说明性实施例300包括存储器预留模块302、切换事件模块304和数个操作系统306。说明性环境300包括两个操作系统306a、306b;然而,在其它实施例中,可以包括任何数目的操作系统306。环境300的各种模块和/或组件可以体现为硬件、固件、软件或其组合。
[0019]存储器预留模块302配置成将存储器124的部分预留为预留存储器区域128。在预留之后,预留存储器区域128可以不由任何操作系统306使用,并且在一些实施例中可以对于任何操作系统306而言不可见或不可访问。在一些实施例中,存储器预留模块302可以由计算设备100的预启动固件执行环境建立,诸如根据由UEFI论坛所发布的统一扩展固件接口( “UEFI”)规范实现的预启动固件执行环境。
[0020]切换事件模块304配置成在任何操作系统306的执行期间接收操作系统切换事件。切换事件模块304还配置成在已经将活动操作系统306的状态数据复制到预留存储器区域128之后执行另一操作系统306。例如,在说明性实施例中,切换事件模块304可以在已经将操作系统306a的状态数据复制到预留存储器区域128之后执行操作系统306b。尽管被图示为单个切换事件模块304,但是在一些实施例中,环境300可以包括若干补充的切换事件模块304,例如针对每一个操作系统306—个切换事件模块304。
[0021]每一个操作系统306可以体现为计算设备100的任何操作系统、虚拟机监视器、管理程序或其它控制结构。例如,操作系统306a可以体现为Microsoft ? Windows?并且操作系统306b可以体现为Android?。每一个操作系统306包括预留复制模块308和写出模块310。预留复制模块308和写出模块310中的每一个可以体现为驱动器、过程、可加载模块、或者由操作系统306执行的其它组件。
[0022]每一个预留复制模块308配置成将相关联的操作系统306的状态数据复制到预留存储器区域128。状态数据可以包括存储器124的活动内容;也就是说,不包括在预留存储器区域128中的存储器124的部分。每一个写出模块310配置成将预留存储器区域128的内容复制到数据存储设备130。写出模块310可以在响应于操作系统切换事件而发动相关联的操作系统306之后向数据存储设备130写入。写出模块310可以在相关联的操作系统306执行用户应用时向数据存储设备130写入。
[0023]现在参照图4,在使用中,计算设备100可以执行用于在操作系统306之间切换的方法400。方法400在框402中开始,其中计算设备100对预留存储器区域128进行预留免于由任何操作系统306使用。计算设备100可以使用任何技术来保护、划分、隔离或以其它方式防止操作系统306使用预留存储器区域128。在一些实施例中,计算设备100的预启动固件环境可以对预留存储器区域128进行预留。例如,预启动固件可以将一个或多个系统表导出到操作系统306,从而指示计算设备100包含比存储器124中实际所包括的量少的存储器。在该示例中,预留存储器区域128可以体现为未由系统表描述的存储器124的上部存储器区段。
[0024]在框404中,计算设备100执行操作系统306之一,其说明性地称为操作系统306a。要执行的特定操作系统306a可以基于初始启动过程期间的用户选择、基于计算设备100的默认策略或者基于任何其它适当的准则来确定。在操作系统306a的执行期间,计算设备100可以执行如由用户引导的一个或多个应用。活动操作系统306a、应用和任何相关联的状态数据驻留在活动存储器区域126中,也就是说,在未包括于预留存储器区域128中的存储器124的部分中。
[0025]在框406中,计算设备100监视操作系统切换事件。操作系统切换事件可以体现为使操作系统100转换执行到不同操作系统306的任何事件。在一些实施例中,操作系统切换事件可以由用户选择生成。例如,用户选择可以体现为软件接口中的用户选择、预限定的按键或键组合、硬件按钮按压或者其它用户生成的事件。在一些实施例中,操作系统切换事件可以由系统事件在没有用户干预的情况下(例如,响应于来自设备驱动器的请求、后台软件过程或其它非交互式过程)生成。在框408中,计算设备100确定是否已经接收到操作系统切换事件。如果否,则方法400循环回到框406以继续监视操作系统切换事件。如果接收到操作系统切换事件,则方法400前进到框410。
[0026]在框410中,计算设备100将活动操作系统306a的状态数据从活动存储器区域126复制到预留存储器区域128。在一些实施例中,计算设备100可以将所有的活动存储器区域126复制到预留存储器区域128(例如,当活动存储器区域126和预留存储器区域128均占用总存储器124的一半时)。附加地或可替换地,计算设备100可以仅复制活动存储器区域126的部分,例如仅复制限定活动操作系统306a的状态的活动存储器区域126的内容。在一些实施例中,计算设备100可以压缩、消重或以其它方式减少对于将活动操作系统306a的状态复制到预留存储器区域128所要求的数据量。计算设备100可以替换预留存储器区域128的内容,或者在一些实施例中可以对预留存储器区域128的一些或所有内容进行保留,这取决于活动操作系统306a的状态数据量、预留存储器区域128中的可用空间或其它因素。因而,在一些实施例中,预留存储器区域128可以存储用于一个或多个操作系统306的状态数据,这可以进一步改进切换性能。
[0027]在一些实施例中,在框412中,计算设备100可以拦截指向休眠文件132的一个或多个I/O操作。那些I/O操作可以由计算设备100在进入低电力休眠电力管理状态(例如ACPIS4状态)时生成。在拦截I/O操作之后,计算设备100可以将I/O操作路由到预留存储器区域128而不是休眠文件132。例如,在一些实施例中,操作系统306a的存储驱动器堆叠可以包括拦截I/O操作并将I/O操作从休眠文件132重新路由到预留存储器区域128的过滤器驱动器。附加地或可替换地,在一些实施例中,计算设备100可以建立固件驱动器以拦截I/O操作。因而,计算设备100可以透明地将操作系统306a的状态存储到预留存储器区域128,而不是如在典型的休眠电力管理状态中那样将操作系统306a的状态保存到数据存储设备130。因而,计算设备100可以将操作系统306a的状态存储到预留存储器区域128而不要求对操作系统306a的任何特定修改。
[0028]在框414中,计算设备100加载另一操作系统306b。如上文所述,要执行的特定操作系统306b可以基于用户选择、基于计算设备100的默认策略或者基于任何其它适当的准则来确定。在一些实施例中,在框416中,计算设备100可以从休眠文件132加载另一操作系统306b。例如,如果另一操作系统306b之前已经由计算设备100执行,则另一操作系统306b的状态可能已经响应于之前的操作系统切换事件而存储在休眠文件132中。从休眠文件132加载另一操作系统306b的状态可能向操作系统切换中引入一些延迟时间。然而,因为许多数据存储设备130具有与数据写入速度相比高得多的数据读取速度,所以操作系统切换性能可以保持为可接受的。例如,eMMC嵌入式闪速存储器模块可以典型地支持是写入速度三倍的读取速度。如上文所述,在一些实施例中,计算设备100还可以之前已经将操作系统306b的状态数据存储在预留存储器区域128的部分中。从预留存储器区域128(如果可用的话)加载另一操作系统306b的状态可以进一步减少操作系统切换的延迟时间。
[0029]在加载另一操作系统306b之后,方法400的执行同时进行到框418和420。在框418中,计算设备100执行另一操作系统306b。如上文结合框404所述,在另一操作系统306b的执行期间,计算设备100可以执行如由用户引导的一个或多个应用。另一操作系统306b可以占用之前由操作系统306a占用的所有或部分的活动存储器区域126。
[0030]在框420中,计算设备100将预留存储器区域128的内容写入到数据存储设备130。在一些实施例中,在框422中,计算设备100可以将预留存储器区域128的内容写入到休眠文件132。计算设备100与另一操作系统306b的执行同时期地向数据存储设备130写入。例如,计算设备100可以使用内核驱动器、内核线程、用户过程、用户线程、或者能够与由另一操作系统306b执行的其它过程同时地执行的其它实体来向数据存储设备130写入。在一些实施例中,计算设备100可以在后台或者在计算设备100以其它方式空闲时向数据存储设备130写入。例如,计算设备100可以在仅在没有其它过程或线程(除系统空闲线程或类似空闲线程之外)是活动时执行的低优先级过程或线程中向数据存储设备130写入。因而,向数据存储设备130的写入可以对于计算设备100的用户而言是感觉不到的。因而,可以从用户隐藏与操作系统切换相关联的转移时间和其它延迟时间。如上文所述,隐藏写入延迟时间可以极大地改进切换性能,这是因为许多数据存储设备130提供与读取速度相比慢的写入速度。在一些实施例中,计算设备100可以禁用、掩蔽或以其它方式防止另外的操作系统切换事件而同时将预留存储器区域128的内容复制到数据存储设备130。
[0031]在完成预留存储器区域128的内容向数据存储设备130的复制之后,方法400循环回到框404,其中另一操作系统306b继续执行。因而,在完成复制之后,计算设备100可以监视另外的操作系统切换事件并对其做出响应,从而允许用户在操作系统306之间来回切换。
[0032]示例
在下文提供本文公开的技术的说明性示例。技术的实施例可以包括以下描述的示例中的任何一个或多个以及其任何组合。
[0033]示例I包括一种用于在操作系统之间转变的计算设备,该计算设备包括主存储器,其包括预留存储器区域;数据存储设备;以及切换事件模块,其通过计算设备在第一操作系统的执行期间接收操作系统切换事件以引起从第一操作系统向第二操作系统的转变;其中第一操作系统包括响应于接收到操作系统切换事件而将第一操作系统的状态数据复制到预留存储器区域的第一预留复制模块;第二操作系统包括在第二操作系统的执行期间将第一操作系统的状态数据复制到数据存储设备的第一写出模块;并且切换事件模块还响应于状态数据向预留存储器区域的复制而执行第二操作系统。
[0034]示例2包括示例I的主题,并且其中切换事件模块还在第二操作系统的执行期间接收第二操作系统切换事件;第二操作系统还包括响应于接收到第二操作系统切换事件而将第二操作系统的状态数据复制到预留存储器模块的第二预留复制模块;切换事件模块还响应于第二操作系统的状态数据的复制而第二次执行第一操作系统;并且第一操作系统还包括在第一操作系统的第二执行期间将第二操作系统的状态数据复制到数据存储设备的第二写出模块。
[0035]示例3包括示例I和2中任一项的主题,并且其中接收操作系统切换事件包括响应于系统事件而接收操作系统切换事件。
[0036]示例4包括示例1-3中任一项的主题,并且其中接收操作系统切换事件包括响应于用户选择而接收操作系统切换事件。
[0037]示例5包括示例1-4中任一项的主题,并且其中接收操作系统切换事件包括接收硬件切换选择。
[0038]示例6包括示例1-5中任一项的主题,并且其中接收操作系统切换事件包括接收软件切换选择。
[0039]示例7包括示例1-6中任一项的主题,并且其中切换事件模块还响应于接收到操作系统切换事件而使计算设备进入休眠电力管理状态。
[0040]示例8包括示例1-7中任一项的主题,并且其中将第一操作系统的状态数据复制到预留存储器区域包括拦截指向数据存储设备的一个或多个I/O操作;以及将一个或多个I/O操作路由到预留存储器区域。
[0041]示例9包括示例1-8中任一项的主题,并且其中拦截一个或多个I/O操作包括拦截指向由数据存储设备存储的休眠文件的一个或多个I/O操作。
[0042]示例10包括示例1-9中任一项的主题,并且其中拦截一个或多个I/O操作包括使用第一操作系统的过滤器驱动器来拦截一个或多个I/O操作。
[0043]示例11包括示例1-10中任一项的主题,并且其中执行第二操作系统包括从由数据存储设备存储的休眠文件加载第二操作系统。
[0044]示例12包括示例1-11中任一项的主题,并且其中第二操作系统还与第一操作系统的状态数据向数据存储设备的复制同时期地执行应用。
[0045]示例13包括示例1-12中任一项的主题,并且其中将第一操作系统的状态数据复制到数据存储设备还包括在计算设备空闲时复制状态数据。
[0046]示例14包括示例1-13中任一项的主题,并且其中数据存储设备包括硬盘驱动器、固态驱动器或嵌入式闪速存储器模块。
[0047]示例15包括示例1-14中任一项的主题,并且还包括在执行第一操作系统之前将主存储器的部分预留为预留存储器区域的存储器预留模块。
[0048]示例16包括示例1-15中任一项的主题,并且其中预留存储器的部分包括使用计算设备的固件来预留存储器的部分。
[0049]示例17包括一种用于在操作系统之间转变的方法,该方法包括通过计算设备执行计算设备的第一操作系统;通过计算设备在执行第一操作系统时接收操作系统切换事件;通过计算设备响应于接收到操作系统切换事件而将第一操作系统的状态数据复制到计算设备的预留存储器区域;通过计算设备响应于将状态数据复制到预留存储器区域而执行计算设备的第二操作系统;以及通过计算设备响应于执行第二操作系统而将第一操作系统的状态数据复制到计算设备的数据存储设备。
[0050]示例18包括示例17的主题,并且还包括通过计算设备在执行第二操作系统时接收第二操作系统切换事件;通过计算设备响应于接收到第二操作系统切换事件而将第二操作系统的状态数据复制到预留存储器区域;通过计算设备响应于复制第二操作系统的状态数据而第二次执行第一操作系统;以及通过计算设备响应于第二次执行第一操作系统而将第二操作系统的状态数据复制到数据存储设备。
[0051]示例19包括示例17和18中任一项的主题,并且其中接收操作系统切换事件包括响应于系统事件而接收操作系统切换事件。
[°°52]示例20包括示例17-19中任一项的主题,并且其中接收操作系统切换事件包括响应于用户选择而接收操作系统切换事件。
[0053]示例21包括示例17-20中任一项的主题,并且其中接收操作系统切换事件包括接收硬件切换选择。
[0054]示例22包括示例17-21中任一项的主题,并且其中接收操作系统切换事件包括接收软件切换选择。
[°°55] 示例23包括示例17-22中任一项的主题,并且还包括通过计算设备响应于接收到操作系统切换事件而进入休眠电力管理状态。
[0056]示例24包括示例17-23中任一项的主题,并且其中将第一操作系统的状态数据复制到预留存储器区域包括:拦截指向数据存储设备的一个或多个I/o操作;以及将一个或多个I/o操作路由到预留存储器区域。
[0057]示例25包括示例17-24中任一项的主题,并且其中拦截一个或多个I/O操作包括拦截指向由数据存储设备存储的休眠文件的一个或多个I/o操作。
[0058]示例26包括示例17-25中任一项的主题,并且其中拦截一个或多个I/O操作包括使用第一操作系统的过滤器驱动器来拦截一个或多个I/o操作。
[0059]示例27包括示例17-26中任一项的主题,并且其中执行第二操作系统包括从由数据存储设备存储的休眠文件加载第二操作系统。
[0060]示例28包括示例17-27中任一项的主题,并且其中将第一操作系统的状态数据复制到数据存储设备包括与执行第二操作系统同时期地复制第一操作系统的状态数据。
[0061]示例29包括示例17-28中任一项的主题,并且其中执行第二操作系统包括与将第一操作系统的状态数据复制到数据存储设备同时期地执行应用。
[0062]示例30包括示例17-29中任一项的主题,并且其中将第一操作系统的状态数据复制到数据存储设备还包括在计算设备空闲时复制状态数据。
[0063]示例31包括示例17-30中任一项的主题,并且其中将第一操作系统的状态数据复制到数据存储设备包括将第一操作系统的状态数据复制到计算设备的硬盘驱动器、固态驱动器或嵌入式闪速存储器模块。
[0064]示例32包括示例17-31中任一项的主题,并且还包括通过计算设备在执行第一操作系统之前将计算设备的存储器的部分预留为预留存储器区域。
[0065]示例33包括示例17-32中任一项的主题,并且其中预留存储器的部分包括使用计算设备的固件来预留存储器的部分。
[0066]示例34包括一种计算设备,其包括处理器;以及在其中存储多个指令的存储器,所述指令在由处理器执行时使计算设备执行示例17-33中任一项的方法。
[0067]示例35包括一种或多种机器可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行而导致计算设备执行示例17-33中任一项的方法。
[0068]示例36包括一种计算设备,其包括用于执行示例17-33中任一项的方法的构件(means)ο
[0069]示例37包括一种用于在操作系统之间转变的计算设备,该计算设备包括用于执行计算设备的第一操作系统的构件;用于在执行第一操作系统时接收操作系统切换事件的构件;用于响应于接收到操作系统切换事件而将第一操作系统的状态数据复制到计算设备的预留存储器区域的构件;用于响应于将状态数据复制到预留存储器区域而执行计算设备的第二操作系统的构件;以及用于响应于执行第二操作系统而将第一操作系统的状态数据复制到计算设备的数据存储设备的构件。
[0070]示例38包括示例27的主题,并且还包括用于在执行第二操作系统时接收第二操作系统切换事件的构件;用于响应于接收到第二操作系统切换事件而将第二操作系统的状态数据复制到预留存储器区域的构件;用于响应于复制第二操作系统的状态数据而第二次执行第一操作系统的构件;以及用于响应于第二次执行第一操作系统而将第二操作系统的状态数据复制到数据存储设备的构件。
[0071]示例39包括示例37和38中任一项的主题,并且其中用于接收操作系统切换事件的构件包括用于响应于系统事件而接收操作系统切换事件的构件。
[0072]示例40包括示例37-39中任一项的主题,并且其中用于接收操作系统切换事件的构件包括用于响应于用户选择而接收操作系统切换事件的构件。
[0073]示例41包括示例37-40中任一项的主题,并且其中用于接收操作系统切换事件的构件包括用于接收硬件切换选择的构件。
[0074]示例42包括示例37-41中任一项的主题,并且其中用于接收操作系统切换事件的构件包括用于接收软件切换选择的构件。
[0075]示例43包括示例37-42中任一项的主题,并且还包括用于响应于接收到操作系统切换事件而进入休眠电力管理状态的构件。
[0076]示例44包括示例37-43中任一项的主题,并且其中用于将第一操作系统的状态数据复制到预留存储器区域的构件包括用于拦截指向数据存储设备的一个或多个I/O操作的构件;以及用于将一个或多个I/o操作路由到预留存储器区域的构件。
[0077]示例45包括示例37-44中任一项的主题,并且其中用于拦截一个或多个I/O操作的构件包括用于拦截指向由数据存储设备存储的休眠文件的一个或多个I/o操作的构件。
[0078]示例46包括示例37-45中任一项的主题,并且其中用于拦截一个或多个I/O操作的构件包括用于使用第一操作系统的过滤器驱动器来拦截一个或多个I/o操作的构件。
[0079]示例47包括示例37-46中任一项的主题,并且其中用于执行第二操作系统的构件包括用于从由数据存储设备存储的休眠文件加载第二操作系统的构件。
[0080]示例48包括示例37-47中任一项的主题,并且其中用于将第一操作系统的状态数据复制到数据存储设备的构件包括用于与执行第二操作系统同时期地复制第一操作系统的状态数据的构件。
[0081]示例49包括示例37-48中任一项的主题,并且其中用于执行第二操作系统的构件包括用于与将第一操作系统的状态数据复制到数据存储设备同时期地执行应用的构件。
[0082]示例50包括示例37-49中任一项的主题,并且其中用于将第一操作系统的状态数据复制到数据存储设备的构件还包括用于在计算设备空闲时复制状态数据的构件。
[0083]示例51包括示例37-50中任一项的主题,并且其中用于将第一操作系统的状态数据复制到数据存储设备的构件包括用于将第一操作系统的状态数据复制到计算设备的硬盘驱动器、固态驱动器或嵌入式闪速存储器模块的构件。
[0084]示例52包括示例37-51中任一项的主题,并且还包括用于在执行第一操作系统之前将计算设备的存储器的部分预留为预留存储器区域的构件。
[0085]示例53包括示例37-52中任一项的主题,并且其中用于预留存储器的部分的构件包括用于使用计算设备的固件来预留存储器的部分的构件。
【主权项】
1.一种用于在操作系统之间转变的计算设备,所述计算设备包括: 主存储器,其包括预留存储器区域; 数据存储设备;以及 切换事件模块,其通过计算设备在第一操作系统的执行期间接收操作系统切换事件以引起从第一操作系统向第二操作系统的转变; 其中第一操作系统包括响应于接收到操作系统切换事件而将第一操作系统的状态数据复制到预留存储器区域的第一预留复制模块; 第二操作系统包括在第二操作系统的执行期间将第一操作系统的状态数据复制到数据存储设备的第一写出模块;并且 切换事件模块还响应于状态数据向预留存储器区域的复制而执行第二操作系统。2.权利要求1的计算设备,其中: 切换事件模块还在第二操作系统的执行期间接收第二操作系统切换事件; 第二操作系统还包括响应于接收到第二操作系统切换事件而将第二操作系统的状态数据复制到预留存储器模块的第二预留复制模块; 切换事件模块还响应于第二操作系统的状态数据的复制而第二次执行第一操作系统;并且 第一操作系统还包括在第一操作系统的第二执行期间将第二操作系统的状态数据复制到数据存储设备的第二写出模块。3.权利要求1的计算设备,其中接收操作系统切换事件包括响应于系统事件而接收操作系统切换事件或者响应于用户选择而接收操作系统切换事件。4.权利要求3的计算设备,其中接收操作系统切换事件包括接收硬件切换选择或者接收软件切换选择。5.权利要求1-4中任一项的计算设备,其中切换事件模块还响应于接收到操作系统切换事件而使计算设备进入休眠电力管理状态。6.权利要求1-4中任一项的计算设备,其中将第一操作系统的状态数据复制到预留存储器区域包括: 拦截指向数据存储设备的一个或多个I/O操作;以及 将一个或多个I/O操作路由到预留存储器区域。7.权利要求6的计算设备,其中拦截一个或多个I/O操作包括拦截指向由数据存储设备存储的休眠文件的一个或多个I/O操作。8.权利要求6的计算设备,其中拦截一个或多个I/O操作包括使用第一操作系统的过滤器驱动器来拦截一个或多个I/O操作。9.权利要求1-4中任一项的计算设备,其中执行第二操作系统包括从由数据存储设备存储的休眠文件加载第二操作系统。10.权利要求1-4中任一项的计算设备,其中第二操作系统还与第一操作系统的状态数据向数据存储设备的复制同时期地执行应用。11.权利要求1-4中任一项的计算设备,其中将第一操作系统的状态数据复制到数据存储设备还包括在计算设备空闲时复制状态数据。12.权利要求1-4中任一项的计算设备,其中数据存储设备包括硬盘驱动器、固态驱动器或嵌入式闪速存储器模块。13.权利要求1-4中任一项的计算设备,还包括在执行第一操作系统之前将主存储器的部分预留为预留存储器区域的存储器预留模块。14.权利要求13的计算设备,其中预留存储器的部分包括使用计算设备的固件来预留存储器的部分。15.—种用于在操作系统之间转变的方法,所述方法包括: 通过计算设备执行计算设备的第一操作系统; 通过计算设备在执行第一操作系统时接收操作系统切换事件; 通过计算设备响应于接收到操作系统切换事件而将第一操作系统的状态数据复制到计算设备的预留存储器区域; 通过计算设备响应于将状态数据复制到预留存储器区域而执行计算设备的第二操作系统;以及 通过计算设备响应于执行第二操作系统而将第一操作系统的状态数据复制到计算设备的数据存储设备。16.权利要求15的方法,还包括: 通过计算设备在执行第二操作系统时接收第二操作系统切换事件; 通过计算设备响应于接收到第二操作系统切换事件而将第二操作系统的状态数据复制到预留存储器区域; 通过计算设备响应于复制第二操作系统的状态数据而第二次执行第一操作系统;以及通过计算设备响应于第二次执行第一操作系统而将第二操作系统的状态数据复制到数据存储设备。17.权利要求15的方法,其中接收操作系统切换事件包括响应于用户选择而接收操作系统切换事件,其中接收操作系统切换事件包括接收硬件切换选择。18.权利要求15的方法,还包括通过计算设备响应于接收到操作系统切换事件而进入休眠电力管理状态。19.权利要求15的方法,其中将第一操作系统的状态数据复制到预留存储器区域包括: 拦截指向数据存储设备的一个或多个I/O操作;以及 将一个或多个I/O操作路由到预留存储器区域。20.权利要求15的方法,其中: 将第一操作系统的状态数据复制到数据存储设备包括与执行第二操作系统同时期地复制第一操作系统的状态数据;并且 执行第二操作系统包括与将第一操作系统的状态数据复制到数据存储设备同时期地执行应用。21.权利要求15的方法,其中: 将第一操作系统的状态数据复制到数据存储设备包括与执行第二操作系统同时期地复制第一操作系统的状态数据;并且 将第一操作系统的状态数据复制到数据存储设备还包括在计算设备空闲时复制状态数据。22.权利要求15的方法,还包括通过计算设备在执行第一操作系统之前将计算设备的存储器的部分预留为预留存储器区域。23.—种计算设备,包括: 处理器;以及 在其中存储多个指令的存储器,所述指令在由处理器执行时使计算设备执行权利要求15-22中任一项的方法。24.—种或多种机器可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行而导致计算设备执行权利要求15-22中任一项的方法。25.—种计算设备,其包括用于执行权利要求15-22中任一项的方法的构件。
【文档编号】G06F9/44GK105874428SQ201580003799
【公开日】2016年8月17日
【申请日】2015年1月30日
【发明人】M.A.罗思曼, V.J.齐默, Z.尤
【申请人】英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1