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

嵌入式平臺(tái)下的設(shè)備虛擬化方法

文檔序號(hào):6440397閱讀:383來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):嵌入式平臺(tái)下的設(shè)備虛擬化方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式虛擬化領(lǐng)域,更具體地說(shuō),本發(fā)明涉及一種嵌入式平臺(tái)下的設(shè)備虛擬化方法。
背景技術(shù)
嵌入式虛擬化,也就是在手機(jī)、掌上游戲機(jī)、智能化控制系統(tǒng)等各種嵌入了處理器芯片的電子電器系統(tǒng)中應(yīng)用虛擬化技術(shù),達(dá)到一個(gè)硬件平臺(tái)上同時(shí)運(yùn)行多個(gè)操作系統(tǒng) (Operating System,簡(jiǎn)稱(chēng)OS)的目的,以實(shí)現(xiàn)用戶體驗(yàn)的多樣化,或核心應(yīng)用邏輯與絢麗操作界面的隔離,或?yàn)槭謾C(jī)支付等對(duì)安全要求較高的應(yīng)用提供一個(gè)隔離的計(jì)算環(huán)境。設(shè)備虛擬化是嵌入式虛擬化的核心研究?jī)?nèi)容之一,經(jīng)過(guò)多年的不斷研究,已提出了不少設(shè)備虛擬化方法,大體上有如下幾種,在服務(wù)器和個(gè)人電腦平臺(tái)上,有特權(quán)虛擬機(jī)主導(dǎo)型設(shè)備虛擬化、直接設(shè)備I/O和全設(shè)備模擬三種,在嵌入式平臺(tái)上有獨(dú)享使用,用戶態(tài)特權(quán)域主導(dǎo)型設(shè)備虛擬化兩種,本文只討論嵌入式虛擬化系統(tǒng)中的設(shè)備虛擬化方法,下文著重介紹嵌入式系統(tǒng)中的兩種設(shè)備虛擬化方法。(1)獨(dú)享使用設(shè)備以獨(dú)享方式分配給指定虛擬機(jī),即將某些設(shè)備指派給某個(gè)虛擬機(jī)單獨(dú)使用,直接訪問(wèn),而不允許其他虛擬機(jī)以任何方式訪問(wèn)這些設(shè)備,其他設(shè)備在多個(gè)虛擬機(jī)之間共享;( 用戶態(tài)特權(quán)域主導(dǎo)型設(shè)備虛擬化所有設(shè)備由運(yùn)行于用戶態(tài)的一個(gè)域負(fù)責(zé)管理分配,其他虛擬機(jī)通過(guò)該域完成設(shè)備1/0,目前,共有兩種實(shí)現(xiàn)方式,虛擬機(jī)型特權(quán)域和單獨(dú)服務(wù)例程型特權(quán)域①虛擬機(jī)型特權(quán)域,即將某一虛擬機(jī)作為特權(quán)域,其他虛擬機(jī)通過(guò)域間通信機(jī)制,如I/O環(huán)、共享內(nèi)存、零拷貝內(nèi)存映射等將設(shè)備訪問(wèn)請(qǐng)求發(fā)往特權(quán)虛擬機(jī),特權(quán)虛擬機(jī)將所有請(qǐng)求做排隊(duì)、合并等處理后代替其他虛擬機(jī)逐一直接訪問(wèn)硬件設(shè)備,并將結(jié)果仍通過(guò)域間通信機(jī)制發(fā)回各個(gè)虛擬機(jī)。②單獨(dú)服務(wù)例程型特權(quán)域,即將設(shè)備驅(qū)動(dòng)作為虛擬機(jī)管理器的一個(gè)用戶態(tài)服務(wù)例程運(yùn)行,其他虛擬機(jī)或虛擬機(jī)管理器應(yīng)用程序通過(guò)進(jìn)程間通信(Inter-process Communication,簡(jiǎn)稱(chēng)IPC)機(jī)制把設(shè)備訪問(wèn)請(qǐng)求發(fā)給該驅(qū)動(dòng)服務(wù)例程,驅(qū)動(dòng)服務(wù)例程在被調(diào)度執(zhí)行時(shí)代替其他虛擬機(jī)或虛擬機(jī)管理器應(yīng)用程序直接訪問(wèn)硬件設(shè)備,并將結(jié)果仍通過(guò)進(jìn)程間通信機(jī)制返回給各虛擬機(jī)或虛擬機(jī)管理器應(yīng)用程序。
比較以上設(shè)備虛擬化方法,直接設(shè)備1/0需要硬件支持,嵌入式系統(tǒng)設(shè)備不具備, 無(wú)法采用;全設(shè)備模擬,效率太低,也不適用;獨(dú)享使用設(shè)備虛擬化,沒(méi)有實(shí)現(xiàn)所有設(shè)備在多個(gè)虛擬機(jī)間真正地共享,只適用于特定領(lǐng)域;基于特權(quán)域的主導(dǎo)型設(shè)備共享,設(shè)備1/0路徑太長(zhǎng),且都是異步1/0,效率不高。嵌入式虛擬化系統(tǒng)需要的是一種更簡(jiǎn)單更便捷的設(shè)備虛擬化方法,而對(duì)1/0吞吐量、虛擬機(jī)動(dòng)態(tài)遷移等要求不高。發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式平臺(tái)下的設(shè)備虛擬化方法,在嵌入式系統(tǒng)硬件不支持直接設(shè)備1/0的情況下,其設(shè)備1/0路徑短,將同步設(shè)備1/0和異步設(shè)備1/0相結(jié)合, 效率較高,且真正實(shí)現(xiàn)了所有設(shè)備在虛擬機(jī)間共享,達(dá)到了設(shè)備虛擬化的效果。
本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的
一種嵌入式平臺(tái)下的設(shè)備虛擬化方法,包括以下步驟(1)將嵌入式平臺(tái)中所有設(shè)備的驅(qū)動(dòng)整合到虛擬機(jī)管理器中,并以超級(jí)調(diào)用的形式向虛擬機(jī)提供I/O接口,( 判斷設(shè)備的I/O是主動(dòng)設(shè)備I/O還是被動(dòng)設(shè)備1/0,如果設(shè)備的I/O是主動(dòng)設(shè)備1/0,則進(jìn)入步驟 (3),如果是被動(dòng)設(shè)備1/0,則進(jìn)入步驟(8),(3)判斷主動(dòng)設(shè)備I/O的數(shù)據(jù)量大小是否小于一預(yù)設(shè)的閾值,閾值等于4096字節(jié),如果小于閾值,則進(jìn)入步驟0),否則進(jìn)入步驟(6),(4) 在虛擬機(jī)管理器中為每個(gè)虛擬機(jī)開(kāi)放一段內(nèi)存區(qū)域,虛擬機(jī)以可讀可寫(xiě)的權(quán)限在用戶地址空間中建立到內(nèi)存區(qū)域的映射,(5)虛擬機(jī)管理器將數(shù)據(jù)寫(xiě)入用戶地址空間中所映射的內(nèi)存區(qū)域,虛擬機(jī)直接讀取內(nèi)存區(qū)域,以獲取數(shù)據(jù),(6)在虛擬機(jī)管理器中分配緩沖區(qū)并緩存數(shù)據(jù),通過(guò)事件通道通知虛擬機(jī)讀取緩存數(shù)據(jù),(7)虛擬機(jī)以超級(jí)調(diào)用的形式響應(yīng)通知,虛擬機(jī)管理器中的超級(jí)調(diào)用處理函數(shù)把緩存數(shù)據(jù)寫(xiě)入用戶地址空間,(8)判斷被動(dòng)設(shè)備I/O 是否容忍丟棄,若可以丟棄則進(jìn)入步驟(9),否則進(jìn)入步驟(11),(9)虛擬機(jī)在其設(shè)備驅(qū)動(dòng)初始化時(shí)為被動(dòng)設(shè)備分配一塊物理地址連續(xù)的內(nèi)存緩沖區(qū),并將內(nèi)存緩沖區(qū)的物理首地址注冊(cè)到虛擬機(jī)管理器中,(10)虛擬機(jī)將數(shù)據(jù)直接輸出到內(nèi)存緩沖區(qū)中,虛擬機(jī)管理器改變?yōu)楸粍?dòng)設(shè)備分配的內(nèi)存緩沖區(qū)的首地址,(11)判斷被動(dòng)設(shè)備是否正在使用,若是則進(jìn)入步驟(12),否則進(jìn)入步驟(15),(12)判斷虛擬機(jī)中是否存在其他進(jìn)程等待調(diào)度,若存在則進(jìn)入步驟(13),否則進(jìn)入步驟(14),(13)調(diào)度虛擬機(jī)的其他進(jìn)程,(14)調(diào)度其它虛擬機(jī),(15) 虛擬機(jī)管理器對(duì)被動(dòng)設(shè)備執(zhí)行加鎖操作,(16)虛擬機(jī)以超級(jí)調(diào)用的形式向虛擬機(jī)管理器發(fā)送I/O請(qǐng)求,(17)虛擬機(jī)管理器處理I/O請(qǐng)求,并對(duì)被動(dòng)設(shè)備執(zhí)行解鎖操作。
若設(shè)備是接收外部數(shù)據(jù)且通知虛擬機(jī)管理器讀取數(shù)據(jù),則設(shè)備的I/O是主動(dòng)設(shè)備 1/0,若設(shè)備是處理從虛擬機(jī)管理器發(fā)來(lái)的I/O請(qǐng)求,則設(shè)備的I/O為被動(dòng)設(shè)備I/O。
本發(fā)明的方法具有以下優(yōu)點(diǎn)
1、請(qǐng)求和回應(yīng)的傳輸路徑短移動(dòng)虛擬化平臺(tái)(Mobile Visualization Platform,簡(jiǎn)稱(chēng)MVP)、開(kāi)放核心實(shí)驗(yàn)室4 (Open Kernel Labs 4,簡(jiǎn)稱(chēng)0KL4)等虛擬化平臺(tái)下虛擬機(jī)的I/O請(qǐng)求并非由虛擬機(jī)管理器直接處理,在到達(dá)最終處理地點(diǎn)之前,一般都需要虛擬機(jī)管理器的介入。而基于虛擬機(jī)管理器的設(shè)備虛擬化方法,虛擬機(jī)管理器就是最終處理地點(diǎn);
2、不涉及地址空間切換,開(kāi)銷(xiāo)較小MVP、0KL4等虛擬化平臺(tái)中I/O請(qǐng)求的發(fā)出和執(zhí)行分在兩個(gè)域(如MVP中I/O請(qǐng)求由一個(gè)虛擬機(jī)發(fā)出,在另外一個(gè)虛擬機(jī)中執(zhí)行;0KL4 中的I/O請(qǐng)求由一個(gè)虛擬化或應(yīng)用程序發(fā)出,在驅(qū)動(dòng)服務(wù)例程中完成)中單獨(dú)實(shí)現(xiàn),完成一次I/O請(qǐng)求都涉及至少一次甚至更多次的內(nèi)存地址空間切換,一項(xiàng)研究表明地址空間切換越頻繁,Cache命中率就越低,開(kāi)銷(xiāo)就越大。在基于虛擬機(jī)管理器的設(shè)備虛擬化方法中, 虛擬機(jī)完全拷貝了虛擬機(jī)管理器的內(nèi)存地址空間映射,虛擬機(jī)管理器中的驅(qū)動(dòng)程序與虛擬機(jī)間的數(shù)據(jù)傳輸,可在不涉及內(nèi)存地址空間切換的情況下完成;
3、調(diào)用開(kāi)銷(xiāo)更小MVP、0KL4等虛擬化平臺(tái)完成一次I/O請(qǐng)求實(shí)際上是一種遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,簡(jiǎn)稱(chēng)RPC),而本發(fā)明只是一至兩次超級(jí)調(diào)用,效率更高。


