亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種硬件虛擬機(jī)中精簡模式切換的i/o虛擬化方法

文檔序號:6584687閱讀:184來源:國知局
專利名稱:一種硬件虛擬機(jī)中精簡模式切換的i/o虛擬化方法
技術(shù)領(lǐng)域
本發(fā)明涉及硬件虛擬機(jī)I/O虛擬化領(lǐng)域,特別是涉及一種精簡模式切換的I/O虛 擬化方法。
背景技術(shù)
虛擬機(jī)(Virtual Machine :VM)是支持多操作系統(tǒng)并行運(yùn)行在單個物理服務(wù)器 上的一種系統(tǒng),能夠提供更加有效的底層硬件使用。在虛擬機(jī)中,中央處理器芯片從系統(tǒng) 其它部分劃分出一段存儲區(qū)域,操作系統(tǒng)和應(yīng)用程序運(yùn)行在“保護(hù)模式”環(huán)境下。虛擬機(jī) 監(jiān)視器(Virtual Machine Monitor VMM)是一個用于協(xié)調(diào)管理在同一宿主機(jī)內(nèi)虛擬機(jī)的 軟件層,它通常通過硬件或者是軟件部件的幫組來強(qiáng)化虛擬機(jī)之間的獨(dú)立性。Xen監(jiān)視器 (Hypervisor)運(yùn)行在系統(tǒng)特權(quán)最高級,有一個可信的特權(quán)虛擬機(jī)稱為domain 0來協(xié)助管 理其他處于非特權(quán)級的虛擬機(jī)稱為domain U或者客戶虛擬機(jī)。由于虛擬機(jī)技術(shù)廣闊的發(fā)展前景,不單是各種虛擬化軟件層出不窮;從2004年開 始,硬件虛擬化技術(shù)也已經(jīng)開始被各大IT界巨頭列入研究計(jì)劃。目前,已經(jīng)有支持完全虛 擬化技術(shù)的處理器硬件技術(shù)出現(xiàn),比較有代表性的是英特爾的Vanderpool技術(shù)和AMD的 Pacifica技術(shù)。2005年1月20日Intel向外界公布了代號為Vanderpool的虛擬化技術(shù) (簡稱VT) ;AMD也于同年3月30日向外公布了代號為Pacifica的虛擬化技術(shù),彌補(bǔ)了 X86 架構(gòu)的虛擬化漏洞。VT分VT-i (支持Itanium架構(gòu))和VT_x (支持X86架構(gòu)),這里主要討論基于更 常見的X86架構(gòu)的VT-x。VT-x引入了一種新的處理器操作,稱為VMX(Virtual Machine Extensions) 0 VMX操作可以在根狀態(tài)(root)或非根狀態(tài)(non-root)下執(zhí)行,通常虛擬機(jī) 監(jiān)控程序(VMM)在根狀態(tài)下執(zhí)行,而客戶機(jī)軟件則運(yùn)行在非根狀態(tài)。VMM可以通過虛擬機(jī)入 口(VM entries)使處理器進(jìn)入VMX非根狀態(tài),相反,通過虛擬機(jī)出口(VM exits)可以回到 VMX根狀態(tài)。在VT技術(shù)支持下,客戶機(jī)可以運(yùn)行在其原先希望運(yùn)行的優(yōu)先級(即優(yōu)先級0) 上而VMM仍能捕獲客戶機(jī)對特定系統(tǒng)資源的訪問。VMX 操作新定義了虛擬機(jī)控制結(jié)構(gòu)(Virtual Machine Control Structure, VMCS) o VMCS 中包含客戶機(jī)狀態(tài)(Guest-state area),主機(jī)狀態(tài)(Host-state area),虛 擬機(jī)執(zhí)行控制域(VM-execution control fields),虛擬機(jī)退出控制域(VM-exit control fields),虛擬機(jī)入口控制域(VM-entry control fields)和虛擬機(jī)退出信息域(VM-exit information fields)。當(dāng)處理器控制從VMX根狀態(tài)進(jìn)入VMX非根狀態(tài)即虛擬機(jī)入口時,主 機(jī)狀態(tài)被保存在VMCS中,同時客戶機(jī)狀態(tài)及虛擬機(jī)退出控制策略從VMCS中裝入處理器。相 反當(dāng)處理器從VMX非根狀態(tài)進(jìn)入VMX根狀態(tài)即虛擬機(jī)退出時,客戶機(jī)狀態(tài)被保存在VMCS中 而主機(jī)狀態(tài)則從VMCS中裝入處理器。VMM可以分別設(shè)置客戶機(jī)的VMCS以實(shí)現(xiàn)不同的虛擬 化策略。雖然硬件虛擬化技術(shù)能解決半虛擬化需要修改客戶操作系統(tǒng)內(nèi)核的問題,也帶來 了新的問題。運(yùn)行在非根模式下的硬件虛擬機(jī)要訪問特權(quán)資源或者執(zhí)行特權(quán)指令如10訪問等,都需要切換到根模式下執(zhí)行,執(zhí)行完成后需要切換回非根模式,如圖1所示。硬件虛 擬機(jī)在根模式和非根模式之間切換(稱之為模式切換)造成大量的額外開銷,包括記錄CPU 運(yùn)行場景的各個寄存器的保存和加載等,在模式切換中真正用于處理通信請求的時間占整 個模式切換的時間比例很小,因此存在大量的額外開銷,進(jìn)而導(dǎo)致客戶虛擬機(jī)性能低。通過上述分析可以知道在當(dāng)前硬件虛擬機(jī)上的I/O訪問都要進(jìn)行模式切換到特 權(quán)模式下才能進(jìn)行,這一特性直接影響到硬件虛擬機(jī)的性能。為了提高硬件虛擬機(jī)的I/O 性能,有必要對硬件虛擬機(jī)的特性進(jìn)行分析,結(jié)合硬件虛擬機(jī)和domain 0分別運(yùn)行在非特 權(quán)模式和特權(quán)模式但共享物理內(nèi)存的特性設(shè)計(jì)新的I/O虛擬化方法。因此,本發(fā)明提出了 一種新的基于共享內(nèi)存的I/O虛擬化方法來大量減少硬件虛擬機(jī)發(fā)生I/O請求時所需要發(fā) 生的模式切換次數(shù),從而減少因?yàn)镮/O訪問帶來的額外開銷,進(jìn)而提高硬件虛擬機(jī)的性能。 同時,基于M/M/1排隊(duì)模型提出了 n階M/M/1排隊(duì)模型來完善精簡模式切換機(jī)制的延遲高 的問題,從而提高硬件虛擬機(jī)的整體性能。

