專利名稱::一種基于處理器分區(qū)技術(shù)的cpu虛擬化方法
技術(shù)領(lǐng)域:
:本發(fā)明提出一種CPU虛擬化方法,尤其涉及面向多核或眾核平臺(tái)的,基于處理器分區(qū)技術(shù)的CPU虛擬化方法,屬于計(jì)算機(jī)操作系統(tǒng)與虛擬化
技術(shù)領(lǐng)域:
。
背景技術(shù):
:隨著信息產(chǎn)業(yè)的發(fā)展,各行各業(yè)對(duì)運(yùn)算能力的要求不斷提高。與此同時(shí),受微電子生產(chǎn)工藝的限制,傳統(tǒng)的通過(guò)提高電路集成度、CPU主頻的方法,已經(jīng)不能解決諸如設(shè)計(jì)復(fù)雜性、芯片功耗、電路漏電流、CPU散熱等問(wèn)題。因此,越來(lái)越多的處理器生產(chǎn)廠商轉(zhuǎn)向單芯片多處理器(CMP,ChipMulti-processing)技術(shù)與同時(shí)多線程(SMT,SimultaneousMulti-Threading)技術(shù),利用處理器的線程級(jí)并行來(lái)提高單個(gè)處理器封裝內(nèi)的處理能力。目前SUN公司業(yè)已推出了集成有32個(gè)線程的服務(wù)器處理器Niagara2,Intel公司也已經(jīng)設(shè)計(jì)出集成有32個(gè)處理器核心的圖像處理芯片Larrabee,目前個(gè)人桌面、商業(yè)服務(wù)器領(lǐng)域已經(jīng)普及了Intel與AMD公司的雙核、四核等處理器產(chǎn)品,在科學(xué)計(jì)算領(lǐng)域更是在一塊主板上部署多個(gè)多核處理器,在單個(gè)計(jì)算機(jī)系統(tǒng)中,處理器核心數(shù)量比之前大為增長(zhǎng)。可以預(yù)見,未來(lái)的單個(gè)處理器封裝中將會(huì)集成有更多的處理器核心或處理器線程,其應(yīng)用領(lǐng)域?qū)V泛覆蓋服務(wù)器、高性能計(jì)算、圖像處理、嵌入式系統(tǒng)等領(lǐng)域,未來(lái)多核平臺(tái)將向單芯片中封裝有更多的處理器核心的眾核平臺(tái)發(fā)展。隨著計(jì)算能力的不斷提高,為保證安全與隔離的前提下,充分利用系統(tǒng)計(jì)算資源,虛擬化技術(shù)應(yīng)運(yùn)而生,其基本思想是利用虛擬機(jī)監(jiān)視器(VMM)對(duì)底層硬件資源進(jìn)行管理,同時(shí)對(duì)上層提供多個(gè)彼此隔離的虛擬執(zhí)行環(huán)境,這些虛擬的硬件執(zhí)行環(huán)境成為一個(gè)虛擬機(jī)(VirtualMachine,簡(jiǎn)稱VM),從而使得一個(gè)物理主機(jī)上可以同時(shí)運(yùn)行多個(gè)不同的客戶機(jī)操作系統(tǒng)。早在20世紀(jì)60年代,IBM便在360系列大型機(jī)上使用了系統(tǒng)虛擬化技術(shù),將服務(wù)器資源以復(fù)用的形式分配給多個(gè)用戶。近年來(lái),虛擬化技術(shù)在服務(wù)器整合、服務(wù)隔離、軟件部署、科學(xué)計(jì)算和安全容錯(cuò)領(lǐng)域都有了廣泛的應(yīng)用。目前已經(jīng)出現(xiàn)了多個(gè)成功的虛擬化項(xiàng)目,包括V麗are公司的V麗areServer與Workstation等版本,Sun公司的SolarisContainer等,以及開源社區(qū)的KVM和Xen等。目前大部分現(xiàn)有虛擬化技術(shù),通過(guò)在原有系統(tǒng)軟件(操作系統(tǒng))與硬件平臺(tái)(裸機(jī))之間插入軟件薄層,使用直接執(zhí)行、動(dòng)態(tài)二進(jìn)制翻譯(DynamicBinaryTranslation)、硬件輔助虛擬化(Hardware-assistedvirtualization)或者泛虛擬化(Para-virtualization)技術(shù),來(lái)實(shí)現(xiàn)多個(gè)客戶機(jī)操作系統(tǒng)在多核平臺(tái)上的并行運(yùn)行,從而提高了CPU的整體利用率,并可以降低成本、簡(jiǎn)化管理、提高安全性與可靠性等。虛擬機(jī)系統(tǒng)由V匪進(jìn)行控制,其上提供了多個(gè)相互獨(dú)立的域(Domain),每個(gè)域中都包含有完整的虛擬硬件執(zhí)行環(huán)境,提供的基本計(jì)算資源包括處理器、存儲(chǔ)器和設(shè)備,用來(lái)運(yùn)行各自的客戶機(jī)操作系統(tǒng)并承載實(shí)際的計(jì)算任務(wù)。域之間的資源分配與任務(wù)調(diào)度由VMM控制,并負(fù)責(zé)彼此之間的隔離與保護(hù)。為了利用多核處理器帶來(lái)的性能上的改進(jìn),現(xiàn)有虛擬化系統(tǒng)大都沿用原有操作系統(tǒng)的對(duì)稱多處理器(SMP,SymmetricalMulti-Processing)系統(tǒng)的支持方式,并不能完全利用多核平臺(tái)的線程級(jí)并行技術(shù)帶來(lái)的性能改善,同樣也無(wú)法利用眾核平臺(tái)的線程級(jí)并行的改進(jìn)。典型的如Xen中的Credit調(diào)度算法,VMM控制系統(tǒng)中所有的CPU核心,為每個(gè)CPU核心建立一個(gè)調(diào)度隊(duì)列,全局地按照預(yù)先設(shè)計(jì)的CPU分配比例為每個(gè)Domain分配對(duì)應(yīng)比例的CPU時(shí)間,并按照時(shí)間對(duì)應(yīng)的優(yōu)先級(jí),在每個(gè)CPU隊(duì)列中由高至低的調(diào)度所有Domain。當(dāng)某個(gè)CPU上負(fù)載過(guò)重時(shí),VMM負(fù)責(zé)將其上的任務(wù)在全局尋找一個(gè)稍微空閑的CPU核心,并將任務(wù)遷移到目標(biāo)CPU核心。在CPU規(guī)模較小的情況下,這種全局的分配與管理策略是可以滿足需求的,但是隨著計(jì)算系統(tǒng)中集成處理器核心數(shù)的增加,這一方法很快就無(wú)法滿足全局的分配與管理策略對(duì)應(yīng)的急劇膨脹的計(jì)算量,最終無(wú)法滿足系統(tǒng)在眾核平臺(tái)上的調(diào)度需求。同時(shí),傳統(tǒng)的CPU虛擬化方法,由VMM統(tǒng)一對(duì)所有CPU進(jìn)行管理,并將它們按照一定的調(diào)度策略分配給不同的客戶機(jī)應(yīng)用,并沒(méi)有體現(xiàn)出不同客戶機(jī)應(yīng)用所具有的不同特權(quán)級(jí)要求。例如,在Xen中,存在DomainO等特權(quán)Domain,承擔(dān)諸如管理視圖、Domain創(chuàng)建、設(shè)備模型、后端驅(qū)動(dòng)等功能,而這些功能中都存在特權(quán)代碼,有些還需要運(yùn)行在根用戶模式。傳統(tǒng)的CPU虛擬化方法,將特權(quán)Domain與通用客戶機(jī)Domain放在一起,在全局的CPU視圖上進(jìn)行調(diào)度,會(huì)出現(xiàn)特權(quán)Domain與通用客戶機(jī)Domain彼此搶占同一個(gè)CPU核心,在同一個(gè)CPU核心上交替執(zhí)行,從而會(huì)導(dǎo)致系統(tǒng)整體可靠性的下降。此外,傳統(tǒng)CPU虛擬化方法無(wú)法保證特權(quán)Domain能夠擁有足夠的計(jì)算資源,在一些情況下會(huì)在這些關(guān)鍵領(lǐng)域出現(xiàn)系統(tǒng)性能瓶頸。因此,有必要利用CPU分區(qū)技術(shù)將特權(quán)Domain所在的CPU與通用客戶機(jī)Domain所在的CPU進(jìn)行物理分割。此外,傳統(tǒng)的CPU虛擬化方法,使用統(tǒng)一的調(diào)度策略,不能滿足不同客戶機(jī)應(yīng)用的特性。由于計(jì)算能力的發(fā)展,為了提高系統(tǒng)的利用率,通常在實(shí)際多核或眾核系統(tǒng)中會(huì)部署多種不同類型的通用客戶機(jī)Domain。這些Domain中,有些應(yīng)用對(duì)時(shí)間特性要求較高,需要采用響應(yīng)時(shí)間參數(shù)較好的調(diào)度策略;有些應(yīng)用對(duì)1/0或網(wǎng)絡(luò)吞吐率要求較高,則需要采用對(duì)設(shè)備訪問(wèn)優(yōu)化的調(diào)度策略。在通用客戶機(jī)Domain所在的CPU分區(qū)中,我們可以進(jìn)一步進(jìn)行分區(qū),為不同的通用客戶機(jī)Domain的CPU分區(qū)分配不同的調(diào)度策略,從而為不同應(yīng)用提供適合其特性的分離的運(yùn)行環(huán)境。因此,如何充分利用多核或眾核平臺(tái)的系統(tǒng)處理器資源,提高系統(tǒng)的可靠性與安全性,同時(shí)優(yōu)化系統(tǒng)的性能,適應(yīng)更多的目標(biāo)環(huán)境,支持更多的應(yīng)用環(huán)境,成為在虛擬化技術(shù)中應(yīng)用CPU分區(qū)技術(shù)所要解決的關(guān)鍵問(wèn)題。
發(fā)明內(nèi)容本發(fā)明提出了一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,該方法改進(jìn)了現(xiàn)有虛擬機(jī)監(jiān)視器CPU虛擬化的實(shí)現(xiàn)方式,將多核或眾核平臺(tái)下的CPU核心分為管理核分區(qū)與多個(gè)通用核分區(qū),H-Core(Hyper-Core,管理核)分配有部分CPU核心,其上運(yùn)行特權(quán)Domain與管理任務(wù),,剩余的CPU核心作為G-Core(General-Core,通用核),并根據(jù)VMM中要運(yùn)行通用客戶機(jī)Domain的約束條件的不同類型分成了多個(gè)G-Core分區(qū),并為不同的G-Core分區(qū)設(shè)置不同的調(diào)度策略,從而在不同G-Core分區(qū)中部署并調(diào)度不同類型的通用客戶機(jī)Domain。本發(fā)明提出的一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,具體包括如下步驟步驟1:虛擬機(jī)監(jiān)視器VMM對(duì)多核或眾核平臺(tái)的處理器資源分區(qū),提供H-Core分區(qū)和多個(gè)G-Core分區(qū);系統(tǒng)啟動(dòng)時(shí),虛擬機(jī)監(jiān)視器V匪將多核或眾核平臺(tái)中的處理器核心,劃分為管理核H-Core與通用核G-Core兩類CPU分區(qū),其中通用核G-Core類分區(qū),根據(jù)系統(tǒng)預(yù)期需要運(yùn)行的通用客戶機(jī)Domain的約束條件的不同類型,劃分為對(duì)應(yīng)數(shù)量的通用核G-Core分區(qū),VMM為每個(gè)CPU分區(qū)構(gòu)建數(shù)據(jù)結(jié)構(gòu)CPU分區(qū)BITMAP(位圖),在CPU分區(qū)BITMAP中記錄該分區(qū)擁有的物理處理器ID,通過(guò)遍歷CPU分區(qū)BITMAP來(lái)創(chuàng)建不同的CPU分區(qū),不同CPU分區(qū)分配有數(shù)量不等的CPU核心,由VMM統(tǒng)一管理;步驟2:從VMM與Domain的管理相關(guān)功能與代碼中分離出VMM中的管理任務(wù)H-Task與特權(quán)DomainH-Domain,將它們部署到步驟1中的管理核H-Core分區(qū);步驟3:對(duì)多核或眾核平臺(tái)上運(yùn)行的通用客戶機(jī)Domain進(jìn)行分類,并部署到對(duì)應(yīng)的通用核G-Core分區(qū);通用客戶機(jī)Domain啟動(dòng)時(shí),根據(jù)其自身的約束條件,被劃分到不同的虛擬化任務(wù)子集中,然后,VMM將各虛擬化任務(wù)子集部署到步驟1中所劃分的對(duì)應(yīng)的通用核G-Core分區(qū)中;步驟4:通用核G-Core分區(qū)中構(gòu)建調(diào)度子模塊,并設(shè)計(jì)符合的調(diào)度策略;在系統(tǒng)運(yùn)行過(guò)程中,V匪在每個(gè)通用核G-Core分區(qū)中構(gòu)建調(diào)度子模塊,各通用核G-Core分區(qū)的調(diào)度子模塊,具有各自獨(dú)立的調(diào)度隊(duì)列與調(diào)度策略,負(fù)責(zé)調(diào)度分區(qū)內(nèi)通用客戶機(jī)Domain的運(yùn)行,并負(fù)責(zé)維護(hù)本分區(qū)內(nèi)的通用客戶機(jī)Domain的資源分配,并配置符合其上運(yùn)行的通用客戶機(jī)Domain約束條件的各種策略;步驟5:在系統(tǒng)的運(yùn)行過(guò)程中,V匪對(duì)通用核G-Core分區(qū)和虛擬化任務(wù)子集進(jìn)行負(fù)載均衡;各通用核G-Core分區(qū)內(nèi)任務(wù)調(diào)度、資源分配工作,由各分區(qū)內(nèi)的調(diào)度子模塊來(lái)完成,當(dāng)通用核G-Core分區(qū)內(nèi)計(jì)算資源出現(xiàn)故障或虛擬化任務(wù)子集發(fā)生變化的時(shí)候,VMM將虛擬化任務(wù)子集在通用核G-Core分區(qū)間進(jìn)行調(diào)整,或者重新劃分通用核G-Core分區(qū),將虛擬化任務(wù)子集部署到新的通用核G-Core分區(qū)中。所述的約束條件,包括響應(yīng)時(shí)間要求、設(shè)備訪問(wèn)特性、可靠性特性、安全特性。步驟3中所述虛擬化任務(wù)子集部署的方法,具體在通用客戶機(jī)Domain啟動(dòng)的時(shí)候,V匪將該虛擬化任務(wù)子集中的通用客戶機(jī)Domain與其分配的通用核G-Core分區(qū)之間建立映射關(guān)系,通過(guò)Domain結(jié)構(gòu)體中CPU映射參數(shù)指定該客戶機(jī)Domain能夠運(yùn)行的通用核G-Core分區(qū)BITMAP,從而使得一類虛擬化任務(wù)子集與對(duì)應(yīng)的通用核G-Core分區(qū)綁定。步驟4中所述調(diào)度子模塊調(diào)度分區(qū)內(nèi)通用客戶機(jī)Domain的運(yùn)行,具體是針對(duì)通用核G-Core分區(qū)中運(yùn)行的通用客戶機(jī)Domain對(duì)應(yīng)的VCPU(虛擬處理器)而進(jìn)行的,VCPU被所在通用核G-Core分區(qū)的調(diào)度子模塊分配到所在通用核G-Core分區(qū)中每個(gè)物理CPU對(duì)應(yīng)的調(diào)度隊(duì)列中,然后由每個(gè)物理處理器上的調(diào)度代碼來(lái)對(duì)其進(jìn)行調(diào)度。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的優(yōu)點(diǎn)和積極效果(1)簡(jiǎn)化了多核或眾核平臺(tái)下CPU虛擬化的難度在多核或眾核平臺(tái)下,越來(lái)越多的CPU核心資源,大大提高了集中式管理所帶來(lái)的計(jì)算復(fù)雜性,而大部分場(chǎng)景下,單個(gè)客戶機(jī)Domain并不會(huì)占用全部的CPU核心資源。通過(guò)將處理器進(jìn)行分區(qū),虛擬機(jī)監(jiān)視器不需要直接將CPU核心分配到每一個(gè)獨(dú)立的客戶機(jī)Domain,而只是需要按照任務(wù)的分類,先將CPU核心進(jìn)行分區(qū),然后將不同類型的任務(wù)部署到不同的CPU分區(qū)中。這樣每個(gè)分區(qū)需要面對(duì)的計(jì)算資源規(guī)模大大減少,而每個(gè)分區(qū)上需要服務(wù)的虛擬化任務(wù)的計(jì)算需求比較近似,從而可以方便的為不同分區(qū)設(shè)計(jì)不同的任務(wù)調(diào)度和資源分配策略。在系統(tǒng)運(yùn)行過(guò)程中虛擬機(jī)監(jiān)視器只要完成CPU分區(qū)維護(hù)與虛擬化任務(wù)分配的工作就可以,因此,降低了多核或眾核平臺(tái)下CPU虛擬化的難度。(2)提高了CPU虛擬化方法的擴(kuò)展性和適應(yīng)性本發(fā)明降低了虛擬機(jī)監(jiān)視器在CPU虛擬化方面的難度,從而使得虛擬機(jī)監(jiān)視器可以支持更多的物理CPU數(shù)量,當(dāng)物理處理器核心數(shù)隨著眾核技術(shù)的發(fā)展而顯著增加時(shí),本發(fā)明提出的方法具有更好的可擴(kuò)展性;此外,通過(guò)不同的CPU分區(qū)支持不同的應(yīng)用需求,通過(guò)設(shè)計(jì)與實(shí)現(xiàn)更多的應(yīng)用種類,本發(fā)明提供的方法可以支持更多的應(yīng)用,具有良好的擴(kuò)展性。通過(guò)分區(qū)技術(shù),可以在不同分區(qū)中使用不同的調(diào)度策略與資源分配策略,而不會(huì)增加虛擬機(jī)監(jiān)視器實(shí)現(xiàn)的整體復(fù)雜性,從而可以支持同一系統(tǒng)中存在多種不同的應(yīng)用的場(chǎng)景(如在科學(xué)計(jì)算領(lǐng)域中,有一些系統(tǒng)監(jiān)控任務(wù)具有較高的實(shí)時(shí)要求,而一般的運(yùn)行任務(wù)則需要長(zhǎng)時(shí)間不停機(jī)地運(yùn)行),從而適應(yīng)更多的應(yīng)用場(chǎng)景。(3)提高了系統(tǒng)的可靠性與安全性通過(guò)處理器分區(qū)技術(shù)來(lái)進(jìn)行CPU虛擬化,可以將不同特權(quán)級(jí)別的客戶機(jī)Domain進(jìn)行分割,將特權(quán)Domain和虛擬機(jī)監(jiān)視器中的管理任務(wù)分配到H-Core分區(qū)進(jìn)行運(yùn)行,從而特權(quán)Domain與管理任務(wù)的運(yùn)行環(huán)境(CPU時(shí)間、內(nèi)存資源、硬件設(shè)備)不會(huì)受到其他Domain的影響,避免了在原有CPU虛擬化方法中,特權(quán)Domain與通用客戶機(jī)Domain運(yùn)行在同一個(gè)CPU上,從而被通用客戶機(jī)Domain中未經(jīng)認(rèn)證的應(yīng)用影響的情況。此外,通過(guò)在G-Core分區(qū)中提供不同級(jí)別的可靠性設(shè)計(jì)與安全性設(shè)計(jì),降低了可靠性與安全性設(shè)計(jì)與實(shí)現(xiàn)的難度與成本,從另一個(gè)方面提高了系統(tǒng)的可靠性和安全性。(4)提高了多核或眾核平臺(tái)下虛擬化系統(tǒng)的整體性能由于CPU分區(qū)的規(guī)模相對(duì)于系統(tǒng)整體較小,因此可以方便的在分區(qū)內(nèi)采用較為復(fù)雜的調(diào)度優(yōu)化與資源分配優(yōu)化,而分區(qū)內(nèi)應(yīng)用具有類似需求,因此可以更方便設(shè)計(jì)有針對(duì)性的優(yōu)化策略。此外,運(yùn)行時(shí)對(duì)故障情況的重新部署,以及根據(jù)環(huán)境需求調(diào)整分區(qū)與任務(wù)的部署關(guān)系,可以按需分配計(jì)算資源,最大程度地保證了系統(tǒng)關(guān)鍵任務(wù)的計(jì)算資源,從而可以獲得更好的整體性能。圖1為本發(fā)明提出的基于處理器分區(qū)技術(shù)的CPU虛擬化方法的步驟流程圖2為本發(fā)明實(shí)施例虛擬機(jī)監(jiān)視器的示例性結(jié)構(gòu)圖;圖3為本發(fā)明實(shí)施例雙4核平臺(tái)中對(duì)若干虛擬化任務(wù)進(jìn)行部署的靜態(tài)示例性示意圖。具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說(shuō)明。本發(fā)明實(shí)施例中,基于裸機(jī)虛擬化(Bare-metalvisualization)方法,提出了一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,針對(duì)多核或眾核平臺(tái)的特點(diǎn),將系統(tǒng)中的眾多6處理器核心按照預(yù)期的任務(wù)分類,劃分為H-Core分區(qū)與對(duì)應(yīng)數(shù)量的G-Core分區(qū);將虛擬化系統(tǒng)中運(yùn)行的特權(quán)Domain與管理任務(wù)部署到H-Core中,為其分配獨(dú)立的CPU核心與計(jì)算資源;將虛擬化系統(tǒng)中運(yùn)行的通用客戶機(jī)Domain按照時(shí)間約束、10訪問(wèn)要求、安全性與可靠性要求等特性,劃分為多個(gè)虛擬化任務(wù)子集,部署到對(duì)應(yīng)的G-Core分區(qū)中;與此同時(shí),在不同的G-Core分區(qū)上,按照其上運(yùn)行的虛擬化任務(wù)子集的特性,使用自有的調(diào)度策略、資源分配策略、設(shè)備模擬方法以及訪問(wèn)控制策略,從而可以適應(yīng)不同虛擬化任務(wù)子集在響應(yīng)時(shí)間、計(jì)算性能、安全性與可靠性等方面的不同要求。下面結(jié)合實(shí)施例和附圖,進(jìn)一步詳細(xì)說(shuō)明?!N基于處理器分區(qū)技術(shù)的CPU虛擬化方法,包括如下步驟,如圖l所示步驟l,對(duì)多核或眾核平臺(tái)上的處理器資源進(jìn)行分區(qū),提供H-Core分區(qū)和多個(gè)G-Core分區(qū)。系統(tǒng)啟動(dòng)時(shí),虛擬機(jī)監(jiān)視器將多核或眾核平臺(tái)中的處理器核心,劃分為H-Core與G-Core兩類CPU分區(qū),G-Core類CPU分區(qū)按照系統(tǒng)預(yù)期需要運(yùn)行的客戶機(jī)Domain的約束條件的類型被劃分為對(duì)應(yīng)數(shù)量的不同的G-Core分區(qū)。這些分區(qū)被分配了數(shù)量不等的CPU核心與其他計(jì)算資源,不同CPU分區(qū)按照計(jì)算需求分配數(shù)量不等的CPU核心,由VMM統(tǒng)一管理,等待H-Task、H-Domain與G-Domain的部署。系統(tǒng)預(yù)期需要運(yùn)行的客戶機(jī)Domain的約束條件具體在步驟3中闡述。特權(quán)Domain,即H-Domain,指具有較高的特權(quán)級(jí),執(zhí)行特權(quán)任務(wù)的虛擬化客戶機(jī)Domain,承擔(dān)了諸如管理視圖、Domain創(chuàng)建、設(shè)備模型、驅(qū)動(dòng)Domain等功能模塊。例如,在Xen系統(tǒng)中的Domain0,以及Driver-Domain,stub-Domain等。管理任務(wù),即H-Task,指運(yùn)行在VMM中,具有管理特性的關(guān)鍵任務(wù),如系統(tǒng)健康狀態(tài)監(jiān)控、調(diào)度決策、中斷響應(yīng)等關(guān)鍵任務(wù),運(yùn)行在特權(quán)模式,對(duì)系統(tǒng)的正常運(yùn)行至關(guān)重要。例如,在Xen中負(fù)責(zé)維護(hù)系統(tǒng)調(diào)度決策的調(diào)度器、訪問(wèn)控制與事件通道等部分,均是系統(tǒng)安全可靠運(yùn)行的關(guān)鍵所在。通用客戶機(jī)Domain,即G-Domain,一般為虛擬化平臺(tái)所需要服務(wù)的計(jì)算任務(wù)。通用客戶機(jī)Domain可以包括多種應(yīng)用,具有不同的約束要求。在V匪的啟動(dòng)階段,為每個(gè)CPU分區(qū)構(gòu)建數(shù)據(jù)結(jié)構(gòu)——CPU分區(qū)BITMAP,并在CPU分區(qū)BITMAP中保存該分區(qū)中擁有的實(shí)際的物理處理器ID,從而可以維護(hù)CPU分區(qū)的結(jié)構(gòu);在VMM的啟動(dòng)和運(yùn)行過(guò)程中,VMM負(fù)責(zé)檢測(cè)每一個(gè)分區(qū)的BITMAP,并維護(hù)每個(gè)分區(qū)中的守護(hù)進(jìn)程,使得守護(hù)進(jìn)程中執(zhí)行的VMM任務(wù)與客戶機(jī)Domain均被物理限制在本分區(qū)中,從而實(shí)現(xiàn)CPU的物理分區(qū)。通過(guò)CPU分區(qū)BITMAP實(shí)現(xiàn)的物理分區(qū),相對(duì)于調(diào)度器實(shí)現(xiàn)的分層調(diào)度與分區(qū)調(diào)度,可以從系統(tǒng)層面上限制分區(qū)中V匪任務(wù)與客戶機(jī)Domain所可以訪問(wèn)CPU等計(jì)算資源,從而可以得到在VMM上層實(shí)現(xiàn)的調(diào)度策略所不能達(dá)到的可靠性與安全性。在如圖3所示的執(zhí)行科學(xué)計(jì)算的雙4核平臺(tái)示例系統(tǒng)中,需要運(yùn)行多種不同應(yīng)用,本實(shí)施例中將這些通用客戶機(jī)Domain按照響應(yīng)時(shí)間要求、設(shè)備訪問(wèn)特性分為4類虛擬化任務(wù)子集,此外還有特權(quán)Domain與管理任務(wù)組成的任務(wù)子集,我們將所有8個(gè)CPU核心F0-F7劃分到4個(gè)不同的G-Core分區(qū)與1個(gè)H-Core分區(qū)中,每個(gè)CPU分區(qū)中對(duì)應(yīng)的處理器核心數(shù)量依次為1、2、2、2、1個(gè)。在V匪啟動(dòng)過(guò)程中,首先初始化5個(gè)CPU分區(qū)位圖(BITMAP),當(dāng)7VMM在BP(BootstrapProcessor,引導(dǎo)處理器)上啟動(dòng)并完成CPU的初始化工作后,BP將自己加入到第一個(gè)CPUBITMAP,接著BP會(huì)依次啟動(dòng)剩余的7個(gè)AP(Applicationprocessor)。啟動(dòng)AP的過(guò)程與啟動(dòng)BP的過(guò)程類似,在AP的CPU的初始化完成之后,我們分別將它們加入到5個(gè)CPUBITMAP中。至此,為該虛擬化系統(tǒng)構(gòu)建了5個(gè)CPUBITMAP,其中存放了對(duì)應(yīng)的全部8個(gè)處理器核心對(duì)應(yīng)的ID。如圖3所示,CPU核心F0為BP,分在第一G-Core分區(qū)中,CPU核心Fl-F7為AP,F(xiàn)1、F2分在第二G-Core分區(qū)中,F(xiàn)3、F4分在第三G-Core分區(qū)中,F(xiàn)5、F6分在第四G-Core分區(qū)中,F(xiàn)7分在H-Core分區(qū)中。步驟2,分離出H-Domain與H-Task,并將它們部署到H-Core分區(qū)中。在虛擬化系統(tǒng)運(yùn)行過(guò)程中,在VMM中有一系列保證系統(tǒng)正常運(yùn)行的系統(tǒng)監(jiān)控模塊、策略選擇模塊等,它們運(yùn)行在特權(quán)級(jí)上,具有較高的優(yōu)先級(jí),對(duì)系統(tǒng)的正常運(yùn)行起著至關(guān)重要的作用。而一些客戶機(jī)Domain中運(yùn)行的管理視圖、Domain創(chuàng)建、設(shè)備模型等功能模塊,同樣對(duì)系統(tǒng)的運(yùn)行有重要作用。這些特權(quán)Domain與管理任務(wù)是系統(tǒng)的關(guān)鍵模塊。步驟1為這些特權(quán)Domain與管理任務(wù)分配了一個(gè)H-Core分區(qū),保證它們具有獨(dú)立的CPU與計(jì)算資源,不會(huì)被其他計(jì)算任務(wù)干擾。VMM將H-Domain與H-Task從系統(tǒng)中分離出來(lái),并將它們與H-Core分區(qū)之間建立映射管理,從而保證這些關(guān)鍵任務(wù)被獨(dú)立的H-Core來(lái)服務(wù),從而保證關(guān)鍵任務(wù)的計(jì)算資源與CPU時(shí)間得到充分保證,此外H-Core分區(qū)也將這些關(guān)鍵任務(wù)與系統(tǒng)中其他計(jì)算任務(wù)進(jìn)行隔離,從而保證了系統(tǒng)的可靠運(yùn)行。如圖3所示,本實(shí)施例中,根據(jù)特權(quán)Domain和管理任務(wù)所需要的計(jì)算資源,將F7分配為H-Core分區(qū),并將上述特權(quán)Domain與管理任務(wù)部署在其中。在H-Core分區(qū)中,將F7作為專有CPU核心,專門提供給特權(quán)Domain與管理任務(wù)運(yùn)行。由于步驟1所實(shí)現(xiàn)的CPU分區(qū)的物理隔離,從而G-Core分區(qū)上的其他非關(guān)鍵任務(wù)不能夠訪問(wèn)H-Core分區(qū)中所分配的計(jì)算資源,同樣也無(wú)法干擾到關(guān)鍵任務(wù)的運(yùn)行。步驟3,對(duì)多核或眾核平臺(tái)上運(yùn)行的多個(gè)通用客戶機(jī)Domain進(jìn)行分類,并部署到對(duì)應(yīng)G-Core分區(qū)。系統(tǒng)運(yùn)行過(guò)程中,當(dāng)通用客戶機(jī)Domain創(chuàng)建時(shí),根據(jù)其特性,分類為不同的虛擬化任務(wù)子集,VMM將不同的虛擬化任務(wù)子集部署到步驟1劃分的不同G-Core分區(qū)中。由于多核或眾核平臺(tái)計(jì)算能力強(qiáng)大,一般其上會(huì)部署多種不同類型的虛擬化任務(wù),以充分利用其計(jì)算資源。而每一個(gè)任務(wù)都有其約束條件,一般包括響應(yīng)時(shí)間要求(實(shí)時(shí)要求與非實(shí)時(shí)要求)、設(shè)備訪問(wèn)特性(10密集型應(yīng)用與CPU密集型應(yīng)用)、可靠性特性(關(guān)鍵領(lǐng)域應(yīng)用與非關(guān)鍵領(lǐng)域應(yīng)用)、安全特性(安全敏感應(yīng)用與安全不敏感應(yīng)用)等,如表1所示。8<table>tableseeoriginaldocumentpage9</column></row><table>表1不同約束條件的任務(wù)需要不同的調(diào)度、資源分配等策略與其適應(yīng)。本發(fā)明實(shí)施例選取了對(duì)服務(wù)器應(yīng)用與嵌入式計(jì)算均有指導(dǎo)意義的約束條件,包括響應(yīng)時(shí)間要求、設(shè)備訪問(wèn)特性進(jìn)行分類,將任務(wù)集分為實(shí)時(shí)10密集型應(yīng)用、實(shí)時(shí)CPU密集型應(yīng)用、非實(shí)時(shí)10密集型應(yīng)用,非實(shí)時(shí)CPU密集型應(yīng)用。其分別對(duì)應(yīng)實(shí)時(shí)10密集型應(yīng)用——實(shí)時(shí)數(shù)據(jù)采集應(yīng)用,需要能夠在規(guī)定時(shí)限內(nèi)獲取指定的數(shù)據(jù),且可能涉及到大量的設(shè)備訪問(wèn);實(shí)時(shí)CPU密集型應(yīng)用——工業(yè)控制應(yīng)用,需要針對(duì)外界采樣獲得的數(shù)據(jù),通過(guò)大量計(jì)算,來(lái)完成對(duì)生產(chǎn)線的控制,需要能夠及時(shí)做出響應(yīng),同時(shí)需要進(jìn)行相對(duì)大量的計(jì)算;非實(shí)時(shí)IO密集型應(yīng)用——數(shù)據(jù)存儲(chǔ)應(yīng)用,在獲取到大量的數(shù)據(jù)之后,需要將其保存在外部大容量存儲(chǔ)設(shè)備中,以供后續(xù)處理,而這類應(yīng)用通常需要進(jìn)行相對(duì)大量的設(shè)備訪問(wèn),而對(duì)訪問(wèn)的時(shí)間要求則不高;非實(shí)時(shí)CPU密集型應(yīng)用——離線數(shù)據(jù)處理應(yīng)用,為了支持工業(yè)控制應(yīng)用,經(jīng)常需要對(duì)獲取的數(shù)據(jù)進(jìn)行進(jìn)一步分析,從而使得存儲(chǔ)的數(shù)據(jù)更加合理與有效,這些應(yīng)用沒(méi)有響應(yīng)時(shí)間的要求,但需要占用大量的處理器時(shí)間。本發(fā)明將通用客戶機(jī)Domain按照任務(wù)的不同要求進(jìn)行分類,從而簡(jiǎn)化了對(duì)多種類型的任務(wù)提供支持所帶來(lái)的復(fù)雜性。本發(fā)明實(shí)施例在Domain對(duì)應(yīng)的結(jié)構(gòu)體中,設(shè)置了CPU映射參數(shù)domain—cpujn即用來(lái)指定Domain與CPUBITMAP之間的關(guān)系,又設(shè)置專門的結(jié)構(gòu)體,針對(duì)本Domain及其上應(yīng)用所具有的特性,為結(jié)構(gòu)體賦予不同的參數(shù),包括用于指定是否有實(shí)時(shí)性要求的參數(shù)is_rt_app,以及標(biāo)示實(shí)時(shí)特性參數(shù)的聯(lián)合體rt—config;用來(lái)表示設(shè)備訪問(wèn)特性的參數(shù)is_Cpu_b0Und,以及應(yīng)用所占用的負(fù)載的參數(shù)cpU_Weight等,用來(lái)標(biāo)明Domain所在分組與具有的性能要求。VMM負(fù)責(zé)將不同的通用客戶機(jī)Domain根據(jù)其計(jì)算資源的要求部署在不同的G-Core分區(qū)中。在虛擬化任務(wù)啟動(dòng)的時(shí)候,VMM將通用客戶機(jī)Domain與其虛擬化任務(wù)子集所分配的CPU分區(qū)之間建立映射關(guān)系,通過(guò)Domain結(jié)構(gòu)體中CPU映射參數(shù)指定該應(yīng)用可以運(yùn)行的CPUBITMAP,從而使得某一類的虛擬化任務(wù)子集與對(duì)應(yīng)的滿足Domain性能要求的CPU分區(qū)綁定。如圖3所示,本實(shí)施例中,將非實(shí)時(shí)10密集型任務(wù)對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)子集部署在步驟1所分配的第一G-CORE分區(qū)中,該G-CORE分區(qū)上運(yùn)行著數(shù)據(jù)存儲(chǔ)Domain與其他類似的IO密集型虛擬化任務(wù);將實(shí)時(shí)IO密集型任務(wù)對(duì)應(yīng)的實(shí)時(shí)任務(wù)子集部署在第二G-CORE分區(qū)中,該G-CORE分區(qū)上運(yùn)行著設(shè)備驅(qū)動(dòng)Domain與數(shù)據(jù)采集Domain;將非實(shí)時(shí)CPU密集型任務(wù)對(duì)應(yīng)的科學(xué)計(jì)算子集部署在第三G-CORE分區(qū)中,該G-CORE分區(qū)上運(yùn)行著計(jì)算運(yùn)行Domain與計(jì)算加速Domain;將實(shí)時(shí)CPU密集型任務(wù)對(duì)應(yīng)的數(shù)據(jù)處理子集部署在第四G-CORE分區(qū)中,該G-CORE分區(qū)上運(yùn)行著數(shù)據(jù)處理Domain與其他類似的CPU密集型虛擬化任務(wù)。這樣的分配方法滿足不同任務(wù)對(duì)計(jì)算資源的需求,并且可以在不同分區(qū)中采用不同的優(yōu)化方式。虛擬化任務(wù)子集部署到對(duì)應(yīng)的G-Core分區(qū)運(yùn)行,其參與分配的計(jì)算資源均在該G-Core分區(qū)中,而無(wú)法使用分區(qū)外的計(jì)算資源;同時(shí),不同G-Core分區(qū)內(nèi)的通用客戶機(jī)Domain彼此不影響。本發(fā)明實(shí)施例中,通過(guò)控制Domain中VCPU可以運(yùn)行的CPU分區(qū)的BITMAP,從而限制對(duì)應(yīng)Domain所在的物理CPU分區(qū),從而實(shí)現(xiàn)不同類型的虛擬化任務(wù)子集部署到不同的CPU分區(qū)中。VCPU所構(gòu)建的運(yùn)行隊(duì)列與等待隊(duì)列,在其所在CPU分區(qū)BITMAP中的物理CPU上構(gòu)建。步驟4,VMM為G-Core分區(qū)中構(gòu)建調(diào)度子模塊,并設(shè)計(jì)符合的調(diào)度策略。在不同G-Core分區(qū),根據(jù)其上虛擬化任務(wù)子集的約束條件特性,配置符合要求的任務(wù)調(diào)度、資源分配,安全可靠等方面的策略。在系統(tǒng)運(yùn)行過(guò)程中,虛擬化任務(wù)子集中全部的通用客戶機(jī)Domain被限制在對(duì)應(yīng)的G-Core分區(qū)內(nèi)完成,VMM在每個(gè)G-Core分區(qū)中建立獨(dú)立的任務(wù)隊(duì)列并進(jìn)行任務(wù)調(diào)度與資源分配,每個(gè)G-Core分區(qū)按照分區(qū)中虛擬化任務(wù)子集的約束條件,選擇適合的調(diào)度策略與資源分配策略。由于每個(gè)虛擬化任務(wù)子集是由具有近似特性的應(yīng)用構(gòu)成,因此本發(fā)明可以針對(duì)不同的應(yīng)用類型,定義不同的任務(wù)調(diào)度、資源分配、可靠性特性,而由于每個(gè)G-Core分區(qū)上運(yùn)行對(duì)應(yīng)的虛擬化任務(wù)子集,因此也就是為每一個(gè)G-Core分區(qū)實(shí)現(xiàn)對(duì)一種類型應(yīng)用的支持,也就是實(shí)現(xiàn)基于分區(qū)的CPU虛擬化方法。在虛擬機(jī)監(jiān)視器中,通過(guò)在每個(gè)G-Core分區(qū)中設(shè)計(jì)調(diào)度子模塊,這些調(diào)度子模塊根據(jù)G-Core分區(qū)中的虛擬化化任務(wù)子集的約束條件,提供最合適的調(diào)度策略。G-Core分區(qū)中的調(diào)度,是針對(duì)該分區(qū)中運(yùn)行的通用客戶機(jī)Domain對(duì)應(yīng)的VCPU而進(jìn)行的,VCPU被分配到分區(qū)中每個(gè)物理CPU對(duì)應(yīng)的調(diào)度隊(duì)列中,由每個(gè)物理處理器上的調(diào)度器來(lái)對(duì)其進(jìn)行調(diào)度。物理處理器上的調(diào)度器是指物理處理器上運(yùn)行的調(diào)度代碼。每一個(gè)物理處理器上的調(diào)度代碼負(fù)責(zé)本處理器上VCPU調(diào)度隊(duì)列的運(yùn)行。在該步驟中,本發(fā)明圖3所示實(shí)施例為每一個(gè)G-Core分區(qū)構(gòu)建了適宜于其上任務(wù)子集特性的調(diào)度器(Scheduler),分別滿足其在實(shí)時(shí)性與數(shù)據(jù)密集或CPU密集等方面的不同特點(diǎn)。當(dāng)一個(gè)物理CPU空閑下來(lái)的時(shí)候,V匪會(huì)從當(dāng)前自身等待隊(duì)列中的VCPU中按照調(diào)度器的策略選擇一個(gè)VCPU投入運(yùn)行,由于步驟1與步驟3的限制,該VCPU必然是被部署到此物理CPU所在G-Core分區(qū)的通用客戶機(jī)Domain中的VCPU,而調(diào)度器的調(diào)度策略,則是針對(duì)當(dāng)前G-Core分區(qū)中所部署的虛擬化任務(wù)子集的特性而構(gòu)建的,從而保證了分區(qū)內(nèi)性能的最優(yōu)化。步驟5,在系統(tǒng)的運(yùn)行過(guò)程中,對(duì)通用核G-Core分區(qū)和虛擬化任務(wù)子集進(jìn)行負(fù)載均衡。在滿足G-Core分區(qū)內(nèi)資源需求的正常運(yùn)行階段,VMM只需要對(duì)G-Core分區(qū)與任務(wù)的部署進(jìn)行控制,負(fù)責(zé)維護(hù)新加入的通用客戶機(jī)Domain對(duì)應(yīng)的VCPU與G-Core分區(qū)BITMAP的對(duì)應(yīng)關(guān)系即可,各G-Core分區(qū)內(nèi)任務(wù)調(diào)度、資源分配等工作,由分區(qū)內(nèi)V匪的子任務(wù)來(lái)完成。當(dāng)G-Core分區(qū)內(nèi)計(jì)算資源出現(xiàn)故障,或者虛擬化任務(wù)子集發(fā)生變化的時(shí)候,VMM需要對(duì)G-Core分區(qū)進(jìn)行重新分配,或者將虛擬化任務(wù)子集重新部署到新的G-Core分區(qū)中。當(dāng)需要將虛擬化任務(wù)子集進(jìn)行重新部署的時(shí)候,VMM則需要將所需要重新部署的虛擬化任務(wù)子集上所有VCPU停止,之后重新維護(hù)虛擬化任務(wù)子集中所有VCPU與G-Core分區(qū)的BITMAP的映射關(guān)系,接著使用虛擬機(jī)遷移技術(shù),將VCPU遷移到對(duì)應(yīng)的G-Core分區(qū)的BITMAP中。這里要求遷移的目標(biāo)G-Core分區(qū)滿足被遷移任務(wù)子集對(duì)計(jì)算資源的要求。虛擬化任務(wù)子集的部署與分配,可以是靜態(tài)部署的,也可以是動(dòng)態(tài)調(diào)整的。本發(fā)明實(shí)施例對(duì)于可以預(yù)先確定數(shù)量和約束條件特性的虛擬化任務(wù)集,對(duì)通用核G-Core分區(qū)進(jìn)行靜態(tài)分區(qū),VMM通過(guò)讀取通用客戶機(jī)Domain的配置文件指定了客戶機(jī)Domain的分類方法,在通用客戶機(jī)Domain啟動(dòng)階段,將該客戶機(jī)Domain分配到其所屬虛擬化任務(wù)子集對(duì)應(yīng)的G-Core分區(qū),在運(yùn)行過(guò)程中并不需要調(diào)整其分類方式與分區(qū)方法,這種運(yùn)行環(huán)境適合于靜態(tài)部署,可以達(dá)到較優(yōu)的部署效果。而針對(duì)無(wú)法預(yù)先確定數(shù)量和約束條件特性的虛擬化任務(wù)集,本發(fā)明實(shí)施例通過(guò)VMM運(yùn)行時(shí)采集通用客戶機(jī)Domain運(yùn)行的參數(shù),判斷G-Core分區(qū)是否可以滿足其上虛擬化任務(wù)子集的運(yùn)算需求,若滿足則直接將該客戶機(jī)Domain部署到對(duì)應(yīng)的G-Core分區(qū),不需要調(diào)整,若不滿足則按照上述的G-Core重新分區(qū)、虛擬機(jī)遷移完成G-Core分區(qū)與任務(wù)分配的動(dòng)態(tài)調(diào)整,從而滿足無(wú)法預(yù)先確定的任務(wù)集的分區(qū)虛擬化方法。所述通用客戶機(jī)Domain的配置文件中包含該客戶機(jī)Domain所需要的計(jì)算機(jī)資源要求、約束條件特性等信息。所述的虛擬化任務(wù)集是虛擬化任務(wù)子集的集合。本發(fā)明實(shí)施例通過(guò)支持G-Core分區(qū)與虛擬化任務(wù)子集的動(dòng)態(tài)調(diào)整,使得面對(duì)多核處理器的基于分區(qū)的CPU虛擬化技術(shù)能夠提供實(shí)時(shí)或非實(shí)時(shí)、10密集型或計(jì)算密集型、安全、可靠的運(yùn)行環(huán)境,且該運(yùn)行環(huán)境是實(shí)用、高效的。圖2給出了本發(fā)明的方法在實(shí)施中虛擬化監(jiān)視器的示例性結(jié)構(gòu)圖。如圖2所示,多核或眾核平臺(tái)系統(tǒng)中具有多個(gè)CPU核心,本發(fā)明實(shí)施例選擇CPU核心E0到CPU核心El1的12個(gè)CPU核心作為演示,預(yù)期其上運(yùn)行4類不同的通用虛擬化任務(wù),按照每種應(yīng)用的不同資源需求,我們將上述CPU核心進(jìn)行了分區(qū),依次劃分為第一G-Core分區(qū)、第二G-Core分區(qū)、第三G-Core分區(qū)和第四G-Core分區(qū),其中第一G-Core分區(qū)中分配有處理器核心E0、E1與E2,第二G-Core分區(qū)中分配有處理器核心E3與E4,第三G-Core分區(qū)中分配有處理器核心E5、E6與E7,第四G-Core分區(qū)中分配有處理器核心E8與E9;此外將處理器核心E10與Ell分配為H-Core分區(qū)。在完成CPU分區(qū)之后,本發(fā)明實(shí)施例將不同類型的通用客戶機(jī)Domain組成的虛擬化任務(wù)子集部署在不同的CPU分區(qū)中,如圖2所示,本發(fā)明實(shí)施例中,將虛擬化任務(wù)子集A、B、C、D分別部署在第一G-Core分區(qū)、第二G-Core分區(qū)、第三G-Core分區(qū)與第四G-Core分區(qū)上;在每個(gè)虛擬化任務(wù)子集中的虛擬化任務(wù)可以是獨(dú)立Domain中的特定應(yīng)用,也可以是共享在一個(gè)Domain中的并存多個(gè)應(yīng)用,或運(yùn)行在虛擬機(jī)監(jiān)視器上的服務(wù)。如圖2所示,虛擬化任務(wù)子集A包括應(yīng)用虛擬機(jī)Al、虛擬機(jī)A2,虛擬化任務(wù)子集B包括應(yīng)用虛擬機(jī)B1、虛擬機(jī)B2、虛擬機(jī)B3,虛擬化任務(wù)子集C包括應(yīng)用虛擬機(jī)Cl、虛擬機(jī)C2、虛擬機(jī)C3,虛擬化任務(wù)子集D包括應(yīng)用虛擬機(jī)Dl、虛擬機(jī)D2、虛擬機(jī)D3、虛擬機(jī)D4。此外,將特權(quán)Domain與管理任務(wù)部署在H-Core分區(qū)中,如圖2所示,特權(quán)11DomainHl與管理任務(wù)H2被部署在H-Core分區(qū)中。在虛擬化任務(wù)部署完畢后,VMM控制CPU分區(qū)內(nèi)進(jìn)行彼此獨(dú)立的任務(wù)調(diào)度與資源分配,并在整體上互相配合,從而避免了集中式的CPU虛擬化技術(shù)帶來(lái)的性能瓶頸,既滿足不同類型應(yīng)用的個(gè)性化需求,也避免了不同種類應(yīng)用的彼此干擾。權(quán)利要求一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,其特征在于,具體步驟包括步驟1虛擬機(jī)監(jiān)視器VMM對(duì)多核或眾核平臺(tái)的處理器資源分區(qū),提供H-Core分區(qū)和多個(gè)G-Core分區(qū);系統(tǒng)啟動(dòng)時(shí),虛擬機(jī)監(jiān)視器VMM將多核或眾核平臺(tái)中的處理器核心,劃分為管理核H-Core與通用核G-Core兩類CPU分區(qū),其中通用核G-Core類分區(qū),根據(jù)系統(tǒng)預(yù)期需要運(yùn)行的通用客戶機(jī)Domain的約束條件的不同類型,劃分為對(duì)應(yīng)數(shù)量的通用核G-Core分區(qū),VMM為每個(gè)CPU分區(qū)構(gòu)建數(shù)據(jù)結(jié)構(gòu)CPU分區(qū)BITMAP,在CPU分區(qū)BITMAP中記錄該分區(qū)擁有的物理處理器ID,通過(guò)遍歷CPU分區(qū)BITMAP來(lái)創(chuàng)建不同的CPU分區(qū),不同CPU分區(qū)分配有數(shù)量不等的CPU核心,由VMM統(tǒng)一管理,其中Domain代表域,BITMAP代表位圖;步驟2從VMM與Domain的管理相關(guān)功能與代碼中分離出VMM中的管理任務(wù)H-Task與特權(quán)DomainH-Domain,將它們部署到步驟1中的管理核H-Core分區(qū);步驟3對(duì)多核或眾核平臺(tái)上運(yùn)行的通用客戶機(jī)Domain進(jìn)行分類,并部署到對(duì)應(yīng)的通用核G-Core分區(qū);通用客戶機(jī)Domain啟動(dòng)時(shí),根據(jù)其自身的約束條件,被劃分到不同的虛擬化任務(wù)子集中,然后,VMM將各虛擬化任務(wù)子集部署到步驟1中所劃分的對(duì)應(yīng)的通用核G-Core分區(qū)中;步驟4通用核G-Core分區(qū)中構(gòu)建調(diào)度子模塊,并設(shè)計(jì)符合的調(diào)度策略;在系統(tǒng)運(yùn)行過(guò)程中,VMM在每個(gè)通用核G-Core分區(qū)中構(gòu)建調(diào)度子模塊,各通用核G-Core分區(qū)的調(diào)度子模塊,具有各自獨(dú)立的調(diào)度隊(duì)列與調(diào)度策略,負(fù)責(zé)調(diào)度分區(qū)內(nèi)通用客戶機(jī)Domain的運(yùn)行,并負(fù)責(zé)維護(hù)本分區(qū)內(nèi)的通用客戶機(jī)Domain的資源分配,并配置符合其上運(yùn)行的通用客戶機(jī)Domain約束條件的各種策略;步驟5在系統(tǒng)的運(yùn)行過(guò)程中,VMM對(duì)通用核G-Core分區(qū)和虛擬化任務(wù)子集進(jìn)行負(fù)載均衡;各通用核G-Core分區(qū)內(nèi)任務(wù)調(diào)度、資源分配工作,由各分區(qū)內(nèi)的調(diào)度子模塊來(lái)完成,當(dāng)通用核G-Core分區(qū)內(nèi)計(jì)算資源出現(xiàn)故障或虛擬化任務(wù)子集發(fā)生變化的時(shí)候,VMM將虛擬化任務(wù)子集在通用核G-Core分區(qū)間進(jìn)行調(diào)整,或者重新劃分通用核G-Core分區(qū),將虛擬化任務(wù)子集部署到新的通用核G-Core分區(qū)中。2.根據(jù)權(quán)利要求1所述的一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,其特征在于,所述的約束條件,包括響應(yīng)時(shí)間要求、設(shè)備訪問(wèn)特性、可靠性特性、安全特性。3.根據(jù)權(quán)利要求1所述的一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,其特征在于,步驟3中所述虛擬化任務(wù)子集部署的方法,具體在通用客戶機(jī)Domain啟動(dòng)的時(shí)候,VMM將該虛擬化任務(wù)子集中的通用客戶機(jī)Domain與其分配的通用核G-Core分區(qū)之間建立映射關(guān)系,通過(guò)Domain結(jié)構(gòu)體中CPU映射參數(shù)指定該客戶機(jī)Domain能夠運(yùn)行的通用核G-Core分區(qū)BITMAP,從而使得一類虛擬化任務(wù)子集與對(duì)應(yīng)的通用核G-Core分區(qū)綁定。4.根據(jù)權(quán)利要求1所述的一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,其特征在于,步驟4中所述調(diào)度子模塊調(diào)度分區(qū)內(nèi)通用客戶機(jī)Domain的運(yùn)行,具體是針對(duì)通用核G-Core分區(qū)中運(yùn)行的通用客戶機(jī)Domain對(duì)應(yīng)的VCPU而進(jìn)行的,VCPU被所在通用核G-Core分區(qū)的調(diào)度子模塊分配到所在通用核G-Core分區(qū)中每個(gè)物理CPU對(duì)應(yīng)的調(diào)度隊(duì)列中,然后由每個(gè)物理處理器上的調(diào)度代碼來(lái)對(duì)其進(jìn)行調(diào)度;其中,VCPU代表虛擬處理器。全文摘要本發(fā)明提出了一種基于處理器分區(qū)技術(shù)的CPU虛擬化方法,針對(duì)多核或眾核平臺(tái),首先將CPU核心劃分為管理核H-Core分區(qū)與多個(gè)通用核G-Core分區(qū),然后將VMM中的管理任務(wù)與特權(quán)Domain部署到H-Core分區(qū)中運(yùn)行,將VMM上運(yùn)行的通用客戶機(jī)Domain按照自身特性,劃分到不同的虛擬化任務(wù)子集中,并將這些虛擬化任務(wù)子集部署到對(duì)應(yīng)的G-Core分區(qū)中運(yùn)行;在不同的CPU分區(qū)中,可針對(duì)不同類型的虛擬化任務(wù)實(shí)現(xiàn)不同的調(diào)度策略與資源分配策略。本發(fā)明提高了多核或眾核平臺(tái)上虛擬化系統(tǒng)的安全性與可靠性,降低了CPU虛擬化的復(fù)雜度,同時(shí)也簡(jiǎn)化了全局的資源分配和調(diào)度的復(fù)雜性,提高了VMM對(duì)計(jì)算資源的分配與調(diào)度的能力,是一種安全、可靠、高效、高性能的CPU虛擬化方法。文檔編號(hào)G06F9/455GK101788920SQ20101010808公開日2010年7月28日申請(qǐng)日期2010年2月5日優(yōu)先權(quán)日2010年2月5日發(fā)明者呂紫旭,張炯,白躍斌,高小鵬,龍翔申請(qǐng)人:北京航空航天大學(xué)