一种缓存页面替换方法及装置制造方法及图纸

技术编号:12354468 阅读:154 留言:0更新日期:2015-11-19 04:32
本发明专利技术提供一种缓存页面替换方法及装置,方法包括:S1:建立脏页链表和非脏页链表,其中,脏页链表用于存储脏页,非脏页链表用于存储非脏页;S2:在确定内存不足时,从非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;S3:若将非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从脏页链表中选择目标脏页,并消除目标脏页的脏页标志,并将消除了脏页标志的目标脏页存储至非脏页链表中,并执行S2,直到满足内存。根据本方案,从而提高缓存页面替换的效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种缓存页面替换方法及装置
技术介绍
随着数字化时代的不断发展,在日常生活和科学研究中,越来越多的传统业务开始数字化、网络化,促使数据爆炸式增长,存储系统在整个业务处理系统中的地位也愈发重要,然而源源不断的数据流导致存储系统产生严重的I/O瓶颈问题。目前,当接收到请求且内存不足时,一般采用Linux内核中的缓存页替换方法,通过选择一些页面丢弃其内容供当前请求使用,其中,缓存页替换方法需要维护活跃链表(active_list)和非活跃链表(inactive_list),在active_list链表中存储的是经常被使用的页,而inactivejist链表中存储的是经常不被使用的页。且根据访问频率,两个链表中所存储的页会发生移动。当内存不足时,需要进行页回收,而对于inactivejist链表和actiVe_list链表中的脏页、正在刷写的页不能够进行回收,那么缓存页替换的方法可以包括:首先从inactivejist链表逐个查找可以回收的页,若查找到脏页或正在刷写的页则跳过,若查找到非脏页,则回收;若内存仍然不足时,再回收activejist链表中的页。然而,在inactive_list链表和active_list链表中包括大量的脏页、正在刷写的页,导致在链表中查找可回收的页时,会遇到很多不能够回收的页,从而降低了缓存页替换的效率。
技术实现思路
有鉴于此,本专利技术提供一种缓存页面替换方法及装置,以提高缓存页替换的效率。本专利技术提供了一种缓存页面替换方法,包括:S1:建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;S2:在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;S3:若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并执行S2,直到满足内存。优选地,所述建立脏页链表和非脏页链表,包括:在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。优选地,所述建立脏页链表和非脏页链表,包括:在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。优选地,进一步包括:按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。优选地,进一步包括:若所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。本专利技术还提供了一种缓存页面替换装置,包括:建立单元,用于建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;非脏页处理单元,用于在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;脏页处理单元,用于若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并触发所述非脏页处理单元执行相应操作,直到满足内存。优选地,所述建立单元,用于在基树空间中查找读操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页插入到所述非脏页链表中的相应位置处,并读取所述目标页的内容;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。优选地,所述建立单元,用于在基树空间中查找写操作所针对目标页的索引,若所述基树空间中查找到所述目标页的索引,为所述目标页增加访问计数,并根据所述目标页的类型,将类型为脏页的所述目标页插入到所述脏页链表中的相应位置处,以及将类型为非脏页的所述目标页从所述非脏页链表中提取出来,并根据所述写操作对所述目标页的内容进行修改,以及在所述目标页上设置脏页标志,并将设置了脏页标志的所述目标页插入到所述脏页链表中的相应位置处;其中,所述脏页链表,和/或,所述非脏页链表中按照访问计数进行排列。优选地,所述非脏页处理单元,用于按照所述非脏页链表中访问计数从小到大的顺序,从所述非脏页链表中查找目标非脏页;所述脏页处理单元,用于按照所述脏页链表中访问计数从小到大的顺序,从所述脏页链表中选择目标脏页。优选地,进一步包括:重建单元,用于在所述基树空间中未查找到所述目标页的索引,则建立所述目标页,并从磁盘中读取所述目标页的内容将读取的该内容填充到所述目标页中,并设置所述目标页的初始访问计数,将所述目标页插入至非脏页链表的相应位置处。本专利技术实施例提供了一种缓存页面替换方法及装置,通过建立脏页链表和非脏页链表,以使得在访问非脏页链表时,所访问的页都是非脏页,在内存不足时,可以快速的选择非脏页链表中的非脏页进行释放,无需对链表中的页的类型进行检测,省却了页的检测时间,从而提高缓存页面替换的效率。【附图说明】图1是本专利技术实施例提供的方法流程图;图2是本专利技术另一实施例提供的方法流程图;图3是本专利技术实施例提供的读操作方法流程图;图4是本专利技术实施例提供的非脏页链表结构图;图5是本专利技术实施例提供的非脏页链表中插入结果示意图;图6是本专利技术另一实施例提供的非脏页链表中插入结果示当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种缓存页面替换方法,其特征在于,包括:S1:建立脏页链表和非脏页链表,其中,所述脏页链表用于存储脏页,所述非脏页链表用于存储非脏页;S2:在确定内存不足时,从所述非脏页链表中查找目标非脏页,并将查找到的目标非脏页进行释放;S3:若将所述非脏页链表中所包括的所有非脏页全部释放依然无法满足内存时,从所述脏页链表中选择目标脏页,并消除所述目标脏页的脏页标志,并将消除了脏页标志的所述目标脏页存储至所述非脏页链表中,并执行S2,直到满足内存。

【技术特征摘要】

【专利技术属性】
技术研发人员:卓保特张书宁刘友生舒友村
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1