用于多操作系统的内存访问方法、装置和电子设备制造方法及图纸

技术编号:15529593 阅读:61 留言:0更新日期:2017-06-04 16:54
本申请提供了一种用于多操作系统的内存访问方法、装置和电子设备,该方法在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;在主操作系统中,通过Gralloc为客户操作系统分配一块共享内存子区域,向客户操作系统返回共享内存子区域的索引值;在客户操作系统中,通过QEMU将索引值对应的共享内存子区域映射至客户操作系统后,将映射子区域的地址返回至软件。该方法客户操作系统向主操作系统申请共享内存;主操作系统为客户操作系统分配一块共享内存子区域;在客户操作系统中,通过QEMU将索引值对应的共享内存子区域映射至客户操作系统后,将映射子区域的地址返回至软件,实现了多操作系统对共享内存的访问。

Memory access method, device and electronic device for multiple operating system

This application provides a method for multi operating system memory access method, device and electronic equipment, the method in the client operating system, software in monitoring shared memory, to the main operating system for shared memory; in the main operating system, through the Gralloc client operating system allocates a shared memory subsystem area is returned to the client operating system shared memory area index value; in the customer operating system, through the QEMU index memory sub region mapping to the customer operating system corresponding to the share, will return to the address mapping sub regional software. The client operating system shared memory to the main operating system application; the main operating system for the client operating system allocates a shared memory region; in the client operating system, through the QEMU index memory sub region mapping to the customer operating system corresponding to the sharing, mapping the sub area address is returned to the software implementation access to the shared memory of the operating system.

【技术实现步骤摘要】
【国外来华专利技术】用于多操作系统的内存访问方法、装置和电子设备
本申请涉及虚拟化
,特别涉及一种用于多操作系统的内存访问方法、装置和电子设备。
技术介绍
Gralloc(GraphicMemoryAllocator)是谷歌Google开发的专为安卓Android显示系统使用的一种共享内存的管理模块。该共享内存特指一种物理地址连续、支持DMA(DirectMemoryAccess,直接内存存取)设备直接访问的内存区域,可以直接被GPU(GraphicsProcessingUnit,图形处理器)、VPU(VisualProcessingUnit,视觉处理单元)、相机Camera等硬件设备访问,并且还支持作为OpenGL(OpenGraphicsLibrary,图形程序接口)的纹理texture作渲染使用。通过Gralloc可以使不同的模块之间的内存共享,并且该共享内存支持DMA设备直接访问,而不需要通过CPU(CentralProcessingUnit,中央处理器)拷贝和处理,大大降低了CPU的负载率,使CPU利用率和并行处理能力得到更大的提升。随着虚拟化技术的飞速发展,在虚拟化
如何访问这种共享内存成为亟待解决的问题。
技术实现思路
本申请实施例提供了一种用于多操作系统的内存访问方法、装置和电子设备,主要用以实现多操作系统对共享内存的访问。第一方面,本申请实施例提供了一种用于多操作系统的内存访问方法,所述方法包括:在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;在主操作系统中,通过共享内存管理模块Gralloc为所述客户操作系统分配一块共享内存子区域,向所述客户操作系统返回共享内存子区域的索引值;在客户操作系统中,通过模拟处理器QEMU将所述索引值对应的共享内存子区域映射至所述客户操作系统后,将映射子区域的地址返回至所述软件。第二方面,本申请实施例提供了一种用于多操作系统的内存访问装置,所述装置包括:申请模块,用于在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;第一处理模块,用于在主操作系统中,通过共享内存管理模块Gralloc为所述客户操作系统分配一块共享内存子区域,向所述客户操作系统返回共享内存子区域的索引值;第二处理模块,用于在客户操作系统中,通过模拟处理器QEMU将所述索引值对应的共享内存子区域映射至所述客户操作系统后,将映射子区域的地址返回至所述软件。第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:存储器,一个或多个处理器;存储器与处理器通过通信总线相连;处理器被配置为执行存储器中的指令;所述存储介质中存储有用于执行上述第一方面中各个步骤的指令。第四方面,本申请实施例提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行上述第一方面中各个步骤的指令。有益效果如下:本申请实施例中在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;在主操作系统中,通过Gralloc为客户操作系统分配一块共享内存子区域,向客户操作系统返回共享内存子区域的索引值;在客户操作系统中,通过QEMU将索引值对应的共享内存子区域映射至客户操作系统后,将映射子区域的地址返回至软件,实现了多操作系统对共享内存的访问。附图说明下面将参照附图描述本申请的具体实施例,其中:图1为本申请实施例中的一种应用用于多操作系统的内存访问方法的系统的结构示意;图2为本申请实施例中的一种用于多操作系统的内存访问方法的流程示意图;图3为本申请实施例中的另一种用于多操作系统的内存访问方法的流程示意图;图4为本申请实施例中的一种用于多操作系统的内存访问装置的结构示意图;图5为本申请实施例中的一种电子设备的结构示意图。具体实施方式为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以互相结合。申请人在申请过程中注意到:Gralloc既可以使不同的模块同时访问一块内存,并且该内存的访问还支持DMA设备的直接访问而不需要通过CPU拷贝,大大降低了CPU的负载率,使CPU利用率和并行处理能力得到更大的提升。但是对于虚拟操作系统,目前没有将Gralloc虚拟化的可行方案。基于此,本申请提供了一种用于多操作系统的内存访问方法,在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;在主操作系统中,通过Gralloc为客户操作系统分配一块共享内存子区域,向客户操作系统返回共享内存子区域的索引值;在客户操作系统中,通过QEMU将索引值对应的共享内存子区域映射至客户操作系统后,将映射子区域的地址返回至软件,实现了多操作系统对共享内存的访问。本申请提供的一种用于多操作系统的内存访问方法,应用于图1所示的系统,该系统包括多个客户操作系统101和一个主操作系统102。各客户操作系统101均包括一个vGralloc和前端驱动1011,主操作系统102包括后端驱动1021、一个Gralloc1022、以及一个Gralloc服务端1023。图1所示的系统中任一客户操作系统101在访问由所有客户操作系统101和主操作系统102共享的物理连续的内存时,可按照如下流程实现。参见图2,该流程为:201,在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存。其中,软件为需要调用中央处理器直接访问内存的软件。例如,CameraCapture或者视频软编码。具体的,在客户操作系统中,在监测到软件需要共享内存时,向主操作系统发送共享内存申请。例如,任一客户操作系统101在监测到软件需要共享内存时,通过其包括的前端驱动1011与后端驱动1021之间的通信,向Gralloc服务端1023申请一块共享内存。202,在主操作系统中,通过Gralloc为客户操作系统分配一块共享内存子区域,向客户操作系统返回共享内存子区域的索引值。具体的,主操作系统102通过后端驱动1021接收到共享内存申请后,请求Gralloc服务端1023调用Gralloc1022为该任一客户操作系统1021分配一块共享内存子区域。主操作系统102通过前端驱动1011与后端驱动1021之间的通信,向该任一客户操作系统返回共享内存子区域对应的索引值。通过步骤201和步骤202为任一客户操作系统101分配共享内存子区域后,即实现Gralloc1022的虚拟化。203,在客户操作系统中,通过QEMU将索引值对应的共享内存子区域映射至客户操作系统后,将映射子区域的地址返回至软件。具体的,任一客户操作系统101将索引值发送给QEMU,QEMU将索引值对应的共享内存子区域映射到任一客户操作系统101,任一客户操作系统101将映射子区域的地址返回至软件。例如,将共享内存子区域通过QEMU映射到任一客户操作系统101系统中,再通过任一客户操作系统101的kernel将QEMU映射的共享内存子区域再映射到任一客户操作系统101的用户空间中,任一客户操作系统101将映射子区域的地本文档来自技高网...
用于多操作系统的内存访问方法、装置和电子设备

