本申请提供一种基于差分进化的高性能内存管理方法和系统。该方法包括:在磁盘中,创建内存页面信息记录的表格,表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果。如果当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面的使用情况;如果当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容;如果当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用。本申请大大减少了程序执行时因内存调用而产生等待时间和发生等待的概率,降低空间复杂度,并且能够很好的降低Belady现象的产生,降低了整体计算的时间复杂度。计算的时间复杂度。计算的时间复杂度。
【技术实现步骤摘要】
一种基于差分进化的高性能内存管理方法和系统
[0001]本申请涉及计算机内存管理
,尤其涉及一种基于差分进化的高性能内存管理方法和系统。
技术介绍
[0002]由于现在的计算机软件越来越庞大,动辄以T(1T=1024G)字节为大小的软件系统越来越多。而大部分计算机的内存容量仍在G字节为大小的数量级(通常为1G
‑
128G)。因此,计算机操作系统对于内存的管理、调度是操作系统非常重要的一项工作。
[0003]操作系统需要不定时的将程序数据从磁盘中加载到内存中。当内存容量被占满之后,则需要进行内存的清理,释放出一定的空间,这些空间被划分成页(或者是段页相结合)。完成相应的清理后,操作系统再将需要的数据替换进可用的内存空间中相应的页或段页中。
[0004]目前,常见的操作系统,使用以下的几种内存管理的策略:
[0005]1、最佳替换算法:每次选择最长时间不再被访问的内存空间进行淘汰;
[0006]2、先进先出替换算法:每次淘汰最早进入内存的页;
[0007]3、最近最久未使用替换算法:每次淘汰最近最久未使用的页面。
[0008]上述的现有的操作系统内存管理方式,均存在一定的问题:
[0009]1.以上的管理策略,均属于事后被动型的管理模式,也就是说,当操作系统发现内存容量不足以满足程序运行的需要时才执行。那么程序在操作系统进行内存替换的时候,会被中断挂起,直到内存替换完成之后才能继续执行;
[0010]2.以上的管理策略,不能很好的平衡缺页率的问题,即使减少单个页面的大小获得更多的页面的情况下,仍然会产生Belady现象(置换特征与进程访问内存的动态特征相矛盾,导致不停的进行内存替换);
[0011]3.几种现有的模式,需要占据一定的存储空间,记录下页面的信息,包括每个页面的位置,最近访问的时间,频次等,占据的空间复杂度为S(n)=O(n);
[0012]4.在计算页面的使用情况时可能产生大量的计算开销,需要扫描整个维护的页面信息,并从中比较和找出极大值或极小值。
技术实现思路
[0013]基于上述目的,本申请提出了一种基于差分进化的高性能内存管理方法,包括:
[0014]在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;
[0015]判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。
[0016]进一步地,所述判断当前执行流的类型,并根据所述类型执行对应的操作,包括:
[0017]如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面
的使用情况;
[0018]如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容;
[0019]如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用。
[0020]进一步地,所述如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面的使用情况,包括:
[0021]主动检查可用内存容量P;
[0022]更新内存页面信息记录表,将所有行的访问频次加1;
[0023]判断P是否小于警戒值,如果是则进行差分进化计算;
[0024]根据计算的结果选择内存页面进行清除;
[0025]更新内存页面信息记录表,清除相应的页面信息。
[0026]进一步地,所述如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容,包括:
[0027]检查程序需要访问的页面是否已经在内存中;
[0028]更新内存页面信息记录表,将对应页面行的访问频次加1。
[0029]进一步地,所述如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用,包括:
[0030]检查程序需要占用的内存容量G和当前可用内存容量P;
[0031]判断P
‑
G是否小于警戒值,如果是则进行差分进化计算;
[0032]根据计算的结果选择内存页面进行清除;
[0033]更新内存页面信息记录表,清除相应的页面信息;
[0034]将程序请求的数据从磁盘复制到内存页中;
[0035]在内存页面信息记录表中增加新的内存页面的信息。
[0036]进一步地,所述差分进化计算,包括:
[0037]初始化、变异计算、交叉计算、选择、重复迭代、以及获取计算结果。
[0038]进一步地,所述方法用于以下至少一种场景之中:
[0039]作为操作系统的一部分,直接写入操作系统内核,获得高性能的内存管理模式;
[0040]作为独立于操作系统的程序,以高优先级的进程程序驻留内存,获取系统全局内存的读写能力,主动的清理和替换相应的内存页;
[0041]虚拟化设备的高性能内存管理;
[0042]程序开发语言执行时的高性能虚拟内存管理。
[0043]基于上述目的,本申请还提出了一种基于差分进化的高性能内存管理系统,包括:
[0044]表格创建模块,用于在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;
[0045]判断执行流模块,用于判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。
[0046]总的来说,本申请的优势及给用户带来的体验在于:
[0047]1、主动型的内存管理模式,也就是在内存容量发生不足前,即进行主动的干预,大
大减少了程序等待的时间和发生等待的概率;
[0048]2、采用变长的页面特征记录方式,将特征相同的页面信息进行合并,不再单独保存相同特征页面的信息,节约页面信息保存的空间,降低空间复杂度,并且能够很好的降低Belady现象的产生;
[0049]3、采用流式的计算模式,分析和判断需要进行内存替换的页面,将计算的时间复杂度分布到程序执行的全生命周期;也就是在第一块内存页面写入内存的开始,即不断的进行分析,降低了在替换时间点的计算量,最终降低了整体计算的时间复杂度。
附图说明
[0050]在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
[0051]图1示出根据本申请实施例的基于差分进化的高性能内存管理方法的流程图。
[0052]图2示出根据本申请实施例的执行流1的流程图。
[0053]图3示出根据本申请实施例的执行流2的流程图。
[0054]图4示出根本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于差分进化的高性能内存管理方法,其特征在于,包括:在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。2.根据权利要求1所述的方法,其特征在于,所述判断当前执行流的类型,并根据所述类型执行对应的操作,包括:如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面的使用情况;如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容;如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用。3.根据权利要求2所述的方法,其特征在于,所述如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面的使用情况,包括:主动检查可用内存容量P;更新内存页面信息记录表,将所有行的访问频次加1;判断P是否小于警戒值,如果是则进行差分进化计算;根据计算的结果选择内存页面进行清除;更新内存页面信息记录表,清除相应的页面信息。4.根据权利要求2所述的方法,其特征在于,所述如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容,包括:检查程序需要访问的页面是否已经在内存中;更新内存页面信息记录表,将对应页面行的访问频次加1。5.根据权利要求2所述的方法,其特征在于,所述如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用,包括:检查程序需要占用的内存容量G和当前可用内存容量P;判...
【专利技术属性】
技术研发人员:金梦笔,
申请(专利权)人:金梦笔,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。