首页 / 专利库 / 专利权 / 优先权文件 / 用于大数据体的先进内存管理体系

用于大数据体的先进内存管理体系

阅读:516发布:2020-05-12

专利汇可以提供用于大数据体的先进内存管理体系专利检索,专利查询,专利分析的服务。并且一种内存管理系统,包括用于存储分页文件的存储设备203;耦合到该存储设备的一个优先权链接列表206,其中该优先权链接列表的 节点 与所述存储设备的分页文件对应;以及包含多个数据 缓冲器 的虚拟内存空间201,每个数据缓冲器耦合到该优先权链接列表的一个唯一的节点。,下面是用于大数据体的先进内存管理体系专利的具体信息内容。

1.一种管理用于大数据体的内存系统的方法,包括提供一个中央 内存管理系统,该系统包括一个程序化计算机的多个应用和物理内存 之间的内存管理接口
2.如权利要求1所述的方法,进一步包括保持数据缓冲器的一个 全局优先权列表,该数据缓冲器由所述多个应用分配,作为链接列表, 其中该列表按照数据缓冲器被所述多个应用访问的顺序排序。
3.如权利要求2所述的方法,其中所述全局优先权列表将存储设 备的数据映射到虚拟内存的数据缓冲器,其中所述虚拟内存的数据缓 冲器在被所述多个应用请求时,被页入到物理内存。
4.如权利要求1所述的方法,进一步包括:
指定一个低物理内存限制;和
监视可用物理内存的量,一旦判断可用物理内存下降到该低物理内 存限制以下,则通过所述内存管理接口将最远使用过的内存缓冲器从 物理内存页出,从而将可用物理内存增加到大约为一个指定的高物理 内存限制。
5.如权利要求1所述的方法,进一步包括:
判断耦合到所述物理内存的内存系统的虚拟地址空间中未使用的 数据缓冲器;
标记该未使用的数据缓冲器;和
一旦检测到所述程序化计算机正在分配的虚拟内存多于计算机处 理器所能寻址的量,则通过从所述虚拟地址空间解映射所述未使用的 数据缓冲器来恢复虚拟地址空间。
6.如权利要求1所述的方法,进一步包括:
通过所述内存管理接口,在所述多个应用之间共享所述物理内存中 存储的数据缓冲器,其中所述数据缓冲器包含共享数据;和
确定由所述多个应用访问的缓冲器的优先权列表,其中该优先权列 表将数据缓冲器映射到存储设备。
7.如权利要求1所述的方法,进一步包括:
根据其中包含的共享数据唯一地识别一个给定数据缓冲器,其中创 建该给定数据缓冲器的一个创建应用指定一个标识符;和
判断该标识符是否先前已经指定给一个共享数据缓冲器,一旦判 断该标识符已经在物理内存中存在,则赋予该创建应用访问该共享数 据缓冲器的权利。
8.如权利要求1所述的方法,进一步包括:
直接利用内存地址从使用中央内存管理系统的一个应用中寻址指 向该中央内存管理系统中的一个数据缓冲器的对象;和
使用一个密钥确认该内存地址,其中该密钥包含唯一的信息,并且 为该对象的发送方和接收方所知。
9.如权利要求8所述的方法,进一步包括:
提供唯一的句柄;
将所述内存地址和句柄结合为一个快速恢复句柄;
在两个或多个应用中共享该快速恢复句柄;和
在访问一个对象时,判断由该快速恢复句柄标识的对象是否有效。
10.如权利要求2所述的方法,其中保持所述全局优先权列表进 一步包括:
在创建一个数据缓冲器后,对应于一个该数据缓冲器向所述全局优 先权列表加入一个对象;
在判断对应于该对象的数据缓冲器指针被删除后,将该对象从所述 全局优先权列表中去除,其中该对象在全局优先权列表中的父对象和 子对象在去除该对象之前被链接;和一旦判断该对象要被使用时,将该对象移到列表末尾,其中在全局 优先权列表末尾的对象比在全局优先权列表开头的对象被溢出的可能 性小。
11.如权利要求8所述的方法,进一步包括通知所述多个应用, 由于内存映射或解映射操作,缓冲器地址改变。
12.一个内存管理系统,包括:
用于存储分页文件的存储设备;
耦合到该存储设备的一个优先权链接列表,其中该优先权链接列表 的节点与所述存储设备的分页文件对应;以及
包含多个数据缓冲器的虚拟内存空间,每个数据缓冲器耦合到该优 先权链接列表的一个唯一的节点。
13.如权利要求12所述的系统,包括两个或多个存储设备。
14.如权利要求12所述的系统,其中一个内存管理系统耦合到一 个中央图像处理服务器,在至少一个应用与该内存管理系统之间提供 接口。
15.一种机器可读程序存储设备,明确(tangibly)实施可由该 机器执行的指令的程序,以执行用于管理大数据体的内存系统的方法 步骤,该方法步骤包括:
提供一个中央内存管理系统,该系统包括一个程序化计算机的多个 应用与物理内存之间的一个内存管理接口。
16.如权利要求15所述的方法,进一步包括保持数据缓冲器的一 个全局优先权列表,该数据缓冲器由所述多个应用分配,作为链接列 表,其中该列表按照数据缓冲器被所述多个应用访问的顺序排序。
17.如权利要求16所述的方法,其中所述全局优先权列表将存储 设备的数据映射到虚拟内存的数据缓冲器,其中所述虚拟内存的数据 缓冲器在被所述多个应用请求时,被页入到物理内存。
18.如权利要求15所述的方法,进一步包括:
指定一个低物理内存限制;和
监视可用物理内存的量,一旦判断可用物理内存下降到该低物理内 存限制以下,则通过所述内存管理接口将最远使用过的内存缓冲器从 物理内存页出,从而将可用物理内存增加到大约为一个指定的高物理 内存限制。
19.如权利要求15所述的方法,进一步包括:
判断耦合到所述物理内存的内存系统的虚拟地址空间中未使用的 数据缓冲器;
标记该未使用的数据缓冲器;和
一旦检测到所述程序化计算机正在分配的虚拟内存多于计算机处 理器所能寻址的量,则通过从所述虚拟地址空间解映射所述未使用的 数据缓冲器来恢复虚拟地址空间。
20.如权利要求15所述的方法,进一步包括:
通过所述内存管理接口,在所述多个应用之间共享所述物理内存中 存储的数据缓冲器,其中所述数据缓冲器包含共享数据;和
确定由所述多个应用访问的缓冲器的优先权列表,其中该优先权列 表将数据缓冲器映射到存储设备。
21.如权利要求15所述的方法,进一步包括:
根据其中包含的共享数据唯一地识别一个给定数据缓冲器,其中创 建该给定数据缓冲器的一个创建应用指定一个标识符;和
判断该标识符是否先前已经指定给一个共享数据缓冲器。一旦判断 该标识符已经在物理内存中存在,则赋予该创建应用访问该共享数据 缓冲器的权利。
22.如权利要求15所述的方法,进一步包括:
直接利用内存地址从使用中央内存管理系统的一个应用中寻址指 向该中央内存管理系统中的一个数据缓冲器的对象;和
使用一个密钥确认该内存地址,其中该密钥包含唯一的信息,并且 为该对象的发送方和接收方所知。
23.如权利要求16所述的方法,其中保持所述全局优先权列表进 一步包括:
在创建一个数据缓冲器后,对应于一个该数据缓冲器向所述全局优 先权列表加入一个对象;
在判断对应于该对象的数据缓冲器指针被删除后,将该对象从所述 全局优先权列表中去除,其中该对象在全局优先权列表中的父对象和 子对象在去除该对象之前被链接;和一旦判断该对象要被使用时,将该对象移到列表末尾,其中在全局 优先权列表末尾的对象比在全局优先权列表开头的对象被溢出的可能 性小。
24.如权利要求19所述的方法,进一步包括通知所述多个应用, 由于内存映射或解映射操作,缓冲器地址改变。

