CN107038121B - 虚拟机的内存地址分配方法以及装置 - Google Patents
虚拟机的内存地址分配方法以及装置 Download PDFInfo
- Publication number
- CN107038121B CN107038121B CN201610077690.XA CN201610077690A CN107038121B CN 107038121 B CN107038121 B CN 107038121B CN 201610077690 A CN201610077690 A CN 201610077690A CN 107038121 B CN107038121 B CN 107038121B
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual memory
- address
- memory address
- memory area
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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/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
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种虚拟机的内存地址分配方法以及装置,虚拟机运行在宿主机上,宿主机包含包括有掉电保护的物理内存区域,虚拟机包括有掉电保护的虚拟内存区域,所述方法包括:宿主机确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域;宿主机从有掉电保护的物理内存区域为虚拟内存地址分配宿主机的物理内存地址。上述方法能够有效提高分配的效率。
Description
技术领域
本申请涉及内存领域,特别是涉及一种虚拟机的内存地址分配方法以及装置。
背景技术
在现有技术中,宿主机要为虚拟机有掉电保护需求的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,必须经过三次映射。首先,将有掉电保护的物理内存区域的物理内存地址映射为字符设备,然后,将字符设备再映射为外部设备互连总线(英文:Peripheral Component Interconnect,简称:PCI)设备,最后,将PCI设备映射到虚拟机的虚拟内存地址。但是,在这种方式下,必须经过三次映射才能实现为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址,但分配效率低下。
发明内容
本发明的目的在于提供了一种虚拟机的内存地址分配方法以及装置,能够提高为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。
第一方面,当虚拟机产生缺页中断时,宿主机确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域,并从有掉电保护的物理内存区域为虚拟机的虚拟内存地址分配宿主机的物理内存地址。
宿主机在确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域后,直接为虚拟机的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,提高了为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。
结合第一方面,在第一方面的第一种可能的实施方式中,所述宿主机存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,宿主机存储虚拟机的配置文件,虚拟机的配置文件中存储有虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述配置文件中的信息,确定所述虚拟内存地址属于所述有掉电保护的虚拟内存区域。
结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述宿主机和虚拟机的共享文件中存储有虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述共享文件中的信息,确定所述虚拟内存地址属于所述有掉电保护的虚拟内存区域。
在本实施方式中,共享文件是宿主机和虚拟机均可以访问的,所以,在宿主机确定虚拟内存区域地址为有掉电保护的虚拟内存区域的信息之后,虚拟机还可以根据自己的实际情况对虚拟内存区域地址为有掉电保护的虚拟内存区域的信息进行修改。
结合第一方面,在第一方面的第四种可能的实施方式中,宿主机预先存储所述有虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息,在虚拟机产生缺页中断时,宿主机根据产生缺页中断的虚拟内存地址查询所述信息,确定所述虚拟内存地址属于所述有掉电保护的虚拟内存区域。
结合第一方面至第四种可能的实施方式中的任意一种,在第一方面的第五种可能的实施方式中,所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:
所述宿主机建立所述虚拟内存地址与所述宿主机的物理内存地址的映射关系。
结合第一方面至第四种可能的实施方式中的任意一种,在第一方面的第六种可能的实施方式中,所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:
所述宿主机建立所述虚拟机的物理内存地址与所述宿主机的物理内存地址的映射关系;其中,所述虚拟内存地址映射到所述虚拟机的物理内存地址。
第二方面,本发明提供了一种宿主机,所述宿主机用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。其中一种实现方式,具体地,虚拟机运行在宿主机上,所述宿主机包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述宿主机包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。另一种实现方式,宿主机包括处理器和内存,虚拟机运行在所述宿主机上,所述宿主机的内存包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述处理器与所述内存通信,所述处理器用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。另一种实现方式,所述宿主机包括内存管理单元(英文:MemoryManagement Unit,简称:MMU)和内存,虚拟机运行在所述宿主机上,所述宿主机的内存包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述MMU与所述内存通信,所述MMU用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体的,本发明中的宿主机为服务器。
第三方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
附图说明
图1是本发明实施例的一种应用场景;
图2是本发明实施例提供的一种虚拟机的内存地址分配方法的流程图;
图3是本发明实施例提供的一种宿主机的结构示意图;
图4是本发明实施例提供的另一种宿主机的结构示意图;
图5是本发明实施例提供的又一种宿主机的结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细描述。
如图1所示,下面先对虚拟机的内存地址分配方法运行的环境进行描述。其中,虚拟机120运行在宿主机110上,宿主机110包括有掉电保护的物理内存区域111,虚拟机120包括有掉电保护的虚拟内存区域121。宿主机110可以是服务器、工作站、便携式电脑、台式电脑、平板电脑等。有掉电保护的物理内存区域111为宿主机110的物理内存中的部分或者全部,存储到有掉电保护的物理内存区域111的数据能够在在发生掉电时依然不丢失,具体可以通过备电设备将有掉电保护的物理内存区域111中的数据保存到非易失性设备中,或者本发明实施例中,有掉电保护的物理内存区域111是指提供该掉电保护的物理内存区域的内存设备为非易失性内存设备,发生掉电后该内存设备中的数据不丢失。有掉电保护的虚拟内存区域121为虚拟机120的虚拟内存中的部分或者全部,有掉电保护的虚拟内存区域121在分配宿主机110的物理内存地址时,将会分配有掉电保护的物理内存区域111的物理内存地址。
如图2所示,在步骤210中:当虚拟机产生缺页中断时,宿主机确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域,如果属于有掉电保护的虚拟内存区域,进入步骤220:宿主机从有掉电保护的物理内存区域为虚拟机的虚拟内存地址分配宿主机的物理内存地址;如果不属于有掉电保护的虚拟内存区域,进入步骤230:宿主机为虚拟机的虚拟内存地址从没有掉电保护的物理内存区域分配宿主机的物理内存地址。
本发明实施例中,宿主机在确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域后,直接为虚拟机的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,提高了为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。
在本发明的一具体实施例中,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:有掉电保护的虚拟内存区域的起始地址和长度。所以,宿主机可以根据有掉电保护的虚拟内存区域的起始地址和长度确定有掉电保护的虚拟内存区域的位置,并在虚拟机产生缺页中断时,宿主机将产生缺页中断的虚拟内存地址和有掉电保护的虚拟内存区域的位置进行比较,从而确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域。可以理解的是,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是有掉电保护的虚拟内存区域的起始地址和结束地址,或者,有掉电保护的虚拟内存区域的结束地址和长度等等。
在本发明的一具体实施例中,宿主机确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域的方法为:宿主机存储内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,当虚拟机产生缺页中断时,宿主机根据虚拟机申请的虚拟内存地址查询该信息,并根据该信息确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。
在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:在宿主机创建虚拟机时,宿主机在虚拟机的配置文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,虚拟机的配置文件为记录虚拟机的重要参数,如中央处理器(英文:Center Processing Unit,简称:CPU)参数、内存参数、硬盘参数等等的文件。当虚拟机产生缺页中断时,宿主机可以根据虚拟机的虚拟内存地址查询虚拟机的配置文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。
在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是:宿主机在共享文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,共享文件为宿主机和虚拟机均能访问的文件,可以是txt文件、word文件等等。当虚拟机产生缺页中断时,宿主机可以根据虚拟机的虚拟内存地址查询共享文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。
可以理解的是,由于共享文件是宿主机和虚拟机均可以访问的,所以,宿主机在共享文件中确定存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息之后,虚拟机还可以访问共享文件,并根据实际情况对共享文件中的虚拟内存区域地址为掉电保护的虚拟内存区域的信息进行修改。
在本发明的一具体实施例中,宿主机确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域的方法为:宿主机存储所述有虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息,当虚拟机产生缺页中断时,宿主机根据虚拟机申请的虚拟内存地址查询所述信息,确定虚拟机申请的虚拟内存地址为进程访问的虚拟内存地址。
在本发明的一具体实施例中,宿主机从有掉电保护的物理内存区域为虚拟机的虚拟内存地址分配宿主机的物理内存地址,具体包括:宿主机通过影子页表的方式建立虚拟内存地址与宿主机的物理内存地址的映射关系,或者,宿主机通过有扩展页表(英文:Extended Page Table,简称:EPT)的方式建立虚拟机的物理内存地址与宿主机的物理内存地址的映射关系,其中,虚拟内存地址映射到虚拟机的物理内存地址。
参阅图3,图3是本发明实施例提供的一种宿主机的结构示意图,虚拟机运行在宿主机上,所述宿主机包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述宿主机包括确定单元310和分配单元320。其中,
确定单元310,用于确定所述虚拟机产生缺页中断的虚拟内存地址属于所述有掉电保护的虚拟内存区域;
分配单元320,用于从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址。
本发明实施例中,确定单元310在确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域后,分配单元320直接为虚拟机的虚拟内存地址从有掉电保护的物理内存区域分配宿主机的物理内存地址,提高了为虚拟机有掉电保护需求的虚拟内存地址分配宿主机有掉电保护的物理内存地址的效率。
在本发明的一具体实施例中,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:有掉电保护的虚拟内存区域的起始地址和长度。所以,确定单元310可以根据有掉电保护的虚拟内存区域的起始地址和长度确定有掉电保护的虚拟内存区域的位置,并在虚拟机产生缺页中断时,确定单元310将产生缺页中断的虚拟内存地址和有掉电保护的虚拟内存区域的位置进行比较,从而确定虚拟机产生缺页中断的虚拟内存地址是否属于有掉电保护的虚拟内存区域。可以理解的是,虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是有掉电保护的虚拟内存区域的起始地址和结束地址,或者,有掉电保护的虚拟内存区域的结束地址和长度等等。
在本发明的一具体实施例中,确定单元310用于确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域为:宿主机存储内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息,当虚拟机产生缺页中断时,确定单元310根据虚拟机申请的虚拟内存地址查询该信息,并根据该信息确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。
在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息可以是:在宿主机创建虚拟机时,宿主机在虚拟机的配置文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,虚拟机的配置文件为记录虚拟机的重要参数,如中央处理器(英文:Center Processing Unit,简称:CPU)参数、内存参数、硬盘参数等等的文件。当虚拟机产生缺页中断时,确定单元310可以根据虚拟机的虚拟内存地址查询虚拟机的配置文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。
在具体实现中,宿主机内存储虚拟内存区域地址为有掉电保护的虚拟内存区域的信息还可以是:宿主机在共享文件中存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息。其中,共享文件为宿主机和虚拟机均能访问的文件,可以是txt文件、word文件等等。当虚拟机产生缺页中断时,确定单元310可以根据虚拟机的虚拟内存地址查询共享文件,确定虚拟机的虚拟内存地址是否属于有掉电保护的虚拟内存区域。
可以理解的是,由于共享文件是宿主机和虚拟机均可以访问的,所以,宿主机在共享文件中确定存储有虚拟内存区域地址为掉电保护的虚拟内存区域的信息之后,虚拟机还可以访问共享文件,并根据实际情况对共享文件中的虚拟内存区域地址为掉电保护的虚拟内存区域的信息进行修改。
在本发明的一具体实施例中,确定单元310用于确定虚拟机产生缺页中断的虚拟内存地址属于有掉电保护的虚拟内存区域为:宿主机存储所述有虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息,当虚拟机产生缺页中断时,确定单元310根据虚拟机申请的虚拟内存地址查询所述信息,确定虚拟机申请的虚拟内存地址为进程访问的虚拟内存地址。
在本发明的一具体实施例中,分配单元320用于从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:分配单元320通过影子页表的方式建立虚拟内存地址与宿主机的物理内存地址的映射关系,或者,分配单元320通过(英文:Extended Page Table,简称:EPT)页表的方式建立虚拟机的物理内存地址与宿主机的物理内存地址的映射关系;其中,虚拟内存地址映射到虚拟机的物理内存地址。
参阅图4,图4是本发明实施例提供的另一种宿主机的结构示意图,宿主机包括处理器410和内存420,虚拟机运行在所述宿主机上,所述宿主机的内存420包括有掉电保护的物理内存区域421,所述虚拟机包括有掉电保护的虚拟内存区域,所述处理器410与所述内存420通信,处理器410用于执行上述本发明实施例中的步骤。本领域技术人员可以理解,图4中示出的宿主机的结构并不构成对宿主机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
参阅图5,图5是本发明实施例提供的又一种宿主机的结构示意图,宿主机包括MMU510和内存520,虚拟机运行在所述宿主机上,所述宿主机的内存520包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域521,所述MMU510与所述内存520通信,MMU510用于执行上述本发明实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (18)
1.一种虚拟机的内存地址分配方法,其特征在于,虚拟机运行在宿主机上,所述宿主机包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述方法包括:
所述宿主机确定所述虚拟机产生缺页中断的虚拟内存地址是否属于所述有掉电保护的虚拟内存区域;
若是,则所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址;若否,则所述宿主机从没有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址。
2.根据权利要求1所述的方法,其特征在于,所述宿主机存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息;
所述宿主机确定所述虚拟机产生缺页中断的虚拟内存地址为属于所述有掉电保护的虚拟内存区域,具体包括:
所述宿主机根据所述虚拟内存地址查询所述信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
3.根据权利要求2所述的方法,其特征在于,所述虚拟机的配置文件中存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息;
所述宿主机根据所述虚拟内存地址查询所述信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域,具体包括:
所述宿主机根据所述虚拟内存地址查询所述虚拟机的配置文件,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
4.根据权利要求2所述的方法,其特征在于,所述宿主机和虚拟机的共享文件中存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息;
所述宿主机根据所述虚拟内存地址查询所述信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域,具体包括:
所述宿主机根据所述虚拟内存地址查询所述共享文件,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
5.根据权利要求2-4任一权利要求所述的方法,其特征在于,所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息具体为:所述有掉电保护的虚拟内存区域的起始地址以及长度,或者,所述有掉电保护的虚拟内存区域的起始地址和结束地址,或者,有掉电保护的虚拟内存区域的结束地址和长度。
6.根据权利要求1所述的方法,其特征在于,所述宿主机存储有所述虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息;
所述宿主机确定所述虚拟机产生缺页中断的虚拟内存地址属于所述有掉电保护的虚拟内存区域,具体包括:
所述宿主机根据所述虚拟内存地址查询所述信息,确定所述虚拟内存地址为所述进程访问的虚拟内存地址。
7.根据权利要求1-4、6任一所述的方法,其特征在于,所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:
所述宿主机建立所述虚拟内存地址与所述宿主机的物理内存地址的映射关系。
8.根据权利要求1-4、6任一所述的方法,其特征在于,所述宿主机从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址,具体包括:
所述宿主机建立所述虚拟机的物理内存地址与所述宿主机的物理内存地址的映射关系;其中,所述虚拟内存地址映射到所述虚拟机的物理内存地址。
9.一种宿主机,其特征在于,虚拟机运行在宿主机上,所述宿主机包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述宿主机包括:
确定单元,用于确定所述虚拟机产生缺页中断的虚拟内存地址是否属于所述有掉电保护的虚拟内存区域;
分配单元,用于若是,则从所述有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址;若否,则从没有掉电保护的物理内存区域为所述虚拟内存地址分配所述宿主机的物理内存地址。
10.根据权利要求9所述的宿主机,其特征在于,所述宿主机存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息;
所述确定单元,具体用于根据所述虚拟内存地址查询所述信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
11.根据权利要求10所述的宿主机,其特征在于,所述虚拟机的配置文件中存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息;
所述确定单元,具体用于根据所述虚拟内存地址查询所述虚拟机的配置文件中的信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
12.根据权利要求10所述的宿主机,其特征在于,所述宿主机和虚拟机的共享文件中存储有所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息;
所述确定单元,具体用于根据所述虚拟内存地址查询所述共享文件中的信息,确定所述虚拟内存地址为属于所述有掉电保护的虚拟内存区域。
13.根据权利要求10-12任一权利要求所述的宿主机,其特征在于,所述虚拟内存区域地址为有掉电保护的虚拟内存区域的信息具体为:所述有掉电保护的虚拟内存区域的起始地址以及长度,或者,所述有掉电保护的虚拟内存区域的起始地址和结束地址,或者,有掉电保护的虚拟内存区域的结束地址和长度。
14.根据权利要求9所述的宿主机,其特征在于,所述宿主机存储有所述虚拟机中的进程需要访问的有掉电保护的虚拟内存地址的信息;
所述确定单元,具体用于根据所述虚拟内存地址查询所述信息,确定所述虚拟内存地址为所述进程访问的虚拟内存地址。
15.根据权利要求9-12、14任一所述的宿主机,其特征在于,所述分配单元具体用于建立所述虚拟内存地址与所述宿主机的物理内存地址的映射关系。
16.根据权利要求9-12、14任一所述的宿主机,其特征在于,所述分配单元具体用于建立所述虚拟机的物理内存地址与所述宿主机的物理内存地址的映射关系;其中,所述虚拟内存地址映射到所述虚拟机的物理内存地址。
17.一种宿主机,其特征在于,宿主机包括处理器和内存,虚拟机运行在所述宿主机上,所述宿主机的内存包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述处理器与所述内存通信,所述处理器用于执行如权利要求1-8中任一权利要求的方法。
18.一种宿主机,其特征在于,所述宿主机包括内存管理单元MMU和内存,虚拟机运行在所述宿主机上,所述宿主机的内存包括有掉电保护的物理内存区域,所述虚拟机包括有掉电保护的虚拟内存区域,所述MMU与所述内存通信,所述MMU用于执行如权利要求1-8中任一权利要求的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610077690.XA CN107038121B (zh) | 2016-02-03 | 2016-02-03 | 虚拟机的内存地址分配方法以及装置 |
PCT/CN2017/071928 WO2017133493A1 (zh) | 2016-02-03 | 2017-01-20 | 虚拟机的内存地址分配方法以及装置 |
EP17746813.9A EP3401792A4 (en) | 2016-02-03 | 2017-01-20 | METHOD AND DEVICE FOR ASSIGNING A MEMORY ADDRESS OF A VIRTUAL MACHINE |
US16/054,636 US10817432B2 (en) | 2016-02-03 | 2018-08-03 | Memory address assignment method for virtual machine and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610077690.XA CN107038121B (zh) | 2016-02-03 | 2016-02-03 | 虚拟机的内存地址分配方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107038121A CN107038121A (zh) | 2017-08-11 |
CN107038121B true CN107038121B (zh) | 2020-11-17 |
Family
ID=59500948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610077690.XA Active CN107038121B (zh) | 2016-02-03 | 2016-02-03 | 虚拟机的内存地址分配方法以及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10817432B2 (zh) |
EP (1) | EP3401792A4 (zh) |
CN (1) | CN107038121B (zh) |
WO (1) | WO2017133493A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038121B (zh) * | 2016-02-03 | 2020-11-17 | 华为技术有限公司 | 虚拟机的内存地址分配方法以及装置 |
CN111158863B (zh) * | 2019-12-31 | 2024-03-08 | 龙芯中科技术股份有限公司 | 中断控制器的处理方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2256638A1 (en) * | 2009-05-22 | 2010-12-01 | Samsung Electronics Co., Ltd. | Memory apparatus and method therefor |
CN101937321A (zh) * | 2010-09-15 | 2011-01-05 | 中兴通讯股份有限公司 | 一种实现混合缓存的方法和装置 |
CN104750623A (zh) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | 一种内存虚拟化的方法及装置 |
CN105117285A (zh) * | 2015-09-09 | 2015-12-02 | 重庆大学 | 一种基于移动虚拟化系统的非易失性存储器调度优化方法 |
CN105159742A (zh) * | 2015-07-06 | 2015-12-16 | 北京星网锐捷网络技术有限公司 | 一种虚拟机pci设备透传方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296759B1 (en) * | 2006-03-31 | 2012-10-23 | Vmware, Inc. | Offloading operations to a replicate virtual machine |
US8095931B1 (en) * | 2006-04-27 | 2012-01-10 | Vmware, Inc. | Controlling memory conditions in a virtual machine |
CN100527098C (zh) * | 2007-11-27 | 2009-08-12 | 北京大学 | 一种虚拟机管理器的动态内存映射方法 |
US8745311B2 (en) * | 2008-03-31 | 2014-06-03 | Spansion Llc | Flash memory usability enhancements in main memory application |
US20120047313A1 (en) * | 2010-08-19 | 2012-02-23 | Microsoft Corporation | Hierarchical memory management in virtualized systems for non-volatile memory models |
KR101713051B1 (ko) * | 2010-11-29 | 2017-03-07 | 삼성전자주식회사 | 하이브리드 메모리 시스템, 및 그 관리 방법 |
CN102662869B (zh) * | 2012-04-01 | 2015-08-26 | 龙芯中科技术有限公司 | 虚拟机中的内存访问方法和装置及查找器 |
US9684529B2 (en) * | 2013-02-21 | 2017-06-20 | Red Hat Israel, Ltd. | Firmware and metadata migration across hypervisors based on supported capabilities |
CN107038121B (zh) * | 2016-02-03 | 2020-11-17 | 华为技术有限公司 | 虚拟机的内存地址分配方法以及装置 |
US10671542B2 (en) * | 2016-07-01 | 2020-06-02 | Intel Corporation | Application execution enclave memory method and apparatus |
US10761996B2 (en) * | 2018-09-28 | 2020-09-01 | Intel Corporation | Apparatus and method for secure memory access using trust domains |
-
2016
- 2016-02-03 CN CN201610077690.XA patent/CN107038121B/zh active Active
-
2017
- 2017-01-20 EP EP17746813.9A patent/EP3401792A4/en not_active Ceased
- 2017-01-20 WO PCT/CN2017/071928 patent/WO2017133493A1/zh active Application Filing
-
2018
- 2018-08-03 US US16/054,636 patent/US10817432B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2256638A1 (en) * | 2009-05-22 | 2010-12-01 | Samsung Electronics Co., Ltd. | Memory apparatus and method therefor |
CN101937321A (zh) * | 2010-09-15 | 2011-01-05 | 中兴通讯股份有限公司 | 一种实现混合缓存的方法和装置 |
CN104750623A (zh) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | 一种内存虚拟化的方法及装置 |
CN105159742A (zh) * | 2015-07-06 | 2015-12-16 | 北京星网锐捷网络技术有限公司 | 一种虚拟机pci设备透传方法和系统 |
CN105117285A (zh) * | 2015-09-09 | 2015-12-02 | 重庆大学 | 一种基于移动虚拟化系统的非易失性存储器调度优化方法 |
Also Published As
Publication number | Publication date |
---|---|
US10817432B2 (en) | 2020-10-27 |
US20180341595A1 (en) | 2018-11-29 |
EP3401792A4 (en) | 2019-01-23 |
EP3401792A1 (en) | 2018-11-14 |
CN107038121A (zh) | 2017-08-11 |
WO2017133493A1 (zh) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10157143B2 (en) | File access method and apparatus, and storage system | |
US10241550B2 (en) | Affinity aware parallel zeroing of memory in non-uniform memory access (NUMA) servers | |
US9584628B2 (en) | Zero-copy data transmission system | |
EP3757782A1 (en) | Data accessing method and apparatus, device and medium | |
US9715410B2 (en) | Protected virtual machine function access | |
US11106574B2 (en) | Memory allocation method, apparatus, electronic device, and computer storage medium | |
CN104794069A (zh) | 一种cpu中缓存的用户态分配方法和系统 | |
WO2016000470A1 (zh) | 一种内存控制方法和装置 | |
MX2021010589A (es) | Espacio de direccion virtual de anfitrion para almacenamiento de control de interfaz segura. | |
CN110990114A (zh) | 一种虚拟机资源分配方法、装置、设备及可读存储介质 | |
CN105335308A (zh) | 对存储设备的访问信息处理方法和装置、系统 | |
EP2940966B1 (en) | Data access system, memory sharing device, and data access method | |
US8751724B2 (en) | Dynamic memory reconfiguration to delay performance overhead | |
US20170018050A1 (en) | Communication between integrated graphics processing units | |
CN107038121B (zh) | 虚拟机的内存地址分配方法以及装置 | |
US8490207B2 (en) | Performing zero-copy sends in a networked file system with cryptographic signing | |
US9772776B2 (en) | Per-memory group swap device | |
US20180137045A1 (en) | Automatic memory management using a memory management unit | |
US11403213B2 (en) | Reducing fragmentation of computer memory | |
WO2016119618A1 (zh) | 一种远端内存分配方法、装置和系统 | |
WO2016206421A1 (zh) | 内存访问处理方法、装置和存储介质 | |
US20160373523A1 (en) | Profile management method and apparatus for running of virtual desktop in heterogeneous server | |
CN113849311B (zh) | 内存空间管理方法、装置、计算机设备和存储介质 | |
CN115562871A (zh) | 内存分配管理的方法和装置 | |
Lee et al. | Compressed and shared swap to extend available memory in virtualized consumer electronics |
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 |