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

一种基于差分进化的高性能内存管理方法和系统与流程

2022-03-26 13:12:06 来源:中国专利 TAG:


1.本技术涉及计算机内存管理技术领域,尤其涉及一种基于差分进化的高性能内存管理方法和系统。


背景技术:

2.由于现在的计算机软件越来越庞大,动辄以t(1t=1024g)字节为大小的软件系统越来越多。而大部分计算机的内存容量仍在g字节为大小的数量级(通常为1g-128g)。因此,计算机操作系统对于内存的管理、调度是操作系统非常重要的一项工作。
3.操作系统需要不定时的将程序数据从磁盘中加载到内存中。当内存容量被占满之后,则需要进行内存的清理,释放出一定的空间,这些空间被划分成页(或者是段页相结合)。完成相应的清理后,操作系统再将需要的数据替换进可用的内存空间中相应的页或段页中。
4.目前,常见的操作系统,使用以下的几种内存管理的策略:
5.1、最佳替换算法:每次选择最长时间不再被访问的内存空间进行淘汰;
6.2、先进先出替换算法:每次淘汰最早进入内存的页;
7.3、最近最久未使用替换算法:每次淘汰最近最久未使用的页面。
8.上述的现有的操作系统内存管理方式,均存在一定的问题:
9.1.以上的管理策略,均属于事后被动型的管理模式,也就是说,当操作系统发现内存容量不足以满足程序运行的需要时才执行。那么程序在操作系统进行内存替换的时候,会被中断挂起,直到内存替换完成之后才能继续执行;
10.2.以上的管理策略,不能很好的平衡缺页率的问题,即使减少单个页面的大小获得更多的页面的情况下,仍然会产生belady现象(置换特征与进程访问内存的动态特征相矛盾,导致不停的进行内存替换);
11.3.几种现有的模式,需要占据一定的存储空间,记录下页面的信息,包括每个页面的位置,最近访问的时间,频次等,占据的空间复杂度为s(n)=o(n);
12.4.在计算页面的使用情况时可能产生大量的计算开销,需要扫描整个维护的页面信息,并从中比较和找出极大值或极小值。


技术实现要素:

