System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机,尤其涉及一种内存虚拟化方法。
技术介绍
1、进阶精简指令集机器(advanced risc machines,arm)是一类微处理器,采用arm作为中央处理器是目前移动和嵌入式系统的主要选择,体现了arm架构的高能效。arm的流行,使得基于arm架构的内存虚拟化技术越来越重要。
2、目前,内存虚拟化利用基于linux内核的虚拟机(kernel-based virtualmachine,kvm),kvm主要应用于x86架构下,在x86架构下的kvm已成为linux内核的一个模块。
3、但是,与x86架构不同,arm架构并没有统一的硬件标准,arm市场的碎片化很严重,有许多不同的垂直集成的arm平台,都是非标准的硬件,这导致了arm架构下实现kvm虚拟化困难,容易出现系统不稳定的情况。
技术实现思路
1、本专利技术实施例提供一种内存虚拟化方法,能够在arm架构下实现kvm,并保证系统内核稳定运行。
2、第一方面,本专利技术实施例提供一种内存虚拟化方法,包括:
3、获取基于进阶精简指令集机器架构下的主机的物理内存地址;
4、基于待构建的虚拟机中的虚拟内存地址和所述主机的物理内存地址,构建影子页表;
5、基于所述影子页表,构建所述虚拟机与所述主机之间的内存共享页,所述内存共享页用于实现所述虚拟机的内存与所述主机的内存之间的切换;
6、基于所述主机的权利域,构建内存保护机制,所述内存保护
7、基于所述影子页表、内存共享页和内存保护机制,对所述虚拟机进行内存虚拟化。
8、在一个可以实现的实施方式中,所述构建影子页表,包括:
9、从所述主机的操作系统内核函数中获取内存页表的构建方法;
10、基于所述构建方法,建立所述虚拟机的虚拟内存地址与所述主机的物理内存地址之间的映射关系;
11、基于所述虚拟机的虚拟内存地址与所述主机的物理内存地址之间的映射关系,构建所述影子页表。
12、在一个可以实现的实施方式中,还包括:
13、将所述影子页表的页表映射机制配置为与客户页表的页表映射机制相同,所述客户页表用于记录所述虚拟机中的虚拟内存地址与所述虚拟机中的物理内存地址之间的映射关系。
14、在一个可以实现的实施方式中,所述基于所述影子页表,构建所述虚拟机与所述主机之间的内存共享页,包括:
15、在所述主机中确定第一内存地址;
16、在所述虚拟机中确定第二内存地址;
17、建立所述第一内存地址与共享地址的映射关系和所述第二内存地址与所述共享地址的映射关系;
18、基于所述第一内存地址与所述共享地址的映射关系和所述第二内存地址与所述共享地址的映射关系,创建所述内存共享页。
19、在一个可以实现的实施方式中,还包括:
20、将所述内存共享页配置为禁止所述虚拟机访问;
21、将所述内存共享页映射至所述虚拟机的目标内存地址,所述目标内存地址用于在所述虚拟机访问时获取所述内存共享页中的信息。
22、在一个可以实现的实施方式中,还包括:
23、在所述主机异常时,基于所述内存共享页,保存所述主机当前执行环境;
24、基于所述内存共享页,获取所述影子页表的物理基地址;
25、基于所述物理基地址和所述主机当前执行环境,切换至所述虚拟机的执行环境。
26、在一个可以实现的实施方式中,所述基于所述主机的权利域,构建内存保护机制,包括:
27、获取所述主机中的一级页表,所述一级页表用于记录所述虚拟机的虚拟内存与所述主机的物理内存的映射关系;
28、为所述一级页表的表项所描述的虚拟内存分配对应的权利域;
29、为每个权利域配置对应的访问模式,不同的权利域的访问模式不相同;
30、基于每个权利域的访问模式,构建所述内存保护机制。
31、在一个可以实现的实施方式中,所述内存保护机制包括如下至少一种:
32、对所述主机中应用程序的存储空间和所述虚拟机中的内存空间进行保护;
33、对所述虚拟机中操作系统的内核、所述虚拟机中应用程序的存储空间进行保护;
34、将所述虚拟机中各个用户进程之间的内存空间互相隔离。
35、在一个可以实现的实施方式中,还包括:
36、在所述虚拟内存地址中确定目标地址;
37、向所述目标地址中映射中断处理程序;
38、在发生中断时,在所述目标地址获取所述中断处理程序并处理所述中断。
39、在一个可以实现的实施方式中,还包括:
40、为所述虚拟机的操作系统和虚拟机监视器之间的内存映射i/o配置映射内存;
41、基于所述映射内存,通过所述虚拟机监视器,将所述中断发送至所述虚拟机的操作系统,所述中断为所述主机的硬件传送至所述虚拟机监视器的。
42、第二方面,本专利技术实施例提供了一种内存虚拟化装置,该装置包括:
43、地址获取模块,用于获取基于进阶精简指令集机器架构下的主机的物理内存地址。
44、页表构建模块,用于基于待构建的虚拟机中的虚拟内存地址和主机的物理内存地址,构建影子页表。
45、共享页构建模块,用于基于影子页表,构建虚拟机与主机之间的内存共享页,内存共享页用于实现虚拟机的内存与主机的内存之间的切换。
46、内存保护模块,用于基于主机的权利域,构建内存保护机制,内存保护机制用于隔离主机中虚拟机监控程序、虚拟机的操作系统内核与虚拟机中的应用程序和用户进程。
47、虚机构建模块,用于基于影子页表、内存共享页和内存保护机制,对所述虚拟机进行内存虚拟化。
48、第三方面,本专利技术实施例提供了一种电子设备,该设备包括:处理器以及存储有计算机程序指令的存储器,该处理器用于读取计算机程序指令以执行上述的方法。
49、第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被所述电子设备执行时实现如上所述的方法。
50、第五方面,本专利技术实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。
51、本专利技术实施例提供的内存虚拟化方法,通过创建影子页表和内存共享页,同时利用arm架构下主机的权利域,构建内存保护机制,可以实现在arm架构下的主机的kvm虚拟化。同时利用内存保护机制,隔离虚拟机监控程序、虚拟机操作系统内核与虚拟机中应用程序和用户进程,保证每个不同的操作系统的用户进程的影子页表都能保持独立互不干扰,从而提高了虚拟机系统内核的稳定性。
本文档来自技高网...【技术保护点】
1.一种内存虚拟化方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述构建影子页表,包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述影子页表,构建所述虚拟机与所述主机之间的内存共享页,包括:
5.根据权利要求4所述的方法,其特征在于,还包括:
6.根据权利要求4所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,所述基于所述主机的权利域,构建内存保护机制,包括:
8.根据权利要求7所述的方法,其特征在于,所述内存保护机制包括如下至少一种:
9.根据权利要求1-8中任一项所述的方法,其特征在于,还包括:
10.根据权利要求9所述的方法,其特征在于,还包括:
【技术特征摘要】
1.一种内存虚拟化方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述构建影子页表,包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述影子页表,构建所述虚拟机与所述主机之间的内存共享页,包括:
5.根据权利要求4所述的方法,其特征在于,还包括:
...
【专利技术属性】
技术研发人员:许锡明,王嘉,党戈,丁小波,梁小龙,李悦,邓建明,黄小邦,
申请(专利权)人:中移互联网有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。