發(fā)明內(nèi)容
本發(fā)明以減少硬件虛擬機(jī)I/O訪問所需模式切換次數(shù)為目標(biāo),以共享內(nèi)存為核心 思想,以排隊(duì)論為理論依據(jù),解決硬件虛擬機(jī)I/O訪問性能低的問題。具體包括1.在物理資源層,以共享內(nèi)存為基礎(chǔ),設(shè)計(jì)了高效的雙向硬件虛擬機(jī)通信通道,用 于在特權(quán)模式與非特權(quán)模式之間傳遞I/O訪問請求,從而使得硬件虛擬機(jī)可以減少大量的 模式切換。2.在應(yīng)用層,封裝了底層的通信接口,該接口可將上層I/O訪問請求封裝成I/O任 務(wù),通過共享內(nèi)存通信機(jī)制傳輸給特權(quán)虛擬機(jī)進(jìn)行處理。3.建立多個大小不一的共享內(nèi)存通信通道,用于不同延遲需求的應(yīng)用,共享內(nèi)存 大的通信通道有著較少的模式切換次數(shù),但通信延遲高。4.基于經(jīng)典的M/M/1排隊(duì)模型,提出了 n階M/M/1排隊(duì)模型用于評估所有共享內(nèi) 存通信通道,從而選擇其中符合通信延遲需求的通信通道。5.在硬件虛擬機(jī)和domain 0兩端為每個通信通道設(shè)置了記錄日志,日志記錄了 任務(wù)的到達(dá)時間以及離開時間,用于對該通信通道延遲的評測。與現(xiàn)有技術(shù)相比,本發(fā)明的創(chuàng)新之處在于抓住了硬件虛擬機(jī)和domain 0分別運(yùn) 行在非特權(quán)模式和特權(quán)模式下,通過共享內(nèi)存通信機(jī)制將非特權(quán)下的特權(quán)I/O服務(wù)請求發(fā) 送給特權(quán)虛擬級進(jìn)行處理,同時通過建立模型選擇最適合的通信通道,從而滿足應(yīng)用對I/O 通信延遲的需求。具體體現(xiàn)在1.精簡模式切換通信機(jī)制,通過共享內(nèi)存建立特權(quán)虛擬機(jī)與非特權(quán)虛擬機(jī)之間的 通信通道,從而大量減少了非特權(quán)虛擬機(jī)因?yàn)镮/O通信而需要發(fā)生的大量模式切換,從而 提高了硬件虛擬機(jī)I/O通信性能。2.建立多個通信延遲大小不一的通信通道,通過建立模型從而為通信應(yīng)用在較少 的模式切換次數(shù)與較低的通信延遲之間找到均衡。本發(fā)明提出一種硬件虛擬機(jī)中的精簡模式切換I/O虛擬化方法,該方法在具有如 下結(jié)構(gòu)的系統(tǒng)上實(shí)現(xiàn)該系統(tǒng)具有Xen監(jiān)視器,該Xen監(jiān)視器作為虛擬機(jī)監(jiān)視器監(jiān)管其他運(yùn) 行在實(shí)際物理機(jī)上的虛擬機(jī),該系統(tǒng)具有特權(quán)虛擬機(jī),該特權(quán)虛擬機(jī)擁有所有權(quán)限,可以直
4接訪問物理資源,該系統(tǒng)支持硬件虛擬化,支持Intel VT技術(shù),具有硬件虛擬機(jī),硬件虛擬 機(jī)需要通過模式切換來進(jìn)行I/O通信,該方法的特征在于包括如下步驟l)Xen監(jiān)視器為硬件虛擬機(jī)以及特權(quán)虛擬機(jī)之間建立多對大小不一的物理共享內(nèi) 存,通過授權(quán)表授予兩者對共享內(nèi)存通信通道擁有讀寫操作權(quán)限,為每對物理共享內(nèi)存創(chuàng) 建一個事件通道,事件通道兩端分別連接運(yùn)行在非特權(quán)模式下的硬件虛擬機(jī)以及運(yùn)行在特 權(quán)模式下的domain 0 ;2)每對共享內(nèi)存及對應(yīng)的事件通道構(gòu)成一個通信通道,在每個通信通道兩端建立 兩個記錄,記錄由環(huán)形鏈表組成,用于記錄在通信通達(dá)一端的所有通信任務(wù)到達(dá)時間以及 完成離開時間,通過這些記錄時間計(jì)算通信任務(wù)的到達(dá)率(即每秒鐘任務(wù)到達(dá)的數(shù)量)以 及任務(wù)的完成率(即每秒鐘完成任務(wù)的數(shù)量);3)在硬件虛擬機(jī)和domain 0中建立n階M/M/1排隊(duì)模型,該模型利用步驟(2)中 的任務(wù)到達(dá)率以及任務(wù)完成率來計(jì)算該系統(tǒng)內(nèi)每個共享內(nèi)存通信通道的平均通信延遲;4)當(dāng)硬件虛擬機(jī)有I/O通信請求或者在domain 0中有需要和硬件虛擬機(jī)I/O通 信的請求時,首先通過步驟(3)中的模型來計(jì)算每個通信通道的延遲,選擇擁有合適通信 延遲的通信通道,將I/O通信請求封裝成通信任務(wù),通過該通信通道發(fā)送給另一方,另一方 解析I/O通信任務(wù)并進(jìn)行處理;在硬件虛擬機(jī)和domain 0之間有三對共享內(nèi)存,每對包含大小一樣大的共享內(nèi) 存用于兩個方向上的通信,三對共享內(nèi)存大小分別是2個共享內(nèi)存頁表大小,4個共享內(nèi) 存頁表大小,8個共享內(nèi)存頁表大小(每個共享內(nèi)存頁表大小為4096字節(jié),頁表大小固定, 由系統(tǒng)特性決定,通信用的共享內(nèi)存的大小可調(diào)節(jié))。記錄日志分為兩類到達(dá)任務(wù)記錄和完成任務(wù)記錄,每個記錄是含有50個節(jié)點(diǎn)的 先進(jìn)先出隊(duì)列,每個節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中包含兩個屬性task_ID、time、task_ID為唯一標(biāo)識 每個任務(wù)的ID號,time為該任務(wù)的到達(dá)時間或者完成時間,該隊(duì)列通過不斷往隊(duì)尾插入新 節(jié)點(diǎn)來更新。


