当前位置: 首页 > 专利查询>云南大学专利>正文

大数据处理中的虚拟内存管理方法及其装置制造方法及图纸

技术编号:10572230 阅读:129 留言:0更新日期:2014-10-23 11:49
大数据处理中的虚拟内存管理方法及其装置,属计算机系统优化技术领域,主要用于计算机大数据处理中一次实时处理数据量大于可用物理内存的情况。当内存分配达到指定临界值时,根据内存块访问关联综合指数,以及内存分配申请大小,寻找一块最合适的物理内存与磁盘虚拟内存置换。大小配对的内存分配方法把一个分配单元的前段分配给较大的内存需求者,后段分配给较小的内存需求者,通过该方法增加虚拟内存转换匹配度,减少数据移动量。本发明专利技术方法在大量100KB-10MB的内存分配,并且总量超过可用物理内存时,虚拟内存调度中的颠簸(Thrashing)现象很少,调度准确、有一定预见性,系统性能有明显提升。

【技术实现步骤摘要】
大数据处理中的虚拟内存管理方法及其装置
本专利技术属于计算机系统优化
,具体涉及一种大数据处理中的虚拟内存管理方法及其装置。
技术介绍
虽然计算机硬件发展迅速,内存容量增长很快,从KB级到MB级,再到GB级,一个级别增长千倍,但需求也在不断增长。现在进入了大数据处理的时代,再多的内存配置也不能满足所有的应用需求。另一方面,大容量的内存配置也意味着较高的硬件投入,人们总希望配置一般的计算机也能处理大量的数据。相对内存的容量与成本,磁盘具有成本低、容量大的特点,在这样的背景下就出现了虚拟内存技术。虚拟内存是指利用一部分硬盘存储空间作为内存来使用,以增加总的可使用内存量。当物理内存用完后,操作系统选择将内存中的部分内容写到作为虚拟内存的交换文件上。由于计算机内存的访问速度远远高于硬盘的读写速度,虚拟内存技术仅解决了物理内存不足的问题。当使用到虚拟内存时,计算机的性能明显下降。因此虚拟内存技术总希望找到最佳的虚拟内存调度算法,尽量少使用虚拟内存,尽量提前把下一步可能使用的数据置换调入物理内存。虚拟内存管理主要的关键问题,一是调度:决定哪些数据应被调入物理内存中;二是地址映射:把访问地址变换成为物理内存地址或虚内存物理地址;三是替换:决定哪些程序和数据应被调出主存(物理内存);四是更新:要确保主存与辅存(虚拟内存)数据的一致性。其中替换问题与调度问题一并统一作为调度问题来处理。虚拟内存调度方式有分页式、段式、段页式3种。页式调度是将逻辑和物理地址空间都分成固定大小的页。物理内存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度虚拟存储中程序的各页可以离散装入物理内存中不同的页面位置。段式调度是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长。将这两种方法结合起来便构成段页式调度。在某些情况下,操作系统忙于从物理内存到虚拟内存调入、调出页,CPU资源占用很大,内存操作等待时间很长,通常称为颠簸(Thrashing)现象。操作系统通常可以把一个当前不活动的进程所占用的内存调出到虚拟内存中,而把正在操作的活动进程尽量放在物理内存中。但是当一个进程占用的内存就已超过物理内存容量时,操作系统虚拟内存调试方法就有局限性。在这种情况下我们常遇到应用软件的速度性能大幅度下降,甚至出现假死机现象。另一个问题是操作系统多考虑一般性问题,当物理内存基本耗尽时,才开始调度使用虚拟内存,随后如果内存分配需求大的话,伴随着大量的虚拟内存调度,速度性能成指数下降。一类大数据处理中需要大量分配内存,每次分配的内存较大,比如100KB到10MB,而且很多分配的内存尺寸是相同或相近的,比如处理同样大小的大量数据。通常当分配总量接近或超过可用的计算机物理内存中,操作系统启用虚拟内存管理。但是操作系统虚拟内存管理并不能最佳化处理这种情况,虚拟内存调度效率低、频繁调入、调出,数据移动过多等,会导致这类大数据处理在数据量很大的情况下,速度非常慢,甚至无法处理。
技术实现思路
本专利技术的目的在于为解决上述问题,提供一种大数据处理中的虚拟内存管理方法及其装置,以优化大数据处理中虚拟内存的管理,减小虚拟内存调度中的颠簸(Thrashing)现象,加强虚拟内存调度准确性、预见性,从而提升系统性能。本专利技术虚拟内存管理方法的特征在于其中的虚拟内存调度管理至少包括:1、内存分配单元管理:基本处理和管理的内存操作以内存分配单元为单位,内存分配单元采用大小配对分配方法;大内存分配时,安排一个分配单元,分配单元大小mUnitSize=申请大小RequestSize×125%;前段BigMem区分配大数据,后段LitMem区分配小数据;小内存分配时,优先在已安排的分配单元中找LitMem空闲区,若找到分配单元向后对齐,若未找到安排分配到小内存分配区。2、内存分配单元访问关联综合指数:反映内存分配单元优先调出到虚拟内存的指标,第n个分配单元访问关联综合指数:Xn=(当前时间-最后一次访问时间)×Fa×Fm/Fn2,其中时间单位是毫秒,Fa为内存分配单元平均访问频次,Fm为内存分配单元最大访问频次,Fn为第n个分配单元访问频次;当Xn>Xa时,第n个内存分配单元可以调出到虚拟内存,其中Xa为访问关联综合指数平均值。3、虚拟内存调度匹配置换:(1)虚拟内存调度仅调入或调出内存分配单元中较大的内存块,以减少调度执行次数;(2)内存分配单元中较小的内存块需要时在物理内存中移动,以少量的内存数据移动增加虚拟内存调度转换匹配率;(3)虚拟内存调度置换比较时,源和目标内存分配单元大小只要75%相近就属于匹配可转换对象;这样在大数据处理中很多数据大小相近的情况下,虚拟内存调度准确率高、效率高;(4)物理内存中能否调出通过访问关联综合指数来决定;(5)总是保持必要可用物理内存空间,称为最小周转备用区MinSpareMem,来保证虚拟内存调度过程不影响系统正常运行。本专利技术方法可以按以下步骤实现:1、初始化:向操作系统申请一块较大且连续的物理内存,在磁盘创建或打开虚拟内存映像文件,文件大小为4G-32G,根据应用配置来确定;注意此文件不是windows中的PageFile.sys。2、小内存分配:申请分配小于BigMemSize的内存时执行小内存分配,在已安排的内存分配单元中查找L_MemArea为空、且可用大小大于申请尺寸RequestSize的单元,找到则记录返回,未找到则在小内存分配区内分配。3、创建内存分配单元:根据内存分配申请尺寸大小RequestSize,在管理的物理内存建立一个大小为RequestSize×125%的内存分配单元并记录,如果可用物理内存小于MinSpareMem时,启动步骤9。4、大内存分配:申请分配大于BigMemSize的内存时执行大内存分配,如果有内存分配单元的BigMem区已释放,且大小合适,则直接选用、记录并返回;否则,如果可用物理内存小于最小周转备用内存MinSpareMem时,启动调出任务,同时执行步骤3,然后把新单元返回来申请者。5、小内存位置调整:在内存分配单元匹配处理时,因为不考虑小内存区是否有数据,如果内存分配单元被重新使用,且新的使用中BigMemSize会覆盖到小内存区时,小内存区需要进行移动,移动方法为执行步骤2,并拷贝数据,然后小内存区初始化备用。6、一般内存分配:根据申请内存大小分别选择执行步骤2和步骤4。7、内存数据访问:根据地址映射表确定所访问数据是否在物理内存中,在物理内存中直接访问,否则选择执行调出任务,然后执行调入任务并访问数据。8、内存分配单元匹配处理:源内存分配单元大小为目标内存分配单元的1/2~1倍即为匹配成功;然后检测目标内存分配单元的小内存分配区时否有数据,源内存分配单元的大内存区数据移到目标内存分配单元时,是否会覆盖目标内存分配单元的小内存数据,如果会覆盖则执行步骤5。9、内存分配单元调出:根据内存分配单元访问关联综合指数以及调出大小需求,选择访问关联综合指数最合适的调出内存分配单元,可以选择调出几个问关联综合指数相等的内存分配单元;如果被调出的内存分配单元的小内存分配区有数据则执行步骤5。10、内存分配单元调入:先执行步骤8,如果未找到匹配的内存分配单元则,则执行步骤3,将本文档来自技高网
...
大数据处理中的虚拟内存管理方法及其装置

