一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于LRU的数据缓冲区内存释放调度系统及方法与流程

2022-02-20 05:24:36 来源:中国专利 TAG:

一种基于lru的数据缓冲区内存释放调度系统及方法
技术领域
1.本发明属于数据库的内存缓存管理领域,尤其是涉及一种基于lru的数据缓冲区内存释放调度系统及方法。


背景技术:

2.lru(least recently used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因此我们需要制定一种策略对加入到内存中的文件进项选择。
3.利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。即淘汰最近最长时间未访问过的页面。


技术实现要素:

4.有鉴于此,本发明旨在提出一种基于lru的数据缓冲区内存释放调度系统及方法,以解决计算环境下在缓冲区的内存上的资源有效利用空间利用不足的情况,为了实现在缓冲区的内存上的有效利用率的相对均衡的基础上缩短计算机数据调度的整体执行时间。
5.为达到上述目的,本发明的技术方案是这样实现的:
6.一种基于lru的数据缓冲区内存释放调度方法,包括以下步骤:
7.s1、对内存区域大致分为高、中、低三个等级区域;
8.s2、将三个等级区域由高到低进行排序,并分别进行命名;
9.s3、对调用的数据文件的优先度进行设定,根据调用的数据文件占用内存的大小,对调用的数据文件对应的等级区域大小进行优化;
10.s4、使用状态接口实时获取各内存分区状态;
11.s5、根据调用的数据文件的优先度分配合理内存区域,以及根据内存释放方法对内存中的数据进行释放;
12.内存释放方法包括以下内容:根据调用的数据文件的优先级判断所属内存分区等级,优先占用与本优先级一致的内存区域,若本内存区域占满并且不释放的情况下,占用本优先级下一级或本优先级下一级的任意一级。
13.进一步的,步骤s1中三个区域的大小由管理员设置。
14.进一步的,步骤s2中命名方式如下:步骤s2中命名方式如下:将三个等级区域由高到低进行排序,并根据排序结果依次命名,命名名称包括:本内存的内存名称、本内存的等级、本内存的内存分区实际大小,命名格式具体如下:buffer_a_[size]、buffer_b_[size]、buffer_c_[size]、buffer_d_[size]
……
,级别大小为a》b》c》d以此类推,[size]代表所分出的内存分区实际大小,buffer为统一内存名称,字母表示其分区所存放数据等级。
[0015]
进一步的,步骤s5中内存释放方法包括以下内容:根据数据文件的优先级判断所
属内存分区等级,优先占用与本优先级一致的内存区域,若本内存区域占满并且不释放的情况下,占用本优先级下一级或本优先级下一级的任意一级;
[0016]
具体如下:
[0017]
内存释放方法包括高级内存释放方法,中级内存释放方法、低级内存释放方法,具体如下:
[0018]
1)高级内存释放方法包括:优先占用最高级及以下的内存分区,在整体内存资源紧张时不进行内存释放,占用下一级内存分区;
[0019]
2)中级内存释放方法包括:
[0020]
第一种情况,占用中级及以下的内存分区,在低级、中级内存资源紧张时,可占用最高级内存分区,在整体或高级内存紧张时进行内存释放;
[0021]
第二种情况,占用中级及以下的内存分区,在低级、中级以及整体内存紧张时进行内存释放;
[0022]
3)低级内存释放方法包括:占用低级内存分区,在低级分区紧张时可占用中级内存分区,随时依照lru原则进行内存释放。
[0023]
一种基于lru的数据缓冲区内存释放调度系统,包括:内存分区管理器、数据任务管理器、数据缓冲分配器、内存状态扫描器、内存资源管理器;
[0024]
内存分区管理器:用于管理内存的合并、拆分、命名、分级;
[0025]
数据任务管理器:用于设置特殊数据的内存等级和内存释放方法;
[0026]
数据缓冲分配器:用于解析数据任务管理器设定的数据优先级,并根据数据优先级安排在合理的内存区域,在内存出现资源紧张的时候依照数据任务管理器的设定原则对其他数据进行释放;
[0027]
内存状态扫描器:用于实时获取数据缓冲分配器对不同内存分区的状态;
[0028]
内存资源管理器:用于根据数据任务管理器对不同数据设定的释放原则,在资源紧张时对合法数据进行释放,或者暂时提升优先级,确保最高级数据不被影响。
[0029]
进一步的,内存分区的状态包括包括分区名字、分区大小、分区等级、数据名称、数据大小、数据占用时间、数据释放原则。
[0030]
相对于现有技术,本发明所述的一种基于lru的数据缓冲区内存释放调度系统及方法具有以下优势:
[0031]
(1)本发明所述的一种基于lru的数据缓冲区内存释放调度系统及方法,满足计算任务中更多的数据传输需求,更加充分的利用每个任务在运行时的资源;避免数据传输过程中重要数据发生资源抢占现象;避免将重要额的数据进行错误的释放;极大地提升内存资源的利用率,进一步平衡了内存中不同数据的占用情况。
[0032]
(2)本发明所述的一种基于lru的数据缓冲区内存释放调度系统及方法,可避免计算数据任务时经常发生的重要数据所占据的内存资源被错误抢占的现象。该使得客户或者管理员可以将其自身业务较为重要的数据进行优先级[谦让度降低]提升,存放在级别较高的内存区域,从而很大程度上避免由于突发庞大的数据量涌入,而直接被系统错误释放,使得下次重新调用该重要数据的时间增加的情况。
[0033]
(3)本发明所述的一种基于lru的数据缓冲区内存释放调度系统及方法,可保证整体数据信息在内存中被合理的分配,确保数据缓冲不被挤占释放,避免由于错误释放引发
的系统性整体崩溃。将内存管理细致化精确化,是的整体进度上的计算时间缩短,计算崩溃次数减少。
附图说明
[0034]
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0035]
图1为本发明实施例所述的一种基于lru的数据缓冲区内存释放调度系统及方法的过程示意图。
具体实施方式
[0036]
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0037]
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0038]
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
[0039]
下面将参考附图并结合实施例来详细说明本发明。
[0040]
一种基于lru的数据缓冲区内存释放调度方法,包括以下步骤:
[0041]
s1、对内存区域大致分为高、中、低三个等级区域;
[0042]
s2、将三个等级区域由高到低进行排序,并分别进行命名;
[0043]
s3、对调用的数据文件的优先度进行设定,根据调用的数据文件占用内存的大小,对调用的数据文件对应的等级区域大小进行优化;
[0044]
s4、使用状态接口实时获取各内存分区状态;
[0045]
s5、根据调用的数据文件的优先度分配合理内存区域,以及根据内存释放方法对内存中的数据进行释放。
[0046]
步骤s1中三个区域的大小由管理员设置。
[0047]
步骤s2中命名方式如下:步骤s2中命名方式如下:将三个等级区域由高到低进行排序,并根据排序结果依次命名,命名名称包括:本内存的内存名称、本内存的等级、本内存的内存分区实际大小,命名具体如下:buffer_a_[size]、buffer_b_[size]、buffer_c_[size]、buffer_d_[size]
……
,级别大小为a》b》c》d以此类推,[size]代表所分出的内存分
区实际大小,buffer为统一内存名称,字母表示其分区所存放数据等级。
[0048]
步骤s5中内存释放方法包括以下内容:根据数据文件的优先级判断所属内存分区等级,优先占用与本优先级一致的内存区域,若本内存区域占满并且不释放的情况下,占用本优先级下一级或本优先级下一级的任意一级;
[0049]
如图1所示,内存释放方法包括高级内存释放方法,中级内存释放方法、低级内存释放方法;
[0050]
1)高级内存释放方法包括:优先占用最高级及以下的内存分区,在整体内存资源紧张时不进行内存释放,占用下一级内存分区;
[0051]
2)中级内存释放方法包括:
[0052]
第一种情况,占用中级及以下的内存分区,在低级、中级内存资源紧张时,可占用最高级内存分区,在整体或高级内存紧张时进行内存释放;
[0053]
第二种情况,占用中级及以下的内存分区,在低级、中级以及整体内存紧张时进行内存释放;
[0054]
3)低级内存释放方法包括:占用低级内存分区,在低级分区紧张时可占用中级内存分区,随时依照lru原则进行内存释放。
[0055]
使用状态接口获取各内存分区实时状态:
[0056]
通过状态接口,实时扫描各分区的数据信息,从而得到切实的情况,对新进入内存的数据进行等级分化和内存分配;
[0057]
根据调用任务优先级分配合理内存区域:
[0058]
按照事先设置好的不同任务的优先级,系统根据判断将其放入相应的内存区域,分配原则为向下兼容,若无空间,按照内存释放方法进行内存释放。
[0059]
一种基于lru的数据缓冲区内存释放调度系统,包括:内存分区管理器、数据任务管理器、数据缓冲分配器、内存状态扫描器、内存资源管理器;
[0060]
内存分区管理器:用于管理内存的合并、拆分、命名、分级;
[0061]
数据任务管理器:用于设置特殊数据的内存等级和内存释放方法;
[0062]
数据缓冲分配器:用于解析数据任务管理器设定的数据优先级,并根据数据优先级安排在合理的内存区域,在内存出现资源紧张的时候依照数据任务管理器的设定原则对其他数据进行释放;
[0063]
内存状态扫描器:用于实时获取数据缓冲分配器对不同内存分区的状态;
[0064]
内存资源管理器:用于根据数据任务管理器对不同数据设定的释放原则,在资源紧张时对合法数据进行释放,或者暂时提升优先级,确保最高级数据不被影响。
[0065]
内存分区的状态包括包括分区名字、分区大小、分区等级、数据名称、数据大小、数据占用时间、数据释放原则。
[0066]
举例:
[0067]
一条很宽的马路上面正在行驶的有货车、汽车、自行车、行人。仅仅是大小不同。在突发大自行车和行人涌入时,由于空间位置有限,所以交警[内存分配机制]强制让部分汽车、大货车停下,其中有的汽车货车需要经常性的使用,停下的货车汽车启动又会消耗大量时间。或者有的汽车虽然不常用但承载着重要的数据信息,那么这种情况便是开发者和客户不想看到的。
[0068]
可避免计算数据任务时经常发生的重要数据所占据的内存资源被错误抢占的现象。该使得客户或者管理员可以将其自身业务较为重要的数据进行优先级[谦让度降低]提升,存放在级别较高的内存区域,从而很大程度上避免由于突发庞大的数据量涌入,而直接被系统错误释放,使得下次重新调用该重要数据的时间增加的情况。
[0069]
具体实施过程:
[0070]
基于lru的数据缓冲区域内存分层过程由以下个组件协同完成:
[0071]
1、内存分区管理器:负责管理内存的合并、拆分、命名、分级。
[0072]
2、数据任务管理器:负责设置特殊数据的内存等级和释放原则。
[0073]
3、数据缓冲分配器:负责解析数据优先级安排在合理的内存区域,在内存出现资源紧张的时候依照数据任务管理器的设定原则对其他数据进行释放。
[0074]
4、内存状态扫描器:实时获取不同内存分区的状态,包括但不限于分区名字、分区大小、分区等级、数据名称、数据大小、数据占用时间、数据释放原则等等;管理员或者授权用户可通过扫描器和数据任务管理器对不同的数据进行内存环境设置。
[0075]
5、内存资源管理器:依照不同数据设定的释放原则,在资源紧张时对合法数据进行释放,或者暂时提升优先级,确保最高级数据不被影响。
[0076]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献