圖lXen傳統(tǒng)模式切換I/O通信體系結(jié)構(gòu)2精簡模式切換體系結(jié)構(gòu)31/0通信任務(wù)封裝結(jié)構(gòu)4n階M/M/1排隊(duì)模型框5n階M/M/1排隊(duì)模型狀態(tài)6通信信道選擇模塊設(shè)計(jì)7記錄結(jié)構(gòu)圖
具體實(shí)施例方式參閱圖2,本發(fā)明通過共享內(nèi)存和事件通道的綜合設(shè)計(jì),在運(yùn)行在特權(quán)模式下的 domain 0以及運(yùn)行在非特權(quán)模式下的硬件虛擬機(jī)之間建立多個直接的通信通道。以此為基 礎(chǔ),通過在硬件虛擬機(jī)和domain 0上封裝1/0通信請求,建立模型選擇最適合的通信通道 進(jìn)行通信,從而能夠大量減少傳統(tǒng)硬件虛擬機(jī)1/0通信時引發(fā)的模式切換操作次數(shù)。在硬件虛擬機(jī)和domain 0之間存在三對大小不一的共享內(nèi)存,每對共享內(nèi)存包含兩個單向的 共享內(nèi)存用于兩個方向上的通信。同時為每對共享內(nèi)存創(chuàng)建一個事件通道,事件通道用于 在硬件虛擬機(jī)和domain 0之間傳送信號告知事件發(fā)生,每對共享內(nèi)存和一個事件通道共 同組成精簡模式切換通信中的一個通信信道。通信選擇模塊用于在通信請求到達(dá)時根據(jù)建 立的模型提供的參數(shù)來選擇合適的通信信道。通信封裝模塊用于將I/O通信請求封裝成通 信任務(wù),在精簡模式切換通信系統(tǒng)中所有I/O通信請求以通信任務(wù)的形式發(fā)送到通信目的 地。通信傳輸模塊用于將封裝好的通信任務(wù)通過通信通道發(fā)送到通信目的地。位于domain 0中的通信管理模塊用于在初始時為硬件虛擬機(jī)和domain 0之間建立共享內(nèi)存以及事件 通道。參閱圖3,本發(fā)明在接收到通信請求時,將I/O通信請求封裝成通信任務(wù),通信任 務(wù)數(shù)據(jù)包頭長為8個字節(jié)(64位)。依次是a)Type 占8比特位,表示該I/O通信請求的類型,如網(wǎng)絡(luò)、10訪問等;b) Domain ID 占8比特位,表示該通信數(shù)據(jù)的源目的地,Domain ID能唯一標(biāo)識物 理機(jī)上的每個虛擬機(jī);c)T0tallen 占16比特位,表示該任務(wù)數(shù)據(jù)包的總長度(以字節(jié)為單位);cODatalen 占16比特位,表示該任務(wù)數(shù)據(jù)包中數(shù)據(jù)的總長度(以字節(jié)為單位);e) Timestamp 占16比特位,表示該任務(wù)數(shù)據(jù)包創(chuàng)建的時間;f)Data 最大4088字節(jié),存放著通信的數(shù)據(jù);1/0通信請求會在通信發(fā)起方被封裝成一個或者多個通信任務(wù),選擇一個通信通 道發(fā)送到通信目的地,通信目的方采用同樣的格式來解析通信任務(wù)從而獲取1/0通信請求 進(jìn)而進(jìn)行處理。1/0通信請求被封裝成通信任務(wù)后被送入n階M/M/1排隊(duì)模型中選擇合適的通信 信道,如圖4所示。符合M/M/1排隊(duì)模型的基本條件是a)系統(tǒng)的輸入過程是{N(t),t彡0},為參數(shù)是\的泊松過程,即到達(dá)時間間隔序 列{Jk,k彡0}為隨機(jī)變量序列,且丄 r(i,入)。b)只有一個服務(wù)臺,各個顧客的服務(wù)時間序列{Bk,k^ 1}為隨機(jī)變量序列,且 Bi r (1,ii)。并設(shè){Bk,k 彡 1}與{Jk,k 彡 0}獨(dú)立。系統(tǒng)中沒有顧客的概率,即顧客到達(dá)不需要等待的概率& = 1-P,其中P =入/ U為服務(wù)的利用率。n階M/M/1排隊(duì)模型由n個M/M/1排隊(duì)模型并行組成,在本發(fā)明中n 為3,n可以進(jìn)行設(shè)置。在這些模型中的服務(wù)臺的服務(wù)率不一樣。在該系統(tǒng)中,位于硬件虛 擬機(jī)中的1/0通信請求為排隊(duì)論中的顧客,其按照參數(shù)為\ i的泊松分布到達(dá),作為輸入系 統(tǒng)時,首先計(jì)算瞬時的各個通信通道的等待時間,選擇擁有適合等待時間的通信通道進(jìn)入, 如該通信通道的服務(wù)窗口正在忙著,則排隊(duì)等待服務(wù)。每個通信通道的服務(wù)臺為每個顧客 服務(wù)的時間均為負(fù)指數(shù)分布,記第i個通信通道(1 < i < n)的平均服務(wù)率為P i,進(jìn)入第i 個子系統(tǒng)的顧客到達(dá)率為X”由n個獨(dú)立的M/M/1排隊(duì)子模型并列組成的n階M/M/1排 隊(duì)模型狀態(tài)圖如圖5所示,系統(tǒng)初始化時狀態(tài)為00,即所有通信通道都為空,無顧客。待顧 客到達(dá)后通過比較每個通信通道當(dāng)前的平均等待時間以及自身的服務(wù)需求來選擇一個合 適的通信通道進(jìn)入,從而使得該通信通道在不同的狀態(tài)之間跳轉(zhuǎn)。當(dāng)有一個1/0通信請求到達(dá)時,定義其通信延遲忍耐度為(即該1/0通信所能忍受的最大通信延遲,后續(xù)將以此來選擇通信子通道)。精簡模式切換I/O虛擬化方法中的 通信信道選擇模塊根據(jù)延遲計(jì)算模塊計(jì)算每個通信通道的平均延遲來選擇將通信請求放 入哪一個通信信道,如圖6所示。延遲計(jì)算模塊通過將通信通道的平均等待時間加上該通 信通道的服務(wù)時間得到該通信通道的平均延遲通過上述方法得到了每個通信信道的平均延遲L,1\,T2...IV..Tn,其中 0 < i < n。為了滿足通信請求的選擇的通信信道的平均延遲必須小于該通信請求的延遲 忍耐度Tb_。在滿足上述條件的通信信道成了 在上述集合基礎(chǔ)上,應(yīng)該從滿足條件的通信信道中選擇共享內(nèi)存越大的越好。因 此,我們選擇滿足下述條件的第k個通信信道 觀察公式(1)可知計(jì)算每個通信通道的平均延遲需要知道該通信通道在該時間 的顧客到達(dá)率以及服務(wù)率。不同通信信道有著不同的顧客到達(dá)率以及服務(wù)率,同時,同一通 信信道在不同時刻也有著不同的顧客到達(dá)率以及服務(wù)率,為了獲得較為準(zhǔn)確的顧客到達(dá)率 以及服務(wù)率,本發(fā)明在每個通信信道的排隊(duì)隊(duì)列處設(shè)置了排隊(duì)記錄以及在輸出處設(shè)置輸出 記錄,主要用于記錄歷史顧客到達(dá)的時間以及離開系統(tǒng)的時間。兩者使用有50個節(jié)點(diǎn)的鏈 表結(jié)構(gòu)來記錄顧客的到達(dá)以及離開,每個節(jié)點(diǎn)記錄著一個顧客的相應(yīng)信息,結(jié)構(gòu)如圖7所 示,在排隊(duì)端的Wait_Queue結(jié)構(gòu)中包含a) task_ID 用來唯一標(biāo)識每個進(jìn)入該通信通道的通信任務(wù);b) time 用來記錄進(jìn)入該通信通道排隊(duì)隊(duì)列的時間;在排隊(duì)端的Output_Queue結(jié)構(gòu)中包含a) task_ID 用來唯一標(biāo)識每個從該通信通道輸出的通信任務(wù);b) time 用來記錄從該通信通道輸出的時間;在等待隊(duì)列端,本發(fā)明使用一個長度為50個節(jié)點(diǎn)的環(huán)形鏈表作為先進(jìn)先出隊(duì)列 來記錄顧客的到達(dá)情況,每當(dāng)一個新的通信請求進(jìn)入子系統(tǒng),將當(dāng)前的時間以及任務(wù)ID號 填入該隊(duì)列的隊(duì)尾節(jié)點(diǎn)Wait_QUeUe數(shù)據(jù)結(jié)構(gòu)中。使用環(huán)形鏈表從而避免了動態(tài)的創(chuàng)造和 刪除節(jié)點(diǎn),新的節(jié)點(diǎn)加入只需要覆蓋老節(jié)點(diǎn)信息就可以。假設(shè)在t時,等待隊(duì)列中有m個節(jié) 點(diǎn),每個節(jié)點(diǎn)中記錄時間為、,t2,t3. . . tm,其中0彡m彡50。則在該時刻的該第i個子系 統(tǒng)的通信到達(dá)率均值為 在輸出隊(duì)列端,同樣的,本發(fā)明使用一個長度為50個節(jié)點(diǎn)的環(huán)形鏈表作為先進(jìn)先 出隊(duì)列來記錄顧客的輸出情況,每當(dāng)一個新的通信請求被處理完成,將當(dāng)前的時間以及任 務(wù)ID號填入該隊(duì)列的隊(duì)尾節(jié)點(diǎn)0UtpUt_QUeUe數(shù)據(jù)結(jié)構(gòu)中。使用環(huán)形鏈表從而避免了動態(tài) 的創(chuàng)造和刪除節(jié)點(diǎn),新的節(jié)點(diǎn)加入只需要覆蓋老節(jié)點(diǎn)信息就可以。假設(shè)在t時,輸出隊(duì)列中 有m個節(jié)點(diǎn),每個節(jié)點(diǎn)中記錄時間為、,t2,t3...tm,其中0彡m彡50。則在該時刻的該第 Tt
7i個子系統(tǒng)的通信輸出率均值為 得到每個通信通道的達(dá)到率以及輸出率即可計(jì)算出每個通信通道的通信延遲,從 而根據(jù)該通信延遲來選擇合適的通信通道進(jìn)行通信。
權(quán)利要求
一種硬件虛擬機(jī)中精簡模式切換的I/O虛擬化方法,該方法在具有如下結(jié)構(gòu)的系統(tǒng)上實(shí)現(xiàn)該系統(tǒng)具有Xen監(jiān)視器,該Xen監(jiān)視器作為虛擬機(jī)監(jiān)視器監(jiān)管其他運(yùn)行在實(shí)際物理機(jī)上的虛擬機(jī),該系統(tǒng)具有特權(quán)虛擬機(jī),該特權(quán)虛擬機(jī)擁有所有權(quán)限,運(yùn)行在特權(quán)模式下,可以直接訪問物理資源,該系統(tǒng)還擁有運(yùn)行在非特權(quán)模式下的硬件虛擬機(jī),非特權(quán)模式下的硬件虛擬機(jī)需要進(jìn)行模式切換,以切換到特權(quán)模式下進(jìn)行I/O通信,該方法的特征在于包括如下步驟1)Xen監(jiān)視器為特權(quán)虛擬機(jī)和硬件虛擬機(jī)之間分配n對大小不一的共享內(nèi)存,每對共享內(nèi)存中包含兩個大小一樣的共享內(nèi)存分別用于兩個方向上的I/O通信;Xen監(jiān)視器為每對共享內(nèi)存分配一個事件通道,用于在硬件虛擬機(jī)和特權(quán)虛擬機(jī)之間傳遞消息;每對共享內(nèi)存以及對應(yīng)的事件通道組成一個通信通道;2)在硬件虛擬機(jī)和特權(quán)虛擬機(jī)建立n階M/M/1排隊(duì)模型,該模型由n個M/M/1排隊(duì)子模型并列組成;每個M/M/1排隊(duì)子模型對應(yīng)一個通信通道,用于計(jì)算該通信通道的通信延遲;3)為每個通信通道兩端各建立一對記錄日志,記錄日志對包含兩個記錄排隊(duì)記錄和輸出記錄;排隊(duì)記錄用于記錄從該通信通道端口進(jìn)入排隊(duì)的通信任務(wù)以及其進(jìn)入通信通道的時間,輸出記錄用于記錄從該通信通道輸出的通信任務(wù)以及其輸出的時間;4)當(dāng)有I/O通信請求到達(dá)時,首先在應(yīng)用層對I/O通信請求進(jìn)行封裝,將其封裝成一個或者多個通信任務(wù);然后根據(jù)所述排隊(duì)記錄和輸出記錄計(jì)算出該通信通道的通信任務(wù)到達(dá)率,所述到達(dá)率為每秒鐘通信任務(wù)到達(dá)的個數(shù),以及通信任務(wù)的輸出率,所述輸出率為每秒鐘通信任務(wù)輸出的個數(shù),將到達(dá)率和輸出率參數(shù)傳給所述建立的n階M/M/1排隊(duì)模型從而計(jì)算出每個通信通道通信延遲,進(jìn)而選擇一個通信通道進(jìn)行通信,所述選擇通信通道按照如下規(guī)則從所有通信通道中選出滿足通信任務(wù)的通信延遲的通信通道,即通信通道的通信延遲不大于通信任務(wù)的通信延遲需求;然后再在選出的通信通道中選擇擁有最大通信延遲的通信通道進(jìn)行通信。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于n為3。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于排隊(duì)模型的階數(shù)和共享內(nèi)存的對數(shù)保持一致。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于計(jì)算第i個通信通道延遲使用公式 Ti = T^j來計(jì)算,其中\(zhòng) i為該通信通道的通信任務(wù)到達(dá)率,u i為該通信通道的通信任務(wù) 輸出率。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟4)中,I/O通信請求被封裝成通信 任務(wù),通信任務(wù)包含8個字節(jié)的頭部占1字節(jié)的type用來表示通信任務(wù)類型,占1字節(jié)的 DomainID表示該通信數(shù)據(jù)的源目的地,占2字節(jié)的Totallen表示該任務(wù)數(shù)據(jù)包的總長度, 占2字節(jié)的Datalen表示該任務(wù)數(shù)據(jù)包中數(shù)據(jù)的總長度,占2字節(jié)的Timestamp表示該任 務(wù)數(shù)據(jù)包創(chuàng)建的時間。
6.一種計(jì)算機(jī)程序,其執(zhí)行如權(quán)利要求1所述的方法。
全文摘要
一種硬件虛擬機(jī)的精簡模式切換I/O虛擬化方法。在運(yùn)行在特權(quán)模式下的特權(quán)虛擬機(jī)以及運(yùn)行在非特權(quán)模式下的硬件虛擬機(jī)之間建立n個通信通道,該通道包含兩個共享內(nèi)存空間用于兩個方向上的通信,一個事件通道用于發(fā)送事件信號。為每個通信通道的兩端設(shè)置排隊(duì)記錄和輸出記錄,用于計(jì)算該通信通道端口的通信任務(wù)到達(dá)率和輸出率。在硬件虛擬機(jī)和特權(quán)虛擬機(jī)中建立n階M/M/1排隊(duì)模型用于評估每個通信通道的通信延遲,從而選擇最合適的通信通道進(jìn)行通信,從而在保證通信延在應(yīng)用可以忍受的范圍內(nèi)最大程度的減少因?yàn)镮/O通信引起的模式切換次數(shù),從而提高硬件虛擬機(jī)的I/O性能。
文檔編號G06F13/20GK101859256SQ20091023791
公開日2010年10月13日 申請日期2009年11月25日 優(yōu)先權(quán)日2009年11月25日
發(fā)明者張會永, 張良, 白躍彬, 羅成 申請人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1