保持系统重启前后数据一致性的方法及其系统与流程

文档序号:14135848阅读:556来源:国知局
保持系统重启前后数据一致性的方法及其系统与流程

本发明涉及数据存储技术领域,尤其涉及一种保持系统重启前后数据一致性的方法及其系统。



背景技术:

当前很多嵌入式产品都需要保存一些临时信息文件,或者定时把信息文件发送给远程服务器。这些临时文件的保存位置可能是非永久记忆存储器或者永久记忆存储器上。把信息文件保存在非永久记忆存储器上存在一些弊端,如果软件看门狗复位导致系统重启或者由于其他原因系统重启时这些信息文件会丢失。把信息文件保存在永久记忆存储器上也存在一些弊端,需要频繁擦写存储器件,从而缩短存储器件的使用寿命。为了解决以上弊端,有些嵌入式技术方案采用在系统初始化阶段,如在公开号为cn102193847a的中国专利公开文件,保留内存不会被纳入内存管理系统,然后通过直接操作未受系统管理的预留内存的物理地址进行信息存储,但这种方案存在操作的不灵活性,不方便对信息文件的操作。



技术实现要素:

本发明所要解决的技术问题是:提出一种保持系统重启前后数据一致性的方法及其系统,防止由于系统的原因导致文件丢失,且提高了对信息文件操作的灵活性。

为了解决上述技术问题,本发明采用的技术方案为:一种保持系统重启前后数据一致性的方法,包括:

将系统总物理内存划分为预设大小的预留物理内存和系统控制内存;

将系统控制内存的大小设置为内核引导参数;

将所述预留物理内存作为内存块设备,并编写对应的块设备驱动程序;

系统重新启动后,加载所述预留物理内存对应的块设备驱动程序;

若所述内存块设备未经格式化,则格式化所述内存块设备;

将所述内存块设备挂载到预设的目录。

本发明还涉及一种保持系统重启前后数据一致性的系统,包括:

划分模块,用于将系统总物理内存划分为预设大小的预留物理内存和系统控制内存;

设置模块,用于将系统控制内存的大小设置为内核引导参数;

编写模块,用于将所述预留物理内存作为内存块设备,并编写对应的块设备驱动程序;

加载模块,用于系统重新启动后,加载所述预留物理内存对应的块设备驱动程序;

格式化模块,用于,若所述内存块设备未经格式化,则格式化所述内存块设备;

挂载模块,用于将所述内存块设备挂载到预设的目录。

本发明的有益效果在于:通过设置预留物理内存,可以把一些临时有用信息安全地保存到内存上,而无需频繁擦除其他外部存储器件,既能提高系统的性能又能延长外部存储器件的使用寿命;同时,将预留物理内存对应的内存块设备挂载到指定目录,即在未受系统控制的内存块设备上建立文件系统,既可以把信息文件临时保存在易失性动态存储器上又可以在系统重启后保留上一次系统重启前的信息文件不丢失,且提高了对信息文件操作的灵活性;不仅适用于保存信息文件还适用于保存其他临时重要文件。

附图说明

图1为本发明一种保持系统重启前后数据一致性的方法流程图;

图2为本发明实施例一的方法流程图;

图3为本发明一种保持系统重启前后数据一致性的系统的结构示意图;

图4为本发明实施例二的系统结构示意图。

标号说明:

1、划分模块;2、设置模块;3、编写模块;4、加载模块;5、格式化模块;6、挂载模块;7、保存模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:设置预留物理内存,并挂载到预设的目录。

请参阅图1,一种保持系统重启前后数据一致性的方法,包括:

将系统总物理内存划分为预设大小的预留物理内存和系统控制内存;

将系统控制内存的大小设置为内核引导参数;

将所述预留物理内存作为内存块设备,并编写对应的块设备驱动程序;

系统重新启动后,加载所述预留物理内存对应的块设备驱动程序;

若所述内存块设备未经格式化,则格式化所述内存块设备;

将所述内存块设备挂载到预设的目录。

从上述描述可知,本发明的有益效果在于:通过设置预留物理内存,可以把一些临时有用信息安全地保存到内存上,而无需频繁擦除其他外部存储器件;可实现系统重启前后内存数据的一致性,且提高了对信息文件操作的灵活性。

