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

用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法、裝置和電子設(shè)備與流程

文檔序號(hào):12512722閱讀:270來(lái)源:國(guó)知局
用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法、裝置和電子設(shè)備與流程

本申請(qǐng)涉及虛擬化技術(shù)領(lǐng)域,特別涉及一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法、裝置和電子設(shè)備。



背景技術(shù):

Gralloc(Graphic Memory Allocator)是谷歌Google開(kāi)發(fā)的專為安卓Android顯示系統(tǒng)使用的一種共享內(nèi)存的管理模塊。該共享內(nèi)存特指一種物理地址連續(xù)、支持DMA(Direct Memory Access,直接內(nèi)存存取)設(shè)備直接訪問(wèn)的內(nèi)存區(qū)域,可以直接被GPU(Graphics Processing Unit,圖形處理器)、VPU(Visual Processing Unit,視覺(jué)處理單元)、相機(jī)Camera等硬件設(shè)備訪問(wèn),并且還支持作為OpenGL(Open Graphics Library,圖形程序接口)的紋理texture作渲染使用。

通過(guò)Gralloc可以使不同的模塊之間的內(nèi)存共享,并且該共享內(nèi)存支持DMA設(shè)備直接訪問(wèn),而不需要通過(guò)CPU(Central Processing Unit,中央處理器)拷貝和處理,大大降低了CPU的負(fù)載率,使CPU利用率和并行處理能力得到更大的提升。

隨著虛擬化技術(shù)的飛速發(fā)展,在虛擬化技術(shù)領(lǐng)域如何訪問(wèn)這種共享內(nèi)存成為亟待解決的問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)實(shí)施例提供了一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法、裝置和電子設(shè)備,主要用以實(shí)現(xiàn)多操作系統(tǒng)對(duì)共享內(nèi)存的訪問(wèn)。

第一方面,本申請(qǐng)實(shí)施例提供了一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法,所述方法包括:

在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;

在主操作系統(tǒng)中,通過(guò)共享內(nèi)存管理模塊Gralloc為所述客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向所述客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;

在客戶操作系統(tǒng)中,通過(guò)模擬處理器QEMU將所述索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至所述客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至所述軟件。

第二方面,本申請(qǐng)實(shí)施例提供了一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)裝置,所述裝置包括:

申請(qǐng)模塊,用于在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;

第一處理模塊,用于在主操作系統(tǒng)中,通過(guò)共享內(nèi)存管理模塊Gralloc為所述客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向所述客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;

第二處理模塊,用于在客戶操作系統(tǒng)中,通過(guò)模擬處理器QEMU將所述索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至所述客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至所述軟件。

第三方面,本申請(qǐng)實(shí)施例提供了一種電子設(shè)備,所述電子設(shè)備包括:

存儲(chǔ)器,一個(gè)或多個(gè)處理器;存儲(chǔ)器與處理器通過(guò)通信總線相連;處理器被配置為執(zhí)行存儲(chǔ)器中的指令;所述存儲(chǔ)介質(zhì)中存儲(chǔ)有用于執(zhí)行上述第一方面中各個(gè)步驟的指令。

第四方面,本申請(qǐng)實(shí)施例提供了一種與電子設(shè)備結(jié)合使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括內(nèi)嵌于計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于使所述電子設(shè)備執(zhí)行上述第一方面中各個(gè)步驟的指令。

有益效果如下:

本申請(qǐng)實(shí)施例中在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;在主操作系統(tǒng)中,通過(guò)Gralloc為客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;在客戶操作系統(tǒng)中,通過(guò)QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至軟件,實(shí)現(xiàn)了多操作系統(tǒng)對(duì)共享內(nèi)存的訪問(wèn)。

附圖說(shuō)明

下面將參照附圖描述本申請(qǐng)的具體實(shí)施例,其中:

圖1為本申請(qǐng)實(shí)施例中的一種應(yīng)用用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法的系統(tǒng)的結(jié)構(gòu)示意;

圖2為本申請(qǐng)實(shí)施例中的一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法的流程示意圖;

圖3為本申請(qǐng)實(shí)施例中的另一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法的流程示意圖;

圖4為本申請(qǐng)實(shí)施例中的一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)裝置的結(jié)構(gòu)示意圖;

圖5為本申請(qǐng)實(shí)施例中的一種電子設(shè)備的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本申請(qǐng)的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本申請(qǐng)的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說(shuō)明,顯然,所描述的實(shí)施例僅是本申請(qǐng)的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以互相結(jié)合。

申請(qǐng)人在申請(qǐng)過(guò)程中注意到:

