亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

執(zhí)行進(jìn)程的遷移的制作方法

文檔序號:9769167閱讀:526來源:國知局
執(zhí)行進(jìn)程的遷移的制作方法
【技術(shù)領(lǐng)域】
[0001]本文所描述的實(shí)施方案一般涉及在平臺之間迀移當(dāng)前執(zhí)行的應(yīng)用。
【背景技術(shù)】
[0002]除非在此處進(jìn)行說明,否則此處所描述的材料不是本申請權(quán)利要求的現(xiàn)有技術(shù)并且不因包含在該部分中而承認(rèn)是現(xiàn)有技術(shù)。
[0003]隨著基于云計算的快速發(fā)展,數(shù)據(jù)中心負(fù)責(zé)提供用于連續(xù)擴(kuò)展客戶端的量的特別大量任務(wù)的高效處理。因此,數(shù)據(jù)中心負(fù)擔(dān)著平衡功率使用、硬件額定負(fù)荷、資源負(fù)荷等的需求;換言之,為了高效地且有效地實(shí)施它們的處理使命,數(shù)據(jù)中心需要持續(xù)地追求改進(jìn)的負(fù)荷平衡解決方案。作為這種解決方案的示例,數(shù)據(jù)中心在執(zhí)行且支持的體系結(jié)構(gòu)類型方面是多樣化的。例如,其中的處理器可以基于處理需求(例如速度對強(qiáng)度)來實(shí)現(xiàn)不同類型的指令集體系結(jié)構(gòu)(ISA)。
[0004]概述
[0005]在一個示例性實(shí)施例中,一種在數(shù)據(jù)中心中實(shí)時迀移的方法,可以包括:JIT(SP時)編譯配置為在源指令集體系結(jié)構(gòu)和目的地指令集體系結(jié)構(gòu)上執(zhí)行的進(jìn)程;將所述源指令集體系結(jié)構(gòu)和所述目的地指令集體系結(jié)構(gòu)上的進(jìn)程的變量和地址堆棧映射成變量和地址堆棧的標(biāo)記形式;以及將變量和地址堆棧的標(biāo)記形式映射到目的地指令集體系結(jié)構(gòu)上。
[0006]在另一示例性實(shí)施例中,一種迀移進(jìn)程的方法可以包括:在第一指令集體系結(jié)構(gòu)上執(zhí)行進(jìn)程時,編譯進(jìn)程;在進(jìn)程在第一指令集體系結(jié)構(gòu)上執(zhí)行時,生成進(jìn)程的至少一些函數(shù)的函數(shù)映射;在進(jìn)程在第一指令集體系結(jié)構(gòu)上執(zhí)行時,生成進(jìn)程的至少一些變量的變量映射;將來自函數(shù)映射的函數(shù)映射到進(jìn)程的函數(shù)堆棧;以及將來自變量映射的變量映射到第二指令集體系結(jié)構(gòu)上的進(jìn)程的對應(yīng)地址。
[0007]在又一示例性實(shí)施例中,非暫態(tài)計算機(jī)可讀介質(zhì)可以存儲可執(zhí)行指令,當(dāng)執(zhí)行時,可執(zhí)行指令可以使虛擬機(jī)管理器將可以在第一平臺和第二平臺上執(zhí)行的細(xì)化二元(thinbinary)的至少一個進(jìn)程進(jìn)行JIT編譯,將細(xì)化二元的至少所述進(jìn)程的函數(shù)地址和函數(shù)堆棧解引用(dereference),將細(xì)化二元的至少所述進(jìn)程的變量地址解引用,以及生成函數(shù)映射以將對應(yīng)于進(jìn)程的細(xì)化二元表示的函數(shù)和變量連接到第一平臺和第二平臺上的等同的指針和地址。
[0008]在又一示例性實(shí)施例中,非暫態(tài)計算機(jī)可讀介質(zhì)可以存儲可執(zhí)行指令,當(dāng)執(zhí)行時,所述可執(zhí)行指令可以使一個或多個處理器通過如下操作來迀移執(zhí)行的應(yīng)用:將來自可以執(zhí)行細(xì)化二元中所包含的至少一個進(jìn)程的第一指令集體系結(jié)構(gòu)和第二指令集體系結(jié)構(gòu)的低層級字典散列表收集到函數(shù)映射集合中;將來自第一指令集體系結(jié)構(gòu)和第二指令集體系結(jié)構(gòu)的低層級重命名散列表收集到變量映射集合中;基于函數(shù)映射將來自第一指令集體系結(jié)構(gòu)的函數(shù)堆棧轉(zhuǎn)移到第二指令集體系結(jié)構(gòu);基于變量映射將來自第一指令集體系結(jié)構(gòu)的變量轉(zhuǎn)移到第二指令集體系結(jié)構(gòu)。
[0009]前面的概述僅僅是示例性的,而不意在以任何方式進(jìn)行限制。通過參考附圖以及下面的詳細(xì)說明,除了上文所描述的示例性的方面、實(shí)施例和特征之外,另外的方面、實(shí)施例和特征將變得清晰可見。
【附圖說明】
[0010]在下面的詳細(xì)說明中,僅因?yàn)楦鶕?jù)下面的詳述各個改變和變型例對于本領(lǐng)域技術(shù)人員而言將變得顯而易見。在不同的圖中使用相同的附圖標(biāo)記來指示類似或相同的項(xiàng)。
[0011]圖1示出了依照本文所描述的至少一些實(shí)施例布置的可以實(shí)現(xiàn)迀移執(zhí)行進(jìn)程的示例性的數(shù)據(jù)中心架構(gòu);
[0012]圖2示出了依照本文所描述的至少一些實(shí)施例布置的圖示出用于迀移執(zhí)行進(jìn)程的示例的數(shù)據(jù)流的框圖;
[0013]圖3示出了依照本文所描述的至少一些實(shí)施例布置的用于迀移執(zhí)行進(jìn)程的操作的示例的處理流程、和子流程;以及
[0014]圖4示出了依照本文所描述的至少一些實(shí)施例布置的圖示出可以實(shí)現(xiàn)本文所描述的各個示例的解決方案的示例的計算設(shè)備的框圖。
【具體實(shí)施方式】
[0015]在下面的詳細(xì)說明中,將參考附圖,附圖構(gòu)成了詳細(xì)說明的一部分。在附圖中,除非上下文指出,否則相似的符號通常表示相似的部件。在詳細(xì)說明、附圖和權(quán)利要求中所描述的示例性實(shí)施例不意在限制。可以使用其它實(shí)施例,并且可以做出其它改變,而不偏離本文呈現(xiàn)的主題的精神或范圍。將易于理解的是,如本文大致描述且如圖中所圖示的,本公開的方案能夠以各種不同配置來布置、替代、組合、分離和設(shè)計,所有這些都在本文中明確地構(gòu)思出。
[0016]圖1示出了依照本文所描述的至少一些實(shí)施例布置的可以實(shí)現(xiàn)迀移執(zhí)行進(jìn)程的示例的數(shù)據(jù)中心架構(gòu)100。如圖所示,數(shù)據(jù)中心架構(gòu)100可以代表云計算環(huán)境且包括平臺A102、平臺B 104和實(shí)時迀移器106。
[0017]平臺A102和平臺B 104(可以或者可以不包含在相同的硬件基礎(chǔ)結(jié)構(gòu)中)均可代表了配置為利用彼此不同的相應(yīng)的指令集體系結(jié)構(gòu)(ISA)來執(zhí)行應(yīng)用的平臺。如本文所提到的,平臺可以是指軟件體系結(jié)構(gòu),甚至硬件體系結(jié)構(gòu);并且因此,任一個或兩個可以被構(gòu)思用于本文所描述的實(shí)施例。根據(jù)本文所描述的實(shí)施例,正在平臺A 102上執(zhí)行的應(yīng)用可以被迀移到平臺B 104。因此,無論ISA是否是例如x86、高級RISC機(jī)器(ARM)或Tilera中的一個,本文所描述的示例性實(shí)施例均可以包括:例如當(dāng)虛擬機(jī)(VM)不處于峰值需求時,運(yùn)行(執(zhí)行)進(jìn)程在不同的ISA之間的迀移,從而提高性能。這種迀移可以另外稱為實(shí)時迀移。
[0018]實(shí)時迀移器106可以是指管理程序?qū)蛹壣系慕M件或模塊,其配置、編程或以其他方式設(shè)計成利于應(yīng)用或程序的至少執(zhí)行進(jìn)程從一個指令集體系結(jié)構(gòu)到另一個指令集體系結(jié)構(gòu)的實(shí)時迀移。為了這樣做,實(shí)時迀移器106可以將函數(shù)映射和/或變量映射進(jìn)行托管或以其他方式排隊列,所述函數(shù)映射和/或變量映射提供相應(yīng)的函數(shù)和變量值到提供給平臺A102和平臺B104的其細(xì)化二元中的相應(yīng)名稱的鏈接。
[0019]如本文所提到的,指令集體系結(jié)構(gòu)(下文稱為“ISA”)可以是指在相應(yīng)的平臺上執(zhí)行的應(yīng)用或程序的進(jìn)程的編程語言與執(zhí)行相應(yīng)的進(jìn)程的物理硬件之間的接口。平臺A 102和平臺B 104中的相應(yīng)一個的ISA可以包括本地數(shù)據(jù)類型、指令、寄存器、尋址模式、存儲器體系結(jié)構(gòu)、中斷與異常處理和外部I/O。
[0020]如本文進(jìn)一步提到的,在通用層級上,編譯可以是指將高級編程語言的應(yīng)用或程序變換成機(jī)器語言或者將應(yīng)用或程序從高級編程語言變換成機(jī)器語言的函數(shù)或操作。更特別地,如本文所提到的,即時(JIT)編譯器可以是指配置、編程或以其他方式設(shè)計成恰在應(yīng)用或程序被執(zhí)行之前,即“即時”,將應(yīng)用或程序源代碼轉(zhuǎn)換成本地機(jī)器碼的軟件組件或模塊。
[0021]本文所描述的各示例性實(shí)施例開發(fā)了低層級數(shù)據(jù)庫,其是例如JIT編譯器的后臺元件,將名稱映射到對象。因?yàn)樽兞亢秃瘮?shù)的名稱在源ISA和目的地或目標(biāo)ISA上執(zhí)行的細(xì)化二元中相同,所以這種低層級數(shù)據(jù)庫可被用來將來自源ISA的變量和地址堆棧映射成標(biāo)記形式,然后隨后映射到目的地或目標(biāo)ISA上。
[0022]圖2示出了依照本文所描述的至少一些實(shí)施例布置的圖示出用于迀移執(zhí)行進(jìn)程的示例的數(shù)據(jù)流程的框圖200。如圖所示,框圖200描繪了當(dāng)前在平臺A 102上執(zhí)行的應(yīng)用或程序的至少一個進(jìn)程迀移到平臺B 104。根據(jù)本文所描述的示例性實(shí)施例,平臺A 102和平臺B104使用不同的ISA,實(shí)時迀移器106可以利于應(yīng)用或程序的執(zhí)行進(jìn)程從平臺A 102和平臺B104中的一個實(shí)時迀移到另一個。為了說明的目的,僅通過示例的方式,下面的說明涉及執(zhí)行進(jìn)程從平臺A 102到平臺B 104的實(shí)時迀移,但是基于相同的描述迀移可以反向。
[0023]如圖2所描繪的,平臺A 102可以包括至少編譯器206、變量表228、函數(shù)堆棧230、低層級字典232、重命名字典234以及函數(shù)鏈接字典236。
[0024]可配置為JIT編譯器的編譯器206可以包括多個組件,這些組件包括但不限于流分析器218、注解器220、打字器222、變換器224以及編碼生成器226。
[0025]實(shí)時迀移器106可以是指可被配置、編程或以其他方式設(shè)計成將來自源ISA和目的地或目標(biāo)ISA的來自應(yīng)用或程序的至少一個進(jìn)程的中間表示的變量和地址堆棧映射成其標(biāo)記形式的應(yīng)用或程序。因此,實(shí)時迀移器106可以進(jìn)一步被配置、編程或以其他方式設(shè)計成將變量和地址堆棧的標(biāo)記形式映射到目的地指令集體系結(jié)構(gòu)上。實(shí)時迀移器106可以被配置、編程或以其他方式設(shè)計成接收、存儲和輸出函數(shù)映射210和變量映射212,這可利于將來自源ISA的變量和地址堆棧映射成標(biāo)記形式,以及然后映射到目的地或目標(biāo)ISA上。
[0026]多平臺細(xì)化二元214可以是指可輸送到如x86系統(tǒng)的平臺A102以及如ARM系統(tǒng)的平臺B 104兩者的相應(yīng)ISA以及在其上執(zhí)行的應(yīng)用或程序的至少一個進(jìn)程。
[0027]變量和函數(shù)216可以是指在多平臺細(xì)化二元214執(zhí)行期間調(diào)用的變量和函數(shù)的一個或多個表格。變量可以是指保持?jǐn)?shù)據(jù)直至新的值被賦予或者應(yīng)用或程序完成執(zhí)行的編程結(jié)構(gòu)。變量可以是局部的,僅在一個進(jìn)程內(nèi)引用,或者變量可以是全局的,在整個應(yīng)用或程序中引用。函數(shù)可以是指在應(yīng)用或程序內(nèi)執(zhí)行特定
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1