CN111679921A - 内存共享方法、内存共享装置及终端设备 - Google Patents
内存共享方法、内存共享装置及终端设备 Download PDFInfo
- Publication number
- CN111679921A CN111679921A CN202010518867.1A CN202010518867A CN111679921A CN 111679921 A CN111679921 A CN 111679921A CN 202010518867 A CN202010518867 A CN 202010518867A CN 111679921 A CN111679921 A CN 111679921A
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual machine
- shared memory
- physical
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供的一种内存共享方法,包括:通过宿主机,向虚拟机发送第一共享内存的大小信息,所述第一共享内存位于所述宿主机中,所述宿主机和所述虚拟机位于同一终端设备中;根据所述第一共享内存的大小信息,在虚拟机中分配得到与所述第一共享内存大小相同的第一物理内存;建立所述第一物理内存与所述第一共享内存之间的第一映射关系;建立所述虚拟机中的第一目标进程的第一虚拟内存与所述第一物理内存之间的第二映射关系;根据所述第一映射关系和所述第二映射关系,通过所述第一目标进程访问所述第一共享内存。通过上述方法,可以提高从宿主机向虚拟机共享内存的处理效率。
Description
技术领域
本申请属于内存共享技术领域,尤其涉及内存共享方法、内存共享装置、终端设备及计算机可读存储介质。
背景技术
目前,虚拟机与宿主机之间的内存共享方式往往是需要在虚拟机中分配内存,然后通过分配的内存向宿主机进行内存共享。而在一些场景中,需要从宿主机向虚拟机共享数据,此时,往往是先在虚拟机分配内存,并将该分配的内存向宿主机共享,然后宿主机再将需要共享的数据拷贝到虚拟机共享的内存中,以使得虚拟机可以访问相应的共享数据。因此,从宿主机向虚拟机共享内存的方式较为繁琐,处理效率较低。
发明内容
本申请实施例提供了内存共享方法、内存共享装置、终端设备及计算机可读存储介质,可以提高从宿主机向虚拟机共享内存的处理效率。
第一方面,本申请实施例提供了一种内存共享方法,包括:
通过宿主机,向虚拟机发送第一共享内存的大小信息,上述第一共享内存位于上述宿主机中,上述宿主机和上述虚拟机位于同一终端设备中;
根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存;
建立上述第一物理内存与上述第一共享内存之间的第一映射关系;
建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系;
根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存。
第二方面,本申请实施例提供了一种内存共享装置,包括:
发送模块,用于通过宿主机,向虚拟机发送第一共享内存的大小信息,上述第一共享内存位于上述宿主机中,上述宿主机和上述虚拟机位于同一终端设备中;
分配模块,用于根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存;
第一映射模块,用于建立上述第一物理内存与上述第一共享内存之间的第一映射关系;
第二映射模块,用于建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系;
访问模块,用于根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器、显示器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,其特征在于,上述处理器执行上述计算机程序时实现如第一方面上述的内存共享方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如第一方面上述的内存共享方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中上述的内存共享方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,通过宿主机,向虚拟机发送第一共享内存的大小信息,从而根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存,并建立上述第一物理内存与上述第一共享内存之间的第一映射关系;从而可以根据宿主机中需要共享的内存的情况,在虚拟机中动态分配物理内存,并动态调整上述虚拟机与上述宿主机之间的物理内存的映射关系;进一步的,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系,并根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存,实现了宿主机向虚拟机中的应用的内存共享,而无需将上述宿主机中要共享的数据拷贝到虚拟机中,从而缩短处理时长以及减小虚拟机的性能损失,提高了从宿主机向虚拟机共享内存的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种内存共享方法的流程示意图;
图2是本申请一实施例提供的步骤S104的一种流程示意图;
图3是本申请一实施例提供的步骤S103的一种流程示意图;
图4是本申请一实施例提供的上述虚拟机和上述宿主机的一种信息交互示意图;
图5是本申请一实施例提供的一种内存共享装置的结构示意图;
图6是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的内存共享方法可以应用于服务器、台式电脑、手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
具体地,图1示出了本申请实施例提供的一种内存共享方法的流程图,该内存共享方法可以应用于终端设备。
该内存共享方法可以包括:
步骤S101,通过宿主机,向虚拟机发送第一共享内存的大小信息,上述第一共享内存位于上述宿主机中,上述宿主机和上述虚拟机位于同一终端设备中。
本申请实施例中,上述虚拟机为通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。因此,上述虚拟机为某一实体的终端设备中的一个软件系统。而该终端设备中还包含主机操作系统,此时,该主机操作系统即为相对于上述虚拟机的宿主机。通过不同的虚拟机软件所得到的虚拟机的具体软件构造、信息传输方式等等可以存在差异。本申请实施例中,上述虚拟机和上述宿主机的具体系统、软件构造、信息处理方式等在此不作限制。
本申请实施例中,上述宿主机可以通过预设后端驱动与上述虚拟机中的预设前端驱动进行信息传输,因此,可以通过上述预设后端驱动向虚拟机的预设前端驱动发送第一共享内存的大小信息。
需要说明的是,本申请实施例中,上述虚拟机可以有一个或多个。也即是说,在一种应用场景中,上述内存共享方法可以应用于具有多个虚拟机的终端设备,其中,该多个虚拟机可以根据上述内存共享方法,同时实现对上述宿主机中的同一个共享内存的访问。
步骤S102,根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存。
本申请实施例中,上述虚拟机可以包含虚拟机虚拟内存和虚拟机物理内存。然而,由于上述虚拟机本身由虚拟化技术构建得到,因此,上述虚拟机中的第一物理内存并非实际意义上的物理内存,而是在虚拟机的操作系统中所形成的物理内存,也称为客户机物理地址(Guest Physical Address,GPA)。在一些实施例中,上述虚拟机的物理内存空间可以被划分为多个固定大小的物理页,因此,上述第一物理内存可以表示为一个或多个虚拟机的物理页。
在一些实施例中,上述虚拟机可以包括用户态和内核态,其中,具体的,可以在上述内核态对应的内核线程中,执行分配与上述第一共享内存大小相同的第一物理内存的操作,以使得用户态中的程序不能随意操作内核的物理地址空间,具有一定的安全保护作用。
步骤S103,建立上述第一物理内存与上述第一共享内存之间的第一映射关系。
本申请实施例中,上述第一映射关系可以存储于诸如文本、表格等特定文件中。例如,在一些实施例中,所述第一映射关系可以存储于预设映射表中。上述预设映射表可以为存储于上述宿主机和/或上述虚拟机中,并可以为页表的形式进行存储。其中,上述预设映射表中可以保存有上述虚拟机的物理地址(Guest Physical Address,GPA)与上述宿主机的物理地址(Host Physical Address,HPA)之间的映射关系。具体的,在一些实施例中,上述预设映射表中可以保存有上述虚拟机的物理页与上述宿主机的物理页之间的映射关系。例如,对于虚拟机中的任一物理页,上述预设映射表中可以保存有该虚拟机的物理页的页号、映射到的宿主机的物理页的地址信息以及有效位等中的一个或多个。
在一些示例中,在构建虚拟机以及后续使用过程中,均可以在上述虚拟机中构建和维护上述预设映射表,以将上述虚拟机的物理地址映射到宿主机的物理地址,从而实现虚拟机的功能。因此,在一些情况下,在上述预设映射表中,可以预先存储有上述第一物理内存与上述宿主机中除上述第一共享内存之外的其他内存之间的映射关系,因此,本申请实施例中,可以在上述预设映射表中,清除上述第一物理内存与其他内存之间的映射关系之后,再构建上述第一物理内存与上述第一共享内存之间的第一映射关系。建立上述第一映射关系的具体方式可以根据上述预设映射表中关于上述第一物理内存的预先映射情况来具体确定。
本申请实施例中,通过维护上述预设映射表,可以建立上述虚拟机的第一物理内存与要共享的第一共享内存之间的映射关系,以使得上述虚拟机的内核态等可以通过上述预设映射表和上述第一物理内存,访问到上述第一共享内存,从而获取到上述宿主机向上述虚拟机共享的数据信息。
对于不同的处理器架构,建立上述第一映射关系的具体方式存在差异,在此不作限制。例如,对于Intel x86中央处理器指令集架构,可以通过拓展页表(Extended PageTable,EPT)建立上述第一映射关系,而对于AMD x86中央处理器指令集架构,可以通过嵌套页表(NPT,Nested Page Table)建立上述第一映射关系。
步骤S104,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系。
本申请实施例中,为了使得上述虚拟机中的第一目标进程可以访问上述第一共享内存,可以在该第一目标进程中,建立上述第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系。其中,在一些实施例中,该第一目标进程可以为运行在虚拟机的用户态的普通进程,此时,处于安全性等原因,该第一目标进程无法直接使用虚拟机的物理内存,因此,可以建立上述第二映射关系,以在后续根据上述第二映射关系,准确转换到与上述第一共享内存相对应的第一物理内存,再根据上述第一物理内存映射到上述宿主机中的上述第一共享内存。
本申请实施例中,上述第二映射关系的具体建立方式可以有多种。在一些示例中,上述第一目标进程可以为虚拟机的用户态中的普通进程,此时,可以通过虚拟机的前端驱动导出的用户态接口,执行文件mmap映射操作,以通过该mmap映射操作建立上述第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系。其中,上述mmap映射操作为一种内存映射文件的方法,用于将一个文件或者其它对象映射进内存。当然,在一些应用场景中,上述第一目标进程即可以在用户态中运行,也在可以在内核态中运行。
在一些实施例中,上述建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系,包括:
步骤S201,通过上述宿主机,向上述第一目标进程发送第二通知信息,其中,上述第二通知信息用于指示已完成上述第一映射关系的建立;
步骤S202,在接收到上述第二通知信息之后,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系。
本申请实施例中,可以在建立上述第一映射关系之后,可以通过上述宿主机通知上述第一目标进程虚拟机与宿主机之间的共享内存映射已经建立,即已建立上述第一映射关系,在此基础上,可以进一步建立虚拟机中的特定虚拟地址(即第一虚拟内存)与虚拟机的特定物理地址(即第一物理内存)之间映射,以使得第一目标进程能够根据上述第二映射关系,准确转换到与上述第一共享内存相对应的第一物理内存,再根据上述第一物理内存映射到上述宿主机中的上述第一共享内存。
本申请实施例中,上述宿主机可以通过预设接口(如后端驱动等)向上述虚拟机发送上述第二通知信息,此外,也可以通过上述虚拟机与上述宿主机之间的预先设置的网络连接,通过上述宿主机的特定应用向上述第一目标进程发送上述第二通知信息。
步骤S105,根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存。
本申请实施例中,上述第一目标进程可以根据上述第二映射关系,准确转换到与上述第一共享内存相对应的第一物理内存,再根据上述第一映射关系,将上述第一物理内存映射到上述宿主机中的上述第一共享内存,从而可以访问上述宿主机中的第一共享内存中的共享数据。
目前,上述宿主机向上述虚拟机共享内存的传统方式往往是先在虚拟机分配内存,并将该分配的内存向宿主机共享,然后宿主机再将需要共享的数据拷贝到虚拟机共享的内存中,以使得虚拟机可以访问相应的共享数据。在一些场景下,尤其在共享数据的数据量较大的情况下,数据的拷贝等操作会对虚拟机以及宿主机的性能造成较为明显的负面影响,导致相关性能损失较为严重,并且拷贝的耗时往往较长。
而本申请实施例中,通过建立第一映射关系和第二映射关系,可以在无需数据拷贝的情况下,实现了宿主机向虚拟机中的应用的内存共享,提高了从宿主机向虚拟机共享内存的处理效率;并且,在一些情况下,本申请实施例中的内存共享方法可以是根据实际应用需求动态建立,实现内存共享的机制较为灵活,无需预留内存。
在一些实施例中,上述根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存,包括:
根据上述第一共享内存的大小信息,在虚拟机中分配得到第一物理页,其中,上述第一物理页包括一个或多个虚拟机物理页,上述虚拟机物理页为通过对虚拟机物理内存预先划分而得到,上述第一物理页的大小与上述第一共享内存的大小相同;
上述建立上述第一物理内存与上述第一共享内存之间的第一映射关系,包括:
建立上述第一物理页与第二物理页之间的第一映射关系,其中,上述第二物理页为上述第一共享内存在上述宿主机中所对应的宿主机物理页。
本申请实施例中,上述虚拟机的物理内存空间可以被划分为多个虚拟机物理页,因此,上述第一物理内存可以表示为一个虚拟机物理页或者为多个虚拟机物理页的集合,即分配得到第一物理页;相对应的,上述宿主机的物理内存空间也可以被划分为多个宿主机物理页。此时,上述预设映射表中,可以记录上述第一物理页与上述第二物理页之间的第一映射关系。一般来说,各个虚拟机物理页的大小为固定大小,因此,可以通过按页对齐方式,分配得到第一物理页。在一些示例中,上述第一物理页、第二物理页可以分别通过相应的页号等信息来唯一地标识并进行索引。
在一些实施例中,上述建立上述第一物理内存与上述第一共享内存之间的第一映射关系,包括:
步骤S301,在预设映射表中,查找目标数据结构,其中,上述目标数据结构用于存储上述第一物理内存的映射信息;
步骤S302,若上述目标数据结构中存储有与上述第一物理内存相映射的第二物理内存的第一地址信息,则清除上述目标数据结构中的上述第一地址信息,其中,上述第二物理内存与上述第一共享内存不同;
步骤S303,将上述第一共享内存的第二地址信息填入上述目标数据结构中,以在上述目标数据结构中,建立上述第一物理内存与上述第一共享内存之间的第一映射关系。
本申请实施例中,上述预设映射表可以以特定的数据结构的形式进行存储。示例性的,上述预设映射表可以为页表。
在一些示例中,在构建虚拟机以及后续使用过程中,均可以在上述虚拟机中构建和维护上述预设映射表,以将上述虚拟机的物理地址映射到宿主机的物理地址,从而实现虚拟机的功能。因此,在一些情况下,在上述预设映射表中,可以预先存储有关于上述第一物理内存的映射信息。因此,可以根据上述第一物理内存的地址信息、索引号和/或上述第一物理内存所对应的物理页的页号等等上述第一物理内存的标识信息,在预设映射表中,查找目标数据结构。若上述目标数据结构中存储有与上述第一物理内存相映射的第二物理内存的第一地址信息,则清除上述目标数据结构中的上述第一地址信息,并将上述第一共享内存的第二地址信息填入上述目标数据结构中,以根据上述第一共享内存的第二地址信息更新上述预设映射表。
在一些实施例中,在根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存之后,还包括:
在上述访问结束之后,在虚拟机的第一目标进程中,解除上述第二映射关系;
在上述第二映射关系解除之后,通过上述虚拟机,向上述宿主机发送第一通知信息;
在通过上述宿主机接收到上述第一通知信息之后,在上述预设映射表的目标数据结构中,清除上述第二地址信息。
本申请实施例中,在上述访问结束之后,可以解除上述第二映射关系以及清除上述目标数据结构中的第二地址信息,以解除宿主机向上述虚拟机的内存共享。其中,示例性的,解除上述第二映射关系的方式为通过上述虚拟机的用户态接口发起unmap操作等,该unmap操作是Linux等系统中提供的一种解除内存映射的操作。上述第一目标进程可以通过上述虚拟机与上述宿主机之间的预先设置的网络连接,向上述宿主机发送上述第一通知信息。上述宿主机在接收到上述第一通知信息之后,可以通过上述宿主机的后端驱动对上述预设映射表再次进行更新,即清除上述目标数据结构中的第二地址信息,从而解除内存共享。
在一些实施例中,在上述预设映射表的目标数据结构中,清除上述第二地址信息之后,还包括:
若检测到预设指令,则判断第二共享内存的大小是否大于上述第一共享内存,其中,上述预设指令用于指示上述宿主机向上述虚拟机共享上述第二共享内存,上述第二共享内存位于上述宿主机中;
若上述第二共享内存的大小不大于上述第一共享内存,则将上述第二共享内存的第三地址信息填入上述目标数据结构中,以在目标数据结构中,建立上述第一物理内存与上述第二共享内存之间的第三映射关系;
在虚拟机的第二目标进程中,建立上述第二目标进程的第二虚拟内存与上述第一物理内存之间的第四映射关系;
根据上述第三映射关系和上述第四映射关系,通过上述第二目标进程访问上述第二共享内存。
本申请实施例中,在解除上述宿主机向上述虚拟机的关于上述第一共享内存的共享之后,若检测到上述宿主机重新向上述虚拟机共享内存数据,即向上述虚拟机共享上述第二共享内存,则可以根据上述第二共享内存与上述第一共享内存之间的相对大小来确定重新建立共享的方式。
其中,若上述第二共享内存的大小不大于上述第一共享内存,则由于上述目标数据结构中依然保存有关于上述第一物理内存的映射信息的目标数据结构,并且,该目标数据结构中的第二地址信息已被清除,因此,此时,将上述第二共享内存的第三地址信息填入上述目标数据结构中,即可实现在上述预设映射表中,建立上述第一物理内存与上述第二共享内存之间的第三映射关系,而无需向虚拟机发送第二共享内存的大小信息,并且无需在上述虚拟机中重新分配物理内存以用于重新建立共享,从而简化了建立共享的流程,缩短了处理时长,并且减少了对上述虚拟机中的物理内存的浪费。
在一些实施例中,若上述第二共享内存的大小大于上述第一共享内存,则所述第二共享内存的大小也大于第一物理内存。此时,可以认为所述虚拟机中所分配的第一物理内存不能满足所述第二共享内存的需求,无法通过所述目标数据结构重新建立内存共享。因此,可以根据本申请上述的内存共享方法实施例,执行通过宿主机,向所述虚拟机发送所述第二共享内存的大小信息的步骤以及后续步骤,以在虚拟机中重新分配物理内存来建立新的内存共享。
下面以一种具体示例,说明本申请实施例的一种具体实现方式。如图4所示,为本申请实施例中上述虚拟机和上述宿主机的一种信息交互示意图。
其中,上述宿主机中可以通过后端驱动向上述虚拟机中的前端驱动发送上述第一共享内存的大小信息。上述前端驱动将上述第一共享内存的大小信息发送至上述虚拟机的内核线程中,以使得上述虚拟机的内核线程根据上述第一共享内存的大小信息,分配得到与上述第一共享内存大小相同的第一物理页,其中,该第一物理页按页对齐,并且该第一物理页包含一个或多个虚拟机物理页。
进一步的,上述内核线程将包含上述第一物理页的地址信息的GPA数组通过前端驱动发送至上述宿主机的后端驱动,以指示上述宿主机对上述预设映射表的目标数据结构中预先存储的、上述第一物理页的原有映射所对应的第一地址信息进行清除,并填入上述共享内存所对应的宿主机物理页的第二地址信息,从而在上述预设映射表中,建立上述第一物理内存与上述第一共享内存之间的第一映射关系。
进一步的,上述宿主机中的第三目标进程通过预设网络连接通知上述虚拟机中的第一目标进程上述第一映射关系已建立,从而使得上述第一目标进程通过用户态接口,执行mmap映射操作,以建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系。在完成mmap映射操作之后,可以通过上述第一目标进程访问上述第一共享内存。
需要说明的是,上述示例仅为本实施例的一种示例性说明,而非对本实施例的限定。
本申请实施例中,通过宿主机,向虚拟机发送第一共享内存的大小信息,从而根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存,并建立上述第一物理内存与上述第一共享内存之间的第一映射关系;从而可以根据宿主机中需要共享的内存的情况,在虚拟机中动态分配物理内存,并动态调整上述虚拟机与上述宿主机之间的物理内存的映射关系;进一步的,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系,并根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存,实现了宿主机向虚拟机中的应用的内存共享,而无需将上述宿主机中要共享的数据拷贝到虚拟机中,从而缩短处理时长以及减小虚拟机的性能损失,提高了从宿主机向虚拟机共享内存的处理效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例上述的内存共享方法,图5示出了本申请实施例提供的一种内存共享装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图5,该内存共享装置5包括:
发送模块501,用于通过宿主机,向虚拟机发送第一共享内存的大小信息,上述第一共享内存位于上述宿主机中,上述宿主机和上述虚拟机位于同一终端设备中;
分配模块502,用于根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存;
第一映射模块503,用于建立上述第一物理内存与上述第一共享内存之间的第一映射关系;
第二映射模块504,用于建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系;
访问模块505,用于根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存。
可选的,上述分配模块502具体用于:
根据上述第一共享内存的大小信息,在虚拟机中分配得到第一物理页,其中,上述第一物理页包括一个或多个虚拟机物理页,上述虚拟机物理页为通过对虚拟机物理内存预先划分而得到,上述第一物理页的大小与上述第一共享内存的大小相同;
上述第一映射模块503具体用于:
建立上述第一物理页与第二物理页之间的第一映射关系,其中,上述第二物理页为上述第一共享内存在上述宿主机中所对应的宿主机物理页。
可选的,上述第一映射模块503包括:
查找单元,用于在预设映射表中,查找目标数据结构,其中,上述目标数据结构中存储有与上述第一物理内存相映射的第二物理内存的第一地址信息;
清除单元,用于清除上述目标数据结构中的上述第一地址信息;
填入单元,用于将上述第一共享内存的第二地址信息填入上述目标数据结构中,以在上述目标数据结构中,建立上述第一物理内存与上述第一共享内存之间的第一映射关系。
可选的,上述内存共享装置5还包括:
解除模块,用于在上述访问结束之后,在虚拟机的第一目标进程中,解除上述第二映射关系;
第二发送模块,用于在上述第二映射关系解除之后,通过上述虚拟机,向上述宿主机发送第一通知信息;
清除模块,用于在通过上述宿主机接收到上述第一通知信息之后,在上述预设映射表的目标数据结构中,清除上述第二地址信息。
可选的,上述内存共享装置5还包括:
判断模块,用于若检测到预设指令,则判断第二共享内存的大小是否大于上述第一共享内存,其中,上述预设指令用于指示上述宿主机向上述虚拟机共享上述第二共享内存,上述第二共享内存位于上述宿主机中;
处理模块,用于若上述第二共享内存的大小不大于上述第一共享内存,则将上述第二共享内存的第三地址信息填入上述目标数据结构中,以在目标数据结构中,建立上述第一物理内存与上述第二共享内存之间的第三映射关系;
第三映射模块,用于在虚拟机的第二目标进程中,建立上述第二目标进程的第二虚拟内存与上述第一物理内存之间的第四映射关系;
第二访问模块,用于根据上述第三映射关系和上述第四映射关系,通过上述第二目标进程访问上述第二共享内存。
可选的,上述第二映射模块504具体包括:
发送单元,用于通过上述宿主机,向上述第一目标进程发送第二通知信息,其中,上述第二通知信息用于指示已完成上述第一映射关系的建立;
映射单元,用于在接收到上述第二通知信息之后,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系。
本申请实施例中,通过宿主机,向虚拟机发送第一共享内存的大小信息,从而根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存,并建立上述第一物理内存与上述第一共享内存之间的第一映射关系;从而可以根据宿主机中需要共享的内存的情况,在虚拟机中动态分配物理内存,并动态调整上述虚拟机与上述宿主机之间的物理内存的映射关系;进一步的,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系,并根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存,实现了宿主机向虚拟机中的应用的内存共享,而无需将上述宿主机中要共享的数据拷贝到虚拟机中,从而缩短处理时长以及减小虚拟机的性能损失,提高了从宿主机向虚拟机共享内存的处理效率。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图6为本申请一实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)、存储器61以及存储在上述存储器61中并可在上述至少一个处理器60上运行的计算机程序62,上述处理器60执行上述计算机程序62时实现上述任意各个内存共享方法实施例中的步骤。
上述终端设备6可以是服务器、手机、可穿戴设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、桌上型计算机、笔记本、台式电脑以及掌上电脑等计算设备。该终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入设备、输出设备、网络接入设备等。其中,上述输入设备可以包括键盘、触控板、指纹采集传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风、摄像头等,输出设备可以包括显示器、扬声器等。
上述处理器60可以是中央处理单元(Central Processing Unit,CPU),该处理器60还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器61在一些实施例中可以是上述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。上述存储器61在另一些实施例中也可以是上述终端设备6的外部存储设备,例如上述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器61还可以既包括上述终端设备6的内部存储单元也包括外部存储设备。上述存储器61用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
另外,尽管未示出,上述终端设备6还可以包括网络连接模块,如蓝牙模块Wi-Fi模块、蜂窝网络模块等等,在此不再赘述。
本申请实施例中,上述处理器60执行上述计算机程序62以实现上述任意各个内存共享方法实施例中的步骤时,通过宿主机,向虚拟机发送第一共享内存的大小信息,从而根据上述第一共享内存的大小信息,在虚拟机中分配得到与上述第一共享内存大小相同的第一物理内存,并建立上述第一物理内存与上述第一共享内存之间的第一映射关系;从而可以根据宿主机中需要共享的内存的情况,在虚拟机中动态分配物理内存,并动态调整上述虚拟机与上述宿主机之间的物理内存的映射关系;进一步的,建立上述虚拟机中的第一目标进程的第一虚拟内存与上述第一物理内存之间的第二映射关系,并根据上述第一映射关系和上述第二映射关系,通过上述第一目标进程访问上述第一共享内存,实现了宿主机向虚拟机中的应用的内存共享,而无需将上述宿主机中要共享的数据拷贝到虚拟机中,从而缩短处理时长以及减小虚拟机的性能损失,提高了从宿主机向虚拟机共享内存的处理效率。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种内存共享方法,其特征在于,包括:
通过宿主机,向虚拟机发送第一共享内存的大小信息,所述第一共享内存位于所述宿主机中,所述宿主机和所述虚拟机位于同一终端设备中;
根据所述第一共享内存的大小信息,在虚拟机中分配得到与所述第一共享内存大小相同的第一物理内存;
建立所述第一物理内存与所述第一共享内存之间的第一映射关系;
建立所述虚拟机中的第一目标进程的第一虚拟内存与所述第一物理内存之间的第二映射关系;
根据所述第一映射关系和所述第二映射关系,通过所述第一目标进程访问所述第一共享内存。
2.如权利要求1所述的内存共享方法,其特征在于,所述根据所述第一共享内存的大小信息,在虚拟机中分配得到与所述第一共享内存大小相同的第一物理内存,包括:
根据所述第一共享内存的大小信息,在虚拟机中分配得到第一物理页,其中,所述第一物理页包括一个或多个虚拟机物理页,所述虚拟机物理页为通过对虚拟机物理内存预先划分而得到,所述第一物理页的大小与所述第一共享内存的大小相同;
所述建立所述第一物理内存与所述第一共享内存之间的第一映射关系,包括:
建立所述第一物理页与第二物理页之间的第一映射关系,其中,所述第二物理页为所述第一共享内存在所述宿主机中所对应的宿主机物理页。
3.如权利要求1所述的内存共享方法,其特征在于,所述建立所述第一物理内存与所述第一共享内存之间的第一映射关系,包括:
在预设映射表中,查找目标数据结构,其中,所述目标数据结构用于存储所述第一物理内存的映射信息;
若所述目标数据结构中存储有与所述第一物理内存相映射的第二物理内存的第一地址信息,则清除所述目标数据结构中的所述第一地址信息,其中,所述第二物理内存与所述第一共享内存不同;
将所述第一共享内存的第二地址信息填入所述目标数据结构中,以在所述目标数据结构中,建立所述第一物理内存与所述第一共享内存之间的第一映射关系。
4.如权利要求3所述的内存共享方法,其特征在于,在根据所述第一映射关系和所述第二映射关系,通过所述第一目标进程访问所述第一共享内存之后,还包括:
在所述访问结束之后,在虚拟机的第一目标进程中,解除所述第二映射关系;
在所述第二映射关系解除之后,通过所述虚拟机,向所述宿主机发送第一通知信息;
在通过所述宿主机接收到所述第一通知信息之后,在所述预设映射表的目标数据结构中,清除所述第二地址信息。
5.如权利要求4所述的内存共享方法,其特征在于,在所述预设映射表的目标数据结构中,清除所述第二地址信息之后,还包括:
若检测到预设指令,则判断第二共享内存的大小是否大于所述第一共享内存,其中,所述预设指令用于指示所述宿主机向所述虚拟机共享所述第二共享内存,所述第二共享内存位于所述宿主机中;
若所述第二共享内存的大小不大于所述第一共享内存,则将所述第二共享内存的第三地址信息填入所述目标数据结构中,以在目标数据结构中,建立所述第一物理内存与所述第二共享内存之间的第三映射关系;
在虚拟机的第二目标进程中,建立所述第二目标进程的第二虚拟内存与所述第一物理内存之间的第四映射关系;
根据所述第三映射关系和所述第四映射关系,通过所述第二目标进程访问所述第二共享内存。
6.如权利要求1至5任意一项所述的内存共享方法,其特征在于,所述建立所述虚拟机中的第一目标进程的第一虚拟内存与所述第一物理内存之间的第二映射关系,包括:
通过所述宿主机,向所述第一目标进程发送第二通知信息,其中,所述第二通知信息用于指示已完成所述第一映射关系的建立;
在接收到所述第二通知信息之后,建立所述虚拟机中的第一目标进程的第一虚拟内存与所述第一物理内存之间的第二映射关系。
7.一种内存共享装置,其特征在于,包括:
发送模块,用于通过宿主机,向虚拟机发送第一共享内存的大小信息,所述第一共享内存位于所述宿主机中,所述宿主机和所述虚拟机位于同一终端设备中;
分配模块,用于根据所述第一共享内存的大小信息,在虚拟机中分配得到与所述第一共享内存大小相同的第一物理内存;
第一映射模块,用于建立所述第一物理内存与所述第一共享内存之间的第一映射关系;
第二映射模块,用于建立所述虚拟机中的第一目标进程的第一虚拟内存与所述第一物理内存之间的第二映射关系;
访问模块,用于根据所述第一映射关系和所述第二映射关系,通过所述第一目标进程访问所述第一共享内存。
8.如权利要求7所述的内存共享装置,其特征在于,所述第一映射模块包括:
查找单元,用于在预设映射表中,查找目标数据结构,其中,所述目标数据结构中存储有与所述第一物理内存相映射的第二物理内存的第一地址信息;
清除单元,用于清除所述目标数据结构中的所述第一地址信息;
填入单元,用于将所述第一共享内存的第二地址信息填入所述目标数据结构中,以在所述目标数据结构中,建立所述第一物理内存与所述第一共享内存之间的第一映射关系。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的内存共享方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的内存共享方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010518867.1A CN111679921B (zh) | 2020-06-09 | 2020-06-09 | 内存共享方法、内存共享装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010518867.1A CN111679921B (zh) | 2020-06-09 | 2020-06-09 | 内存共享方法、内存共享装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111679921A true CN111679921A (zh) | 2020-09-18 |
CN111679921B CN111679921B (zh) | 2023-08-01 |
Family
ID=72454180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010518867.1A Active CN111679921B (zh) | 2020-06-09 | 2020-06-09 | 内存共享方法、内存共享装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111679921B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822266A (zh) * | 2021-01-05 | 2021-05-18 | 成都安思科技有限公司 | 一种基于内存共享的虚拟机内外通信方法 |
CN112860595A (zh) * | 2021-03-12 | 2021-05-28 | 湖南国科微电子股份有限公司 | Pci设备或pcie设备、数据存取方法及相关组件 |
CN113204407A (zh) * | 2021-04-22 | 2021-08-03 | 新华三大数据技术有限公司 | 一种内存超配管理方法及装置 |
CN113885904A (zh) * | 2021-09-02 | 2022-01-04 | 奇安信科技集团股份有限公司 | 系统升级方法、装置、电子设备及存储介质 |
CN114625481A (zh) * | 2022-03-22 | 2022-06-14 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
CN114785807A (zh) * | 2022-03-16 | 2022-07-22 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
WO2022193953A1 (zh) * | 2021-03-15 | 2022-09-22 | 北京字节跳动网络技术有限公司 | 一种内存共享的方法及装置 |
CN116126472A (zh) * | 2023-01-20 | 2023-05-16 | 北京麟卓信息科技有限公司 | 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法 |
WO2023193687A1 (zh) * | 2022-04-08 | 2023-10-12 | 科东(广州)软件科技有限公司 | 一种共享内存的访问方法、装置、设备和存储介质 |
WO2023230766A1 (zh) * | 2022-05-30 | 2023-12-07 | 华为技术有限公司 | 一种数据传输方法及虚拟化系统 |
WO2024088194A1 (zh) * | 2022-10-28 | 2024-05-02 | 华为技术有限公司 | 一种通信方法、装置和智能驾驶设备 |
WO2024183559A1 (zh) * | 2023-03-03 | 2024-09-12 | 杭州阿里云飞天信息技术有限公司 | 数据共享方法、设备、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499114B1 (en) * | 2010-09-30 | 2013-07-30 | Amazon Technologies, Inc. | Virtual machine memory page sharing system |
US20150134930A1 (en) * | 2013-11-09 | 2015-05-14 | Microsoft Corporation | Using Shared Virtual Memory Resources for Performing Memory-Mapping |
US20160239430A1 (en) * | 2015-02-12 | 2016-08-18 | Red Hat Israel, Ltd. | Local access dma with shared memory pool |
CN105975407A (zh) * | 2016-03-22 | 2016-09-28 | 华为技术有限公司 | 一种内存地址的映射方法及设备 |
CN107943596A (zh) * | 2016-10-12 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 进程通信方法、装置及系统 |
CN108932170A (zh) * | 2018-06-06 | 2018-12-04 | 华东师范大学 | 一种同驻虚拟机间高效共享内存文件系统的机制 |
-
2020
- 2020-06-09 CN CN202010518867.1A patent/CN111679921B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499114B1 (en) * | 2010-09-30 | 2013-07-30 | Amazon Technologies, Inc. | Virtual machine memory page sharing system |
US20150134930A1 (en) * | 2013-11-09 | 2015-05-14 | Microsoft Corporation | Using Shared Virtual Memory Resources for Performing Memory-Mapping |
US20160239430A1 (en) * | 2015-02-12 | 2016-08-18 | Red Hat Israel, Ltd. | Local access dma with shared memory pool |
CN105975407A (zh) * | 2016-03-22 | 2016-09-28 | 华为技术有限公司 | 一种内存地址的映射方法及设备 |
CN107943596A (zh) * | 2016-10-12 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 进程通信方法、装置及系统 |
CN108932170A (zh) * | 2018-06-06 | 2018-12-04 | 华东师范大学 | 一种同驻虚拟机间高效共享内存文件系统的机制 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822266A (zh) * | 2021-01-05 | 2021-05-18 | 成都安思科技有限公司 | 一种基于内存共享的虚拟机内外通信方法 |
CN112860595A (zh) * | 2021-03-12 | 2021-05-28 | 湖南国科微电子股份有限公司 | Pci设备或pcie设备、数据存取方法及相关组件 |
CN112860595B (zh) * | 2021-03-12 | 2022-10-14 | 湖南国科微电子股份有限公司 | Pci设备或pcie设备、数据存取方法及相关组件 |
WO2022193953A1 (zh) * | 2021-03-15 | 2022-09-22 | 北京字节跳动网络技术有限公司 | 一种内存共享的方法及装置 |
CN113204407A (zh) * | 2021-04-22 | 2021-08-03 | 新华三大数据技术有限公司 | 一种内存超配管理方法及装置 |
CN113204407B (zh) * | 2021-04-22 | 2024-01-09 | 新华三大数据技术有限公司 | 一种内存超配管理方法及装置 |
CN113885904A (zh) * | 2021-09-02 | 2022-01-04 | 奇安信科技集团股份有限公司 | 系统升级方法、装置、电子设备及存储介质 |
CN114785807A (zh) * | 2022-03-16 | 2022-07-22 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114625481A (zh) * | 2022-03-22 | 2022-06-14 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
CN114625481B (zh) * | 2022-03-22 | 2024-04-05 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
WO2023179508A1 (zh) * | 2022-03-22 | 2023-09-28 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
WO2023193687A1 (zh) * | 2022-04-08 | 2023-10-12 | 科东(广州)软件科技有限公司 | 一种共享内存的访问方法、装置、设备和存储介质 |
WO2023230766A1 (zh) * | 2022-05-30 | 2023-12-07 | 华为技术有限公司 | 一种数据传输方法及虚拟化系统 |
WO2024088194A1 (zh) * | 2022-10-28 | 2024-05-02 | 华为技术有限公司 | 一种通信方法、装置和智能驾驶设备 |
CN116126472B (zh) * | 2023-01-20 | 2023-06-09 | 北京麟卓信息科技有限公司 | 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法 |
CN116126472A (zh) * | 2023-01-20 | 2023-05-16 | 北京麟卓信息科技有限公司 | 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法 |
WO2024183559A1 (zh) * | 2023-03-03 | 2024-09-12 | 杭州阿里云飞天信息技术有限公司 | 数据共享方法、设备、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111679921B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111679921B (zh) | 内存共享方法、内存共享装置及终端设备 | |
CN113287286B (zh) | 通过rdma进行分布式存储节点中的输入/输出处理 | |
KR102077149B1 (ko) | 메모리 관리 방법 및 장치 | |
CN114625481B (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN107278292B (zh) | 一种虚拟机内存的映射方法、装置及数据传输设备 | |
CN114064302B (zh) | 一种进程间通信的方法及装置 | |
EP4134829B1 (en) | Page swapping method, storage system, and electronic device | |
CN114418828B (zh) | 显存管理方法、装置、设备、存储介质及程序产品 | |
CN113204407A (zh) | 一种内存超配管理方法及装置 | |
CN107003940B (zh) | 用于在非统一存储器架构中提供改进的延迟的系统和方法 | |
US8751724B2 (en) | Dynamic memory reconfiguration to delay performance overhead | |
CN116633900A (zh) | 逻辑地址分配方法、装置、电子设备及存储介质 | |
CN111708715B (zh) | 内存分配方法、内存分配装置及终端设备 | |
CN110383254B (zh) | 优化与网络节点相关联的内存映射 | |
US20050246502A1 (en) | Dynamic memory mapping | |
CN107111560B (zh) | 用于在非统一存储器架构中提供改进的延迟的系统和方法 | |
CN117632843A (zh) | 一种数据处理方法、装置、片上系统和电子设备 | |
US11429412B2 (en) | Guest protection from application code execution in kernel mode | |
US9892055B2 (en) | Embedded device and memory management method thereof | |
US10579516B2 (en) | Systems and methods for providing power-efficient file system operation to a non-volatile block memory | |
CN115396478B (zh) | 用户域与设备的通信方法、装置以及汽车 | |
CN112925758A (zh) | 生成压缩包的方法、装置及终端设备 | |
CN115718643A (zh) | 微内核操作系统中内存地址转换方法、装置、设备及介质 | |
CN117742957A (zh) | 内存分配方法、装置、电子设备和存储介质 | |
CN118227304A (zh) | 一种内存管理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |