[发明专利]一种缓存页面替换方法及装置在审
申请号: | 201510466661.8 | 申请日: | 2015-07-31 |
公开(公告)号: | CN105068941A | 公开(公告)日: | 2015-11-18 |
发明(设计)人: | 卓保特;张书宁;刘友生;舒友村 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 页面 替换 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种缓存页面替换方法及装置。
背景技术
随着数字化时代的不断发展,在日常生活和科学研究中,越来越多的传统业务开始数字化、网络化,促使数据爆炸式增长,存储系统在整个业务处理系统中的地位也愈发重要,然而源源不断的数据流导致存储系统产生严重的I/O瓶颈问题。
目前,当接收到请求且内存不足时,一般采用Linux内核中的缓存页替换方法,通过选择一些页面丢弃其内容供当前请求使用,其中,缓存页替换方法需要维护活跃链表(active_list)和非活跃链表(inactive_list),在active_list链表中存储的是经常被使用的页,而inactive_list链表中存储的是经常不被使用的页。且根据访问频率,两个链表中所存储的页会发生移动。当内存不足时,需要进行页回收,而对于inactive_list链表和active_list链表中的脏页、正在刷写的页不能够进行回收,那么缓存页替换的方法可以包括:首先从inactive_list链表逐个查找可以回收的页,若查找到脏页或正在刷写的页则跳过,若查找到非脏页,则回收;若内存仍然不足时,再回收active_list链表中的页。
然而,在inactive_list链表和active_list链表中包括大量的脏页、正在刷写的页,导致在链表中查找可回收的页时,会遇到很多不能够回收的页,从而降低了缓存页替换的效率。
发明内容
有鉴于此,本发明提供一种缓存页面替换方法及装置,以提高缓存页替换的效率。
本发明提供了一种缓存页面替换方法,包括:
S1:建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;
S2:在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
S3:若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并执行S2,直到满足内存。
优选地,所述建立脏页链表和非脏页链表,包括:
在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
优选地,所述建立脏页链表和非脏页链表,包括:
在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。
优选地,进一步包括:
按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;
按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。
优选地,进一步包括:
若所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。
本发明还提供了一种缓存页面替换装置,包括:
建立单元,用于建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;
非脏页处理单元,用于在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;
脏页处理单元,用于若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并触发所述非脏页处理单元执行相应操作,直到满足内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510466661.8/2.html,转载请声明来源钻瓜专利网。