说明书全文

技术领域

发明涉及数据处理,更具体地涉及一种用于处理大数据体的虚拟 内存管理系统和方法。

背景技术

用于可视化三维体数据的应用采用内存增强方法,如Ray-Casting、 Splatting、以及Shear-Warp。通过这些方法可视化的体数据可以从医 疗层析成像扫描器如磁共振(MR)、计算机断层照相(CT)、电子发射X 射线层析照相(PET)、或任何其它能够产生一系列类似栅格阵列的切片 的其它装置中获得。许多体可视化方法是利用程序化计算机实现的,依 赖于计算机的虚拟内存和用于存储和访问切片数据的虚拟分页系统。当 今可用的个人计算机典型地采用诸如Windows NT、Windows XP、Unix、 或Linux的操作系统。这些操作系统运用虚拟内存寻址和虚拟分页的方 法。当为大的三维体的大量切片分配内存,并且被分配的内存大于程序 化计算机的可用随机存取存储器(RAM),也称为物理内存时,该程序化 计算机中虚拟内存寻址和虚拟分页的性能显著降低。该虚拟内存寻址和 虚拟分页性能的降低还导致体可视化方法性能的显著降低。
由于最近层析成像领域的技术进步,提高了空间分辨率数据采集 速度,导致产生了包含数百甚至数千切片的大数据集,使得内存限制进 一步加剧。例如,使用西子SOMATOM VolumeZoomTMCT扫描器可以快速 产生1024个切片的序列,其中每个切片包括512×512像素的一个栅格, 从而产生512×512×1024个体积元素的三维体(超过26.8千万个数据 值)。在石油天然气工业中,地震数据测量值也存储在很大的三维体中, 其中具有多达2048×2048×2048个栅格元素(超过85亿个数据值)。这 些类型的数据可能大于现代计算机上可用的RAM存储量。一些三维阵列 可以大到超出多数个人计算机和图形工作站中的32位中央处理器(CPU) 的内存寻址能,其典型地限于42亿个数据元素。
本领域中可用的传统虚拟分页方法的限制之一是它们针对通用目的 设计的,它们的性能并不是针对有效处理大量三维体的切片而优化。当 计算机的RAM由于过多切片缓冲而过载时,虚拟分页系统将切片内存缓 冲器的部分页出到盘的可能性增加,该部分是体可视化方法随后上就 要用到的,从而可能导致不断的页入/页出效应,严重降低计算机的处理 性能。该问题通称为“盘颠簸(disk thrashing)”。
例如,Windows XP虚拟内存管理器只有当所有物理内存都用尽时(即 当再没有可用内存时),才开始将内存分页到盘。在这样的低内存条件 下,所有应用都变得反应非常迟钝,因为操作系统忙于将内存段页出到 盘和从盘页入。由于每个分页的段只是64K字节,因此需要很长时间才 能从低内存状态恢复。
此外,Windows XP虚拟内存管理器不知道哪些图像数据缓冲器正被 使用,哪些不是,因此,它将所有图像数据缓冲器都保留在内存中,直 到所有物理内存都饱和。当将图像数据分页到盘上时,其不知道该数据 是否很快就会再次需要,因此,效率将很低。
另一个限制是32位CPU的虚拟内存寻址能力,其寻址大约42亿字 节元素。在一些虚拟内存寻址系统中,32个地址位中的一位为操作系统 的内核保留,因此,剩余的可用于虚拟内存分配的寻址空间减少了一半, 即21亿字节元素。这样,虚拟内存的大小可能被超过,例如,具有2048 个切片缓冲器,每个缓冲器具有2048×2048栅格元素的三维地震数据体 将要求超过85亿字节元素的存储空间,超过32位CPU的虚拟内存寻址 能力。如果需要分配多个大数据体,用于切片缓冲器的有限个数的虚拟 内存地址也会存在问题。
如上所述,由于有限的物理内存量、有限的虚拟地址空间、和操作 系统虚拟内存管理和交换文件的低效率,计算机很难适应处理大数据体 的应用。
因此,需要一种高效的内存管理方法来处理大数据体。

