一种内核内存镜像设计方法、装置、电子设备及存储介质与流程

文档序号:17762026发布日期:2019-05-24 21:46阅读:304来源:国知局
一种内核内存镜像设计方法、装置、电子设备及存储介质与流程

本发明涉及内存技术领域,具体涉及一种内核内存镜像设计方法、装置、电子设备及存储介质。



背景技术:

内存(memory)也被称为内存储器是计算机中的重要部件,其作用是用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据,计算机中的所有程序的运行都是在内存中进行的,内存故障会导致计算机数据永久丢失或系统宕机,从而给个人或企业带来无法估计的灾难,内存的性能直接关系到整个系统是否可以稳定运行,因此,所有计算机需要保证内存的可靠性。

目前常用的提高内核内存可靠性能的方法是采用内存镜像的方式,即在系统中同时存在两块或多块内存模块,内存镜像是将主数据和与主数据对应的冗余数据,分别放在不同的内存模组内,主数据存储的内存模组可以称为主内存,冗余数据存储的内存模组可以称为镜像内存,由处理器控制内存模块的读写操作,在读操作时采用某种纠错机制来选择正确的数据,一旦其中某个内存模块发生故障或者出现数据错误的情况,此时控制器就会将数据转移到内存镜像上,从这些内存镜像中选择正确的数据,有效防止了由于内存通道故障导致的数据丢失避免服务中断,提高系统的可靠性,保证计算机的稳定运行。

但是,现有技术方案在实现内存镜像时,需要程序运行前提是需要bios提供efi内存镜像属性描述;并且需要镜像区域占整个节点系统内存容量的10%以上。



技术实现要素:

针对现有的设计系统镜像时,需要程序运行前提是需要bios提供efi内存镜像属性描述并且需要镜像区域占整个节点系统内存容量的10%以上否则会影响系统性能的问题,本发明提供一种内存镜像设计方法及装置。

第一方面,本发明提供一种内核内存镜像设计方法,包括如下步骤:

内存管理区初始化过程中解析内存区域的属性并创建可移除区域;

判断当前内存区域是否具备镜像属性并将具备镜像属性的内存区域划归在normal,对于不具备镜像属性的区域划归为movable域;

在normal域里设置mirror镜像并对内核内存镜像区域进行处理。

进一步的,内存管理区初始化过程中解析内存区域的属性之前,包括:

为了不影响系统的性能,配置内核启动项kernelcore=mirror。

进一步的,内存管理区初始化过程中解析内存区域的属性并创建可移除区域中,解析内存区域的属性,包括:

判断是否配置内核启动项kernelcore=mirror,若是,设置全局变量mirrored_kernelcore=ture,具备镜像属性的内存区域划归在normal域;

若否,将不具备镜像属性的区域划归为movable域。

进一步的,内存管理区初始化过程中解析内存区域的属性并创建可移除区域中,创建可移除区域是通过扫描内存区域确定是否将非镜像区域的页框首地址记录在movable域中,具体流程包括:

s21:判断mirrored_kernelcore是否为真,若是,执行步骤s22,若否,执行步骤s27;

s22:遍历所有内存区域是否设置镜像属性,若是,执行步骤s23,若否,执步骤行s25;

s23:判断当前区域页框号是否小于设定阈值,若是,执行步骤s24,若否,执行步骤s25;

s24:设置设定阈值以下没有内核镜像标志;

s25:将当前的页框号赋值给zone_movable_pfn;

s26:根据扫描结果确定是否在日志中提示当前设定阈值内存配置镜像属性;

s27:结束。

进一步的,内核内存镜像区域进行处理,具体包括:

s31:逐个扫描当前域中的页框;

s32:判断mirrored_kernelcore是否配置并且判断当前区域是否为movable域,若是,执行步骤s33,若否执行步骤s36;

s33:遍历所有内存区域定位区域结束页框号大于当前页框的区域;

s34:判断当前页框是否比区域起始页框小并且当前区域为镜像区域,若是,执行步骤s35,若否,执行步骤s36;

s35:将区域结束页框号设置成当前页框号;

s36:判断扫描是否结束,若是,执行步骤s37,若否执行步骤s1;

s37:结束。

第二方面,本发明提供一种内核内存镜像设计装置,包括初始化模块、解析模块、创建模块、判断模块、区域划分模块和处理模块;

初始化模块,用于对内存管理区进行初始化;

解析模块,用于在内存管理区初始化过程中解析内存区域的属性;

