CN101256533A - 在计算环境中进行存储器管理的方法和系统 - Google Patents
在计算环境中进行存储器管理的方法和系统 Download PDFInfo
- Publication number
- CN101256533A CN101256533A CNA2008100809241A CN200810080924A CN101256533A CN 101256533 A CN101256533 A CN 101256533A CN A2008100809241 A CNA2008100809241 A CN A2008100809241A CN 200810080924 A CN200810080924 A CN 200810080924A CN 101256533 A CN101256533 A CN 101256533A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- respond
- context
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
- Memory System (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种用于在计算环境中进行存储器管理的方法和系统。所述方法包括:唯一地标识与计算环境中执行的应用的第一任务关联的第一对象,其中将存储器的第一区域分配给所述第一对象;根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文;以及解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务。
Description
技术领域
本发明一般地涉及计算环境中的存储器管理,更具体地说,涉及根据任务的执行范围确定地为计算环境中执行的任务分配和解除分配存储器空间的系统和方法。
背景技术
计算环境中的存储器管理涉及保留计算机存储器的各部分以加载可执行逻辑代码(即软件程序)并在以后根据特定的存储器管理方案释放存储器以重复使用。保留存储器的过程通常称为向逻辑对象“分配”存储器空间;而释放存储器的过程通常称为“解除分配”存储器空间。
根据所使用的编程语言的类型,解除分配方案有时包括“垃圾收集”过程。本文中的术语“垃圾”指分配给正确执行程序时不再需要的逻辑对象的存储器空间。通常,当收集所谓的垃圾对象时,意味着解除分配相应的存储器空间。
已经实现了手动和自动存储器管理方案。在手动方案中,程序设计员必须主动将指令插入逻辑代码以便标识和解除分配与不使用的对象关联的存储器空间。自动方案只在编程语言级别使用,并且仅在检测到系统存储器不足时才使垃圾收集周期开始。
不幸的是,上述两种方案未在存储器密集的软件应用(如支持在Web服务器与一个或多个客户机之间建立的大量会话的基于因特网的应用(即Web应用))中提供最佳结果。例如,当使用多个Servlet为在Web会话期间从一个或多个客户机提交到Web服务器的多个请求服务时,存储器管理变得非常繁琐和复杂。
通常,在将存储器分配给会话中的逻辑对象时,存储器将保持已分配直到会话终止,与对应于所述逻辑对象的任务在整个会话期间处于活动状态还是非活动状态无关。复杂的Web应用可能在每个会话期间支持和要求执行多种逻辑任务和Servlet。如果垃圾收集过程延迟到每个会话结束或延迟到系统存储器不足,便会对Web服务器的性能产生负面影响,因为Web服务器可能很快会耗尽存储器并无法恢复。
因此,需要可以克服上述缺点的存储器管理方法和系统。
发明内容
本披露涉及一种通过为计算环境中的活动任务定义一个或多个执行范围来促进计算环境中的存储器管理的系统和相应的方法。
出于概述的目的,此处描述了本发明的特定方面、优点和新颖特性。将理解的是,并非所有此类优点都可以根据本发明的任一特定实施例来实现。因此,可以使用实现或优化一种优点或一组优点而未实现此处所教导或建议的全部优点的方式来实现或执行本发明。
根据一个实施例,一种用于在计算环境中进行存储器管理的方法包括:唯一地标识与计算环境中执行的应用的第一任务关联的第一对象,其中将存储器的第一区域分配给所述第一对象;根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文;以及解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务。
在一个实施例中,所述方法还包括唯一地标识与作为所述第一任务的子任务的第二任务关联的第二对象,其中将存储器的第二区域分配给所述第二对象;根据与所述第二任务关联的第二执行上下文来确定所述第二任务的第二执行范围,其中所述第二上下文定义了所述第二任务在所述执行环境层次内相对于所述第一任务的第二预期寿命;确定所述第二任务的执行范围的变化,以响应监视所述第二执行上下文;以及解除分配存储器的所述第二区域,以响应确定不再在所述第二执行范围内执行所述第二任务。
还可以唯一地标识与作为所述第二任务的子任务的第三任务关联的第三对象,其中将存储器的第三区域分配给所述第三对象;以及解除分配存储器的所述第三区域,以响应确定所述第三任务不再主动为请求服务。
也就是说,可以终止所述第二执行上下文以响应确定所述第二任务的子任务都没有主动为请求服务;并且还可以终止所述第一执行上下文以响应确定所述第一任务的子任务都没有主动为请求服务。
在一个实施例中,所述第一、第二和第三任务在通过通信网络而在服务器系统与客户机系统之间建立的会话中执行。某些实施例中的所述通信网络包括因特网。可以解除分配存储器的所述第一、第二和第三区域以响应确定所述会话已终止。
根据另一个实施例,提供了一种用于在计算环境中进行存储器管理的系统。所述系统可以包括:用于唯一地标识与计算环境中执行的应用的第一任务关联的第一对象的逻辑单元,其中将存储器的第一区域分配给所述第一对象;用于根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围的逻辑单元,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;用于确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文的逻辑单元;以及用于解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务的逻辑单元。
所述系统还可以包括:用于唯一地标识与作为所述第一任务的子任务的第二任务关联的第二对象的逻辑单元,其中将存储器的第二区域分配给所述第二对象;用于根据与所述第二任务关联的第二执行上下文来确定所述第二任务的第二执行范围的逻辑单元,其中所述第二上下文定义了所述第二任务相对于所述第一任务的第二预期寿命;用于确定所述第二任务的执行范围的变化,以响应监视所述第二执行上下文的逻辑单元;以及用于解除分配存储器的所述第二区域,以响应确定不再在所述第二执行范围内执行所述第二任务的逻辑单元。
在一个实施例中,所述系统还包括:用于唯一地标识与作为所述第二任务的子任务的第三任务关联的第三对象的逻辑单元,其中将存储器的第三区域分配给所述第三对象;以及用于解除分配存储器的所述第三区域,以响应确定所述第三任务不再主动为请求服务的逻辑单元。
在另一个实施例中,提供了一种包括具有计算机可读程序的计算机可用介质的计算机程序产品。当所述计算机可读程序在计算机上执行时,将导致所述计算机执行根据上述系统和方法披露的过程和功能。
下面参考附图进一步详细地提供了一个或多个上面披露的实施例以及特定的备选实施例。但是,本发明不限于所披露的任何特定实施例。
附图说明
通过参考附图中的图形,可以理解本发明的各实施例,这些附图是:
图1示出了根据一个或多个实施例的Web服务器的示例性软件环境,其中服务器系统通过通信网络与客户机系统进行通信;
图2是根据一个实施例的用于确定在图1的客户机系统与服务器系统之间建立的通信会话中的一个或多个任务的执行范围的示例性方法的流程图;
图3是根据一个实施例的用于管理分配给具有定义执行范围的一个或多个对象的存储器的示例性方法的流程图;以及
图4A和4B是根据一个或多个实施例的可以在其中运行本发明的系统的硬件和软件环境的方块图。
根据一个或多个实施例,不同图形中的相同数字所标示的本发明的特性、元素和方法代表相同、等价或类似的特性、元素或方面。
具体实施方式
本披露涉及促进其中执行多个逻辑任务和子任务的应用环境中的存储器管理的系统和相应方法。实现存储器管理方法以为一个或多个任务和子任务定义和监视各种执行范围(例如,会话范围、任务/子任务范围以及当前范围),以便根据所述定义的执行范围从存储器中移除与所述任务和子任务关联的对象。
在下文中,将说明大量特定细节来全面描述本发明的各种实施例。可以在没有这些特定细节或具有细节上的某些改变的情况下实现本发明的某些实施例。在某些情况下,将不会过于详细地描述某些功能,以免使本发明的其他方面变得模糊不清。与每个元素或特性关联的详细程度不应理解为将某一功能的新颖性或重要性限定为高于其他功能的新颖性或重要性。
例如,在下文中,将本发明的某些方面披露为适用于在基于Web的环境中执行的Servlet。但值得注意的是,此类应用只是作为示例。因此,本发明的范围不应被理解为限于此类示例性实施例。在备选实施例中,所披露的系统和方法可适用于在任何计算环境中管理存储器。
现在参考图1,其中示出了示例性计算环境,其中服务器系统(此后称为“服务器”)110通过通信网络(“网络”)130与客户机系统(此后称为“客户机”)120通信。在此示例性实施例中,网络130通过因特网(即万维网WWW)实现,其中包括服务器110和客户机120的大量计算系统相互连接以便相互通信。但是,取决于实施方式,在备选实施例中网络130可以根据本地、远程或分布式框架来构建。
优选地,服务器110为Web服务器并且客户机120为具有通过网络130将请求提交给服务器110的客户机软件环境125的计算机。如图所示,服务器110包括被配置为答复由客户机120提交的请求的服务器软件环境115。通过网络130进行的请求和答复的交换在服务器110与客户机120之间建立的一个或多个会话的上下文内进行以为客户机120请求服务。
所提交的请求可以由在服务器软件环境115中执行的应用150来服务。例如,应用150可以是位于基于Web的环境中的逻辑代码(例如,JavaApplet、Java Servlet或其他功能上等同的模块)。也就是说,一旦调用应用150以响应会话中接收的第一请求,应用150就优选地在存储器中保持活动状态以满足在会话的其余时间内提交的一个或多个后续请求。
应用150在存储器中的驻留使其能够快速地对客户机120的请求做出响应。因此,有利地,相比于在满足请求后从服务器110的执行环境移除的其他应用(例如,通用网关接口(CGI)程序),应用150优选地驻留在存储器中以避免与建立和消除每次为请求服务所需的过程关联的时间延迟。
现在参考图1和2,在一个实施例中,例如由服务器110启动应用150以响应客户机120提交的一个或多个请求(S210)。取决于客户机数或所提交的请求数,应用150可以管理一个或多个会话(S220)。在每个会话中,可以执行应用150以打开如图1所示的一个或多个任务和子任务(例如任务1至3以及子任务1至6等)。
所述任务和子任务例如与由配置为服务客户机请求的Servlet、JavaServer Pages(JSP)或其他编程应用(例如应用编程接口API)执行或管理的一个或多个操作关联。如图所示,根据一个实施例,某个任务(例如任务2)可以具有一个或多个能够在同一会话中打开的子任务(例如子任务3、4、5)。每个子任务还可以具有一个或多个其他子任务。
一旦打开,每个任务或子任务就与向其分配了存储器空间的至少一个逻辑对象关联。将执行每个对象以便为任务或子任务执行相关的操作。取决于实施方式,在每个会话中,可以使用各种方案来管理每个任务/子任务以及与之关联的已分配存储器空间。例如,可以使用逻辑模块(例如,会话管理器API)添加或移除与每个任务/子任务关联的会话对象。
例如,在一个实施例中,会话管理器判定应用150是否打开了新的任务/子任务以便为请求服务(S230)。当打开了新的任务/子任务时,会话管理器将监视或编辑数据结构(例如描述符文件)以跟踪执行层次中的任务及关联的子任务。优选地,会话管理器根据任务的执行范围为应用150所打开的每个任务分配唯一标识符。可以使用此唯一标识符来定义任务类型并进一步对每个任务/子任务进行分类,如以下进一步详细描述的。
在一个实施例中,描述符文件包括诸如可扩展标记语言(XML)之类的编程语言语法来为每个任务类型定义描述。例如,描述符文件的元素可以定义每个任务的组件。对于每个已定义的任务类型,可以在任务类型定义中将默认特定组件标识为任务初始的默认组件。相应地,开发人员可以定义一组可由用户执行的任务,以便为每个任务类型定义一个或多个特定的组件(例如,替代的JSP页)。
根据一个实施例,当打开新的任务/子任务时,将使用逻辑模块(例如,范围管理器API)来确定所述新任务/子任务的执行范围(S240)。在一个实施例中,使用范围管理器监视与会话中共享的每个任务/子任务关联的对象。相应地,范围管理器将管理会话对象的创建(即分配)和移除(即解除分配)并支持请求将对象添加到会话或请求从会话移除对象的功能。
现在参考图3,其中根据一个实施例实现范围管理器以便还定义会话中打开的任务/子任务的允许执行范围(S310)。也就是说,实现范围管理器以指定与当前应用流相关的每个任务对应的一个或多个对象的寿命粒度,并且更新对象的允许执行范围。定义允许的执行范围(即,为会话中的任务/子任务定义多层寿命粒度)提供了这样的可能性:优选地在服务器110的存储器空间达到最低临界阈值之前,以及优选地在对象存在于其中的会话终止之前,释放分配给与处于各个执行上下文或级别的任务/子任务对应的一个或多个对象的存储器。
在一个实施例中,例如,由范围管理器优选地在任务/子任务被添加到会话时来定义任务/子任务以及与所述任务/子任务对应的对象的允许执行范围。可以根据以下三个范围或上下文来定义执行范围:(1)应用上下文,(2)任务/子任务上下文,以及(3)当前上下文。但值得注意的是,取决于实施方式,可以指定或分配其他上下文或准则。出于示例和简要的目的,在下文中,我们将讨论限于上述三种执行上下文。
在应用上下文中,与应用150关联的对象在会话的持续期间内保持活动。也就是说,在会话终止之前,不会将控制应用150操作的相应对象从执行环境移除。可以使用应用上下文来定义不同任务/子任务之间共享的和潜在更新的状态信息的执行范围。例如,列出服务器上定义的节点和安排的服务器状态结构可以通过多个任务、计算机、应用、节点组和安排进行更新并优选地在会话的寿命期间保持不变。
在任务/子任务上下文中,将在打开的任务/子任务的执行持续时间内(即,在任务/子任务处于活动状态以响应提交的请求时)一直保留与该任务/子任务关联的对象。例如,在IBM Tivoli Storage Manager(ITSM)的节点组任务中,将一直保留与定义到ITSM服务器的节点组有关的相关信息和任务组件(例如,在节点组任务中启动的向导、记事本和表单)的当前状态和信息数据,直到相应的任务终止。
在当前上下文中,将在活动任务/子任务的组件的活动期间保留与该任务/子任务关联的对象。例如,在ITSM的节点组任务中,文件空间表数据可能与特定的计算机或应用记事本相关,其中在向用户显示该记事本之前选择所述计算机或应用。在此类情况下,当前上下文例如与唯一的JSP页关联。
因此,范围管理器根据预定的执行上下文来监视会话中每个任务/子任务的执行范围(S320)。当任务/子任务在允许的范围内完成执行时(S330),范围管理器从执行环境移除与该任务/子任务关联的对象(S340)。同时,当会话终止时(S350),会话管理器优选地移除某些或全部应用相关的会话对象(S360)。
在下文中,提供了根据Java对象类实现的示例性范围管理器接口。值得注意的是,本发明的范围不应被理解为限于此示例性实施例,因为可以以不同的编程语言对所披露主要内容做出其他实现和修改。
public class DsmScopeManager
{
public static final byte COMP_SCOPE;
public static final byte TASK_SCOPE;
public static final byte CCT_SCOPE;
public static final void add(byte scope,String scopeID,Object value,
HttpSession session);
public static final void add(byte scope,final Object[][]attrs,
HttpSession session);
public static final void addPersistent(String scopeID,Object value,byte
scope,HttpSession session);
public static final void makePersistent(String scopeID,byte scope,
HttpSession session);
public static final HashSet getScopeAttrSet(byte scope,HttpSession
session);
public static final void cleanUp(byte scope,HttpSession session);
public static final void cleanUpTask(WccContext,wccContext,
HttpSession session);
...
}
根据一个实施例,下面的示例性框架支持上述范围管理器的功能。所述框架是管理应用150的运行时流的软件应用并根据一个实施例,优选地在Web容器中实现,以检测应用、任务和任务特定的组件。所述框架可以进一步检测用户流状态和对象执行范围并帮助确定适当的存储器管理和对象清除方案。
在一个实施例中,所述框架包括一组相关的用于检测应用流和用于监视活动任务及其关联组件的类。使用此框架,可以监视和确定当前活动的任务、当前向用户显示的任务、每个任务的当前活动的组件,以及用户在其中查看这些组件的流。
可以实现特定的类(例如DsmTasksFactory类)以标识相关的任务及关联的组件。例如,在一个实施例中,这种类被实现为单态类(singletonclass)。单态类是为其创建单个实例的类。
优选地,所述类可以提供信息以支持给定的DSM任务类型并将描述每个DSM任务类型的XML应用描述符文件作为输入。XML文件的元素可以提供启动任务或任务特定组件映射到其的嵌套组件(例如,任务JSP页以及替代的JSP页)所需的预定信息项。
在一个实施例中,方法接口支持访问任务范围属性设置。控制器(例如DsmTaskController)类可以负责处理与任务相关的事件以及支持创建和管理逻辑任务及应用150中的每个任务的内容。此控制器将管理诸如激活、取消激活或关闭一个或多个任务之类的特定任务事件的责任委托给应用模块(例如,任务事件侦听器)。
相应地,所述框架监视和控制会话中的一个或多个任务及相关事件的设置、状态、执行层次以及范围。因此,在一个实施例中,所述框架负责创建包括任务视图(例如JSP)的任务框架并优选地标识其他任务特定的特征(如任务帮助)。处理模块生成将发送到用户浏览器的响应以显示应用用户接口的给定任务部分以及在任务已存在的情况下更新所述部分。
在任务/子任务完成时,关联的范围属性将被清除并从会话执行环境中移除。还优选地忽略跟踪范围上下文的由框架创建的对象结构。在一个实施例中,定义了从支持框架的角度看来,包括与应用150状态有关的信息的类(例如DsmConsoleContext)。所述类积累在当前应用会话的寿命期间保留的所有会话范围名称。
在一个实施例中,servlet或portlet软件包提供接口和类(例如,HttpSessionBindingListener接口和HttpSessionBindingEvent类)来帮助管理会话中的资源。例如,可以将对象(如DsmConsoleContext对象)与会话(如HttpSession)关联(例如结合)。通过此关联,框架可以检测会话的终止,以便可以从执行环境移除相应的对象。
在示例性实施例中,定义的上下文类(例如DsmConsoleContext)引用会话(例如HttpSession)并且反之亦然。当解除定义的上下文类与会话的关联(解除结合)时,将丢弃会话与上下文之间的双重引用。在会话或上下文可用时,这种双重引用允许框架访问会话。
还可以实现另一个上下文类(例如WccContext类)以监视任务导航的当前状态和属性范围。该类监视各种执行范围内的当前被查看的或活动的任务并跟踪按照需要创建或移除的相应对象实例(例如DsmTask实例)以响应接收到的请求。
根据一个实施例,当启动应用150时,将创建默认的任务并假定此任务代表当前被查看的任务。对象类(例如DsmTask类)定义了任务的属性存储器管理信息,并优选地维护与任务的唯一标识符以及在任务寿命期间保留在会话范围中的一组永久属性相关的信息。由于在各种执行范围期间累积任务的其他信息,因此所述对象类(例如DsmTask类)监视任务组件的显示流。因此,该类将监视当前任务组件。
在某些实施例中,当初始打开任务时,将假定任务的主要组件代表当前上下文,如相应任务类型的描述符文件中所定义的那样。所述框架优选地提供给定任务类型可以根据事件显示的主要视图页以及零个或多个替代视图(例如JSP页)的定义。在示例性实施例中,默认显示主要页。
根据一个或多个实施例,可以使用另一个上下文类(例如DsmContextSwitch类)来切换显示的当前上下文以响应预定的事件或更改应用控制台的内容。例如,浏览器视图可以最初显示示出了媒体副本表的页。该表所支持的操作可以允许用户例如使用向导来创建媒体组。
在一个示例性实施例中,例如,服务器110创建媒体组表单来代替表页以响应创建媒体组请求,以便从第一上下文切换到第二上下文。在两个上下文之间传递的所有信息都可以作为属性放置在会话中。例如,在新启动的组件的寿命期间需要此类属性来定义初始设置或导航指导。例如,可以在自包含的对象实例(例如DsmComponentContext类实例)中累积此类属性。当框架检测到切换回启动组件时,将优选地从会话执行环境移除最低的粒度级别属性。
在其他实施例中,本发明可以完全以硬件的形式或完全以软件的形式,或同时以硬件及软件元素组合的形式实现。例如,客户机120和服务器110可以包括主要包含硬件组件和软件代码的受控计算系统环境,执行所述代码以便执行实现由本发明的系统所构想的结果的过程。
现在参考图4A和4B,其中根据示例性实施例的计算系统环境包括硬件环境1110和软件环境1120。硬件环境1110包括提供软件执行环境的机器和设备;并且软件提供硬件的执行指令,如下文所述。
如此处所述,根据特定的逻辑/功能关系描述了在所示的硬件元素上执行的软件元素。但是应指出,在软件中实现的相应方法也可以借助经过配置和编程的处理器、ASIC(专用集成电路)、FPGA(现场可编程门阵列)以及DSP(数字信号处理器)等在硬件中实现。
软件环境1120分为两个包括系统软件1121和应用软件1122的主要类。系统软件1121包括控制程序,例如操作系统(OS)和指示硬件如何使用和处理信息的信息管理系统。
在优选实施例中,将应用150实现为在一个或多个硬件环境中执行以为客户机120提交的一个或多个请求服务的应用软件1122。应用软件1122可以包括但不限于程序代码、数据结构、固件、驻留软件、微代码或任何其他形式的信息或可以由微控制器读取、分析或执行的例程。
在备选实施例中,本发明可以实现为可从计算机可用或计算机可读介质访问的计算机程序产品,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于在此说明的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的装置。
所述计算机可读介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和数字视频盘(DVD)。
参考图4A,应用软件1122的实施例可以实现为计算机软件,所述计算机软件的形式为在数据处理系统上执行的计算机可读代码,所述数据处理系统例如包括通过系统总线1100与一个或多个存储元件相连的处理器1101的硬件环境1110。所述存储元件可以例如包括本地存储器1102、存储介质1106以及高速缓冲存储器1104。处理器1101将可执行代码从存储介质1106加载到本地存储器1102。高速缓冲存储器1104提供临时存储以减少从存储介质1106加载要执行的代码的次数。
用户接口设备1105(例如键盘、指点设备等)以及显示屏1107可以例如直接与计算系统相连,也可以通过中间I/O控制器1103与计算系统相连。还可以将诸如网络适配器之类的通信接口单元1108连接到计算系统,以使得数据处理系统能够通过中间专用网络或公共网络与其他数据处理系统或远程打印机或存储设备进行通信。有线或无线调制解调器和以太网卡是一些示例性的网络适配器类型。
在一个或多个实施例中,硬件环境1110可以不包括上述所有组件,或者可以包括执行其他功能或实用程序的组件。例如,硬件环境1110可以是膝上型计算机或包含在嵌入式系统中的其他便携式计算设备,例如机顶盒、个人数字助理(PDA)、移动通信装置(例如无线电话)或其他具有信息处理和/或数据存储以及通信能力的类似硬件平台。
在某些系统实施例中,通信接口1108通过发送和接收电、电磁或光信号(承载代表包括程序代码的各种类型信息的数字数据流)与其他系统通信。可以通过远程网络(例如因特网)或备选地通过载波传输来建立所述通信。
参考图4B,应用软件1122可以包括一个或多个从存储介质1106加载到本地存储器1102之后在系统软件1121之上执行的计算机程序。在客户机-服务器体系结构中,应用软件1122可以包括客户机软件和服务器软件。例如,在本发明的一个实施例中,客户机软件在计算系统100上执行,而服务器软件在服务器系统(未示出)上执行。
软件环境1120还可以包括用于访问通过本地计算网络或远程计算网络提供的数据的浏览器软件1126。进而,软件环境1120可以包括用于接收用户命令和数据的用户接口1124(例如,图形用户接口GUI)。要指出的是,上述硬件和软件体系结构和环境仅作为示例,并且可以通过任意类型的系统体系结构或处理环境实现本发明的一个或多个实施例。
应当理解,所述逻辑代码、程序、模块、过程、方法以及执行每个方法的各个步骤的顺序只是示例性的。取决于实施方式,可以按照任意顺序或并行执行各步骤,除非本披露中另行指出。进而,所述逻辑代码并不与任何特定编程语言相关或限于特定编程语言,并且可以包括在分布式、非分布式或多处理环境中的一个或多个处理器上执行的一个或多个模块。
因此,应当理解,本发明可以在所附权利要求的精神和范围内进行任何修改和改变。所述说明并非旨在是穷举的或将本发明限于所披露的精确形式。所披露的实施例的上述以及其他修改和组合都在本发明的范围内并进一步由权利要求及其等同物的完整范围来限定。
Claims (18)
1.一种用于在计算环境中进行存储器管理的方法,所述方法包括:
唯一地标识与计算环境中执行的应用的第一任务关联的第一对象,其中将存储器的第一区域分配给所述第一对象;
根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;
确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文;以及
解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务。
2.如权利要求1中所述的方法,还包括:
唯一地标识与作为所述第一任务的子任务的第二任务关联的第二对象,其中将存储器的第二区域分配给所述第二对象;
根据与所述第二任务关联的第二执行上下文来确定所述第二任务的第二执行范围,其中所述第二上下文定义了所述第二任务在所述执行环境层次内相对于所述第一任务的第二预期寿命;
确定所述第二任务的执行范围的变化,以响应监视所述第二执行上下文;以及
解除分配存储器的所述第二区域,以响应确定不再在所述第二执行范围内执行所述第二任务。
3.如权利要求2中所述的方法,还包括:
唯一地标识与作为所述第二任务的子任务的第三任务关联的第三对象,其中将存储器的第三区域分配给所述第三对象;以及
解除分配存储器的所述第三区域,以响应确定所述第三任务不再主动为请求服务。
4.如权利要求2中所述的方法,其中终止所述第二执行上下文以响应确定所述第三任务不再主动为请求服务。
5.如权利要求1中所述的方法,其中终止所述第一执行上下文以响应确定所述第二任务不再主动为请求服务。
6.如权利要求2中所述的方法,其中终止所述第二执行上下文以响应确定所述第二任务的子任务都没有主动为请求服务。
7.如权利要求1中所述的方法,其中所述第一任务在服务器系统与客户机系统之间建立的会话中执行,其中终止所述第一执行上下文以响应确定所述会话被终止。
8.如权利要求3中所述的方法,其中所述第一、第二和第三任务在通过通信网络而在服务器系统与客户机系统之间建立的会话中执行。
9.如权利要求8中所述的方法,其中所述通信网络包括因特网。
10.如权利要求8中所述的方法,其中解除分配存储器的所述第一、第二和第三区域以响应确定所述会话已终止。
11.一种用于在计算环境中进行存储器管理的系统,所述系统包括:
用于唯一地标识与计算环境中执行的应用的第一任务关联的第一对象的逻辑单元,其中将存储器的第一区域分配给所述第一对象;
用于根据与所述第一任务关联的第一执行上下文来确定所述第一任务的第一执行范围的逻辑单元,其中所述第一上下文定义了所述第一任务在执行环境层次内的第一预期寿命;
用于确定所述第一任务的执行范围的变化,以响应监视所述第一执行上下文的逻辑单元;以及
用于解除分配存储器的所述第一区域,以响应确定不再在所述第一执行范围内执行所述第一任务的逻辑单元。
12.如权利要求11中所述的系统,还包括:
用于唯一地标识与作为所述第一任务的子任务的第二任务关联的第二对象的逻辑单元,其中将存储器的第二区域分配给所述第二对象;
用于根据与所述第二任务关联的第二执行上下文来确定所述第二任务的第二执行范围的逻辑单元,其中所述第二上下文定义了所述第二任务相对于所述第一任务的第二预期寿命;
用于确定所述第二任务的执行范围的变化,以响应监视所述第二执行上下文的逻辑单元;以及
用于解除分配存储器的所述第二区域,以响应确定不再在所述第二执行范围内执行所述第二任务的逻辑单元。
13.如权利要求12中所述的系统,还包括:
用于唯一地标识与作为所述第二任务的子任务的第三任务关联的第三对象的逻辑单元,其中将存储器的第三区域分配给所述第三对象;以及
用于解除分配存储器的所述第三区域,以响应确定所述第三任务不再主动为请求服务的逻辑单元。
14.如权利要求12中所述的系统,其中终止所述第二执行上下文以响应确定所述第三任务不再主动为请求服务。
15.如权利要求11中所述的系统,其中终止所述第一执行上下文以响应确定所述第二任务不再主动为请求服务。
16.如权利要求12中所述的系统,其中终止所述第二执行上下文以响应确定所述第二任务的子任务都没有主动为请求服务。
17.如权利要求11中所述的方法,其中所述第一任务在服务器系统与客户机系统之间建立的会话中执行,其中终止所述第一执行上下文以响应确定所述会话被终止。
18.如权利要求13中所述的方法,其中所述第一、第二和第三任务在通过通信网络而在服务器系统与客户机系统之间建立的会话中执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/681,650 US8001336B2 (en) | 2007-03-02 | 2007-03-02 | Deterministic memory management in a computing environment |
US11/681,650 | 2007-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101256533A true CN101256533A (zh) | 2008-09-03 |
CN101256533B CN101256533B (zh) | 2010-06-16 |
Family
ID=39733959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100809241A Expired - Fee Related CN101256533B (zh) | 2007-03-02 | 2008-02-29 | 在计算环境中进行存储器管理的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8001336B2 (zh) |
JP (1) | JP5182801B2 (zh) |
CN (1) | CN101256533B (zh) |
TW (1) | TWI421681B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446118A (zh) * | 2010-11-17 | 2012-05-09 | 微软公司 | 聚焦于上下文和任务的计算 |
CN106062738A (zh) * | 2013-11-12 | 2016-10-26 | 皮沃塔尔软件公司 | 管理作业状态 |
CN109804377A (zh) * | 2017-06-16 | 2019-05-24 | 谷歌有限责任公司 | 受限计算机环境中的交叉源通信 |
CN111801659A (zh) * | 2018-02-12 | 2020-10-20 | 美光科技公司 | 存储器系统中的数据存取及通信的优化 |
US10963293B2 (en) | 2010-12-21 | 2021-03-30 | Microsoft Technology Licensing, Llc | Interactions with contextual and task-based computing environments |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102437935B (zh) * | 2011-12-16 | 2015-01-14 | 江西省电力公司信息通信中心 | Web应用监控方法及设备 |
US9363321B2 (en) | 2013-11-08 | 2016-06-07 | International Business Machines Corporation | Analytics based scoping of HTML5 web storage attributes |
US9747250B2 (en) * | 2015-03-25 | 2017-08-29 | International Business Machines Corporation | Effective memory management for host objects in a runtime environment with embedded garbage-collected based dynamic language |
US10230804B2 (en) * | 2015-06-16 | 2019-03-12 | International Business Machines Corporation | Monitoring system for tracking user activities for completing thoughts, ideas, or tasks of the user |
GB2539435B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level |
GB2539428B (en) | 2015-06-16 | 2020-09-09 | Advanced Risc Mach Ltd | Data processing apparatus and method with ownership table |
GB2539436B (en) | 2015-06-16 | 2019-02-06 | Advanced Risc Mach Ltd | Secure initialisation |
GB2539433B8 (en) | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
GB2539429B (en) | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
US11468312B2 (en) * | 2018-02-02 | 2022-10-11 | Samsung Electronics Co., Ltd. | Memory management for machine learning training on GPU |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
CN113791988B (zh) * | 2021-11-17 | 2022-02-18 | 畅捷通信息技术股份有限公司 | 一种降低小程序包体积的渲染方法、装置及存储介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778350A (en) * | 1995-11-30 | 1998-07-07 | Electronic Data Systems Corporation | Data collection, processing, and reporting system |
JP3087696B2 (ja) * | 1997-07-25 | 2000-09-11 | 日本電気株式会社 | 分散メモリ型マルチプロセッサ・システム制御方法およびコンピュータ読み取り可能な記録媒体 |
JP3826626B2 (ja) * | 1997-11-21 | 2006-09-27 | オムロン株式会社 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
US6850893B2 (en) * | 2000-01-14 | 2005-02-01 | Saba Software, Inc. | Method and apparatus for an improved security system mechanism in a business applications management system platform |
JP2001176250A (ja) | 1999-12-16 | 2001-06-29 | Pioneer Electronic Corp | ディスク再生方法ならびにその再生装置及び同方法が記録される記録媒体 |
US7065568B2 (en) * | 2000-11-30 | 2006-06-20 | Microsoft Corporation | System and method for managing states and user context over stateless protocols |
US7024473B2 (en) * | 2001-01-05 | 2006-04-04 | Matsushita Electric Works, Ltd. | Web server for communicating with one or more electronic devices through a gateway computer |
JP3939975B2 (ja) * | 2001-12-14 | 2007-07-04 | 松下電器産業株式会社 | ガベージコレクション装置、ガベージコレクション方法及びガベージコレクションプログラム |
US6892202B2 (en) * | 2002-04-17 | 2005-05-10 | Sun Microsystems, Inc. | Optimistic transaction compiler |
US7243352B2 (en) * | 2002-11-27 | 2007-07-10 | Sun Microsystems, Inc. | Distributed process runner |
JP4116877B2 (ja) * | 2002-12-26 | 2008-07-09 | 富士通株式会社 | ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置およびそのプログラム |
EP1489518B1 (en) * | 2003-06-19 | 2008-02-06 | Texas Instruments Incorporated | Embedded garbage collection |
US7526515B2 (en) * | 2004-01-21 | 2009-04-28 | International Business Machines Corporation | Method and system for a grid-enabled virtual machine with movable objects |
JP4028853B2 (ja) * | 2004-03-30 | 2007-12-26 | 株式会社日立製作所 | 情報サービス通信ネットワークシステムおよびセッション管理サーバ |
US7707583B2 (en) * | 2004-05-20 | 2010-04-27 | Sap Ag | Robust sharing of runtime systems |
US20050267770A1 (en) * | 2004-05-26 | 2005-12-01 | International Business Machines Corporation | Methods and apparatus for performing task management based on user context |
US7676791B2 (en) * | 2004-07-09 | 2010-03-09 | Microsoft Corporation | Implementation of concurrent programs in object-oriented languages |
US7680935B2 (en) * | 2004-09-30 | 2010-03-16 | Microsoft Corporation | Entity domains |
US7756801B2 (en) * | 2004-11-15 | 2010-07-13 | Palo Alto Research Center Incorporated | Systems and methods for architecture independent programming and synthesis of network applications |
JP4609070B2 (ja) * | 2004-12-28 | 2011-01-12 | 沖電気工業株式会社 | マルチ呼処理スレッド処理方法 |
CN100383739C (zh) * | 2006-03-15 | 2008-04-23 | 浙江大学 | 嵌入式操作系统镜像启动的启动优化方法 |
US7900200B1 (en) * | 2006-06-16 | 2011-03-01 | Oracle America, Inc. | Persistence system for servlet-based applications on resource-constrained devices |
TWM305384U (en) * | 2006-07-14 | 2007-01-21 | Hon Hai Prec Ind Co Ltd | Multifunctional keyboard |
-
2007
- 2007-03-02 US US11/681,650 patent/US8001336B2/en not_active Expired - Fee Related
-
2008
- 2008-02-22 JP JP2008041383A patent/JP5182801B2/ja not_active Expired - Fee Related
- 2008-02-29 TW TW097107204A patent/TWI421681B/zh not_active IP Right Cessation
- 2008-02-29 CN CN2008100809241A patent/CN101256533B/zh not_active Expired - Fee Related
-
2011
- 2011-05-25 US US13/115,123 patent/US20110238944A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446118A (zh) * | 2010-11-17 | 2012-05-09 | 微软公司 | 聚焦于上下文和任务的计算 |
US10963293B2 (en) | 2010-12-21 | 2021-03-30 | Microsoft Technology Licensing, Llc | Interactions with contextual and task-based computing environments |
CN106062738A (zh) * | 2013-11-12 | 2016-10-26 | 皮沃塔尔软件公司 | 管理作业状态 |
CN106062738B (zh) * | 2013-11-12 | 2019-07-16 | 皮沃塔尔软件公司 | 管理作业状态 |
CN109804377A (zh) * | 2017-06-16 | 2019-05-24 | 谷歌有限责任公司 | 受限计算机环境中的交叉源通信 |
CN109804377B (zh) * | 2017-06-16 | 2023-06-20 | 谷歌有限责任公司 | 用于传送数据的方法以及计算系统 |
CN111801659A (zh) * | 2018-02-12 | 2020-10-20 | 美光科技公司 | 存储器系统中的数据存取及通信的优化 |
Also Published As
Publication number | Publication date |
---|---|
US20080215826A1 (en) | 2008-09-04 |
US8001336B2 (en) | 2011-08-16 |
TW200900923A (en) | 2009-01-01 |
TWI421681B (zh) | 2014-01-01 |
US20110238944A1 (en) | 2011-09-29 |
JP5182801B2 (ja) | 2013-04-17 |
JP2008217786A (ja) | 2008-09-18 |
CN101256533B (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101256533B (zh) | 在计算环境中进行存储器管理的方法和系统 | |
US11425194B1 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
CN108683516B (zh) | 一种应用实例的升级方法、装置和系统 | |
US9253265B2 (en) | Hot pluggable extensions for access management system | |
JP5335948B2 (ja) | 複数のコンピュータシステムによるプログラムの実行を管理するシステム | |
US11853816B2 (en) | Extending the Kubernetes API in-process | |
US9348709B2 (en) | Managing nodes in a distributed computing environment | |
JP2007207225A (ja) | ウェブ・アプリケーション・ミドルウェアのための非集中型のアプリケーション配置方法、システム、プログラム | |
US11330078B1 (en) | Method and system for managing updates of a data manager | |
CN109582459A (zh) | 应用的托管进程进行迁移的方法及装置 | |
CN103946799A (zh) | 基于应用程序对其他应用程序的依赖性对其自动执行操作 | |
CN101963913B (zh) | 一种基于事务的构件在线演化方法 | |
CN112035123A (zh) | 一种基于kubernetes平台实现无服务器的方法 | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
US20080256557A1 (en) | Proactive Prevention of Service Level Degradation during Maintenance in a Clustered Computing Environment | |
US9513980B2 (en) | Transparent distribution and decoupling of modules using asynchronous communication and scopes | |
CN101251815A (zh) | 用于恢复计算系统的系统和方法 | |
US11561777B2 (en) | System and method for intelligent update flow across inter and intra update dependencies | |
EP4024761A1 (en) | Communication method and apparatus for multiple management domains | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
Ayadi et al. | QoS-aware component for Cloud computing | |
CN113742646A (zh) | 将单语言复合函数编译为单个实体 | |
US11768704B2 (en) | Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling | |
CN113961319B (zh) | 作业热迁移的方法、装置、电子设备及存储介质 | |
US12035156B2 (en) | Communication method and apparatus for plurality of administrative domains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100616 Termination date: 20190228 |