存储器管理制造技术

技术编号:5447550 阅读:170 留言:0更新日期:2012-04-11 18:40
一种用于在计算机系统中执行的软件应用的存储器管理的方法,所述方法包含以下步骤:存储器管理器提供具有预定大小的第一存储器单元作为用于所述软件应用的第一分配空间;所述软件应用将数据存储在所述第一分配空间中;以及通过下列步骤丢弃所述第一分配空间中的无效数据:a)所述存储器管理器提供用于所述软件应用的第二存储器单元;b)标识所述第一分配空间中的有效数据并将所述有效数据复制到所述第二存储器单元,所述有效数据至少包含所述软件应用正在使用的数据;c)在所述第一分配空间中指示所述有效数据已变为无效;d)将所述第一分配空间的一部分映射为在逻辑上与所述第二存储器单元连续,以便定义用于所述软件应用的第二分配空间,其中所述第二分配空间的大小等于所述预定大小;以及e)将所述第一分配空间的剩余部分返回给所述存储器管理器,作为适合重新使用的存储器单元。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及执行中的软件应用的存储器管理,具体而言,涉及垃圾收集过程中的 残存存储器。
技术介绍
运行时环境下存储器管理的设计,通常是为了软件工程师的方便。因此,诸如 Java (Java是Sun Microsystems Inc.的注册商标)的运行时环境包含具有垃圾收集器的 堆存储器(heap memory) 0垃圾收集器是自动标识并自存储器丢弃无效数据(如对象)以 便释放储存空间的运行时工具。垃圾收集是现代计算机系统的效率所享有的奢侈品,使软 件工程师不再需要以编程方式丢弃每个无效对象。现代的垃圾收集算法利用弱代假说(weak generational hypothesis),即大部分 被分配的对象是“短存”的(即对象建立后,在相对较短的时间内即可被丢弃)。为了使用 此假说,对象被分配在称为“新代(nursery)”的存储器堆区中。对此新代进行的垃圾收集 远比主堆频繁,后者存储较旧(年老)的对象,且一般包括称为分配空间和残存空间的二个 区域。随着对象被复制到连续存储器中,新代会自动压缩。复制垃圾收集算法将存活对象从 新代分配空间复制到同时执行压缩的残存存储器(survivor memory) 0残存存储器是具有 可配置大小的新代堆的一部分。例如,残存存储器最多可占分配给新代的总存储器的50%。图Ia是在计算机系统中执行的软件应用202的示意图。每个软件应用都具有由 存储器管理器204所提供的相关堆存储器206。堆存储器206占用一个地址范围,该地址范 围可以是物理地址范围或存储器管理器204将物理存储器映射至其中的逻辑地址范围。例 如,堆存储器206是新代堆,属于较大应用堆的一部分。存储器管理器204可操作以将计算 机系统的存储器单元提供给软件应用202。例如,存储器管理器204可为计算机系统中的操 作系统的一个构件,如内核存储器管理器。堆206的一部分208是专用残存存储器,供垃圾收集过程期间使用。残存存储器 部分208的特征在于,其不可供应用202分配对象使用并被保留以在垃圾收集过程期间使 用。图Ib是图Ia的软件应用202的堆206的示意图。在执行中,软件应用202在堆206 中存储和取回数据。堆206包含对应于所存储的数据的已分配部分(划线及阴影部分)。 此类数据可包含例如分配的软件对象、数据结构、纪录、字段或变量。垃圾收集算法可操作 以周期性地处理堆206以丢弃堆206中分配的未使用数据项。此类算法包含复制垃圾收集 算法。在处理堆206时,垃圾收集算法标识堆206中有效的数据项。有效的数据项是软件 应用202正在使用的数据项。反之,无效的数据项是软件应用202不再需要的数据项。例 如,软件应用202通过例如存储器指针或对象引用来引用有效数据项。垃圾收集算法将此 类已标识的有效数据项复制到残存存储器208。垃圾收集算法可将已标识的有效数据项复 制到残存存储器208内的连续位置,以便压缩所述数据项。随后,仅需保留残存存储器208 中记录的数据项(因此为“残存”),并且堆206中的所有其他数据项(对应于无效的数据 项)皆可被丢弃。4此类复制垃圾收集器的一个问题在于,即使当前没有执行垃圾收集,每个应用也维持其自己的残存存储器。对于具有大量执行中的软件应用以及对应的大量存储器被分配 为残存存储器的系统而言,此问题特别严重。此外,由于残存存储器被保留为在垃圾收集过 程期间使用,软件应用202无法用其存储数据。因此,借助用于复制垃圾收集器的残存存储器提供垃圾收集的益处而无需将堆存 储器专门用作执行中的每个软件应用的残存存储器是有利的。
技术实现思路
本专利技术相应地在第一方面中提供了一种用于在计算机系统中执行的软件应用的 存储器管理的方法,所述方法包含以下步骤存储器管理器提供具有预定大小的第一存储 器单元作为用于所述软件应用的第一分配空间;所述软件应用将数据存储在所述第一分配 空间中;以及通过下列步骤丢弃所述第一分配空间中的无效数据a)所述存储器管理器提供用于所述软件应用的第二存储器单元;b)标识所述第一分配空间中的有效数据并将所述有效数据复制到所述第二存储 器单元,所述有效数据至少包含所述软件应用正在使用的数据;C)在所述第一分配空间中指示所述有效数据已变为无效;d)将所述第一分配空间的一部分映射为在逻辑上与所述第二存储器单元连续,以 便定义用于所述软件应用的第二分配空间,其中所述第二分配空间的大小等于所述预定大 小;以及e)将所述第一分配空间的剩余部分返回给所述存储器管理器,作为适合重新使用 的存储器单元。优选地,所述第二存储器单元的特征在于其大小至少与所述第一分配空间中的 所述有效数据的合计大小(aggregated size)相等。优选地,所述存储器管理器是所述计算机系统的操作系统中的内核存储器管理ο优选地,至少所述步骤b)由垃圾收集器软件例程执行。因此,以此方式,所述第二存储器单元可供执行中的软件应用使用,作为供垃圾收 集之用的残存存储器,并且完成垃圾收集后,软件应用会释放存储器。因此,软件应用仅在 垃圾收集过程期间才消耗残存存储器,进而避免需要将堆存储器专门用作执行中的每个软 件应用的残存存储器。本专利技术相应地在第二方面中提供了一种用于管理在计算机系统中执行的软件应 用的存储器的装置,所述装置包含存储器管理器,其用于提供具有预定大小的第一存储器 单元作为用于所述软件应用的第一分配空间;储存器,其使所述软件应用将数据存储在所述第一分配空间中;以及丢弃器,其用于通过下列步骤丢弃所述第一分配空间中的无效数据a)供应器,其使所述存储器管理器提供用于所述软件应用的第二存储器单元;b)标识器,其用于标识所述第一分配空间中的有效数据并将所述有效数据复制到 所述第二存储器单元,所述有效数据至少包含所述软件应用正在使用的数据;c)指示器,其用于在所述第一分配空间中指示所述有效数据已变为无效;d)映射器,其用于将所述第一分配空间的一部分映射为在逻辑上与所述第二存储 器单元连续,以便定义用于所述软件应用的第二分配空间,其中所述第二分配空间的大小 等于所述预定大小;以及e)存储器取消分配器,其用于将所述第一分配空间的剩余部分返回给所述存储器 管理器,作为适合重新使用的存储器单元。本专利技术相应地在第三方面中提供了一种装置,所述装置包含中央处理单元; 存储器子系统;输入/输出子系统;以及总线子系统,其与所述中央处理单元、所述存储器子系统、所述输入/输出子系统 互连;;以及如上所述的装置。本专利技术相应地在第四方面中提供了一种包含计算机程序代码的计算机程序组件, 当所述计算机程序代码被加载到计算机系统中并在其上执行时,将导致所述计算机执行如 上所述的方法。附图说明以下仅通过实例的方式参考附图更详细地描述本专利技术的优选实施例,这些附图 是图Ia是现有技术中的在计算机系统中执行的软件应用的示意图;图Ib是现有技术中的图Ia的软件应用的堆的示意图;图2是适合本专利技术的实施例的操作的计算机系统的方块图;图3a是根据本专利技术的优选实施例的在计算机系统中执行的软件应用的示意图;图3b到3d是根据本专利技术的优选实施例的在垃圾收集过程期间图3a的堆的示意 图;图4a是根据本专利技术的优选实施例的存储器管理的方法的流程图;图4b是根据本专利技术的优选实施本文档来自技高网
...