【技术保护点】
一种用于多操作系统的内存访问方法,其特征在于,所述方法包括:在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;在主操作系统中,通过共享内存管理模块Gralloc为所述客户操作系统分配一块共享内存子区域,向所述客户操作系统返回共享内存子区域的索引值;在客户操作系统中,通过模拟处理器QEMU将所述索引值对应的共享内存子区域映射至所述客户操作系统后,将映射子区域的地址返回至所述软件。

【技术特征摘要】
【国外来华专利技术】1.一种用于多操作系统的内存访问方法,其特征在于,所述方法包括:在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;在主操作系统中,通过共享内存管理模块Gralloc为所述客户操作系统分配一块共享内存子区域,向所述客户操作系统返回共享内存子区域的索引值;在客户操作系统中,通过模拟处理器QEMU将所述索引值对应的共享内存子区域映射至所述客户操作系统后,将映射子区域的地址返回至所述软件。2.根据权利要求1所述的方法,其特征在于,所述在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存,包括:在客户操作系统中,在监测到软件需要共享内存时,向主操作系统发送共享内存申请。3.根据权利要求1所述的方法,其特征在于,所述软件为需要调用中央处理器直接访问内存的软件。4.一种用于多操作系统的内存访问装置,其特征在于,所述装置包括:申请模块,用于在客户操作系统中,在监测到软件需要共享内存时,向主操作系统申请共享内存;第一处理模块,用于在主操作系统中,通过共享内存...

【专利技术属性】
技术研发人员:孔祥晓
申请(专利权)人:深圳前海达闼云端智能科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1