輔助計(jì)算機(jī)系統(tǒng)中多個(gè)管理程序的聯(lián)合操作的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明的一般地涉及信息處理,具體地,涉及計(jì)算虛擬化技術(shù)。更具體地涉及計(jì)算 機(jī)系統(tǒng)中多個(gè)管理程序(hypervisor)的聯(lián)合操作。
【背景技術(shù)】
[0002] 現(xiàn)今的計(jì)算機(jī)系統(tǒng)看到了日益增加的各種應(yīng)用程序中的虛擬化技術(shù)的使用一無(wú) 論在大數(shù)據(jù)中心還是在個(gè)人計(jì)算中。虛擬化支持如在單個(gè)計(jì)算機(jī)系統(tǒng)上運(yùn)行多個(gè)操作系 統(tǒng)、最大化利用可用硬件資源這樣的配置。例如,個(gè)人計(jì)算機(jī)的用戶可以利用多個(gè)虛擬機(jī), 用于在其單個(gè)機(jī)器上的不同的操作系統(tǒng)中同步執(zhí)行各種應(yīng)用程序。更多的時(shí)候,在大容量 的服務(wù)器上發(fā)現(xiàn)虛擬化,諸如當(dāng)提供主機(jī)托管服務(wù)時(shí)的那些服務(wù)器。
[0003] 虛擬機(jī)的操作一般需要使用管理程序,其協(xié)調(diào)虛擬機(jī)的執(zhí)行,充當(dāng)虛擬機(jī)的管理 器或分派器。通常,管理程序還稱(chēng)為虛擬機(jī)監(jiān)控程序(VMM)。
[0004] 如果計(jì)算機(jī)系統(tǒng)有多個(gè)管理程序,有必要恰當(dāng)?shù)貐f(xié)調(diào)它們的操作。一般由其設(shè)計(jì) 提供虛擬機(jī)管理程序的聯(lián)合操作:當(dāng)管理程序控制了計(jì)算平臺(tái)時(shí),處理器的狀態(tài)(即保護(hù) 環(huán))臨時(shí)改變,并且在管理程序的動(dòng)作完成之后,處理器返回到其初始狀態(tài)。例如,在 windows操作系統(tǒng)中,如果同步操作來(lái)自不同制造商的數(shù)個(gè)虛擬機(jī),那么調(diào)度程序會(huì)以針對(duì) 操作系統(tǒng)中的通常的線程同樣的方式來(lái)分配時(shí)間用于管理程序的執(zhí)行(例如考慮各個(gè)線程 的優(yōu)先級(jí))。管理程序代碼本身根據(jù)某一時(shí)間量的到期來(lái)正確完成其執(zhí)行;然而應(yīng)該注意到 該時(shí)間量并不是必須和由0S的調(diào)度程序分配的時(shí)間量一致。
[0005] 在將要同時(shí)使用多個(gè)管理程序的系統(tǒng)中,常規(guī)的多任務(wù)技術(shù)可能不能有效工作, 并且在最壞情況下它們甚至不會(huì)有效工作。當(dāng)在多個(gè)管理程序中存在這樣的管理程序:其 以比另一個(gè)管理程序的優(yōu)先級(jí)高的優(yōu)先級(jí)執(zhí)行時(shí),那些問(wèn)題進(jìn)一步惡化。例如,在持續(xù)管理 程序用于執(zhí)行非常重要的虛擬機(jī)而伴隨有一個(gè)或多個(gè)非持續(xù)管理程序的情況下,常規(guī)的多 任務(wù)技術(shù)保證持續(xù)管理程序的正確持續(xù)操作存在困難。另一個(gè)問(wèn)題在于,其他的常規(guī)管理 程序可能沒(méi)有意識(shí)到持續(xù)管理程序的存在,并且可能在管理程序模式下試圖搶占的處理器 上的執(zhí)行時(shí)使操作系統(tǒng)崩潰。因此需要輔助多個(gè)管理程序的有效和高效的同步執(zhí)行的解決 方案。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的一個(gè)方面涉及用于協(xié)調(diào)多個(gè)管理程序的聯(lián)合操作的專(zhuān)用系統(tǒng)。系統(tǒng)是包 括計(jì)算平臺(tái)的專(zhuān)用機(jī)器,所述計(jì)算平臺(tái)具有處理器、數(shù)據(jù)存儲(chǔ)和輸入/輸出設(shè)備,所述處理 器可在管理程序模式和監(jiān)管員程序模式之間切換,管理程序模式提供比監(jiān)管員程序模式更 高的優(yōu)先權(quán)級(jí)別。計(jì)算平臺(tái)包含指令,當(dāng)所述指令被執(zhí)行時(shí)使得計(jì)算平臺(tái)實(shí)現(xiàn)持續(xù)管理程 序和非持續(xù)管理程序、配置為協(xié)調(diào)監(jiān)管員程序模式下非持續(xù)管理程序的操作的調(diào)度程序引 擎、配置為協(xié)調(diào)管理程序模式下持續(xù)管理程序的操作的處理程序引擎。
[0007] 處理程序引擎監(jiān)控并響應(yīng)處理器在管理程序模式和監(jiān)管員程序模式之間的企圖 模式轉(zhuǎn)換。響應(yīng)于從管理程序模式到監(jiān)管員程序模式的企圖模式轉(zhuǎn)換,處理程序引擎掛起 對(duì)持續(xù)管理程序的執(zhí)行,包括保存處理器的狀態(tài),并且將處理器轉(zhuǎn)換為在監(jiān)管員程序模式 下執(zhí)行非持續(xù)管理程序。響應(yīng)于監(jiān)管員程序模式指令的執(zhí)行的終結(jié),處理程序引擎掛起對(duì) 非持續(xù)管理程序的執(zhí)行,包括保存處理器狀態(tài),并且將處理器轉(zhuǎn)換為在管理程序模式下執(zhí) 行持續(xù)管理程序。
【附圖說(shuō)明】
[0008] 結(jié)合附圖參考本發(fā)明的各種實(shí)施例的以下詳細(xì)描述可更完整地理解本發(fā)明,其 中:
[0009] 圖1是示出了多個(gè)管理程序在其上操作的常規(guī)操作系統(tǒng)的一部分的示圖,包括持 續(xù)管理程序和一個(gè)或多個(gè)非持續(xù)管理程序。
[0010]圖2A是示出了根據(jù)一個(gè)實(shí)施例的、保證多個(gè)管理程序在系統(tǒng)中的執(zhí)行的系統(tǒng)的示 圖。
[0011]圖2B是示出了根據(jù)一個(gè)實(shí)施例的、處理程序引擎的示例性體系架構(gòu)的示圖。
[0012]圖3是示出了根據(jù)一個(gè)實(shí)施例的、圖2A-圖2B中所示系統(tǒng)的操作過(guò)程。
[0013] 圖4是示出了成為專(zhuān)用機(jī)器的計(jì)算機(jī)系統(tǒng)的示圖,所述專(zhuān)用機(jī)器具有根據(jù)本發(fā)明 的方面的實(shí)現(xiàn)的改善功能。
[0014] 雖然本發(fā)明可修正為各種修改和替代形式,但其細(xì)節(jié)已在圖中通過(guò)示例的方式示 出,并將進(jìn)行詳細(xì)描述。然而,應(yīng)予以理解的是,不旨在將本發(fā)明限于所描述的特定實(shí)施例。 相反,旨在覆蓋落入由附加權(quán)利要求所定義的本發(fā)明的精神和范圍內(nèi)的所有修改、等同物 以及替代物。
【具體實(shí)施方式】
[0015] I術(shù)語(yǔ)詞匯
[0016] 以下術(shù)語(yǔ)詞匯闡述了本文中使用的術(shù)語(yǔ)的定義。該術(shù)語(yǔ)詞匯不僅用于本申請(qǐng)。
[0017] "計(jì)算平臺(tái)"、"計(jì)算機(jī)"和"計(jì)算機(jī)系統(tǒng)"一可互操作的電子器件的電子設(shè)備或系 統(tǒng),包含硬件,所述硬件包括一個(gè)或多個(gè)處理器、數(shù)據(jù)存儲(chǔ)器、輸入-輸出設(shè)備;以及可根據(jù) 由硬件實(shí)施的軟件指令存儲(chǔ)和操縱的信息。它可以是一個(gè)物理機(jī)器,或者分布在多個(gè)物理 機(jī)器中,例如通過(guò)角色或功能,或者在云計(jì)算分布式模型的情況下通過(guò)處理線程。示例包括 臺(tái)式機(jī)或移動(dòng)個(gè)人計(jì)算機(jī)(PC)、智能手機(jī)和平板電腦,以及網(wǎng)絡(luò)設(shè)備諸如路由器、交換機(jī) 等。計(jì)算平臺(tái)可以是獨(dú)立的設(shè)備或是作為較大的設(shè)備或系統(tǒng)的一部分的嵌入式設(shè)備。
[0018] "數(shù)據(jù)存儲(chǔ)"一在物理存儲(chǔ)介質(zhì)上存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)電子硬件設(shè)備。示例包括 易失性存儲(chǔ)(例如隨機(jī)存取存儲(chǔ)器(RAM),無(wú)論靜態(tài)或動(dòng)態(tài))、非易失性存儲(chǔ)(例如電子可擦 除可編程只讀存儲(chǔ)器、磁盤(pán)等)。
[0019] "驅(qū)動(dòng)程序"一引擎或組件,其就像諸如磁盤(pán)驅(qū)動(dòng)器的設(shè)備與諸如操作系統(tǒng)殼 (shell)的使用設(shè)備的程序之間的翻譯器。驅(qū)動(dòng)程序通常接受來(lái)自程序的通用命令并且隨 后將其翻譯為用于設(shè)備的專(zhuān)用命令。
[0020] "引擎"一使用硬件、或者作為硬件或軟件的組合實(shí)現(xiàn)的真實(shí)的設(shè)備、組件或組件 的布置,例如通過(guò)微處理器系統(tǒng)和適配引擎以實(shí)現(xiàn)特定功能的程序指令集,其(被執(zhí)行時(shí)) 將微處理器轉(zhuǎn)換為專(zhuān)用設(shè)備。引擎也可以實(shí)現(xiàn)為兩者的組合,具有某些由硬件單獨(dú)實(shí)現(xiàn)的 功能,以及由軟件控制的硬件的組合輔助的其他功能。在某些實(shí)現(xiàn)方案中,至少部分引擎或 者在一些情況下全部引擎可以在執(zhí)行操作系統(tǒng)、系統(tǒng)程序和應(yīng)用程序的一個(gè)或多個(gè)計(jì)算機(jī) 的處理器上執(zhí)行,同時(shí)也使用多任務(wù)、多線程、分布式(例如集群、點(diǎn)對(duì)點(diǎn)、云等)處理、合適 的或其他這樣的技術(shù)來(lái)實(shí)現(xiàn)引擎。此外,引擎本身可以包括一個(gè)以上的子引擎,其每一個(gè)可 以看作獨(dú)立的引擎。
[0021] "管理程序"一也稱(chēng)為虛擬機(jī)監(jiān)控程序(VMM),是可由處理器執(zhí)行的程序,其協(xié)調(diào)虛 擬機(jī)的執(zhí)行并充當(dāng)虛擬機(jī)的管理器或虛擬機(jī)的分派器。管理程序呈現(xiàn)采用虛擬操作平臺(tái)的 訪客操作系統(tǒng)或系統(tǒng)程序,并且管理訪客操作系統(tǒng)或系統(tǒng)程序的執(zhí)行。程序系統(tǒng)或其他系 統(tǒng)軟件的多個(gè)實(shí)例可以共享虛擬化硬件資源。
[0022] "管理程序模式"一與甚至高于監(jiān)管員模式的優(yōu)先權(quán)級(jí)別相關(guān)聯(lián)的處理器模式。管 理程序模式一般提供專(zhuān)用指令,其輔助一個(gè)或多個(gè)管理程序防止每個(gè)均在監(jiān)管員模式下執(zhí) 行的不同的操作系統(tǒng)或其他系統(tǒng)程序彼此影響的能力。一般,在系統(tǒng)中監(jiān)管員程序模式指 定為保護(hù)環(huán)〇,管理程序模式指定為保護(hù)環(huán)-1
[0023] "輸入/輸出設(shè)備"或"輸入/輸出設(shè)施"一計(jì)算機(jī)系統(tǒng)的電子硬件部分,其輔助信息 流入和流出計(jì)算機(jī)系統(tǒng)。示例包括網(wǎng)絡(luò)接口設(shè)備、監(jiān)視器、鍵盤(pán)、鼠標(biāo)、打印機(jī)、串行端口等。 [0024] "持續(xù)管理程序" 一在其操作的常規(guī)過(guò)程中被期望執(zhí)行為操作系統(tǒng)或其他基本程 序的活躍的不間斷的進(jìn)程的管理程序。該持續(xù)的操作規(guī)程不同于周期性的或非持續(xù)的規(guī) 程,在周期性的或非持續(xù)的規(guī)程中管理程序偶爾用于特定任務(wù),在任務(wù)結(jié)束后周期性管理 程序可以關(guān)閉,而持續(xù)管理程序卻保持運(yùn)行。持續(xù)管理程序的示例包括要求不間斷執(zhí)行特 別重要的虛擬機(jī)的管理程序,或者要求保證和安全相關(guān)的操作諸如反病毒進(jìn)程的執(zhí)行的管 理程序。
[0025] "處理器"一計(jì)算機(jī)系統(tǒng)的電子硬件部分,其通過(guò)實(shí)施系統(tǒng)的基本的算術(shù)的、邏輯 的、臨時(shí)的存儲(chǔ)和輸入/輸出操作來(lái)實(shí)施計(jì)算機(jī)程序的指令。典型地,處理器實(shí)現(xiàn)為微處理 器(即,集成在單芯片上),雖然該定義包括在多個(gè)互連的集成電路上實(shí)現(xiàn)的處理器電路。如 今的處理器典型地包括多個(gè)處理核并且可以在多個(gè)處理核之間分布工作負(fù)載。
[0026] "處理器模式"一也稱(chēng)為"權(quán)限級(jí)別",是用于一些計(jì)算機(jī)體系架構(gòu)的處理器的操作 規(guī)程,其選擇性地對(duì)由處理器運(yùn)行的某些進(jìn)程所執(zhí)行的操作的類(lèi)型和方面設(shè)置一個(gè)或多個(gè) 限制。例如,高信任度的內(nèi)核代碼以及在某些情況下高信任度的驅(qū)動(dòng)程序或其他系統(tǒng)程序 被允許在稱(chēng)為監(jiān)管員程序模式的不受限制(或相對(duì)較少限制)的模式下執(zhí)行;而其他進(jìn)程 (包括操作系統(tǒng)的非監(jiān)管員部分)在稱(chēng)為用戶模式的相對(duì)較多限制的模式下執(zhí)行,并且必須 使用系統(tǒng)調(diào)用以請(qǐng)求更受信任的內(nèi)核代表其實(shí)施受限制的操作。處理器模式支持保護(hù)環(huán)體 系架構(gòu)。
[0027] "保護(hù)環(huán)" 一在計(jì)算機(jī)系統(tǒng)的體系架構(gòu)中的兩個(gè)或兩個(gè)以上的權(quán)限的分層級(jí)別或 層次。這通常通過(guò)在硬件或微代碼級(jí)別提供不同的處理器模式的一些架構(gòu)體系硬件強(qiáng)制實(shí) 施。例如,傳統(tǒng)上已經(jīng)在從最高權(quán)限(最受信任,通