13.基于上述目的,本技术提出了一种基于差分进化的高性能内存管理方法,包括:
14.在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;
15.判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。
16.进一步地,所述判断当前执行流的类型,并根据所述类型执行对应的操作,包括:
17.如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面
的使用情况;
18.如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容;
19.如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用。
20.进一步地,所述如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面的使用情况,包括:
21.主动检查可用内存容量p;
22.更新内存页面信息记录表,将所有行的访问频次加1;
23.判断p是否小于警戒值,如果是则进行差分进化计算;
24.根据计算的结果选择内存页面进行清除;
25.更新内存页面信息记录表,清除相应的页面信息。
26.进一步地,所述如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容,包括:
27.检查程序需要访问的页面是否已经在内存中;
28.更新内存页面信息记录表,将对应页面行的访问频次加1。
29.进一步地,所述如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用,包括:
30.检查程序需要占用的内存容量g和当前可用内存容量p;
31.判断p-g是否小于警戒值,如果是则进行差分进化计算;
32.根据计算的结果选择内存页面进行清除;
33.更新内存页面信息记录表,清除相应的页面信息;
34.将程序请求的数据从磁盘复制到内存页中;
35.在内存页面信息记录表中增加新的内存页面的信息。
36.进一步地,所述差分进化计算,包括:
37.初始化、变异计算、交叉计算、选择、重复迭代、以及获取计算结果。
38.进一步地,所述方法用于以下至少一种场景之中:
39.作为操作系统的一部分,直接写入操作系统内核,获得高性能的内存管理模式;
40.作为独立于操作系统的程序,以高优先级的进程程序驻留内存,获取系统全局内存的读写能力,主动的清理和替换相应的内存页;
41.虚拟化设备的高性能内存管理;
42.程序开发语言执行时的高性能虚拟内存管理。
43.基于上述目的,本技术还提出了一种基于差分进化的高性能内存管理系统,包括:
44.表格创建模块,用于在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;
45.判断执行流模块,用于判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。
46.总的来说,本技术的优势及给用户带来的体验在于:
47.1、主动型的内存管理模式,也就是在内存容量发生不足前,即进行主动的干预,大
大减少了程序等待的时间和发生等待的概率;
48.2、采用变长的页面特征记录方式,将特征相同的页面信息进行合并,不再单独保存相同特征页面的信息,节约页面信息保存的空间,降低空间复杂度,并且能够很好的降低belady现象的产生;
49.3、采用流式的计算模式,分析和判断需要进行内存替换的页面,将计算的时间复杂度分布到程序执行的全生命周期;也就是在第一块内存页面写入内存的开始,即不断的进行分析,降低了在替换时间点的计算量,最终降低了整体计算的时间复杂度。
附图说明
50.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术公开的一些实施方式,而不应将其视为是对本技术范围的限制。
51.图1示出根据本技术实施例的基于差分进化的高性能内存管理方法的流程图。
52.图2示出根据本技术实施例的执行流1的流程图。
53.图3示出根据本技术实施例的执行流2的流程图。
54.图4示出根据本技术实施例的执行流3的流程图。
55.图5示出根据本技术实施例的基于差分进化法计算哪些内存页面需要被替换的流程图。
56.图6示出根据本技术实施例的取代原有操作系统的内存管理系统示意图。
57.图7示出根据本技术实施例的旁路型的内存辅助管理工具示意图。
58.图8示出根据本技术实施例的基于差分进化的高性能内存管理系统的构成图。
59.图9示出了本技术一实施例所提供的一种电子设备的结构示意图;
60.图10示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
61.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
62.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
63.为了解决当前计算机程序的规模越来越庞大与计算机内存容量大小没有质的提升的情况下,需要一种更为高效的计算机内存管理方式。因此本技术将有限差分法作为基础,动态的管理和规划内存的使用。
64.如图1所示,根据本技术实施例的基于差分进化的高性能内存管理方法的流程图,包括如下步骤:
65.101:在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;
66.102:判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。该步骤进一步包括:
67.如果所述当前执行流为定时主动执行流,则按照固定时间间隔检查一次内存页面的使用情况;
68.如果所述当前执行流为被动执行流,则在现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容;
69.如果所述当前执行流为动态执行流,则随着新的程序需要进入内存时按需执行,动态调整内存的使用。
70.具体的,以下说明每个步骤的详细实现过程:
71.1、在磁盘中,创建内存页面信息记录的表格,格式如下
[0072][0073]
访问频次v指的是该内存页面被程序访问的次数,每访问一次v的值加1,v越大表明该内存页面被使用的越频繁;
[0074]
检查频次c指的是,内存管理调度程序每隔一定时间t检查一次页面的情况,每次检查c的值加1,c越大表明该内存页面存在的时间就越长;
[0075]
新的页面初始的时候,v=1,c=0
[0076]
与传统的操作系统页面信息记录不同,如果相邻的若干内存页面(从开始内存页面号到结束内存页面号的连续范围)具有相同的特征,则在该表格中只占据一行,而不是多行。
[0077]
2、本方法及系统包含三大执行流:
[0078]
a)执行流1为定时主动执行流,该执行流按照固定时间间隔t执行,每隔t检查一次内存页面的使用情况;
[0079]
b)执行流2为现有执行的程序再次访问内存时,该执行流被动的执行,并记录访问的内容;
[0080]
c)执行流3为随着新的程序需要进入内存时按需执行的执行流,该执行流根据新进入内存程序的需要,动态调整内存的使用;
[0081]
3、执行流1的流程,如图2所示,包括如下步骤:
[0082]
a)主动检查可用内存容量p;
[0083]
b)更新内存页面信息记录表,将所有行的访问频次c加1;
[0084]
c)判断p是否小于警戒值px,px是根据使用场景预设的值,可以根据硬件的类型(pc、服务器、移动设备等),以及使用的场景(办公、游戏、图形处理等),预先设置的值。一般该值为总内存容量的5%-20%较为合理。并可以在操作系统运行时进行动态调节;
[0085]
d)如果p小于警戒值px,则需要使用本技术选用的差分进化算法,计算出需要被清除的页面;
[0086]
e)被清除的页面,将在内存中进行释放,该页面空间可以被未来的程序使用,并且同时将内存页面信息记录表相应的内容进行清除;
[0087]
4、执行流2的流程,如图3所示,包括如下步骤:
[0088]
a)检查程序需要访问的页面是否已经在内存中;
[0089]
b)更新内存页面信息记录表,将对应页面行的访问频次v加1;
[0090]
5、执行流3的流程,如图4所示,包括如下步骤:
[0091]
a)按需检查程序需求请求的内存容量g和当前可用内存容量p;
[0092]
b)判断p-g是否小于警戒值px,px是根据使用场景预设的值,可以根据硬件的类型(pc、服务器、移动设备等),以及使用的场景(办公、游戏、图形处理等),预先设置的值。一般该值为总内存容量的5%-20%较为合理。并可以在操作系统运行时进行动态调节;
[0093]
c)如果p-g小于警戒值px,则需要使用本技术选用的差分进化算法,计算出需要被清除的页面;
[0094]
d)被清除的页面,将在内存中进行释放,该页面空间可以被未来的程序使用,并且同时将内存页面信息记录表相应的内容进行清除;
[0095]
e)将程序请求的数据从磁盘复制到内存页中;
[0096]
f)在内存页面信息记录表中增加新的内存页面的信息,其中访问频次v=1,检查频次c=0。
[0097]
6、本方法及系统关于计算哪些内存页面需要被替换,是基于差分进化法进行的,具体的方法如图5所示,包括如下步骤:
[0098]
a)初始化:读取当前的内存页面信息表的数据,取出各个页面区间的访问频次v与检查频次c以及上次计算的结果r,n为单个区域包含的页面数量,令目标函数为
[0099][0100]
则整个内存区域的目标函数的种群表示为
[0101][0102]
即第i个内存页进化t次(以下计算均默认t=1即第一次计算)后目标函数的计算结果,整个内存区域包括n个已经被使用的区域。
[0103]
b)变异计算:差分进化算法中,计算某个内存页x函数的变异情况,需要随机选取3个其他节点进行变异计算。这里优化的,选取内存页面信息表中r值与当前待计算的内存页r值最为相近的3个节点作为选取对象。那么在当前次计算异变过程,使用如下的公式:
[0104]
zi=f(x
n2-x
n1
) x
n3
[0105]
其中x
n1
、x
n2
、x
n3
为3个符合条件的随机内存页的x函数取值,f为缩放比例因子,一般取f=0.5。zi就是得到的第i个内存页变异后的基因函数。
[0106]
经过变异计算后,产生5个x函数:x
n1
、x
n2
、x
n3
、zi以及原始的xi。
[0107]
c)交叉计算:首先计算第i个内存页的基因函数的交叉函数。公式如下:
[0108][0109]
其中,cross rate为交叉概率,其值越大,发生交叉的概率越大,一般取0.35。d
rand
为{1,2,

,n}中的随机整数。
[0110]
将所有内存页的变异后的基因函数的种群
[0111][0112]
全部进行交叉计算后,得到交叉后的基因函数的种群,表示为
[0113][0114]
d)选择:
[0115]
采用贪婪算法,选择完成一次迭代后的结果种群,计算公式为
[0116][0117]
由此得到一次迭代后的新的内存页目标函数种群
[0118][0119]
e)重复迭代:
[0120]
判断种群的值,是否接近于均匀分布x~u(a,b),其中u为均匀分布函数,a和b为种群的上下限值。如果满足,则迭代结束,否则重复进行一次迭代。
[0121]
f)迭代结束后,得到的新的内存页目标函数种群值,填充回内存页面信息表的差分进化计算结果r中。
[0122]
g)根据请求的内存页面数量,对于r值大小处于倒数位置的若干个内存页进行清理。具体策略为:
[0123]
i.主动型的清理(执行流1),则选取大小在最后5%-15%的页面进行清理。
[0124]
ii.响应式的清理(执行流3),根据的结果,清理相应比例的内存页面。其中m一般为0.5~1。
[0125]
具体实施例:
[0126]
1、取代原有操作系统的内存管理系统
[0127]
如图6所示,该实施例直接改写原有操作系统的内容管理模块,将本技术的内存管理算法直接写入操作系统内核,获得高性能的内存管理模式。
[0128]
2、旁路型的内存辅助管理工具
[0129]
如图7所示,由于本技术中的主动型内存清理策略的存在,使得该发明也可以在操作系统原有的内存管理方式之外,兼容本技术。即在不改变操作系统内核的情况下,将发明的方法以高优先级的进程驻留内存的程序的方式,
[0130]
获取系统全局内存的读写能力,主动的清理和替换相应的内存页。
[0131]
3、用于虚拟化设备的高性能内存管理
[0132]
本技术对于通过vmware等软件虚拟化之后的物理设备,同样具有高性能内存管理的能力。管理对象由实际的物理内存空间,变更为虚拟化之后的特定内存范围段。相应的虚拟内存页面信息表替换原有的物理内存页面信息表。本技术的3个执行流与相应的差分进化的替换内存计算方式仍然适用。
[0133]
4、用于java、kotlin等程序语言执行时的高性能内存管理
[0134]
对于java、kotlin等程序开发语言,在执行时会创建java虚拟机(jvm),并形成独
立的虚拟内存。对于jvm中的堆空间(用于java对象实例的存储)以及栈空间(用于java局部变量的存储),同样可以在不影响jvm的正常处理模式下,使用本方法进行管理。管理的对象由物理内存页,变为堆、栈中的段空间。建立相应的内存段信息表,执行相应的执行流1-3,运用差分进化的方式,对段空间进行管理和调度。
[0135]
申请实施例提供了一种基于差分进化的高性能内存管理系统,该系统用于执行上述实施例所述的基于差分进化的高性能内存管理方法,如图8所示,该系统包括:
[0136]
表格创建模块501,用于在磁盘中,创建内存页面信息记录的表格,所述表格中包括:开始内存页面号、结束内存页面号、访问频次、检查频次、差分进化计算结果;
[0137]
判断执行流模块502,用于判断当前执行流的类型,并根据所述类型执行对应的操作,并将所述操作的结果记录在所述表格中。
[0138]
本技术的上述实施例提供的基于差分进化的高性能内存管理系统与本技术实施例提供的基于差分进化的高性能内存管理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0139]
本技术实施方式还提供一种与前述实施方式所提供的基于差分进化的高性能内存管理方法对应的电子设备,以执行上基于差分进化的高性能内存管理方法。本技术实施例不做限定。
[0140]
请参考图9,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图9所示,所述电子设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本技术前述任一实施方式所提供的基于差分进化的高性能内存管理方法。
[0141]
其中,存储器201可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
[0142]
总线202可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述基于差分进化的高性能内存管理方法可以应用于处理器200中,或者由处理器200实现。
[0143]
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、图形处理器(graphics processing unit,简称gpu)、网络处理器(network processor,简称np)等;还可以是单片机(single-chip microcomputer)、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、边缘计算(edge computing)设备。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件
模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
[0144]
本技术实施例提供的电子设备与本技术实施例提供的基于差分进化的高性能内存管理方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0145]
本技术实施方式还提供一种与前述实施方式所提供的基于差分进化的高性能内存管理方法对应的计算机可读存储介质,请参考图10,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于差分进化的高性能内存管理方法。
[0146]
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、高速缓存(cache)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0147]
本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的基于差分进化的高性能内存管理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0148]
需要说明的是:
[0149]
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备有固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本技术的最佳实施方式。
[0150]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0151]
类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
[0152]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
[0153]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0154]
本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的虚拟机的创建系统中的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0155]
应该注意的是上述实施例对本技术进行说明而不是对本技术进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0156]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献