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

通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng)的制作方法

文檔序號(hào):6492583閱讀:413來(lái)源:國(guó)知局
通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng)。一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法包括:特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)接收非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)通過(guò)事件通道發(fā)送的目標(biāo)事件通知;從I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求,該目標(biāo)I/O請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí);根據(jù)授權(quán)表,確定該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址;根據(jù)預(yù)設(shè)的索引表,確定該目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址;利用該目標(biāo)本地虛擬地址,讀取該目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)該硬件的本次訪問(wèn)。通過(guò)利用本方案,可以降低虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
【專利說(shuō)明】通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng)。
【背景技術(shù)】
[0002]所謂Xen虛擬化技術(shù)分為三層:最底層為擁有最高特權(quán)級(jí)別的虛擬機(jī)監(jiān)控器(Hypervisor),其直接運(yùn)行于硬件之上,負(fù)責(zé)其上的虛擬機(jī)的內(nèi)存分配和運(yùn)行調(diào)度;往上為擁有直接操作底層硬件權(quán)限且唯一存在的特權(quán)虛擬機(jī)(DomO),其為系統(tǒng)中運(yùn)行的第一個(gè)虛擬機(jī),負(fù)責(zé)其他非特權(quán)虛擬機(jī)(DomU)的管理;非特權(quán)虛擬機(jī)(DomU)沒(méi)有直接操作硬件的權(quán)限,每個(gè)系統(tǒng)可以同時(shí)運(yùn)行多個(gè)DomU,每個(gè)DomU對(duì)外表現(xiàn)為一個(gè)標(biāo)準(zhǔn)的物理機(jī)。
[0003]在虛擬化環(huán)境下,若干DomU運(yùn)行在同一物理機(jī)上,出于系統(tǒng)安全方面的考慮,DomU不能直接訪問(wèn)物理機(jī)上的各種物理設(shè)備(例如:網(wǎng)卡、磁盤設(shè)備等),而由DomO通過(guò)模擬指令完成訪問(wèn)。但是,對(duì)于磁盤設(shè)備、網(wǎng)絡(luò)設(shè)備等I/O訪問(wèn)非常頻繁的物理設(shè)備而言,僅靠指令模擬的方式來(lái)訪問(wèn)硬件,其性能無(wú)法滿足實(shí)際應(yīng)用的需要。為了解決DomU通過(guò)模擬指令訪問(wèn)硬件性能差的問(wèn)題,當(dāng)前主要有兩種方式用于提升虛擬機(jī)IO特性:(I)直接將物理機(jī)上真實(shí)的硬件透?jìng)鹘o指定的DomU,相當(dāng)于給予了指定的DomU直接操作硬件的特權(quán);
(2)采用半虛擬化驅(qū)動(dòng)的方式。
[0004]其中,半虛擬化驅(qū)動(dòng)由前端驅(qū)動(dòng)和后端驅(qū)動(dòng)組成。所謂前端驅(qū)動(dòng)為運(yùn)行在DomU內(nèi)核態(tài)的驅(qū)動(dòng)程序,其負(fù)責(zé)創(chuàng)建虛擬設(shè)備,并且轉(zhuǎn)發(fā)虛擬設(shè)備的I/o請(qǐng)求;所謂后端驅(qū)動(dòng)為運(yùn)行在DomO內(nèi)核態(tài)的驅(qū)動(dòng)程序,其負(fù)責(zé)接收前端驅(qū)動(dòng)轉(zhuǎn)發(fā)的I/O請(qǐng)求,并且通過(guò)真正的設(shè)備驅(qū)動(dòng)來(lái)訪問(wèn)物理設(shè)備,進(jìn)而完成I/o請(qǐng)求;并且Hypervisor通過(guò)提供事件通道、授權(quán)表和I/O共享環(huán)緩沖區(qū)等技術(shù)來(lái)幫助前端驅(qū)動(dòng)和后端驅(qū)動(dòng)進(jìn)行通信。其中,半虛擬化驅(qū)動(dòng)方式對(duì)應(yīng)的虛擬架構(gòu)如圖1所示。
[0005]現(xiàn)有技術(shù)中,半虛擬化驅(qū)動(dòng)的基本IO流程為:
[0006]前端驅(qū)動(dòng)接收到DomU內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù),從I/O共享環(huán)中取出一個(gè)I/O請(qǐng)求;
[0007]前端驅(qū)動(dòng)從授權(quán)表中申請(qǐng)授權(quán)項(xiàng),在該授權(quán)項(xiàng)里填充該網(wǎng)絡(luò)數(shù)據(jù)所在內(nèi)存資源的偽物理地址,再將該授權(quán)項(xiàng)對(duì)應(yīng)標(biāo)識(shí)填充到上一步取出的1/0請(qǐng)求中;
[0008]在虛擬機(jī)監(jiān)控器的作用下,前端驅(qū)動(dòng)通過(guò)事件通道向后端驅(qū)動(dòng)發(fā)送事件通知;
[0009]后端驅(qū)動(dòng)通過(guò)事件通道接收前端驅(qū)動(dòng)發(fā)送的事件通知;
[0010]后端驅(qū)動(dòng)從1/0共享環(huán)中取出前端驅(qū)動(dòng)放入的1/0請(qǐng)求;
[0011]后端驅(qū)動(dòng)查詢授權(quán)表,確定1/0請(qǐng)求中所填充的標(biāo)識(shí)對(duì)應(yīng)的該偽物理地址;
[0012]通過(guò)共享內(nèi)存技術(shù),后端驅(qū)動(dòng)查詢到DomU中該偽物理地址所對(duì)應(yīng)的物理地址,并將該物理地址通過(guò)本地偽物理地址映射到自身的本地虛擬地址,此后后端驅(qū)動(dòng)通過(guò)訪問(wèn)該本地虛擬地址便能直接訪問(wèn)前端驅(qū)動(dòng)接收到的網(wǎng)絡(luò)數(shù)據(jù);
[0013]后端驅(qū)動(dòng)將該網(wǎng)絡(luò)數(shù)據(jù)發(fā)送給真實(shí)的設(shè)備驅(qū)動(dòng)來(lái)訪問(wèn)物理設(shè)備,完成1/0請(qǐng)求;
[0014]后端驅(qū)動(dòng)接收到真實(shí)的設(shè)備驅(qū)動(dòng)發(fā)回的響應(yīng),將其放入1/0共享環(huán),并解除對(duì)前端驅(qū)動(dòng)共享內(nèi)存資源的映射關(guān)系,通過(guò)事件通道向前端驅(qū)動(dòng)發(fā)送事件通知;
[0015]前端驅(qū)動(dòng)通過(guò)事件通道接收到后端驅(qū)動(dòng)發(fā)送的事件通知;
[0016]前端驅(qū)動(dòng)從I/O共享環(huán)中取出響應(yīng)進(jìn)行處理,并回收共享內(nèi)存資源。
[0017]上述IO流程中,關(guān)鍵步驟在于=DomO通過(guò)共享內(nèi)存技術(shù),將DomU指定的內(nèi)存資源映射到自身的內(nèi)存空間中,從而直接訪問(wèn)到DomU的內(nèi)存資源,實(shí)現(xiàn)內(nèi)存共享,最終完成網(wǎng)絡(luò)數(shù)據(jù)從DomU轉(zhuǎn)發(fā)到DomO的過(guò)程。
[0018]其中,每次由DomU向外界傳輸數(shù)據(jù)時(shí),都需要將DomU中攜帶數(shù)據(jù)的內(nèi)存資源動(dòng)態(tài)映射給DomO,由DomO使用完數(shù)據(jù)之后再解除映射關(guān)系。由于每次I/O請(qǐng)求都涉及到共享內(nèi)存的動(dòng)態(tài)映射和解映射,當(dāng)網(wǎng)絡(luò)負(fù)載很高時(shí),該方式需要頻繁地更新偽物理地址到物理地址的映射關(guān)系,且每次更新都涉及到系統(tǒng)從DomO切換到Hypervisor完成映射和解映射,這種頻繁的切換導(dǎo)致虛擬機(jī)網(wǎng)絡(luò)時(shí)延增長(zhǎng),同時(shí)CPU占用率較高。

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