【技术保护点】
一种用于在计算机系统中执行的软件应用的存储器管理的方法,所述方法包含以下步骤:存储器管理器提供具有预定大小的第一存储器单元作为用于所述软件应用的第一分配空间;所述软件应用将数据存储在所述第一分配空间中;以及通过下列步骤丢弃所述第一分配空间中的无效数据:a)所述存储器管理器提供用于所述软件应用的第二存储器单元;b)标识所述第一分配空间中的有效数据并将所述有效数据复制到所述第二存储器单元,所述有效数据至少包含所述软件应用正在使用的数据;c)在所述第一分配空间中指示所述有效数据已变为无效;d)将所述第一分配空间的一部分映射为在逻辑上与所述第二存储器单元连续,以便定义用于所述软件应用的第二分配空间,其中所述第二分配空间的大小等于所述预定大小;以及e)将所述第一分配空间的剩余部分返回给所述存储器管理器,作为适合重新使用的存储器单元。

【技术特征摘要】
【国外来华专利技术】EP 2007-11-29 07121859.8一种用于在计算机系统中执行的软件应用的存储器管理的方法,所述方法包含以下步骤存储器管理器提供具有预定大小的第一存储器单元作为用于所述软件应用的第一分配空间;所述软件应用将数据存储在所述第一分配空间中;以及通过下列步骤丢弃所述第一分配空间中的无效数据a)所述存储器管理器提供用于所述软件应用的第二存储器单元;b)标识所述第一分配空间中的有效数据并将所述有效数据复制到所述第二存储器单元,所述有效数据至少包含所述软件应用正在使用的数据;c)在所述第一分配空间中指示所述有效数据已变为无效;d)将所述第一分配空间的一部分映射为在逻辑上与所述第二存储器单元连续,以便定义用于所述软件应用的第二分配空间,其中所述第二分配空间的大小等于所述预定大小;以及e)将所述第一分配空间的剩余部分返回给所述存储器管理器,作为适合重新使用的存储器单元。2.如权利要求1中所述的方法,其中所述第二存储器单元的特征在于其大小至少与 所述第一分配空间中的所述有效数据的合计大小相等。3.如权利要求1中所述的方法,其中所述存储器管理器是所述计算机系统的操作系统 中的内核存储器管理器。4.如权利要求1中所述的方法,其中至少所述步骤b)由垃圾收集器软件例程执行。5.一种用于管理在计算机系统中执行的软件应用的存储器的装置,所述装置包含存储器管理器,其用于提供具有预定大小的第一存储器单元作为用于所述软件应用的 第一分配空间;储存器,其使所述软件应用将数据存储在所...

【专利技术属性】
技术研发人员:AH飞利浦斯AD怀拜
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1