在计算环境中进行存储器管理的方法和系统的制作方法

文档序号:6461203阅读:91来源:国知局
专利名称:在计算环境中进行存储器管理的方法和系统的制作方法
技术领域
本发明一般地涉及计算环境中的存储器管理,更具体地说,涉及根据 任务的执行范围确定地为计算环境中执行的任务分配和解除分配存储器空 间的系统和方法。
背景技术
计算环境中的存储器管理涉及保留计算机存储器的各部分以加栽可执 行逻辑代码(即软件程序)并在以后根据特定的存储器管理方案释放存储 器以重复使用。保留存储器的过程通常称为向逻辑对象"分配"存储器空间;而释放存储器的过程通常称为"解除分配"存储器空间。根据所使用的编程语言的类型,解除分配方案有时包括"垃圾收集" 过程。本文中的术语"垃圾"指分配给正确执行程序时不再需要的逻辑对 象的存储器空间。通常,当收集所谓的垃圾对象时,意味着解除分配相应 的存储器空间。已经实现了手动和自动存储器管理方案。在手动方案中,程序设计员 必须主动将指令插入逻辑代码以便标识和解除分配与不使用的对象关联的 存储器空间。自动方案只在编程语言级别使用,并且仅在检测到系统存储 器不足时才使垃圾收集周期开始。不幸的是,上述两种方案未在存储器密集的软件应用(如支持在Web 服务器与一个或多个客户机之间建立的大量会话的基于因特网的应用(即 Web应用))中提供最佳结果。例如,当使用多个Servlet为在Web^ 期间从一个或多个客户机提交到Web服务器的多个请求服务时,存储器管 理变得非常繁瑣和复杂。通常,在将存储器分配g话中的逻辑对象时,存储器将保持已分配 直到会话终止,与对应于所述逻辑对象的任务在整个会话期间处于活动状态还是非活动状态无关。复杂的Web应用可能在每个会话期间支持和要求 执行多种逻辑任务和Servlet。如果垃圾收集过程延迟到每个会话结束或 延迟到系统存储器不足,便会对Web服务器的性能产生负面影响,因为Web 服务器可能很快会耗尽存储器并无法恢复。因此,需要可以克服上述缺点的存储器管理方法和系统。发明内容本披露涉及一种通过为计算环境中的活动任务定义一个或多个执行范 围来促进计算环境中的存储器管理的系统和相应的方法。出于概述的目的,此处描述了本发明的特定方面、优点和新颖特性。 将理解的是,并非所有此类优点都可以根据本发明的任一特定实施例来实 现。因此,可以使用实现或优化一种优点或一组优点而未实现此处所教导 或建议的全部优点的方式来实现或执行本发明。根据一个实施例,一种用于在计算环境中进行存储器管理的方法包括 唯一地标识与计算环境中执行的应用的第一任务关联的第一对象,其中将 存储器的第 一 区域分配给所述第 一对象;才艮据与所述第 一任务关联的第一 执行上下文来确定所述第一任务的第 一执行范围,其中所述第一上下文定 义了所述第 一任务在执行环境层次内的第 一预期寿命;确定所述第 一任务 的执行范围的变化,以响应监视所述第一执行上下文;以及解除分配存储 器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一 任务。在一个实施例中,所述方法还包括唯一地标识与作为所述第一任务的 子任务的第二任务关联的第二对象,其中将存储器的第二区域分配给所述 第二对象;根据与所述第二任务关联的第二执行上下文来确定所述第二任 务的第二执行范围,其中所述第二上下文定义了所述第二任务在所述执行 环境层次内相对于所述第一任务的第二预期寿命;确定所述第二任务的执行范围的变化,以响应监视所述第二执行上下文;以及解除分配存储器的 所述第二区域,以响应确定不再在所述第二执行范围内执行所述第二任务。还可以唯一地标识与作为所述第二任务的子任务的第三任务关联的第 三对象,其中将存储器的第三区域分配给所述第三对象;以及解除分配存 储器的所述第三区域,以响应确定所述第三任务不再主动为请求服务。也就是说,可以终止所述第二执行上下文以响应确定所述第二任务的 子任务都没有主动为请求服务;并且还可以终止所述第一执行上下文以响 应确定所述第 一任务的子任务都没有主动为请求服务。在一个实施例中,所述第一、第二和第三任务在通过通信网络而在服 务器系统与客户机系统之间建立的会话中执行。某些实施例中的所述通信 网络包括因特网。可以解除分配存储器的所述第一、第二和第三区域以响 应确定所述会话已终止。根据另一个实施例,提供了 一种用于在计算环境中进行存储器管理的 系统。所述系统可以包括用于唯一地标识与计算环境中执行的应用的第 一任务关联的第 一对象的逻辑单元,其中将存储器的第 一 区域分配给所述 第一对象;用于根据与所述第一任务关联的第一执行上下文来确定所述第 一任务的第一执行范围的逻辑单元,其中所述第一上下文定义了所迷第一 任务在执行环境层次内的第一预期寿命;用于确定所述第一任务的执行范 围的变化,以响应监视所述第一执行上下文的逻辑单元;以及用于解除分 配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所 述笫一任务的逻辑单元。所述系统还可以包括用于唯一地标识与作为所述第一任务的子任务 的第二任务关联的第二对象的逻辑单元,其中将存储器的第二区域分配给 所述第二对象;用于才艮据与所述第二任务关联的第二执行上下文来确定所 述第二任务的第二执行范围的逻辑单元,其中所述第二上下文定义了所述 第二任务相对于所述第一任务的第二预期寿命;用于确定所述第二任务的 执行范围的变化,以响应监视所述第二执行上下文的逻辑单元;以及用于 解除分配存储器的所述第二区域,以响应确定不再在所述第二执行范围内执行所述第二任务的逻辑单元。在一个实施例中,所述系统还包括用于唯一地标识与作为所述第二 任务的子任务的第三任务关联的第三对象的逻辑单元,其中将存储器的第 三区域分配给所述第三对象;以及用于解除分配存储器的所述第三区域, 以响应确定所述第三任务不再主动为请求服务的逻辑单元。在另一个实施例中,提供了一种包括具有计算机可读程序的计算机可 用介质的计算机程序产品。当所述计算机可读程序在计算机上执行时,将 导致所述计算机执行根据上述系统和方法披露的过程和功能。下面参考附图进一步详细地提供了一个或多个上面披露的实施例以及 特定的备选实施例。但是,本发明不限于所披露的任何特定实施例。