[0019]本發(fā)明實(shí)施例提供了 一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng),以降低虛擬機(jī)網(wǎng)絡(luò)時(shí)延及CPU占用率,技術(shù)方案如下:
[0020]第一方面,從特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)的角度,本發(fā)明實(shí)施例提供了一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,適用于物理機(jī)上,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述方法包括:
[0021]所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求;
[0022]從所述I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求,所述目標(biāo)I/O請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí);
[0023]根據(jù)所述授權(quán)表,確定所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化預(yù)先構(gòu)建的共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化;
[0024]根據(jù)預(yù)設(shè)的索引表,確定所述目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,其中,所述索引表在所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明所述共享內(nèi)存池中的共享內(nèi)存資源與所述特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系;
[0025]利用所述目標(biāo)本地虛擬地址,讀取所述目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將所述網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)所述硬件的本次訪問(wèn)。
[0026]更進(jìn)一步的,第一方面中所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法還包括:
[0027]在所述目標(biāo)I/O請(qǐng)求完成后,通過(guò)所述事件通道向所述前端驅(qū)動(dòng)反饋I/O請(qǐng)求完成通知,以指示所述前端驅(qū)動(dòng)釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0028]其中,第一方面中所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法中,所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程,包括:
[0029]所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的初始化通知;
[0030]從所述I/O共享環(huán)中獲取I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶授權(quán)項(xiàng)的標(biāo)識(shí);
[0031]根據(jù)所述授權(quán)表,確定所述I/O請(qǐng)求中所述授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的偽物理地址;
[0032]將所述偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到所述特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,其中,所述偽物理地址與本地虛擬地址具有唯一對(duì)應(yīng)性;
[0033]構(gòu)建關(guān)于所述偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。
[0034]其中,所述前端驅(qū)動(dòng)為半虛擬化網(wǎng)卡前端驅(qū)動(dòng),所述后端驅(qū)動(dòng)為半虛擬化網(wǎng)卡后端驅(qū)動(dòng);
[0035]或者,
[0036]所述前端驅(qū)動(dòng)為半虛擬化磁盤前端驅(qū)動(dòng),所述后端驅(qū)動(dòng)為半虛擬化磁盤后端驅(qū)動(dòng);
[0037]或者,
[0038]所述前端驅(qū)動(dòng)為半虛擬化USB前端驅(qū)動(dòng),所述后端驅(qū)動(dòng)為半虛擬化USB后端驅(qū)動(dòng)。
[0039]第二方面,本發(fā)明實(shí)施例還提供一種后端驅(qū)動(dòng),設(shè)置于物理機(jī)中的特權(quán)虛擬機(jī)中,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述后端驅(qū)動(dòng)包括:
[0040]目標(biāo)事件通知接收單元,所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的目標(biāo)事件通知,并觸發(fā)目標(biāo)I/o請(qǐng)求獲取單元,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求;
[0041]所述目標(biāo)I/O請(qǐng)求獲取單元,用于從所述I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求,并觸發(fā)目標(biāo)偽物理地址確定單元,所述目標(biāo)I/o請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí);
[0042]所述目標(biāo)偽物理地址確定單元,用于根據(jù)所述授權(quán)表,確定所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址,并觸發(fā)目標(biāo)本地虛擬地址確定單元,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化預(yù)先構(gòu)建的共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化;
[0043]所述目標(biāo)本地虛擬地址確定單元,用于根據(jù)預(yù)設(shè)的索引表,確定所述目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,并觸發(fā)網(wǎng)絡(luò)數(shù)據(jù)處理單元,其中,所述索引表在第一預(yù)映射單元實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明所述共享內(nèi)存池中的共享內(nèi)存資源與所述特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系;
[0044]所述網(wǎng)絡(luò)數(shù)據(jù)處理單元,用于利用所述目標(biāo)本地虛擬地址,讀取所述目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將所述網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)所述硬件的本次訪問(wèn);[0045]所述第一預(yù)映射單元,用于實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射。
[0046]更進(jìn)一步的,第二方面中所提供的后端驅(qū)動(dòng)還包括:
[0047]I/O請(qǐng)求完成通知發(fā)送單元,用于在所述目標(biāo)I/O請(qǐng)求完成后,通過(guò)所述事件通道向所述前端驅(qū)動(dòng)反饋I/o請(qǐng)求完成通知,以指示所述前端驅(qū)動(dòng)釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0048]其中,第二方面中所提供的后端驅(qū)動(dòng)中,所述第一預(yù)映射單元,包括:
[0049]初始化通知接收子單元,用于接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的初始化通知,并觸發(fā)I/o請(qǐng)求獲取子單元;
[0050]所述I/O請(qǐng)求獲取子單元,用于從所述I/O共享環(huán)中獲取I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶授權(quán)項(xiàng)的標(biāo)識(shí),并觸發(fā)偽物理地址確定子單元;
[0051]所述偽物理地址確定子單元,用于根據(jù)所述授權(quán)表,確定所述I/O請(qǐng)求中所述授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的偽物理地址,并觸發(fā)資源映射子單元;
[0052]所述資源映射子單元,用于將所述偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到所述特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,并觸發(fā)索引表構(gòu)建子單元,其中,所述偽物理地址與本地虛擬地址具有唯一對(duì)應(yīng)性;
[0053]所述索引表構(gòu)建子單元,用于構(gòu)建關(guān)于所述偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。
[0054]第三方面,從非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)的角度,本發(fā)明實(shí)施例還提供一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,適用于物理機(jī)上,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述方法包括:
[0055]所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)接收相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù),其中,所述網(wǎng)絡(luò)數(shù)據(jù)為用于訪問(wèn)硬件的數(shù)據(jù);
[0056]將預(yù)設(shè)的共享內(nèi)存池中的處于非占用狀態(tài)的共享內(nèi)存資源作為所述網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化;
[0057]確定所述授權(quán)表中所述目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng),其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);
[0058]將攜帶所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入所述I/O共享環(huán)中,其中,所述目標(biāo)I/o請(qǐng)求在所述前端驅(qū)動(dòng)協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程中構(gòu)建;
[0059]通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求。
[0060]更進(jìn)一步的,第三方面中所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,還包括:[0061]當(dāng)接收到所述后端驅(qū)動(dòng)反饋的所述目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0062]其中,第三方面中所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法中,所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池的過(guò)程包括:
[0063]所述非特權(quán)虛擬機(jī)將相應(yīng)系統(tǒng)內(nèi)存中的預(yù)設(shè)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源;將所述共享內(nèi)存資源的偽物理地址填充至所述授權(quán)表中的授權(quán)項(xiàng),所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);將所述共享內(nèi)存資源和相應(yīng)授權(quán)項(xiàng)的標(biāo)識(shí)放置到所述共享內(nèi)存池中;
[0064]其中,所述前端驅(qū)動(dòng)協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程,包括:
[0065]所述前端驅(qū)動(dòng)從所述共享內(nèi)存池中獲取所述授權(quán)項(xiàng)的標(biāo)識(shí);
[0066]構(gòu)建攜帶所述授權(quán)項(xiàng)的標(biāo)識(shí)的I/O請(qǐng)求,并將所述I/O請(qǐng)求放入I/O共享環(huán)中,其中,所述授權(quán)項(xiàng)的標(biāo)識(shí)與所述I/O請(qǐng)求具有唯一對(duì)應(yīng)性;
[0067]通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,所述初始化通知用于指示所述后端驅(qū)動(dòng)開(kāi)啟所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)的資源預(yù)映射過(guò)程。
[0068]第四方面,本發(fā)明實(shí)施例還提供一種前端驅(qū)動(dòng),設(shè)置于物理機(jī)中的非特權(quán)虛擬機(jī)中,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述前驅(qū)動(dòng)包括:
[0069]網(wǎng)絡(luò)數(shù)據(jù)接收單元,用于接收相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù),并觸發(fā)目標(biāo)內(nèi)存資源確定單元,其中,所述網(wǎng)絡(luò)數(shù)據(jù)為用于訪問(wèn)硬件的數(shù)據(jù);
[0070]所述目標(biāo)內(nèi)存資源確定單元,用于將預(yù)設(shè)的共享內(nèi)存池中的處于非占用狀態(tài)的共享內(nèi)存資源作為所述網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,并觸發(fā)目標(biāo)授權(quán)項(xiàng)確定單元,所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化;
[0071]所述目標(biāo)授權(quán)項(xiàng)確定單元,用于確定所述授權(quán)表中所述目標(biāo)內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng),并觸發(fā)目標(biāo)I/O請(qǐng)求處理單元,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);
[0072]所述目標(biāo)I/O請(qǐng)求處理單元,用于將攜帶所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入所述I/o共享環(huán)中,并觸發(fā)目標(biāo)事件通知發(fā)送單元,其中,所述目標(biāo)I/O請(qǐng)求在第二預(yù)映射單元協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程中構(gòu)建;
[0073]所述目標(biāo)事件通知發(fā)送單元,用于通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求;[0074]所述第二預(yù)映射單元,用于協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射。
[0075]更進(jìn)一步的,第四方面中所提供的前端驅(qū)動(dòng)還包括:
[0076]目標(biāo)內(nèi)存資源處理單元,用于當(dāng)接收到所述后端驅(qū)動(dòng)反饋的所述目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0077]其中,第四方面中所提供的前端驅(qū)動(dòng)中,所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池的過(guò)程包括:
[0078]所述非特權(quán)虛擬機(jī)將相應(yīng)系統(tǒng)內(nèi)存中的預(yù)設(shè)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源;將所述共享內(nèi)存資源的偽物理地址填充至所述授權(quán)表中的授權(quán)項(xiàng),所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);將所述共享內(nèi)存資源和相應(yīng)授權(quán)項(xiàng)的標(biāo)識(shí)放置到所述共享內(nèi)存池中;
[0079]相應(yīng)的,所述第二預(yù)映射單元,包括:
[0080]授權(quán)項(xiàng)標(biāo)識(shí)確定子單元,用于從所述共享內(nèi)存池中獲取所述授權(quán)項(xiàng)的標(biāo)識(shí),并觸發(fā)I/O請(qǐng)求處理子單元;
[0081]所述I/O請(qǐng)求處理子單元,用于構(gòu)建攜帶所述授權(quán)項(xiàng)的標(biāo)識(shí)的I/O請(qǐng)求,并將所述I/o請(qǐng)求放入I/O共享環(huán)中,并觸發(fā)初始化通知發(fā)送子單元,其中,所述授權(quán)項(xiàng)的標(biāo)識(shí)與所述I/o請(qǐng)求具有唯一對(duì)應(yīng)性;
[0082]所述初始化通知發(fā)送子單元,用于通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,所述初始化通知用于指示所述后端驅(qū)動(dòng)開(kāi)啟所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)的資源預(yù)映射過(guò)程。
[0083]本發(fā)明實(shí)施例所提供的技術(shù)方案,由于非特權(quán)虛擬機(jī)預(yù)先構(gòu)建一共享內(nèi)存池,而特權(quán)虛擬機(jī)預(yù)先將該共享內(nèi)存池中的共享內(nèi)存資源映射到自身的內(nèi)存空間中,并建立指明具體映射關(guān)系的索引表,以此實(shí)現(xiàn)了非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源預(yù)映射,因此,在非特權(quán)虛擬機(jī)訪問(wèn)硬件而向外界傳輸數(shù)據(jù)時(shí),在前端驅(qū)動(dòng)和后端驅(qū)動(dòng)的網(wǎng)絡(luò)通信過(guò)程中,由于無(wú)需進(jìn)行非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源映射和解映射操作,可以完全避免特權(quán)虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,從而降低了虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
【專利附圖】

