CN102439573B - 用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换 - Google Patents

用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换 Download PDF

Info

Publication number
CN102439573B
CN102439573B CN201080021893.8A CN201080021893A CN102439573B CN 102439573 B CN102439573 B CN 102439573B CN 201080021893 A CN201080021893 A CN 201080021893A CN 102439573 B CN102439573 B CN 102439573B
Authority
CN
China
Prior art keywords
page
subregion
partition
virtual storage
request
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.)
Expired - Fee Related
Application number
CN201080021893.8A
Other languages
English (en)
Other versions
CN102439573A (zh
Inventor
K.巴德
G.班加
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of CN102439573A publication Critical patent/CN102439573A/zh
Application granted granted Critical
Publication of CN102439573B publication Critical patent/CN102439573B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • 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/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Abstract

公开了用于管理单个计算机等内的存储器多OS的方法、系统、设备和计算机产品。利用BIOS辅助对热交换的OS之间的存储器恢复做出规定,并且符合系统状态管理的ACPI特征以及能够使用而无虚拟化。

Description

用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换
技术领域
本发明一般地涉及个人计算机和共享类似架构的设备,并且更特别地涉及用于在计算设备内的多个非虚拟化的多操作系统的环境中或单个计算机操作会话或上下文内管理、激活以及控制存储器资源的方法。
背景技术
如今,对包括所谓的膝上型计算机和笔记本计算机的PC(个人计算机)的使用正在日益普通,并且计算机本身具有增加的功率和复杂性以及减少的热功率。
绝大多数的PC都具有控制软件,例如OS(操作系统),诸如Microsoft®Windows®Vista®或类似的商业产品。由于需要进行设计权衡,OS的很多变种大多是可用的。特别地,针对具有增加的速度(尤其是操作和加载时间的速度)的(相对)有限的能力来权衡具有伴随复杂性的特征丰富性和大小。
因此,已经存在在计算机内提供多OS使用的需要,并且已经使用了每个都具有其自己的权衡的各种方法。
在2009年3月20日提交的美国临时申请系列号61/210,578中公开的一种方法提供了非虚拟化环境中的OS互换。
当实现此类系统时,存在对增强存储器管理的需要以避免或减轻系统存储器在OS之间不灵活的划分。
发明内容
本发明的实施例除其他之外在探寻对多OS(操作系统)的支持中提供了用于提供OS存储器恢复辅助的方法。
实施例提供了一种用于针对数据通信操作计算机的方法以及还有实现该方法的设备。此外,提供了用于采用本发明的程序产品和其他装置。
根据本发明的一个方面,本发明的实施例可以提供将系统存储器划分为三个页分区、创建(一个或多个)页表、使得各个存储器分区对于至少两个OS可见、使得与一个OS相关的某些页可由其他OS使用,以及换出页存储器,使得在之前的上下文恢复时可以借页并且之后复原(resinstate)页。
通过实现本发明提供的或源自实现本发明的优势和/或特征是可以在多个OS(通常是两个OS,但是可选是三个或更多OS)之间重新部署存储器,而无需冗长的重新启动时间或没有使用虚拟化技术中的固有劣势。因而,存在对存储器资源的改进使用的是此类系统,例如Phoenix® Technologies Ltd的HyperspaceTM固件和软件产品。
附图说明
在结合以下附图审阅本发明的以下详细描述时,本发明的前述和相关优势和特征将变得更好理解和清楚,附图被合并在说明书中并且构成其一部分,附图示出了本发明的实施例并且其中相同的标号表示相同的元素,并且在附图中:
图1是根据本发明的被配置为实现安全性功能的电子设备的示意性框图;
图2是示出了在本发明的一个特定实施例中受操纵的存储器的图;
图3和图4共同是进一步详细地示出了在实现本发明的实施例中执行的某些步骤的概览的稍微更详细的流程图;
图5是示出了可以如何将本发明的示例性实施例编码到计算机介质或媒介上的图示;以及
图6是示出了可以如何使用电磁波对本发明的示例性实施例编码、传输、接收并解码的图示。
具体实施方式
呈现在附图中示出的多个组件以向本领域技术人员提供本发明的完善的、有效的公开。对公知组件的描述不包括在该描述中,从而不模糊本公开或解除或否则减少本发明的新颖性以及因此提供的主要益处。
现在将参考附图描述本发明的示例性实施例。图1是根据本发明的被配置为实现安全性功能的电子设备的示意性框图。
在示例性实施例中,电子设备10可以被实现为个人计算机,例如桌面计算机、膝上型计算机、平板PC或其他合适的计算设备。尽管描述概括了个人计算机的操作,但是本领域技术人员将理解:电子设备10可以被实现为PDA、无线通信设备(例如蜂窝电话)、嵌入式控制器或设备(例如,机顶盒)、打印设备或其他合适的设备或它们的组合并且适于对本发明进行操作或与本发明进行互操作。
电子设备10可以包括至少一个处理器或CPU(中央处理单元)12,被配置为控制电子设备10的总体操作。类似的控制器或MPU(微处理器单元)是普通的。通常可以通过总线13(诸如FSB(前端总线))将处理器12耦合至总线控制器14,诸如北桥芯片。总线控制器14通常可以为读写系统存储器16(诸如RAM(随机访问存储器))提供接口。
在普通操作中,CPU 12可以从系统存储器16获取计算机指令(也称作计算机指令代码,在图1中未示出)。CPU继而可以解释获取的计算机指令并且操作以解释指令,从而控制电子设备10的操作。对CPU、系统存储器和通常包括OS(操作系统)代码和其他软件的计算机指令的此类使用在计算领域中是公知的。
总线控制器14也可以耦合至系统总线18,例如在典型的Intel®类型实施例中是DMI(直接媒体接口)。耦合至DMI 18的可以是所谓的南桥芯片,诸如Intel® ICH8(输入/输出控制器集线器类型8)芯片24。
南桥芯片24通常可以合并第一NIC(网络接口控制器)32,诸如1000 BASE-T类型的IEEE 802.3(电气与电子工程师协会标准号802.3)接口,其连接至8PC8 31(8个位置、8个触点)类型的有线网络连接器。8PC8连接器31通俗地称为RJ45端口并且IEEE 802.3通俗地称为以太网。
在典型的实施例中,南桥芯片24可以连接至PCI(外围组件互连)总线22,其继而可以连接至驱动无线收发器71的第二NIC 66。无线收发器71可以遵照IEEE 802.11或其他合适标准操作。无线收发器71通常将耦合至某些形式的无线电天线72。而且,通常情况下,南桥芯片24也可以耦合至NVRAM(非易失性随机访问存储器)33。
NIC 32和66中之一或两者可以传递用于形成诸如到以太网服务的逻辑网络连接的通信信号。实际上,典型的计算机或类似电子设备10可以具有其他接口,例如,USB(通用串行总线,在图1中未示出)接口,其继而可以连接至(例如)Bluetooth®收发器用于本发明一般范围内的其他模式的通信。
图2是示出了在本发明的一个特定实施例中受操纵的存储器的图。参考图2,现在遵循对基于X86处理器的计算机中的Linux®类型虚拟存储器管理的所需改变的描述。仅描述了对于一个特定实施例而言需要的改变,假设读者具有Linux®类型虚拟存储器管理软件领域的普通知识。然而,应该指出,描述的某些特征特别适于平台固件中的实现和分发,因为设想了基本硬件控制实体(诸如页表)的详细改变。
在该实现中,存在第一OS(操作系统),其本质上是类似Linux®的,并且参考名为“Windows”的OS,其是针对任何非开源所有权的OS(诸如Microsoft®Windows®程序产品之一)的通用术语。应该理解,“Windows”是软件黑盒,这意味着如果重新部署存储器资源(不论是虚拟的还是物理的),则在此类重新部署之后使Windows正确运行的仅有方式是在允许执行Windows之前复原存储器内容和/或映射。否则,很可能检测到类似于存储器完整性问题的问题,而不论是否发生假警报。
那么,这里是关注于存储器管理在Linux®与HyperspaceTM之间的差异的描述。
HyperSpaceTM是将在系统“冷启动”(ACPI状态S5->S0)时启动的第一OS,并且基于HyperSpace S5或S3触发器,BIOS启动Windows® OS。OSM钩入BIOS的Int 15-E820服务例程并且传递“LAST_BOOT_OS”指示符,使得如果其值是HyperSpace,则将修改的存储器映射(排除HyperSpace存储器)返回给Windows®并且保存HyperSpace硬件/存储器上下文。针对Windows®上下文保存类似的信息。这允许BIOS保持HyperSpace和Windows® OS两者的“S3”上下文并且在每个OS的S3恢复操作期间使用它。
描述HyperSpace启动:-HyperSpace基于Linux®并且继承其所有启动原语。这些原语不仅定义了初始“实模式”OS加载如何发生,而且定义了“保护模式”OS如何从存储器管理、IO管理和进程管理方面建立本身作为控制软件。在早期启动期间,HyperSpace查询e820映射以发现关于架构特定存储器特性的信息。早期启动组件传播返回响应以按照区域边界和用户/核-空间分割来探察(chart out)存储器。核变量:min_low_pfn、max_low_pfn、max_pfn是计算的值。差(max_low_pfn-min_low_pfn)用于描述高存储器区域(ZONE_HIGHMEM)的起始/结束,max_low_pfn对于正常区域(ZONE_NORMAL)是最高可寻址帧,并且针对dma操作(ZONE_DMA)来处理其余存储器。没有上述特性与提出的e820h改变不同。然而,改变HyperSpace存储器管理以认识由Windows®占用的存储器。该行为对于其页分配/解分配方案具有影响,但是其是存储器热交换的人工产物,在存储器热交换部分中对其进行讨论。
描述了本发明该实施例中的Windwos启动。BIOS e820和OSM改变对于Windows® OS是透明的。针对Windows®将HyperSpace占用的存储器区域标记为“保留的”(由BIOS)。这阻止了Windows对该区域进行存储器映射。Windows®以总存储器=(总物理存储器-Gfx UMA-BIOS保留的存储器-HyperSpace“保留的”存储器)结束。图3.0示出了在启动后由HyperSpace和Windows®看到的典型(非PAE)物理到虚拟存储器映射。
HyperSpace系统上的“OS上下文切换”实现被绑定到OS ACPI“挂起/恢复”和BIOS固件。系统BIOS利用“SleepTrap”句柄代码来注册,使得解释到PM_CNT1端口的S3挂起写入。该句柄代码辅助OSM来确定休眠请求来自于HyperSpace还是Windows OS,并且使用该信息来“恢复”Windows® OS或HyperSpace。注意,挂起序列被绑定到各个OS ACPI能力。图4.0描绘了改变的启动/挂起/恢复操作流。
非HyperSpace OS可以具有HyperSpace软件组件以促进OS上下文切换。而且,可以将其绑定到“键盘钩子-特定键”或“桌面UI”软件组件。
基于键盘的“挂起”使用“键”来启动ACPI S3状态。在Windows® OS上,这可以是服务或键盘过滤驱动器。在HyperSpace OS上,可以通过i8042驱动器改变来控制“挂起”。
基于桌面“UI”的“挂起”涉及对Windows®桌面上的快捷方式的编程,其将具有将Windows®置于S3的逻辑。“恢复”序列可以是“固件控制的”或“硬件控制的”。在OSM模块中对所有恢复序列模式进行编程,并且所有恢复序列模式依赖于以下事实:两个OS是否都处于ACPI S3状态。“固件控制的”恢复可以是“交替的”或“顺序的”。“交替的恢复”模式恢复除了最后挂起的OS之外的OS。“顺序的恢复”模式恢复到最后挂起的OS,这是当前的恢复操作如何运作。该模式有效地关闭了基于S3的OS上下文切换。针对HyperSpace和Windows,硬件控制的恢复模式将GPIO(通用输入输出)端口绑定到触发启动和/或恢复序列。在恢复序列中,句柄将控制传递给实模式中的OSM入口点,其继续OS恢复。
描述了使用热交换存储器的、用于HyperSpace临时存储器增长的技术:
在基于x86的平台上,HyperSpace支持热交换存储器特征,其允许从挂起的(S3)Windows®添加到运行(S0)HyperSpace的物理存储器的范围而无需系统重启。
针对“热交换存储器”的HyperSpace支持由以下改变组成:针对HyperSpace的页管理和e820映射改变:启动到HyperSpace的系统确保整个“OS可用存储器”由存储器管理单元映射。该存储器范围包括向Windows® OS报告的物理存储器。Windows® OS可以是挂起(S3)或停机(S5)状态;如果其被挂起,那么该存储器应该具有运行的OS快照,该快照包括设备和进程存储器。HyperSpace存储器管理单元针对最高页帧通过整个e820映射进行读取。HyperSpace看到整个机器物理存储器映射,但是修改其存储器管理以仅映射(memmap())来自于HyperSpace“保留的”存储器的页,并且留下其余映射的存储器页而不使用。
这意味着对页帧管理的改变,使得“保留的”Windows®存储器(和相关联的页帧)被HyperSpace页管理代码“初始化但不使用”。这涉及以下内容:
早期mm函数find_max_pfn()看到用于HyperSpace的max_pfn=(Top-x-y)-1M。从OSM/BIOS读取“实际可用物理存储器”并且存储在新变量max_real_pfn中。
将新标志值“PG_hsusable”添加到现有“页”结构(在<linux/mm.h>中定义)。区域或核页表初始化例程将不使用被视作“PG_hsusable”或“PG_skip”的页。具体地,函数page_init()和free_area_init()(mm/page_alloc.c),它们建立区域和页描述符。在该函数执行期间,针对所有页设置默认的“PG_reserved”标志。
需要修改mem_init()(在mm/init_32和mminit_64.c中)函数以在将“PG_reserved”重置为区域特定标志(PG_highmem)时使用max_real_mfn。这确保了所有(页>max_real_mfn)都是“PG_hsusable”的。注意,我们考虑使用“PG_reserved”值,但是决定创建新标志值以避免与现有逻辑的相互混淆。
区域水印和交换到盘的页:Linux®具有用于管理非核页表存储器的三个存储器区域:ZONE_DMA、ZONE_NORMAL和ZONE_HIGHMEM。每个区域具有称作pages_low、pages_min和pages_high的三个水印,这有助于跟踪在OS执行期间区域处于多大压力之下。在存储器初始化期间在函数free_area_init_core()中计算每个区域pages_min的页数量,并且每个区域pages_min的页数量基于页中区域大小的比。每个水印保证每个区域不同的动作。注意,打水印与称作“kswapd”的页调出守护程序(daemon)合作。Kswapd负责以异步的方式换出页到盘/从盘换出页。实现并且由页分配器使用每个区域-页-释放(称作“直接回收”)的同步。
存储器热交换需要对区域和盘交换考虑的以下改变:
Windows®存储器是以128MiB的块“盘保存&交换的”,并且用于扩展ZONE_NORMAL和ZONE_HIGHMEM存储器和/或存储器的任何用户可配置块。
区域水印“达到的”检测逻辑(针对每个区域的所有水印)需要考虑转移到每个区域的自由页池中的“PG_hsusable”页。该动作可以保证页表步进以核实每个区域的“固定和分发的”页。
页分配(mm/page_alloc.c中的_alloc_pages)在低存储器条件时使用利用_alloc_pages_internal()的直接回收路径或kswapd调用。应该实现转移为区域特定“PG_xx”的“PG_hsusable”页并且在调用kswapd或手工进行kswapd的工作之前设置附加的比特掩码“标志=PG_xx|PG_hsinuse”。在将这些页标记为由HyperSpace使用之前,应该确保Windows®分页(paginate)存储器被以页连续方式写入“Windows交换”盘文件。
在HyperSpace挂起(S3)时,虽然处于保护模式中,并且在进程“冷却”之后,page_allocator应该将“PG_hsinuse”页的内容交换到HyperSpace“交换”盘文件上。将对该文件进行读取并且将在HyperSpace恢复序列期间对页进行“恢复”。这确保了将“存储器”重构,正如其在挂起操作之前那样。
图3和图4共同是示出了在实现本发明的一个特定实施例中执行的某些步骤的概览的流程图。与更全面的上面的描述相比,该流程图显示了本发明各个实施例的新颖性,并且某些实施例关注于涉及的步骤。
在步骤300,对系统存储器进行划分。可以针对HS(HyperspaceTM)建立第一分区,针对复杂的、资源密集的和/或黑盒非开源OS(诸如Windows®产品)建立第二分区。第三分区基本上包含整个系统存储器,因此允许Hyperspace系统的低级部分基本上操纵整个系统存储器。
在步骤320,创建页表以将第一页分区映射为第一虚拟存储器分区。Hyperspace OS通常将被加载到第一分区中。
在步骤350,扩展页表以合并用于第二OS(通常是Windwos)的页,或创建并且使用第二页表。这是简化描述,页表可能是复杂的和/或甚至级联的,但是这是对于本发明而言不关键的实现细节。
第一OS(通常是HS)可以被加载到第一分区中并且被设置运行。在步骤360,BIOS截收(field)来自于第一OS(通常是HS)的E820存储器请求,这实际上使(例如)HS能够看到第一分区作为其主要存储器(可用于应用以及更多),但是HS还可以看到包括第二分区的整个第三分区。
第二分区是主要留出用于供第二OS(通常是Windwos)使用的存储器。第二OS可以被加载到第二分区中并且被设置运行。在步骤370,BIOS截收来自于第二OS(通常是Windwos)的E820存储器请求,并且为第二OS制作第二虚拟存储器分区。可以预期第二OS(Windwos)已经被加载到第二分区中。
在步骤380,如第二分区中的某些页被标记为可回收。通常这些页是HSusable的(可由HS用作回收的存储器)。可以预期以该方式标记Windows的某些页,但是很多或大部分不是这样。
在步骤400,第一OS(HS)针对其他存储器进行请求,并且换出来自于第一分区的可回收页。通常这将涉及将页上下文和控制信息写到盘上的存储文件。然而,技术可以随时间改变,并且交换中对文件和盘的使用可以证明不是关键的。然而,必须将Windwos“拥有”的存储器换出,使得其可以在稍后被复原。
在步骤410,将换出的页移交给第一OS,可以预期第一OS向该页进行写入(据推测如果HS请求一个或多个可回收的存储器页,该请求源自对所涉及存储器进行写入的意图)。
然后,在步骤420,存在对第二OS(Windwos)重新激活的请求。为此,在步骤430,存在对保存的硬件上下文的复原,并且从存储文件复原回收的页内容。
在步骤440,将控制传递给第二OS。
本领域技术人员中的编程者应该明显地如何扩展上述过程以提供存储器回收的其他扩展形式。
关于图5,可以将合并到电子设备10中的计算机指令作为制造的固件和/或软件计算机产品510使用具有诸如通过使用存储记录器520记录在其上的指令的各种可能介质530来分发。经常在与部署本发明的那些产品一样复杂的产品中,在分发和制造相关产品中,可以使用不止一个介质。为了清楚在图5中仅示出了一个介质,但是可以使用不止一个介质,并且可以在多个介质中分割单个计算机产品。
图6示出了可以如何使用电磁波对本发明的示例性实施例进行编码、传输、接收并解码。
关于图6,此外,并且尤其是自从因特网使用增加时起,可以通过将计算机产品610编码为被调制为波的信号来分发它们。继而,所得波形可以由发射器640传输,作为有形调制的电磁载波650传播并且由接收器660接收。在接收时,可以对它们进行解调并且信号解码为存储器或其他存储设备中的计算机产品611的其它版本或副本,该其他存储设备是第二电子设备11的一部分并且通常本质上类似于电子设备10。
也可以使用其他拓扑和/或设备来构造本发明的替代实施例。上述实施例是示例性的而不是限制,并且本发明的界定应该根据权利要求书确定。尽管已经在上面详细地描述了本发明的优选实施例,但是应该清楚地理解,在此教导的基本发明概念的很多变型和/或修改(对于本领域技术人员而言可能是清楚的)将仍旧落在本发明的精神和范围内,如所附权利要求书所限定的那样。

Claims (11)

1.一种操作计算机的方法,包括:
将包括多个系统存储器页的系统存储器划分为第一、第二和第三页分区,其中所述第一和所述第二页分区是互斥的,并且进一步地,其中所述第一和所述第二页分区是所述第三页分区的子集;
创建第一页表以将所述第一页分区映射为第一虚拟存储器分区;
执行下列动作:
更新所述第一页表以将所述第二页分区映射为第二虚拟存储器分区;以及
创建第二页表以将所述第二页分区映射为第二虚拟存储器分区;
根据来自于被加载到所述第一页分区的第一OS(操作系统)的第一存储器服务请求,使所述第一虚拟存储器分区可见;
根据来自于也被加载到所述第二页分区的第二OS的第二存储器服务请求,使所述第二虚拟存储器分区可见;
将所述第二虚拟存储器分区内的页的子集标记为可由所述第一OS回收以产生标记的页的集合;
响应于所述第一OS针对相对于所述系统存储器而言的其他存储器的请求:
将从所述标记的页的集合选择的至少一个可回收页换出到存储文件,并且所述第一OS向所述至少一个可回收页进行写入;以及
响应于重新激活所述第二OS的请求,复原保存的硬件上下文、从所述存储文件复原所述至少一个可回收页并且将控制字段传递给所述第二OS。
2.根据权利要求1所述的方法,其中:
所述第一OS是开源OS并且所述第二OS不是开源OS。
3.根据权利要求1所述的方法,其中:
重新激活所述第二OS的所述请求是ACPI(高级配置和功率接口)系统状态改变请求。
4.根据权利要求1所述的方法,其中:
所述存储文件是盘文件。
5.根据权利要求4所述的方法,其中:
所述保存的硬件上下文包括多个ACPI唤醒矢量。
6.一种操作计算机的设备,包括:
用于将包括多个系统存储器页的系统存储器划分为第一、第二和第三页分区的装置,其中所述第一和所述第二页分区是互斥的,并且进一步地,其中所述第一和所述第二页分区是所述第三页分区的子集;
用于创建第一页表以将所述第一页分区映射为第一虚拟存储器分区的装置;
用于执行下列动作的装置,包括:
用于更新所述第一页表以将所述第二页分区映射为第二虚拟存储器分区的装置;以及
用于创建第二页表以将所述第二页分区映射为第二虚拟存储器分区的装置;
用于根据来自于被加载到所述第一页分区的第一OS(操作系统)的第一存储器服务请求,使所述第一虚拟存储器分区可见的装置;
用于根据来自于也被加载到所述第二页分区的第二OS的第二存储器服务请求,使所述第二虚拟存储器分区可见的装置;
用于将所述第二虚拟存储器分区内的页的子集标记为可由所述第一OS回收以产生标记的页的集合的装置;
用于响应于所述第一OS针对相对于所述系统存储器而言的其他存储器的请求的装置:
用于将从所述标记的页的集合选择的至少一个可回收页换出到存储文件,并且所述第一OS向所述至少一个可回收页进行写入的装置;以及
用于响应于重新激活所述第二OS的请求,复原保存的硬件上下文、从所述存储文件复原所述至少一个可回收页并且将控制字段传递给所述第二OS的装置。
7.根据权利要求6所述的设备,其中:
所述第一OS是开源OS并且所述第二OS不是开源OS。
8.根据权利要求6所述的设备,其中:
重新激活所述第二OS的所述请求是ACPI(高级配置和功率接口)系统状态改变请求。
9.根据权利要求6所述的设备,其中:
所述存储文件是盘文件。
10.根据权利要求9所述的设备,其中:
所述保存的硬件上下文包括多个ACPI唤醒矢量。
11.一种操作计算机的方法,包括:
将信号调制到印入有形介质中的电磁载波上,或对来自于电磁载波的信号进行解调的动作,所述信号具有编码于其中的指令,所述指令在由至少一个处理器执行时使得所述至少一个处理器按照包括以下动作的步骤操作:
将包括多个系统存储器页的系统存储器划分为第一、第二和第三页分区,其中所述第一和所述第二页分区是互斥的,并且进一步地,其中所述第一和所述第二页分区是所述第三页分区的子集;
创建第一页表以将所述第一页分区映射为第一虚拟存储器分区;
执行下列动作:
更新所述第一页表以将所述第二页分区映射为第二虚拟存储器分区;以及
创建第二页表以将所述第二页分区映射为第二虚拟存储器分区;
根据来自于被加载到所述第一页分区的第一OS(操作系统)的第一存储器服务请求,使所述第一虚拟存储器分区可见;
根据来自于也被加载到所述第二页分区的第二OS的第二存储器服务请求,使所述第二虚拟存储器分区可见;
将所述第二虚拟存储器分区内的页的子集标记为可由所述第一OS回收以产生标记的页的集合;
响应于所述第一OS针对相对于所述系统存储器而言的其他存储器的请求:
将从所述标记的页的集合选择的至少一个可回收页换出到存储文件,并且所述第一OS向所述至少一个可回收页进行写入;以及
响应于重新激活所述第二OS的请求,复原保存的硬件上下文、从所述存储文件复原所述至少一个可回收页并且将控制字段传递给所述第二OS。
CN201080021893.8A 2009-03-20 2010-03-16 用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换 Expired - Fee Related CN102439573B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US21057809P 2009-03-20 2009-03-20
US61/210578 2009-03-20
US12/459,963 US8489847B2 (en) 2009-03-20 2009-07-10 Inter operating system memory hotswap to support memory growth in a non-virtualized system
US12/459963 2009-07-10
PCT/US2010/027428 WO2010107755A1 (en) 2009-03-20 2010-03-16 Inter operating system memory hotswap to support memory growth in a non-virtualized system

Publications (2)

Publication Number Publication Date
CN102439573A CN102439573A (zh) 2012-05-02
CN102439573B true CN102439573B (zh) 2014-07-16

Family

ID=42738621

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201080012607.1A Expired - Fee Related CN102369510B (zh) 2009-03-20 2010-03-16 使用存储器分段和基于acpi的上下文切换加载操作系统
CN201080021893.8A Expired - Fee Related CN102439573B (zh) 2009-03-20 2010-03-16 用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201080012607.1A Expired - Fee Related CN102369510B (zh) 2009-03-20 2010-03-16 使用存储器分段和基于acpi的上下文切换加载操作系统

Country Status (6)

Country Link
US (2) US8327174B2 (zh)
EP (2) EP2409227A1 (zh)
KR (2) KR101620655B1 (zh)
CN (2) CN102369510B (zh)
BR (1) BRPI1006211B1 (zh)
WO (2) WO2010107757A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
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 インテル・コーポレーション 動作コンテキストの切り替え
KR101646425B1 (ko) * 2011-10-28 2016-08-05 인텔 코포레이션 동작 콘텍스트들 사이의 스위칭
WO2013162531A1 (en) * 2012-04-25 2013-10-31 Hewlett-Packard Development Company L.P. Dynamic memory allocation
WO2014018037A1 (en) * 2012-07-26 2014-01-30 Hewlett Packard Development Company, L. P. Periodic access of a hardware resource
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 上海捷勃特机器人有限公司 电子设备及操作电子设备的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387989A (zh) * 2008-10-29 2009-03-18 北京世纪红山科技有限公司 构建基于分区管理的虚拟存储设备的计算机系统及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387989A (zh) * 2008-10-29 2009-03-18 北京世纪红山科技有限公司 构建基于分区管理的虚拟存储设备的计算机系统及方法

Also Published As

Publication number Publication date
US8489847B2 (en) 2013-07-16
KR101602991B1 (ko) 2016-03-11
KR20120000089A (ko) 2012-01-03
CN102369510B (zh) 2016-06-22
US20100241821A1 (en) 2010-09-23
WO2010107757A1 (en) 2010-09-23
EP2409227A1 (en) 2012-01-25
WO2010107755A1 (en) 2010-09-23
BRPI1006211A2 (pt) 2018-03-13
BRPI1006211B1 (pt) 2020-07-28
KR101620655B1 (ko) 2016-05-12
CN102439573A (zh) 2012-05-02
EP2409234B1 (en) 2016-09-28
CN102369510A (zh) 2012-03-07
US20100241839A1 (en) 2010-09-23
EP2409234A1 (en) 2012-01-25
US8327174B2 (en) 2012-12-04
KR20110130435A (ko) 2011-12-05

Similar Documents

Publication Publication Date Title
CN102439573B (zh) 用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换
CN102473089B (zh) 用于双操作系统的文件系统
CN100416501C (zh) 采用包括配置成清除内存的内存控制器的信赖的执行环境的计算机系统
CN103377063B (zh) 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
CN101449240B (zh) 在运行中的操作系统下启动系统管理程序
CN103210395B (zh) 与客户端虚拟机交互的技术
CN107430424B (zh) 针对改进的混合睡眠功率管理的技术
CN109791515B (zh) 用于安全恢复主机系统代码的系统和方法
US8799691B2 (en) Hierarchical power management
CN108763099A (zh) 系统的启动方法、装置、电子设备和存储介质
CN109478135A (zh) 优化的uefi重新引导过程
US20110197055A1 (en) Firmware storage medium with customized image
CN102591675A (zh) 使用共享存储块管理多软件镜像的方法和系统
EP2905700B1 (en) Operating system recovery method, apparatus and terminal device
CN114222975A (zh) 使用存储器孔径冲刷顺序的数据保存
CN103412822A (zh) 操作非易失性内存和数据操作的方法和相关装置
CN114661410A (zh) 高效更新安全仲裁模式模块的设备、系统和方法
CN114238236A (zh) 共享文件的访问方法、电子设备及计算机可读存储介质
CN112384893A (zh) 多个热补丁的资源上高效的部署
CN105844151B (zh) 一种文件存储保护实现方法和系统
US11775648B2 (en) Containerized metadata with UEFI firmware file system
CN101091168B (zh) 实现多阶段软件的方法和装置
US20090240933A1 (en) Computer system architecture and operating method for the operating system thereof
CN115981795A (zh) 一种在安卓设备上通过容器实现系统隔离的方法
Reitz An implementation of multiprogramming and process management for a security kernel operating system

Legal Events

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

Granted publication date: 20140716

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