发明内容

根据本发明的一个实施例,一种管理用于大数据体的内存系统的方 法包括由一个中央内存管理系统在多个应用和程序化计算机的物理内存 之间提供一个接口
该方法进一步包括保持一个由多个应用分配的内存缓冲器的全局优 先权列表作为链接列表,其中该列表按照每个缓冲器被一个应用最后访 问的时间排序。该优先权列表将存储设备的数据映射到虚拟内存的缓冲 器,其中所述虚拟内存的缓冲器当被所述多个应用请求时,被页入到物 理内存。
该方法包括指定一个低物理内存限制,并监视可用物理内存量,一 旦判断可用物理内存量降到低物理内存限制以下,即通过所述内存管理 接口将最近用过的切片缓冲器从物理内存页出,从而将可用物理内存增 加到特定的高物理内存限制左右。
该方法进一步包括判断耦合到物理内存的内存系统的虚拟地址空间 中未使用的数据缓冲器,标记该未使用的数据缓冲器,以及一旦检测到 程序化计算机正在分配多于计算机处理器所能寻址的虚拟内存时,通过 从虚拟地址空间解映射未使用的数据缓冲器,恢复虚拟地址空间。
该方法进一步包括通过内存管理接口,在多个应用之间共享物理内 存中存储的数据缓冲器,其中所述数据缓冲器包含共享数据,以及判断 由所述多个应用访问的缓冲器的优先权列表,其中所述优先权列表将数 据缓冲器映射到一个存储设备。
该方法包括根据所包含的共享数据唯一地识别一个给定的数据缓冲 器,其中创建该给的数据缓冲器的一个创建应用指定一个标识符,以及 判断该标识符是否先前已经被指定给一个共享数据缓冲器,一旦判断该 标识符已经存在于物理内存中,则给予所述创建应用访问该共享数据缓 冲器的权力。
该方法包括在一个中央内存管理系统中利用使用该中央内存管理系 统的应用内部的内存地址寻址指向一个数据缓冲器的对象,并使用一个 密钥确认该内存地址,其中所述密钥包括唯一的信息,并且为对象的发 送者和接收者所知。该方法包括提供唯一的句柄,在快速恢复句柄中组 合该内存地址和句柄,在两个或更多应用之间共享该快速恢复句柄,以 及一旦访问对象,即判断由快速恢复句柄识别的该对象是否有效。
保持全局优先权列表进一步包括在创建一个数据缓冲器后,对应于 该数据缓冲器向全局优先权列表加入一个对象,以及在判断对应于该对 象的数据缓冲器指针删除后,将该对象从全局优先权列表中去除。其中 该对象在全局优先权列表中的父对象和子对象在去除该对象之前被链 接。保持列表进一步包括一旦判断该对象要被使用时,将该对象移到列 表末尾,其中在全局优先权列表末尾的对象比在全局优先权列表开头的 对象被溢出(flush)的可能性小。该方法包括通知所述多个应用,由于 内存解映射或映射操作,缓冲器的地址改变。
根据本发明的一个实施例,内存管理系统包括:一个或多个存储设 备,用于存储分页文件;耦合到该存储设备的一个优先权链接列表,其 中该优先权链接列表的节点与存储设备中的分页文件对应;以及包含多 个数据缓冲器的虚拟内存空间,每个数据缓冲器耦合到优先权链接列表 的一个唯一的节点。
根据本发明的一个实施例,内存管理系统或者与多个应用直接接 口,或者耦合到一个中央图像处理服务器,该图像处理服务器再提供至 少一个应用与内存管理系统之间的接口。
附图说明
下面将参考附图更详细描述本发明的优选实施例:
图1示出有关图像处理应用的内存利用的典型使用情况;
图2示出根据本发明一个实施例的内存管理系统中物理、虚拟、和 硬盘内存之间的关系,以及通过优先权链接列表对其进行管理;
图3为根据本发明一个实施例的系统;
图4为根据本发明一个实施例实现内存管理的系统;
图5示出根据本发明一个实施例的应用服务器体系;
图6示出根据本发明一个实施例用于多个应用的内存管理系统;
图7示出根据本发明一个实施例用于多个应用的内存管理系统;
图8示出根据本发明一个实施例的中央服务内存管理系统的一个实 施例中使用的将对象地址与系统内存映射句柄结合起来的快速恢复句 柄。

