欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

從原始虛擬機到目的地虛擬機的操作轉(zhuǎn)移的制作方法

文檔序號:6484929閱讀:161來源:國知局
從原始虛擬機到目的地虛擬機的操作轉(zhuǎn)移的制作方法
【專利摘要】一般性地描述了用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機同時原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的技術(shù)和實施方案。示例性方法可以包括:在目的地虛擬機上啟動目的地可執(zhí)行文件同時原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件,其中,目的地虛擬機具有與原始虛擬機不同的特性;將永久狀態(tài)數(shù)據(jù)從原始虛擬機傳輸?shù)侥康牡靥摂M機;將變化數(shù)據(jù)從與原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)侥康牡靥摂M機同時原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件;以及當目的地可執(zhí)行文件的啟動完成并且變化隊列為空時,從原始虛擬機切換到目的地虛擬機。
【專利說明】從原始虛擬機到目的地虛擬機的操作轉(zhuǎn)移
【背景技術(shù)】
[0001]除非在此另有所述,否則,本部分中描述的方法并不構(gòu)成本申請中的權(quán)利要求的現(xiàn)有技術(shù)并且并沒有由于包括在本部分中而被承認為現(xiàn)有技術(shù)。
[0002]當前的云計算服務(wù)可以在具有不同的諸如存儲器和API類型的能力的虛擬機之間移動時停止并且然后再次重啟。因此,不能夠分布在服務(wù)器(例如,可以常常是利用數(shù)據(jù)庫服務(wù)的情況)之間的組件可以在最大的硬件虛擬機上運行使得它們能夠合理地處理峰使用條件?;诜迨褂脳l件來選擇虛擬機的替選方案將要面對瞬時狀態(tài)數(shù)據(jù)的嚴重的損失和延遲。瞬時狀態(tài)數(shù)據(jù)的這樣的延遲和損失可以是由于服務(wù)在切換到更大的硬件虛擬機期間停止并且然后重啟而導致的。
[0003]因此,當前的云計算服務(wù)通常會在所有時間在被選擇為能夠處理峰使用條件的虛擬機上運行。然而,被選擇為能夠處理峰使用條件的虛擬機可以僅在小于百分之五的時間需要最大的資源。例如,亞馬遜彈性計算云(EC2)定價利用了價格為是“小”虛擬機的價格的四倍的“大”虛擬機以及價格為“小”虛擬機的價格的八倍的“超大”虛擬機來在某種程度上受益于此。

【發(fā)明內(nèi)容】

[0004]與將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機相關(guān)的一些示例性方法、設(shè)備和系統(tǒng)可以在云計算系統(tǒng)中實施。這樣的云計算系統(tǒng)可以包括若干模塊。第一模塊可以被構(gòu)造為生成與原始可執(zhí)行文件關(guān)聯(lián)的原始指針索引,其中,原始可執(zhí)行文件被構(gòu)造為在原始虛擬機上執(zhí)行。第二模塊可以被構(gòu)造為生成與目的地可執(zhí)行文件關(guān)聯(lián)的目的地指針索引,其中,目的地虛擬機具有與原始虛擬機不同的特性。這樣的目的地可執(zhí)行文件可以被構(gòu)造為在目的地虛擬機上執(zhí)行。第三模塊可以被構(gòu)造為將永久狀態(tài)數(shù)據(jù)從原始虛擬機傳輸?shù)侥康牡靥摂M機。第四模塊可以被構(gòu)造為在原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的同時將變化數(shù)據(jù)從與原始虛擬機關(guān)聯(lián)的變化數(shù)據(jù)隊列傳輸?shù)侥康牡靥摂M機。第四模塊可以被構(gòu)造為至少部分地基于原始指針索引和目的地指針索引來傳輸變化數(shù)據(jù)。
[0005]一些示例性方法可以包括用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機的操作。這樣的操作可以在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時在目的地虛擬機上啟動目的地可執(zhí)行文件,其中,目的地虛擬機可以具有與原始虛擬機不同的特性。永久狀態(tài)數(shù)據(jù)可以從原始虛擬機傳輸?shù)侥康牡靥摂M機。變化數(shù)據(jù)可以在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時從與原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)侥康牡靥摂M機。可以在目的地可執(zhí)行文件的啟動已經(jīng)完成并且變化隊列為空時執(zhí)行從原始虛擬機到目的地虛擬機的切換。
[0006]一些示例性制品可以包括用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機的機器可讀指令。這樣的機器可讀指令可以在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時在目的地虛擬機上啟動目的地可執(zhí)行文件,其中,目的地虛擬機可以具有與原始虛擬機不同的特性。永久狀態(tài)數(shù)據(jù)可以從原始虛擬機傳輸?shù)侥康牡靥摂M機。變化數(shù)據(jù)可以在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時從與原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)侥康牡靥摂M機??梢栽谀康牡乜蓤?zhí)行文件的啟動已經(jīng)完成并且變化隊列為空時執(zhí)行從原始虛擬機到目的地虛擬機的切換。
[0007]上面的概述僅是說明性的且并不旨在以任意方式表示限制。除了如上描述的說明性方面、實施方式和特征,通過參考附圖和下面的詳細描述將顯見其他方面、實施方式和特征。
【專利附圖】