圖1為本發(fā)明嵌入式平臺(tái)下的設(shè)備虛擬化方法的流程圖。
具體實(shí)施方式
首先對(duì)本發(fā)明中的技術(shù)用語(yǔ)進(jìn)行解釋和說(shuō)明
超級(jí)調(diào)用即Hypercall,指虛擬機(jī)管理器以軟中斷的方式提供給虛擬機(jī)的軟件接口,類(lèi)似于系統(tǒng)功能調(diào)用。
超級(jí)調(diào)用處理函數(shù)即虛擬機(jī)管理器中處理通過(guò)超級(jí)調(diào)用提出的請(qǐng)求的函數(shù)。
用戶地址空間用戶態(tài)的對(duì)象如進(jìn)程、運(yùn)行在用戶態(tài)的虛擬機(jī)的所有虛擬內(nèi)存所構(gòu)成的內(nèi)存區(qū)間。
事件通道即Event Channel,在Xen虛擬機(jī)管理器中使用的一種虛擬機(jī)管理器向虛擬機(jī)發(fā)送按鍵、網(wǎng)絡(luò)數(shù)據(jù)包達(dá)到等事件的機(jī)制,通過(guò)虛擬機(jī)管理器和虛擬機(jī)之間的共享內(nèi)存實(shí)現(xiàn),用來(lái)模擬虛擬機(jī)的硬件中斷。
加鎖在訪問(wèn)共享資源前設(shè)置的一個(gè)標(biāo)志,以標(biāo)記該共享資源正在被訪問(wèn),用于多對(duì)象訪問(wèn)共享資源之間的同步。
解鎖在訪問(wèn)共享資源后恢復(fù)的一個(gè)標(biāo)志,以標(biāo)記對(duì)該共享資源的訪問(wèn)已結(jié)束,用于多對(duì)象訪問(wèn)共享資源之間的同步。
虛擬機(jī)上下文虛擬機(jī)會(huì)通過(guò)超級(jí)調(diào)用、內(nèi)存頁(yè)錯(cuò)誤等異常機(jī)制陷入虛擬機(jī)管理器,模仿進(jìn)程以異常(如系統(tǒng)功能調(diào)用、內(nèi)存頁(yè)錯(cuò)誤等)的方式進(jìn)入操作系統(tǒng)內(nèi)核時(shí)系統(tǒng)所處的上下文叫進(jìn)程上下文,稱(chēng)此時(shí)的虛擬機(jī)管理器所處的上下文為虛擬機(jī)上下文。
被動(dòng)設(shè)備可接受虛擬機(jī)管理器輸出的設(shè)備。
主動(dòng)設(shè)備可向虛擬機(jī)管理器發(fā)送數(shù)據(jù)的設(shè)備。
如圖1所示,本發(fā)明的嵌入式平臺(tái)下的設(shè)備虛擬化方法包括以下步驟
(1)將嵌入式平臺(tái)中所有設(shè)備的驅(qū)動(dòng)整合到虛擬機(jī)管理器中,并以超級(jí)調(diào)用的形式向虛擬機(jī)提供I/O接口,所有虛擬機(jī)均通過(guò)虛擬機(jī)管理器進(jìn)行I/O ;
(2)判斷設(shè)備的I/O是主動(dòng)設(shè)備I/O還是被動(dòng)設(shè)備1/0,如果設(shè)備的I/O是主動(dòng)設(shè)備1/0,則進(jìn)入步驟(3),如果是被動(dòng)設(shè)備1/0,則進(jìn)入步驟(8),具體來(lái)說(shuō),若設(shè)備是接收外部數(shù)據(jù)且通知虛擬機(jī)管理器讀取數(shù)據(jù),即虛擬機(jī)從設(shè)備接收,則設(shè)備的I/O是主動(dòng)設(shè)備I/ 0,若設(shè)備是處理從虛擬機(jī)管理器發(fā)來(lái)的I/O請(qǐng)求,即虛擬機(jī)向設(shè)備發(fā)送數(shù)據(jù),則設(shè)備的I/O 為被動(dòng)設(shè)備I/O。如此劃分原因在于,虛擬機(jī)一般通過(guò)硬件中斷的方式從設(shè)備接收數(shù)據(jù),而通過(guò)超級(jí)調(diào)用的方式向設(shè)備發(fā)送數(shù)據(jù),接收數(shù)據(jù)的中斷處理函數(shù)運(yùn)行于中斷上下文,不宜訪問(wèn)用戶地址空間,即虛擬機(jī)的地址空間,接收到的數(shù)據(jù)不能直接寫(xiě)入虛擬機(jī)的內(nèi)存中;發(fā)送數(shù)據(jù)的超級(jí)調(diào)用處理函數(shù)處于類(lèi)似于進(jìn)程上下文的虛擬機(jī)上下文中,可訪問(wèn)用戶地址空間,即虛擬機(jī)的地址空間,將發(fā)送的數(shù)據(jù)可以直接從虛擬機(jī)內(nèi)存中獲??;
(3)判斷主動(dòng)設(shè)備I/O的數(shù)據(jù)量大小是否小于一預(yù)設(shè)的閾值,如果小于閾值,則進(jìn)入步驟G),否則進(jìn)入步驟(6),在本實(shí)施方式中,閾值等于4096字節(jié),在其它實(shí)施方式中, 閾值可以更小,這是一種較靈活的處理方法,數(shù)據(jù)量較小時(shí)可通過(guò)方便快捷的大小確定的共享內(nèi)存的方式傳輸,數(shù)據(jù)量較大時(shí)通過(guò)復(fù)雜緩慢的臨時(shí)緩存通知讀取的方式傳輸。數(shù)據(jù)量較小的主動(dòng)設(shè)備I/O如鍵盤(pán)、鼠標(biāo)、觸摸屏等產(chǎn)生的數(shù)據(jù),數(shù)據(jù)量,數(shù)據(jù)量較大的主動(dòng)設(shè)備I/O如網(wǎng)卡、錄音設(shè)備、攝像頭等產(chǎn)生的數(shù)據(jù);
(4)在虛擬機(jī)管理器中為每個(gè)虛擬機(jī)開(kāi)放一段內(nèi)存區(qū)域,內(nèi)存區(qū)域一般為一頁(yè),即4096字節(jié)大小,虛擬機(jī)以可讀可寫(xiě)的權(quán)限在自己的操作系統(tǒng)地址空間中建立到該內(nèi)存區(qū)域的映射,從而建立起虛擬機(jī)管理器和虛擬機(jī)之間的共享內(nèi)存;
(5)虛擬機(jī)管理器中的中斷處理程序,在讀取到設(shè)備中的數(shù)據(jù)后,將該數(shù)據(jù)寫(xiě)入剛建立好的共享內(nèi)存中,虛擬機(jī)根據(jù)虛擬機(jī)中的這塊內(nèi)存的地址,直接讀取這塊共享內(nèi)存,以獲取數(shù)據(jù);
(6)虛擬機(jī)管理器中的中斷處理程序,在讀取到設(shè)備中的數(shù)據(jù)后,臨時(shí)分配緩沖區(qū)緩存數(shù)據(jù),且通過(guò)事件通道通知虛擬機(jī)讀取該數(shù)據(jù);
(7)虛擬機(jī)以超級(jí)調(diào)用的形式響應(yīng)通知,由于超級(jí)調(diào)用的整個(gè)過(guò)程都處于虛擬機(jī)上下文中,虛擬機(jī)管理器中的超級(jí)調(diào)用處理函數(shù)直接把緩存數(shù)據(jù)寫(xiě)入虛擬機(jī)的地址空間, 且釋放緩存該數(shù)據(jù)的內(nèi)存;
(8)判斷被動(dòng)設(shè)備I/O是否容忍丟棄,若可以丟棄則進(jìn)入步驟(9),否則進(jìn)入步驟 (11),對(duì)于虛擬機(jī)的某些設(shè)備1/0,如圖形圖像顯示,只要求保證前臺(tái)虛擬機(jī)的顯示不丟失, 后臺(tái)虛擬機(jī)的前一次顯示輸出可以覆蓋后一次,即允許丟失;
(9)虛擬機(jī)在其設(shè)備驅(qū)動(dòng)初始化時(shí)為有被動(dòng)設(shè)備I/O的設(shè)備分配一塊物理地址連續(xù)的內(nèi)存緩沖區(qū),并將內(nèi)存緩沖區(qū)的物理首地址注冊(cè)到虛擬機(jī)管理器中;
(10)在進(jìn)行設(shè)備I/O時(shí),虛擬機(jī)將數(shù)據(jù)直接輸出到內(nèi)存緩沖區(qū)中,在該虛擬機(jī)被切換到前臺(tái)時(shí),虛擬機(jī)管理器更改設(shè)備直接內(nèi)存存取(Direct Memory Access,簡(jiǎn)稱(chēng)DMA)緩沖區(qū)的物理內(nèi)存首地址為該虛擬機(jī)預(yù)先注冊(cè)到虛擬機(jī)管理器的內(nèi)存緩沖區(qū)的首地址;
(11)判斷設(shè)備是否正在使用,若是則進(jìn)入步驟(12),否則進(jìn)入步驟(15);
(12)判斷虛擬機(jī)中是否存在其他進(jìn)程等待調(diào)度,若存在則進(jìn)入步驟(13),否則進(jìn)入步驟(14);
(13)調(diào)度虛擬機(jī)的其他進(jìn)程運(yùn)行;
(14)請(qǐng)求虛擬機(jī)管理器調(diào)度其它虛擬機(jī)運(yùn)行;
(15)虛擬機(jī)管理器對(duì)被動(dòng)設(shè)備執(zhí)行加鎖操作;
(16)虛擬機(jī)以超級(jí)調(diào)用的形式向虛擬機(jī)管理器發(fā)送I/O請(qǐng)求;
(17)虛擬機(jī)管理器處理I/O請(qǐng)求,并對(duì)被動(dòng)設(shè)備執(zhí)行解鎖操作。
權(quán)利要求
1.一種嵌入式平臺(tái)下的設(shè)備虛擬化方法,包括以下步驟(1)將嵌入式平臺(tái)中所有設(shè)備的驅(qū)動(dòng)整合到虛擬機(jī)管理器中,并以超級(jí)調(diào)用的形式向虛擬機(jī)提供I/O接口 ;(2)判斷所述設(shè)備的I/O是主動(dòng)設(shè)備I/O還是被動(dòng)設(shè)備1/0,如果所述設(shè)備的I/O是主動(dòng)設(shè)備1/0,則進(jìn)入步驟(3),如果是被動(dòng)設(shè)備1/0,則進(jìn)入步驟(8);(3)判斷所述主動(dòng)設(shè)備I/O的數(shù)據(jù)量大小是否小于一預(yù)設(shè)的閾值,所述閾值等于4096 字節(jié),如果小于所述閾值,則進(jìn)入步驟G),否則進(jìn)入步驟(6);(4)在所述虛擬機(jī)管理器中為每個(gè)虛擬機(jī)開(kāi)放一段內(nèi)存區(qū)域,所述虛擬機(jī)以可讀可寫(xiě)的權(quán)限在用戶地址空間中建立到所述內(nèi)存區(qū)域的映射;(5)所述虛擬機(jī)管理器將數(shù)據(jù)寫(xiě)入所述用戶地址空間中所映射的內(nèi)存區(qū)域,所述虛擬機(jī)直接讀取所述內(nèi)存區(qū)域,以獲取所述數(shù)據(jù);(6)在所述虛擬機(jī)管理器中分配緩沖區(qū)并緩存數(shù)據(jù),通過(guò)事件通道通知所述虛擬機(jī)讀取所述緩存數(shù)據(jù);(7)所述虛擬機(jī)以所述超級(jí)調(diào)用的形式響應(yīng)通知,所述虛擬機(jī)管理器中的超級(jí)調(diào)用處理函數(shù)把所述緩存數(shù)據(jù)寫(xiě)入所述用戶地址空間;(8)判斷所述被動(dòng)設(shè)備I/O是否容忍丟棄,若可以丟棄則進(jìn)入步驟(9),否則進(jìn)入步驟 (11);(9)所述虛擬機(jī)在其設(shè)備驅(qū)動(dòng)初始化時(shí)為被動(dòng)設(shè)備分配一塊物理地址連續(xù)的內(nèi)存緩沖區(qū),并將所述內(nèi)存緩沖區(qū)的物理首地址注冊(cè)到所述虛擬機(jī)管理器中;(10)所述虛擬機(jī)將數(shù)據(jù)直接輸出到所述內(nèi)存緩沖區(qū)中,所述虛擬機(jī)管理器改變?yōu)楸粍?dòng)設(shè)備分配的內(nèi)存緩沖區(qū)的首地址;(11)判斷所述被動(dòng)設(shè)備是否正在使用,若是則進(jìn)入步驟(12),否則進(jìn)入步驟(15);(12)判斷所述虛擬機(jī)中是否存在其他進(jìn)程等待調(diào)度,若存在則進(jìn)入步驟(13),否則進(jìn)入步驟(14);(13)調(diào)度所述虛擬機(jī)的其他進(jìn)程;(14)調(diào)度其它虛擬機(jī);(15)所述虛擬機(jī)管理器對(duì)所述被動(dòng)設(shè)備執(zhí)行加鎖操作;(16)所述虛擬機(jī)以超級(jí)調(diào)用的形式向所述虛擬機(jī)管理器發(fā)送I/O請(qǐng)求;(17)所述虛擬機(jī)管理器處理所述I/O請(qǐng)求,并對(duì)所述被動(dòng)設(shè)備執(zhí)行解鎖操作。
2.根據(jù)權(quán)利要求1所述的設(shè)備虛擬化方法,其特征在于,若所述設(shè)備是接收外部數(shù)據(jù)且通知所述虛擬機(jī)管理器讀取所述數(shù)據(jù),則所述設(shè)備的I/O是主動(dòng)設(shè)備1/0,若所述設(shè)備是處理從所述虛擬機(jī)管理器發(fā)來(lái)的I/O請(qǐng)求,則所述設(shè)備的I/O為被動(dòng)設(shè)備I/O。
全文摘要
本發(fā)明公開(kāi)了一種嵌入式平臺(tái)下的設(shè)備虛擬化方法,包括步驟將嵌入式平臺(tái)中所有設(shè)備的驅(qū)動(dòng)整合到虛擬機(jī)管理器中,并以超級(jí)調(diào)用的形式向虛擬機(jī)提供I/O接口,判斷設(shè)備的I/O是主動(dòng)設(shè)備I/O還是被動(dòng)設(shè)備I/O,若是主動(dòng)設(shè)備I/O,判斷主動(dòng)設(shè)備I/O的數(shù)據(jù)量大小是否小于一預(yù)設(shè)的閾值,若小于閾值,則在虛擬機(jī)管理器中為每個(gè)虛擬機(jī)開(kāi)放一段內(nèi)存區(qū)域,虛擬機(jī)以可讀可寫(xiě)的權(quán)限在用戶地址空間中建立到內(nèi)存區(qū)域的映射,虛擬機(jī)管理器將數(shù)據(jù)寫(xiě)入用戶地址空間中所映射的內(nèi)存區(qū)域,虛擬機(jī)直接讀取內(nèi)存區(qū)域,以獲取數(shù)據(jù)。本發(fā)明將同步設(shè)備I/O和異步設(shè)備I/O相結(jié)合,效率較高,且真正實(shí)現(xiàn)了所有設(shè)備在虛擬機(jī)間共享,達(dá)到了設(shè)備虛擬化的效果。
文檔編號(hào)G06F9/50GK102521015SQ20111040549
公開(kāi)日2012年6月27日 申請(qǐng)日期2011年12月8日 優(yōu)先權(quán)日2011年12月8日
發(fā)明者伍箴水, 李海峰, 段培, 羅晶, 邵志遠(yuǎn), 金海 申請(qǐng)人:華中科技大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
尚志市| 诏安县| 三亚市| 开鲁县| 拜城县| 定陶县| 金门县| 二连浩特市| 洱源县| 大关县| 蕲春县| 新巴尔虎左旗| 丹凤县| 湖北省| 教育| 江都市| 永寿县| 马关县| 阳城县| 台北市| 靖西县| 洛浦县| 津市市| 商南县| 古浪县| 福安市| 兴文县| 茌平县| 襄城县| 巩留县| 周宁县| 隆昌县| 新乡县| 尉犁县| 宿州市| 思南县| 延庆县| 绍兴市| 崇明县| 乐昌市| 渝北区|