具体实施方式

根据本发明的一个实施例,计算机内存被有效管理,其中内存根据 数据体分配。一种管理内存的方法通过举例,根据用于二维切片和包含 这样的切片的三维体的存储和可视化的成像应用加以描述。参考图2,为 每个二维切片分配一系列内存缓冲器201。每个内存缓冲器中包含的数据 例如是从医疗层析成像扫描器如磁共振(MR)、计算机断层照相(CT)、 正电子发射X射线层析照相(PET)、或任何其它能够产生一系列类似栅 格阵列的切片的其它装置中获得。每个内存缓冲器或切片缓冲器具有其 自身的虚拟分页文件,如202,其可以从存储设备203页入或页出到存 储设备203。存储设备可以是例如磁硬盘设备。内存管理器204能够在 多个存储设备如205上创建和访问多个虚拟分页文件,从而使实现内存 管理器204的程序化计算机的存储能力最大化。
根据本发明的一个实施例,通过采用记录最近被使用的和最远 (least recently)被使用的二维切片缓冲器201的全局链接列表206, 改善了程序化计算机的现有虚拟内存分页系统和磁硬盘装置的性能。当 程序化计算机访问切片缓冲器的数据时,内存管理器204判断程序化计 算机的可用RAM量是否降低到预定下限以下。如果是,则将一组最远使 用过的内存缓冲器页出到存储设备,如硬盘设备,直到恢复了预定量的 可用RAM。这样,防止了计算机内存过载,允许包括大量切片的三维体的 有效可视化。
操作大量数据的应用可能向程序化计算机请求多于实际的资源才能 有效操作。例如,存在允许用户创建任意期望数量的光栅和各种大小的 位平面对象的图像处理应用。大量的这些对象可能很快用尽所有可用的 物理内存(如RAM内存),迫使虚拟内存管理器如Windows XP虚拟内存 管理器不断将内存段交换到盘,从而大大降低系统性能。根据本发明的 一个实施例,采用内存管理体系分配你存缓冲器防止了低内存状态,并 保持了期望平的性能和交互性。该内存管理体系可以就任何对象类型 实现。对象类型可以体现分组、从属/相关、通知、或其它高级功能。
应当理解,本发明可以在各种形式的硬件软件固件、专用处理 器、或者其组合中实现。在一个实施例中,本发明可以实现为软件,作 为明确体现在程序存储设备上的应用程序。该应用程序可以上载到包含 任何合适结构的及其中并由其执行。
参考图3,根据本发明的一个实施例,用于实现本发明的计算机系统 301可以包括:中央处理器(CPU)302、内存303、和输入/输出(I/O) 接口304。计算机系统301通常通过I/O接口304耦合到显示器305和 各种输入设备306,如鼠标键盘。支持电路可以包括诸如高速缓存、电 源、时钟电路、和通信总线等电路。内存103可以包括RAM、ROM、盘驱 动、带驱动等,或其结合。本发明可以实现为存储在内存303中并且由 CPU302执行以处理来自信号源308的信号的程序。同样,计算机系统301 是通用计算机系统,当执行本发明的程序307时成为专用计算机系统。
计算机系统301还包括操作系统和微指令代码。此处所描述的各种 处理和功能可以是微指令代码的一部分,或者是应用程序的一部分(或 其组合),其通过操作系统执行。此外,各种其它外部设备也可连接到计 算机平台,如附加的数据存储设备和打印设备。
进一步应当理解,因为附图中描述的部分组成系统部件和方法步骤 可以实现为软件,系统部件(或处理步骤)之间的实际连接可能随本发 明被编程的方法不同而不同。给出此处提供的本发明的启示,本领域的 普通技术人员将能够想象出本发明的这些和类似的实现或配置。
参考图4,内存管理系统401可以同时支持多个应用(402、404、 405)。即,内存管理系统401适合内存库的多个实例。应用程序可以直 接与内存管理系统401接口,也可通过其它层如库服务器403接口。
管理内存系统的方法包括在多个应用之间共享物理内存中存储的数 据缓冲器,其中所述数据缓冲器包含共享数据。内存管理器知道物理内 存中存储的所有共享数据缓冲器。该方法包括根据所包含的共享数据识 别一个给定数据缓冲器,其中创建给定数据缓冲器的创建应用指定一个 标识符。该标识符对数据缓冲器的数据是唯一的,因此,如果两个应用 试图创建同一数据的数据缓冲器,将产生同样的标识符。该方法包括判 断所述标识符先前是否已被分配给一个共享数据缓冲器,一旦判断该标 识符已经存在于物理内存中,则赋予所述创建应用访问该共享数据缓冲 器的权力。
根据本发明的一个实施例,提供了内存映射对象类型和内存管理器 对象类型。
内存映射对象使用内存映射的缓冲器分配内存。内存映射的缓冲器 可以向任何其它内存缓冲器一样使用,例如被分配C语言运行时间的 malloc或new函数,但此外内存映射的缓冲器提供其它优点。
不是被缺省操作系统的交换文件支持,每个内存映射的缓冲器由临 时分页文件支持,该分页文件可以按照程序指定。这使得可以分配的内 存比能够适合典型操作系统交换文件的多。内存映射对象还允许在不同 盘上创建临时文件,其中总的分配内存可以与多个盘上可用的所有自由 空间的总和一样多,如若干G字节。
内存映射的缓冲器可以在不同处理和/或应用之间共享。这对于在客 户-服务器体系中的过程之间传递数据是很重要的,例如,见图5,其中 不必制作数据的附加拷贝。
与其它内存缓冲器(如,被分配malloc或new的缓冲器)不同,根 据本发明一个实施例的内存映射缓冲器可以按照程序溢出物理内存。
再参考成像应用的例子,当创建光栅或位平面对象时,在内部图像 数据被存储在内存映射对象类型的例子中,其分配一个内存映射的图像 缓冲器。一组配置参数(如,由操作系统提供)允许对参数的说明,如 需要多少盘进行内存映射,每个盘可以用多少空间,以及临时分页文件 将被创建的路径名称。
内存管理器对象的一个实例负责监视可用的自由物理内存,并用于 当接近低内存状态时,将最远使用过的内存映射缓冲器溢出到盘。这样, 内存管理器对象能够记录哪些图像缓冲器正被使用,哪些图像缓冲器最 近没有被使用。通过利用活动/不活动缓冲器的知识,内存管理器对象可 以选择哪些缓冲器被溢出,从而提供比利用如Windows NT虚拟内存管理 器可获得的更高的分页效率。
内存管理器对象可以一次将整个内存映射图像缓冲器分页到盘,从 而提供附加的自由物理内存。
内存管理器对象可以持续溢出,直到将期望的内存大小如若干M字 节被页出到盘。因此,低内存状态之间的周期可以延长。
内存管理器对象可以在所有内存饱和之前将内存映射缓冲器溢出到 物理内存之外,从而维持足够的内存,使得应用能够具有期望的响应时 间。
一组配置参数允许规定在缓冲器被溢出之前自由物理内存的最小 量,以及溢出缓冲器后需要恢复的物理内存量。
参考图5,内存管理器对象501包括由客户图像处理应用创建的所有 内存映射对象的链接列表502、503、505。链接列表502保持排序顺序, 从而最远使用的缓冲器总能在列表开头找到(如首先将被溢出的项目), 而最近使用的缓冲器在列表末尾找到(如最后将被溢出的项目)。
用于保持链接列表为排序顺序的方法效率很高,且几乎不需要系统 开销。链接列表不需要由排序操作重新安排,所涉及的操作仅仅是在列 表的末尾添加或移去项目。通过实现下列步骤使链接列表保持排序:
只要创建一个图像缓冲器,则新分配的一个内存映射对象将其自己 加到列表末尾,因为它很可能很快就被用到。
只要删除一个图像缓冲器,其对应内存映射对象自己从列表中去 除,并将其父链接与子链接结合,因此,该列表在删除项目时不需要被 遍历。
只要图像缓冲器要被使用,其对应内存映射对象被移到列表末尾, 从而使其不易被溢出。然后检查总的自由物理内存,如果降到特定阈值 之下,列表中的第一个项目被溢出到盘,并且在列表的末尾还移动。
这些步骤足以保证当前使用的图像缓冲器和刚刚被溢出的缓冲器在 列表的末尾。在列表开头剩余的项目总是最远使用过的缓冲器。应当理 解,可以预期其它保持链接列表的方法,本领域的技术人员可以理解这 些其它方法的实现。例如,最频繁使用的链接列表。
内存映射对象允许应用在访问一个缓冲器时将其闭。该信息存储 在对应于可以访问内存管理器对象的缓冲器的一个标记中。因此,根据 这些标记,内存管理器知道哪些缓冲器当前被图像处理应用使用。利用 指示缓冲器是否被使用的标记,内存管理器对象能够解映射当前不被使 用的内存映射缓冲器,以减小应用的虚拟地址空间上的印记。该优化发 生在请求一个不适合图像处理应用的可用虚拟地址空间的新的缓冲器 时,该优化对于应用本身是透明的,允许寻址比处理器体系自然支持的 更多的数据,如2G字节。
当内存管理器对象从应用的虚拟地址空间解映射一个缓冲器,并且 随后当该缓冲器再次被访问时将其映射回去时,虚拟地址空间内的地址 可能与创建该缓冲器时初始指定的地址不同。因此,需要将应用编程为 不保持超过对应对象生存期的内存映射缓冲器地址,因为它们可能已经 变得无效。但是,根据本发明的一个实施例,任何通过内存映射对象使 用内存映射缓冲器的应用都可以得到关于缓冲器地址是否由于映射操作 而改变的通知,从而应用能够保持最新的数据地址。
上述内存管理实施例也可应用于并行运行的图像处理应用,如图6 和7所示。并行运行的应用使用内存管理器对象401的中央示例 (instance),其管理所有应用的所有内存映射缓冲器的链接列表。关于 哪些缓冲器被溢出以便优化可用物理内存的决定根据该全局列表作出。 一旦选定最老的缓冲器被溢出物理内存,则通知所有持有这些缓冲器的 索引的应用。这样,溢出指令需要由共享该缓冲器的所有应用发出。
为了允许直接访问而不需要附加的列表遍历或查表,需要在集中式 内存管理和应用之间交换内存映射对象示例的地址索引。但是,直接访 问这些地址存在万一对象示例同时被毁坏的情况下非法访问的危险。用 于并行图像处理应用的内存管理的一个实施例可以将内存映射对象地址 801与系统内存映射句柄802结合,以确认内存地址801的完整性,如 图8所示。一旦应用接收到恢复句柄803,则地址指针801只在附加的 系统内存映射句柄802在给定地址也能发现的情况下才被确认。
尽管通过标识符寻址远程对象导致管理标识符的列表时附加的开 销,具体地是每次需要寻址一个对象时需要遍历该列表,但是通过用对 象的内存地址在应用之间直接对其寻址,并利用一个密钥确认该内存地 址,可以减少或消除该附加开销。该密钥提供附加的随对象而变化的信 息,并且为发送者和接收者所知。在一个远程站点,对象的密钥需要存 储在远程对象的内存地址内,例如,作为类成员变量或面向对象的编程 语言中的域。当删除一个对象时,该密钥被一个缺省值覆盖,例如利用 面向对象的编程语言中的类析构函数。将对象的内存地址801与密钥803 组合成单个单元或可恢复句柄803允许以安全方式在逻辑或物理边界内 直接寻址远程对象。在访问可恢复句柄803内存储的内存地址之前,该 远程端判断来自可恢复句柄803的密钥803是否也在给定内存地址801 出现。这只有对生存期尚未终止的对象才会发生。
密钥802可以是任意足够独特的字母数字值,例如,序列号、随机 产生的数字、或与一个对象关联的系统资源的资源句柄。
以上描述了用于处理大数据体的虚拟内存系统和方法的实施例,应 当注意,根据以上叙述,本领域的技术人员能够进行修改和变化,因此 应当理解,可以对本发明的实施例进行变化,这包含在所附权利要求定 义的本发明的范围和主旨内。这样利用细节和专利法要求的特性描述了 本发明,所要求和期望专利保护的范围在所附权利要求中提出。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