【技术保护点】
一种大数据处理中的虚拟内存管理方法,其特征在于其中的虚拟内存调度管理至少包括: (1)、内存分配单元管理:基本处理和管理的内存操作以内存分配单元为单位,内存分配单元采用大小配对分配方法;大内存分配时,安排一个分配单元,分配单元大小mUnitSize=申请大小RequestSize×125%;前段BigMem区分配大数据,后段LitMem区分配小数据;小内存分配时,优先在已安排的分配单元中找LitMem空闲区,若找到分配单元向后对齐,若未找到安排分配到小内存分配区; (2)、内存分配单元访问关联综合指数:反映内存分配单元优先调出到虚拟内存的指标,第n个分配单元访问关联综合指数:Xn=(当前时间‑最后一次访问时间)×Fa×Fm/Fn2,其中时间单位是毫秒,Fa为内存分配单元平均访问频次,Fm为内存分配单元最大访问频次,Fn为第n个分配单元访问频次;当Xn>Xa时,第n个内存分配单元可以调出到虚拟内存,其中Xa为访问关联综合指数平均值; (3)、虚拟内存调度匹配置换: (a)虚拟内存调度仅调入或调出内存分配单元中较大的内存块,以减少调度执行次数; (b)内存分配单元中较小的内存块需要时在物理内存中移动,以少量的内存数据移动增加虚拟内存调度转换匹配率; (c)虚拟内存调度置换比较时,源和目标内存分配单元大小只要75%相近就属于匹配可转换对象;这样在大数据处理中很多数据大小相近的情况下,虚拟内存调度准确率高、效率高; (d)物理内存中能否调出通过访问关联综合指数来决定; (e)总是保持必要可用物理内存空间,称为最小周转备用区MinSpareMem,来保证虚拟内存调度过程不影响系统正常运行。...