【附圖說(shuō)明】
[0084]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0085]圖1為現(xiàn)有的半虛擬化驅(qū)動(dòng)方式所對(duì)應(yīng)虛擬架構(gòu)的示意圖;
[0086]圖2為非虛擬化環(huán)境下的虛擬地址與物理地址的映射關(guān)系的結(jié)構(gòu)示意圖;
[0087]圖3為虛擬化環(huán)境下兩級(jí)映射的示意圖;
[0088]圖4為多虛擬機(jī)環(huán)境下分配物理內(nèi)存的示意圖;
[0089]圖5為虛擬機(jī)之間的內(nèi)存共享的示意圖;
[0090]圖6為本發(fā)明實(shí)施例所提供的一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法的第一種流程圖;
[0091]圖7為本發(fā)明實(shí)施例所提供的一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法的第二種流程圖;
[0092]圖8為本發(fā)明實(shí)施例所提供的一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件方法對(duì)應(yīng)虛擬架構(gòu)的示意圖;
[0093]圖9為本發(fā)明實(shí)施例所提供的一種后端驅(qū)動(dòng)的結(jié)構(gòu)示意圖;
[0094]圖10為本發(fā)明實(shí)施例所提供的一種前端驅(qū)動(dòng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0095]為了清楚起見(jiàn),首先對(duì)現(xiàn)有技術(shù)中的非虛擬化和虛擬化環(huán)境的內(nèi)存訪問(wèn)方式、多虛擬機(jī)對(duì)物理內(nèi)存的使用方式以及虛擬機(jī)之間的內(nèi)存共享方式進(jìn)行介紹,以明確虛擬化環(huán)境下的物理地址、偽物理地址及虛擬地址之間的關(guān)系,以及虛擬機(jī)之間的內(nèi)存共享方式。第一,非虛擬化和虛擬化環(huán)境的內(nèi)存訪問(wèn)方式
[0096]在非虛擬化環(huán)景下:
[0097]如圖2所示,應(yīng)用程序(application)使用VA (Virtual Address,虛擬地址)訪問(wèn)內(nèi)存,該訪問(wèn)內(nèi)存操作被CPU的MMU (Memory Management Unit,內(nèi)存管理單元)單元轉(zhuǎn)換為物理地址,然后物理地址被送到CPU的地址總線上指示將要訪問(wèn)內(nèi)存單元。其中,MMU僅負(fù)責(zé)虛擬地址到物理地址的轉(zhuǎn)換,其轉(zhuǎn)換關(guān)系是由操作系統(tǒng)內(nèi)核(kernel)定義的;kernel是整個(gè)物理機(jī)系統(tǒng)中特權(quán)級(jí)最高的程序,應(yīng)用程序無(wú)特權(quán),并且,非特權(quán)程序?qū)?nèi)存的訪問(wèn)受到特權(quán)程序的管制,其目的是為了保護(hù)整個(gè)系統(tǒng)穩(wěn)定性,避免非特權(quán)程序破壞系統(tǒng)。
[0098]在虛擬化環(huán)景下:
[0099]如圖3所示,kernel不再是特權(quán)級(jí)最高的程序,取而代之的是虛擬機(jī)監(jiān)控器(hypervisor),相應(yīng)的特權(quán)級(jí)由高到低依次為:hypervisor、kernel、application。
[0100]在虛擬化環(huán)境下,應(yīng)用程序(其感覺(jué)不到虛擬化存在的,因此,和非虛擬化環(huán)境一樣)使用VA訪問(wèn)內(nèi)存,此時(shí)該訪存操作被CPU的MMU單元映射到PA (Pseudo PhysicalAddress,偽物理地址),然后 PA 被 EPT/NPT(Extened Page Table mechanism/Nested PageTables,擴(kuò)展頁(yè)表/嵌套頁(yè)表)單元映射到真正物理內(nèi)存的MA (Machine Address,機(jī)器地址),實(shí)現(xiàn)了采用兩級(jí)映射的方式完成一次內(nèi)存訪問(wèn)。
[0101]增加第二級(jí)映射的原因是:①在虛擬化環(huán)境下虛擬機(jī)操作系統(tǒng)內(nèi)核不再有最高的特權(quán)等級(jí),其如果能直接訪問(wèn)到物理內(nèi)存,則一個(gè)操作系統(tǒng)的錯(cuò)誤內(nèi)存操作將可能影響到同一臺(tái)物理機(jī)上的其他虛擬機(jī)的內(nèi)存,虛擬機(jī)操作系統(tǒng)間將失去獨(dú)立性和隔離性,增加系統(tǒng)的不穩(wěn)定性,所以虛擬機(jī)操作系統(tǒng)內(nèi)核需要受限地訪問(wèn)PA,而hypervisor為虛擬機(jī)建立起PA到MA的映射關(guān)系傳統(tǒng)的操作系統(tǒng)需要的是連續(xù)的物理內(nèi)存,在虛擬化環(huán)境下虛擬機(jī)可能被多次啟動(dòng)、關(guān)閉,一段時(shí)間以后不能保證每個(gè)虛擬機(jī)能分配到連續(xù)的物理內(nèi)存,所以必須提供一種抽象機(jī)制將不連續(xù)的物理內(nèi)存映射成虛擬機(jī)操作系統(tǒng)可見(jiàn)的連續(xù)內(nèi)存塊(如圖3:EPT/NPT將離散的MA映射成了 Kernel能見(jiàn)到的連續(xù)的PA),使得傳統(tǒng)的操作系統(tǒng)能正常運(yùn)行。因此,虛擬化環(huán)境下增加了一級(jí)內(nèi)存映射,采用了兩級(jí)映射關(guān)系訪問(wèn)內(nèi)存。
[0102]第二,多虛擬機(jī)對(duì)物理內(nèi)存的使用
[0103]如圖4所示,創(chuàng)建虛擬機(jī)時(shí),hypervisor根據(jù)虛擬機(jī)的配置情況,為該虛擬機(jī)分配物理地址空間以及對(duì)應(yīng)大小的物理內(nèi)存,并建立起PA到MA的映射關(guān)系。PA之于虛擬機(jī)系統(tǒng)相當(dāng)于MA之于物理機(jī)系統(tǒng),默認(rèn)情況下虛擬機(jī)總是認(rèn)為自己獨(dú)占地訪問(wèn)分配給它的PA。所以,多個(gè)虛擬機(jī)存在時(shí),分配它們使用的物理內(nèi)存是沒(méi)有交集的。
[0104]第三,虛擬機(jī)之間的內(nèi)存共享
[0105]如圖5所示,以虛擬機(jī)Domain X共享PAx給虛擬機(jī)Domain Y為例,虛擬機(jī)之間共享內(nèi)存的過(guò)程如下:
[0106]共享內(nèi)存操作的雙方分別是Domain X和Domain Y兩端的驅(qū)動(dòng)程序(運(yùn)行在kernel狀態(tài),可以看作是kernel的擴(kuò)展);
[0107]Domain X首先申明PAx可以被Domain Y訪問(wèn),其中,所申明的內(nèi)容包括訪問(wèn)權(quán)限;
[0108]Domain Y的驅(qū)動(dòng)在hypervisor的協(xié)助下將原來(lái)的PAy到MAy的映射關(guān)系解除,其中,MAy可以被hypervisor回收;
[0109]DomainY的驅(qū)動(dòng)在hypervisor的協(xié)助下建立PAy到MAx的映射關(guān)系,其中,該映射關(guān)系包括映射權(quán)限,如果與Domain X申明的訪問(wèn)權(quán)限沖突,本步驟失敗;
[0110]通過(guò)上述方式,Domain X的PAx和Domain Y的PAy指向了同一塊物理內(nèi)存MAx,使得Domain Y的應(yīng)用程序通過(guò)VAy或者Domain Y的kernel通過(guò)PAy訪問(wèn)內(nèi)存時(shí),能夠和Domain X的應(yīng)用程序通過(guò)VAx或者Domain X的kernel通過(guò)PAx訪問(wèn)同一塊物理內(nèi)存MAx,達(dá)到了共享內(nèi)存的目的。
[0111]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0112]為了降低虛擬機(jī)網(wǎng)絡(luò)時(shí)延及CPU占用率,本發(fā)明實(shí)施例提供了一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法、后端驅(qū)動(dòng)及前端驅(qū)動(dòng)。
[0113]基于上述現(xiàn)有技術(shù)中的非虛擬化和虛擬化環(huán)境的內(nèi)存訪問(wèn)方式、多虛擬機(jī)對(duì)物理內(nèi)存的使用方式以及虛擬機(jī)之間的內(nèi)存共享方式,下面首先對(duì)本發(fā)明實(shí)施例所提供的一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法進(jìn)行介紹。
[0114]需要說(shuō)明的是,本發(fā)明實(shí)施例所提供方法適用于物理機(jī)上,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,該虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助該前端驅(qū)動(dòng)和該后端驅(qū)動(dòng)進(jìn)行通信。本領(lǐng)域技術(shù)人員可以理解的是,不同的外部硬件對(duì)應(yīng)不同的前端驅(qū)動(dòng)和后端驅(qū)動(dòng),例如:該前端驅(qū)動(dòng)可以為半虛擬化網(wǎng)卡前端驅(qū)動(dòng),而該后端驅(qū)動(dòng)可以為半虛擬化網(wǎng)卡后端驅(qū)動(dòng);或者,該前端驅(qū)動(dòng)可以為半虛擬化磁盤前端驅(qū)動(dòng),而該后端驅(qū)動(dòng)可以為半虛擬化磁盤后端驅(qū)動(dòng);或者,該前端驅(qū)動(dòng)可以為半虛擬化USB前端驅(qū)動(dòng),而該后端驅(qū)動(dòng)可以為半虛擬化USB后端驅(qū)動(dòng),當(dāng)然并不局限于此。圖8為本發(fā)明的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法所對(duì)應(yīng)虛擬架構(gòu)的結(jié)構(gòu)示意圖。
[0115]為了實(shí)現(xiàn)本發(fā)明方案,該非特權(quán)虛擬機(jī)需要在初始化相應(yīng)前端驅(qū)動(dòng)時(shí)構(gòu)建共享內(nèi)存池,并對(duì)該共享內(nèi)存池進(jìn)行初始化。其中,該非特權(quán)虛擬機(jī)初始化該共享內(nèi)存池的過(guò)程可以包括:
[0116]該非特權(quán)虛擬機(jī)將相應(yīng)系統(tǒng)內(nèi)存中的預(yù)設(shè)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源;
[0117]將該共享內(nèi)存資源的偽物理地址填充至該授權(quán)表中的授權(quán)項(xiàng),該偽物理地址與該授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);
[0118]將該共享內(nèi)存資源和相應(yīng)授權(quán)項(xiàng)的標(biāo)識(shí)放置到該共享內(nèi)存池中。
[0119]需要說(shuō)明的是,該非特權(quán)虛擬機(jī)初始化該共享內(nèi)存池后,該非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)需要協(xié)助所述特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)預(yù)所述特權(quán)虛擬機(jī)之間的資源預(yù)映射,進(jìn)而實(shí)現(xiàn)后續(xù)的非特權(quán)虛擬機(jī)通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法。
[0120]其中,該前端驅(qū)動(dòng)協(xié)助該后端驅(qū)動(dòng)實(shí)現(xiàn)該非特權(quán)虛擬機(jī)與該特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程,可以包括:
[0121]該前端驅(qū)動(dòng)從該共享內(nèi)存池中獲取該授權(quán)項(xiàng)的標(biāo)識(shí);
[0122]構(gòu)建攜帶該授權(quán)項(xiàng)的標(biāo)識(shí)的I/O請(qǐng)求,并將該I/O請(qǐng)求放入I/O共享環(huán)中,其中,該授權(quán)項(xiàng)的標(biāo)識(shí)與I/o請(qǐng)求具有唯一對(duì)應(yīng)性;
[0123]通過(guò)該事件通道向該特權(quán)虛擬機(jī)的該后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,該初始化通知用于指示該后端驅(qū)動(dòng)初始化通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法。
[0124]相應(yīng)的,該后端驅(qū)動(dòng)實(shí)現(xiàn)該非特權(quán)虛擬機(jī)與該特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程,可以包括:
[0125]該后端驅(qū)動(dòng)接收該非特權(quán)虛擬機(jī)的該前端驅(qū)動(dòng)通過(guò)該事件通道發(fā)送的初始化通知;
[0126]從該I/O共享環(huán)中獲取I/O請(qǐng)求,該I/O請(qǐng)求中攜帶授權(quán)項(xiàng)的標(biāo)識(shí);
[0127]根據(jù)該授權(quán)表,確定所述I/O請(qǐng)求中所述授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的偽物理地址;
[0128]將該偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到該特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,其中,該偽物理地址與本地虛擬地址具有唯一對(duì)應(yīng)性;
[0129]構(gòu)建關(guān)于該偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。綜上可見(jiàn),本發(fā)明實(shí)施例給出了:該非特權(quán)虛擬機(jī)預(yù)分配和該特權(quán)虛擬機(jī)預(yù)映射機(jī)制,即非特權(quán)虛擬機(jī)預(yù)先分配了 一共享內(nèi)存池,同時(shí)特權(quán)虛擬機(jī)將該共享內(nèi)存池中的共享內(nèi)存資源全部映射到自身的內(nèi)存空間中,并且建立了索引表以指明具體映射關(guān)系。
[0130]其中,將偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存的方式可以利用上述的現(xiàn)有技術(shù)中的虛擬機(jī)間的共享內(nèi)存映射方式,在此不再贅述。
[0131]為了清楚起見(jiàn),下面首先從非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)角度對(duì)本發(fā)明實(shí)施例所提供的方法進(jìn)行介紹。
[0132]如圖6所示,一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,可以包括:
[0133]S101,非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)接收相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù);
[0134]其中,該網(wǎng)絡(luò)數(shù)據(jù)為用于訪問(wèn)硬件的數(shù)據(jù)。
[0135]S102,將預(yù)設(shè)的共享內(nèi)存池中的處于非占用狀態(tài)的共享內(nèi)存資源作為該網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源;
[0136]其中,該共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化該前端驅(qū)動(dòng)時(shí)由該非特權(quán)虛擬機(jī)構(gòu)建并初始化。
[0137]當(dāng)非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)接收到相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù)時(shí),表明該非特權(quán)虛擬機(jī)需要向外界傳輸數(shù)據(jù)(即訪問(wèn)外部硬件),此時(shí),前端驅(qū)動(dòng)可以從預(yù)設(shè)的共享內(nèi)存池中選出處于非占用狀態(tài)的共享內(nèi)存資源,并將所選出的共享內(nèi)存資源作為該網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,使得通過(guò)訪問(wèn)該目標(biāo)共享內(nèi)存資源對(duì)應(yīng)的目標(biāo)偽物理地址即可訪問(wèn)到該網(wǎng)絡(luò)數(shù)據(jù)。
[0138]其中,作為該目標(biāo)共享內(nèi)存資源的共享內(nèi)存資源屬于被占用狀態(tài),其此時(shí)將不屬于該共享內(nèi)存池的處于非占用狀態(tài)的共享內(nèi)存資源。
[0139]需要說(shuō)明的是,該共享內(nèi)存池、I/O共享環(huán)和授權(quán)表三者之間是相互獨(dú)立的,如圖8所示。
[0140]S103,確定授權(quán)表中該目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng);
[0141]其中,該授權(quán)表的授權(quán)項(xiàng)在該非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池時(shí)被填充有該共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,該偽物理地址與該授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí)。
[0142]S104,將攜帶該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入該I/O共享環(huán)中;
[0143]其中,該目標(biāo)I/O請(qǐng)求在該前端驅(qū)動(dòng)協(xié)助該后端驅(qū)動(dòng)實(shí)現(xiàn)該非特權(quán)虛擬機(jī)與該特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程中構(gòu)建。
[0144]由于每一共享內(nèi)存資源的偽物理地址預(yù)先填充至一授權(quán)項(xiàng),因此,在確定出該網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源后,可以從授權(quán)表中確定出該目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng)。而由于每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),且每一授權(quán)項(xiàng)的標(biāo)識(shí)預(yù)先唯一對(duì)應(yīng)一 I/O請(qǐng)求,因此,在確定出該目標(biāo)授權(quán)項(xiàng)后,可以確定出該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)所對(duì)應(yīng)的目標(biāo)I/o請(qǐng)求,進(jìn)而將該目標(biāo)I/O請(qǐng)求放入I/O共享環(huán)中,以使得特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)在獲得到相應(yīng)通知后,能夠從I/o共享環(huán)中獲知該目標(biāo)I/O請(qǐng)求,進(jìn)而完成該目標(biāo)I/O請(qǐng)求對(duì)應(yīng)的IO流程,也就是硬件的本次訪問(wèn)。
[0145]S105,通過(guò)該事件通道向該特權(quán)虛擬機(jī)的該后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知。
[0146]其中,該目標(biāo)事件通知用于指示該后端驅(qū)動(dòng)從該I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求。
[0147]在將該目標(biāo)I/O請(qǐng)求放入到I/O共享環(huán)后,該前端驅(qū)動(dòng)可以通過(guò)事件通道向該特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,以通知該特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)從該I/o共享環(huán)中獲取該目標(biāo)I/o請(qǐng)求,進(jìn)而執(zhí)行本次IO流程。相應(yīng)的,該特權(quán)虛擬機(jī)的該后端驅(qū)動(dòng)在接收到該目標(biāo)事件通知后,根據(jù)預(yù)設(shè)的索引表,確定該目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,利用該目標(biāo)本地虛擬地址,讀取該目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)該硬件的本次訪問(wèn),其中,該索引表在該后端驅(qū)動(dòng)實(shí)現(xiàn)該非特權(quán)虛擬機(jī)與該特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明該非特權(quán)虛擬機(jī)對(duì)應(yīng)共享內(nèi)存池中的共享內(nèi)存資源與該特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系。
[0148]需要說(shuō)明的是,更進(jìn)一步的,當(dāng)接收到該后端驅(qū)動(dòng)反饋的該目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放該目標(biāo)共享內(nèi)存資源,將釋放后的該目標(biāo)共享內(nèi)存資源確定為該共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。其中,當(dāng)該后端驅(qū)動(dòng)獲取到該目標(biāo)I/o請(qǐng)求后,可以根據(jù)授權(quán)表及預(yù)設(shè)的索引表來(lái)完成該目標(biāo)I/o請(qǐng)求對(duì)應(yīng)的IO流程,并在完成該目標(biāo)I/O請(qǐng)求對(duì)應(yīng)IO流程后,直接向該前端驅(qū)動(dòng)反饋該目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知;而該前端驅(qū)動(dòng)在接收到該后端驅(qū)動(dòng)反饋的該目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放該目標(biāo)共享內(nèi)存資源,將釋放后的該目標(biāo)共享內(nèi)存資源重新確定為該共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源,以便下次執(zhí)行IO流程時(shí)繼續(xù)使用該目標(biāo)內(nèi)存資源。
[0149]本實(shí)施例所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法中,非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)將共享內(nèi)存池中的共享內(nèi)存資源作為所接收到網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,并將攜帶該目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入I/O共享環(huán)中,進(jìn)而向后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,以指示后端驅(qū)動(dòng)獲取目標(biāo)I/o請(qǐng)求,并通過(guò)預(yù)設(shè)的關(guān)于該非特權(quán)虛擬機(jī)對(duì)應(yīng)共享內(nèi)存池中的共享內(nèi)存資源與該特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系的索引表,實(shí)現(xiàn)對(duì)該硬件的本次訪問(wèn)??梢?jiàn),在前端驅(qū)動(dòng)和后端驅(qū)動(dòng)的網(wǎng)絡(luò)通信過(guò)程中,由于無(wú)需進(jìn)行非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源映射和解映射操作,可以完全避免特權(quán)虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,從而降低了虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
[0150]下面從特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)的角度,對(duì)本發(fā)明實(shí)施例所提供的方法進(jìn)行介紹。
[0151]如圖7所示,一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,可以包括:
[0152]S201,該特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)接收該非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)通過(guò)該事件通道發(fā)送的目標(biāo)事件通知;
[0153]其中,該目標(biāo)事件通知用于指示該后端驅(qū)動(dòng)從該I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求。
[0154]S202,從I/O共享環(huán)中獲取該目標(biāo)I/O請(qǐng)求;
[0155]其中,該目標(biāo)I/O請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)。
[0156]在特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)接收到該非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)發(fā)送的目標(biāo)事件通知后,得知該非特權(quán)虛擬機(jī)需要向外界傳輸數(shù)據(jù),此時(shí),需要從I/o共享環(huán)中獲取相應(yīng)的目標(biāo)I/O請(qǐng)求,進(jìn)而根據(jù)該目標(biāo)I/O請(qǐng)求完成本次IO流程。
[0157]S203,根據(jù)該授權(quán)表,確定該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址;
[0158]其中,該授權(quán)表的授權(quán)項(xiàng)在該非特權(quán)虛擬機(jī)初始化預(yù)先構(gòu)建的共享內(nèi)存池時(shí)被填充有該共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,該偽物理地址與該授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),該共享內(nèi)存池為該非特權(quán)虛擬機(jī)初始化該前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化。
[0159]S204,根據(jù)預(yù)設(shè)的索引表,確定該目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址;
[0160]其中,該索引表在該后端驅(qū)動(dòng)實(shí)現(xiàn)該非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明該共享內(nèi)存池中的共享內(nèi)存資源與該特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系。
[0161]根據(jù)該目標(biāo)I/O請(qǐng)求確定出目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)后,可以根據(jù)授權(quán)表,確定該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址,進(jìn)而根據(jù)預(yù)設(shè)的關(guān)于偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表,確定出該目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,而無(wú)需通過(guò)共享內(nèi)存技術(shù),查詢到非特權(quán)虛擬機(jī)中該偽物理地址所對(duì)應(yīng)的物理地址,并將該物理地址通過(guò)本地偽物理地址映射到自身的本地虛擬地址的過(guò)程,同時(shí),由于不存在非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的本次資源映射操作,因此也不存在解映射操作。
[0162]S205,利用該目標(biāo)本地虛擬地址,讀取該目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件。
[0163]由于該目標(biāo)本地虛擬地址與該目標(biāo)偽物理地址指向同一物理內(nèi)存,因此,后端驅(qū)動(dòng)直接訪問(wèn)該本地虛擬地址即可讀取到前端驅(qū)動(dòng)所接收到的網(wǎng)絡(luò)數(shù)據(jù),并將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給真實(shí)的硬件,由該硬件完成該目標(biāo)I/o請(qǐng)求,以此實(shí)現(xiàn)對(duì)該硬件的本次訪問(wèn)。
[0164]需要說(shuō)明的是,更進(jìn)一步的,在目標(biāo)I/O請(qǐng)求完成后,通過(guò)事件通道向相應(yīng)的前端驅(qū)動(dòng)反饋目標(biāo)I/o請(qǐng)求完成通知。其中,當(dāng)該目標(biāo)I/O請(qǐng)求完成后,特權(quán)虛擬機(jī)的后端驅(qū)動(dòng)并不解除對(duì)非特權(quán)虛擬機(jī)的共享內(nèi)存資源的映射關(guān)系,而是直接向前端驅(qū)動(dòng)反饋目標(biāo)I/O請(qǐng)求完成通知,以指示所述前端驅(qū)動(dòng)釋放該目標(biāo)內(nèi)存資源,將釋放后的該目標(biāo)共享內(nèi)存資源確定為該共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源,以此完成對(duì)所述硬件的本次訪問(wèn)。
[0165]本發(fā)明實(shí)施例所提供的技術(shù)方案,由于非特權(quán)虛擬機(jī)預(yù)先構(gòu)建一共享內(nèi)存池,而特權(quán)虛擬機(jī)預(yù)先將該共享內(nèi)存池中的共享內(nèi)存資源映射到自身的內(nèi)存空間中,并建立指明具體映射關(guān)系的索引表,以此實(shí)現(xiàn)了非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源預(yù)映射,因此,在非特權(quán)虛擬機(jī)訪問(wèn)硬件而向外界傳輸數(shù)據(jù)時(shí),在前端驅(qū)動(dòng)和后端驅(qū)動(dòng)的網(wǎng)絡(luò)通信過(guò)程中,由于無(wú)需進(jìn)行非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源映射和解映射操作,可以完全避免特權(quán)虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,從而降低了虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
[0166]下面以半虛擬化網(wǎng)卡驅(qū)動(dòng)作為具體的應(yīng)用實(shí)例,對(duì)本發(fā)明實(shí)施例所提供的一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法進(jìn)行介紹。
[0167]需要說(shuō)明的是,本發(fā)明實(shí)施例所提供方法適用于物理機(jī)上,所物理機(jī)包括:虛擬機(jī)監(jiān)控器(Hypervisor)、設(shè)置有半虛擬化網(wǎng)卡后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)(DomO)以及至少一設(shè)置有半虛擬化網(wǎng)卡前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī)(DomU),其中,該Hypervisor通過(guò)至少提供事件通道、授權(quán)表和I/O共享環(huán)協(xié)助半虛擬化網(wǎng)卡前端驅(qū)動(dòng)和半虛擬化網(wǎng)卡后端驅(qū)動(dòng)進(jìn)行通信。其中,為了描述方便,將半虛擬化網(wǎng)卡前端驅(qū)動(dòng)和半虛擬化網(wǎng)卡后端驅(qū)動(dòng)統(tǒng)稱為半虛擬化網(wǎng)卡驅(qū)動(dòng)。
[0168]其中,半虛擬化網(wǎng)卡驅(qū)動(dòng)的初始化流程為:
[0169](I)在DomU初始其半虛擬化網(wǎng)卡前端驅(qū)動(dòng)時(shí),創(chuàng)建自身的共享內(nèi)存池并初始化該共享內(nèi)存池:其中,DomU初始化其共享內(nèi)存池的過(guò)程包括:
[0170]從授權(quán)表中預(yù)先申請(qǐng)?zhí)囟〝?shù)量的授權(quán)項(xiàng);
[0171]從系統(tǒng)內(nèi)存中預(yù)先分配相應(yīng)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源,將每個(gè)共享內(nèi)存資源的偽物理地址填充到相應(yīng)的授權(quán)項(xiàng)中;
[0172]將填充有偽物理地址的所有授權(quán)項(xiàng)的標(biāo)識(shí)和共享內(nèi)存資源放入共享內(nèi)存池中;
[0173](2)該DomU的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)協(xié)助DomO的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)實(shí)現(xiàn)DomU和DomO之間的資源預(yù)映射過(guò)程包括:
[0174]半虛擬化網(wǎng)卡前端驅(qū)動(dòng)從該共享內(nèi)存池中獲取所有授權(quán)項(xiàng)的標(biāo)識(shí);
[0175]構(gòu)建授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的I/O請(qǐng)求,并將I/O請(qǐng)求放入至I/O共享環(huán)中,其中,該授權(quán)項(xiàng)的標(biāo)識(shí)與I/o請(qǐng)求具有一一對(duì)應(yīng)性;
[0176]通過(guò)事件通道向該DomO的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,該初始化通知為:該半虛擬化網(wǎng)卡后端驅(qū)動(dòng)和該半虛擬化網(wǎng)卡前端驅(qū)動(dòng)事先約定的;
[0177]相應(yīng)的,該DomO的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)實(shí)現(xiàn)DomU和DomO之間的資源預(yù)映射過(guò)程包括:
[0178]半虛擬化網(wǎng)卡后端驅(qū)動(dòng)接收到該初始化通知之后,從I/O共享環(huán)中取出半虛擬化網(wǎng)卡前端驅(qū)動(dòng)發(fā)出的所有I/o請(qǐng)求;[0179]根據(jù)授權(quán)表,確定I/O請(qǐng)求中授權(quán)項(xiàng)的標(biāo)識(shí)所對(duì)應(yīng)的共享內(nèi)存資源的偽物理地址;
[0180]將偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,其中,偽物理地址與本地虛擬地址具有一一對(duì)應(yīng)性;
[0181 ] 構(gòu)建關(guān)于該偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。
[0182]上述內(nèi)容給出了 DomU預(yù)分配和DomO的預(yù)映射機(jī)制:DomU在預(yù)先分配了一共享內(nèi)存池,同時(shí)DomO預(yù)先將該共享內(nèi)存池中的共享內(nèi)存資源全部映射到了自身的內(nèi)存空間中,并已建立了索引表以指明其中的具體映射關(guān)系。
[0183]基于上述的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)預(yù)分配和的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)預(yù)映射機(jī)制,從DomU的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)角度,本發(fā)明實(shí)施例所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法可以包括:
[0184](I)DomU的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)每次接收到內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù)時(shí),從預(yù)設(shè)共享內(nèi)存池中申請(qǐng)?zhí)幱诜钦加脿顟B(tài)的共享內(nèi)存資源作為目標(biāo)共享內(nèi)存資源;
[0185](2)半虛擬化網(wǎng)卡前端驅(qū)動(dòng)確定授權(quán)表中該目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng);
[0186](3)半虛擬化網(wǎng)卡前端驅(qū)動(dòng)將攜帶有該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入I/O共享環(huán)中;
[0187](4)半虛擬化網(wǎng)卡前端驅(qū)動(dòng)通過(guò)事件通道向DomO的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知;
[0188](5)當(dāng)接收到該半虛擬化網(wǎng)卡后端驅(qū)動(dòng)反饋的該目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,半虛擬化網(wǎng)卡前端驅(qū)動(dòng)釋放該目標(biāo)共享內(nèi)存資源,將釋放后的該目標(biāo)共享內(nèi)存資源確定為該共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0189]基于上述的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)預(yù)分配和的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)預(yù)映射機(jī)制,從DomO的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)角度,本發(fā)明實(shí)施例所提供的通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法可以包括:
[0190](I)DomO的半虛擬化網(wǎng)卡后端驅(qū)動(dòng)接收DomU的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)發(fā)送的目標(biāo)事件通知;
[0191](2)半虛擬化網(wǎng)卡后端驅(qū)動(dòng)從I/O共享環(huán)中獲取相應(yīng)的目標(biāo)I/O請(qǐng)求,該目標(biāo)I/O請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí);
[0192](3)根據(jù)授權(quán)表,半虛擬化網(wǎng)卡后端驅(qū)動(dòng)確定該目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址;
[0193](4)根據(jù)預(yù)設(shè)的索引表,半虛擬化網(wǎng)卡后端驅(qū)動(dòng)確定該目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址;
[0194](5)利用該本地虛擬地址,半虛擬化網(wǎng)卡后端驅(qū)動(dòng)讀取該目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件;
[0195](6)在目標(biāo)I/O請(qǐng)求完成后,半虛擬化網(wǎng)卡后端驅(qū)動(dòng)通過(guò)事件通道向相應(yīng)的半虛擬化網(wǎng)卡前端驅(qū)動(dòng)反饋目標(biāo)I/o請(qǐng)求完成通知,以指示該半虛擬化網(wǎng)卡前端驅(qū)動(dòng)釋放該目標(biāo)共享內(nèi)存資源,將釋放后的該目標(biāo)共享內(nèi)存資源確定為該共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源,以此完成對(duì)該網(wǎng)卡的本次訪問(wèn)。[0196]本發(fā)明實(shí)施例所提供的技術(shù)方案,由于DomU預(yù)先構(gòu)建一共享內(nèi)存池,而DomO預(yù)先將該共享內(nèi)存池中的共享內(nèi)存資源映射到自身的內(nèi)存空間中,并建立指明具體映射關(guān)系的索引表,以此實(shí)現(xiàn)了 DomU和DomO之間的資源預(yù)映射;因此,在DomU訪問(wèn)網(wǎng)卡而向外界傳輸數(shù)據(jù)時(shí),在半虛擬化網(wǎng)卡前端驅(qū)動(dòng)和半虛擬化網(wǎng)卡后端驅(qū)動(dòng)的網(wǎng)絡(luò)通信過(guò)程中,由于無(wú)需進(jìn)行非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源映射和解映射操作,可以完全避免特權(quán)虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,從而降低了虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
[0197]通過(guò)以上的方法實(shí)施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0198]相應(yīng)于上面的方法實(shí)施例,一方面,本發(fā)明實(shí)施例提供了一種后端驅(qū)動(dòng),其設(shè)置于物理機(jī)中的特權(quán)虛擬機(jī)中,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;如圖9所示,所述后端驅(qū)動(dòng)可以包括:
[0199]目標(biāo)事件通知接收單元110,所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的目標(biāo)事件通知,并觸發(fā)目標(biāo)I/o請(qǐng)求獲取單元120,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求;
[0200]目標(biāo)I/O請(qǐng)求獲取單元120,用于從所述I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求,并觸發(fā)目標(biāo)偽物理地址確定單元130,所述目標(biāo)I/O請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí);
[0201]目標(biāo)偽物理地址確定單元130,用于根據(jù)所述授權(quán)表,確定所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址,并觸發(fā)目標(biāo)本地虛擬地址確定單元140,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化預(yù)先構(gòu)建的共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化;
[0202]目標(biāo)本地虛擬地址確定單元140,用于根據(jù)預(yù)設(shè)的索引表,確定所述目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,并觸發(fā)網(wǎng)絡(luò)數(shù)據(jù)處理單元150,其中,所述索引表在第一預(yù)映射單元160實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明所述共享內(nèi)存池中的共享內(nèi)存資源與所述特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系;
[0203]網(wǎng)絡(luò)數(shù)據(jù)處理單元150,用于利用所述目標(biāo)本地虛擬地址,讀取所述目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將所述網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)所述硬件的本次訪問(wèn);
[0204]第一預(yù)映射單元160,用于實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射。[0205]本發(fā)明實(shí)施例所提供的技術(shù)方案,由于非特權(quán)虛擬機(jī)預(yù)先構(gòu)建一共享內(nèi)存池,而特權(quán)虛擬機(jī)預(yù)先將該共享內(nèi)存池中的共享內(nèi)存資源映射到自身的內(nèi)存空間中,并建立指明具體映射關(guān)系的索引表,以此實(shí)現(xiàn)了非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源預(yù)映射,因此,在非特權(quán)虛擬機(jī)訪問(wèn)硬件而向外界傳輸數(shù)據(jù)時(shí),在前端驅(qū)動(dòng)和后端驅(qū)動(dòng)的網(wǎng)絡(luò)通信過(guò)程中,由于無(wú)需進(jìn)行非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源映射和解映射操作,可以完全避免特權(quán)虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,從而降低了虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
[0206]更進(jìn)一步的,該后端驅(qū)動(dòng)還可以包括:
[0207]I/O請(qǐng)求完成通知發(fā)送單元,用于在所述目標(biāo)I/O請(qǐng)求完成后,通過(guò)所述事件通道向所述前端驅(qū)動(dòng)反饋I/O請(qǐng)求完成通知,以指示所述前端驅(qū)動(dòng)釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0208]其中,所述第一預(yù)映射單元160,可以包括:
[0209]初始化通知接收子單元,用于接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的初始化通知,并觸發(fā)I/o請(qǐng)求獲取子單元;
[0210]所述I/O請(qǐng)求獲取子單元,用于從所述I/O共享環(huán)中獲取I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶授權(quán)項(xiàng)的標(biāo)識(shí),并觸發(fā)偽物理地址確定子單元;
[0211]所述偽物理地址確定子單元,用于根據(jù)所述授權(quán)表,確定所述I/O請(qǐng)求中所述授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的偽物理地址,并觸發(fā)資源映射子單元;
[0212]所述資源映射子單元,用于將所述偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到所述特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,并觸發(fā)索引表構(gòu)建子單元,其中,所述偽物理地址與本地虛擬地址具有唯一對(duì)應(yīng)性;
[0213]所述索引表構(gòu)建子單元,用于構(gòu)建關(guān)于所述偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。
[0214]另一方面,本發(fā)明實(shí)施例還提供了一種前端驅(qū)動(dòng),其設(shè)置于物理機(jī)中的非特權(quán)虛擬機(jī)中,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;如圖10所示,所述前驅(qū)動(dòng)可以包括:
[0215]網(wǎng)絡(luò)數(shù)據(jù)接收單元210,用于接收相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù),并觸發(fā)目標(biāo)內(nèi)存資源確定單元220,其中,所述網(wǎng)絡(luò)數(shù)據(jù)為用于訪問(wèn)硬件的數(shù)據(jù);
[0216]目標(biāo)內(nèi)存資源確定單元220,用于將預(yù)設(shè)的共享內(nèi)存池中的處于非占用狀態(tài)的共享內(nèi)存資源作為所述網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,并觸發(fā)目標(biāo)授權(quán)項(xiàng)確定單元230,所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化;
[0217]目標(biāo)授權(quán)項(xiàng)確定單元230,用于確定所述授權(quán)表中所述目標(biāo)內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng),并觸發(fā)目標(biāo)I/O請(qǐng)求處理單元240,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);
[0218]目標(biāo)I/O請(qǐng)求處理單元240,用于將攜帶所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入所述I/o共享環(huán)中,并觸發(fā)目標(biāo)事件通知發(fā)送單元250,其中,所述目標(biāo)I/O請(qǐng)求在第二預(yù)映射單元260協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程中構(gòu)建;
[0219]目標(biāo)事件通知發(fā)送單元250,用于通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/o請(qǐng)求;
[0220]第二預(yù)映射單元260,用于協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射。
[0221]本實(shí)施例所提供的技術(shù)方案中,非特權(quán)虛擬機(jī)的前端驅(qū)動(dòng)將共享內(nèi)存池中的共享內(nèi)存資源作為所接收到網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,并將攜帶該目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/o請(qǐng)求放入I/O共享環(huán)中,進(jìn)而向后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,以指示后端驅(qū)動(dòng)獲取目標(biāo)I/o請(qǐng)求,并通過(guò)預(yù)設(shè)的關(guān)于該非特權(quán)虛擬機(jī)對(duì)應(yīng)共享內(nèi)存池中的共享內(nèi)存資源與該特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系的索引表,實(shí)現(xiàn)對(duì)該硬件的本次訪問(wèn)??梢?jiàn),在前端驅(qū)動(dòng)和后端驅(qū)動(dòng)的網(wǎng)絡(luò)通信過(guò)程中,由于無(wú)需進(jìn)行非特權(quán)虛擬機(jī)和特權(quán)虛擬機(jī)之間的資源映射和解映射操作,可以完全避免特權(quán)虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,從而降低了虛擬機(jī)網(wǎng)絡(luò)時(shí)延機(jī)CPU占用率。
[0222]更進(jìn)一步的,該前端驅(qū)動(dòng)還可以包括:
[0223]目標(biāo)內(nèi)存資源處理單元,用于當(dāng)接收到所述后端驅(qū)動(dòng)反饋的所述目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
[0224]其中,所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池的過(guò)程可以包括:
[0225]所述非特權(quán)虛擬機(jī)將相應(yīng)系統(tǒng)內(nèi)存中的預(yù)設(shè)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源;將所述共享內(nèi)存資源的偽物理地址填充至所述授權(quán)表中的授權(quán)項(xiàng),所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);將所述共享內(nèi)存資源和相應(yīng)授權(quán)項(xiàng)的標(biāo)識(shí)放置到所述共享內(nèi)存池中;
[0226]相應(yīng)的,第二預(yù)映射單元270,可以包括:
[0227]授權(quán)項(xiàng)標(biāo)識(shí)確定子單元,用于從所述共享內(nèi)存池中獲取所述授權(quán)項(xiàng)的標(biāo)識(shí),并觸發(fā)I/O請(qǐng)求處理子單元;
[0228]所述I/O請(qǐng)求處理子單元,用于構(gòu)建攜帶所述授權(quán)項(xiàng)的標(biāo)識(shí)的I/O請(qǐng)求,并將所述I/o請(qǐng)求放入I/O共享環(huán)中,并觸發(fā)初始化通知發(fā)送子單元,其中,所述授權(quán)項(xiàng)的標(biāo)識(shí)與所述I/o請(qǐng)求具有唯一對(duì)應(yīng)性;
[0229]所述初始化通知發(fā)送子單元,用于通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,所述初始化通知用于指示所述后端驅(qū)動(dòng)開(kāi)啟所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)的資源預(yù)映射過(guò)程。
[0230]對(duì)于裝置或系統(tǒng)實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置或系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0231]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,在沒(méi)有超過(guò)本申請(qǐng)的精神和范圍內(nèi),可以通過(guò)其他的方式實(shí)現(xiàn)。當(dāng)前的實(shí)施例只是一種示范性的例子,不應(yīng)該作為限制,所給出的具體內(nèi)容不應(yīng)該限制本申請(qǐng)的目的。例如,所述單元或子單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或多個(gè)子單元結(jié)合一起。另外,多個(gè)單元可以或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。
[0232]另外,所描述系統(tǒng),裝置和方法以及不同實(shí)施例的示意圖,在不超出本申請(qǐng)的范圍內(nèi),可以與其它系統(tǒng),模塊,技術(shù)或方法結(jié)合或集成。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0233]以上所述僅是本發(fā)明的【具體實(shí)施方式】,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,其特征在于,適用于物理機(jī)上,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述方法包括: 所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/o請(qǐng)求; 從所述I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求,所述目標(biāo)I/O請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí);根據(jù)所述授權(quán)表,確定所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化預(yù)先構(gòu)建的共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化; 根據(jù)預(yù)設(shè)的索引表,確定所述目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,其中,所述索引表在所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明所述共享內(nèi)存池中的共享內(nèi)存資源與所述特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系; 利用所述目標(biāo)本地虛擬地址,讀取所述目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將所述網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)所述硬件的本次訪問(wèn)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在所述目標(biāo)I/o請(qǐng)求完成后,通過(guò)所述事件通道向所述前端驅(qū)動(dòng)反饋I/O請(qǐng)求完成通知,以指示所述前端驅(qū)動(dòng)釋放所述`目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程,包括: 所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的初始化通知; 從所述I/o共享環(huán)中獲取I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶授權(quán)項(xiàng)的標(biāo)識(shí); 根據(jù)所述授權(quán)表,確定所述I/o請(qǐng)求中所述授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的偽物理地址; 將所述偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到所述特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,其中,所述偽物理地址與本地虛擬地址具有唯一對(duì)應(yīng)性; 構(gòu)建關(guān)于所述偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述前端驅(qū)動(dòng)為半虛擬化網(wǎng)卡前端驅(qū)動(dòng),所述后端驅(qū)動(dòng)為半虛擬化網(wǎng)卡后端驅(qū)動(dòng); 或者, 所述前端驅(qū)動(dòng)為半虛擬化磁盤前端驅(qū)動(dòng),所述后端驅(qū)動(dòng)為半虛擬化磁盤后端驅(qū)動(dòng); 或者, 所述前端驅(qū)動(dòng)為半虛擬化USB前端驅(qū)動(dòng),所述后端驅(qū)動(dòng)為半虛擬化USB后端驅(qū)動(dòng)。
5.一種后端驅(qū)動(dòng),其特征在于,設(shè)置于物理機(jī)中的特權(quán)虛擬機(jī)中,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述后端驅(qū)動(dòng)包括: 目標(biāo)事件通知接收單元,所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的目標(biāo)事件通知,并觸發(fā)目標(biāo)I/o請(qǐng)求獲取單元,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求; 所述目標(biāo)I/o請(qǐng)求獲取單元,用于從所述I/O共享環(huán)中獲取目標(biāo)I/O請(qǐng)求,并觸發(fā)目標(biāo)偽物理地址確定單元,所述目標(biāo)I/o請(qǐng)求攜帶有目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí); 所述目標(biāo)偽物理地址確定單元,用于根據(jù)所述授權(quán)表,確定所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)偽物理地址,并觸發(fā)目標(biāo)本地虛擬地址確定單元,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化預(yù)先構(gòu)建的共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí),所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化; 所述目標(biāo)本地虛擬地址確定單元,用于根據(jù)預(yù)設(shè)的索引表,確定所述目標(biāo)偽物理地址對(duì)應(yīng)的目標(biāo)本地虛擬地址,并觸發(fā)網(wǎng)絡(luò)數(shù)據(jù)處理單元,其中,所述索引表在第一預(yù)映射單元實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射過(guò)程中創(chuàng)建,其用于指明所述共享內(nèi)存池中的共享內(nèi)存資源與所述特權(quán)虛擬機(jī)的內(nèi)存空間的映射關(guān)系; 所述網(wǎng)絡(luò)數(shù)據(jù)處理單元,用于利用所述目標(biāo)本地虛擬地址,讀取所述目標(biāo)偽物理地址所對(duì)應(yīng)目標(biāo)共享內(nèi)存資源中的網(wǎng)絡(luò)數(shù)據(jù),并將所述網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的硬件,以此實(shí)現(xiàn)對(duì)所述硬件的本次訪問(wèn); 所述第一預(yù)映射單元,用于實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射。`
6.根據(jù)權(quán)利要求5所述的后端驅(qū)動(dòng),其特征在于,還包括: I/o請(qǐng)求完成通知發(fā)送單元,用于在所述目標(biāo)I/O請(qǐng)求完成后,通過(guò)所述事件通道向所述前端驅(qū)動(dòng)反饋I/o請(qǐng)求完成通知,以指示所述前端驅(qū)動(dòng)釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
7.根據(jù)權(quán)利要求5或6所述的后端驅(qū)動(dòng),其特征在于,所述第一預(yù)映射單元,包括: 初始化通知接收子單元,用于接收所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)通過(guò)所述事件通道發(fā)送的初始化通知,并觸發(fā)I/o請(qǐng)求獲取子單元; 所述I/o請(qǐng)求獲取子單元,用于從所述I/O共享環(huán)中獲取I/O請(qǐng)求,所述I/O請(qǐng)求中攜帶授權(quán)項(xiàng)的標(biāo)識(shí),并觸發(fā)偽物理地址確定子單元; 所述偽物理地址確定子單元,用于根據(jù)所述授權(quán)表,確定所述I/o請(qǐng)求中所述授權(quán)項(xiàng)的標(biāo)識(shí)對(duì)應(yīng)的偽物理地址,并觸發(fā)資源映射子單元; 所述資源映射子單元,用于將所述偽物理地址對(duì)應(yīng)的共享內(nèi)存資源映射到所述特權(quán)虛擬機(jī)的系統(tǒng)內(nèi)存中,并觸發(fā)索引表構(gòu)建子單元,其中,所述偽物理地址與本地虛擬地址具有唯一對(duì)應(yīng)性; 所述索引表構(gòu)建子單元,用于構(gòu)建關(guān)于所述偽物理地址與相應(yīng)的本地虛擬地址的映射關(guān)系的索引表。
8.—種通過(guò)半虛擬化驅(qū)動(dòng)訪問(wèn)硬件的方法,其特征在于,適用于物理機(jī)上,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/O共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述方法包括: 所述非特權(quán)虛擬機(jī)的所述前端驅(qū)動(dòng)接收相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù),其中,所述網(wǎng)絡(luò)數(shù)據(jù)為用于訪問(wèn)硬件的數(shù)據(jù); 將預(yù)設(shè)的共享內(nèi)存池中的處于非占用狀態(tài)的共享內(nèi)存資源作為所述網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化; 確定所述授權(quán)表中所述目標(biāo)共享內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng),其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí); 將攜帶所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/o請(qǐng)求放入所述I/O共享環(huán)中,其中,所述目標(biāo)I/o請(qǐng)求在所述前端驅(qū)動(dòng)協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程中構(gòu)建; 通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/O請(qǐng)求。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,還包括: 當(dāng)接收到所述后端驅(qū)動(dòng)反饋`的所述目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
10.根據(jù)權(quán)利要求8或9所述的方法,其特征在于,所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池的過(guò)程包括: 所述非特權(quán)虛擬機(jī)將相應(yīng)系統(tǒng)內(nèi)存中的預(yù)設(shè)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源;將所述共享內(nèi)存資源的偽物理地址填充至所述授權(quán)表中的授權(quán)項(xiàng),所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);將所述共享內(nèi)存資源和相應(yīng)授權(quán)項(xiàng)的標(biāo)識(shí)放置到所述共享內(nèi)存池中; 其中,所述前端驅(qū)動(dòng)協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程,包括: 所述前端驅(qū)動(dòng)從所述共享內(nèi)存池中獲取所述授權(quán)項(xiàng)的標(biāo)識(shí); 構(gòu)建攜帶所述授權(quán)項(xiàng)的標(biāo)識(shí)的I/o請(qǐng)求,并將所述I/O請(qǐng)求放入I/O共享環(huán)中,其中,所述授權(quán)項(xiàng)的標(biāo)識(shí)與所述I/o請(qǐng)求具有唯一對(duì)應(yīng)性; 通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,所述初始化通知用于指示所述后端驅(qū)動(dòng)開(kāi)啟所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)的資源預(yù)映射過(guò)程。
11.一種前端驅(qū)動(dòng),其特征在于,設(shè)置于物理機(jī)中的非特權(quán)虛擬機(jī)中,所述物理機(jī)包括:虛擬機(jī)監(jiān)控器、設(shè)置有后端驅(qū)動(dòng)的特權(quán)虛擬機(jī)以及至少一設(shè)置有前端驅(qū)動(dòng)的非特權(quán)虛擬機(jī),其中,所述虛擬機(jī)監(jiān)控器通過(guò)至少提供事件通道、授權(quán)表和I/o共享環(huán)協(xié)助所述前端驅(qū)動(dòng)和所述后端驅(qū)動(dòng)進(jìn)行通信;所述前驅(qū)動(dòng)包括: 網(wǎng)絡(luò)數(shù)據(jù)接收單元,用于接收相應(yīng)內(nèi)核下發(fā)的網(wǎng)絡(luò)數(shù)據(jù),并觸發(fā)目標(biāo)內(nèi)存資源確定單元,其中,所述網(wǎng)絡(luò)數(shù)據(jù)為用于訪問(wèn)硬件的數(shù)據(jù); 所述目標(biāo)內(nèi)存資源確定單元,用于將預(yù)設(shè)的共享內(nèi)存池中的處于非占用狀態(tài)的共享內(nèi)存資源作為所述網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的目標(biāo)共享內(nèi)存資源,并觸發(fā)目標(biāo)授權(quán)項(xiàng)確定單元,所述共享內(nèi)存池為所述非特權(quán)虛擬機(jī)初始化所述前端驅(qū)動(dòng)時(shí)由所述非特權(quán)虛擬機(jī)構(gòu)建并初始化; 所述目標(biāo)授權(quán)項(xiàng)確定單元,用于確定所述授權(quán)表中所述目標(biāo)內(nèi)存資源的目標(biāo)偽物理地址所在的目標(biāo)授權(quán)項(xiàng),并觸發(fā)目標(biāo)I/o請(qǐng)求處理單元,其中,所述授權(quán)表的授權(quán)項(xiàng)在所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池時(shí)被填充有所述共享內(nèi)存池中的共享內(nèi)存資源的偽物理地址,所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí); 所述目標(biāo)I/o請(qǐng)求處理單元,用于將攜帶所述目標(biāo)授權(quán)項(xiàng)的標(biāo)識(shí)的目標(biāo)I/O請(qǐng)求放入所述I/o共享環(huán)中,并觸發(fā)目標(biāo)事件通知發(fā)送單元,其中,所述目標(biāo)I/O請(qǐng)求在第二預(yù)映射單元協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射的過(guò)程中構(gòu)建; 所述目標(biāo)事件通知發(fā)送單元,用于通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送目標(biāo)事件通知,其中,所述目標(biāo)事件通知用于指示所述后端驅(qū)動(dòng)從所述I/o共享環(huán)中獲取目標(biāo)I/o請(qǐng)求; 所述第二預(yù)映射單元,用于協(xié)助所述后端驅(qū)動(dòng)實(shí)現(xiàn)所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)之間的資源預(yù)映射。
12.根據(jù)權(quán)利要求11所述的前端驅(qū)動(dòng),其特征在于,還包括:` 目標(biāo)內(nèi)存資源處理單元,用于當(dāng)接收到所述后端驅(qū)動(dòng)反饋的所述目標(biāo)事件通知對(duì)應(yīng)的請(qǐng)求完成通知后,釋放所述目標(biāo)共享內(nèi)存資源,將釋放后的所述目標(biāo)共享內(nèi)存資源確定為所述共享內(nèi)存池中處于非占用狀態(tài)的共享內(nèi)存資源。
13.根據(jù)權(quán)利要求11或12所述的前端驅(qū)動(dòng),其特征在于,所述非特權(quán)虛擬機(jī)初始化所述共享內(nèi)存池的過(guò)程包括: 所述非特權(quán)虛擬機(jī)將相應(yīng)系統(tǒng)內(nèi)存中的預(yù)設(shè)數(shù)量的內(nèi)存資源作為處于非占用狀態(tài)的共享內(nèi)存資源;將所述共享內(nèi)存資源的偽物理地址填充至所述授權(quán)表中的授權(quán)項(xiàng),所述偽物理地址與所述授權(quán)項(xiàng)具有唯一對(duì)應(yīng)性,且每一授權(quán)項(xiàng)唯一對(duì)應(yīng)一標(biāo)識(shí);將所述共享內(nèi)存資源和相應(yīng)授權(quán)項(xiàng)的標(biāo)識(shí)放置到所述共享內(nèi)存池中; 相應(yīng)的,所述第二預(yù)映射單元,包括: 授權(quán)項(xiàng)標(biāo)識(shí)確定子單元,用于從所述共享內(nèi)存池中獲取所述授權(quán)項(xiàng)的標(biāo)識(shí),并觸發(fā)I/o請(qǐng)求處理子單元; 所述I/o請(qǐng)求處理子單元,用于構(gòu)建攜帶所述授權(quán)項(xiàng)的標(biāo)識(shí)的I/O請(qǐng)求,并將所述I/O請(qǐng)求放入I/o共享環(huán)中,并觸發(fā)初始化通知發(fā)送子單元,其中,所述授權(quán)項(xiàng)的標(biāo)識(shí)與所述I/O請(qǐng)求具有唯一對(duì)應(yīng)性; 所述初始化通知發(fā)送子單元,用于通過(guò)所述事件通道向所述特權(quán)虛擬機(jī)的所述后端驅(qū)動(dòng)發(fā)送預(yù)設(shè)的初始化通知,其中,所述初始化通知用于指示所述后端驅(qū)動(dòng)開(kāi)啟所述非特權(quán)虛擬機(jī)與所述特權(quán)虛擬機(jī)`的資源預(yù)映射過(guò)程。
【文檔編號(hào)】G06F9/455GK103870311SQ201210527643
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2012年12月10日 優(yōu)先權(quán)日:2012年12月10日
【發(fā)明者】唐明 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
莱西市| 陕西省| 炎陵县| 上蔡县| 南丹县| 旺苍县| 观塘区| 隆化县| 新巴尔虎左旗| 沙河市| 漠河县| 鄱阳县| 沿河| 岑巩县| 定安县| 漳平市| 米泉市| 临澧县| 庐江县| 遵义市| 方山县| 汉川市| 合江县| 河池市| 嫩江县| 冀州市| 安多县| 临泽县| 刚察县| 黔江区| 霍山县| 安康市| 湘乡市| 鲁甸县| 巴林左旗| 通化市| 鞍山市| 阜康市| 剑阁县| 榆社县| 台中市|