一种内存页处理方法及其相关设备技术

技术编号:35762243 阅读:15 留言:0更新日期:2022-12-01 13:57
本申请提供一种内存页处理方法及其相关设备,可降低CPU开销,提高去重速度。本申请的方法包括:若确定第i次扫描时的目标内存页与第i

【技术实现步骤摘要】
一种内存页处理方法及其相关设备


[0001]本申请涉及计算机
,尤其涉及一种内存页处理方法及其相关设备。

技术介绍

[0002]内存去重技术指,计算机的中央处理器(central processing unit,CPU)在确定多个虚拟内存页所指向的多个物理内存页的内容相同时,可将多个虚拟内存页指向同一个物理内存页,即对内容相同的多个物理内存页进行合并处理,从而释放冗余的物理内存页,达到内存去重目的。
[0003]在相关技术中,CPU可通过循环执行内存去重操作,有效增加可用内存。具体地,在对多个内存页(即前述的物理内存页)进行当前次去重时,CPU可对某一个内存页进行扫描,以获取该内存页的内容,并基于该内存页的内容生成一个数值,将该数值与红黑树中的各个数值(基于已扫描的其余内存页的内容生成)进行比较,若存在与该数值相同的其它数值,则确定存在与该内存页内容相同的内存页(即该内存页的重复页),并对这些内存页进行合并,若不存在,则将该数值存入红黑树。此后,还可对未扫描的其余内存也进行前述操作,直至完成所有内存页的当前次去重,再进行所有内存页的下一次去重。
[0004]在每一次去重中,CPU均会将每个内存页与其余内存页进行比较,以获取每个内存页的重复页。若某个内存页不存在重复页,使得CPU对该内存页的去重操作均为无效操作。这种情况在每一次去重中是相当常见的,过多无效的去重操作会导致CPU开销过大,且会降低去重速度。

技术实现思路

[0005]本申请实施例提供了一种内存页处理方法及其相关设备,可避免大量的无效的去重操作,以降低CPU开销,提高去重速度。
[0006]本申请实施例的第一方面提供了一种内存页处理方法,该方法包括:
[0007]在CPU对目标内存页进行第i次去重时,CPU可先对目标内存页进行第i次扫描。然后,CPU可判断第i次扫描时的目标内存页与第i

1次扫描时的目标内存页是否内容相同,并判断第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页是否内容相同。
[0008]若确定第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容不同,CPU可确定目标内存页刚发生变化,则将第i次扫描时的目标内存页对应的计数器的数值,增加第一数值,并结束对第i次扫描时的目标内存页的处理。其中,内容不同的内存页对应不同的计数器,内容相同的内存页对应相同的计数器。例如,若第3次扫描时的内存页1和第2次扫描时的内存页1内容相同,则第3次扫描时的内存页1和第2次扫描时的内存页1对应同一个计数器。又如,若第3次扫描时的内存页1和第3次扫描时的内存页2内容相同,则第3次扫描时的内存页1和第3次扫描时的内存页2对应同一个计数器。又如,若第3次扫描时的内存页1和第2次扫描时的内存页2内容相同,则第3次扫描时的内存页1和第2次扫描时的内存页2对应同一个计数器。又如,若第3次扫描时的内存页1和第2次扫描时的内存页1内容不同,
则第3次扫描时的内存页1和第2次扫描时的内存页1对应两个不同的计数器。又如,若第3次扫描时的内存页1和第3次扫描时的内存页2内容不同,则第3次扫描时的内存页1和第3次扫描时的内存页2对应两个不同的计数器。又如,若第3次扫描时的内存页1和第2次扫描时的内存页2内容不同,则第3次扫描时的内存页1和第2次扫描时的内存页2对应两个不同的计数器。
[0009]若确定第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容相同,且第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容不同,CPU可确定目标内存页刚保持不变,则检测第i次扫描时的目标内存页对应的计数器的数值大小,以基于该计数器的数值大小,判断是否存在与第i次扫描时的目标内存页内容相同的其余内存页。需要说明的是,在CPU对目标内存页进行第i

1次去重的过程中,由于第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容不同,CPU可确定第i

1次扫描时的目标内存页对应的计数器,并将第i

1次扫描时的目标内存页对应的计数器的数值,增加第一数值。那么,在CPU对目标内存页进行第i次去重的过程中,由于第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容相同,故第i次扫描时的目标内存页和第i