进一步地,所述“将所述内存块设备挂载到预设的目录”之后,进一步包括:

将信息文件保存到所述预设的目录。

由上述描述可知,将信息文件保存到挂载目录,系统重启后,在挂载目录可以看到重启之前存在的完整文件。

进一步地,所述系统为linux系统。

请参照图3,本发明还提出一种保持系统重启前后数据一致性的系统,包括:

划分模块,用于将系统总物理内存划分为预设大小的预留物理内存和系统控制内存;

设置模块,用于将系统控制内存的大小设置为内核引导参数;

编写模块,用于将所述预留物理内存作为内存块设备,并编写对应的块设备驱动程序;

加载模块,用于系统重新启动后,加载所述预留物理内存对应的块设备驱动程序;

格式化模块,用于,若所述内存块设备未经格式化,则格式化所述内存块设备;

挂载模块,用于将所述内存块设备挂载到预设的目录。

进一步地,还包括:

保存模块,用于将信息文件保存到所述预设的目录。

进一步地,所述系统为linux系统。

实施例一

请参照图2,本发明的实施例一为:一种保持系统重启前后数据一致性的方法,可应用于linux系统,包括如下步骤:

s1:将系统总物理内存划分为预设大小的预留物理内存和系统控制内存;例如,假设系统总物理内存的大小为x,将预留物理内存的大小设为y,则系统控制内存的大小为z=x-y;预留物理内存则不受系统控制。

s2:将系统控制内存的大小设置为内核引导参数;具体地,可修改boot代码,在引导内核镜像时把系统控制内存的大小作为系统参数传递给内核,例如,设置mem=z。

s3:将所述预留物理内存作为内存块设备,并编写对应的块设备驱动程序;块设备驱动程序用于控制对应预留物理内存的内存块设备,提供内存块设备的操作接口。

s4:系统重新启动后,加载所述预留物理内存对应的块设备驱动程序。

s5:判断所述内存块设备是否已经格式化,若否,执行步骤s6。

s6:格式化所述内存块设备。若未经格式化,则说明是电源上电启动,此时预留内存块的内存数据为空,需要重新格式化预留内存块设备,否则说明非电源上电重启,无需格式化内存块设备。

s7:将所述内存块设备挂载到预设的目录;例如,挂载到/ram_log挂载点上。

s8:将信息文件保存到所述预设的目录;重新启动系统后,执行步骤s4。

在系统运行期间,如果重新启动系统,在系统重新启动之后只要重新加载未受系统控制的内存块设备的块设备驱动程序并挂载到指定目录,在挂载目录可以看到重启之前存在的完整文件,实现linux系统重启前后内存数据的一致性。

实施例二

请参照图4,本实施例是对应上述实施例的一种保持系统重启前后数据一致性的系统,包括:

划分模块1,用于将系统总物理内存划分为预设大小的预留物理内存和系统控制内存;

设置模块2,用于将系统控制内存的大小设置为内核引导参数;

编写模块3,用于将所述预留物理内存作为内存块设备,并编写对应的块设备驱动程序;

加载模块4,用于系统重新启动后,加载所述预留物理内存对应的块设备驱动程序;

格式化模块5,用于,若所述内存块设备未经格式化,则格式化所述内存块设备;

挂载模块6,用于将所述内存块设备挂载到预设的目录。

进一步地,还包括:

保存模块7,用于将信息文件保存到所述预设的目录。

进一步地,所述系统为linux系统。

综上所述,本发明提供的一种保持系统重启前后数据一致性的方法及其系统,通过设置预留物理内存,可以把一些临时有用信息安全地保存到内存上,而无需频繁擦除其他外部存储器件,既能提高系统的性能又能延长外部存储器件的使用寿命;同时,将预留物理内存对应的内存块设备挂载到指定目录,即在未受系统控制的内存块设备上建立文件系统,既可以把信息文件临时保存在易失性动态存储器上又可以在系统重启后保留上一次系统重启前的信息文件不丢失,且提高了对信息文件操作的灵活性;不仅适用于保存信息文件还适用于保存其他临时重要文件。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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