【技术特征摘要】
1.一种大数据处理中的虚拟内存管理方法,其特征在于其中的虚拟内存调度管理至少包括:(1)、内存分配单元管理:基本处理和管理的内存操作以内存分配单元为单位,内存分配单元采用大小配对分配方法;大内存分配时,安排一个分配单元,分配单元大小mUnitSize=申请大小RequestSize×125%;前段大内存分配区BigMem区分配大数据,后段小内存分配区LitMem区分配小数据;小内存分配时,优先在已安排的分配单元中找LitMem空闲区,若找到分配单元向后对齐,若未找到安排分配到小内存分配区;(2)、内存分配单元访问关联综合指数:反映内存分配单元优先调出到虚拟内存的指标,第n个分配单元访问关联综合指数:Xn=(当前时间-最后一次访问时间)×Fa×Fm/Fn2,其中时间单位是毫秒,Fa为内存分配单元平均访问频次,Fm为内存分配单元最大访问频次,Fn为第n个分配单元访问频次;当Xn>Xa时,第n个内存分配单元可以调出到虚拟内存,其中Xa为访问关联综合指数平均值;(3)、虚拟内存调度匹配置换:(a)虚拟内存调度仅调入或调出内存分配单元中大于大内存的分界线BigMemSize的内存块,以减少调度执行次数,其中BigMemSize=100KB-10MB,表示大内存的分界线;(b)内存分配单元中较小的内存块需要时在物理内存中移动,以少量的内存数据移动增加虚拟内存调度转换匹配率;(c)虚拟内存调度置换比较时,源和目标内存分配单元大小相差小于25%都属于匹配可转换对象;(d)物理内存中能否调出通过访问关联综合指数来决定;(e)总是保持必要可用物理内存空间,称为最小周转备用区MinSpareMem,来保证虚拟内存调度过程不影响系统正常运行。2.如权利要求1所述的大数据处理中的虚拟内存管理方法,其特征在于虚拟内存调度管理按以下步骤实现:a、初始化:向操作系统申请一块较大且连续的物理内存,在磁盘创建或打开虚拟内存映像文件,文件大小为4G-32G;b、小内存分配:申请分配小于BigMemSize的内存时执行小内存分配,在已安排的内存分配单元中查找L_MemArea为空、且可用大小大于申请尺寸RequestSize的单元,找到则记录返回,未找到则在小内存分配区内分配,其中L_MemArea表示小内存分配区;c、创建内存分配单元:根据内存分配申请尺寸大小RequestSize,在管理的物理内存建立一个大小为RequestSize×125%的内存分配单元并记录,如果可用物理内存小于MinSpareMem时,启动步骤i;d、大内存分配:申请分配大于BigMemSize的内存时执行大内存分配,如果有内存分配单元的BigMem区已释放,且大小合适,则直接选用、记录并返回;否则,如果可用物理内存小于最小周转备用内存MinSpareMem时,启动调出任务,同时执行步骤c,然后把新单元返回给申请者;e、小内存位置调整:在内存分配单元匹配处理时,不考虑小内存区是否有数据,如果内存分配单元被重新使用,且新的使用中BigMemSize会覆盖到小内存区时,小内存区需要进行移动,移动方法为执行步骤b,并拷贝数据,然后小内存区初始化备用;f、一般内存分配:根据申请内存大小分别选择执行步骤b和步骤d;g、内存数据访问:根据地址映射表确定所访问数据是否在物理内存中,在物理内存中直接访问,否则选择执行调出任务,然后执行调入任务并访问数据;h、内存分配单元匹配处理:源内存分配单元大小为目标内存分配单元的1/2~1倍即为匹配成功;然后检测目标内存分配单元的小内存分配区时是否有数据,源内存分配单元的大内存区数据移到目标内存分配单元时,是否会覆盖目标内存分配单元的小内存数据,如果会覆盖则执行步骤e;i、内存分配单元调出:根据内存分配单元访问关联综合指数以及调出大小需求,选择访问关联综合指数最合适的调出内存分配单元,如果被调出的内存分配单元的小内存分配区有数据则执行步骤e;j、内存分配单元调入:先执行步骤h,如果未找到匹配的内存分配单元则,则执行步骤c,将虚拟内存中目标内容拷贝到找到或新分配的内存分配单元中,记录更新地址映射表;K、计算内存分配单元访问关联综合指数:在调出内存分配单元查找匹配时,计算当前的访问关联综合指数,每个内存分配单元的访问关联综合指数Xn=(当前时间-最后一次访问时间)×Fa×Fm/Fn2。3.一种大数据处理中的虚拟内存管理装置,其特征在于包括:访问接口模块:为系统应用提供内存分配、数据访问的功能,包含物...

【专利技术属性】
技术研发人员:郑家亮雷晓凌
申请(专利权)人:云南大学
类型:发明
国别省市:云南;53

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

1