CN102831069B - 内存处理方法、内存管理设备 - Google Patents
内存处理方法、内存管理设备 Download PDFInfo
- Publication number
- CN102831069B CN102831069B CN201210223006.6A CN201210223006A CN102831069B CN 102831069 B CN102831069 B CN 102831069B CN 201210223006 A CN201210223006 A CN 201210223006A CN 102831069 B CN102831069 B CN 102831069B
- Authority
- CN
- China
- Prior art keywords
- memory
- attribute
- memory pages
- pages
- page
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了内存处理方法、内存管理设备,该方法包括:内存管理设备接收内存转储请求,所述内存转储请求中包含进程标识,所述进程标识对应的进程的各内存页面为所需转储的各内存页面;根据所述进程标识,查询进程页表,获取所述进程标识对应的进程的各内存页面;若所述各内存页面的属性为只读属性,则将所述各内存页面在内存中进行备份;发送第一备份请求给外存,以使所述外存将所述备份的各内存页面拷贝到所述外存中,所述第一备份请求中包含所述备份的各内存页面,能够实现在线内存转储的同时保证了数据一致性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种内存处理方法、内存管理设备。
背景技术
通过内存转储能够保存系统内存的运行数据,再对这些数据做适当处理后,即可以从这些内存中提取出对应系统或程序运行状态的相关数据,进而达到分析系统运行情况的目的。
传统的内存转储主要集中在保存系统或者应用程序挂死时的状态,以便后续对系统或者应用程序的挂死状态做问题分析和故障定位,但是,这种内存转储技术需要暂停系统或者应用程序的运行,不能进行内存在线备份,在内存备份结束后,系统或者应用程序才能继续运行,容易造成业务中断。
为了不影响业务进行,现有的一种内存在线转储技术可以实现在系统或者应用程序运行的同时进行内存转储,但是,发明人在实现本发明的过程中发现,现有的内存在线转储技术存在边修改,边备份的问题,从而会造成数据一致性丢失。
发明内容
本发明实施例提供一种内存处理方法、内存管理设备,用以在不中断应用程序运行的情况下,备份应用程序内存数据,同时能有效的保证备份数据的一致性。
第一方面,本发明实施例提供了一种内存处理方法,包括:
内存管理设备接收内存转储请求,所述内存转储请求中包含进程标识;根据所述进程标识查询进程页表,获取所述进程标识对应的进程的各内存页面;若所述各内存页面的属性为只读属性,则将所述各内存页面在内存中进行备份;发送第一备份请求给外存,以使所述内存中进行备份的各内存页面存储到所述外存中,所述第一备份请求中包含所述内存中进行备份的各内存页面。
在第一种可能的实现方式中,若所述各内存页面的属性不为只读属性,具体实现可以为:
将所述进程调度到等待列队中,所述进程为所述进程标识对应的进程;将所述各内存页面的属性均设置为只读属性;将所述进程调度到运行列队中。
基于第一种可能的实现方式,在第二种可能实现的方式中,将所述进程调度到运行列队中之后,具体实现可以为:
当对所述进程的各内存页面中的任一内存页面写数据时,接收所述内存发送的页面故障信息,所述页面故障信息中包含故障内存页面的进程线性地址;根据所述故障内存页面的进程线性地址,查询线性物理地址映射表,获取所述故障内存页面的物理地址,根据所述物理地址获取所述故障内存页面,所述线性物理地址映射表中保存有所述进程的每一内存页面的进程线性地址与对应内存页面在物理内存中的物理地址的映射关系;将所述故障内存页面在所述内存中进行备份,所述故障内存页面为所需转储的内存页面。
第二方面,本发明实施例还提供了一种内存管理设备,包括:
接收单元,用于接收内存转储请求,所述内存转储请求中包含进程标识;获取单元,用于根据所述接收单元接收的内存转储请求中包含的进程标识,查询进程页表,获取与所述进程标识对应的进程的各内存页面;备份单元,用于当确定所述获取单元获取的所述各内存页面的属性为只读属性时,则将所述各内存页面在内存中进行备份;发送单元,用于在所述备份单元将所述各内存页面在内存中进行备份之后,发送第一备份请求给外存,以使所述内存中进行备份的各内存页面存储到所述外存中,所述第一备份请求中包含所述内存中进行备份的各内存页面。
本发明实施例通过以上技术方案,本发明实施例的内存管理设备根据接收的内存转储请求中包含的进程标识,将进程标识对应的进程的各内存页面确定为所需转储的内存页面,确认所需转储的各内存页面的属性设为只读属性后,再进行内存页面的备份,从而保证备份过程中对所述进程置留在内存中的各内存页面不能进行修改,能够实现在不中断应用程序运行的情况下,备份应用程序内存数据时,能有效的保证备份数据的一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例应用的通用计算机系统中的内存管理框图;
图2为本发明实施例一提供的内存处理方法的流程示意图;
图3为本发明实施例一提供的内存处理方法的原理示意图;
图4为本发明实施例二提供的内存处理方法的流程示意图;
图5为本发明实施例三提供的内存处理方法的流程示意图;
图6为本发明实施例三提供的内存处理方法的原理示意图;
图7为本发明实施例四提供的内存管理设备的结构示意图;
图8为本发明实施例四提供的内存管理设备的又一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
鉴于现有的内存在线转储技术存在的数据一致性丢失的问题,本发明实施例提供了一种内存处理方法,可以应用于任何包含内存管理的通用计算机系统中,图1为本发明实施例应用的通用计算机系统中的内存管理框图,本发明实施例应用的通用计算机系统中的内存管理包括在线内存(程序内存)转储和换出内存转储。
图2为本发明实施例一提供的内存处理方法的流程示意图,图3为本发明实施例一提供的内存处理方法的原理示意图,图2所示的实施例可以应用于在线内存转储,如图2所示,所述方法具体包括:
步骤201、内存管理设备接收内存转储请求,所述内存转储请求中包含进程标识。
本实施例中,内存管理设备可以接收内存转储请求,该内存转储请求可以由任一需要将内存系统中某一进程的所有内存页面转储到外存的网络实体发送,该内存转储请求中至少包括一个进程标识,所述进程标识表示所需转储内存的进程标识,其中,本实施例的外存为除内存之外的其他存储设备,如硬盘。
步骤202、根据所述进程标识查询进程页表,获取所述进程标识对应的进程的各内存页面。
在本发明的一个可选实施方式中,内存管理设备接收内存转储请求之后,根据进程标识,查询进程页表,若确定所述进程的中央处理器CPU使用率大于预设比率,则确定所述进程的在线内存运行状况为繁忙,可以暂缓进行内存转储请求,即不获取与所述进程标识对应的各内存页面;若确定所述进程的CPU使用率小于等于预设比率,则确定所述进程的在线内存运行状况为不繁忙,可以进行内存转储,即获取与所述进程标识对应的各内存页面;需要说明的是,所述进程为所述进程标识对应的进程,所述进程标识对应的各内存页面为所述进程置留在内存中的各在线内存页面。
步骤203、若所述各内存页面的属性为只读属性,则将所述各内存页面在内存中进行备份。
在本发明的一个可选实施方式中,为了保证内存在线转储的数据一致性,内存管理设备接收内存转储请求之后,将所述进程标识对应的各在线内存页面的属性设置为只读属性,即对所述进程置留在内存中的内存页面不能进行修改,可以保证所需转储的各内存页面的数据一致性,同时也不影响所述进程的运行性能。
在本发明的一个可选实施方式中,为了不影响进程的运行性能以及加快备份速度,可以将内存划分为主内存和备份内存,其中,主内存用于加载进程以及保存对应进程运行中产生的数据;备份内存用于保存所需转储的内存页面,由于在内存页面的转储过程中,被转储的内存页面均保存在备份内存中,因此不影响主内存中进程的运行性能。
在本发明的一个可选实施方式中,内存管理设备将所述进程标识对应的所需转储的各内存页面在备份内存中进行备份之后,可以分别添加各内存页面对应的索引信息,各索引信息分别包括各内存页面的进程线性地址和进程标识;然后将备份内存中备份的各内存页面及其对应索引信息转储到外存中,以便在后续的内存换入时,可以根据对应的索引信息换入对应的内存页面。
在本发明的一个可选实施方式中,为了节省内存空间,以及提高后续的内存转储速率,内存管理设备可以将所需转储的各内存页面采用内存压缩算法进行压缩处理。
步骤204、发送第一备份请求给外存,以使所述内存中进行备份的各内存页面存储到所述外存中,所述第一备份请求中包含所述内存中进行备份的各内存页面。
本实施例中所述的外存为除内存之外的其他存储设备,如硬盘。
对应地,在一个实施例中,外存接收内存管理设备发送的第一备份请求之后,将所需转储的各内存页面存储到所述外存的内存页面储存单元中;当然本领域技术人员可以理解的是,也可以直接由内存或者内存管理设备来将所述备份的各内存页面存储或拷贝到所述外存中,此处不做特别的限定。
需要说明的是,若所述第一备份请求中还包含与所述备份的各内存页面对应的索引信息,则外存接收内存管理设备发送的第一备份请求之后,将所需转储的各内存页面及对应的索引信息一一绑定后保存到所述外存的内存页面储存单元中。
本发明实施例的内存管理设备根据接收的内存转储请求中包含的进程标识,将进程标识对应的进程的各内存页面确定为所需转储的内存页面,将所需转储的各内存页面的属性设为只读属性,即对所述进程置留在内存中的各内存页面不能进行修改,可以保证所需转储的各内存页面的数据一致性,同时也不影响所述进程的运行性能,同时也可以解决现有的内存在线转储技术存在的数据一致性丢失的问题。
需要说明的是,在实际情况中,某个进程在运行的过程中,需要对内存页面进行修改时,本发明实施例二提供了一种内存处理方法可以实现在线内存转储同时也不妨碍对内存页面的修改,图4为本发明实施例二提供的内存处理方法的流程示意图,如图4所示,具体包括:
步骤401、内存管理设备接收内存转储请求,所述内存转储请求中包含进程标识。
步骤402、根据所述进程标识,查询进程页表,获取与所述进程标识对应的进程的各内存页面,所述各内存页面为所需转储的各内存页面。
步骤403,确定各内存页面的属性是否为只读属性,若是则执行步骤405、否则执行步骤404。
步骤404、将各内存页面的属性设置为只读属性。
在本发明的一个可选实施方式中,内存管理设备可以先将进程标识对应的进程调度到等待列队中,然后将各内存页面的属性和对应的进程线性地址绑定后保存到预设的属性列表中,即所述属性列表中保存有各内存页面的属性和对应的进程线性地址之间的对应关系。
将各内存页面的属性设置为只读属性之后,再将该进程调度回运行列队中。
需要说明的是,本实施例中各内存页面的属性包括只读、只写、读写等属性,本领域技术人员可以理解的是,内存页面的属性在不同的操作系统中有不同的定义,也并不限于本发明实施例列举的这几种,因此内存页面的属性不限于本实施的具体举例。
步骤405、当调度到运行列队中的进程对其各内存页面中的任一内存页面写数据时,接收内存发送的页面故障信息,所述页面故障信息中包含故障内存页面的进程线性地址和进程标识。
在本发明的一个可选实施方式中,在内存备份过程中,若调度到运行队列中的进程需要对其内存页面进行修改(写数据)时,由于内存页面的属性为只读标识,因此,内存会产生页面故障信息,其中,页面故障信息中包含故障内存页面的进程线性地址和进程标识,内存将页面故障信息发送给内存管理设备。
步骤406、根据所述故障内存页面的进程线性地址和进程标识获取对应的故障内存页面。
在本发明的一个可选实施方式中,内存管理设备根据接收到的页面故障信息,可以调用页面故障处理函数分析页面故障信息,获取页面故障信息中包含的故障内存页面的进程线性地址;需要说明的是,页面故障信息中还可以包含有故障页面对应的进程标识。
内存管理设备可以根据所述故障内存页面的进程线性地址和/或进程标识,查询线性物理地址映射表,获取所述故障内存页面的物理地址,根据所述物理地址获取所述故障内存页面;举例来说,当进程在内存中运行时,该进程的每一内存页面的进程线性地址均对应一个物理内存中的物理地址,内存管理设备可以将该进程的每一内存页面的进程线性地址与其对应的物理地址的映射关系可以在线性物理地址映射表进行保存。
步骤407、将所述故障内存页面在所述内存中进行备份,所述故障内存页面为所需转储的内存页面。
为了保证在后续向内存页面中写入新数据时,该新写入的数据不会将原先该内存页面中的数据覆盖,避免由于内存页面的数据被覆盖造成无法恢复到原先状态的数据的问题,在向内存页面写入新数据之前,将该内存页面进行备份,然后再向该内存页面写入新数据。
根据局部性原理,一个进程在一段时间内,其访问的内存页面往往都很邻近,因此,重复步骤405-407可以依此对其他内存页面进行写前备份。
在本发明的一个可选实施方式中,内存管理设备将故障内存页面进行备份之后,根据故障内存页面的进程线性地址,查询上述预设的属性列表,获取与故障内存页面的进程线性地址对应的属性,将故障内存页面的只读属性修改为与故障内存页面的进程线性地址对应的属性,也就是将该故障页面的属性恢复到修改为只读属性之前的属性。
步骤408、发送第一备份请求给外存,以使所需转储的各内存页面存储到所述外存中,所述第一备份请求中包含所需转储的各内存页面。
本发明实施例采用将进程内的所有内存页面的属性设置为只读标识,在对内存页面修改之前,对该内存页面进行备份的技术手段,能够实现在线内存转储的同时即不妨碍对内存页面的修改,而且也保证了数据的一致性,可以解决现有的内存在线转储技术存在的数据一致性丢失的问题。
需要说明的是,在实际情况中,当系统可用内存不足时,可以将一些暂时不使用的内存页面换出到外存中,达到暂时释放系统内存的功能,因此,在进行内存转储之前,内存管理设备可以先对暂时不使用的内存页面换出到外存中,图5为本发明实施例三提供的内存处理方法的流程示意图,图6为本发明实施例三提供的内存处理方法的原理示意图,图5所示实施例可以应用于换出内存转储,如图5所示,具体包括:
步骤501、接收内存换出请求,所述内存换出请求中包含所需换出内存页面的进程线性地址。
在本发明的一个可选实施方式中,当系统可用内存不足时,可以将一些暂时不使用的内存页面换出到外存中予以保存,内存管理设备可以接收内存换出请求,该内存换出请求中包含所需换出内存页面的进程线性地址;需要说明的是,该内存换出请求中还可以包含有故障页面对应的进程标识。
步骤502、根据所述进程线性地址获取对应的所需换出的内存页面。
在本发明的一个可选实施方式中,内存管理设备可以根据所述进程线性地址和进程标识,查询所述线性物理地址映射表,获取所述所需换出内存页面的物理地址,根据所述物理地址获取所述所需换出的内存页面;
在本发明的一个可选实施方式中,内存管理设备可以对所述所需换出的内存页面添加对应的索引信息,所述索引信息包括所述所需换出的内存页面的进程线性地址和进程标识。
其中,本实施例中所述线性物理地址映射表与图4所示实施例中步骤406中所述的线性物理地址映射表相同。
步骤503、发送第二备份请求给所述外存,所述第二备份请求中包含所需换出的内存页面;并在所述所需换出的内存页面存储到所述外存中后,释放所述所需换出的内存页面在所述内存中占用的空间。
对应地,在接收到所述第二备份请求后,可以由外存或者内存管理设备将所需换出的内存页面保存到内存页面储存单元中,若所述第二备份请求中还包含所需换出的内存页面对应的索引信息,则外存或内存管理设备可以将所需换出的内存页面及对应的索引信息一一绑定后保存到内存页面储存单元中。
需要说明的是,对换出的内存页面,由于对应的进程已经不会再对其进行访问与修改,不管置留在内存中的内存页面的数据被如何修改以及替换,这些换出的内存页面的数据能够始终保持一致。
本发明实施例采用将暂时不使用的内存页面换出到外存中予以保存的技术手段,实现在线内存转储的同时即不妨碍对内存页面的修改,从而保证了数据的一致性,可以解决现有的内存在线转储技术存在的数据一致性丢失的问题。
图7为本发明实施例四提供的内存管理设备的结构示意图,具体包括:
接收单元71,用于接收内存转储请求,所述内存转储请求中包含进程标识,所述进程标识对应的进程的各内存页面为所需转储的各内存页面;
获取单元72,用于根据所述接收单元接收的内存转储请求中包含的进程标识,查询进程页表,获取与所述进程标识对应的进程的各内存页面;
备份单元73,用于若确定所述获取单元获取的所述各内存页面的属性为只读属性,则将所述各内存页面在内存中进行备份;
发送单元74,用于在所述备份单元将所述各内存页面在内存中进行备份之后,发送第一备份请求给外存,以使所述内存中备份的各内存页面存储到所述外存中,所述第一备份请求中包含所述内存中备份的各内存页面。
在本发明的一个可选实施方式中,获取单元72,具体用于根据所述进程标识,查询进程页表;若确定所述进程的中央处理器CPU使用率大于预设比率,则不获取与所述进程标识对应的各内存页面;若确定所述进程的CPU使用率小于等于预设比率,则获取与所述进程标识对应的各内存页面;所述进程为所述进程标识对应的进程。
在本发明的一个可选实施方式中,备份单元73,具体用于采用内存压缩算法,将所述各内存页面进行压缩后进行备份。
在本发明的一个可选实施方式中,如图8所示,所述内存管理设备还包括:
调度单元75,用于根据所述获取单元获取的各内存页面,若确定所述各内存页面的属性不为只读属性,则将所述进程调度到等待列队中,所述进程为所述进程标识对应的进程;
设置单元76,用于在所述调度单元将所述进程调度到等待列队中之后,将所述各内存页面的属性均设置为只读属性;
需要说明的是,设置单元76,还用于在所述调度单元将所述进程调度到等待列队中之后,将所述各内存页面的属性和对应的进程线性地址绑定后保存到预设的属性列表中,即所述属性列表中保存有所述各内存页面的属性及对应的进程线性地址之间的对应关系。
在本发明的一个可选实施方式中,调度单元75,还用于在所述设置单元将所述各内存页面的属性设置为只读属性之后,将所述进程调度到运行列队中。
在本发明的一个可选实施方式中,接收单元71,还用于当调度到运行列队中的进程对对所述进程的各内存页面中的任一内存页面写数据时,接收所述内存发送的页面故障信息,所述页面故障信息中包含故障内存页面的进程线性地址;
获取单元72,还用于根据所述接收单元接收的页面故障信息,查询线性物理地址映射表,获取所述故障内存页面的物理地址,根据所述物理地址获取所述故障内存页面,所述线性物理地址映射表中保存有所述进程的每一内存页面的进程线性地址与对应内存页面在物理内存中的物理地址的映射关系;
备份单元73,还用于将所述获取单元获取的所述故障内存页面在所述内存中进行备份,所述故障内存页面为所需转储的内存页面。
设置单元76,还用于在所述备份单元将所述故障内存页面在所述内存中进行备份之后,根据所述故障内存页面的进程线性地址,查询所述属性列表,获取与所述故障内存页面的进程线性地址对应的属性,将所述故障内存页面的只读属性修改为与所述故障内存页面的进程线性地址对应的属性。
在本发明的一个可选实施方式中,接收单元71,还用于接收内存换出请求,所述内存换出请求中包含所需换出内存页面的进程线性地址和进程标识;
获取单元72,还用于所述接收单元接收的所述进程线性地址,查询所述线性物理地址映射表,获取所述所需换出内存页面的物理地址,根据所述物理地址获取所述所需换出的内存页面;
发送单元74,还用于在所述获取单元获取的所述所需换出的内存页面之后,发送第二备份请求给所述外存,以使所述所需换出的内存页面存储到所述外存中,所述第二备份请求中包含所述所需换出内存页面;并在所述所需换出的内存页面存储到所述外存中后,释放所述所需换出的内存页面在所述内存中占用的空间。
对应地,可以由外存或者内存管理设备将所需换出的内存页面保存到内存页面储存单元中,若所述第二备份请求中还包含所需换出的内存页面对应的索引信息,则外存或内存管理设备可以将所需换出的内存页面及对应的索引信息一一绑定后保存到内存页面储存单元中。
本发明实施例的内存管理设备采用将进程内的所有内存页面的属性设置为只读标识,在对内存页面修改之前,对该内存页面进行备份的技术手段,能够实现在线内存转储的同时即不妨碍对内存页面的修改,而且也保证了数据的一致性,可以解决现有的内存在线转储技术存在的数据一致性丢失的问题。
本实施例中,在进行内存转储之前,内存管理设备可以先对暂时不使用的内存页面换出到外存中,达到暂时释放系统内存的功能。
需要说明的是,本发明实施例提供的内存管理设备只是基于本发明实施例提供的内存处理方法的一种产品实现形式,且该内存管理设备的功能模块的具体操作过程可以参见本发明实施例的内存处理方法中的相关步骤,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种内存处理方法,其特征在于,包括:
内存管理设备接收内存转储请求,所述内存转储请求中包含进程标识;
根据所述进程标识查询进程页表,获取所述进程标识对应的进程的各内存页面;
若所述各内存页面的属性为只读属性,则将所述各内存页面在内存中进行备份,其中,所述内存包括主内存和备份内存,所述主内存用于加载所述进程以及保存所述进程运行中产生的数据,所述备份内存用于保存所述进程的各内存页面;
发送第一备份请求给外存,以使所述内存中进行备份的各内存页面存储到所述外存中,所述第一备份请求中包含所述内存中进行备份的各内存页面。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述各内存页面的属性不为只读属性,则将所述进程标识对应的进程调度到等待列队中;
将所述各内存页面的属性均设置为只读属性;
在所述各内存页面的属性均设置为只读属性之后将所述进程标识对应的进程调度到运行列队中;
当调度到运行列队中的所述进程对所述进程的各内存页面中的任一内存页面写数据时,接收所述内存发送的页面故障信息,所述页面故障信息中包含故障内存页面的进程线性地址;
根据所述故障内存页面的进程线性地址,查询线性物理地址映射表,获取所述故障内存页面的物理地址,根据所述物理地址获取所述故障内存页面,所述线性物理地址映射表中保存有所述进程的每一内存页面的进程线性地址与对应内存页面在物理内存中的物理地址的映射关系;
将所述故障内存页面在所述内存中进行备份。
3.根据权利要求2所述的方法,其特征在于,在将所述各内存页面的属性均设置为只读属性之前,还包括:
将所述各内存页面的属性和对应的进程线性地址绑定后保存到预设的属性列表中,所述属性列表用于保存所述各内存页面的属性及对应的进程线性地址之间的对应关系;
相应地,在将所述故障内存页面在所述内存中进行备份之后,还包括:根据所述故障内存页面的进程线性地址,查询所述预设的属性列表,获取与所述故障内存页面的进程线性地址对应的属性,将所述故障内存页面的只读属性修改为所述故障内存页面的进程线性地址对应的属性。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述进程标识查询进程页表,获取与所述进程标识对应的各内存页面,具体包括:
根据所述进程标识,查询进程页表;
若确定所述进程的CPU使用率小于等于预设比率,则获取与所述进程标识对应的进程的各内存页面。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述各内存页面在内存中进行备份,具体包括:
采用内存压缩算法,将所述各内存页面进行压缩后在内存中进行备份。
6.根据权利要求2或3所述的方法,其特征在于,在所述内存管理设备接收内存转储请求之前,还包括:
接收内存换出请求,所述内存换出请求中包含所需换出内存页面的进程线性地址;
根据所述进程线性地址,查询所述线性物理地址映射表,获取所述所需换出内存页面的物理地址,根据所述物理地址获取所述所需换出的内存页面;
发送第二备份请求给所述外存,以使所述所需换出的内存页面存储到所述外存中,所述第二备份请求中包含所述所需换出内存页面;并在所述所需换出的内存页面存储到所述外存中后,释放所述所需换出的内存页面在所述内存中占用的空间。
7.一种内存管理设备,其特征在于,包括:
接收单元,用于接收内存转储请求,所述内存转储请求中包含进程标识;
获取单元,用于根据所述接收单元接收的内存转储请求中包含的进程标识,查询进程页表,获取与所述进程标识对应的进程的各内存页面;
备份单元,用于当确定所述获取单元获取的所述各内存页面的属性为只读属性时,则将所述各内存页面在内存中进行备份,其中,所述内存包括主内存和备份内存,所述主内存用于加载所述进程以及保存所述进程运行中产生的数据,所述备份内存用于保存所述进程的各内存页面;
发送单元,用于在所述备份单元将所述各内存页面在内存中进行备份之后,发送第一备份请求给外存,以使所述内存中进行备份的各内存页面存储到所述外存中,所述第一备份请求中包含所述内存中进行备份的各内存页面。
8.根据权利要求7所述的内存管理设备,其特征在于,所述备份单元还用于,根据所述获取单元获取的各内存页面,当确定所述各内存页面的属性不为只读属性时,则将所述进程标识对应的进程调度到等待列队中;
将所述各内存页面的属性均设置为只读属性;
在所述各内存页面的属性均设置为只读属性之后将所述进程调度到运行列队中;当调度到运行列队中的所述进程对所述进程的各内存页面中的任一内存页面写数据时,接收所述内存发送的页面故障信息,所述页面故障信息中包含故障内存页面的进程线性地址;
根据所述故障内存页面的进程线性地址,查询线性物理地址映射表,获取所述故障内存页面的物理地址,根据所述物理地址获取所述故障内存页面,所述线性物理地址映射表中保存有所述进程的每一内存页面的进程线性地址与对应内存页面在物理内存中的物理地址的映射关系;
将所述故障内存页面在所述内存中进行备份。
9.根据权利要求8所述的内存管理设备,其特征在于,还包括:
保存单元,用于在所述备份单元将所述各内存页面的属性均设置为只读属性之前,将所述各内存页面的属性和对应的进程线性地址绑定后保存到预设的属性列表中,所述属性列表用于保存所述各内存页面的属性及对应的进程线性地址之间的对应关系;
设置单元,用于在所述备份单元将所述故障内存页面在所述内存中进行备份之后,根据所述故障内存页面的进程线性地址,查询所述预设的属性列表,获取与所述故障内存页面的进程线性地址对应的属性,将所述故障内存页面的只读属性修改为所述故障内存页面的进程线性地址对应的属性。
10.根据权利要求7-9任一项所述的内存管理设备,其特征在于,所述获取单元,具体用于根据所述进程标识查询进程页表;若确定所述进程的CPU使用率小于等于预设比率,则获取与所述进程标识对应的进程的各内存页面。
11.根据权利要求7-9任一项所述的内存管理设备,其特征在于,所述备份单元,具体用于采用内存压缩算法,将所述各内存页面进行压缩后在内存中进行备份。
12.根据权利要求8或9所述的内存管理设备,其特征在于,所述接收单元,还用于接收内存换出请求,所述内存换出请求中包含所需换出内存页面的进程线性地址;
所述获取单元,还用于所述接收单元接收的所述进程线性地址,查询所述线性物理地址映射表,获取所述所需换出内存页面的物理地址,根据所述物理地址获取所述所需换出的内存页面;
所述发送单元,还用于在所述获取单元获取的所述所需换出的内存页面之后,发送第二备份请求给所述外存,以使所述所需换出的内存页面存储到所述外存中,所述第二备份请求中包含所述所需换出内存页面;并在所述所需换出的内存页面存储到所述外存中后,释放所述所需换出的内存页面在所述内存中占用的空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223006.6A CN102831069B (zh) | 2012-06-30 | 2012-06-30 | 内存处理方法、内存管理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223006.6A CN102831069B (zh) | 2012-06-30 | 2012-06-30 | 内存处理方法、内存管理设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102831069A CN102831069A (zh) | 2012-12-19 |
CN102831069B true CN102831069B (zh) | 2016-03-30 |
Family
ID=47334218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210223006.6A Expired - Fee Related CN102831069B (zh) | 2012-06-30 | 2012-06-30 | 内存处理方法、内存管理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831069B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324582A (zh) * | 2013-06-17 | 2013-09-25 | 华为技术有限公司 | 一种内存迁移方法、装置及设备 |
WO2016082191A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 访问文件的方法和装置 |
EP3229147A4 (en) * | 2014-12-24 | 2017-12-27 | Huawei Technologies Co., Ltd. | Transaction processing method, device and computer system |
CN106997315B (zh) * | 2016-01-25 | 2021-01-26 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
CN107145399B (zh) * | 2017-04-22 | 2021-03-02 | 华为技术有限公司 | 一种共享内存管理方法及共享内存管理设备 |
CN109446799B (zh) * | 2018-11-14 | 2021-06-11 | 深圳市腾讯网络信息技术有限公司 | 内存数据保护方法、安全组件和计算机设备及存储介质 |
CN109522122B (zh) * | 2018-11-14 | 2021-12-17 | 郑州云海信息技术有限公司 | 一种内存管理方法、系统、装置及计算机可读存储介质 |
CN110287030B (zh) * | 2019-06-28 | 2021-08-20 | 潍柴动力股份有限公司 | 内存使用方法和装置 |
CN113138941A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 内存交换的方法、装置 |
CN118210741A (zh) * | 2020-04-30 | 2024-06-18 | 华为技术有限公司 | 一种页交换的方法、存储系统和电子设备 |
CN111562983B (zh) * | 2020-04-30 | 2023-01-06 | Oppo(重庆)智能科技有限公司 | 内存优化方法、装置、电子设备及存储介质 |
CN112948863B (zh) * | 2021-03-15 | 2022-07-29 | 清华大学 | 敏感数据的读取方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366996B1 (en) * | 2000-01-24 | 2002-04-02 | Pmc-Sierra, Inc. | Page memory management in non time critical data buffering applications |
CN101526911A (zh) * | 2009-03-26 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种系统崩溃时系统信息存储方法及装置 |
CN102063344A (zh) * | 2009-11-18 | 2011-05-18 | 中兴通讯股份有限公司 | 一种系统故障信息转储的方法与系统 |
CN102436410A (zh) * | 2011-12-12 | 2012-05-02 | 华中科技大学 | 虚拟机检查点的在线保存方法 |
-
2012
- 2012-06-30 CN CN201210223006.6A patent/CN102831069B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366996B1 (en) * | 2000-01-24 | 2002-04-02 | Pmc-Sierra, Inc. | Page memory management in non time critical data buffering applications |
CN101526911A (zh) * | 2009-03-26 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种系统崩溃时系统信息存储方法及装置 |
CN102063344A (zh) * | 2009-11-18 | 2011-05-18 | 中兴通讯股份有限公司 | 一种系统故障信息转储的方法与系统 |
CN102436410A (zh) * | 2011-12-12 | 2012-05-02 | 华中科技大学 | 虚拟机检查点的在线保存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102831069A (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831069B (zh) | 内存处理方法、内存管理设备 | |
US9569457B2 (en) | Data processing method and apparatus for distributed systems | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
US11314420B2 (en) | Data replica control | |
US8996468B1 (en) | Block status mapping system for reducing virtual machine backup storage | |
CN103605588B (zh) | 一种虚拟机磁盘备份方法 | |
US8924353B1 (en) | Systems and methods for copying database files | |
US20150089182A1 (en) | Automatically aligning virtual blocks to physical blocks | |
US20100070544A1 (en) | Virtual block-level storage over a file system | |
US10055254B2 (en) | Accelerated data operations in virtual environments | |
CN102971698B (zh) | 快照数据处理方法及系统、存储系统、快照代理 | |
CN102096561B (zh) | 分层数据存储处理方法、装置以及存储设备 | |
CN104133775A (zh) | 一种用于管理存储器的方法和装置 | |
CN105446794A (zh) | 一种基于虚拟机的磁盘操作方法、装置及系统 | |
CN105468542A (zh) | 地址分配方法及装置 | |
CN103488523A (zh) | 一种页的访问方法和页的访问装置、服务器 | |
KR20130034450A (ko) | 저장 장치 및 그 구동 방법 | |
CN103023996A (zh) | 一种云数据存储系统 | |
CN102413183A (zh) | 云智能交换机及其处理方法、系统 | |
CN103229150B (zh) | 数据控制方法及系统 | |
CN105094811A (zh) | 一种事件处理的方法和装置 | |
CN102945275A (zh) | 文件碎片整理方法、装置及设备 | |
US9176675B1 (en) | Fast-zeroing in a file system | |
CN115408108A (zh) | 一种云环境下的i/o卸载方法、设备、系统及存储介质 | |
CN101826055B (zh) | 一种用于Linux系统数据缓存分配的管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20180630 |
|
CF01 | Termination of patent right due to non-payment of annual fee |