本發(fā)明涉及虛擬化技術(shù),尤其涉及一種狀態(tài)信息控制方法及裝置。
背景技術(shù):
在虛擬化平臺中,宿主機在執(zhí)行虛擬化應(yīng)用的過程中,需要模擬虛擬機的處理器狀態(tài),當(dāng)虛擬機的處理器狀態(tài)改變時,宿主機上的所模擬的虛擬機的處理器狀態(tài)也需要進行相應(yīng)改變,以保證宿主機所執(zhí)行的虛擬化應(yīng)用能夠正確執(zhí)行。
現(xiàn)有技術(shù)中,宿主機將需要模擬的虛擬機的處理器狀態(tài)信息保存在宿主機的內(nèi)存中,當(dāng)虛擬機的處理器狀態(tài)信息改變時,宿主機通過執(zhí)行大量的訪存指令來相應(yīng)地更新宿主機內(nèi)存中所保存的虛擬機的處理器狀態(tài)信息。
但是,現(xiàn)有技術(shù)使用宿主機內(nèi)存來保存虛擬機的處理器狀態(tài)信息,需要使用大量的訪存指令來更新內(nèi)存中的虛擬機的處理器狀態(tài)信息,而大量訪存指令的執(zhí)行會引起系統(tǒng)開銷過大,進而導(dǎo)致虛擬化的效率低下。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種狀態(tài)信息控制方法及裝置,用于解決現(xiàn)有技術(shù)中執(zhí)行虛擬化執(zhí)行系統(tǒng)開銷過大,導(dǎo)致虛擬化效率低下的問題。
本發(fā)明第一方面提供一種狀態(tài)信息控制方法,所述方法應(yīng)用于虛擬平臺中的宿主機,所述宿主機中包括:虛擬化狀態(tài)全局控制寄存器、多個分組寄存器組,每個分組寄存器組包括至少一個分組寄存器,所述多個分組寄存器組與所述虛擬平臺的多個虛擬機一一對應(yīng),其中,所述分組寄存器組用于保存對應(yīng)虛擬機的處理器狀態(tài)信息,所述方法包括:
所述宿主機在第一虛擬機的處理器狀態(tài)信息更新時,創(chuàng)建第一虛擬機更新狀態(tài)操作指令,所述第一虛擬機為所述宿主機當(dāng)前運行的虛擬機;
所述宿主機讀取所述虛擬化狀態(tài)全局控制寄存器中保存的所述第一虛擬 機對應(yīng)的第一分組寄存器組的標(biāo)識;
所述宿主機根據(jù)所述第一分組寄存器組的標(biāo)識,對所述第一分組寄存器組執(zhí)行所述第一虛擬機更新狀態(tài)操作指令以更新所述第一分組寄存器組中的處理器狀態(tài)信息。
結(jié)合第一方面,在第一方面的第一種可能的實施方式中,所述宿主機根據(jù)所述第一分組寄存器組的標(biāo)識,對所述第一分組寄存器組執(zhí)行所述第一虛擬機更新狀態(tài)操作指令之前,還包括:
所述宿主機獲取所述多個虛擬機的數(shù)量N,以及N個虛擬機的標(biāo)識;
所述宿主機創(chuàng)建N組所述分組寄存器組,并建立所述虛擬機的標(biāo)識與所述分組寄存器組之間一一對應(yīng)的映射關(guān)系。
結(jié)合第一方面或第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述宿主機中還包括:虛擬化狀態(tài)臨時控制寄存器;
所述方法還包括:
所述宿主機創(chuàng)建第二虛擬機更新狀態(tài)操作指令,并根據(jù)所述第二虛擬機更新狀態(tài)操作指令的屬性確定所述第二虛擬機更新狀態(tài)操作指令對應(yīng)的至少一個目標(biāo)虛擬機,獲取所述至少一個目標(biāo)虛擬機對應(yīng)的至少一個第二分組寄存器組的標(biāo)識,其中,所述目標(biāo)虛擬機為非當(dāng)前運行的虛擬機;
所述宿主機將所述至少一個第二分組寄存器組的標(biāo)識添加到所述第二虛擬機更新狀態(tài)操作指令的前端,形成所述第二虛擬機更新狀態(tài)操作指令的前綴指令;
所述宿主機通過執(zhí)行所述前綴指令將所述前綴指令對應(yīng)的至少一個第二分組寄存器組的標(biāo)識保存在所述虛擬化狀態(tài)臨時控制寄存器中。
結(jié)合第一方面的第二種可能的實施方式,在第一方面的第三種可能的實施方式中,所述方法還包括:
所述宿主機根據(jù)所述虛擬化狀態(tài)臨時控制寄存器中保存的所述第二分組寄存器組的標(biāo)識,對相應(yīng)的所述至少一個第二分組寄存器組分別執(zhí)行所述第二虛擬機更新狀態(tài)操作指令,以更新所述至少一個第二分組寄存器組中的處理器狀態(tài)信息。
結(jié)合第一方面的第三種可能的實施方式,在第一方面的第四種可能的實施方式中,所述宿主機根據(jù)所述更新后的第二虛擬機更新狀態(tài)操作指令中的 所述前綴,對相應(yīng)的所述至少一個第二分組寄存器組分別執(zhí)行所述更新后的第二虛擬機更新狀態(tài)操作指令之后,還包括:
所述宿主機將所述虛擬化狀態(tài)臨時控制寄存器中的值清零。
本發(fā)明第二方面提供一種狀態(tài)信息控制裝置,所述狀態(tài)信息控制裝置集成于虛擬平臺的宿主機中;所述狀態(tài)信息控制裝置,包括:處理單元、虛擬化狀態(tài)全局控制寄存器和多個分組寄存器組,每個分組寄存器組包括至少一個分組寄存器;其中,所述多個分組寄存器組與所述虛擬平臺的多個虛擬機一一對應(yīng);
所述虛擬化狀態(tài)全局控制寄存器,用于存儲宿主機當(dāng)前所運行的虛擬機的所對應(yīng)的分組寄存器組的標(biāo)識;每個所述分組寄存器組,用于存儲對應(yīng)虛擬機的處理器狀態(tài)信息;
所述處理單元,用于在第一虛擬機的處理器狀態(tài)信息更新時,創(chuàng)建第一虛擬機更新狀態(tài)操作指令;讀取所述虛擬化狀態(tài)全局控制寄存器中保存的所述第一虛擬機對應(yīng)的第一分組寄存器組的標(biāo)識;根據(jù)所述第一分組寄存器組的標(biāo)識,對所述第一分組寄存器組執(zhí)行所述第一虛擬機更新狀態(tài)操作指令以更新所述第一分組寄存器組中的處理器狀態(tài)信息。
結(jié)合第二方面,在第二方面的第一種可能的實施方式中,所述處理單元還用于:獲取所述多個虛擬機的數(shù)量N,以及N個虛擬機的標(biāo)識;創(chuàng)建N組所述分組寄存器組,并建立所述虛擬機的標(biāo)識與所述分組寄存器組之間一一對應(yīng)的映射關(guān)系。
結(jié)合第二方面或第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述裝置還包括:虛擬化狀態(tài)臨時控制寄存器;相應(yīng)地,
所述處理單元還用于:創(chuàng)建第二虛擬機更新狀態(tài)操作指令,并根據(jù)所述第二虛擬機更新狀態(tài)操作指令的屬性確定所述第二虛擬機更新狀態(tài)操作指令對應(yīng)的至少一個目標(biāo)虛擬機,獲取所述至少一個目標(biāo)虛擬機對應(yīng)的至少一個第二分組寄存器組的標(biāo)識,其中,所述目標(biāo)虛擬機為非當(dāng)前運行的虛擬機;將所述至少一個第二分組寄存器組的標(biāo)識添加到所述第二虛擬機更新狀態(tài)操作指令的前端,形成所述第二虛擬機更新狀態(tài)操作指令的前綴指令;所述宿主機通過執(zhí)行所述前綴指令將所述前綴指令對應(yīng)的至少一個第二分組寄存器 組的標(biāo)識保存在所述虛擬化狀態(tài)臨時控制寄存器中。
結(jié)合第二方面的第二種可能的實施方式中,在第二方面的第三種可能的實施方式中,所述處理單元還用于在將所述前綴指令對應(yīng)的至少一個第二分組寄存器組的標(biāo)識保存在所述虛擬化狀態(tài)臨時控制寄存器中之后,根據(jù)所述虛擬化狀態(tài)臨時控制寄存器中保存的所述第二分組寄存器組的標(biāo)識,對相應(yīng)的所述至少一個第二分組寄存器組分別執(zhí)行所述第二虛擬機更新狀態(tài)操作指令,以更新所述至少一個第二分組寄存器組中的處理器狀態(tài)信息。
結(jié)合第二方面的第三種可能的實施方式中,在第二方面的第四種可能的實施方式中,所述處理單元還用于:將所述虛擬化狀態(tài)臨時控制寄存器中的值清零。
本發(fā)明所提供的狀態(tài)信息控制方法及裝置中,虛擬機的處理器狀態(tài)信息被保存在了宿主機中與該虛擬機一一對應(yīng)的分組寄存器組中,同時,宿主機中設(shè)置了虛擬化狀態(tài)全局控制寄存器用于保存當(dāng)前運行的虛擬機對應(yīng)的分組寄存器組的標(biāo)識,當(dāng)虛擬機的處理器狀態(tài)信息更新時,只需要創(chuàng)建普通的虛擬機操作指令,并將虛擬機操作指令發(fā)往對應(yīng)的分組寄存器組中即可,而不再需要通過訪存指令操作內(nèi)存來模擬虛擬機的處理器狀態(tài)信息,從而節(jié)省了系統(tǒng)開銷,提升了虛擬化效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的狀態(tài)信息控制方法實施例一的流程示意圖;
圖2為本發(fā)明實施例提供的虛擬化狀態(tài)全局控制寄存器設(shè)置方法示意圖;
圖3為本發(fā)明實施例提供的根據(jù)虛擬化狀態(tài)全局控制寄存器執(zhí)行指令示意圖;
圖4為本發(fā)明實施例提供的狀態(tài)信息控制方法實施例二的流程示意圖;
圖5為本發(fā)明實施例提供的狀態(tài)信息控制方法實施例三的流程示意圖;
圖6為本發(fā)明實施例提供的虛擬化狀態(tài)臨時控制寄存器設(shè)置方法示意圖;
圖7為本發(fā)明實施例提供的根據(jù)虛擬化狀態(tài)臨時控制寄存器執(zhí)行指令示意圖;
圖8為本發(fā)明實施例提供的狀態(tài)信息控制裝置實施例一的結(jié)構(gòu)示意圖;
圖9為本發(fā)明實施例提供的狀態(tài)信息控制裝置實施例一的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的狀態(tài)信息控制方法實施例一的流程示意圖,該方法應(yīng)用于虛擬平臺中的宿主機,該宿主機中包括:虛擬化狀態(tài)全局控制寄存器、多個分組寄存器組,每個分組寄存器組包括至少一個分組寄存器,多個分組寄存器組與虛擬平臺的多個虛擬機一一對應(yīng),其中,分組寄存器組用于保存對應(yīng)虛擬機的處理器狀態(tài)信息。如圖1所示,該方法包括:
S101、宿主機在第一虛擬機的處理器狀態(tài)信息更新時,創(chuàng)建第一虛擬機更新狀態(tài)操作指令。
第一虛擬機更新狀態(tài)操作指令可以為通用指令,也可以為跨多個分組寄存器組的特定指令。
其中,虛擬機的處理器狀態(tài)信息表示虛擬機的處理器當(dāng)前的運行狀態(tài),包括虛擬機的處理器中軟件(比如進程)或硬件(比如寄存器)的當(dāng)前狀態(tài)。
S102、宿主機讀取虛擬化狀態(tài)全局控制寄存器中保存的第一虛擬機對應(yīng)的第一分組寄存器組的標(biāo)識。
虛擬化狀態(tài)全局控制寄存器用于存儲宿主機當(dāng)前所運行的虛擬機所對應(yīng)的分組寄存器組的標(biāo)識,當(dāng)宿主機當(dāng)前所運行的虛擬機發(fā)生變化時,虛擬化狀態(tài)全局控制寄存器中的分組寄存器組的標(biāo)識會相應(yīng)進行更新。
需要說明的是,當(dāng)宿主機當(dāng)前所運行的虛擬機發(fā)生變化時,宿主機會使用一個全局控制寄存器設(shè)置指令來將虛擬化狀態(tài)全局控制寄存器中的分組寄 存器組的標(biāo)識更新為當(dāng)前運行的虛擬機對應(yīng)的分組寄存器組的標(biāo)識,進而,第一虛擬機更新狀態(tài)操作指令會針對該分組寄存器組來執(zhí)行。具體地,圖2為本發(fā)明實施例提供的虛擬化狀態(tài)全局控制寄存器設(shè)置方法示意圖,圖3為本發(fā)明實施例提供的根據(jù)虛擬化狀態(tài)全局控制寄存器執(zhí)行指令示意圖,如圖2所示,宿主機根據(jù)分組寄存器組的編號來設(shè)置虛擬化狀態(tài)全局控制寄存器,如圖3所示,當(dāng)虛擬化狀態(tài)全局控制寄存器中設(shè)置了分組寄存器組之后,宿主機上需要執(zhí)行的通用指令就根據(jù)虛擬化狀態(tài)全局控制寄存器中的所保存的分組寄存器組的標(biāo)識來讀寫對應(yīng)的分組寄存器組所對應(yīng)的寄存器。
S103、宿主機根據(jù)上述第一分組寄存器組的標(biāo)識,對第一分組寄存器組執(zhí)行上述第一虛擬機更新狀態(tài)操作指令,以更新第一分組寄存器組中的處理器狀態(tài)信息。
從而可以保證宿主機中虛擬機對應(yīng)的處理器狀態(tài)信息與虛擬機實際的處理器狀態(tài)信息同步。
每個分組寄存器組對應(yīng)一個虛擬機,每個分組寄存器組中保存這個對應(yīng)虛擬機的處理器狀態(tài)信息。分組寄存器組和虛擬機的一一對應(yīng)關(guān)系已經(jīng)進行預(yù)先設(shè)置。
假設(shè)當(dāng)前運行的虛擬機為虛擬機A,其所對應(yīng)的分組寄存器組為B,則虛擬化狀態(tài)全局控制寄存器中所保存的為分組寄存器組B的標(biāo)識,當(dāng)虛擬機A的處理器狀態(tài)信息發(fā)生變更后,宿主機向與虛擬機A對應(yīng)的分組寄存器組B執(zhí)行指令X以同步虛擬機A的處理器狀態(tài)信息,具體地,宿主機只要從虛擬化狀態(tài)全局控制寄存器中獲取到分組寄存器組B的標(biāo)識,就可以確定指令X需要發(fā)往哪個分組寄存器組,進而將指令X發(fā)往分組寄存器組B。
本實施例中,虛擬機的處理器狀態(tài)信息被保存在了宿主機中與該虛擬機一一對應(yīng)的分組寄存器組中,同時,宿主機中設(shè)置了虛擬化狀態(tài)全局控制寄存器用于保存當(dāng)前運行的虛擬機對應(yīng)的分組寄存器組的標(biāo)識,當(dāng)虛擬機的處理器狀態(tài)信息更新時,只需要創(chuàng)建普通的虛擬機操作指令,并將虛擬機操作指令發(fā)往對應(yīng)的分組寄存器組中即可,而不再需要通過訪存指令操作內(nèi)存來模擬虛擬機的處理器狀態(tài)信息,從而節(jié)省了系統(tǒng)開銷,提升了虛擬化效率。
圖4為本發(fā)明實施例提供的狀態(tài)信息控制方法實施例二的流程示意圖,如圖4所示,在上述步驟S103之前,該方法還包括:
S201、宿主機獲取多個虛擬機的數(shù)量N,以及N個虛擬機的標(biāo)識。
上述數(shù)量N表示虛化平臺中宿主機實際所關(guān)聯(lián)的虛擬機的數(shù)量。
S202、宿主機創(chuàng)建N組分組寄存器組,并建立所述虛擬機的標(biāo)識與所述分組寄存器組之間一一對應(yīng)的映射關(guān)系。
宿主機按照一定規(guī)則,將分組寄存器設(shè)置為N組,每組分組寄存器包含特定個數(shù)個分組寄存器,分組完成后,宿主機建立每組分組寄存器與虛擬機的一一對應(yīng)關(guān)系,例如,可以通過一個映射表來建立一一對應(yīng)關(guān)系。當(dāng)后續(xù)需要確定分組寄存器組時,可以通過查詢這個映射表來確定。
本實施例中,通過宿主機對分組寄存器進行分組,每組對應(yīng)一個虛擬機,用來模擬每個虛擬機的處理器狀態(tài)信息,使得分組寄存器組與虛擬機之間建立起來一一對應(yīng)關(guān)系,便與后續(xù)在虛擬機切換后快速確定對應(yīng)的分組寄存器組。
圖5為本發(fā)明實施例提供的狀態(tài)信息控制方法實施例三的流程示意圖,如圖5所示,宿主機中還包括虛擬化狀態(tài)臨時控制寄存器,相應(yīng)地,在上述步驟S101之后,該方法還包括:
S301、宿主機創(chuàng)建第二虛擬機更新狀態(tài)操作指令,并根據(jù)第二虛擬機更新狀態(tài)操作指令的屬性確定第二虛擬機更新狀態(tài)操作指令對應(yīng)的至少一個目標(biāo)虛擬機,獲取該至少一個目標(biāo)虛擬機對應(yīng)的至少一個第二分組寄存器組的標(biāo)識,其中,目標(biāo)虛擬機為非當(dāng)前運行的虛擬機。
對于一些特定指令,即第二虛擬機更新狀態(tài)操作指令,并不是針對當(dāng)前正在運行的虛擬機,可能是針對當(dāng)前非運行的虛擬機,針對這些特定指令,需要確定其需要發(fā)往的分組寄存器組,并要保證其能發(fā)到正確的分組寄存器組。
本步驟中,宿主機根據(jù)這些特定指令的屬性來確定其針對的虛擬機,例如,根據(jù)指令中所攜帶的虛擬機標(biāo)識等,再根據(jù)預(yù)先設(shè)置的虛擬機與分組寄存器組的一一映射關(guān)系來確定分組寄存器組。
S302、宿主機將上述至少一個第二分組寄存器組的標(biāo)識添加到第二虛擬機更新狀態(tài)操作指令的前端,形成第二虛擬機更新狀態(tài)操作指令的前綴指令。
由于在設(shè)置了虛擬化狀態(tài)全局控制寄存器之后,如果沒有特殊要求,通用指令都會針對當(dāng)前虛擬化狀態(tài)全局控制寄存器對應(yīng)的分組寄存器組去執(zhí) 行。而如果這個過程中需要更新非當(dāng)前運行的虛擬機的狀態(tài)信息,就可以通過本實施例,在針對非當(dāng)前運行的虛擬機狀態(tài)操作指令前增加一個前綴指令。該前綴指令中包括了其后的一條指令是針對哪個虛擬機的。在執(zhí)行該前綴指令時,會將該前綴指令中包括的虛擬機對應(yīng)的分組寄存器組標(biāo)識保存在虛擬化狀態(tài)臨時控制寄存器,使得其后的一條指令在執(zhí)行時直接根據(jù)虛擬化狀態(tài)臨時控制寄存器中所保存的分組寄存器組去執(zhí)行。
S303、宿主機通過執(zhí)行上述前綴指令將上述前綴指令對應(yīng)的至少一個第二分組寄存器組的標(biāo)識保存在虛擬化狀態(tài)臨時控制寄存器中。
另一實施例中,在上述步驟S303之后,該方法還包括:
宿主機根據(jù)虛擬化狀態(tài)臨時控制寄存器中保存的第二分組寄存器組的標(biāo)識,對相應(yīng)的至少一個第二分組寄存器組分別執(zhí)行第二虛擬機更新狀態(tài)操作指令,以更新至少一個第二分組寄存器組中的處理器狀態(tài)信息。
具體地,圖6為本發(fā)明實施例提供的虛擬化狀態(tài)臨時控制寄存器設(shè)置方法示意圖,圖7為本發(fā)明實施例提供的根據(jù)虛擬化狀態(tài)臨時控制寄存器執(zhí)行指令示意圖,如圖6和圖7所示,在形成前綴指令之后,執(zhí)行前綴指令時,宿主機根據(jù)前綴指令中的分組寄存器組的標(biāo)識來設(shè)置虛擬化狀態(tài)臨時控制寄存器。其中,分組寄存器組的標(biāo)識優(yōu)選的可以使用編號來表示。當(dāng)執(zhí)行到前綴之后的一條指令時,該條指令就清楚應(yīng)該針對哪個分組寄存器組去執(zhí)行了,即該條指令會根據(jù)虛擬化狀態(tài)臨時控制寄存器對應(yīng)的分組寄存器組及其對應(yīng)的寄存器去執(zhí)行。
本實施例中,針對不是發(fā)往正在運行的虛擬機的指令,宿主機上提供了虛擬化狀態(tài)臨時控制寄存器,并在指令前加上設(shè)置需要發(fā)往的虛擬機的標(biāo)識的前綴指令,從而能夠保證指令被發(fā)往正確的分組寄存器組。
另一實施例中,在上述方法之后,該方法還包括:宿主機將虛擬化狀態(tài)臨時控制寄存器中的值清零。
參考圖7,虛擬化狀態(tài)臨時控制寄存器僅針對正在執(zhí)行的其中一條指令,來存儲其針對的虛擬機標(biāo)識,當(dāng)該指令執(zhí)行完成后,將虛擬化狀態(tài)臨時控制寄存器中的值清零,以便下一條指令可以繼續(xù)使用虛擬化狀態(tài)臨時控制寄存器來存儲其所對應(yīng)的虛擬機標(biāo)識。
圖8為本發(fā)明實施例提供的狀態(tài)信息控制裝置實施例一的結(jié)構(gòu)示意圖, 如圖8所示,狀態(tài)信息控制裝置1集成于虛擬平臺的宿主機中。狀態(tài)信息控制裝置1包括:處理單元11、虛擬化狀態(tài)全局控制寄存器12和多個分組寄存器組13,每個分組寄存器組13包括至少一個分組寄存器131。其中,多個分組寄存器組13與虛擬平臺的多個虛擬機一一對應(yīng)。
優(yōu)選地,狀態(tài)信息控制裝置1可以為宿主機中的中央處理器(Central Processing Unit,簡稱CPU)。
虛擬化狀態(tài)全局控制寄存器12,用于存儲宿主機當(dāng)前所運行的虛擬機的所對應(yīng)的分組寄存器組的標(biāo)識;每個分組寄存器組13,用于存儲對應(yīng)虛擬機的處理器狀態(tài)信息。
處理單元11,用于在第一虛擬機的處理器狀態(tài)信息更新時,創(chuàng)建第一虛擬機更新狀態(tài)操作指令;讀取虛擬化狀態(tài)全局控制寄存器中保存的第一虛擬機對應(yīng)的第一分組寄存器組的標(biāo)識;根據(jù)第一分組寄存器組的標(biāo)識,對第一分組寄存器組執(zhí)行第一虛擬機更新狀態(tài)操作指令以更新所述第一分組寄存器組中的處理器狀態(tài)信息。
另一實施例中,處理單元11還用于:獲取多個虛擬機的數(shù)量N,以及N個虛擬機的標(biāo)識;創(chuàng)建N組分組寄存器組,并建立虛擬機的標(biāo)識與分組寄存器組之間一一對應(yīng)的映射關(guān)系。
圖9為本發(fā)明實施例提供的狀態(tài)信息控制裝置實施例二的結(jié)構(gòu)示意圖,如圖9所示,在圖8的基礎(chǔ)上,狀態(tài)信息控制裝置1還包括:虛擬化狀態(tài)臨時控制寄存器14,虛擬化狀態(tài)臨時控制寄存器14用于存儲宿主機當(dāng)前未運行的虛擬機的虛擬機標(biāo)識,相應(yīng)地,處理單元11還用于:創(chuàng)建第二虛擬機更新狀態(tài)操作指令,并根據(jù)所述第二虛擬機更新狀態(tài)操作指令的屬性確定所述第二虛擬機更新狀態(tài)操作指令對應(yīng)的至少一個目標(biāo)虛擬機,獲取所述至少一個目標(biāo)虛擬機對應(yīng)的至少一個第二分組寄存器組的標(biāo)識,其中,所述目標(biāo)虛擬機為非當(dāng)前運行的虛擬機;將所述至少一個第二分組寄存器組的標(biāo)識添加到所述第二虛擬機更新狀態(tài)操作指令的前端,形成所述第二虛擬機更新狀態(tài)操作指令的前綴指令;所述宿主機通過執(zhí)行所述前綴指令將所述前綴指令對應(yīng)的至少一個第二分組寄存器組的標(biāo)識保存在所述虛擬化狀態(tài)臨時控制寄存器中。
另一實施例中,處理單元11還用于在將所述至少一個第二分組寄存器組 的標(biāo)識保存在所述虛擬化狀態(tài)臨時控制寄存器中之后,根據(jù)所述虛擬化狀態(tài)臨時控制寄存器中保存的所述第二分組寄存器組的標(biāo)識,對相應(yīng)的所述至少一個第二分組寄存器組分別執(zhí)行所述第二虛擬機更新狀態(tài)操作指令,以更新所述至少一個第二分組寄存器組中的處理器狀態(tài)信息。
另一實施例中,處理單元11還用于:將虛擬化狀態(tài)臨時控制寄存器中的值清零。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。