1次扫描时的目标内存页对应相同的计数器,此时,该计数器的数值至少为第一数值。
[0010]若确定第i次扫描时的目标内存页对应的计数器的数值大于第一数值,CPU可确定存在与第i次扫描时的目标内存页内容相同的内存页(即第i次扫描时的目标内存页的重复页),则对第i次扫描时的目标内存页,以及第i次扫描时的目标内存页的重复页进行合并。
[0011]从上述方法可以看出:在对目标内存页进行第i次扫描后,CPU在确定第i次扫描时的目标内存页处于刚发生变化的状态时(即第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容不同),可将第i次扫描时的目标内存页对应的计数器的数值,增加第一数值。CPU在确定第i次扫描时的目标内存页处于刚保持不变的状态(即第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容相同,且第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容不同),且第i次扫描时的目标内存页对应的计数器的数值大于第一数值时,可准确判断第i次扫描时的目标内存页存在重复页。那么,CPU可获取第i次扫描时的目标内存页的重复页,并对第i次扫描时的目标内存页以及第i次扫描时的目标内存页的重复页进行合并。由此可见,CPU可充分过滤不存在重复页的内存页,有针对性地对存在重复页的内存页进行有效的去重操作,从而避免大量的无效的去重操作,以降低CPU开销,提高去重速度。
[0012]在一种可能的实现方式中,该方法还包括:若确定第i次扫描时的目标内存页对应的计数器的数值等于第一数值,则结束对第i次扫描时的目标内存页的处理。前述实现方式中,CPU检测第i次扫描时的目标内存页对应的计数器的数值大小后,若确定第i次扫描时的目标内存页对应的计数器的数值等于第一数值,CPU则认为第i次扫描时的目标内存页不存在重复页。因此,CPU可结束对第i次扫描时的目标内存页的处理,即跳过第i次扫描时的目标内存页。
[0013]在一种可能的实现方式中,该方法还包括:若确定第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容相同,且第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容相同,则结束对第i次扫描时的目标内存页的处理。前述实现方式中,CPU检测目标内存页的未修改轮次的数值大小后,若确定第i次扫描时的目标内存页本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存页处理方法,其特征在于,所述方法包括:对目标内存页进行第i次扫描;若确定第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容不同,则将所述第i次扫描时的目标内存页对应的计数器的数值,增加第一数值;若确定所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页内容相同,且所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容不同,则检测所述第i次扫描时的目标内存页对应的计数器的数值大小;若确定所述第i次扫描时的目标内存页对应的计数器的数值大于所述第一数值,则对所述第i次扫描时的目标内存页,以及与所述第i次扫描时的目标内存页内容相同的内存页,进行合并;其中,内容不同的内存页对应不同的计数器,内容相同的内存页对应相同的计数器。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若确定所述第i次扫描时的目标内存页对应的计数器的数值等于所述第一数值,则结束对所述第i次扫描时的目标内存页的处理。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:若所述确定第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页内容相同,且所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容相同,则结束对所述第i次扫描时的目标内存页的处理。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:基于第i次扫描时的目标内存页的校验和以及第i

1次扫描时的目标内存页的校验和,检测所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页是否内容相同,以及所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页是否内容相同;其中,所述第i次扫描时的目标内存页的校验和基于所述第i次扫描时的目标内存页生成,所述第i

1次扫描时的目标内存页的校验和基于所述第i

1次扫描时的目标内存页生成。5.根据权利要求4所述的方法,其特征在于,所述基于第i次扫描时的目标内存页的校验和以及第i

1次扫描时的目标内存页的校验和,检测所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页是否内容相同,以及所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页是否内容相同包括:若确定所述第i次扫描时的目标内存页的校验和以及第i

1次扫描时的目标内存页的校验和不同,则将目标内存页的未修改轮次的数值设置为第二数值;若确定所述第i次扫描时的目标内存页的校验和以及第i

1次扫描时的目标内存页的校验和相同,则将所述目标内存页的未修改轮次的数值,增加第三数值;基于所述目标内存页的未修改轮次的数值大小,检测所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页是否内容相同,以及所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页是否内容相同。6.根据权利要求5所述的方法,其特征在于,所述若确定第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容不同包括:若确定所述目标内存页的未修改轮次的数值等于所述第二数值,则确定第i次扫描时的目标内存页与第i

1次扫描时的目标内存页内容不同。
7.根据权利要求5或6所述的方法,其特征在于,所述若确定所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页内容相同,且所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容不同包括:若确定所述目标内存页的未修改轮次的数值等于所述第三数值,则确定所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页内容相同,且所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容不同。8.根据权利要求5至7任意一项所述的方法,其特征在于,所述若所述确定第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页内容相同,且所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容相同包括:若确定所述目标内存页的未修改轮次的数值大于所述第三数值,则确定所述第i次扫描时的目标内存页与所述第i

1次扫描时的目标内存页内容相同,且所述第i

1次扫描时的目标内存页与第i

2次扫描时的目标内存页内容相同。9.根据权利要求1至8任意一项所述的方法,其特征在于,所述对所述第i次扫描时的目标内存页,以及与所述第i次扫描时的目标内存页内容相同的内存页,进行合并包括:若确定所述第i次扫描时的目标内存页与待合并队列中的首个内存页对应同一进程,且所述第i次扫描时的目标内存页与所述待合并队列中的首个内存页位于预置的地址范围内,则将所述第i次扫描时的目标内存页加入所述待合并队列,直至构建新的待合并队列,并对所述待合并队列中的每个内存页,以及与该内存页内容相同的内存页进行合并;若确定所述第i次扫描时的目标内存页与待合并队列中的首个内存页对应不同的进程,或所述第i次扫描时的目标内存页与所述首个内存页未位于预置的地址范围内,则对所述待合并队列中的每个内存页,以及与该内存页内容相同的内存页进行合并,并以所述第i次扫描时的目标内存页为首个内存页,构建新的待合并队列。10.一种内存页处理装置,其特征在于,所述装置包括:扫描模块,用于对目标...

【专利技术属性】
技术研发人员:郭帆樊成阳王克锋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1