《用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换的制作方法》由会员分享,可在线阅读,更多相关《用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换的制作方法(5页珍藏版)》请在金锄头文库上搜索。
1、用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换的制作方法专利名称:用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换的制作方法技术领域:本发明一般地涉及个人计算机和共享类似架构的设备,并且更特别地涉及用于在计算设备内的多个非虚拟化的多操作系统的环境中或单个计算机操作会话或上下文内管理、激活以及控制存储器资源的方法。背景技术:如今,对包括所谓的膝上型计算机和笔记本计算机的PC (个人计算机)的使用正在日益普通,并且计算机本身具有增加的功率和复杂性以及减少的热功率。绝大多数的PC都具有控制软件,例如OS (操作系统),诸如 Microsoft Windows Vista 或类似
2、的商业产品。由于需要进行设计权衡,OS的很多变种大多是可用的。特别地,针对具有增加的速度(尤其是操作和加载时间的速度)的0 对)有限的能力来权衡具有伴随复杂性的特征丰富性和大小。因此,已经存在在计算机内提供多OS使用的需要,并且已经使用了每个都具有其自己的权衡的各种方法。在2009年3月20日提交的美国临时申请系列号61/210,578中公开的一种方法提供了非虚拟化环境中的OS互换。当实现此类系统时,存在对增强存储器管理的需要以避免或减轻系统存储器在OS 之间不灵活的划分。发明内容本发明的实施例除其他之外在探寻对多OS (操作系统)的支持中提供了用于提供 OS存储器恢复辅助的方法。实施例提供了
3、一种用于针对数据通信操作计算机的方法以及还有实现该方法的设备。此外,提供了用于采用本发明的程序产品和其他装置。根据本发明的一个方面,本发明的实施例可以提供将系统存储器划分为三个页分区、创建(一个或多个)页表、使得各个存储器分区对于至少两个OS可见、使得与一个OS相关的某些页可由其他OS使用,以及换出页存储器,使得在之前的上下文恢复时可以借页并且之后复原(resinstate)页。通过实现本发明提供的或源自实现本发明的优势和/或特征是可以在多个OS(通常是两个0S,但是可选是三个或更多OS)之间重新部署存储器,而无需冗长的重新启动时间或没有使用虚拟化技术中的固有劣势。因而,存在对存储器资源的改进
4、使用的是此类系统,例如 Phoenix Technologies Ltd 的 Hyperspace 固件和软件产品。在结合以下附图审阅本发明的以下详细描述时,本发明的前述和相关优势和特征将变得更好理解和清楚,附图被合并在说明书中并且构成其一部分,附图示出了本发明的实施例并且其中相同的标号表示相同的元素,并且在附图中图1是根据本发明的被配置为实现安全性功能的电子设备的示意性框图; 图2是示出了在本发明的一个特定实施例中受操纵的存储器的图; 图3和图4共同是进一步详细地示出了在实现本发明的实施例中执行的某些步骤的概览的稍微更详细的流程图5是示出了可以如何将本发明的示例性实施例编码到计算机介质或媒介
5、上的图示;以及图6是示出了可以如何使用电磁波对本发明的示例性实施例编码、传输、接收并解码的图示。具体实施例方式呈现在附图中示出的多个组件以向本领域技术人员提供本发明的完善的、有效的公开。对公知组件的描述不包括在该描述中,从而不模糊本公开或解除或否则减少本发明的新颖性以及因此提供的主要益处。现在将参考附图描述本发明的示例性实施例。图1是根据本发明的被配置为实现安全性功能的电子设备的示意性框图。在示例性实施例中,电子设备10可以被实现为个人计算机,例如桌面计算机、膝上型计算机、平板PC或其他合适的计算设备。尽管描述概括了个人计算机的操作,但是本领域技术人员将理解电子设备10可以被实现为PDA、无线
6、通信设备(例如蜂窝电话)、嵌入式控制器或设备(例如,机顶盒)、打印设备或其他合适的设备或它们的组合并且适于对本发明进行操作或与本发明进行互操作。电子设备10可以包括至少一个处理器或CPU (中央处理单元)12,被配置为控制电子设备10的总体操作。类似的控制器或MPU (微处理器单元)是普通的。通常可以通过总线13 (诸如FSB (前端总线)将处理器12耦合至总线控制器14,诸如北桥芯片。总线控制器14通常可以为读写系统存储器16 (诸如RAM (随机访问存储器)提供接口。在普通操作中,CPU 12可以从系统存储器16获取计算机指令(也称作计算机指令代码,在图1中未示出)。CPU继而可以解释获取
7、的计算机指令并且操作以解释指令,从而控制电子设备10的操作。对CPU、系统存储器和通常包括OS (操作系统)代码和其他软件的计算机指令的此类使用在计算领域中是公知的。总线控制器14也可以耦合至系统总线18,例如在典型的htel 类型实施例中是 DMI (直接媒体接口)。耦合至DMI 18的可以是所谓的南桥芯片,诸如htel ICH8 (输入 /输出控制器集线器类型8)芯片M。南桥芯片M通常可以合并第一 NIC (网络接口控制器)32,诸如1000 BASE-T类型的IEEE 802.3 (电气与电子工程师协会标准号802. 3)接口,其连接至8PC8 31 (8个位置、 8个触点)类型的有线网
8、络连接器。8PC8连接器31通俗地称为RJ45端口并且IEEE 802.3 通俗地称为以太网。在典型的实施例中,南桥芯片M可以连接至PCI (外围组件互连)总线22,其继而可以连接至驱动无线收发器71的第二 NIC 66。无线收发器71可以遵照IEEE 802. 11或其他合适标准操作。无线收发器71通常将耦合至某些形式的无线电天线72。而且,通常情况下,南桥芯片M也可以耦合至NVRAM (非易失性随机访问存储器)33。NIC 32和66中之一或两者可以传递用于形成诸如到以太网服务的逻辑网络连接的通信信号。实际上,典型的计算机或类似电子设备10可以具有其他接口,例如,USB (通用串行总线,在
9、图1中未示出)接口,其继而可以连接至(例如Bluetooth 收发器用于本发明一般范围内的其他模式的通信。图2是示出了在本发明的一个特定实施例中受操纵的存储器的图。参考图2,现在遵循对基于X86处理器的计算机中的Linux 类型虚拟存储器管理的所需改变的描述。仅描述了对于一个特定实施例而言需要的改变,假设读者具有Linux 类型虚拟存储器管理软件领域的普通知识。然而,应该指出,描述的某些特征特别适于平台固件中的实现和分发, 因为设想了基本硬件控制实体(诸如页表)的详细改变。在该实现中,存在第一 OS (操作系统),其本质上是类似Linux 的,并且参考名为 “Windows”的0S,其是针对任
10、何非开源所有权的OS (诸如Microsoft Windows 程序产品之一)的通用术语。应该理解,“Windows”是软件黑盒,这意味着如果重新部署存储器资源(不论是虚拟的还是物理的),则在此类重新部署之后使Windows正确运行的仅有方式是在允许执行Windows之前复原存储器内容和/或映射。否则,很可能检测到类似于存储器完整性问题的问题,而不论是否发生假警报。那么,这里是关注于存储器管理在Linux 与Hyperspace 之间的差异的描述。HyperSpace 是将在系统“冷启动”(ACPI状态S5 S0)时启动的第一 0S,并且基于 HyperSpace S5 或 S3 触发器,BI
11、OS 启动 Windows OS。OSM 钩入 BIOS 的化丨 15-E820 服务例程并且传递“LAST_B00T_0S”指示符,使得如果其值是HyperSpace,则将修改的存储器映射(排除HyperSpace存储器)返回给Windows 并且保存HyperSpace硬件/存储器上下文。针对Windows 上下文保存类似的信息。这允许BIOS保持HyperSpace和Windows OS两者的“S3”上下文并且在每个OS的S3恢复操作期间使用它。描述HyperSpace启动-HyperSpace基于Linux 并且继承其所有启动原语。这些原语不仅定义了初始“实模式” OS加载如何发生,而
12、且定义了 “保护模式” OS如何从存储器管理、10管理和进程管理方面建立本身作为控制软件。在早期启动期间,HyperSpace查询 e820映射以发现关于架构特定存储器特性的信息。早期启动组件传播返回响应以按照区域边界和用户/核-空间分割来探察(chart out)存储器。核变量min_l0W_pfn、maX_l0W_ pfn、max_pfn是计算的值。差(max_low_pfn-min_low_pfn)用于描述高存储器区域(0_ HIGHMEM)的起始/结束,max_low_pfn对于正常区域(Z0NE_N0RMAL)是最高可寻址帧,并且针对dma操作(Z0NE_DMA)来处理其余存储器。没
13、有上述特性与提出的e820h改变不同。然而,改变HyperSpace存储器管理以认识由Windows 占用的存储器。该行为对于其页分配 /解分配方案具有影响,但是其是存储器热交换的人工产物,在存储器热交换部分中对其进行讨论。描述了本发明该实施例中的Windwos启动。BIOS e820和OSM改变对于Windows OS是透明的。针对Windows 将HyperSpace占用的存储器区域标记为“保留的”(由BIOS)。 这阻止了 Windows对该区域进行存储器映射。Windows 以总存储器=(总物理存储器-Gfx UMA-BIOS保留的存储器-HyperSpace “保留的”存储器)结束。
14、图3. O示出了在启动后由HyperSpace和Windows 看到的典型(非PAE)物理到虚拟存储器映射。HyperSpace系统上的“OS上下文切换”实现被绑定到OS ACPI “挂起/恢复”和 BIOS固件。系统BIOS利用“Sle印Trap”句柄代码来注册,使得解释到PM_CNT1端口的S3 挂起写入。该句柄代码辅助OSM来确定休眠请求来自于HyperSpace还是Windows 0S,并且使用该信息来“恢复” Windows OS或HyperSpace。注意,挂起序列被绑定到各个OS ACPI 能力。图4. 0描绘了改变的启动/挂起/恢复操作流。非HyperSpace OS可以具有H
15、yperSpace软件组件以促进OS上下文切换。而且, 可以将其绑定到“键盘钩子-特定键”或“桌面UI ”软件组件。基于键盘的“挂起”使用“键”来启动ACPI S3状态。在Windows OS上,这可以是服务或键盘过滤驱动器。在HyperSpace OS上,可以通过i8042驱动器改变来控制“挂起”。基于桌面“UI”的“挂起”涉及对Windows 桌面上的快捷方式的编程,其将具有将 Windows 置于S3的逻辑。“恢复”序列可以是“固件控制的”或“硬件控制的”。在OSM模块中对所有恢复序列模式进行编程,并且所有恢复序列模式依赖于以下事实两个OS是否都处于ACPI S3状态。“固件控制的”恢复
16、可以是“交替的”或“顺序的”。“交替的恢复”模式恢复除了最后挂起的OS之外的0S。“顺序的恢复”模式恢复到最后挂起的0S,这是当前的恢复操作如何运作。该模式有效地关闭了基于S3的OS上下文切换。针对HyperSpace 和Windows,硬件控制的恢复模式将GPIO (通用输入输出)端口绑定到触发启动和/或恢复序列。在恢复序列中,句柄将控制传递给实模式中的OSM入口点,其继续OS恢复。描述了使用热交换存储器的、用于HyperSpace临时存储器增长的技术 在基于x86的平台上,HyperSpace支持热交换存储器特征,其允许从挂起的(S3)Windows 添加到运行(SO) HyperSpace的物理存储器的范围而无需系统重启。针对“热交换存储器”的HyperSpace支持由以下改变组成针对HyperSpace的页管理和e820映射改变启动到HyperSpace的系统确保整个“0S可用存储器”由存储器管理单元映射。该存储器范围包括向Windows OS报告的物理存储器。Windows OS可以是挂起