對(duì)分布式IO資源全局的有效管理和使用

隨著近幾年網(wǎng)絡(luò)的不斷推進(jìn)發(fā)展,計(jì)算機(jī)協(xié)同作業(yè)成為提高計(jì)算機(jī)整體能力的重要途徑,合理的資源利用和相對(duì)應(yīng)的管理方案使計(jì)算機(jī)系統(tǒng)中大量的IO資源減輕了系統(tǒng)的運(yùn)行和維護(hù)成本,提高系統(tǒng)的可用性。同時(shí)結(jié)合當(dāng)前的各種軟件和硬件IO虛擬化技術(shù),在系統(tǒng)軟件層研究分布式IO資源訪問的技術(shù),實(shí)現(xiàn)客戶操作系統(tǒng)對(duì)分布式IO資源全局的有效管理和使用。

分布式I/O 資源虛擬化的具體實(shí)現(xiàn)系統(tǒng)主要由以下幾個(gè)子模塊構(gòu)成:

(1) 虛擬機(jī)退出和進(jìn)人模塊

虛擬機(jī)退出、進(jìn)人模塊就是保存處理器在根模式與非根模式之間轉(zhuǎn)換的制些處理器狀態(tài)信息。

(2) 指令解析模塊

主要功能是將客戶操作系統(tǒng)的1/0 設(shè)備訪問存指令按照一定規(guī)則解析并保存在固定數(shù)據(jù)結(jié)構(gòu)中。

(3)IO設(shè)備模型

主要功能是用軟件完全模擬物理設(shè)備,客戶操作系統(tǒng)可以向?qū)ξ锢碓O(shè)備訪問那樣訪問這些虛擬設(shè)備。同時(shí)10設(shè)備模型模塊還通過設(shè)備驅(qū)動(dòng)完成虛擬擬設(shè)備到真實(shí)物理設(shè)備的訪問過程。

客戶操作系統(tǒng)在主節(jié)點(diǎn)訪向設(shè)備處理器進(jìn)人根模式,經(jīng)過虛擬機(jī)退出模塊和指令解析模塊將需要模擬執(zhí)行的指令保存在ioreq 結(jié)構(gòu)中,然后主節(jié)點(diǎn)的1/0設(shè)備模型模塊對(duì)這個(gè)IO指令ioreq 結(jié)構(gòu)進(jìn)行模擬執(zhí)行,并且將指令返回的信息更新到ioreq結(jié)構(gòu)中,然后虛擬機(jī)進(jìn)人模塊將ioreq結(jié)構(gòu)中的信息更新客戶操作操作系統(tǒng)中,處理器進(jìn)人非根模式,客戶操作系統(tǒng)繼續(xù)運(yùn)行。

客戶操作系統(tǒng)在從節(jié)點(diǎn)發(fā)起設(shè)備訪問請(qǐng)求,系統(tǒng)分成二類設(shè)備請(qǐng)求進(jìn)行處理: 非訪存類10指令,訪存類1/O指令,DMA指令,下面介紹這三類指令的實(shí)現(xiàn)方式:

1.非訪存類I/O 指令訪問模式

非訪存類I/O 指令訪問模式采用指令傳輸、遠(yuǎn)程執(zhí)行、結(jié)果返回這種方式實(shí)現(xiàn)從節(jié)點(diǎn)對(duì)主節(jié)點(diǎn)虛擬設(shè)備I/O端口的訪問。 主節(jié)點(diǎn)接受到來自從節(jié)點(diǎn)的ioreq 請(qǐng)求,調(diào)用IO設(shè)備模型對(duì)此ioreg 進(jìn)行模擬執(zhí)行,將返回的數(shù)據(jù)寫到ioreq結(jié)構(gòu)中,同時(shí)將此ioreg 結(jié)構(gòu)發(fā)回請(qǐng)求節(jié)點(diǎn),請(qǐng)求節(jié)點(diǎn)接受到此ioreq結(jié)構(gòu)后,將此ioreq 結(jié)構(gòu)信息更新到客戶操作系統(tǒng)中,然后引起虛擬機(jī)進(jìn)人,此次從節(jié)點(diǎn)發(fā)起的非訪存類1O指令就執(zhí)行完成。

2. 訪存類1/O 指令訪問模式

因?yàn)橄到y(tǒng)中所有對(duì)于內(nèi)存的訪問均由DSM 統(tǒng)籌處理,所以訪存類1/O指令執(zhí)行時(shí)必須經(jīng)過DSM.從節(jié)點(diǎn)解析此訪存類I/O指令。發(fā)送DSM 請(qǐng)求,此請(qǐng)求主要是讓DSM將所要訪問的頁(yè)面定住(pin),防止DSM 將此頁(yè)面遷往其他節(jié)點(diǎn),或者其他節(jié)點(diǎn)的程序訪問此頁(yè)面。當(dāng)DSM 模塊pin住此頁(yè)面之后,就可以像主節(jié)點(diǎn)那樣訪問此MMIO內(nèi)存區(qū)域訪問完成之后需要unpin 此內(nèi)存區(qū)域。

3.DMA 指令訪問模式I/O指令

從節(jié)點(diǎn)發(fā)起一個(gè)IDE DMA 指令,主節(jié)點(diǎn)的跨節(jié)點(diǎn)1/0請(qǐng)求服務(wù)例程接收到這個(gè)DMA ioreq之后,調(diào)用主節(jié)點(diǎn)處理DMA ioreq 模塊進(jìn)行處理,然后IDE DMA 處理模塊被調(diào)用執(zhí)行。

IDEDMA處理模大方問I/O 設(shè)備模型,將主節(jié)點(diǎn)物理IDE硬盤的目標(biāo)數(shù)據(jù)拷貝到I/O設(shè)備模型的虛擬IDE硬盤DMA緩沖區(qū)中,然后將此緩沖區(qū)中的數(shù)據(jù)拷貝到客戶操作系統(tǒng)運(yùn)行的虛擬內(nèi)存的目標(biāo)區(qū)域中,此過程需要請(qǐng)求DSM 的pin 和unpin操作,同時(shí)發(fā)送此DMA ioreg 發(fā)送回請(qǐng)求節(jié)點(diǎn),更新CPU相關(guān)信息,隨后引起請(qǐng)求節(jié)點(diǎn)虛擬機(jī)進(jìn)人非根模式,結(jié)束此次跨節(jié)點(diǎn)的IDE DMA 指令操作,

與其他服務(wù)器中對(duì)分布式IO資源的管理方面相比,IO虛擬化技術(shù)實(shí)現(xiàn)成本低。運(yùn)用IO虛擬化技術(shù)和硬件虛擬化技術(shù)可以基于多主機(jī)的IO資源在系統(tǒng)軟件層構(gòu)件全局IO空間,客戶操作系統(tǒng)無需修改就能實(shí)現(xiàn)跨主機(jī)的分布式IO資源訪問和管理。

返回列表