创建模块,用于在内存管理区初始化过程中内核创建可移除区域;

判断模块,用于判断当前内存区域是否具备镜像属性;

区域划分模块,用于根据判断模块输出的结果将具备镜像属性的内存区域划归在normal,对于不具备镜像属性的区域划归为movable域;

处理模块,用于在normal域里设置mirror镜像并对内核内存镜像区域进行处理。

进一步的,该装置还包括配置模块,所述的配置模块,用于配置内核启动项kernelcore=mirror。

第三方面,本发明提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面所述的内核内存镜像设计方法。

第四方面,本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现第一方面所述一种内核内存镜像设计方法。

其中,第一方面所述的一种内核内存镜像设计方法,包括如下步骤:

内存管理区初始化过程中解析内存区域的属性并创建可移除区域;

判断当前内存区域是否具备镜像属性并将具备镜像属性的内存区域划归在normal,对于不具备镜像属性的区域划归为movable域;

在normal域里设置mirror镜像并对内核内存镜像区域进行处理。

进一步的,内存管理区初始化过程中解析内存区域的属性之前,包括:

为了不影响系统的性能,配置内核启动项kernelcore=mirror。

进一步的,内存管理区初始化过程中解析内存区域的属性并创建可移除区域中,解析内存区域的属性,包括:

判断是否配置内核启动项kernelcore=mirror,若是,设置全局变量mirrored_kernelcore=ture,具备镜像属性的内存区域划归在normal域;

若否,将不具备镜像属性的区域划归为movable域。

进一步的,内存管理区初始化过程中解析内存区域的属性并创建可移除区域中,创建可移除区域是通过扫描内存区域确定是否将非镜像区域的页框首地址记录在movable域中,具体流程包括:

s21:判断mirrored_kernelcore是否为真,若是,执行步骤s22,若否,执行步骤s27;

s22:遍历所有内存区域是否设置镜像属性,若是,执行步骤s23,若否,执步骤行s25;

s23:判断当前区域页框号是否小于设定阈值,若是,执行步骤s24,若否,执行步骤s25;

s24:设置设定阈值以下没有内核镜像标志;

s25:将当前的页框号赋值给zone_movable_pfn;

s26:根据扫描结果确定是否在日志中提示当前设定阈值内存配置镜像属性;

s27:结束。

进一步的,内核内存镜像区域进行处理,具体包括:

s31:逐个扫描当前域中的页框;

s32:判断mirrored_kernelcore是否配置并且判断当前区域是否为movable域,若是,执行步骤s33,若否执行步骤s36;

s33:遍历所有内存区域定位区域结束页框号大于当前页框的区域;

s34:判断当前页框是否比区域起始页框小并且当前区域为镜像区域,若是,执行步骤s35,若否,执行步骤s36;

s35:将区域结束页框号设置成当前页框号;

s36:判断扫描是否结束,若是,执行步骤s37,若否执行步骤s1;

s37:结束。

从以上技术方案可以看出,本发明具有以下优点:调整内核数据分配策略,保证内核数据分配在镜像区域,进一步提高操作系统内核的健壮性。

本方法属于内核常驻内存程序,启动内核初始化时执行,并且是顺序执行。保证了内核内存镜像的稳定性,避免使用程序异常引起的内核的异常造成内核镜像损坏,数据丢失。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为内核启动参数解析流程示意图;

图2为内核创建可移除区域流程示意图;

图3内核内存镜像区域处理流程示意图。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

实施例一

本发明提供一种内核内存镜像设计方法,包括如下步骤:

s1:内存管理区初始化过程中解析内存区域的属性并创建可移除区域;

需要说明的是,为了不影响系统的性能,在执行内存管理区初始化过程之前,配置内核启动项kernelcore=mirror;

本步骤中,解析内存区域的属性,也就是说内核启动参数解析的逻辑流程具体包括:

判断是否配置内核启动项kernelcore=mirror,若是,设置全局变量mirrored_kernelcore=ture,具备镜像属性的内存区域划归在normal域;

若否,将不具备镜像属性的区域划归为movable域。

内核在初始化内存管理区过程创建可移除区域的流程,主要目的是通过扫描内存区域确定是否将非镜像区域的页框首地址记录在movablezone中,其中,内核创建可移除区域的具体步骤包括:

s11:判断mirrored_kernelcore是否为真,若是,执行步骤s12,若否,执行步骤s17;

s12:遍历所有内存区域是否设置镜像属性,若是,执行步骤s13,若否,执步骤行s15;