Gralloc既可以使不同的模塊同時(shí)訪問(wèn)一塊內(nèi)存,并且該內(nèi)存的訪問(wèn)還支持DMA設(shè)備的直接訪問(wèn)而不需要通過(guò)CPU拷貝,大大降低了CPU的負(fù)載率,使CPU利用率和并行處理能力得到更大的提升。但是對(duì)于虛擬操作系統(tǒng),目前沒(méi)有將Gralloc虛擬化的可行方案。

基于此,本申請(qǐng)?zhí)峁┝艘环N用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法,在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;在主操作系統(tǒng)中,通過(guò)Gralloc為客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;在客戶操作系統(tǒng)中,通過(guò)QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至軟件,實(shí)現(xiàn)了多操作系統(tǒng)對(duì)共享內(nèi)存的訪問(wèn)。

本申請(qǐng)?zhí)峁┑囊环N用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法,應(yīng)用于圖1所示的系統(tǒng),該系統(tǒng)包括多個(gè)客戶操作系統(tǒng)101和一個(gè)主操作系統(tǒng)102。各客戶操作系統(tǒng)101均包括一個(gè)vGralloc和前端驅(qū)動(dòng)1011,主操作系統(tǒng)102包括后端驅(qū)動(dòng)1021、一個(gè)Gralloc1022、以及一個(gè)Gralloc服務(wù)端1023。

圖1所示的系統(tǒng)中任一客戶操作系統(tǒng)101在訪問(wèn)由所有客戶操作系統(tǒng)101和主操作系統(tǒng)102共享的物理連續(xù)的內(nèi)存時(shí),可按照如下流程實(shí)現(xiàn)。參見(jiàn)圖2,該流程為:

201,在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存。

其中,軟件為需要調(diào)用中央處理器直接訪問(wèn)內(nèi)存的軟件。例如,Camera Capture或者視頻軟編碼。

具體的,在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)發(fā)送共享內(nèi)存申請(qǐng)。

例如,任一客戶操作系統(tǒng)101在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),通過(guò)其包括的前端驅(qū)動(dòng)1011與后端驅(qū)動(dòng)1021之間的通信,向Gralloc服務(wù)端1023申請(qǐng)一塊共享內(nèi)存。

202,在主操作系統(tǒng)中,通過(guò)Gralloc為客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值。

具體的,主操作系統(tǒng)102通過(guò)后端驅(qū)動(dòng)1021接收到共享內(nèi)存申請(qǐng)后,請(qǐng)求Gralloc服務(wù)端1023調(diào)用Gralloc1022為該任一客戶操作系統(tǒng)1021分配一塊共享內(nèi)存子區(qū)域。主操作系統(tǒng)102通過(guò)前端驅(qū)動(dòng)1011與后端驅(qū)動(dòng)1021之間的通信,向該任一客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域?qū)?yīng)的索引值。

通過(guò)步驟201和步驟202為任一客戶操作系統(tǒng)101分配共享內(nèi)存子區(qū)域后,即實(shí)現(xiàn)Gralloc 1022的虛擬化。

203,在客戶操作系統(tǒng)中,通過(guò)QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至軟件。

具體的,任一客戶操作系統(tǒng)101將索引值發(fā)送給QEMU,QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射到任一客戶操作系統(tǒng)101,任一客戶操作系統(tǒng)101將映射子區(qū)域的地址返回至軟件。

例如,將共享內(nèi)存子區(qū)域通過(guò)QEMU映射到任一客戶操作系統(tǒng)101系統(tǒng)中,再通過(guò)任一客戶操作系統(tǒng)101的kernel將QEMU映射的共享內(nèi)存子區(qū)域再映射到任一客戶操作系統(tǒng)101的用戶空間中,任一客戶操作系統(tǒng)101將映射子區(qū)域的地址返回至軟件,從而通過(guò)任一客戶操作系統(tǒng)101中的軟件訪問(wèn)該地址對(duì)應(yīng)的映射子區(qū)域,進(jìn)而訪問(wèn)主操作系統(tǒng)102的共享內(nèi)存子區(qū)域。