通过参考附图中的图形,可以理解本发明的各实施例,这些附图是 图1示出了根据一个或多个实施例的Web服务器的示例性软件环境,其中服务器系统通过通信网络与客户机系统进行通信;图2是根据一个实施例的用于确定在图1的客户机系统与服务器系统之间建立的通信会话中的 一个或多个任务的执行范围的示例性方法的流程图;图3是根据一个实施例的用于管理分配给具有定义执行范围的一个或多个对象的存储器的示例性方法的流程图;以及图4A和4B是才艮据一个或多个实施例的可以在其中运行本发明的系统 的硬件和软件环境的方块图。根据一个或多个实施例,不同图形中的相同数字所标示的本发明的特 性、元素和方法代表相同、等价或类似的特性、元素或方面。
具体实施方式
本披露涉及促进其中执行多个逻辑任务和子任务的应用环境中的存储 器管理的系统和相应方法。实现存储器管理方法以为一个或多个任务和子任务定义和监视各种执行范围(例如,会话范围、任务/子任务范围以及当 前范围),以便根据所述定义的执行范围从存储器中移除与所述任务和子 任务关联的对象。在下文中,将说明大量特定细节来全面描述本发明的各种实施例。可些实施例。在某些情况下,将不会过于详细地描述某些功能,以免使本发 明的其他方面变得模糊不清。与每个元素或特性关联的详细程度不应理解 为将某一功能的新颖性或重要性限定为高于其他功能的新颖性或重要性。例如,在下文中,将本发明的某些方面披露为适用于在基于Web的环 境中执行的Servlet。但值得注意的是,此类应用只是作为示例。因此, 本发明的范围不应被理解为限于此类示例性实施例。在备选实施例中,所 ^L露的系统和方法可适用于在任何计算环境中管理存储器。现在参考图1,其中示出了示例性计算环境,其中服务器系统(此后 称为"服务器")110通过通信网络("网络,,)130与客户机系统(此后 称为"客户机")120通信。在此示例性实施例中,网络130通过因特网 (即万维网WW)实现,其中包括服务器110和客户机120的大量计算系 统相互连接以便相互通信。但是,取决于实施方式,在备选实施例中网络 130可以根据本地、远程或分布式框架来构建。优选地,服务器110为Web服务器并且客户机12 0为具有通过网络13 0 将请求提交给服务器110的客户机软件环境125的计算机。如图所示,服 务器110包括被配置为答复由客户机120提交的请求的服务器软件环境 115。通过网络130进行的请求和答复的交换在服务器110与客户机120 之间建立的一个或多个会话的上下文内进行以为客户机120请求服务。所提交的请求可以由在服务器软件环境115中执行的应用150来服务。 例如,应用150可以是位于基于Web的环境中的逻辑代码(例如,Java Applet、 Java Servlet或其他功能上等同的模块)。也就是说, 一旦调用 应用150以响应会话中接收的第一请求,应用150就优选地在存储器中保 持活动状态以满足在会话的其余时间内提交的一个或多个后续请求。应用150在存储器中的驻留使其能够快速地对客户机120的请求做出 响应。因此,有利地,相比于在满足请求后从服务器110的执行环境移除 的其他应用(例如,通用网关接口 (CGI)程序),应用150优选地驻留在 存储器中以避免与建立和消除每次为请求服务所需的过程关联的时间延迟。现在参考图l和2,在一个实施例中,例如由服务器IIO启动应用150 以响应客户机120提交的一个或多个请求(S210)。取决于客户机数或所 提交的请求数,应用150可以管理一个或多个会话(S220 )。在每个M 中,可以执4亍应用150以打开如图1所示的一个或多个4壬务和子任务(例 如任务1至3以及子任务1至6等)。所述任务和子任务例如与由配置为服务客户机请求的Servlet、 Java Server Pages (JSP)或其他编程应用(例如应用编程接口 API)执行或管 理的一个或多个操作关联。如图所示,根据一个实施例,某个任务(例如 任务2)可以具有一个或多个能够在同一会话中打开的子任务(例如子任 务3、 4、 5)。每个子任务还可以具有一个或多个其他子任务。一旦打开,每个任务或子任务就与向其分配了存储器空间的至少一个 逻辑对象关联。将执行每个对象以便为任务或子任务执行相关的操作。取 决于实施方式,在每个会话中,可以使用各种方案来管理每个任务/子任务 以及与之关联的已分配存储器空间。例如,可以使用逻辑模块(例如,会 话管理器API)添加或移除与每个任务/子任务关联的会话对象。例如,在一个实施例中,会话管理器判定应用150是否打开了新的任 务/子任务以便为请求服务(S230 )。当打开了新的任务/子任务时, 管理器将监视或编辑数据结构(例如描述符文件)以跟踪执行层次中的任 务及关联的子任务。优选地,会话管理器根据任务的执行范围为应用150 所打开的每个任务分配唯一标识符。可以使用此唯一标识符来定义任务类 型并进一步对每个任务/子任务进行分类,如以下进一步详细描述的。在一个实施例中,描述符文件包括诸如可扩展标记语言(XML)之类的 编程语言语法来为每个任务类型定义描述。例如,描述符文件的元素可以定义每个任务的组件。对于每个已定义的任务类型,可以在任务类型定义 中将默认特定组件标识为任务初始的默认组件。相应地,开发人员可以定 义一组可由用户执行的任务,以便为每个任务类型定义一个或多个特定的组件(例如,替代的JSP页)。根据一个实施例,当打开新的任务/子任务时,将使用逻辑模块(例如,范围管理器API)来确定所述新任务/子任务的执行范围(S240 )。在一个 实施例中,使用范围管理器监视与会话中共享的每个任务/子任务关联的对 象。相应地,范围管理器将管理会活对象的创建(即分配)和移除(即解 除分配)并支持请求将对象添加到^"或请求从^"移除对象的功能。现在参考图3,其中根据一个实施例实现范围管理器以便还定义M 中打开的任务/子任务的允许执行范围(S310)。也就是说,实现范围管理 器以指定与当前应用流相关的每个任务对应的一个或多个对象的寿命粒 度,并且更新对象的允许执行范围。定义允许的执行范围(即,为会话中 的任务/子任务定义多层寿命粒度)提供了这样的可能性优选地在服务器 110的存储器空间达到最低临界阈值之前,以及优选地在对象存在于其中 的会话终止之前,释放分配给与处于各个执行上下文或级别的任务/子任务 对应的一个或多个对象的存储器。在一个实施例中,例如,由范围管理器优选地在任务/子任务被添加到范围。可以才艮据以下三个范围或上下文来定义执^f亍范围(l)应用上下文, (2 )任务/子任务上下文,以及(3)当前上下文。但值得注意的是,取决 于实施方式,可以指定或分配其他上下文或准则。出于示例和简要的目的, 在下文中,我们将讨论限于上述三种执行上下文。在应用上下文中,与应用150关联的对象在会话的持续期间内保持活 动。也就是说,在会话终止之前,不会将控制应用150操作的相应对象从 执行环境移除。可以使用应用上下文来定义不同任务/子任务之间共享的和 潜在更新的状态信息的执行范围。例如,列出服务器上定义的节点和安排 的服务器状态结构可以通过多个任务、计算机、应用、节点组和安排进行更新并优选地在会话的寿命期间保持不变。在任务/子任务上下文中,将在打开的任务/子任务的执行持续时间内 (即,在任务/子任务处于活动状态以响应提交的请求时) 一直保留与该任务/子任务关联的对象。例如,在IBM Tivoli Storage Manager (ITSM) 的节点组任务中,将一直保留与定义到ITSM服务器的节点组有关的相关信 息和任务组件(例如,在节点组任务中启动的向导、记事本和表单)的当 前状态和信息数据,直到相应的任务终止。在当前上下文中,将在活动任务/子任务的组件的活动期间保留与该任 务/子任务关联的对象。例如,在ITSM的节点组任务中,文件空间表数据 可能与特定的计算机或应用记事^目关,其中在向用户显示该记事本之前 选择所述计算机或应用。在此类情况下,当前上下文例如与唯一的JSP页 关联。因此,范围管理器根据预定的执行上下文来监视会话中每个任务/子任 务的执行范围(S320 )。当任务/子任务在允许的范围内完成执行时(S330 ), 范围管理器从执行环境移除与该任务/子任务关联的对象(S340 )。同时, 当会话终止时(S350 ),会话管理器优选地移除某些或全部应用相关的会 话对象(S360 )。在下文中,提供了根据Java对象类实现的示例性范围管理器接口。值 得注意的是,本发明的范围不应被理解为限于此示例性实施例,因为可以 以不同的编程语言对所披露主要内容做出其他实现和修改。p油lic class DsraScopeManagerpublic, static find byte .COMP—SCOPE; public static final byte TASK_SCOPE; public static final byte CCT—SCOPE;public static final void, add (byte scope, String scopeDD, Object value^ Ht^Session sessi加):;public static final void add (byte scope, final Object[Jattrs, H鄉Session session);public static fmal void addPersistem (String scopeID, Object value, byte scope, HttpSession session);public static find void makePersistent (Sbing scope〖D, byte scope, 韭邻Sesskin session);public static final HashSet getScopeAttrSet (byte scope, H鄉Sessiori session);public static final void cleanll'p (byte scope, H邻Session session);public static ftoal void cdeanllpTask (WccCoatext, wccContext, HttpSession session);}…根据一个实施例,下面的示例性框架支持上述范围管理器的功能。所 述框架是管理应用150的运行时流的软件应用并才艮据一个实施例,优选地 在Web容器中实现,以检测应用、任务和任务特定的组件。所述框架可以 进一步检测用户流状态和对象执行范围并帮助确定适当的存储器管理和对 象清除方案。在一个实施例中,所述框架包括一组相关的用于检测应用流和用于监 视活动任务及其关联组件的类。使用此框架,可以监视和确定当前活动的 任务、当前向用户显示的任务、每个任务的当前活动的组件,以及用户在 其中查看这些组件的流。可以实现特定的类(例如DsmTasksFactory类)以标识相关的^f壬务及 关联的组件。例如,在一个实施例中,这种类被实现为单态类(singleton class)。单态类是为其创建单个实例的类。优选地,所述类可以提供信息以支持给定的DSM任务类型并将描述每 个DSM任务类型的XML应用描述符文件作为输入。XML文件的元素可以提 供启动任务或任务特定組件映射到其的嵌套组件(例如,任务JSP页以及 替代的JSP页)所需的预定信息项。在一个实施例中,方法接口支持访问任务范围属性设置。控制器(例 如DsmTaskController )类可以负责处理与任务相关的事件以及支持创建和管理逻辑任务及应用150中的每个任务的内容。此控制器将管理诸如激 活、取消激活或关闭一个或多个任务之类的特定任务事件的责任委托给应 用模块(例如,任务事件侦听器)。相应地,所述框架监视和控制会话中的一个或多个任务及相关事件的 设置、状态、执行层次以及范围。因此,在一个实施例中,所述框架负责 创建包括任务视图(例如JSP)的任务框架并优选地标识其他任务特定的 特征(如任务帮助)。处理模块生成将发送到用户浏览器的响应以显示应 用用户接口的给定任务部分以及在任务已存在的情况下更新所述部分。在任务/子任务完成时,关联的范围属性将被清除并从会话执行环境中 移除。还优选地忽略跟踪范围上下文的由框架创建的对象结构。在一个实 施例中,定义了从支持框架的角度看来,包括与应用150状态有关的信息 的类(例如DsmConsoleContext)。所述类积累在当前应用^的寿命期 间保留的所有会话范围名称。在一个实施例中,servlet或portlet软件包提供接口和类(例如, HttpSessionBindingListener接口和HttpSessionBindingEvent类)来帮 助管理会话中的资源。例如,可以将对象(如DsmConsoleContext对象) 与会话(如HttpSession)关联(例如结合)。通过此关联,框架可以检 测会话的终止,以便可以从执行环境移除相应的对象。在示例性实施例中,定义的上下文类(例如DsmConsoleContext)引 用会话(例如HttpSession)并且反之亦然。当解除定义的上下文类与会 话的关联(解除结合)时,将丢弃会话与上下文之间的双重引用。在M 或上下文可用时,这种双重引用允许框架访问会话。还可以实现另 一个上下文类(例如WccContext类)以监视任务导航的 当前状态和属性范围。该类监视各种执行范围内的当前被查看的或活动的 任务并跟踪按照需要创建或移除的相应对象实例(例如DsmTask实例)以 响应接收到的请求。根据一个实施例,当启动应用150时,将创建默认的任务并假定此任 务代表当前被查看的任务。对象类(例如DsmTask类)定义了任务的属性存储器管理信息,并优选地维护与任务的唯一标识符以及在任务寿命期间 保留在会话范围中的 一组永久属性相关的信息。由于在各种执^f亍范围期间累积任务的其他信息,因此所述对象类(例如DsmTask类)监视任务组件 的显示流。因此,该类将监视当前任务组件。在某些实施例中,当初始打开任务时,将假定任务的主要组件代表当 前上下文,如相应任务类型的描述符文件中所定义的那样。所述框架优选 地提供给定任务类型可以根据事件显示的主要视图页以及零个或多个替代 视图(例如JSP页)的定义。在示例性实施例中,默认显示主要页。根据一个或多个实施例,可以使用另一个上下文类(例如 DsmContextSwitch类)来切换显示的当前上下文以响应预定的事件或更改 应用控制台的内容。例如,浏览器视图可以最初显示示出了媒体副本表的 页。该表所支持的操作可以允许用户例如使用向导来创建媒体组。在一个示例性实施例中,例如,服务器110创建i某体组表单来代替表 页以响应创建媒体组请求,以便从第一上下文切换到第二上下文。在两个 上下文之间传递的所有信息都可以作为属性放置在会话中。例如,在新启 动的组件的寿命期间需要此类属性来定义初始设置或导航指导。例如,可 以在自包含的对象实例(例如DsmComponentContext类实例)中累积此类 属性。当框架检测到切换回启动组件时,将优选地从会话执行环境移除最 低的粒度级别属性。在其他实施例中,本发明可以完全以硬件的形式或完全以软件的形式, 或同时以硬件及软件元素组合的形式实现。例如,客户机120和服务器110 可以包括主要包含硬件组件和软件代码的受控计算系统环境,执行所述代 码以便执行实现由本发明的系统所构想的结果的过程。现在参考图4A和4B,其中才艮据示例性实施例的计算系统环境包括石更 件环境1110和软件环境1120。硬件环境1110包括提供软件执行环境的机 器和设备;并且软件提供硬件的执行指令,如下文所述。如此处所述,根据特定的逻辑/功能关系描述了在所示的硬件元素上执 行的软件元素。但是应指出,在软件中实现的相应方法也可以借助经过配置和编程的处理器、ASIC (专用集成电路)、FPGA (现场可编程门阵列) 以及DSP (数字信号处理器)等在硬件中实现。软件环境1120分为两个包括系统软件1121和应用软件1122的主要 类。系统软件1121包括控制程序,例如操作系统(OS)和指示硬件如何使 用和处理信息的信息管理系统。在优选实施例中,将应用150实现为在一个或多个硬件环境中执行以 为客户机120提交的一个或多个请求服务的应用软件1122。应用软件1122 可以包括但不限于程序代码、数据结构、周件、驻留软件、微代码或任何 其他形式的信息或可以由微控制器读取、分析或执行的例程。在备选实施例中,本发明可以实现为可从计算机可用或计算机可读介 质访问的计算机程序产品,所述计算机可用或计算机可读介质提供了可以 被计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于在此说明的目的,计算机可用或计算机可读介质可以是任 何能够包含、存储、传送、传播或传输由指令执行系统、装置或设务使用 或与所述指令执行系统、装置或设备结合的程序的装置。所述计算机可读介质可以是电、磁、光、电磁、红外线或半导体系统 (或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态 存储器、磁带、可移动计算机盘、随M取存储器(RAM)、只读存储器(ROM)、 硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-R0M)、光盘-读/ 写(CR-R/W)和数字^L频盘(DVD)。参考图4A,应用软件1122的实施例可以实现为计算机软件,所述计 算机软件的形式为在数据处理系统上执行的计算机可读代码,所述数据处 理系统例如包括通过系统总线1100与一个或多个存储元件相连的处理器 1101的硬件环境1110。所述存储元件可以例如包括本地存储器1102、存 储介质1106以及高速緩沖存储器1104。处理器1101将可执行代码从存储 介质1106加栽到本地存储器1102。高速緩冲存储器1104提供临时存储以 减少从存储介质1106加载要执行的代码的次数。用户接口设备1105 (例如键盘、指点设备等)以及显示屏1107可以例如直接与计算系统相连,也可以通过中间I/0控制器1103与计算系统相 连。还可以将诸如网络适配器之类的通信接口单元1108连接到计算系统, 以使得数据处理系统能够通过中间专用网络或公共网络与其他数据处理系 统或远程打印机或存储设备进行通信。有线或无线调制解调器和以太网卡 是一些示例性的网络适配器类型。在一个或多个实施例中,石更件环境1110可以不包括上述所有组件,或 者可以包括执行其他功能或实用程序的组件。例如,硬件环境1110可以是 膝上型计算机或包含在嵌入式系统中的其他便携式计算设备,例如机顶盒、 个人数字助理(PDA)、移动通信装置(例如无线电话)或其他具有信息处 理和/或数据存储以及通信能力的类似硬件平台。在某些系统实施例中,通信接口 1108通过发送和接收电、电磁或光信 号(承载代表包括程序代码的各种类型信息的数字数据流)与其他系统通 信。可以通过远程网络(例如因特网)或备选地通过栽波传输来建立所述 通信。参考图4B,应用软件1122可以包括一个或多个从存储介质1106加栽 到本地存储器1102之后在系统软件1121之上执行的计算机程序。在客户 机-服务器体系结构中,应用软件112 2可以包括客户机软件和服务器软件。 例如,在本发明的一个实施例中,客户机软件在计算系统IOO上执行,而 服务器软件在服务器系统(未示出)上执行。软件环境1120还可以包括用于访问通过本地计算网络或远程计算网 络提供的数据的浏览器软件1126。进而,软件环境1120可以包括用于接 收用户命令和数据的用户接口 1124 (例如,图形用户接口 GUI)。要指出 的是,上述硬件和软件体系结构和环境仅作为示例,并且可以通过任意类 型的系统体系结构或处理环境实现本发明的一个或多个实施例。应当理解,所述逻辑代码、程序、模块、过程、方法以及执行每个方 法的各个步骤的顺序只是示例性的。取决于实施方式,可以按照任意顺序 或并行执行各步骤,除非本披露中另行指出。进而,所述逻辑代码并不与 任何特定编程语言相关或限于特定编程语言,并且可以包括在分布式、非说分布式或多处理环境中的一个或多个处理器上执4亍的一个或多个才莫块。因此,应当理解,本发明可以在所附权利要求的精神和范围内进行任 何修改和改变。所述说明并非旨在是穷举的或将本发明限于所披露的精确 形式。所披露的实施例的上述以及其他修改和组合都在本发明的范围内并 进一步由权利要求及其等同物的完整范围来限定。
权利要求
1.一种用于在计算环境中进行存储器管理的方法,所述方法包括唯一地标识与计算环境中执行的应用的第一任务关联的第一对象,其中将存储器的第一区域分配给所述第一对象;根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文;以及解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务。
2. 如权利要求1中所述的方法,还包括唯一地标识与作为所述第 一任务的子任务的第二任务关联的第二对象,其中将存储器的第二区域分配给所述第二对象;根据与所述第二任务关联的第二执行上下文来确定所述第二任务的第 二执行范围,其中所述第二上下文定义了所述第二任务在所述执行环境层次内相对于所述第一任务的第二预期寿命;确定所述第二任务的执行范围的变化,以响应监视所述第二执行上下文;以及解除分配存储器的所述第二区域,以响应确定不再在所述第二执行范 围内执行所述第二^f壬务。
3. 如权利要求2中所述的方法,还包括唯一地标识与作为所述第二任务的子任务的第三任务关联的第三对 象,其中将存储器的第三区域分配给所述第三对象;以及解除分配存储器的所述第三区域,以响应确定所述第三任务不再主动 为请求服务。
4. 如权利要求2中所述的方法,其中终止所述第二执行上下文以响应确定所述第三任务不再主动为请求服务。
5. 如权利要求l中所述的方法,其中终止所述第一执行上下文以响应 确定所述第二任务不再主动为请求服务。
6. 如权利要求2中所述的方法,其中终止所述第二执行上下文以响应 确定所述第二任务的子任务都没有主动为请求服务。
7. 如权利要求l中所述的方法,其中所述第一任务在服务器系统与客 户机系统之间建立的会话中执行,其中终止所述第一执行上下文以响应确 定所述^"被终止。
8. 如权利要求3中所述的方法,其中所述第一、第二和第三任务在通 过通信网络而在服务器系统与客户机系统之间建立的M中执行。
9. 如权利要求8中所述的方法,其中所述通信网络包括因特网。
10. 如权利要求8中所述的方法,其中解除分配存储器的所述第一、 第二和第三区域以响应确定所述会话已终止。
11. 一种用于在计算环境中进行存储器管理的系统,所述系统包括 用于唯一地标识与计算环境中执行的应用的第一任务关联的第一对象的逻辑单元,其中将存储器的第一区域分配给所述第一对象;用于根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围的逻辑单元,其中所述笫一上下文定义了所述第一任务在 执行环境层次内的第一预期寿命;用于确定所述第 一任务的执行范围的变化,以响应监视所述第 一执行 上下文的逻辑单元;以及用于解除分配存储器的所述第一区域,以响应确定不再在所述第一执 行范围内执行所述第 一任务的逻辑单元。
12. 如权利要求11中所述的系统,还包括用于唯一地标识与作为所述第 一任务的子任务的第二任务关联的第二 对象的逻辑单元,其中将存储器的第二区域分配给所述第二对象;用于才艮据与所述第二任务关联的第二执行上下文来确定所述第二任务 的第二执行范围的逻辑单元,其中所述第二上下文定义了所述第二任务相对于所述第一任务的第二预期寿命;用于确定所述第二任务的执行范围的变化,以响应监视所述第二执行 上下文的逻辑单元;以及用于解除分配存储器的所述第二区域,以响应确定不再在所述第二执 行范围内执行所述第二任务的逻辑单元。
13. 如权利要求12中所述的系统,还包括用于唯一地标识与作为所述第二任务的子任务的第三任务关联的第三 对象的逻辑单元,其中将存储器的第三区域分配给所述第三对象;以及 用于解除分配存储器的所述第三区域,以响应确定所述第三任务不再主动为请求服务的逻辑单元。
14. 如权利要求12中所述的系统,其中终止所述第二执行上下文以响 应确定所述第三任务不再主动为请求服务。
15. 如权利要求ll中所述的系统,其中终止所述第一执行上下文以响 应确定所述第二任务不再主动为请求Ji艮务。
16. 如权利要求12中所述的系统,其中终止所述第二执行上下文以响 应确定所述第二任务的子任务都没有主动为请求服务。
17. 如权利要求ll中所述的方法,其中所述第一任务在服务器系统与 客户机系统之间建立的会话中执行,其中终止所述第一执行上下文以响应 确定所述4^舌#皮终止。
18. 如权利要求13中所述的方法,其中所述第一、第二和第三任务在 通过通信网络而在服务器系统与客户机系统之间建立的会话中执行。
全文摘要
本发明涉及一种用于在计算环境中进行存储器管理的方法和系统。所述方法包括唯一地标识与计算环境中执行的应用的第一任务关联的第一对象,其中将存储器的第一区域分配给所述第一对象;根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文;以及解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务。
文档编号G06F12/02GK101256533SQ20081008092
公开日2008年9月3日 申请日期2008年2月29日 优先权日2007年3月2日
发明者G·V·马尔科瓦, H·C·小胡斯费尔特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1