【附圖說明】
[0008]在本說明書的結(jié)論部分中特別地指出并且明確地要求保護主題。根據(jù)結(jié)合附圖進行的以下描述和所附權(quán)利要求書,本公開的以上和其它特征將變得更充分地顯而易見。要理解的是,這些附圖僅描述了根據(jù)本公開的多個實施方式,因此不能被認為是對本公開的范圍的限制,將通過使用附圖來利用附加的特征和細節(jié)描述本公開。
[0009]在附圖中:
[0010]圖1示出了根據(jù)本公開的至少一些實施方式布置的示例性云計算系統(tǒng)的示意圖;
[0011]圖2示出了根據(jù)本公開的至少一些實施方式布置的原始和目的地指針索引的示例性生成的示意圖;
[0012]圖3示出了根據(jù)本公開的至少一些實施方式布置的數(shù)據(jù)從原始虛擬機到目的地虛擬機的數(shù)據(jù)的示例性傳輸?shù)氖疽鈭D;
[0013]圖4示出了根據(jù)本公開的至少一些實施方式布置的用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機的示例性處理;
[0014]圖5示出了根據(jù)本公開的至少一些實施方式布置的用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機的示例性處理;
[0015]圖6是根據(jù)本公開的至少一些實施方式布置的示例性計算機程序產(chǎn)品的視圖;以及
[0016]圖7是根據(jù)本公開的至少一些實施方式布置的計算裝置的示出性實施方式的框圖。
【具體實施方式】
[0017]下面的描述闡述各種示例的具體細節(jié)以提供權(quán)利要求所記載的主題的完整理解。然而,本領(lǐng)域技術(shù)人員將理解的是,權(quán)利要求中所記載的主題可以在沒有這個公開的具體細節(jié)的某些或更多的情況下實施。此外,在某些情況下,沒有詳細描述公知的方法、過程、系統(tǒng)、組件和/或電路以便于避免不必要地使得權(quán)利要求中記載的主題模糊。
[0018]在下面的詳細說明中,參照附圖,這些附圖形成了本說明書的一部分。在附圖中,除非上下文另行說明,否則相似的符號通常標識相似的部件。在具體說明書、附圖和權(quán)利要求中描述的例示性實施方式不意味著為限制。在不脫離本文表現(xiàn)的主題的精神或范圍的情況下,可利用其它實施方式,并且可以進行其它改變。容易理解的是,如本文總體描述的和附圖例示的本公開的各個方面,可以按照各種不同的配置來布置、替換、組合和設(shè)計,其在這里是明確地設(shè)想到的。
[0019]除其它因素外,本公開被一般性地描繪為與將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機同時原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件有關(guān)的方法、設(shè)備和系統(tǒng)。[0020]為了避免云計算服務(wù)在不同能力的虛擬機之間移動時停止和重新開始,當前的云計算服務(wù)可以通常在所有時間都在被選擇為能夠處理峰使用條件的虛擬機上運行。如下面更詳細地討論的,替代使得云計算服務(wù)在不同能力的虛擬機之間移動時停止和重新開始,可以實現(xiàn)在原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的同時將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機。
[0021]如下面更詳細地討論的,將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機可以“立即”執(zhí)行。在一些示例中,操作的這樣的轉(zhuǎn)移可以在原始虛擬機和目的地虛擬機具有不同特性的情況下發(fā)生,借助于示例,原始虛擬機和目的地虛擬機具有不同特性的情況例如為原始虛擬機是基于32位的虛擬機而目的地虛擬機是基于64位的虛擬機,或者原始虛擬機和目的地虛擬機具有帶有不同存儲器型號的處理器等等。這樣的操作的轉(zhuǎn)移可以包括將本屬于目的地虛擬機的新的服務(wù)與可以允許存儲器型號之間的轉(zhuǎn)換的指針索引的原始和目的地對一起啟動的組合策略。例如,這樣的指針索引的原始和目的地對可以用于存儲器轉(zhuǎn)換以允許實時服務(wù)轉(zhuǎn)移到更高或更低的能力虛擬機。
[0022]圖1示出了根據(jù)本公開的至少一些實施方式布置的示例性云計算系統(tǒng)100的示意圖。如所示的,云計算系統(tǒng)100可以被組織為包括一個或多個虛擬機,例如,原始虛擬機102和/或目的地虛擬機104。如這里使用的,術(shù)語“云計算系統(tǒng)”可以表示兩個或更多計算裝置(例如,服務(wù)器),其被構(gòu)造為經(jīng)由網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))彼此通信并且一起操作以用作可配置的計算資源的共享池,該共享池能夠在不要求終端用戶了解傳遞服務(wù)的系統(tǒng)的位置和/或配置的情況下提供給終端用戶。如這里使用的,術(shù)語“虛擬機”可以表示在云計算環(huán)境中操作以模擬物理計算裝置的操作的軟件實施方案。例如,這樣的云計算系統(tǒng)可以執(zhí)行軟件實施方案作為虛擬機以通過使得單個物理資源(例如,服務(wù)器、操作系統(tǒng)、應(yīng)用程序、存儲裝置等等和/或其組合)呈現(xiàn)為用作多個邏輯資源或者;使得多個物理資源(例如,存儲裝置、服務(wù)器等等和/或其組合)呈現(xiàn)為單個邏輯資源來模擬物理計算裝置的操作。
[0023]在一些示例中,云計算系統(tǒng)100可以將操作從原始虛擬機102轉(zhuǎn)移到目的地虛擬機104。在這樣的示例中,云計算系統(tǒng)100可以包括可以包括若干模塊的轉(zhuǎn)移服務(wù)106。在所示的示例中,轉(zhuǎn)移服務(wù)106闡述了各種功能模塊,其可以由硬件、軟件和/或固件來執(zhí)行??紤]本公開的本領(lǐng)域技術(shù)人員將了解的是,圖1中所示的功能模塊的多個替選方案可以在各種實施方式中實施。例如,雖然如圖1中所示的轉(zhuǎn)移服務(wù)106可以包括分布到功能模塊的組的功能的一個特定組織結(jié)構(gòu),但是一個或多個功能模塊之間的功能的組織結(jié)構(gòu)不必將主題限制到任何特定組織結(jié)構(gòu)。類似地,在不偏離所附群里一切的主題的范圍的情況下,可以采用圖1中沒有示出的中間功能和/或圖1中未示出的附加功能和/或可以消除圖1中所示的功能中的一些。
[0024]如所示的,轉(zhuǎn)移服務(wù)106可以包括永久狀態(tài)傳輸模塊110、原始指針索引模塊112、目的地指針索引模塊114和/或變化數(shù)據(jù)傳輸模塊116。永久狀態(tài)傳輸模塊110可以被構(gòu)造為將永久狀態(tài)數(shù)據(jù)從原始虛擬機102轉(zhuǎn)移到目的地虛擬機104。目的地虛擬機104可以具有與原始虛擬機102不同的特性。如這里使用的,表述“不同的特性”可以指各種方面的不同,其可以包括存儲器容量型特性方面的不同、處理能力型特性方面的不同、應(yīng)用程序編程接口型特性方面的不同、地址型特性方面的不同、操作系統(tǒng)型特性方面的不同等等和/或其組合。即使在原始虛擬機102和目的地虛擬機104具有不同特性的情況下,永久盤狀態(tài)可以以相同的格式用于原始虛擬機102和目的地虛擬機104。
[0025]原始指針索引模塊112可以被構(gòu)造為生成與原始可執(zhí)行文件關(guān)聯(lián)的原始指針索弓I。這樣的原始可執(zhí)行文件可以被構(gòu)造為在原始虛擬機102上執(zhí)行。在下面參考圖2討論關(guān)于原始可執(zhí)行文件和原始指針索引的其它細節(jié)。
[0026]目的地指針索引模塊114可以被構(gòu)造為生成與目的地可執(zhí)行文件關(guān)聯(lián)的目的地指針索引。如上所述,目的地虛擬機104可以具有與原始虛擬機102不同的特性。因此,這樣的目的地可執(zhí)行文件可以被構(gòu)造為在目的地虛擬機104上執(zhí)行,與被構(gòu)造為在原始虛擬機102上執(zhí)行相反。在下面關(guān)于圖2討論關(guān)于目的地可執(zhí)行文件和目的地指針索引的其它細節(jié)。
[0027]變化數(shù)據(jù)傳輸模塊116可以被構(gòu)造為將變化數(shù)據(jù)從與原始虛擬機102關(guān)聯(lián)的變化隊列傳輸?shù)侥康牡靥摂M機104。如這里使用的,表述“變化數(shù)據(jù)”可以表示沒有與永久狀態(tài)存儲器關(guān)聯(lián)的環(huán)境狀態(tài)數(shù)據(jù),例如,與動態(tài)狀態(tài)存儲器關(guān)聯(lián)的環(huán)境狀態(tài)數(shù)據(jù),并且也可以表示用于盤更新的永久狀態(tài)數(shù)據(jù),只要虛擬機之間的永久狀態(tài)數(shù)據(jù)傳輸正在進行。在一些示例中,從原始虛擬機102到目的地虛擬機104的變化數(shù)據(jù)的傳輸可以在原始虛擬機102繼續(xù)執(zhí)行原始可執(zhí)行文件的同時進行。變化數(shù)據(jù)傳輸模塊116可以被構(gòu)造為至少部分地基于原始指針索引和目的地指針索引來傳輸變化數(shù)據(jù)。
[0028]在操作中,原始虛擬機102和目的地虛擬機104之間的數(shù)據(jù)的傳輸可以包括匹配環(huán)境狀態(tài)(例如,包括永久狀態(tài)存儲器和動態(tài)狀態(tài)存儲器)以及程序狀態(tài)(例如,可執(zhí)行文件當前處理到的代碼的行)。永久狀態(tài)傳輸模塊110可以用于將永久狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù)從原始虛擬機102傳輸?shù)侥康牡靥摂M機104。然而,由于目的地虛擬機104可以具有與原始目的地虛擬機102不同的特性,因此與動態(tài)狀態(tài)數(shù)據(jù)和程序狀態(tài)數(shù)據(jù)關(guān)聯(lián)的原始可執(zhí)行文件內(nèi)的位置可以在目的地可執(zhí)行文件內(nèi)不是相同的位置。因此,變化數(shù)據(jù)傳輸模塊116可以被構(gòu)造為在變化數(shù)據(jù)(例如,動態(tài)狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù))的傳輸期間對原始虛擬機102與目的地虛擬機104之間的位置變化進行調(diào)整。例如,變化數(shù)據(jù)傳輸模塊116可以組合地使用原始指針索引和目的地指針索引以將變化數(shù)據(jù)(例如,動態(tài)狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù))從原始虛擬機102傳輸?shù)侥康牡靥摂M機104。另外或替選地,變化數(shù)據(jù)傳輸模塊116可以組合地使用原始指針索引和目的地指針索引來調(diào)整原始虛擬機102與目的地虛擬機104之間的位置變化以轉(zhuǎn)換程序狀態(tài)數(shù)據(jù)(例如,原始可執(zhí)行文件當前處理到的代碼的哪一行)。在下面參考圖3討論關(guān)于原始虛擬機102與目的地虛擬機104之間的數(shù)據(jù)的傳輸?shù)钠渌毠?jié)。
[0029]圖2示出了根據(jù)本公開的至少一些實施方式布置的原始和目的地指針索引的示例性生成的示意圖。在所示的示例中,未編譯代碼200可以經(jīng)由原始編譯器203編譯為原始可執(zhí)行文件202并且可以經(jīng)由目的地編譯器205編譯為目的地可執(zhí)行文件204。例如,目的地虛擬機104 (參見例如圖1)可以具有與原始虛擬機102 (參見例如圖1)不同的特性。因此,目的地可執(zhí)行文件204可以被構(gòu)造為在目的地虛擬機104 (參見例如圖1)上執(zhí)行,與被構(gòu)造為在原始虛擬機102 (參見例如圖1)上執(zhí)行相對。
[0030]未編譯代碼200可以包括各種過程、應(yīng)用程序編程接口(API)調(diào)用和/或功能(下面統(tǒng)稱為過程210)。未編譯代碼200可以經(jīng)由原始編譯器203編譯為原始可執(zhí)行文件202并且過程210被布置為原始過程212。類似地,未編譯代碼200可以經(jīng)由目的地編譯器205編譯為原始可執(zhí)行文件202,并且過程210被布置為目的地過程214。[0031]在一些示例中,可以從未編譯代碼200中識別特定轉(zhuǎn)移點220。這樣的轉(zhuǎn)移點220可以用于識別出何時操作從原始虛擬機102 (參見例如圖1)到目的地虛擬機104 (參見例如圖1)的切換將是可接受的。這樣的轉(zhuǎn)移點220可以由原始編譯器203和/或目的地編譯器205識別。這樣的轉(zhuǎn)移點220可以表示目的地虛擬機104 (參見例如圖1)和原始虛擬機102 (參見例如圖1)的邏輯和循環(huán)流中的相同位置,因此編譯器203和205獲得相同的轉(zhuǎn)移點。這樣的操作可以通過下述方法來進行:使得編譯器203和205使用相同的算法來確定轉(zhuǎn)移點220 (例如,在代碼中明確地定義轉(zhuǎn)移點220)或者在編譯之前使用算法工具來將轉(zhuǎn)移點220添加到未編譯代碼200。例如,原始編譯器203可以識別轉(zhuǎn)移點220并且將對應(yīng)的原始書簽位置222插入到原始可執(zhí)行文件202。類似地,目的地編譯器205可以識別轉(zhuǎn)移點220并且將對應(yīng)的目的地書簽位置224插入到目的地可執(zhí)行文件204。如前所述,目的地虛擬機104 (參見例如圖1)可以具有與原始虛擬機102 (參見例如圖1)不同的特性。因此,目的地可執(zhí)行文件204內(nèi)的目的地書簽位置224的位置可以沒有對應(yīng)于原始可執(zhí)行文件202中的原始書簽位置222的各位置。
[0032]在一些示例中,可以從未編譯代碼200中識別出存儲器的某些使用,例如變量聲明、過程調(diào)用和/或過程返回(下面統(tǒng)稱為變量230)。這樣的變量230可以在將操作從原始虛擬機102 (參見例如圖1)切換到目的地虛擬機104 (參見例如圖1)時在動態(tài)數(shù)據(jù)傳輸期間被收集作為變化數(shù)據(jù)。這樣的變量230可以與原始可執(zhí)行文件202中的原始變量位置232關(guān)聯(lián)。類似地,這樣的變量230可以與目的地可執(zhí)行文件204中的目的地變量位置234關(guān)聯(lián)。如前所述,目的地虛擬機104 (參見例如圖1)可以具有與原始虛擬機102 (參見例如圖1)不同的特性。因此,目的地可執(zhí)行文件204內(nèi)的目的地變量位置234的位置可以沒有對應(yīng)于原始可執(zhí)行文件202中的原始變量位置232的各位置。
[0033]原始編譯器203可以包括原始指針索引I旲塊112。原始指針索引I旲塊112可以被構(gòu)造為生成與原始可執(zhí)行文件202關(guān)聯(lián)的原始指針索引242。類似地,目的地編譯器205可以包括目的地指針索引模塊114。目的地指針索引模塊114可以被構(gòu)造為生成與目的地可執(zhí)行文件204關(guān)聯(lián)的目的地指針索引244。
[0034]如上所述,目的地可執(zhí)行文件204內(nèi)的目的地書簽位置224的位置可以沒有對應(yīng)于原始可執(zhí)行文件202中的原始書簽位置222的各位置。因此,原始指針索引242可以包括多個原始書簽指針252。例如,這樣的原始書簽指針252可以與原始可執(zhí)行文件202內(nèi)的被指定為從原始虛擬機102 (參見例如圖1)進行切換的邏輯點的各點(例如,原始書簽位置222)關(guān)聯(lián)。類似地,目的地指針索引244可以包括多個目的地書簽指針254。例如,各目的地書簽指針254可以指示目的地可執(zhí)行文件214中用于原始目的地索引242中的等效原始書簽指針252的等效位置。
[0035]如上所述,目的地可執(zhí)行文件204內(nèi)的目的地變量位置234的位置可以沒有對應(yīng)于原始可執(zhí)行文件202中原始變量位置232的各位置。因此,原始指針索引242可以包括多個原始永久指針262。例如,這樣的原始永久指針262可以(例如,經(jīng)由原始變量位置232)與對應(yīng)的原始變量關(guān)聯(lián),其中,原始永久指針262可以指示對應(yīng)的原始變量位置232位于原始可執(zhí)行文件202中何處。另外,原始變量位置232本身可以用作原始變量指針,其中,這樣的原始變量指針可以指示對應(yīng)的原始變量位于原始存儲器(未示出)中何處。類似地,目的地指針索引244可以包括多個目的地永久指針264。例如,這樣的目的地永久指針264可以(例如,經(jīng)由原始變量位置232)與對應(yīng)的目的地變量關(guān)聯(lián),其中,目的地永久指針264可以指示對應(yīng)的目的地變量位置234位于目的地可執(zhí)行文件204中何處。另外,目的地變量位置234本身可以用作原始變量指針,其中,這樣的原始變量指針可以指示對應(yīng)的原始變量位于目的地存儲器(未示出)中何處。
[0036]因此,可以經(jīng)由對應(yīng)的目的地變量位置234從目的地可執(zhí)行文件204指向關(guān)于存儲器中存儲的給定變量的數(shù)據(jù),而可以經(jīng)由對應(yīng)的目的地永久指針264從目的地指針索引244指向目的地變量位置234的位置。類似地,可以經(jīng)由對應(yīng)的原始變量位置232從原始可執(zhí)行文件202指向關(guān)于存儲器中存儲的給定變量的數(shù)據(jù),而可以經(jīng)由對應(yīng)的原始永久指針262從原始指針索引242指向原始變量位置232的位置。在下面參考圖3討論關(guān)于原始虛擬機102 (參見例如圖1)與目的地虛擬機104 (參見例如圖1)之間的數(shù)據(jù)的傳輸?shù)钠渌毠?jié)。
[0037]在操作中,原始指針索引模塊112和目的地指針索引模塊116可以在編譯時為在代碼中使用的變量生成指針索引242和244,其可以包含永久指針262和264。例如,當代碼被編譯時,可執(zhí)行二進制代碼可以通常將變量轉(zhuǎn)換為訪問指針存儲使得當存儲空間被動態(tài)地分配時,能夠?qū)⒅羔?例如,原始變量指針和/或目的地變量指針)存儲為鏈接到發(fā)生操作系統(tǒng)(OS)動態(tài)存儲器分配以放置變量內(nèi)容的地方。沒有以該方式操作的變量可以包括類型定義全局變量。在編譯時生成的指針索引242和244可以包括針對原始變量指針的永久指針262 (例如,指針到指針)。另外或替選地,指針索引242和244也可以包括針對任何預(yù)先分配的全局變量的指針。指針索引242和244可以不包括原始變量指針和/或目的地變量指針的副本,而是可以包括指向可執(zhí)行代碼中能夠找到原始變量指針和/或目的地變量指針的地方的指針。因此,通過指針索引242和244訪問變量可以包括多步處理,即在指針索引242和244中查找地址并且然后目的地變量指針,然后訪問實際值。這樣的指針索弓丨242和244可以允許針對不同的存儲器型號系統(tǒng)上的不同編譯的可執(zhí)行文件在存儲器中尋找同一變量。
[0038]在操作中,未編譯代碼200可以使用可以被動態(tài)地聲明的變量聲明230 (以及過程調(diào)用和返回點)??梢詫τ诓煌奶摂M機特性(例如,32位環(huán)境和64位環(huán)境)編譯這樣的未編譯代碼200。獲得的編譯后的原始可執(zhí)行文件202 (例如,32位)和編譯后的目的地可執(zhí)行文件204 (例如,64位)可以由于它們使用不同的庫、不同的存儲器型號以及因此使用某些不同的過程版本而存在著顯著的不同。原始指針索引模塊112和目的地指針索引模塊116可以用于生成分別針對原始可執(zhí)行文件202和目的地可執(zhí)行文件204中使用的變量的指針索引242和244。指針索引242和244可以沒有指向變量本身(其可以沒有分配直到進入運行時間),而是指向?qū)赶蜃罱K變量位置的可執(zhí)行文件指針232和234的原始可執(zhí)行文件202和目的地可執(zhí)行文件204內(nèi)的位置。指針索引242和244可以被視為允許在同一代碼的兩個不同編譯的版本中尋找相同變量的索引。該指針到指針方法可以甚至對于諸如指針鏈接列表(例如,可以循環(huán)的指針鏈接列表)、可擴展陣列等等的復(fù)雜的變量類型也是適用的。
[0039]圖3示出了根據(jù)本公開的至少一些實施方式布置的數(shù)據(jù)從原始虛擬機102到目的地虛擬機104的示例性傳輸?shù)氖疽鈭D。原始虛擬機102與目的地虛擬機104之間的數(shù)據(jù)的傳輸可以包括匹配環(huán)境狀態(tài)(例如,包括永久狀態(tài)存儲器和動態(tài)狀態(tài)存儲器)以及程序狀態(tài)(例如,指示原始可執(zhí)行文件202當前處理到的代碼的哪一行的等效原始和目的地可執(zhí)行文件指針)。
[0040]永久狀態(tài)傳輸模塊110可以用于將永久狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù)從原始虛擬機102傳輸?shù)侥康牡靥摂M機104。例如,永久狀態(tài)傳輸模塊110可以用于將永久狀態(tài)型環(huán)境數(shù)據(jù)從原始永久狀態(tài)302傳輸?shù)侥康牡赜谰脿顟B(tài)304。在一些示例中,永久狀態(tài)傳輸模塊110可以經(jīng)由用于一致性等等的變化檢測和更新來將原始永久狀態(tài)302 (例如,盤存儲)復(fù)制到目的地永久狀態(tài) 304。例如參見 Proceedings of the3rd International conference on Virtualexecution environments (ACM, 2007)的 169-179 頁中 R.Bradford等人的“Live wide-areamigration of virtual machines including local persistent state,,。
[0041 ] 雖然永久狀態(tài)傳輸模塊110可以將永久狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù)從原始永久狀態(tài)302傳輸?shù)侥康牡赜谰脿顟B(tài)304,但是永久狀態(tài)傳輸模塊110可以額外地被構(gòu)造為啟動目的地適合二進制(例如,目的地可執(zhí)行文件204)的副本而不是直接復(fù)制原始適合二進制(例如,原始可執(zhí)行文件)。例如,原始可執(zhí)行文件202可以是32位可執(zhí)行文件,而目的地可執(zhí)行文件202可以是64位可執(zhí)行文件,使得原始適合二進制(例如,原始可執(zhí)行文件202)不適合目的地虛擬機104。這樣的替代復(fù)制的啟動方案可以在虛擬機遷移過程中節(jié)省帶寬。然而,這樣的替代復(fù)制的啟動方案可以是非傳統(tǒng)的,這是因為這樣的方案可以通常剩下不能夠復(fù)制原始動態(tài)存儲器狀態(tài)312而沒有額外的過程(例如,可以在下面參考圖4和/或圖5詳細描述的過程)。
[0042]由于目的地虛擬機104可以具有與原始虛擬機102不同的特性,因此,與動態(tài)狀態(tài)數(shù)據(jù)和程序狀態(tài)數(shù)據(jù)關(guān)聯(lián)的原始可執(zhí)行文件202內(nèi)的位置可能將沒有在目的地可執(zhí)行文件204內(nèi)是相同位置。因此,變化數(shù)據(jù)傳輸模塊116可以被構(gòu)造為對于變化數(shù)據(jù)(例如,動態(tài)狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù))的傳輸期間的原始虛擬機102與目的地虛擬機104之間的位置變化進行調(diào)整。例如,變化數(shù)據(jù)傳輸模塊116可以組合地使用原始指針索引242和目的地指針索引244以將變化數(shù)據(jù)(例如,動態(tài)狀態(tài)型環(huán)境狀態(tài)數(shù)據(jù))從原始虛擬機102傳輸?shù)侥康牡靥摂M機104。例如,變化數(shù)據(jù)傳輸模塊116可以組合地使用原始指針索引242和目的地指針索引244以將變化數(shù)據(jù)從原始動態(tài)存儲器狀態(tài)312傳輸?shù)侥康牡貏討B(tài)存儲器狀態(tài)314。
[0043]在操作中,變化數(shù)據(jù)傳輸模塊116可以從與原始虛擬機關(guān)聯(lián)的變化隊列(未示出)收集過去的變化數(shù)據(jù)。例如,變化數(shù)據(jù)傳輸模塊116可以從原始動態(tài)存儲器狀態(tài)312收集過去的變化數(shù)據(jù)。在一些示例中,可以經(jīng)由基于數(shù)據(jù)更新的技術(shù)和/或?qū)崟r網(wǎng)絡(luò)連接傳輸技術(shù)來收集變化數(shù)據(jù)。例如,虛擬機(VM)前一技術(shù)可以包括用于移動盤鏡像、虛擬機徑向和存儲器狀態(tài)信息的系統(tǒng)。在這樣的示例中,副本可以由盤狀態(tài)、虛擬機和.或存儲器狀態(tài)構(gòu)成,同時捕獲在復(fù)制時發(fā)生的任何變化(例如,變化數(shù)據(jù))。作為進一步的示例,Xen型管理器可以包括用于塊裝置的劃分驅(qū)動器架構(gòu)以允許使用攔截到存儲器的消息的原塊裝置(blkfront)。塊擊(blktap)框架能夠因此用于一旦復(fù)制開始就生成變化映射或“變化數(shù)據(jù)”并且因此保持目的地狀態(tài)信息被更新。在這樣的示例中,當變化隊列為空時,兩個機器處于同步。例如,參見 USENIX2005 中 A.Warfield、S.Hand、K.Fraser 和 T.Deegan 的Facillitating the Development of Soft Devices。另外,虛擬機管理器可以支持諸如“ipixnitd”(其可以建立用于網(wǎng)絡(luò)重定向的IP隧道直到能夠更新用于服務(wù)的動態(tài)域名稱系統(tǒng)(DNS)進入)的命令。例如,參見1996年的RFC2003中的CPerkins的IP encapsulationwithin IP 和 / 或 RFC3007 中 B.Wellington 的 Secure DNS Dynamic Update。在這樣的情況下,服務(wù)可以在一段時間具有兩個地址(對于還沒有處理地址更新的請求的老的地址應(yīng)答和用于新的連接和更新后的請求方的新地址)直到更新了所有請求方。
[0044]在一些示例中,變化數(shù)據(jù)傳輸模塊116可以在變量被復(fù)制時請求對于變量的動態(tài)存儲器分配。變化數(shù)據(jù)傳輸模塊116可以通過在原始指針索引242中尋找收集的過去變化數(shù)據(jù)來定位原始變量讀取位置(例如,原始變量位置232)。例如,變化數(shù)據(jù)傳輸模塊116可以通過至少部分地基于永久指針262在原始指針索引242中查找收集的過去變化數(shù)據(jù)來定位原始變量位置232。變化數(shù)據(jù)傳輸模塊116可以至少部分地基于原始變量讀取位置(例如,原始變量位置232)通過參考目的地指針索引244來確定目的地寫入位置。例如,變化數(shù)據(jù)傳輸模塊116可以至少部分地基于永久指針264通過參考目的地指針索引244來確定目的地寫入位置。變化數(shù)據(jù)傳輸模塊116可以至少部分地基于這樣的目的地寫入位置將存儲器狀態(tài)寫入目的地存儲器狀態(tài)314。
[0045]額外地或替選地,變化數(shù)據(jù)傳輸模塊116可以組合地使用原始指針索引242和目的地指針索引244來對于原始虛擬機102和目的地虛擬機104之間的位置變化進行調(diào)整以轉(zhuǎn)換程序狀態(tài)數(shù)據(jù)(例如,原始可執(zhí)行文件202當前處理到代碼的哪一行)。例如,原始指針索引242的書簽指針252可以與被指定為用于從原始虛擬機102進行切換的邏輯點(例如,原始書簽位置222)的原始可執(zhí)行文件202內(nèi)的各點關(guān)聯(lián)。例如,書簽指針252可以與頻繁執(zhí)行點(例如,諸如每個過程和/或功能調(diào)用)關(guān)聯(lián)并且可以在原始虛擬機102的執(zhí)行位置處于這些點之一時來進行實際的轉(zhuǎn)移。
[0046]類似地,目的地指針索引244的書簽指針254可以與被指定為用于切換到目的地虛擬機104的邏輯點(例如,目的地書簽位置224)的目的地可執(zhí)行文件內(nèi)的各點關(guān)聯(lián)。在操作中,變化數(shù)據(jù)傳輸模塊116可以通過參考原始指針索引242的書簽指針252至目的地指針索引244的書簽指針254來對于原始虛擬機102和目的地虛擬機104之間的位置變化來進行調(diào)整。一旦原始虛擬機102和目的地虛擬機的環(huán)境狀態(tài)(例如,包括具有都被轉(zhuǎn)換為與目的地可執(zhí)行文件204兼容的返回坐標和狀態(tài)的匹配的永久狀態(tài)存儲器和動態(tài)狀態(tài)存儲器)匹配,任何過程調(diào)用可以是轉(zhuǎn)移處理的可變點。因此,當變化隊列為空時、當原始可執(zhí)行文件202的執(zhí)行處于編制了索引的書簽指針時以及當目的地可執(zhí)行文件204已經(jīng)結(jié)束啟動時可以觸發(fā)轉(zhuǎn)移。
[0047]在所示的示例中,原始虛擬機102和目的地虛擬機104可以具有其自己的版本的AP1、功能和/或系統(tǒng)服務(wù)(例如,原始AP1、功能和/或系統(tǒng)服務(wù)306和目的地AP1、功能和/或系統(tǒng)服務(wù)308)。這樣的AP1、功能和/或系統(tǒng)服務(wù)306和308可以在目的地虛擬機104啟動以準備移動服務(wù)時變?yōu)榭捎?。相同或類似的API和庫可以通常對于每個虛擬機類型是可用的。
[0048]圖4示出了根據(jù)本公開的至少一些實施方式布置的用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機的示例性處理400。在所示的示例中,這里描述的處理400和其它處理描述了各種功能塊或操作,其可以被描述為處理步驟、功能操作、事件和/或操作等等,其可以由硬件、軟件和/或固件執(zhí)行。考慮本公開的本領(lǐng)域技術(shù)人員將了解的是,可以以各種實施方式來實施圖4中所示的功能塊的多個替選方案。例如,雖然如圖4中所示的處理400可以包括一個特定順序的塊或操作,這些塊或操作的順序不必將所附權(quán)利要求記載的主題限制到任何特定的順序。類似地,在不偏離所附群里一切的主題的范圍的情況下,可以采用圖4中沒有示出的中間操作和/或圖4中未示出的附加操作和/或可以消除圖4中所示的操作中的一些。處理400可以包括如示例性操作402、404、406和/或408指示的功能操作中的一個或多個。
[0049]如所示的,處理400可以實施為用于將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機(參見例如圖1)。處理可以開始于操作402,“啟動目的地可執(zhí)行文件”,其中,目的地可執(zhí)行文件可以在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時在目的地虛擬機上啟動。在一些示例中,目的地虛擬機可以具有與原始虛擬機不同的特性。在一些示例中,目的地虛擬機上的目的地可執(zhí)行文件的啟動可以包括在變量的聲明期間以及在與聲明的變量關(guān)聯(lián)的存儲器位置的確定期間利用初始的空存儲器運行目的地可執(zhí)行文件。例如,目的地可執(zhí)行文件可以訪問初始空的存儲器(例如,完全空的存儲器或者包括預(yù)備偽數(shù)據(jù)的存儲器)并且設(shè)置變量以分配存儲器并且生成變量(例如,可以利用原始和/或目的地指針索引來使用這樣的變量以利用原始數(shù)據(jù)執(zhí)行尋找和替換操作)。在這樣的示例中,目的地可執(zhí)行文件可以在永久狀態(tài)數(shù)據(jù)和/或變化數(shù)據(jù)的傳輸之前與原始可執(zhí)行文件盡可能近地運行,這時,管理器可以凍結(jié)目的地可執(zhí)行文件直到永久狀態(tài)數(shù)據(jù)和變化數(shù)據(jù)的傳輸完成。
[0050]處理可以從操作402繼續(xù)到操作404 “傳輸永久狀態(tài)數(shù)據(jù)”,其中可以傳輸永久狀態(tài)數(shù)據(jù)。例如,永久狀態(tài)數(shù)據(jù)可以從原始虛擬機傳輸?shù)侥康牡靥摂M機。
[0051]處理可以從操作404繼續(xù)到操作406 “傳輸變化數(shù)據(jù)”,其中可以傳輸變化數(shù)據(jù)。例如,變化數(shù)據(jù)可以從與原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)侥康牡靥摂M機。在一些示例中,變化數(shù)據(jù)的這樣的傳輸可以在在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時進行。在一些示例中,整體傳輸動態(tài)狀態(tài)數(shù)據(jù)可以在變化數(shù)據(jù)的傳輸之前(或與變化數(shù)據(jù)的初始傳輸同時)進行,并且然后,可以進行變化數(shù)據(jù)的傳輸以保持動態(tài)狀態(tài)數(shù)據(jù)更新。
[0052]在一些示例中,變化數(shù)據(jù)的這樣的傳輸可以進一步包括至少部分地基于原始指針索引將變化數(shù)據(jù)從原始虛擬機傳輸?shù)侥康牡靥摂M機。例如,原始指針索引可以包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針。在這樣的示例中,永久指針可以指示對應(yīng)的原始變量位于原始可執(zhí)行文件中的何處,并且原始變量指針可以指示對應(yīng)的原始變量位于原始存儲器中何處。因此,變化數(shù)據(jù)的傳輸可以包括在原始指針索引內(nèi)的循環(huán)。
[0053]在一些示例中,變化數(shù)據(jù)的這樣的傳輸可以進一步包括至少部分地基于目的地指針索引將變化數(shù)據(jù)從原始虛擬機傳輸?shù)侥康牡靥摂M機。例如,目的地指針索引可以包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針。在這樣的示例中,永久指針可以指示對應(yīng)的目的地變量位于目的地可執(zhí)行文件中的何處,并且目的地變量指針可以指示對應(yīng)的目的地變量位于目的地存儲器中何處。因此,變化數(shù)據(jù)的傳輸可以包括在目的地指針索引內(nèi)的循環(huán)。
[0054]處理可以從操作406繼續(xù)到操作408 “從原始虛擬機切換到目的地虛擬機”,其中可以執(zhí)行從原始虛擬機切換到目的地虛擬機。例如,從原始虛擬機到目的地虛擬機的這樣的切換可以在目的地可執(zhí)行文件的啟動已經(jīng)完成并且變化隊列為空時進行。
[0055]可以在下面參考圖5更詳細地討論的實施方案的一個或多個示例中示出與處理400相關(guān)的一些額外的和/或替選的細節(jié)。
[0056]圖5示出了根據(jù)本公開至少一些實施方式布置的將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機的另一示例處理。處理500可以包括如示例性操作502、504、506、508、510、512、514、516、518、520、522、524和/或526示出的功能操作中的一個或多個。
[0057]如所示的,處理500可以實施為將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機(參見例如圖1)。處理可以開始于操作502 “啟動目的地虛擬機”,其中可以啟動目的地虛擬機。例如,可以啟動具有不同于原始虛擬機的特性的目的地虛擬機。
[0058]處理可以從操作502繼續(xù)到操作504 “目的地虛擬機完成啟動”,其中可以進行關(guān)于目的地虛擬機是否完成啟動的確定。例如,可以進行關(guān)于目的地虛擬機是否完成啟動的確定。在目的地虛擬機沒有完成啟動的情況下,可以重復(fù)操作504。在目的地虛擬機完成了啟動的情況下,處理可以從操作504繼續(xù)到操作506和/或508。
[0059]處理可以從操作504繼續(xù)到操作506 “啟動目的地可執(zhí)行文件”,其中可以在目的地虛擬機上啟動目的地可執(zhí)行文件。例如,目的地可執(zhí)行文件可以在目的地虛擬機上啟動,其中,目的地可執(zhí)行文件可以適合于目的地虛擬機,與原始虛擬機相反(例如,可以是當目的地虛擬機具有不同于原始虛擬機的特性時的情況)。在一些示例中,目的地可執(zhí)行文件可以在原始虛擬機可以繼續(xù)執(zhí)行原始可執(zhí)行文件的同時在目的地虛擬機上啟動。在一些示例中,目的地虛擬機上的目的地可執(zhí)行文件的啟動可以包括在變量的聲明期間以及在與聲明的變量關(guān)聯(lián)的存儲器位置的確定期間利用初始空的存儲器運行目的地可執(zhí)行文件。
[0060]處理還可以從操作504繼續(xù)到操作508 “復(fù)制永久狀態(tài)數(shù)據(jù)”,其中可以復(fù)制永久狀態(tài)數(shù)據(jù)。例如,可以從原始虛擬機復(fù)制永久狀態(tài)數(shù)據(jù)以由目的虛擬機使用。處理可以從操作508繼續(xù)到操作510“在目的地寫入永久狀態(tài)”,其中可以寫入永久狀態(tài)數(shù)據(jù)。例如,永久狀態(tài)數(shù)據(jù)可以寫入到目的地虛擬機以完成從原始虛擬機到目的地虛擬機的永久狀態(tài)數(shù)據(jù)的傳輸。
[0061]處理可以從操作510繼續(xù)到操作512 “準備好切換”,其中可以對于目的地虛擬機是否準備好將操作從原始虛擬機切換到目的地虛擬機進行確定。例如,可以至少部分地基于目的地可執(zhí)行文件的啟動是否完成、變化隊列是否為空和/或目的地可執(zhí)行文件的執(zhí)行地址是否與目的地指針索引中的多個書簽指針中的一個關(guān)聯(lián)的確定來進行目的地虛擬機是否準備好切換操作的這樣的確定。如上所述,目的地指針索引中的這樣的書簽指針可以與被指定為用于切換到目的地虛擬機的邏輯點的目的地可執(zhí)行文件內(nèi)的各點關(guān)聯(lián)。在目的地虛擬機準備好切換操作的情況下,處理可以從操作512繼續(xù)到操作526。在目的地虛擬機沒有準備好切換操作的情況下,處理可以從操作512繼續(xù)到操作514。
[0062]處理可以從操作512繼續(xù)到操作514 “收集變化數(shù)據(jù)”,其中可以從原始虛擬機收集過去的變化數(shù)據(jù)。例如,可以從與原始虛擬機關(guān)聯(lián)的變化隊列經(jīng)由塊操作等等收集這樣的過去的變化數(shù)據(jù)。在一些示例中,整體地傳輸動態(tài)狀態(tài)數(shù)據(jù)可以在變化數(shù)據(jù)的傳輸之前進行,并且然后,可以執(zhí)行變化數(shù)據(jù)的傳輸以保持動態(tài)狀態(tài)數(shù)據(jù)更新。
[0063]處理可以從操作514繼續(xù)到操作516 “在原始指針索引中查找原始變量位置”,其中可以在原始指針索引中查找原始變量位置。例如,可以通過經(jīng)由原始指針索引查找收集的過去的變化數(shù)據(jù)來定位原始變量讀取位置(例如,用于從原始可執(zhí)行文件轉(zhuǎn)換到目的地可執(zhí)行文件)。在這樣的示例中,原始指針索引可以包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針。在一些示例中,原始索引指針可以獲取變化數(shù)據(jù)并且使用永久指針來指向與原始變量指針(例如,原始可執(zhí)行文件中的指針)關(guān)聯(lián)的地址,原始變量指針可以相應(yīng)地指向原始存儲器中的原始變量。例如,原始指針索引可以包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針。在這樣的示例中,永久指針可以指示對應(yīng)的原始變量指針位于原始可執(zhí)行文件中的何處,并且原始變量指針可以指示對應(yīng)的原始變量位于原始存儲器中的何處(例如,原始變量指針指示原始讀取位置)。
[0064]處理可以從操作516繼續(xù)到操作518 “通過目的地指針索引指向?qū)懭胛恢谩保渲锌梢越?jīng)由目的地指針索引查找與目的地變量關(guān)聯(lián)的寫入位置。例如,可以通過至少部分地基于原始變量讀取位置通過目的地指針索引進行參考來定位目的地寫入位置(例如,用于從原始可執(zhí)行文件轉(zhuǎn)換到目的地可執(zhí)行文件)(參見例如操作516)。在一些示例中,目的地索引指針可以包括永久指針,其可以指向與目的地變量指針(目的地可執(zhí)行文件中的指針)關(guān)聯(lián)的地址,其中目的地變量指針可以相應(yīng)地指向用于將原始變量寫入到目的地存儲器的地址。例如,目的地指針索引可以包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針。在這樣的示例中,永久指針可以指示對應(yīng)的目的地變量指針位于目的地可執(zhí)行文件中何處,并且目的地變量指針可以指示對應(yīng)的目的地變量位于目的地存儲器中何處(例如,目的地變量指針指示目的地寫入位置)。
[0065]處理可以從操作518繼續(xù)到操作520“如果索引變量是執(zhí)行基準,則更新值”,其中是執(zhí)行基準的變化數(shù)據(jù)可以觸發(fā)更新值。例如,這樣的執(zhí)行基準可以指原始可執(zhí)行文件當前處理的行。當變化數(shù)據(jù)指示與原始可執(zhí)行文件關(guān)聯(lián)的執(zhí)行基準的變化時,操作520將更新與目的地可執(zhí)行文件關(guān)聯(lián)的對應(yīng)的執(zhí)行基準值。在一些示例中,目的地指針索引可以包括多個書簽指針,其中書簽指針可以與目的地可執(zhí)行文件內(nèi)已經(jīng)被指定為用于切換到目的地虛擬機的邏輯點的各點或者可以出現(xiàn)在執(zhí)行基準中的諸如過程返回點、if/then表述或循環(huán)的點關(guān)聯(lián)。在這樣的示例中,可以在操作512中利用與目的地可執(zhí)行文件關(guān)聯(lián)的更新后的對應(yīng)執(zhí)行基準值,其中,對于目的地可執(zhí)行文件的執(zhí)行地址是否與目的地指針索引中的多個書簽指針中的一個關(guān)聯(lián)進行確定。
[0066]額外地或替選地,可以在執(zhí)行基準包括目的地可執(zhí)行文件內(nèi)的過程位置、目的地可執(zhí)行文件內(nèi)的返回位置、過程的返回寄存器等等和/或其組合中的一個或多個。在這樣的示例中,執(zhí)行基準值可以指目的地可執(zhí)行文件內(nèi)的多個位置。在這樣的情況下,操作520可以操作使得可以在目的地可執(zhí)行文件中更新所有這些位置。由于原始虛擬機與目的地虛擬機之間的操作的轉(zhuǎn)移可以進行中同時可能需要針對返回點等等的執(zhí)行指針,因此可以執(zhí)行這樣的對于目的地可執(zhí)行文件內(nèi)的位置的更新。例如,原始指針索引和/或目的地指針索引可以包含針對關(guān)聯(lián)的可執(zhí)行文件內(nèi)的各過程位置的指針(例如,書簽指針可以與目的地可執(zhí)行文件內(nèi)已經(jīng)指定為切換到目的地虛擬機的邏輯點的各點或可以出現(xiàn)在執(zhí)行基準中的諸如過程返回點、if/then表述或循環(huán)的點關(guān)聯(lián))。在這樣的示例中,從過程開始的返回位置和返回寄存器在轉(zhuǎn)換時可以不僅被復(fù)制而且使其內(nèi)容得到更新使得返回到目的地可執(zhí)行文件中的等效位置。在操作中,例如,可以經(jīng)由相對簡單的編索引操作的迭代性能來更新從過程開始的返回位置和返回寄存器。
[0067]處理可以從操作520繼續(xù)到操作522 “在目的地處的索引位置中寫入存儲器狀態(tài)”,其中可以至少部分地基于經(jīng)由目的地指針索引查找的目的地寫入位置來執(zhí)行到目的地存儲器的寫入。例如,與目的地變量關(guān)聯(lián)的在操作518經(jīng)由目的地指針索引之前查找的寫入位置可以用于寫入到目的地存儲器。
[0068]處理可以從操作522繼續(xù)到操作524 “完成變化”,其中可以對于收集的變化是否已經(jīng)完成進行確定。在收集的變化數(shù)據(jù)還沒有完成的情況下,處理可以在迭代循環(huán)中從操作524繼續(xù)返回到操作516。例如,這樣的迭代循環(huán)可以重復(fù)下述操作直到收集的過去的變化已經(jīng)被處理(參見例如操作524):在原始指針索引中查找原始變量位置(參見例如操作516)、確定目的地寫入位置(參見例如操作518)、更新執(zhí)行基準值(參見例如操作520)和/或?qū)懭氪鎯ζ鳡顟B(tài)。在收集的變化數(shù)據(jù)都得到處理的情況下,處理可以從操作524繼續(xù)到操作512。例如,可以重復(fù)過去的變化的收集(參見例如操作514),直到目的地可執(zhí)行文件準備就緒,變化隊列為空和當前執(zhí)行地址對應(yīng)于目的地指針索引中的書簽指針(參見例如操作512)。
[0069]在目的地虛擬機準備好切換操作的情況下,處理可以從操作512繼續(xù)到操作526。處理可以從操作512繼續(xù)到操作526 “利用可執(zhí)行文件地址轉(zhuǎn)換切換到目的地”,其中可以執(zhí)行從原始虛擬機到目的地虛擬機的切換。例如,從原始虛擬機到目的地虛擬機的這樣的切換可以包括利用已經(jīng)從原始可執(zhí)行文件中的位置轉(zhuǎn)換到目的地可執(zhí)行文件中的關(guān)聯(lián)位置的執(zhí)行地址。在一些示例中,從原始虛擬機到目的地虛擬機的這樣的切換可以在目的地可執(zhí)行文件的啟動已經(jīng)完成并且變化隊列為空時進行。
[0070]在操作中,處理500 (和/或圖4中的處理400)可以用于從較低能力的原始虛擬機移動到較高能力的目的地虛擬機。類似地,處理500 (和/或圖4中的處理400)可以用于從較高能力的目的地虛擬機移動到較低能力的原始虛擬機。例如,移動到具有較低能力的虛擬機(例如,在需求峰過去之后可能發(fā)生該情況)可以以與移動到具有較高能力的虛擬機的方式相同或類似的方式進行。在這樣的示例中,可以向處理500(和/或圖4中的處理400)添加操作,其可以用于使應(yīng)用程序清空不需要的存儲器(例如,垃圾收集)。
[0071]在操作中,處理500 (和/或圖4中的處理400)可以允許在它們將要進行任務(wù)時使用較小的云虛擬機,并且僅在需要時使用較大的云虛擬機,以減少或消除停機時間。這樣的能力可以在當前定價模型下計算為使很多用戶節(jié)省百分之九十或更多,并且還可以在更慢的時間期間為微型服務(wù)器提供額外的效率和市場共享,允許未來的數(shù)據(jù)中心以更少的功率和熱來支持更多的顧客。例如,很多用戶可以發(fā)現(xiàn)在定義為它們的最忙時刻期間不得不停止并且移動處理的影響是不可接受的并且因此它們會需要購買“大”或甚至“超大”虛擬機以針對有限的幾次需要時進行保護。在“大”虛擬機定價為“小”虛擬機的價格的四倍并且“超大”虛擬機定價為“小”虛擬機的價格的八倍的情況下,如果這樣的用戶能夠在大部分時間僅運行在小虛擬機上并且在沒有停止的情況下無縫地移動到更大的虛擬機,則它們能夠使其開銷減少幾乎4-8倍。
[0072]另外地或替選地,處理500 (和/或處理400)可以在準時環(huán)境中執(zhí)行。在這樣的示例中,原始虛擬機和目的地虛擬機可以利用復(fù)制輸入而并行地運行。來自原始虛擬機和目的地虛擬機的輸出可以在從原始虛擬機切換到目的地虛擬機之前至少部分地基于復(fù)制輸入而進行比較。這樣的編譯系統(tǒng)可以在動態(tài)編譯代碼、追蹤大的需求過程調(diào)用和然后關(guān)注于這些大的需求過程調(diào)用中循環(huán)。這樣的準時型編譯系統(tǒng)可以接收統(tǒng)一的部分編譯的二進制或“瘦二進制”并且然后進行本地編譯,其可以根據(jù)需要調(diào)整為專用于運行程序的裝置。在處理500 (和/或處理400)在準時環(huán)境中執(zhí)行的情況下,與原始指針索引模塊112和/或目的地指針索引模塊114關(guān)聯(lián)的操作可以替代地在JIT編譯器級別實施,而其它操作可以以與處理400和/或處理500中描述的相同和/或類似的方式執(zhí)行。在對代碼進行連續(xù)的優(yōu)化的情況下,這樣的優(yōu)化可以在遷移過程中對于原始虛擬機和目的地虛擬機進行權(quán)衡。
[0073]另外地或替選地,處理500 (和/或處理400)可以在任意二進制型環(huán)境中執(zhí)行??梢允褂酶鞣N方法來嘗試標出包括建造調(diào)用樹和分支圖的已編譯的二進制。例如,局部拓撲可以在這樣的調(diào)用樹內(nèi)匹配以構(gòu)造用于每個變量和執(zhí)行基準的標識,使得用于原始虛擬機和目的地虛擬機的指針索引能夠?qū)⒃甲兞科ヅ涞侥康牡刈兞俊?br> [0074]另外或替選地,處理500 (和/或處理400)可以在需要存儲器管理的情況下生成軟件的特殊云版本。例如,當(例如,對于軟件許可鎖定)使用完全的存儲器管理(例如,依賴于將某些對象匹配到特定地址的管理)時,可以生成軟件的這樣的特殊云版本,其不要求這樣的特殊存儲器管理,而是替代地可以依賴于與虛擬機管理器的直接通信。
[0075]圖6示出了根據(jù)本公開的至少一些示例布置的示例性計算機程序產(chǎn)品600。程序產(chǎn)品600可以包括信號承載介質(zhì)602。信號承載介質(zhì)602可以包括一個或多個機器可讀指令604,其如果由一個或多個處理器執(zhí)行,則可以可操作地使得計算裝置能夠提供上面參考圖4和/或圖5描述的功能。因此,例如,參考圖1的系統(tǒng),云計算系統(tǒng)100可以響應(yīng)于由介質(zhì)602傳輸?shù)闹噶?04采取圖4和/或圖5中所示的操作中的一個或多個。
[0076]在一些實現(xiàn)中,信號承載介質(zhì)602可以包括計算機可讀介質(zhì)606,諸如但不限于硬盤驅(qū)動器、⑶、DVD、數(shù)字帶、存儲器等。在一些實現(xiàn)中,信號承載介質(zhì)602可以包括可記錄介質(zhì)608,諸如但不限于存儲器、讀/寫(R/W)⑶、R/ff DVD等。在一些實現(xiàn)中,信號承載介質(zhì)602可以包括通信介質(zhì)610,諸如但不限于數(shù)字和/或模擬通信介質(zhì)(例如,光纖線纜、波導、有線通信鏈路、無線通信鏈路等)。
[0077]圖7是示出根據(jù)本公開的至少一些實施方式布置的例如可以由本領(lǐng)域技術(shù)人員實施的示例性計算裝置700的框圖。在一個示例性配置701中,計算裝置700可以包括一個或更多個處理器710和系統(tǒng)存儲器720。存儲器總線730可以用于在處理器710和系統(tǒng)存儲器720之間通信。
[0078]根據(jù)想要的配置,處理器710可以是任何類型,包括但不限于微處理器(μ P)、微控制器(μ C)、數(shù)字信號處理器(DSP)或者它們的任意組合。處理器710可以包括諸如一級緩存711和二級緩存712的一級或更多級緩存、處理器核心713和寄存器714。處理器核心713可以包括算術(shù)邏輯單元(ALU)、浮點單元(FPU)、數(shù)字信號處理核心(DSP核心)或者它們的任意組合。存儲器控制器715還可以與處理器710 —起使用,或者在一些實現(xiàn)中,存儲器控制器715可以是處理器710的內(nèi)部部分。
[0079]根據(jù)想要的配置,系統(tǒng)存儲器720可以是任何類型,包括但不限于易失性存儲器(諸如RAM)、非易失性存儲器(諸如ROM、閃速存儲器等)或者它們的任意組合。系統(tǒng)存儲器720可以包括操作系統(tǒng)721、一個或更多個應(yīng)用722以及程序數(shù)據(jù)724。應(yīng)用722可以包括被布置為執(zhí)行參考圖4的處理400和/或圖5的處理500描述的功能塊和/或操作的這里描述的功能的轉(zhuǎn)移算法723。程序數(shù)據(jù)724可以包括用于與轉(zhuǎn)移算法一起使用的變化數(shù)據(jù)725。在一些示例實施方式中,應(yīng)用722可以被布置為利用程序數(shù)據(jù)724在操作系統(tǒng)721上操作使得可以如這里描述地提供將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機同時原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的實施方案。例如,云計算系統(tǒng)100 (參見例如圖1)可以包括計算裝置700的全部或一部分并且能夠執(zhí)行應(yīng)用722的全部或一部分使得可以如這里描述地提供將操作從原始虛擬機轉(zhuǎn)移到目的地虛擬機同時原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的實施方案。該描述的基本配置在圖7中由虛線701內(nèi)的組件示出。
[0080]計算裝置700可以具有附加的特征或功能以及附加接口,以便于基本配置701與任何所需裝置和接口之間的通信。例如,可以使用總線/接口控制器740以便于經(jīng)由存儲裝置接口總線741的基本配置701和一個或更多個數(shù)據(jù)存儲裝置750之間的通信。數(shù)據(jù)存儲裝置750可以是可移除存儲裝置751、非可移除存儲裝置752或二者的組合。舉例來說,可移除存儲裝置和非可移除存儲裝置的示例包括磁盤裝置(例如,柔性盤驅(qū)動器和硬盤驅(qū)動器(HDD))、光盤驅(qū)動器(例如,壓縮盤(⑶)驅(qū)動器或數(shù)字通用盤(DVD)驅(qū)動器)、固態(tài)驅(qū)動器(SSD)和帶驅(qū)動器。示例計算機存儲介質(zhì)可以包括在用于存儲信息(例如,計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù))的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移除和非可移除介質(zhì)。
[0081]系統(tǒng)存儲器720、可移除存儲裝置751和非可移除存儲裝置752都是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括但不限于RAM、ROM、EEPR0M、閃速存儲器或其它存儲技術(shù)、CD-ROM、數(shù)字通用盤(DVD )或其它光學存儲裝置、磁帶盒、磁帶、磁盤存儲裝置或其它磁性存儲裝置、或者可以用于存儲期望的信息并且可以被計算裝置700訪問的任何其它介質(zhì)。任何這種計算機存儲介質(zhì)可以是裝置700的一部分。
[0082]計算裝置700還可以包括接口總線742,所述接口總線742便于經(jīng)由總線/接口控制器740從各種接口裝置(例如,輸出接口、外圍接口和通信接口)到基本配置701的通信。示例輸出接口 760可以包括圖形處理單元761和音頻處理單元762,所述圖形處理單元761和所述音頻處理單元762可以被配置為經(jīng)由一個或更多個A/V端口 763與諸如顯示器或揚聲器的各種外部裝置進行通信。示例外圍接口 760可以包括串行接口控制器771或并行接口控制器772,所述串行接口控制器771或所述并行接口控制器772可以被配置為經(jīng)由一個或更多個I/O端口 773與諸如輸入裝置(例如,鍵盤、鼠標、筆、語音輸入裝置、觸摸輸入裝置等)的外部裝置或其它外圍裝置(例如,打印機、掃描儀等)進行通信。示例通信接口 780包括網(wǎng)絡(luò)控制器781,所述網(wǎng)絡(luò)控制器781可以被設(shè)置為便于經(jīng)由一個或更多個通信端口 782通過網(wǎng)絡(luò)通信鏈路與一個或更多個其它計算裝置790進行通信。網(wǎng)絡(luò)連接是通信介質(zhì)的一個示例。通信介質(zhì)通常可以由計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者調(diào)制數(shù)據(jù)信號(諸如載波或其它傳輸機制)中的其它數(shù)據(jù)來實現(xiàn),并且可以包括任何信息傳送介質(zhì)?!罢{(diào)制數(shù)據(jù)信號”可以是具有以對信號中的信息進行編碼的方式設(shè)置或改變的一個或更多個特征的信號。舉例來說,并且沒有限制,通信介質(zhì)可以包括有線介質(zhì)(例如,有線網(wǎng)絡(luò)或直接有線連接)和無線介質(zhì)(例如,聲學、射頻(RF)、微波、紅外(IR)和其它無線介質(zhì))。這里使用的術(shù)語計算機可讀介質(zhì)可以包括存儲介質(zhì)和通信介質(zhì)這二者。
[0083]計算裝置700可以被實現(xiàn)為小型因素便攜式(或移動)電子裝置(例如,蜂窩電話、個人數(shù)據(jù)助理(PDA )、個人媒體播放器裝置、無線網(wǎng)絡(luò)觀看裝置、個人頭戴裝置、專用裝置或包括以上功能中的任何一個的混合裝置)。計算裝置700還可以被實現(xiàn)為包括膝上型計算機和非膝上型計算機配置這二者的個人計算機。另外,計算裝置700可以實施為無線基站或其它無線系統(tǒng)或裝置的一部分。
[0084]前面詳細描述的一些部分已經(jīng)從有關(guān)存儲在計算系統(tǒng)存儲器(如計算機存儲器)內(nèi)的數(shù)據(jù)比特或二進制數(shù)字信號的運算的算法或符號性表述方面進行了呈現(xiàn)。這些算法描述或表述是數(shù)據(jù)處理領(lǐng)域的普通技術(shù)人員所使用的技術(shù)的示例,以向本領(lǐng)域其它技術(shù)人員表達它們的工作的實質(zhì)。算法在此并且通常被視為導致希望結(jié)果的自身一致的運算序列或類似處理。在這個上下文中,運算或處理涉及物理量的物理操縱。通常地,盡管不必須,但這種量采取能夠被存儲、傳遞、組合、比較或以其它方式操縱的電或磁信號形式。已經(jīng)證實,有時便利地,主要出于常見用法的理由,來將這種信號稱為比特、數(shù)據(jù)、值、組元、符號、字符、項、數(shù)字、數(shù)值等。然而,應(yīng)當明白的是,所有這些和類似術(shù)語要與適當物理量相關(guān)聯(lián),并且僅是便利性標記。除非如根據(jù)下面討論清楚地另外具體規(guī)定,應(yīng)當清楚的是,在整個說明書中利用諸如“處理(processing) ”、“計算(comput ing)”、“計算(calculating)”、"確定(determining)”等的術(shù)語的討論是指計算裝置的動作和處理,其操縱或變換表示為存儲器、寄存器,或該計算裝置的其它信息存儲裝置、傳輸裝置,或顯示裝置內(nèi)的物理電子或磁量的數(shù)據(jù)。
[0085]要求保護的主題在范圍上不限于在此描述的特定實現(xiàn)方式。例如,一些實現(xiàn)方式可以采用硬件,舉例來說,如被采用以在裝置或多個裝置的組合上操作,而其它實現(xiàn)方式可以采用軟件和/或固件。同樣地,盡管要求保護的主題在范圍上不限于這方面,但一些實現(xiàn)可以包括一個或更多個物品,如信號承載介質(zhì),存儲介質(zhì)以及/或存儲媒介。這種存儲介質(zhì)(舉例來說,如CD-ROM、計算機盤、閃速存儲器等)可以具有存儲在其上的指令,其在通過計算裝置(舉例來說,如計算系統(tǒng)、計算平臺,或其它系統(tǒng))執(zhí)行時,可以導致處理器根據(jù)要求保護的主題(舉例來說,如先前描述的實現(xiàn)之一)來執(zhí)行。作為一種可能性,計算裝置可以包括:一個或更多個處理單元或處理器、一個或更多個輸入/輸出裝置(如顯示器、鍵盤以及/或鼠標器),以及一個或更多個存儲器(如靜態(tài)隨機存取存儲器、動態(tài)隨機存取存儲器、閃速存儲器,以及/或硬盤驅(qū)動器)。
[0086]系統(tǒng)的多個方面的硬件與軟件實現(xiàn)之間區(qū)別不大;使用硬件還是軟件通常(但并不總是,因為在某些背景下,硬件與軟件之間的選擇可以變得顯著)是表示成本與效率權(quán)衡的設(shè)計選擇。存在可以實現(xiàn)在此描述的處理和/或系統(tǒng)和/或其它技術(shù)(例如,硬件、軟件,以及/或固件)的各種承載工具,并且優(yōu)選承載工具將隨著部署該處理和/或系統(tǒng)和/或其它技術(shù)的背景而改變。例如,如果實現(xiàn)方確定速度和準確度最重要,則該實現(xiàn)方可以選擇主要硬件和/或固件承載工具;如果靈活性最重要,則該實現(xiàn)可以選擇主要軟件實現(xiàn);或者,此外又另選地,該實現(xiàn)可以選擇硬件、軟件,以及/或固件的一些組合。
[0087]前述詳細描述已經(jīng)經(jīng)由使用框圖、流程圖,以及/或示例闡述了該裝置和/或處理的各種實施方式。至于這種框圖、流程圖,以及/或示例包含一個或更多個功能和/或操作,本領(lǐng)域技術(shù)人員應(yīng)當明白,這種框圖、流程圖,或示例內(nèi)的每一個功能和/或操作可以單獨地和/或共同地,通過寬范圍的硬件、軟件、固件,或者實際上其任何組合來實現(xiàn)。在一個實施方式中,在此描述的主旨的幾個部分可以經(jīng)由專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP),或其它集成格式來實現(xiàn)。然而,本領(lǐng)域技術(shù)人員應(yīng)當認識到,在此公開的實施方式的一些方面整個地或者部分地可以等同地在集成電路中實現(xiàn),實現(xiàn)為運行在一個或更多個計算機上的一個或更多個計算機程序(例如,實現(xiàn)為運行在一個或更多個計算機系統(tǒng)上的一個或更多個程序),實現(xiàn)為運行在一個或更多個處理器上的一個或更多個程序(例如,實現(xiàn)為運行在一個或更多個微處理器上的一個或更多個程序),實現(xiàn)為固件,或者實際上實現(xiàn)為其任何組合,并且根據(jù)本公開,設(shè)計電路和/或編寫用于軟件和/或固件的代碼完全處于本領(lǐng)域技術(shù)人員的技術(shù)內(nèi)。另外,本領(lǐng)域技術(shù)人員應(yīng)當清楚的是,在此描述的主題的機制能夠按多種形式作為程序產(chǎn)品分配,并且在此描述的主題的例示性實施方式適用,而與被用于實際執(zhí)行該分配的特定類型的信號承載介質(zhì)無關(guān)。信號承載介質(zhì)的示例包括但不限于,以下:可記錄型介質(zhì),如軟盤、硬盤驅(qū)動器(HDD)、質(zhì)密盤(⑶)、數(shù)字通用盤(DVD)、數(shù)字磁帶、計算機存儲器等;和傳輸型介質(zhì),如數(shù)字和/或模擬通信媒介(例如,光纖線纜、波導管、有線通信鏈路、無線通信鏈路等)。
[0088]本領(lǐng)域技術(shù)人員應(yīng)當認識到,按在此闡述的方式來描述裝置和/或處理,并且此后,使用工程實踐將這樣描述的裝置和/或處理集成到數(shù)據(jù)處理系統(tǒng)中是本領(lǐng)域內(nèi)常見的。即,在此描述的裝置和/或處理的至少一部分可以經(jīng)由合理量的實驗而集成到數(shù)據(jù)處理系統(tǒng)中。本領(lǐng)域技術(shù)人員應(yīng)當認識到的是,通常的數(shù)據(jù)處理系統(tǒng)通常包括以下中的一個或更多個:系統(tǒng)單元外殼、視頻顯示裝置、諸如易失性和非易失性存儲器的存儲器、諸如微處理器和數(shù)字信號處理器的處理器、諸如操作系統(tǒng)、驅(qū)動器、圖形用戶接口,以及應(yīng)用程序的計算實體、諸如觸摸板或觸摸屏的一個或更多個交互式裝置,以及/或包括反饋回路和控制電動機的控制系統(tǒng)(例如,用于感測位置和/或速度的反饋;用于移動和/或調(diào)節(jié)組件和/或數(shù)量的控制馬達)。通常的數(shù)據(jù)處理系統(tǒng)可以利用任何合適商業(yè)可獲組件來實現(xiàn),如通常在數(shù)據(jù)計算/通信和/或網(wǎng)絡(luò)通信/計算系統(tǒng)中找到的那些。
[0089]在此描述的主題有時例示了包含在不同的其它組件內(nèi)或與其相連接的不同組件。要明白的是,這樣描繪的架構(gòu)僅僅是示例性的,并且實際上,可以實現(xiàn)獲得相同功能的許多其它架構(gòu)。在概念意義上,用于獲得相同功能的組件的任何排布結(jié)構(gòu)都有效地“關(guān)聯(lián)”,以使獲得希望功能。因此,在此為獲得特定功能而組合的任兩個組件都可以被看作彼此“相關(guān)聯(lián)”,以使獲得希望功能,而與架構(gòu)或中間組件無關(guān)。同樣地,這樣關(guān)聯(lián)的任兩個組件還可以被視作彼此“可操作地連接”,或“可操作地耦接”,以獲得希望功能,并且能夠這樣關(guān)聯(lián)的任兩個組件也可以被視作可彼此“操作地耦接”,以獲得希望功能??刹僮鞯伛罱拥木唧w示例包括但不限于,物理上可配合和/或物理上交互的組件和/或可無線地交互和/或無線地交互的組件和/或邏輯上交互和/或邏輯上可交互組件。
[0090]針對在此實質(zhì)上使用的任何復(fù)數(shù)和/或單數(shù)術(shù)語,本領(lǐng)域技術(shù)人員可以針對背景和/或應(yīng)用在適當時候從復(fù)數(shù)翻譯成單數(shù)和/或從單數(shù)翻譯成復(fù)數(shù)。為清楚起見,各種單數(shù)/多數(shù)置換在此可以確切地闡述。
[0091 ] 本領(lǐng)域技術(shù)人員應(yīng)當明白,一般來說,在此使用的,而且尤其是在所附權(quán)利要求書中(例如,所附權(quán)利要求書的主體)使用的術(shù)語通常旨在作為“開放式”措辭(例如,措辭“包括(including)”應(yīng)當解釋為“包括但不限于”,措辭“具有(having)”應(yīng)當解釋為“至少具有”,措辭“包括(include)”應(yīng)當解釋為“包括但不限于”等)。本領(lǐng)域技術(shù)人員還應(yīng)當明白,如果想要特定數(shù)量的介紹權(quán)利要求列舉,則這種意圖將明確地在該權(quán)利要求中陳述,并且在沒有這些列舉的情況下,不存在這種意圖。例如,為幫助理解,下面所附權(quán)利要求書可以包含使用介紹性短語“至少一個”和“一個或更多個”來介紹權(quán)利要求列舉。然而,使用這種短語不應(yīng)被認作,暗示由不定冠詞“一(a)”或“一(an)”介紹的權(quán)利要求列舉將包含這種介紹權(quán)利要求列舉的任何特定權(quán)利要求限制于僅包含一個這種列舉的發(fā)明,即使同一權(quán)利要求包括介紹性短語“一個或更多個”或“至少一個”以及諸如“一(a)”或“一(an)”的不定冠詞(例如,“一(a)”或“一(an)”通常應(yīng)當被解釋成意指“至少一個”或“一個或更多個”);其對于使用為介紹權(quán)利要求列舉而使用的定冠詞來說同樣保持為真。另外,即使明確地陳述特定數(shù)量的介紹權(quán)利要求列舉,本領(lǐng)域技術(shù)人員也應(yīng)當認識到,這種列舉通常應(yīng)當被解釋成,至少意指所陳述數(shù)量(例如,“兩個列舉”的僅有的列舉在沒有其它修飾語的情況下通常意指至少兩個列舉,或者兩個或更多個列舉)。而且,在使用類似于“A、B,以及C等中的至少一個”的慣例的那些實例中,一般來說,這種句法結(jié)構(gòu)希望本領(lǐng)域技術(shù)人員在意義上應(yīng)當理解這種慣例(例如,“具有A、B,以及C中的至少一個的系統(tǒng)”應(yīng)當包括但不限于具有單獨A、單獨B、單獨C、A和B —起、A和C 一起、B和C 一起,以及/或A、B以及C 一起等的系統(tǒng))。在使用類似于“A、B,或C等中的至少一個”的慣例的那些實例中,一般來說,這種句法結(jié)構(gòu)希望本領(lǐng)域技術(shù)人員在意義上應(yīng)當理解這種慣例(例如,“具有A、B,或C中的至少一個的系統(tǒng)”應(yīng)當包括但不限于具有單獨A、單獨B、單獨C、A和B —起、A和C 一起、B和C 一起,以及/或A、B以及C 一起等的系統(tǒng))。本領(lǐng)域技術(shù)人員還應(yīng)當明白的是,實際上,呈現(xiàn)兩個或更多個另選術(shù)語的任何轉(zhuǎn)折詞和/短語(無論處于描述、權(quán)利要求書中,還是在附圖中)應(yīng)當被理解成,設(shè)想包括這些術(shù)語、這些術(shù)語中的任一個,或者兩個術(shù)語的可能性。例如,短語“A或B”應(yīng)當被理解成,包括“A”或“B”或“A和B”的可能性。
[0092]本說明書中針對“實現(xiàn)方式”、“ 一個實現(xiàn)方式”、“ 一些實現(xiàn)方式”,或“其它實現(xiàn)方式”的引用可以意指,結(jié)合一個或更多個實現(xiàn)方式描述的特定特征、結(jié)構(gòu),或特性可以被包括在至少一些實現(xiàn)方式中,但不必被包括在所有實現(xiàn)方式中。前述描述中不同出現(xiàn)的“實現(xiàn)方式”、“一個實現(xiàn)方式”,或“一些實現(xiàn)方式”不必全部針對同一實現(xiàn)方式而引用。
[0093]雖然利用不同方法和系統(tǒng)描述和示出了特定示例性技術(shù),但本領(lǐng)域技術(shù)人員應(yīng)當明白,在不脫離要求保護的主題的情況下,可以進行各種其它修改,并且可以代替等同物。另外,在不脫離在此描述的中心概念的情況下,可以進行許多修改以使適應(yīng)針對要求保護的主題的教導的特定情況。因此,要求保護的主題不限于所公開的特定示例,而是這種要求保護的主題還可以包括落入所附權(quán)利要求書及其等同物的范圍內(nèi)的所有實現(xiàn)。
【權(quán)利要求】
1.一種方法,所述方法包括: 在原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的同時在目的地虛擬機上啟動目的地可執(zhí)行文件,其中,所述目的地虛擬機具有與所述原始虛擬機不同的特性; 將永久狀態(tài)數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機; 在所述原始虛擬機繼續(xù)執(zhí)行所述原始可執(zhí)行文件的同時將變化數(shù)據(jù)從與所述原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)剿瞿康牡靥摂M機;以及 當所述目的地可執(zhí)行文件的啟動完成并且所述變化隊列為空時,從所述原始虛擬機切換到所述目的地虛擬機。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述目的地虛擬機上的所述目的地可執(zhí)行文件的啟動包括利用初始空的存儲器運行所述目的地可執(zhí)行文件以聲明變量并且確定與所聲明的變量關(guān)聯(lián)的存儲器位置。
3.根據(jù)權(quán)利要求1所述的方法,其中,傳輸所述變化數(shù)據(jù)的步驟進一步包括: 從與所述原始虛擬機關(guān)聯(lián)的所述變化隊列收集過去變化數(shù)據(jù); 通過經(jīng)由原始指針索引查找收集的過去變化數(shù)據(jù)來定位原始變量讀取位置; 至少部分地基于所定位的原始變量讀取位置通過利用目的地指針索引進行參考來確定目的地寫入位置;以及 至少部分地基于所述目的地寫入位置將存儲器狀態(tài)寫入到目的地存儲器中。
4.根據(jù)權(quán)利要求1所述的方法,其中,傳輸所述變化數(shù)據(jù)的步驟進一步包括:至少部分地基于原始指針索引將所述變化數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機,其中,所述原始指針索引包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的原始變量指針位于所述原始可執(zhí)行文件中何處,其中,所述原始變量指針指示對應(yīng)的原始變量位于原始存儲器中何處。
5.根據(jù)權(quán)利要求1所述的方法,其中,傳輸所述變化數(shù)據(jù)的步驟進一步包括至少部分地基于目的地指針索引將所述變化數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機,其中,所述目的地指針索引包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的目的地變量指針位于所述目的地可執(zhí)行文件中何處,其中,所述目的地變量指針指示對應(yīng)的目的地變量位于目的地存儲器中何處。
6.根據(jù)權(quán)利要求1所述的方法,其中,傳輸所述變化數(shù)據(jù)的步驟進一步包括: 從與所述原始虛擬機關(guān)聯(lián)的所述變化隊列收集過去變化數(shù)據(jù); 通過經(jīng)由原始指針索引查找所收集的過去變化數(shù)據(jù)來定位原始變量讀取位置,其中,所述原始指針索引包括 與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的原始變量指針位于所述原始可執(zhí)行文件中何處,其中,所述原始變量指針指示對應(yīng)的原始變量位于原始存儲器中何處; 至少部分地基于所述原始變量讀取位置通過利用目的地指針索引進行參考來確定目的地寫入位置,其中,所述目的地指針索引包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的目的地變量指針位于所述目的地可執(zhí)行文件中何處,其中,所述目的地變量指針指示目的地存儲器中對應(yīng)的目的地變量所位于的所述目的地寫入位置;以及 至少部分地基于所述目的地寫入位置將存儲器狀態(tài)寫入在目的地存儲器中。
7.根據(jù)權(quán)利要求1所述的方法,其中,從所述原始虛擬機切換到所述目的地虛擬機的步驟包括當所述目的地可執(zhí)行文件的啟動完成,所述變化隊列為空,以及用于所述目的地可執(zhí)行文件的執(zhí)行地址與所述目的地指針索引中的多個書簽指針之一關(guān)聯(lián)時從所述原始虛擬機切換到所述目的地虛擬機;并且其中,所述目的地指針索引中的所述多個書簽指針與所述目的地可執(zhí)行文件中被指定為切換到所述目的地虛擬機的邏輯點的各點關(guān)聯(lián)。
8.根據(jù)權(quán)利要求1所述的方法,其中,傳輸所述變化數(shù)據(jù)的步驟進一步包括: 至少部分地基于原始指針索引和目的地指針索引將所述變化數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機, 其中,所述原始指針索引包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的原始變量指針位于所述原始可執(zhí)行文件中何處,其中,所述原始變量指針指示對應(yīng)的原始變量位于原始存儲器中何處, 其中,所述目的地指針索引包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的目的地變量指針位于所述目的地可執(zhí)行文件中何處,其中,所述目的地變量指針指示對應(yīng)的目的地變量位于目的地存儲器中何處,并且 其中,所述目的地指針索引包括多個書簽指針,其中,所述多個書簽指針與所述目的地可執(zhí)行文件中被指定為切換到所述目的地虛擬機的邏輯點的各點關(guān)聯(lián)。
9.根據(jù)權(quán)利要求1所述的方法,其中,傳輸所述變化數(shù)據(jù)的步驟進一步包括當所述變化數(shù)據(jù)與執(zhí)行基準關(guān)聯(lián)時更新執(zhí)行基準值,其中,所述執(zhí)行基準包括所述目的地可執(zhí)行文件內(nèi)的過程位置、所述目的地可執(zhí)行文件內(nèi)的返回位置和/或來自過程的返回寄存器中的一個或多個。
10.根據(jù)權(quán)利要求1所述的方法,所述方法進一步包括: 利用復(fù)制輸入并行地運行`所述原始虛擬機和所述目的地虛擬機,其中,所述目的地虛擬機包括準時型編譯器;以及 在從所述原始虛擬機切換到所述目的地虛擬機之前至少部分地基于所述復(fù)制輸入比較所述原始虛擬機和所述目的地虛擬機的輸出。
11.根據(jù)權(quán)利要求1所述的方法,其中,不同的特性包括下述中的一個或多個:存儲器容量型特性、處理能力型特性、地址型特性、操作系統(tǒng)型特性和/或應(yīng)用程序編程接口型特性。
12.—種設(shè)備,所述設(shè)備包括: 第一模塊,所述第一模塊被構(gòu)造為生成與原始可執(zhí)行文件關(guān)聯(lián)的原始指針索引,其中,所述原始可執(zhí)行文件被構(gòu)造為在原始虛擬機上執(zhí)行; 第二模塊,所述第二模塊被構(gòu)造為生成與目的地可執(zhí)行文件關(guān)聯(lián)的目的地指針索引,其中,所述目的地可執(zhí)行文件被構(gòu)造為在目的地虛擬機上執(zhí)行,其中,所述目的地虛擬機具有與所述原始虛擬機不同的特性; 第三模塊,所述第三模塊被構(gòu)造為將永久狀態(tài)數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機;以及 第四模塊,所述第四模塊被構(gòu)造為在所述原始虛擬機繼續(xù)執(zhí)行所述原始可執(zhí)行文件的同時至少部分地基于所述原始指針索引和所述目的地指針索引將變化數(shù)據(jù)從與所述原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)剿瞿康牡靥摂M機。
13.根據(jù)權(quán)利要求12所述的設(shè)備,其中,經(jīng)由所述第四模塊的所述變化數(shù)據(jù)的傳輸進一步包括,所述第四模塊被構(gòu)造為: 從與所述原始虛擬機關(guān)聯(lián)的所述變化隊列收集過去變化數(shù)據(jù); 通過在所述原始指針索引中查找所收集的過去變化數(shù)據(jù)來定位原始變量讀取位置;至少部分地基于所述原始變量讀取位置通過利用所述目的地指針索引進行參考來確定目的地寫入位置;以及 至少部分地基于所述目的地寫入位置將存儲器狀態(tài)寫入到目的地存儲器中。
14.根據(jù)權(quán)利要求12所述的設(shè)備,其中,所述原始指針索引包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的原始變量指針位于所述原始可執(zhí)行文件中何處,其中,所述原始變量指針指示對應(yīng)的原始變量位于原始存儲器中何處。
15.根據(jù)權(quán)利要求12所述的設(shè)備,其中,所述目的地指針索引包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的目的地變量指針位于所述目的地可執(zhí)行文件中何處,其中,所述目的地變量指針指示對應(yīng)的目的地變量位于目的地存儲器中何處。
16.根據(jù)權(quán)利要求12所述的設(shè)備,其中,經(jīng)由所述第四模塊的所述變化數(shù)據(jù)的傳輸進一步包括,所述第四模塊被構(gòu)造為: 從與所述原始虛擬機關(guān)聯(lián)的所述變化隊列收集過去變化數(shù)據(jù); 通過在所述原始指針索引中查找所收集的過去變化數(shù)據(jù)來定位原始變量讀取位置,其中,所述原始指針索引包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的原始變量指針位于所述原始可執(zhí)行文件中何處,其中,所述原始變量指針指示對應(yīng)的原始變量位于原始存儲器中何處;` 至少部分地基于所述原始變量讀取位置通過利用所述目的地指針索引進行參考來確定目的地寫入位置,其中,所述目的地指針索引包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的目的地變量指針位于所述目的地可執(zhí)行文件中何處,其中,所述目的地變量指針指示目的地存儲器中對應(yīng)的目的地變量所位于的所述目的地寫入位置;以及 至少部分地基于所述目的地寫入位置將存儲器狀態(tài)寫入在目的地存儲器中。
17.根據(jù)權(quán)利要求12所述的設(shè)備,其中,經(jīng)由所述第四模塊的所述變化數(shù)據(jù)的傳輸進一步包括,所述第四模塊被構(gòu)造為,至少部分地基于目的地指針索引將所述變化數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機,其中,所述目的地指針索引包括多個書簽指針,其中,所述多個書簽指針與所述目的地可執(zhí)行文件中被指定為切換到所述目的地虛擬機的邏輯點的各點關(guān)聯(lián)。
18.根據(jù)權(quán)利要求12所述的設(shè)備, 其中,所述原始指針索引包括與對應(yīng)的原始變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的原始變量指針位于所述原始可執(zhí)行文件中何處,其中,所述原始變量指針指示對應(yīng)的原始變量位于原始存儲器中何處, 其中,所述目的地指針索引包括與對應(yīng)的目的地變量關(guān)聯(lián)的多個永久指針,其中,所述多個永久指針指示對應(yīng)的目的地變量指針位于所述目的地可執(zhí)行文件中何處,其中,所述目的地變量指針指示對應(yīng)的目的地變量位于目的地存儲器中何處,并且其中,所述目的地指針索引包括多個書簽指針,其中,所述多個書簽指針與所述目的地可執(zhí)行文件中被指定為切換到所述目的地虛擬機的邏輯點的各點關(guān)聯(lián)。
19.根據(jù)權(quán)利要求12所述的設(shè)備,其中,不同的特性包括下述中的一個或多個:存儲器容量型特性、處理能力型特性、地址型特性、操作系統(tǒng)型特性和/或應(yīng)用程序編程接口型特性。
20.一種制品,所述制品包括: 信號承載介質(zhì),所述信號承載介質(zhì)包括其上存儲的機器可讀指令,所述機器可讀指令在由一個或多個處理器執(zhí)行的情況下可操作地使得計算裝置能夠: 在原始虛擬機繼續(xù)執(zhí)行原始可執(zhí)行文件的同時在目的地虛擬機上啟動目的地可執(zhí)行文件,其中,所述目的地虛擬機具有與所述原始虛擬機不同的特性; 將永久狀態(tài)數(shù)據(jù)從所述原始虛擬機傳輸?shù)剿瞿康牡靥摂M機; 在所述原始虛擬機繼續(xù)執(zhí)行所述原始可執(zhí)行文件的同時將變化數(shù)據(jù)從與所述原始虛擬機關(guān)聯(lián)的變化隊列傳輸?shù)剿瞿康牡靥摂M機;以及 當所述目的地可執(zhí)行文件的啟動完成并且所述變化隊列為空時,從所述原始虛擬機切換到所述目的地虛擬機。
21.根據(jù)權(quán)利要求20所述的制品,其中,所述目的地虛擬機上的所述目的地可執(zhí)行文件的啟動包括利用初始空的存儲器運行所述目的地可執(zhí)行文件以聲明變量并且確定與所聲明的變量關(guān)聯(lián)的存儲器位`置。
【文檔編號】G06F9/455GK103782276SQ201180073331
【公開日】2014年5月7日 申請日期:2011年9月13日 優(yōu)先權(quán)日:2011年9月13日
【發(fā)明者】埃澤齊埃爾·克魯格里克 申請人:英派爾科技開發(fā)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
陇川县| 集安市| 玉龙| 隆化县| 睢宁县| 永新县| 兴城市| 大邑县| 响水县| 湄潭县| 汤阴县| 九台市| 长乐市| 武冈市| 南澳县| 堆龙德庆县| 高密市| 炉霍县| 沾化县| 天门市| 靖州| 宜兰县| 从江县| 阜阳市| 乐都县| 文登市| 顺义区| 峨眉山市| 嘉祥县| 黄梅县| 攀枝花市| 安新县| 莒南县| 塔河县| 高州市| 寿阳县| 平安县| 彩票| 广饶县| 三江| 兴隆县|