s13:判断当前区域页框号是否小于设定阈值在这里设定阈值为4g,若是,执行步骤s14,若否,执行步骤s15;

s14:设置设定阈值以下没有内核镜像标志;

s15:将当前的页框号赋值给zone_movable_pfn;

s16:根据扫描结果确定是否在日志中提示当前设定阈值内存配置镜像属性;

s17:结束。

s2:判断当前内存区域是否具备镜像属性并将具备镜像属性的内存区域划归在normal,对于不具备镜像属性的区域划归为movable域;

s3:在normal域里设置mirror镜像并对内核内存镜像区域进行处理。

实施例二

本发明提供一种内核内存镜像设计方法,包括如下步骤:

s1:内存管理区初始化过程中解析内存区域的属性并创建可移除区域;

需要说明的是,为了不影响系统的性能,在执行内存管理区初始化过程之前,配置内核启动项kernelcore=mirror;

如图1所示,本步骤中,解析内存区域的属性,也就是说内核启动参数解析的逻辑流程具体包括:

判断是否配置内核启动项kernelcore=mirror,若是,设置全局变量mirrored_kernelcore=ture,具备镜像属性的内存区域划归在normal域;

若否,将不具备镜像属性的区域划归为movable域。

如图2所示,内核在初始化内存管理区过程创建可移除区域的流程,主要目的是通过扫描内存区域确定是否将非镜像区域的页框首地址记录在movablezone中,其中,内核创建可移除区域的具体步骤包括:

s11:判断mirrored_kernelcore是否为真,若是,执行步骤s12,若否,执行步骤s17;

s12:遍历所有内存区域是否设置镜像属性,若是,执行步骤s13,若否,执步骤行s15;

s13:判断当前区域页框号是否小于设定阈值,若是,执行步骤s14,若否,执行步骤s15;

s14:设置设定阈值以下没有内核镜像标志;

s15:将当前的页框号赋值给zone_movable_pfn;

s16:根据扫描结果确定是否在日志中提示当前设定阈值内存配置镜像属性;

s17:结束。

s2:判断当前内存区域是否具备镜像属性并将具备镜像属性的内存区域划归在normal,对于不具备镜像属性的区域划归为movable域;

s3:在normal域里设置mirror镜像并对内核内存镜像区域进行处理。

如图3所示,进一步需要说明的是,内核内存镜像区域进行处理,具体包括:

s31:逐个扫描当前域中的页框;

s32:判断mirrored_kernelcore是否配置并且判断当前区域是否为movable域,若是,执行步骤s33,若否执行步骤s36;

s33:遍历所有内存区域定位区域结束页框号大于当前页框的区域;

s34:判断当前页框是否比区域起始页框小并且当前区域为镜像区域,若是,执行步骤s35,若否,执行步骤s36;

s35:将区域结束页框号设置成当前页框号;

s36:判断扫描是否结束,若是,执行步骤s37,若否执行步骤s1;

s37:结束。

本方法为内核常驻内存程序,启动内核初始化时执行,并且是顺序执行。保证了内核内存镜像的稳定性,避免使用程序异常引起的内核的异常造成内核镜像损坏,数据丢失。

实施例三

本发明提供一种内核内存镜像设计装置,包括初始化模块、解析模块、创建模块、判断模块、区域划分模块和处理模块;

初始化模块,用于对内存管理区进行初始化;

解析模块,用于在内存管理区初始化过程中解析内存区域的属性;

创建模块,用于在内存管理区初始化过程中内核创建可移除区域;主要目的是通过扫描内存区域确定是否将非镜像区域的页框首地址记录在movablezone中;

判断模块,用于判断当前内存区域是否具备镜像属性;

区域划分模块,用于根据判断模块输出的结果将具备镜像属性的内存区域划归在normal,对于不具备镜像属性的区域划归为movable域;

处理模块,用于在normal域里设置mirror镜像并对内核内存镜像区域进行处理。

该装置还包括配置模块,所述的配置模块,用于配置内核启动项kernelcore=mirror。

本装置调整内核数据分配策略,保证内核数据分配在镜像区域,进一步提高操作系统内核的健壮性。

实施例四

本发明提供一种电子设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面所述的内核内存镜像设计方法。

本领域技术人员可以理解,该存储器可以用于存储处理器的执行指令,存储器可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器中的执行指令由处理器执行时,使得电子设备能够执行以下上述方法实施例中的部分或全部步骤。

实施例五

本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现第一方面所述一种内核内存镜像设计方法。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1