以拍照流程為例,通過(guò)本實(shí)施例提供的方法進(jìn)行內(nèi)存訪問(wèn)的方法如下。參見(jiàn)圖3,任一客戶操作系統(tǒng)101為Guest,主操作系統(tǒng)102為Host。Guest中的Camera準(zhǔn)備拍照時(shí),通過(guò)Guest的前端驅(qū)動(dòng)與Host的后端驅(qū)動(dòng)之間的通信,向Host的Gralloc服務(wù)端申請(qǐng)一塊共享內(nèi)存。Guest通過(guò)前端驅(qū)動(dòng)與Host的后端驅(qū)動(dòng)之間的通信獲取該共享內(nèi)存子區(qū)域?qū)?yīng)的索引值。當(dāng)Camera拍照時(shí),先將索引值發(fā)送至Camera的主操作系統(tǒng),由Camera的主操作系統(tǒng)根據(jù)索引值找到對(duì)應(yīng)的共享內(nèi)存子區(qū)域,并由Camera設(shè)備通過(guò)DMA將拍照后的數(shù)據(jù)填充至本區(qū)域,然后在Guest端將該共享內(nèi)存子區(qū)域?qū)?yīng)的索引值發(fā)送至QEMU,QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射到Guest系統(tǒng)中,進(jìn)而鎖定對(duì)應(yīng)的共享內(nèi)存子區(qū)域。Guest將該共享內(nèi)存子區(qū)域映射到用戶空間后,Guest將映射子區(qū)域的地址返回至軟件,Guest中的Camera的軟件通過(guò)CPU將該共享內(nèi)存子區(qū)域的數(shù)據(jù)讀出并保存為照片文件。

有益效果:

本申請(qǐng)實(shí)施例中在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;在主操作系統(tǒng)中,通過(guò)Gralloc為客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;在客戶操作系統(tǒng)中,通過(guò)QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至軟件,實(shí)現(xiàn)了多操作系統(tǒng)對(duì)共享內(nèi)存的訪問(wèn)。

基于同一發(fā)明構(gòu)思,本實(shí)施例提供了一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)裝置,該用于多操作系統(tǒng)的內(nèi)存訪問(wèn)裝置解決問(wèn)題的原理與圖2所示的一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法相似,因此該用于多操作系統(tǒng)的內(nèi)存訪問(wèn)裝置的實(shí)施可以參見(jiàn)圖2所示的一種用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法的實(shí)施,重復(fù)之處不再贅述。

參見(jiàn)圖4,該用于多操作系統(tǒng)的內(nèi)存訪問(wèn)裝置包括:

申請(qǐng)模塊401,用于在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;

第一處理模塊402,用于在主操作系統(tǒng)中,通過(guò)共享內(nèi)存管理模塊Gralloc為客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;

第二處理模塊403,用于在客戶操作系統(tǒng)中,通過(guò)模擬處理器QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至軟件。

可選地,申請(qǐng)模塊401,用于在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)發(fā)送共享內(nèi)存申請(qǐng)。

可選地,軟件為需要調(diào)用中央處理器直接訪問(wèn)內(nèi)存的軟件。

有益效果:

本申請(qǐng)實(shí)施例中在客戶操作系統(tǒng)中,在監(jiān)測(cè)到軟件需要共享內(nèi)存時(shí),向主操作系統(tǒng)申請(qǐng)共享內(nèi)存;在主操作系統(tǒng)中,通過(guò)Gralloc為客戶操作系統(tǒng)分配一塊共享內(nèi)存子區(qū)域,向客戶操作系統(tǒng)返回共享內(nèi)存子區(qū)域的索引值;在客戶操作系統(tǒng)中,通過(guò)QEMU將索引值對(duì)應(yīng)的共享內(nèi)存子區(qū)域映射至客戶操作系統(tǒng)后,將映射子區(qū)域的地址返回至軟件,實(shí)現(xiàn)了多操作系統(tǒng)對(duì)共享內(nèi)存的訪問(wèn)。

再一方面,本申請(qǐng)實(shí)施例還提供了一種電子設(shè)備,參見(jiàn)圖5,電子設(shè)備包括:

存儲(chǔ)器501,一個(gè)或多個(gè)處理器502;存儲(chǔ)器與處理器通過(guò)通信總線相連;處理器被配置為執(zhí)行存儲(chǔ)器中的指令;所述存儲(chǔ)介質(zhì)中存儲(chǔ)有用于執(zhí)行上述的任一項(xiàng)所述的用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法中各個(gè)步驟的指令。

再一方面,本申請(qǐng)實(shí)施例還提供了一種與電子設(shè)備結(jié)合使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括內(nèi)嵌于計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于使所述電子設(shè)備執(zhí)行上述的任一項(xiàng)所述的用于多操作系統(tǒng)的內(nèi)存訪問(wèn)方法中各個(gè)步驟的指令。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
昌平区| 惠水县| 石楼县| 高邮市| 双桥区| 明光市| 方正县| 南丹县| 吴堡县| 乐安县| 桃园市| 句容市| 来凤县| 交口县| 突泉县| 阿尔山市| 从化市| 华容县| 西平县| 兴化市| 深圳市| 金昌市| 尤溪县| 泰来县| 宁强县| 威海市| 习水县| 运城市| 霞浦县| 湖北省| 永顺县| 常山县| 龙岩市| 阳信县| 衡山县| 杭锦旗| 鄂州市| 广宁县| 亳州市| 修文县| 台南市|