CN107038121B - 虚拟机的内存地址分配方法以及装置 - Google Patents

虚拟机的内存地址分配方法以及装置 Download PDF

Info

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
Application number
CN201610077690.XA
Other languages
English (en)
Other versions
CN107038121A (zh
Inventor
高蒙
刘昆鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610077690.XA priority Critical patent/CN107038121B/zh
Priority to PCT/CN2017/071928 priority patent/WO2017133493A1/zh
Priority to EP17746813.9A priority patent/EP3401792A4/en
Publication of CN107038121A publication Critical patent/CN107038121A/zh
Priority to US16/054,636 priority patent/US10817432B2/en
Application granted granted Critical
Publication of CN107038121B publication Critical patent/CN107038121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/073Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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中任一权利要求的方法。
CN201610077690.XA 2016-02-03 2016-02-03 虚拟机的内存地址分配方法以及装置 Active CN107038121B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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