执行进程的迁移的制作方法

文档序号:9769167阅读:449来源:国知局
执行进程的迁移的制作方法
【技术领域】
[0001]本文所描述的实施方案一般涉及在平台之间迀移当前执行的应用。
【背景技术】
[0002]除非在此处进行说明,否则此处所描述的材料不是本申请权利要求的现有技术并且不因包含在该部分中而承认是现有技术。
[0003]随着基于云计算的快速发展,数据中心负责提供用于连续扩展客户端的量的特别大量任务的高效处理。因此,数据中心负担着平衡功率使用、硬件额定负荷、资源负荷等的需求;换言之,为了高效地且有效地实施它们的处理使命,数据中心需要持续地追求改进的负荷平衡解决方案。作为这种解决方案的示例,数据中心在执行且支持的体系结构类型方面是多样化的。例如,其中的处理器可以基于处理需求(例如速度对强度)来实现不同类型的指令集体系结构(ISA)。
[0004]概述
[0005]在一个示例性实施例中,一种在数据中心中实时迀移的方法,可以包括:JIT(SP时)编译配置为在源指令集体系结构和目的地指令集体系结构上执行的进程;将所述源指令集体系结构和所述目的地指令集体系结构上的进程的变量和地址堆栈映射成变量和地址堆栈的标记形式;以及将变量和地址堆栈的标记形式映射到目的地指令集体系结构上。
[0006]在另一示例性实施例中,一种迀移进程的方法可以包括:在第一指令集体系结构上执行进程时,编译进程;在进程在第一指令集体系结构上执行时,生成进程的至少一些函数的函数映射;在进程在第一指令集体系结构上执行时,生成进程的至少一些变量的变量映射;将来自函数映射的函数映射到进程的函数堆栈;以及将来自变量映射的变量映射到第二指令集体系结构上的进程的对应地址。
[0007]在又一示例性实施例中,非暂态计算机可读介质可以存储可执行指令,当执行时,可执行指令可以使虚拟机管理器将可以在第一平台和第二平台上执行的细化二元(thinbinary)的至少一个进程进行JIT编译,将细化二元的至少所述进程的函数地址和函数堆栈解引用(dereference),将细化二元的至少所述进程的变量地址解引用,以及生成函数映射以将对应于进程的细化二元表示的函数和变量连接到第一平台和第二平台上的等同的指针和地址。
[0008]在又一示例性实施例中,非暂态计算机可读介质可以存储可执行指令,当执行时,所述可执行指令可以使一个或多个处理器通过如下操作来迀移执行的应用:将来自可以执行细化二元中所包含的至少一个进程的第一指令集体系结构和第二指令集体系结构的低层级字典散列表收集到函数映射集合中;将来自第一指令集体系结构和第二指令集体系结构的低层级重命名散列表收集到变量映射集合中;基于函数映射将来自第一指令集体系结构的函数堆栈转移到第二指令集体系结构;基于变量映射将来自第一指令集体系结构的变量转移到第二指令集体系结构。
[0009]前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细说明,除了上文所描述的示例性的方面、实施例和特征之外,另外的方面、实施例和特征将变得清晰可见。
【附图说明】
[0010]在下面的详细说明中,仅因为根据下面的详述各个改变和变型例对于本领域技术人员而言将变得显而易见。在不同的图中使用相同的附图标记来指示类似或相同的项。
[0011]图1示出了依照本文所描述的至少一些实施例布置的可以实现迀移执行进程的示例性的数据中心架构;
[0012]图2示出了依照本文所描述的至少一些实施例布置的图示出用于迀移执行进程的示例的数据流的框图;
[0013]图3示出了依照本文所描述的至少一些实施例布置的用于迀移执行进程的操作的示例的处理流程、和子流程;以及
[0014]图4示出了依照本文所描述的至少一些实施例布置的图示出可以实现本文所描述的各个示例的解决方案的示例的计算设备的框图。
【具体实施方式】
[0015]在下面的详细说明中,将参考附图,附图构成了详细说明的一部分。在附图中,除非上下文指出,否则相似的符号通常表示相似的部件。在详细说明、附图和权利要求中所描述的示例性实施例不意在限制。可以使用其它实施例,并且可以做出其它改变,而不偏离本文呈现的主题的精神或范围。将易于理解的是,如本文大致描述且如图中所图示的,本公开的方案能够以各种不同配置来布置、替代、组合、分离和设计,所有这些都在本文中明确地构思出。
[0016]图1示出了依照本文所描述的至少一些实施例布置的可以实现迀移执行进程的示例的数据中心架构100。如图所示,数据中心架构100可以代表云计算环境且包括平台A102、平台B 104和实时迀移器106。
[0017]平台A102和平台B 104(可以或者可以不包含在相同的硬件基础结构中)均可代表了配置为利用彼此不同的相应的指令集体系结构(ISA)来执行应用的平台。如本文所提到的,平台可以是指软件体系结构,甚至硬件体系结构;并且因此,任一个或两个可以被构思用于本文所描述的实施例。根据本文所描述的实施例,正在平台A 102上执行的应用可以被迀移到平台B 104。因此,无论ISA是否是例如x86、高级RISC机器(ARM)或Tilera中的一个,本文所描述的示例性实施例均可以包括:例如当虚拟机(VM)不处于峰值需求时,运行(执行)进程在不同的ISA之间的迀移,从而提高性能。这种迀移可以另外称为实时迀移。
[0018]实时迀移器106可以是指管理程序层级上的组件或模块,其配置、编程或以其他方式设计成利于应用或程序的至少执行进程从一个指令集体系结构到另一个指令集体系结构的实时迀移。为了这样做,实时迀移器106可以将函数映射和/或变量映射进行托管或以其他方式排队列,所述函数映射和/或变量映射提供相应的函数和变量值到提供给平台A102和平台B104的其细化二元中的相应名称的链接。
[0019]如本文所提到的,指令集体系结构(下文称为“ISA”)可以是指在相应的平台上执行的应用或程序的进程的编程语言与执行相应的进程的物理硬件之间的接口。平台A 102和平台B 104中的相应一个的ISA可以包括本地数据类型、指令、寄存器、寻址模式、存储器体系结构、中断与异常处理和外部I/O。
[0020]如本文进一步提到的,在通用层级上,编译可以是指将高级编程语言的应用或程序变换成机器语言或者将应用或程序从高级编程语言变换成机器语言的函数或操作。更特别地,如本文所提到的,即时(JIT)编译器可以是指配置、编程或以其他方式设计成恰在应用或程序被执行之前,即“即时”,将应用或程序源代码转换成本地机器码的软件组件或模块。
[0021]本文所描述的各示例性实施例开发了低层级数据库,其是例如JIT编译器的后台元件,将名称映射到对象。因为变量和函数的名称在源ISA和目的地或目标ISA上执行的细化二元中相同,所以这种低层级数据库可被用来将来自源ISA的变量和地址堆栈映射成标记形式,然后随后映射到目的地或目标ISA上。
[0022]图2示出了依照本文所描述的至少一些实施例布置的图示出用于迀移执行进程的示例的数据流程的框图200。如图所示,框图200描绘了当前在平台A 102上执行的应用或程序的至少一个进程迀移到平台B 104。根据本文所描述的示例性实施例,平台A 102和平台B104使用不同的ISA,实时迀移器106可以利于应用或程序的执行进程从平台A 102和平台B104中的一个实时迀移到另一个。为了说明的目的,仅通过示例的方式,下面的说明涉及执行进程从平台A 102到平台B 104的实时迀移,但是基于相同的描述迀移可以反向。
[0023]如图2所描绘的,平台A 102可以包括至少编译器206、变量表228、函数堆栈230、低层级字典232、重命名字典234以及函数链接字典236。
[0024]可配置为JIT编译器的编译器206可以包括多个组件,这些组件包括但不限于流分析器218、注解器220、打字器222、变换器224以及编码生成器226。
[0025]实时迀移器106可以是指可被配置、编程或以其他方式设计成将来自源ISA和目的地或目标ISA的来自应用或程序的至少一个进程的中间表示的变量和地址堆栈映射成其标记形式的应用或程序。因此,实时迀移器106可以进一步被配置、编程或以其他方式设计成将变量和地址堆栈的标记形式映射到目的地指令集体系结构上。实时迀移器106可以被配置、编程或以其他方式设计成接收、存储和输出函数映射210和变量映射212,这可利于将来自源ISA的变量和地址堆栈映射成标记形式,以及然后映射到目的地或目标ISA上。
[0026]多平台细化二元214可以是指可输送到如x86系统的平台A102以及如ARM系统的平台B 104两者的相应ISA以及在其上执行的应用或程序的至少一个进程。
[0027]变量和函数216可以是指在多平台细化二元214执行期间调用的变量和函数的一个或多个表格。变量可以是指保持数据直至新的值被赋予或者应用或程序完成执行的编程结构。变量可以是局部的,仅在一个进程内引用,或者变量可以是全局的,在整个应用或程序中引用。函数可以是指在应用或程序内执行特定
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1