CN1325069A - 应用执行装置及方法 - Google Patents

应用执行装置及方法 Download PDF

Info

Publication number
CN1325069A
CN1325069A CN01121695.6A CN01121695A CN1325069A CN 1325069 A CN1325069 A CN 1325069A CN 01121695 A CN01121695 A CN 01121695A CN 1325069 A CN1325069 A CN 1325069A
Authority
CN
China
Prior art keywords
application
resource
notice
zone
separation stack
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
Application number
CN01121695.6A
Other languages
English (en)
Other versions
CN1254746C (zh
Inventor
盐见隆一
叶山悟
平本建志
久保冈祐子
土井繁则
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1325069A publication Critical patent/CN1325069A/zh
Application granted granted Critical
Publication of CN1254746C publication Critical patent/CN1254746C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

程序库部对应于来自应用的资源提供请求提供资源时,取得识别请求资源提供的应用的标识符,将提供的资源和取得的应用标识符分组后保持在表中。因此,当应用结束时,取得结束的应用的应用标识符,从表指定对应于取得的标识符的资源,释放指定的资源。

Description

应用执行装置及方法
本发明涉及一种对于应用(application)执行装置在应用结束时回收不必要的资源的技术。
对于一般的应用执行装置而言,操作系统的核心程序(kernel)通过应用结束等回收不必要的资源(存储器、键盘等各种装置)。这里,所谓“回收”是指核心程序等操作系统从应用中取回向应用提供的资源。核心程序为了进行资源的回收,在每个装置中存储资源回收的顺序。因此,应用所使用的装置变得不必要,核心程序根据该装置的回收顺序就能够进行资源的回收,从而能够有效地利用资源。
另外,对于Java应用执行装置而言,例如在PC中,关于存储器以外的其它资源的回收,Java中间设备(所谓的虚拟计算机)本身不回收资源,在Java损耗结束时,由核心程序回收资源。
另一方面,通过Java中间件(middle ware)的“回收站”来进行存储器的回收。所谓“回收站”是指回收存储器区域中不必要的区域。在Java中,应用的下载通过向存储器中下载构成应用的多类的各种实例(以下称为对象)来进行。存储器区域由从执行中的应用中下载的对象共有,在存储器区域中,按下载的顺序分配区域。因此,因为多个应用而连续地在存储器区域中下载对象的情况下,从一个应用下载的各对象以不连续的形式分配在存储器区域中。
存储器区域由下载的对象不连续地占有时,为了消除存储器不足,进行无用单元的回收。但是,上述说明的资源回收处理技术中存在下述问题:
第一:在由应用执行装置中的核心程序进行资源回收处理的情况下,每次向应用执行装置重新追加装置,追加的装置的回收顺序必须被重新存储在核心程序中。
第二:在Java应用执行装置中的资源回收处理的情况下,未结束Java中间设备而依次执行应用时,因为核心程序的存储器以外的资源的回收直到Java中间设备结束后才能进行,所以即使结束了一个应用,因为提供给该应用的资源未被回收,所以在下一应用有必要是同一资源的情况下,不能执行下一应用。
第三:以不连续的形式分配给对象的存储器区域变得不必要的情况下,存储器区域的无用单元的回收的负荷变大。
鉴于上述问题,本发明的第一个目的是提供一种不通过核心程序来执行资源回收的应用执行装置。
为了达到上述目的,本发明具有“权利要求1”的结构。另外,也可是“权利要求2”的结构,或是“权利要求4”的结构,或是“权利要求33”的结构。
通过该结构,每当应用结束时,因为不是通过核心程序部而是通过程序库部回收不必要的资源,所以每次追加新的资源时没必要修正核心程序部。
这里,也可以是“权利要求7”的结构。
根据该结构,因为只向对于结束的应用提供资源的程序库通知哪个是已结束的应用,所以不用徒劳地向不提供该资源的程序库部进行通知,而能够回收该资源。
这里,也可以是“权利要求8”的结构。
根据该结构,因为程序库部能够全部回收向结束的多个应用提供的资源,所以可进行有效的资源的回收。
这里,也可以是“权利要求17”的结构。另外,还可以是“权利要求34”的结构。
根据该结构,对应于应用是中断还是结束来判定是否应回收资源,并能够回收指定部分的资源。
本发明的第二个目的是提供一种Java应用执行装置,不必重新启动Java中间设备也能连续地执行Java应用。
为了实现该目的,本发明具有“权利要求20”的结构。另外,也可以是“权利要求35”的结构。
根据该结构,因为没必要在每次应用结束时回收资源,所以可确保连续地执行Java应用。
这里,也可以是“权利要求26”的结构。
根据该结构,确保了Java中间设备部中的必要的资源,因为即使应用结束时也不回收该资源,所以可在较短的时间内执行新的应用。
本发明的第三个目的是提供一种减轻无用单元回收处理的负荷的Java应用执行装置。
为了实现该目的,本发明具有“权利要求37”的结构。另外,也可以是“权利要求44”的结构,或是“权利要求51”的结构。
根据该结构,每当结束应用时,释放分配给结束应用的大量分割区域,因为在释放的大量分割区域的内部不需要无用单元回收,所以可减轻无用单元回收的负荷。
这里,可以是“权利要求38”的结构。另外,也可是“权利要求45”的结构,或是“权利要求52”的结构。
根据该结构,因为将存储器尺寸比大量存储器区域整体小的大量分割区域作为对象来进行无用单元回收,所以能够减轻一次无用单元回收的负荷。
这里,可以是“权利要求39”的结构。另外,也可是“权利要求46”的结构,或是“权利要求53”的结构。
根据该结构,因为在进行无用单元回收期间也可继续执行将该处理对象用作大量分割区域的应用以外的应用,所以用户不用等待该处理的结束就可进行使用其它应用的操作。
图1是表示应用执行装置10的构成的框图;
图2表示定义为回收函数的C语言程序的一个实例;
图3表示记述了回收函数的登记和呼叫出执行的C语言程序的实例;
图4是表示各程序库部进行资源提供处理的流程图;
图5表示将控制文件系统的程序库部(下面称为程序库部F)保持的应用标识符和资源名(文件名)进行编组的表;
图6是表示各程序库部进行资源回收处理的流程图;
图7表示多个应用一起结束的情况下的各程序库部进行资源回收处理的流程图;
图8是表示应用执行装置20的结构的框图;
图9是表示定义接口的Java程序的实例;
图10表示生成应用信息接口的类的一个实例;
图11表示资源回收类的一个实例;
图12表示生成资源回收类的资源回收接口的实例;
图13是表示各程序库进行资源提供的处理的流程图;
图14是表示在应用信息接口存储知道应用状态的方法和消除资源回收接口的登记的方法的情况下各程序库部进行回收处理的流程图;
图15是表示应用执行装置30的结构的框图;
图16表示应用和对应于应用生成的任务和构成任务的寄存器的对应关系的表的实例;
图17是表示应用终止时应用管理部33b进行处理的流程图;
图18是表示分分类库部进行监听程序管理的处理的流程图;
图19是保持分类库部的表实例;
图20是表示通知发生事件的处理的流程图;
图21是表示分类库部进行监听程序呼叫处理的流程图;
图22是使用键将从专用寄存器呼叫的监听程序的顺序的实例模式化的图;
图23是表示VM部33a获得系统专用的寄存器的处理的流程图;
图24是表示应用执行装置40的结构的框图;
图25表示对应用管理部43b保持的类加载器的实例对应的应用ID进行分组的表实例;
图26是表示应用管理部43b生成的类加载器的实例和任务的关系的模式图;
图27表示将提供的资源的资源名和应用ID分组的表的实施;
图28是表示应用执行装置100的结构的框图;
图29是表示大量存储器区域管理表104f与存储器105的状态的图;
图30是表示由VM部103接受对象区域获得指示后的应用执行装置100的对象区域获得的动作的流程图;
图31是表示应用终止时的应用执行装置100的分割大量区域的释放动作的流程图;
图32是表示系统大量区域105-1登记在存储器大量区域管理表104f中的状态的图。
实施例1
根据本实施例中的应用执行装置,在每次应用结束等时不是由核心程序、而是由程序库部进行向应用提供的资源的回收。
这里,“应用”是指程序和因执行程序而产生的功能中的任一个。所谓“资源”是指调谐器、MPEG音频解码器、MPEG视频解码器、键盘输入装置、遥控输入装置、鼠标输入装置、跟踪板输入装置、互斥体(ミユ-テツクス)、信号标志(semaphore)、网络装置、串行装置、IEEE1394(串行接口)、USB(通用串行总线)装置接口、文件系统、显示装置、存储器、调制解调器等。程序库部是响应于应用请求对资源进行控制(资源的确保、管理、回收)的所谓装置驱动组。
具体而言,程序库部对应于来自应用的资源提供请求提供资源的时候,取得识别请求资源提供的应用的标识符,将提供的资源和取得的应用标识符分组后保持在表中。因此,当结束应用时,取得结束的应用的应用标识符,从表指定对应于取得的标识符的资源,并回收指定的资源。
下面利用附图来说明本应用执行装置的实施例。图1是表示应用执行装置10的结构的框图。应用执行装置10由应用输入部11、应用存储部12、核心程序部13、程序库存储部14、装置部15、指示通知部16构成。
应用输入部11由软盘驱动器、CD驱动器、网络接口板、广播接收机等构成,接收应执行的应用,存储在应用存储部12中。
应用存储部12由RAM、ROM、硬盘、CD驱动器、软盘等构成,存储从应用输入部11输出的应用或事先存储的应用。
核心程序部13由依次执行部13a、资源回收通知部13b、标识符提供部13c构成,执行应用存储部12存储的应用。
依次执行部13a在执行的应用为二进制程序的情况下,由照样执行二进制程序的CPU等构成。执行的应用在Java字节代码(Java为美国Sun Microsystems,Inc.的商标)这种中间代码的情况下,由依次解析中间代码并执行的模块(虚拟计算机或转换机)等构成。依次执行部13a读出应用存储部12存储的应用并执行。之后,从执行应用向存储在的程序库存储部14中的程序库部请求提供资源,从程序库部接收应用请求的资源提供。
资源回收通知部13b对于每次应用结束等时向该应用提供资源的程序库部通知资源回收指示和该应用标识符。具体而言,资源回收通知部13b从程序库存储部14存储器的程序库部接收回收函数的登记,从指示通知部16接收应用结束或中断的通知时,呼叫登记的回收函数并执行,向程序库部通知该应用的标识符。
这里,所谓的“回收函数的登记”是指:对应于程序库部的应用请求,向该应用开始提供新的资源时,委托资源回收通知部13b,“若该应用结束或中断,通过呼叫回收函数并执行来通知该程序库部,中断或结束的应用为哪个”。
图2表示定义回收函数的C语言程序的一个实例。CALLBACK-f表示回收函数的类型名。该回收函数没有返回值,自变量为整数值。图3表示记录回收函数的登记、消除和执行的C语言程序的实例。行序号6-14表示登记的程序实例,行序号16-20表示消除的程序实例,行序号22-26表示执行的程序实例。
标识符提供部13c对应于来自程序库部的请求提供应用的标识符。
程序库存储部14由控制作为资源的装置的多个程序库部14a-14n构成。各程序库部控制装置部15对应的装置(例如程序库部14a控制装置15a,程序库部14b控制装置15b。)。实际上,程序库存储部14由ROM或硬盘构成,在各程序库部中,通过记录装置控制用的函数组的程序向应用呼叫后执行来实现装置的控制。
具体而言,各程序库部通过进行如下所示的处理来控制资源。对应于应用的请求来提供资源,将回收函数登记在资源回收通知部13b中。接着,从应用识别部13c中取得请求资源的应用的应用标识符,将提供的资源的资源名分成组后保持在表中。之后,由资源释放通知部13b执行登记的回收函数,通知使用应回收的资源的应用的应用标识符时,从保持的表来指定对应于通知的应用标识符的资源名,回收指定的资源名的资源。
下面,参照图4来说明各程序库部对应于应用的请求进行资源提供的处理。图4是表示各程序库部进行资源提供处理的流程图。各程序库部对应于应用的请求确保资源(S301),判断是否已登记了回收函数(例如设定标志,判断登记、未登记)(S302),在未登记的情况下(S302:N),在资源回收通知部13b中登记回收函数(S303)。
接着,呼叫标识符提供部13c,取得请求资源的应用的应用标识符(S304),将取得的应用标识符和确保的资源的资源名分组后保持在表中(S305),向应用提供资源(S306)。在登记的情况下(S302:Y),不重新登记回收函数,执行S304-S306。
上述表的实例如图5所示。图5表示将控制文件系统的程序库部(下面称为程序库部F)保持的应用标识符和资源名(文件名)分组的表。图5-(1)表示程序库部向资源释放通知部13b登记回收函数,对应于应用标识符“1”的应用来提供文件名“a.txt”的资源。应用通过呼叫程序库部F的函数来请求提供资源时,程序库部F确保文件名“b.txt”的资源,从标识符提供部13c取得应用标识符“2”。此时,程序库F的回收函数因为已登记而不再登记。程序库部F将取得的应用标识符“2”和确保资源的文件名“b.txt”分组后保持在表中,如图5-(2)所示更新表。
接着,参照图6来说明各程序库部进行的资源回收处理。图6是表示各程序库部进行的资源回收处理的流程图。当呼叫回收函数时,各程序库部通过资源回收通知部13b取得应用标识符(S401),取出一组保持在表中的应用标识符和资源名(S402),将取出的应用标识符与由资源回收通知部13b取得的应用标识符进行比较(S403)。当应用标识符一致时,回收取出的组的资源名资源(S404),从表中消除该组(S405),当结束与保持在表中的全部组的比较时(S406:Y),结束处理。例如在图5-(2)的表实例中,在取得应用标识符为“2”的情况下,从表中消除对应于应用标识符“2”的文件名“b.txt”(图5-(3))。当与全部组的比较未结束时(S406:N),取出下一组(S402),重复同样的处理(S403-S406)。当应用标识符不一致时,在结束了与保持在表中的全部组的比较的情况下(S406:Y),结束处理。在未结束与全部组的比较的情况下(S406:N),取出下一组(S402),重复同样的处理(S403-S406)。
装置15a-15n包含存储器、显示器、输入装置(键盘、遥控等)、文件系统、网络装置等,各装置对应于来自通过程序库存储部14存储的各程序库部所构成的应用的控制进行动作。
指示通知部16进行应用的开始、停止、再开始、结束的处理。
所谓的应用的开始处理是指指示依次执行部13a中应用存储部12存储的应用的执行。
所谓的应用停止处理是指中断在依次执行部13a中执行的应用,如果必要则向资源回收通知部13b通知应用的中断。
所谓应用的再开始处理是指指示在依次执行部13a中中断的应用的执行。
所谓应用结束的处理是指指示依次执行部13a中执行的应用的结束,向资源回收通知部13b通知应用的结束。
在本实施例中,在应用结束或中断时向应用提供资源的各程序库部通知的应用标识符为一个,但在多个应用同时结束的情况下,也可向各程序库部通知多个应用标识符。此时的各程序库部进行的资源回收处理的流程如图7所示。通过资源回收通知部13b取得提供各程序库部回收资源的多个应用的标识符(S751),取出一个取得的应用标识符(S752),取出一组保持在表中的应用标识符和资源名(S753),将取出的应用标识符与由资源回收通知部13b取得的应用标识符进行比较(S754)。当应用标识符一致时(S754:Y),将对应的资源名作为回收对象的资源名来保持(S755),从表中消除该组(S756),当结束与保持在表中的全部组的比较时(S757:Y),取得下一个应用标识符(S758、S752),重复同样的处理。在结束了对应于S751中取得的全部组的应用标识符的比较时(S758:Y),回收所有对应于S755中作为回收对象的资源名保持的资源名的资源(S759)。
由此,程序库部可有效地进行资源回收。例如,(一个)程序库部管理的资源全部回收以结束多个应用的情况下,能够仅以初始化管理表的处理来迅速回收资源。
(实施例2)
在根据实施例1中,程序库部在结束应用等情况下在每个程序库部中登记呼叫的回收函数,但在本实施例中,生成相当于实施例1的回收函数的资源回收接口,回收每次应用结束等时提供给应用的资源。这里,“资源回收接口”是指从程序库部存储的类(Java字节代码的程序)生成的、记录各种信息和作为取出该信息用的函数的方法的程序,资源回收接口保持取出请求资源提供的应用和提供资源信息这些信息用的方法。通过在程序上呼叫该方法来取出保持的信息。
下面利用附图来说明本应用执行装置的实施例。图8是表示应用执行装置20的结构的框图。应用执行装置20由应用输入部11、应用存储部12、OS部23、程序库存储部24、装置部15、指示通知部16构成。应用输入部11、应用存储部12、装置部15、指示通知部16与包含于实施例1的执行装置10的相同,所以省略其说明。
OS部23由虚拟计算机23a、应用管理部23b构成,执行应用存储部12存储的Java应用(以下称为应用)。
虚拟计算机机23a从应用存储部12下载应用,依次解析应用的字节代码,执行应用。另外,通过存储在程序库存储部24中的各程序库部来控制存储在装置部15中的各装置。实际上,从虚拟计算机23a执行的应用来呼叫作为记录装置控制的程序的各程序库部的类,通过执行类的程序来实现各装置的控制。
应用管理部23b管理执行的应用,另外,具有相当于实施例1的标识符提供部13c的功能。具体而言,应用管理部23b从定义存储应用信息的处理的类在每个应用中生成执行处理的实例,在生成的各实例(这里,称为应用信息实例)中,存储执行的各应用的应用标识符,使用生成的各应用信息实例(图8的23c-23e)来管理执行的应用。另外,各程序库部请求从应用提供资源时,提供作为指定请求应用的标识符的应用信息实例。这里,取代将各应用的标识符存储在各应用信息实例内,也可将应用信息实例作为应用的标识符。
各应用信息实例具有相当于实施例1的资源回收通知部13b的功能。具体而言,进行以下的处理。各应用信息实例从各程序库接收资源回收实例的登记。这里,所谓“资源回收实例的登记”是指当程序库部向应用提供新的资源时,委托存储该应用标识符的应用信息实例,“如果该应用结束或中断时,通知该程序库部,通知该应用为哪一个”。上述通知通过呼叫登记时生成的资源回收实例中安装的方法来执行。资源回收实例从各程序库部存储的各类来如下所示生成。各类通过安装“接口”来安装“接口”定义的方法。“接口”定义应安装于类中的方法。图9是该接口的一个实例。在该实例中,Resource CollectionListener接口定义update方法。各程序库部存储的各类通过安装该接口来准备记录在update方法中的资源回收处理类,由准备的类生成安装该接口的资源回收实例,在应用信息实例中登记生成的资源回收实例。通过该处理,在生成的资源回收实例中,保证了安装接口定义的方法(这里指update方法),通过呼叫该接口定义的方法来执行上述通知。
另外,应用结束或中断的情况下,存储该应用标识符的应用信息实例通过安装在登记的资源回收实例中的方法(这里指update方法)来向该应用提供资源的程序库部进行上述通知。
之后,应用信息实例也可存储消除登记的资源回收实例的方法,也可存储了解应用状态的方法。
图10表示生成存储上述方法的应用信息实例的类的一个实例。图10中,生成应用信息实例的作为类的application Propoxy定义相当于应用名(application name)的内部变量和了解应用状态的gets tatus方法、登记资源回收实例(resource Collection Lister)的add Listener方法、消除资源回收实例的登记的remove Listener方法。
程序库存储部24由多个程序库部24a-24n构成。各程序库部控制装置部15的装置15a-15n,对应于应用的请求来进行作为资源的装置提供的处理和提供资源回收的处理。实际上,程序库存储部24由ROM或硬盘构成,在各程序库部中,通过向应用呼叫并执行记录在作为装置控制用的程序的类组中的程序来实现装置的控制。
首先说明资源提供处理。各程序库部被请求从应用提供资源时,向应用提供所请求的资源,呼叫应用管理部23b,取得对应于该应用的应用信息实例,从资源回收类生成资源回收实例,将生成的资源回收实例登记在该应用信息实例中。之后,各程序库部将提供的资源的资源名和该应用信息实例分组后保持在资源回收实例中。
图11表示资源回收类的一个实例。在图11中,定义控制文件系统的资源回收类。具体而言,定义称为资源回收实例生成时生成的“区域”的内部变量app(相当于应用信息实例)和name(相当于资源的文件名)的信息和在应用结束或中断时呼叫、执行资源回收处理的update方法。图12表示图11的资源回收类生成的资源回收实例的实例。901表示保持资源回收实例的实例表,902、903表示生成的资源回收实例。图12-(1)表示将资源回收信息实例902提供的资源名(这里为文件名“a.txt”)和应用信息实例(这时作为“1”)分组后保持。图12-(2)表示程序库向在与图12-(1)不同的应用信息实例“2”中管理的应用提供资源(文件名为“b.txt”的文件)并重新生成资源回收实例903。
下面利用图13来详细说明资源提供的处理。图13是表示各程序库部进行资源提供的处理的流程图。各程序库部被请求从应用提供资源时,对应于请求来确保资源(S1001),从应用管理部23b取得对应于该应用的应用信息实例(S1002)。接着,取出一个保持的资源回收实例(S1003),比较从应用管理部23b中取得的应用信息实例和保持在取出的资源回收实例中的应用信息实例(S1004)。当应用信息实例一致的情况下(S1004:Y),在保持该应用信息实例的资源回收实例中保持确保的资源的资源名(S1005),向该应用提供确保的资源(S1009)。另一方面,在S1004中,当应用信息实例不一致的情况下(S1004:N),相对于保持的其它全部资源回收实例进行应用信息实例的比较(S1006),如果一致(S1006:Y)则重新生成资源回收实例,在生成的资源回收实例中,将从应用管理部23b取得的应用信息实例和确保的资源的资源名分组后保持(S1007),将生成的资源回收实例登记在对应于请求资源确保的应用的应用信息实例中(S1008),向应用提供确保的资源(S1009)。
接着,说明资源回收处理。程序库部在应用结束或中断时,从存储该应用标识符的应用信息实例中呼叫对应的资源回收实例的方法时,回收对应于保持在该资源回收实例中的资源名的资源。
对在上述情况下的准备了解应用信息实例中的应用状态的方法(下面称为应用状态方法)和消除资源回收实例的登记的方法的情况下的资源回收处理进行说明。图14是表示应用信息实例具有应用状态方法的情况下的程序库部进行回收处理的流程图。程序库部从应用信息实例中呼叫登记的资源回收实例的方法时,呼叫保持在资源回收实例中的应用信息实例的应用状态方法,取得应用中断或结束的信息(S1101),基于取得的信息来判定是否回收资源(S1102),在回收资源的情况下,回收对应于保持在该资源回收实例中的资源名的资源(S1103),呼叫消除该资源回收实例的登记的方法,通过执行该方法来释放该资源回收实例(S1104)。
另外,S1102中的判定也可以是不是使用应用的全部资源的、所谓回收指定部分资源的判定。这时,S1104中的资源回收实例的释放在回收全部资源时进行。
(实施例3)
本实施例中的应用执行装置在每个应用中生成线程(thread),在生成的线程中确保应用请求的资源,OS部通过以与生成的线程对应的对象单位进行每次应用结束时向结束的应用提供的资源释放来回收不要的资源,从而可能不结束Java中间设备(所谓的虚拟计算机)而执行下一个应用。这里,所谓“线程”是指依次执行应用的程序代码的范围(一连串的处理流程)。Java中记录的应用生成多个线程,各个线程能够并列后执行应用的程序代码。在本实施例中,所谓“对象”是执行应用的多个线程的集合。在本实施例中,分配给应用的资源与该“对象”相互关联地被管理。
下面利用附图详细说明本应用执行装置的实施例。图15是表示应用执行装置30的结构的框图。应用执行装置30由应用输入部11、应用存储部12、Java中间设备部33、OS部34、硬件部35、指示通知部36构成。
因为应用输入部11、应用存储部12与包含在实施例1的执行装置10中的相同,所以省略其说明。
Java中间设备部33由VM(虚拟计算机)部33a、应用管理部33b、分类库存储部33c构成,执行应用存储部12存储的应用。
VM部33a执行应用。
具体而言,VM部33a进行如下所示的处理。包含于硬盘35中的CPU35a能够执行以字节代码记录的应用,依次翻译成二进制代码,在CPU35a中执行翻译的二进制代码。
另外,VM部33a确保在自己的动作和应用执行中所必需的资源。
具体而言,VM部33a呼叫包含于分类库存储部33c中的各分类库部,通过各分类库部来确保自己动作中所必需的资源。另外,在应用执行中从应用来请求资源的确保时,呼叫包含于分类库存储部33c中的各分类库部,通过各分类库部来确保应用所请求的资源。
另外,VM部33a在从应用来请求结束处理的线程消除时,委托核心程序34a来消除线程。
应用管理部33b进行应用启动处理、应用执行中追加或消除线程索表(thread)的管理、应用结束的处理。
首先来说明应用启动的处理。应用管理部33b从指示通知部36接收应用开始指示时,在核心程序34a中生成对象和属于对象的最初线程,在VM部33a中生成的最初线程中,通过执行应用来确保VM部33a的动作中所必需的资源,启动应用。
接着说明应用执行中追加或消除线程的管理。应用管理部33b通过保持表示应用和对应于应用生成的对象和构成对象的线程的对应关系表、并通过每次更新通过应用的请求来追加或消除线程的表,对应于应用和对象来管理线程。图16中表示表的实例。图16-(1)中,为执行中的两个应用,表示对于应用ID“1”的应用生成对象ID“201”的对象,对象ID“201”的对象由线程ID“1”和“2”的线程构成,对于应用ID“2”的应用生成对象ID“202”的对象,对象ID“202”的对象由线程ID“4”、“5”、“6”的线程构成,图16-(2)表示在应用ID“1”的应用执行中,生成新的线程(线程ID“7”的线程),生成的线程的线程ID“7”被追加到表中,图16-(3)表示在应用“2”的应用执行中消除线程ID“5”的线程。
最后说明应用结束的处理。图17为表示应用结束时应用管理部33b进行处理的流程图。应用管理部33b从指示通知部36接收应用结束的指示,向核心程序34a通知对应于结束的应用的对象ID,依赖于资源回收(S801),下面,向包含在分类库存储部33c中的各分类库部通知结束的应用的ID(S802),最后,为了生成对应于结束的应用的对象,释放确保的存储器后结束对象(S803),由此,进行应用结束的处理。例如,在图16-(3)的实例中,在应用ID“2”的应用结束的情况下,应用管理部33b向核心程序34a通知对应于应用ID“2”的对象ID“202”,依赖于核心程序34a中的对应于对象ID“202”的资源回收,接着向分类库部通知结束的应用ID“2”,最后,释放存储器,结束生成的对象“202”和包含于其中的线程“4”和“6”。
分类库存储部33c由多个分类库部33c1-33cn构成,各分类库部控制作为包含于硬件部35中的资源的装置,进行资源提供处理、听众的管理和听众呼叫的处理。
实际上,分类库部33c由ROM或硬盘等构成,在各分类库部中,通过向应用呼叫后执行记录在作为装置控制用的程序的类组中的程序来实现装置的控制。
首先,说明各分类库部进行资源提供的处理。当分类库部请求提供从VM部33a执行的应用呼叫的作为资源的装置时,呼叫对应于存储在OS部34的程序库存储部34b中该装置的程序库部,提供被请求的资源。
下面说明各分类库部进行听众管理的处理。分类库部生成从VM33a执行的应用呼叫的、听众登记的、进行呼叫登记的听众的处理的线程(下面称为专用线程)。通过分类库部的专用线程的生成在执行应用的线程中执行。分类库部生成作为属于执行的应用的对象的线程的呼叫听众的专用线程。
这里,所谓听众是指接受事件(通过由用户进行遥控呼叫操作或从对方先切断调制解调器等的装置的状态变化)发生的连络的类或接口,在听众中,定义发生事件时呼叫的方法,呼叫该方法,通过执行方法来进行事件的处理。在事件发生时呼叫登记的听众。例如,当发生由用户的遥控操作呼叫的事件时呼叫定义为登记的听众的方法,通过执行呼叫的方法来处理事件。
另外,所谓“听众登记”是指应用委托监视该事件的分类库部“当发生事件时通知该应用”。通过该分类库部在听众登记时呼叫定义为该听众的方法来执行上述通知。
另外,分类库部进行听众登记时呼叫应用管理部33b,取得进行听众登记的应用ID。应用管理部33b通过进行以下处理来特指定应用的ID,向分类库部提供指定的ID。应用管理部33b取得进行呼叫的线程的线程类的实例,使用从该实例中取出作为实例保持的散列码值的方法的hashcode函数,指定进行呼叫的实例的ID(线程ID),从表示应用管理部33b管理的应用ID和线程ID的对应关系的表来指定对应于线程ID的应用ID,向分类库部提供指定的ID。这里,取出的散列码值为分配给各实例的识别序号(ID),以通过VM部33a高效地管理由类生成的实例。各分类库部对应于应用管理部33b提供的应用ID和生成的专用线程的ID以及登记的听众的ID以保持在表中。
图18是表示分类库部进行听众管理处理的流程图。
当为了听众登记而由VM部33a执行的应用发出呼叫时,分类库部呼叫应用管理部33b,取得进行听众登记的应用的ID(S501),从表示登记的听众、专用线程、应用ID的对应关系的表取出一组应用ID和线程以及听众(S502),比较该应用ID和取得的应用ID(S503)。
在ID一致的情况下(S503:Y),对应于该ID向表追加重新进行听众登记的听众(S504)。在ID不一致的情况下(S503:N),取出保持在表中的下一组(S505、S502),重复同样的处理。当没有ID一致的情况下,结束ID的比较时(S505:Y),生成对应于重新登记的听众的专用线程(S506),向表追加取得的应用ID和生成的专用线程以及重新登记的听众组,并保持(S507)。
由此,在保持在表中的应用进行多次听众登记的情况下,能够由表指定对应于应用的专用线程,能够对应于指定的一个专用线程来将由应用登记的多个听众集中在表中以保持。之后,因为能够从一个专用线程呼叫对应的多个听众,所以不必每次从应用中生成听众登记的专用线程,因而能够减少生成的线程的数量。
图19是分类库部保持的表的实例。图19-(1)表示应用ID“1”的应用登记听众“L1”和听众“L4”,生成对应于这些听众的专用线程“thread10”。图19-(2)表示登记图19-(1)的表中的听众“L6”,更新表。具体而言,听众登记听众“L6”时,分类库部呼叫应用管理部33b,取得已进行听众登记的应用的应用ID(这里规定取得ID“2”),判定是否与保持在图19-(1)的表的应用ID“1”一致,当判定为不一致时,重新生成专用线程,使生成的专用线程“thread20”和应用ID“2”以及听众“L6”相对应以保持在表中。图19-(3)表示结束应用ID“1”的应用,从表中消除与保持在表中的应用ID“1”对应的专用线程“thread10”、听众“L1”和听众“L4”。
下面说明从发生事件到呼叫分类库部从专用线程呼叫登记的听众所进行的处理。该处理由两个处理构成。首先进行的处理为通知事件发生的处理,该处理通过由OS部34生成的线程来执行。图20为表示通知事件发生的处理的流程图。分类库部从包含于OS部34的程序库存储部34b的程序库部来通知发生事件时,从保持应用ID和专用线程以及登记的听众的组的表中取出一组(S601),将听众呼叫所必需的信息保持在取出的组的专用线程的队列(queue)中(S602)。这里,队列进行线程间的信息传送,能够进行所谓的“保持一个信息”、“取出一个信息”的两个操作。对保持在表中的全部组进行同样的处理(S601-603)。
下面进行的处理是呼叫登记的听众的处理,该处理通过分类库部生成的专用线程来执行。图21是表示分类库部进行的听众呼叫的处理的流程图。分类库部通过执行专用线程来监视呼叫的信息是否保持在队列中(S701),呼叫的信息如果在队列中(S701:Y),则取出该信息(S702),指定对应于来自表的专用线程的听众(S703),呼叫听众(S704)。当对应于专用线程的听众为多个时,对于对应的全部听众进行该听众呼叫处理(S703、S704)(S703-S705)。
图22是将使用队列从专用线程中呼叫听众的顺序的实例模式化的图。
根据图22,411、412分别表示对于图19的专用线程“thread10”和专用线程“thread20”所准备的队列。另外,401、402分别表示专用线程“thread10”和专用线程“thread20”,403为由从存储在OS部34的程序库存储部34b中的程序库部通知事件发生的OS部34生成的线程,虚线程421、422表示保持信息,黑点431、432表示保持的信息,虚线程441、442表示取出保持的信息。
当从程序库部通过线程403来通知事件发生时,分类库部将听众呼叫所必需的信息(431、432)保持在队列411、412中(421、422)。专用线程401、402监视信息是否保持在队列411、412中,当信息被保持时,取出该信息并呼叫对应的听众。即,专用线程401呼叫听众“L1”和听众“L4”,专用线程402呼叫听众“L6”。
OS部34由核心程序34a和程序库存储部34b构成,通过使Java中间设备33动作来使应用间接地动作。
核心程序34a以对应于应用的对象单位来管理提供给应用的资源。具体而言,核心程序34a通过来自应用管理部34b的指示生成对应于应用的对象和属于对象的最初的线程,在最初的线程中确保VM部33a的动作所必需的资源。另外,生成应用请求的线程,以生成的线程来提供应用请求的资源,对应于线程所属的对象ID来保持提供的资源的资源名。从应用管理部33a接收对应于结束的应用的对象ID的通知时,对应于通知的对象ID回收全部保持的资源名的资源。
程序库存储部34b由控制作为资源的装置的多个程序库部34b1-34bn构成。各程序库部控制硬盘35的对应的装置(例如,程序库部34b1控制装置35b1,程序库部34b2控制装置35b2)。实际上,程序库存储部34b由ROM或硬盘构成,在各程序库部中,通过向分类库呼叫记录装置控制用的函数组的程序并执行来实现装置的控制。
硬件部35由使OS部34和Java中间设备部33动作的CPU35a和装置35b1-35bn构成。
CPU35a通过执核心程序34a生成的线程来执行应用的程序。装置35b1-35bn包含存储装置、显示装置、输入装置(键盘、遥控等)、文件系统、网络装置等,各装置对应于来自通过分类库和程序库所构成的应用的控制来进行动作。
指示通知部36向应用管理部33b指示应用的开始和结束。具体而言,向应用管理部33b指示应用的开始,当从外部接受应用结束的指示时,向应用管理部33b指示应用的结束。
上面虽然对本发明的实施例作了说明,但本发明不限于该实施例。
另外,在图21的流程图中,分类库执行专用线程,虽然总在监视呼叫的信息是否被保持在队列中(S701),但也可以在S701中,使专用线程处于等待状态,当在队列中保持了呼叫的信息时,解除专用线程的等待状态,执行专用线程,而进行S702-S705的处理。由此,可高效地利用资源。
另外,也可将图17的S801和S802的顺序颠倒。另外,每次应用生成的线程的数量不限于图16的实例。可比该实例多,或比该实例少。
另外,在本实施例中,虽然资源的管理是核心程序34a进行的,但也可是包含在程序库存储部34b中的各程序库部来进行。此时,对在资源供给时向核心程序34a供给资源的对象进行询问,当由核心程序34a接受该对象的ID通知时,将接受通知的对象ID和供给的资源的资源名分组后保持,当具有由核心程序34a指定的对象ID的资源回收指示时,从保持的组中指定对应于指示的对象ID的资源名并回收指定的资源名的资源。
另外,在本实施例中,VM部33a虽然由包含于执行应用的对象中的最初的线程在VM部33a中确保了必要的资源,但也可以在分类库部中从执行应用的线程中生成独立的系统专用线程,由生成的系统专用线程来确保必要的资源。用图23来说明此时的分类库部所进行的处理。图23是表示VM部33a获得系统专用线程的处理的流程图。分类库部由执行应用的线程来进行应执行的处理(例如提供应用所请求的资源)(S5401),接着生成系统专用的线程(S5402),由生成的系统专用线程来执行应执行的处理(例如向VM部33a提供必要的资源的处理)(S5403),结束处理时向应用通知处理结果(S5404)。执行应用的线程和系统专用的线程的处理可以任意次数交互重复执行,也可并列执行。另外,S5404的通知也可不要。
由此,因为VM部33a所必需的资源被确保在系统专用的线程中,所以即使应用结束,VM部33a自己也不必再取得必要的资源,就能够执行下面的应用。另外,分类库部也可由上述系统专用线程来确保自己必要的资源。例如,为了保持如图19的实例所示的表示应用ID和线程实例和听众接口的对应关系,也可用上述系统专用线程来确保必要的存储器。
另外,根据本实施例,虽然分类库部生成专用的线程,但也可在从提供应用执行中描绘画面的功能的Component类中生成Component实例时生成呼叫存储在生成的实例中的Paint方法用的呼叫用线程。之后,也可在应用启动时结束由应用听众登记用的分类库部专用线程的生成。
由此,不必要确认有无分类库部每次进行听众登记的专用线程,从而能够以短时间结束听众登记的处理。
(实施例4)
根据本实施例中的应用执行装置,各程序库部进行回收向应用提供的资源,回收每次应用结束等时应用使用的资源。
具体而言,进行以下处理。各程序库部通过各分类库部,当由应用提出请求提供资源时,便提供被请求的资源,在各分类库部中取得请求资源的应用的ID,将取得的应用ID和提供的资源的资源名分组后保持在表中。程序库部接到由核心程序44a发出的结束的应用ID的通知时,从保持的表中指定对应于通知的应用ID的资源名,并回收全部指定的资源名的资源。
下面利用附图来说明本应用执行装置的实施例。图24是表示应用执行装置40的结构的框图。应用执行装置40由应用输入部11、程序存储部12、Java中间设备部43、OS部44、硬件部45、指示通知部46构成。
应用输入部11、程序存储部12与包含于实施例1的执行装置10中的相同,故省略其说明。
Java中间设备部43由VM部43a、应用管理部43b、分类库部43c构成,执行应用存储部42存储的应用。
VM部43a从应用存储部12下载应用,依次解析应用的字节代码,执行应用。
应用管理部43b进行VM部43b执行的应用的启动处理、执行中的应用的管理、应用结束的处理。
首先说明应用启动的处理。应用管理部43b在每个应用中生成类加载器的实例,使用类加载器的实例来下载构成应用的全部类文件。这里,类加载器(class loader)是向存储器读入在Java程序中使用的类文件的级别。
下面说明执行中的应用的管理。应用管理部43b将下载构成启动应用的类文件的类加载器的实例和分配给该应用的ID保持在分成组表中。另外,对于ID而言,分别向每个由OS部44的核心程序44a启动的应用分配不同的ID。图25表示将与应用管理部43b保持的类加载器的实例对应的应用ID分成组的表的实例。
下面说明应用结束的处理。应用管理部43b从控制部46接收应用结束的指示,向核心程序44a和分类库部43c存储的分类库部通知结束的应用ID。
之后,应用管理部43b从向应用提供资源的分类库部呼叫,当有该应用的应用ID通知请求时,进行以下处理来指定该应用ID,通知给分类库。
应用管理部43b参照存储类呼叫信息的迭式存储器,取得下载应用的类加载器的实例,指定对应于从保持的表中取得的类加载器的实例的应用ID,向该分类库部通知指定的应用ID。这里,迭式存储器为作为类方法的作业区域所分配的存储区域,每当由方法呼叫来进行类的呼叫时,将呼叫的类作业区域分配给迭式存储器中,顺序存储保持在迭式存储器中的呼叫信息的类。在呼叫信息中存储指定方法的呼叫来源的信息。
下面例举具体实例来详细说明指定应用ID的处理。图26是表示应用管理部43b生成的类加载器的实例与迭式存储器的关系的模式图。这里,使用利用类加载器的实例6301呼叫构成应用的类A的方法、呼叫的类A呼叫构成应用的其它类B的方法、接着、类B呼叫构成应用的其它类C、最后、类C呼叫构成存储在分类库部中的类D的方法、等,请求资源确保时的实例进行说明。此时,在迭式存储器中,每当进行呼叫时,都分配呼叫的类的作业区域,在分配的作业区域中存储呼叫的信息。6300表示应用管理部43b管理的类加载器的存储区域,这里存储了两个类加载器6301和6302。5310表示迭式存储器,6311-5314保持在存储于迭式存储器6310中的类A-D中的呼叫信息。当具有从分类库部呼叫给类D的应用ID的指定请求时,应用管理部43b通过顺序参照存储在迭式存储器6310中的呼叫信息6314-6311来取得下载应用的类加载器的实例6310。应用管理部43b参照保持的表来指定对应于取得的类加载器的实例的应用ID。
分类库存储部43c由多个分类库部43c1-43cn构成,各分类库部通过包含于程序库存储部44b中的对应的各程序库部,控制作为包含于硬件部45中的资源的各装置。
实际上,分类库存储部43c由ROM或硬盘等构成,在各分类库部中,记录在作为各装置控制用的程序的类组中的程序通过向应用呼叫后执行来实现各装置的控制。
各分类库部从应用中呼叫、请求提供作为资源的装置时,呼叫对应于包含于程序库存储部44b中的该装置的程序库部,向该应用提供请求的资源。之后,分类库部从应用管理部43b取得该应用的应用ID,向该程序库部通知取得的应用ID。
核心程序44a从应用管理部43b接收应用结束的通知和结束的应用的应用ID的通知,向各程序库部通知接收的应用ID,指示资源的回收。
程序库存储部44b由控制装置的多个程序库部44b1-44bn构成。各程序库部控制硬件部45的对应装置(例如,程序库部44b1控制装置45b1,程序库部44b2控制装置45b2)。
实际上,程序库存储部44b由ROM或硬盘构成,在各程序库部中,通过记录装置控制用函数组的程序呼叫到各分类库部的类中后被执行来实现作为资源的装置的控制。
具体而言,各程序库部对应于从分类库部的呼叫,向应用提供资源,从分类库部接收该应用的应用ID的通知,将提供的资源的资源名和接收的应用ID分组后保持在表中。当由核心程序44a接收结束的应用的应用ID的通知时,从保持的表指定对应于接收通知的应用ID的资源名,回收指定的资源名的资源。图27为将提供的资源的资源名和应用ID分成组后的表的一个实施。这里表示程序库部向两个应用提供资源(文件)。
另外,根据本实施例,虽然保持将各程序库部提供的资源的资源名和应用ID分组的表,但核心程序44a也可保持表。
另外,根据本实施例,因为核心程序44a生成应用ID,所以即使在同时动作多个中间设备的情况下,也能防止由两个中间设备分别生成ID而产生的ID重复,从而核心程序44a能够正确管理资源。
(实施例5)
图28是表示本发明的实施例中的应用执行装置100的结构的框图。应用执行装置100具有应用/分类库存储部101、应用管理部102、VM(虚拟计算机)部103、存储器堆管理部104、存储器105。这里,存储器堆管理部104具有对象区域获得部104a、分离堆区域获得部104b、分离堆区域释放部104c、GC部104d、锁定部104e、存储器堆区域管理表104f。
存储器105具有包含多个分离堆区域105a-105n的存储器堆区域。各分离堆区域对应于一个应用来设置,是用于保持与对应的应用相关联的对象的区域。分别向应用设置分离堆区域,是为了将一次的回收的对象区域不是以存储器堆区域的整体作为单位,而是以分离堆区域作为单位。另外,在应用结束时以分离堆区域为单位来释放存储器堆区域。
应用/分类库存储部101存储多个应用和已有的分类库。
应用管理部102从外部接收应用的启动和结束的指示,向VM部103指示该应用的启动和结束。另外,应用管理部102在应用结束时,指示释放在分离堆区域释放部104c中配置与该应用相关的对象的分离堆区域。
VM部103在从应用管理部102接收应用的启动指示时,在存储器堆管理部104中进行该应用用的分离堆区域的分配,从分配的分离堆区域中的应用/分类库存储部101中下载该应用的同时执行下载的应用。
如果更详细地说明,应用的下载可分为:第一,类加载器对象的下载,第二,与应用相关的各个对象的下载。
首先说明类加载器对象的下载。VM部103接收来自应用管理部102的作为上述应用启动指示的用于该应用的类加载器对象的生成指示,向对象区域获得部104a输出该类加载器对象用的对象区域的获得指示(下面称为第一获得指示)。这里,所谓类加载器对象是指用于从应用/分类库存储部101将与对应的应用相关的对象下载到分离堆区域中的目标。
VM部103对于第一获得指示从对象区域获得部104a接收分离堆区域的分配和对象区域的分配时,从应用/分类库存储部101将类加载器对象下载到该对象区域中后执行该类加载器对象。
下面说明与应用相关的各个对象的下载。
VM部103通过执行该类加载器对象,从应用/分类库存储部101将与对应的应用相关的各个对象下载到通过对象区域获得部104a分配的对象区域中。即,VM部103根据与对应的应用相关的对象向对象区域获得部104a输出对象区域的获得指示(下面称为第二获得指示),作为对第二获得指示的响应,从对象区域获得部104a接收对象区域的分配时,从应用/分类库存储部101向该对象区域下载对象后执行该对象。上述第二获得指示为与类加载器对象以外的对象相对的对象区域的获得指示,如果有来自执行中的应用的其它对象的生成请求时从VM部103输出。
对象区域获得部104a接收来自VM部103的第一获得指示时,向分离堆区域获得部104b指示分离堆领域的获得,当接收分离堆区域的分配时,在该分离堆区域内获得类加载器对象区域,向VM部103通知该类加载器对象区域。
存储器堆管理表104f由分离堆区域获得部104b获得的分离堆区域相关的信息(下面称为分离堆区域信息)构成。如图29所示,各分离堆区域信息由分离堆区域ID、下载于分离堆区域中的类加载器对象ID、分离堆区域的首部地址、分离堆区域整体的大小、表示分离堆区域中的未使用区域的自由区域的首部地址、该分离堆区域中的自由区域的大小构成。当分离堆区域获得部104b接收来自对象区域获得部104a的分离堆区域的获得指示后获得分离堆区域时,通过分离堆区域获得部104b来进行向存储器堆管理表104f的分离堆区域信息的重新登记。与上述分离堆区域信息中的自由区域的首部地址和分离堆区域中的自由区域的大小相关的信息通过来自VM部103的第一或第二获得指示、在每次对象区域获得部104a获得对象区域时被更新。或者在应用结束后,对应于应用管理部102的指示来释放分配给分离堆区域释放部104c结束的应用的分离堆区域时,从存储器堆管理表104f中消除与该分离堆区域相关的分离堆区域信息。
另外,对象区域获得部104b接收来自VM部103的第二获得指示时,指定下载该第二获得指示请求元应用的类加载器对象,参照存储器堆区域管理表104f来指定对应于指定的类加载器对象的分离堆区域(例如指定的对象为CL2的情况下,指定分离堆区域b),在指定的分离堆区域内试验对象区域的获得。在对象区域获得部104a可从指定的分离堆区域获得对象区域的情况下,通知VM部103该对象区域,更新存储器堆管理表104f的该分离堆区域的信息(该分离堆区域中的自由区域的首部地址、该分离堆区域中的自由区域的大小)。
另一方面,对象领域获得部104a不能从该分离堆区域中获得对象区域时,对于GC部104d指示该分离堆区域的回收,回收结束后再次试验对象区域的获得。
分离堆区域获得部104b接收来自对象区域获得部104a的分离堆区域获得指示时,从存储器堆区域中获得分离堆区域。分离堆区域获得部104b将获得的分离堆区域105a的信息和类加载器对象的ID分组后登记在堆存储器区域管理表104f中。
分离堆区域释放部104c由应用管理部102指示应用的结束时,对应于来自应用管理部102的分离堆区域的释放指示,从存储器堆区域管理表104f来指定对应于下载结束应用的类加载器对象的分离堆区域,释放指定的分离堆区域,从存储器堆区域管理表104f中消除释放的分离堆区域的信息(释放的分离堆区域的ID、对应于该分离堆区域的类加载器对象的ID、分别对应于该分离堆区域的首部地址、该分离堆区域整体的大小、该分离堆区域中的自由区域的首部地址、该分离堆区域中的自由区域的大小的类加载器对象的ID)。
GC部104d对应于对象区域获得部104a的指示来进行分离堆区域的回收。
锁定部104e在GC部104d进行分离堆区域的回收期间停止使用该分离堆区域的应用的执行。
图30表示通过由VM部103接收对象区域获得指示(第一获得指示或第二获得指示)后的应用执行装置100的对象区域获得动作的流程图。对象区域获得部104a判定来自VM部的对象区域获得指示是第一(类加载器对象)获得指示还是第二(类加载器以外的对象)获得指示(S1301)。
当为第一获得指示时(S1301:Y),对象区域获得部104a向分离堆区域获得部104b请求对应于该类加载器对象的分离堆区域的获得,分离堆区域获得部104b从存储器105获得分离堆区域(S1302)。分离堆区域获得部104b,如图29的实例所示,将该类加载器对象的ID和获得的分离堆区域的信息分组后登记在存储器堆区域管理表104f中(S1303)。接着,对象区域获得部104a在获得的分离堆区域内获得该类加载器对象的对象区域(S1306、S1307),更新对应于该分离堆区域的存储器堆区域管理表104f的信息(S1309)。
当为第二获得指示的情况下(S1301:N),对象区域获得部104a从VM部103取得该对象保有的类加载器ID(S1304),从存储器堆区域管理表104来指定对应于上述类加载器ID的分离堆区域(S1305)。接着,对象区域获得部104a获得指定的分离堆区域内的对象区域(S1306)。对象区域获得部104a判定是否成功获得对象区域(S1307)。
对象区域获得部104a在成功获得对象区域的情况下(S1307:Y),更新对应于该分离堆区域的存储器堆区域管理表104f的信息(S1309)。
对象区域获得部104a在获得对象区域失败的情况下(S1307:N),指示进行GC部104d中获得失败的分离堆区域内的回收。GC部104d对应于指示进行该分离堆区域的回收处理(S1308)。在GC部104d进行回收处理期间,锁定部104e停止使用该分离堆区域的应用的执行。对象区域获得部104a在回收处理后,再次从该分离堆区域获得对象区域(S306),在成功获得对象区域的情况下(S1307:Y),更新对应于该分离堆区域的存储器堆区域管理表104f的信息(S1309)。
由此,对于应用管理装置100而言,因为将用于配置生成的对象的对象区域作为每个应用分配的存储器中规模小的分离堆区域来分配,所以能够减轻GC部104d一次回收处理的负荷。另外,当VM部103执行多个应用的情况下,因为锁定部104f在分离堆区域的回收处理的执行中,仅停止了使用该分离堆区域的应用,所以VM部103能够继续执行使用其它分离堆区域的应用。
图31是表示应用结束时的应用执行装置100的分离堆区域释放动作的流程图。当应用结束时,应用管理部102向分离堆区域释放部104c指示对应于下载结束应用的类加载器对象的分离堆区域的释放(S1401)。分离堆区域释放部104c指定对应于从存储器堆区域管理表104f下载的该应用的类加载器对象的分离堆区域(S1402),基于该信息来释放该分离堆区域(S1403)。分离堆区域释放部104c从存储器堆区域管理表104f消除与释放的分离堆区域的信息对应的类加载器对象的ID(S1404)。
由此,对于应用执行装置100而言,每次应用结束时,能够将对应的分离堆区域一起在短时间内释放。
另外,根据本实施例,分离堆区域获得部104b没有意识到系统类加载器对象,将分离堆区域作为系统类加载器对象用的分离堆区域来分配,如图32所示,当将存储器105整体作为系统类加载器用存储器区域(系统堆区域105-1)来分配,在该区域内分离堆区域获得部104b也可获得对应于其它类加载器对象的分离堆区域(图32)。此时,对象区域获得部104a在系统启动时在系统堆区域105-1中获得系统类加载器对象的对象区域,将系统类加载器对象的ID和获得的区域(为了方便说明而称为分离堆区域105a0)的信息(分离堆区域ID(a0)、类装入ID(SCL)、区域首部地址(MA-O)、全部区域大小(MS-O)、自由区域首部地址(FA-O)、自由区域大小(FS-O))分组后登记在存储器堆区域管理表105f中。下面与本实施例的情况一样,分离堆区域获得部104b每次从系统堆区域105-1获得类加载器对象区域用的分离堆区域时,分离堆区域获得部104b如图32所示当该类加载器对象的ID和获得的分离堆区域的信息分组后追加到存储器堆区域管理表104f中,对象区域获得部根据图30的流程图在由分离堆区域获得部104b获得的分离堆区域内获得对象区域(S1306),在获得对象区域失败的情况下(S1307),对象区域获得部104b指示进行GC部104d中获得失败的分离堆区域内的回收,GC部104d对应于指示进行该分离堆区域内的回收(S1308)。另外,当应用结束时,应用管理部102指示对就于下载于分离堆区域释放部104c中的结束应用的类加载器对象的分离堆区域,分离堆区域释放部104c对应于指示,根据图31的流程图来进行该分离堆区域的释放。另外,GC部104d以系统堆区域105-1的全部作为回收对象,将单位释放分离堆区域的分离堆总括在一起,所以可高效地使用系统堆区域105-1。
另外,本实施例中的图28的应用执行装置100的结构以功能框图表示,但实际上可通过执行包含CPU、存储器、与外部进行输入输出的输入输出装置的硬件和软件来实现。设计该软件以管理图28所示的各块的功能。另外,上述软件在从CD-ROM下载的情况下也可使用CD-ROM读出接口。存储器由RAM、ROM、硬盘和CD驱动器、软盘、存储卡等可拆卸媒体构成。
根据本实施例,在应用中,分配的分离堆区域的数量不限于一个,也可是多个。例如,在应用自己保有类加载器的情况下,即使对于该类加载器也可分配分离堆区域。
另外,根据本实施例,由分离堆区域获得部104b获得的分离堆区域的大小可由向分离堆区域获得部104b的程序指示变化。

Claims (57)

1.一种应用执行装置,具有向应用提供资源的至少一个以上的程序库部和核心程序部,其特征在于,
所述核心程序部包括:
通知装置,当应用结束时,向提供资源的各程序库部通知结束的应用为哪个;
各程序库部包括:
回收装置,当由通知装置通知时,回收提供给结束应用的资源。
2.如权利要求1的应用执行装置,其特征在于:所述回收装置包括:
表保持装置,保持应用和向应用提供的资源的对应关系的表;
资源指定装置,由所述表保持装置来指定提供给由所述通知装置通知的应用的资源。
3.如权利要求2的应用执行装置,其特征在于:各程序库部包括:
提供装置,对应于来自应用的请求提供资源;
登记装置,从所述核心程序部接收提供资源的应用为哪个的通知,将提供资源的应用和提供的资源对应地分组后登记在所述表中;
消除装置,当由所述回收装置回收登记的资源时,从所述表中消除表示回收的资源和对应的应用的对应关系的组。
4.如权利要求1的应用执行装置,其特征在于:各程序库部包括:
提供装置,对应于来自应用的请求提供资源;
委托装置,当所述提供装置向应用开始提供新的资源时,委托其以在应用结束时向该程序库部发出前述通知。
5.如权利要求4的应用执行装置,其特征在于:
所述委托装置,将回收函数的呼叫委托于所述核心程序部;
所述核心程序部,通过在应用结束时执行被委托的回收函数的呼叫,作为所述通知装置进行的所述通知。
6.如权利要求1的应用执行装置,其特征在于:所述通知装置具有对每个应用进行所述通知的多个通知部,各程序库部包括:
提供装置,对应于来自应用的请求提供资源;
委托装置,当所述提供装置向应用开始提供新的资源时,委托对应于该应用的通知部在该应用结束时向该程序库部进行所述通知。
7.如权利要求6的应用执行装置,其特征在于:所述委托装置委托所述通知部通过资源回收实例的方法的呼叫来进行所述通知,所述资源回收实例的方法是由所述程序库部为了接受所述通知而生成的被委托的所述通知部在所述该应用结束时,通过呼叫资源回收实例的方法来进行所述通知。
8.如权利要求1的应用执行装置,其特征在于:所述回收装置包括:
表保持装置,保持应用和向应用提供的资源的对应关系的表;
资源指定装置,由所述表保持装置来指定提供给由所述通知装置通知的应用的资源;
所述通知装置在多个应用同时结束的情况下,向提供资源的程序库部通知结束的多个应用为哪些;
所述资源指定装置通过所述表保持装置来指定对应于被通知的多个应用的多个资源;
所述回收装置回收指定的多个资源。
9.如权利要求1的应用执行装置,其特征在于:所述各程序库部向应用提供作为所述资源的调谐器、MPEG解码器、遥控、文件系统、存储器、调制解调器的任一个。
10.如权利要求9的应用执行装置,其特征在于:所述回收装置包括:
表保持装置,保持应用和向应用提供的资源的对应关系的表;
资源指定装置,由所述表保持装置来指定提供给由所述通知装置通知的应用的资源。
11.如权利要求10的应用执行装置,其特征在于:各程序库部进一步包括:
提供装置,对应于来自应用的请求提供资源;
登记装置,从所述核心程序部接收提供资源的应用为哪个的通知,将提供资源的应用和提供的资源对应地分组后登记在所述表中;
消除装置,当由所述回收装置回收登记的资源时,从所述表中消除与回收的资源相对应的应用。
12.如权利要求9的应用执行装置,其特征在于:各程序库部进一步包括:
提供装置,对应于来自应用的请求提供资源;
委托装置,当所述提供装置向应用开始提供新的资源时,委托该程序库部在应用结束时发出所述通知。
13.如权利要求12的应用执行装置,其特征在于:
所述依赖装置将回收函数的呼叫委托于所述核心程序部;
所述核心程序部通过在应用结束时执行被委托的回收函数的呼叫,作为所述通知装置进行的所述通知。
14.如权利要求9的应用执行装置,其特征在于:所述通知装置具有每个应用进行所述通知的多个通知部,各程序库部包括:
提供装置,对应于来自应用的请求提供资源;
委托装置,当所述提供装置向应用开始提供新的资源时,委托对应于该应用的通知部在该应用结束时向该程序库部进行所述通知。
15.如权利要求14的应用执行装置,其特征在于:所述委托装置委托所述通知部通过资源回收实例的方法的呼叫来进行所述通知,所述资源回收实例的方法是由所述程序库部为了接受所述通知而生成的,被委托的所述通知部在所述该应用结束时,通过呼叫资源回收实例的方法来进行所述通知。
16.如权利要求9的应用执行装置,其特征在于:所述回收装置包括:
表保持装置,保持表示应用和向应用提供的资源的对应关系的表;
资源指定装置,由所述表保持装置来指定提供给由所述通知装置通知的应用的资源;
所述通知装置在多个应用同时结束的情况下,向提供资源的程序库部通知结束的多个应用为哪些;
所述资源指定装置通过所述表保持装置来指定对应于被通知的多个应用的多个资源;
所述回收装置回收指定的多个资源。
17.如权利要求1的应用执行装置,其特征在于:
所述通知装置在应用结束时和中断时的任一时刻向各程序库部进行通知;
各程序库部进一步包括:
判定装置,对应于通知的应用是结束还是中断来判定是否回收提供给该应用的资源;
所述回收装置在判定为回收资源的情况下回收提供给被通知的应用的资源。
18.如权利要求17的应用执行装置,其特征在于:所述通知装置具有对每个应用进行所述通知的多个通知部,
各程序库部包括:
提供装置,对应于来自应用的请求来提供资源;
委托装置,当所述提供装置开始向应用提供新的资源时,委托对应于该应用的通知部在该程序库部中该应用结束或中断时的任一时刻进行所述通知。
19.如权利要求18的应用执行装置,其特征在于:所述委托装置委托所述通知部通过资源回收实例的方法的呼叫来进行所述通知,所述资源回收实例的方法是由所述程序库部为了接受所述通知而生成的;被委托的所述通知部在所述该应用结束或中断的任一时刻,通过呼叫所述资源回收实例的方法来进行所述通知;所述判定装置在接收所述通知时,取得应用结束或中断的信息,对应于所述信息来判定是否回收提供给该应用的资源。
20.一种应用执行装置,具有向应用提供资源的OS部和Java中间设备部,所述Java中间设备部包括:
第一表保持装置,保持表示应用和对应于应用的任务以及构成任务的线程的对应关系的表;
通知装置,当接收应用结束的指示时,参照所述第一表保持装置来通知对应于结束的应用的任务为哪个;
所述OS部包括:
任务生成装置,对每个应用生成执行应用的任务;
线程生成装置,生成多个构成所述任务的应用用线程;
管理装置,通过执行所述应用用线程来执行应用的程序代码,提供应用请求的资源,保持表示提供的资源和所述线程所属的任务的对应关系的表;
回收装置,由管理装置来指定对应于由所述通知装置通知的任务的资源,回收提供给应用的资源。
21.如权利要求20的应用执行装置,其特征在于:
所述Java中间设备部进一步包括:
委托装置,委托其向执行中的应用通知装置的状态变化;
状态变化通知装置,对应于所述委托,当检查到所述变化时,向所述应用通知发生所述变化。
22.如权利要求21的应用执行装置,其特征在于:
所述委托装置委托所述状态变化通知装置来呼叫等待关于发生所述变化的连络的听众;
所述状态变化通知装置当检查到发生所述变化时,通过进行委托的所述听众的呼叫来进行所述通知。
23.如权利要求22的应用执行装置,其特征在于:
所述状态变化通知装置造成执行所述听众呼叫的专用线程,通过执行该专用线程来进行所述听众的呼叫,所述Java中间设备部包括:
第二表保持装置,保持表示所述听众和所述专用线程以及所述应用的对应关系的表;
表更新装置,所述委托装置在每次委托所述状态变化通知装置呼叫听众时,参照所述表来判定与所述听众有对应关系的应用是否保持在所述表中,在被保持的情况下,对应于该应用来向所述表追加该听众;
所述状态变化通知装置,通过所述表更新装置来判定该应用是否被保持的情况下,不重新生成所述专用线程,在判定未被保持的情况下,重新生成专用线程。
24.如权利要求23的应用执行装置,其特征在于:
所述专用线程监视进行线程间信息传送的队列中表示发生所述变化的信息是否被保持,在信息被保持的情况下进行对应的所述听众的呼叫。
25.如权利要求23的应用执行装置,其特征在于:
所述专用线程在进行线程间信息传送的队列中表示发生所述变化的信息被保持前的等待状态时,向队列中保持信息的执行状态移动,进行对应的所述听众的呼叫。
26.如权利要求20的应用执行装置,其特征在于:
所述Java中间设备部包括:
资源确保用线程生成装置,生成与构成所述任务的所述应用用线程不同的、确保所述Java中间设备部所必需的资源的资源确保用线程;
资源确保装置,通过执行生成的资源确保用线程来确保Java中间设备部所必需的资源;
所述回收装置通过所述资源确保装置不回收确保的所述Java中间设备部所必需的资源,由所述管理装置指定对应于所述通知装置通知的任务,回收提供给应用的资源。
27.一种应用执行装置,具有向应用提供资源的OS部和中间设备部,
所述中间设备部包括:
通知装置,对应于所述OS部的请求来通知请求资源提供的应用为哪个,当应用结束时,通知结束的应用为哪个;
所述OS部包括:
请求装置,请求请求提供资源的应用为哪个的通知;
资源管理表装置,保持表示通知的应用和资源的对应关系的表;
资源回收装置,当从通知装置通知结束的应用为哪个时,由所述资源管理表来指定对应于结束应用的资源,回收指定的资源。
28.如权利要求27的应用执行装置,其特征在于:
所述通知装置包括:
下载指定装置,指定下载请求提供资源的应用的类加载器;
表装置,保持表示下载应用的类加载器和应用的对应关系的表;
应用指定装置,从所述表来指定对应于由所述下载指定装置指定的类加载器的应用。
29.如权利要求28的应用执行装置,其特征在于:
所述下载指定装置通过参照存储构成应用的类呼叫源的信息来指定下载请求提供资源的应用的类加载器。
30.如权利要求29的应用执行装置,其特征在于:
所述OS部包括:
分配装置,向每个应用分配指定应用的ID;
所述通知装置,通过通知由所述分配装置分配的ID来通知提供资源的应用为哪个,通知结束的应用为哪个。
31.如权利要求28的应用执行装置,其特征在于:
所述OS部包括:
分配装置,向每个应用分配指定应用的ID;
所述通知装置,通过通知由所述分配装置分配的ID来通知提供资源的应用为哪个,通知结束的应用为哪个。
32.如权利要求27的应用执行装置,其特征在于:
所述OS部包括:
分配装置,向每个应用分配指定应用的ID;
所述通知装置,通过通知由所述分配装置分配的ID来通知提供资源的应用为哪个,通知结束的应用为哪个。
33.一种记录媒体,记录了计算机可读取的、用于具有向应用提供资源的多个程序库部和核心程序部的应用执行装置的程序,其特征在于,所述程序在计算机中实施权利要求1记载的装置。
34.一种记录媒体,记录了计算机可读取的、用于具有向应用提供资源的多个程序库部和核心程序部的应用执行装置的程序,其特征在于,所述程序在计算机中实施权利要求17记载的装置。
35.一种记录媒体,记录了计算机可读取的、用于具有向应用提供资源的OS部和Java中间设备部的应用执行装置的程序,其特征在于,所述程序在计算机中实施权利要求20记载的装置。
36.一种记录媒体,记录了计算机可读取的、用于具有向应用提供资源的OS部和中间设备部的应用执行装置的程序,其特征在于,所述程序在计算机中实施权利要求27记载的装置。
37.一种应用执行装置,管理回收所必需的应用用存储堆区域,其特征在于,包括:
分离堆区域获得装置,每次启动应用时从破例堆中获得分离堆区域;
分配装置,在启动的应用中通过所述分离堆区域获得装置分配获得的分离堆区域;
存储器释放装置,每次应用结束时释放分配给该应用的分离堆区域。
38.如权利要求37的应用执行装置,其特征在于:还包括:
对象区域获得装置,对于与应用相关的对象,在分配给该应用的分离堆区域内获得对象区域;
回收装置,进行以所述分离堆区域为对象的回收。
39.如权利要求38的应用执行装置,其特征在于:还包括:
锁定装置,在通过所述回收装置进行对象为分离堆区域的回收期间,停止使用该分离堆区域的应用的执行,继续执行使用其它分离堆区域的应用。
40.如权利要求37的应用执行装置,其特征在于:还包括:
表装置,保持表示启动中的应用和分离堆区域的对应关系的表;
所述存储器释放装置由所述表装置指定对应于结束的应用的分离堆区域后释放。
41.如权利要求37的应用执行装置,其特征在于:还包括:
表装置,保持表示启动中的应用和分离堆区域的对应关系的表;
所述分配装置在每次应用启动时向表追加该应用和分配区域的新的对应关系。
42.一种应用执行装置,管理回收所必需的应用用存储堆区域,其特征在于,包括:
系统堆区域分配装置,将存储器堆全部作为系统堆区域来分配;
对象区域获得装置,在系统堆区域内获得系统相关的对象区域;
分离堆区域获得装置,每次应用启动时,从系统堆区域中获得分离堆区域;
分配装置,向启动的应用分配获得的分离堆区域;
存储器释放装置,当应用结束时,释放分配给该应用的分离堆区域。
43.如权利要求42的应用执行装置,其特征在于:还包括:
回收装置,以系统堆区域内部为对象,以分离堆区域为单位进行回收。
44.一种存储器堆管理方法,管理回收所必需的应用用存储器堆区域,其特征在于,包括以下步骤:
分离堆区域获得步骤,每次应用启动时,从系统堆区域中获得分离堆区域;
分配步骤,通过所述分离堆区域获得步骤来向启动的应用分配获得的分离堆区域;
存储器释放步骤,当应用结束时,释放分配给该应用的分离堆区域。
45.如权利要求44的存储器堆管理方法,还包括:
对象区域获得步骤,对于与应用相关的对象,在分配给该应用的分离堆区域内获得对象区域;
回收步骤,当由对象区域获得步骤获得对象区域失败时,以各个分离堆区域为对象进行回收。
46.如权利要求45的存储器堆管理方法,还包括:
锁定步骤,在通过所述回收步骤进行对象为分离堆区域的回收期间,停止使用该分离堆区域的应用的执行,继续执行使用其它分离堆区域的应用。
47.如权利要求44的存储器堆管理方法,还包括:
表保持步骤,保持表示启动中的应用和分离堆区域的对应关系的表;
所述存储器释放步骤,由所述表装置指定对应于结束的应用的分离堆区域后释放。
48.如权利要求44的存储器堆管理方法,还包括:
表保持步骤,保持表示启动中的应用和分离堆区域的对应关系的表;
所述分配步骤,在每次应用启动时向表追加该应用和分配区域的新的对应关系。
49.一种存储器堆管理方法,管理回收所必需的应用用存储堆区域,其特征在于,包括以下步骤:
系统堆区域分配步骤,将存储器堆全部作为系统堆区域来分配;
对象区域获得步骤,在系统堆区域内获得系统相关的对象区域;
分离堆区域获得步骤,每次应用启动时,从系统堆区域中获得分离堆区域;
分配步骤,向启动的应用分配获得的分离堆区域;
存储器释放步骤,当应用结束时,释放分配给该应用的分离堆区域。
50.如权利要求49的存储器堆管理方法,还包括:
回收步骤,当分离堆区域获得步骤获得分离堆区域失败时,以系统堆区域内部为对象,以分离堆区域为单位进行回收。
51.一种记录媒体,记录了计算机可读取的、用于执行回收所必需的应用的装置的程序,其特征在于,所述程序在计算机中执行权利要求44记载的步骤。
52.如权利要求51的记录媒体,其特征在于:所述程序在计算机中执行权利要求45记载的步骤。
53.如权利要求52的记录媒体,其特征在于:所述程序在计算机中执行权利要求46记载的步骤。
54.如权利要求51的记录媒体,其特征在于:所述程序在计算机中执行权利要求47记载的步骤。
55.如权利要求51的记录媒体,其特征在于:所述程序在计算机中执行权利要求48记载的步骤。
56.一种记录媒体,记录了计算机可读取的、用于执行回收所必需的应用的装置的程序,其特征在于所述程序在计算机中执行权利要求49记载的步骤。
57.如权利要求56的记录媒体,其特征在于:所述程序在计算机中执行权利要求50记载的步骤。
CN01121695.6A 2000-05-15 2001-05-14 应用执行装置及方法 Expired - Fee Related CN1254746C (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP141493/00 2000-05-15
JP141492/2000 2000-05-15
JP2000141492 2000-05-15
JP2000141493 2000-05-15
JP141492/00 2000-05-15
JP141493/2000 2000-05-15
JP2000398746 2000-12-27
JP398746/00 2000-12-27
JP398746/2000 2000-12-27

Publications (2)

Publication Number Publication Date
CN1325069A true CN1325069A (zh) 2001-12-05
CN1254746C CN1254746C (zh) 2006-05-03

Family

ID=27343375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN01121695.6A Expired - Fee Related CN1254746C (zh) 2000-05-15 2001-05-14 应用执行装置及方法

Country Status (3)

Country Link
US (2) US7024668B2 (zh)
EP (2) EP1978444A1 (zh)
CN (1) CN1254746C (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1332343C (zh) * 2004-10-09 2007-08-15 武汉大学 数据库中对象标识符回收再利用的方法
CN101866298A (zh) * 2009-04-14 2010-10-20 上海科泰世纪科技有限公司 线程托管对象的方法
CN101232689B (zh) * 2007-01-22 2011-11-30 中兴通讯股份有限公司 资源的帐单的管理方法和装置
CN101882068B (zh) * 2009-05-08 2013-04-03 上海科泰世纪科技有限公司 实现构件对象托管的方法和数据处理设备
US8615760B2 (en) 2009-09-29 2013-12-24 International Business Machines Corporation Facilitating memory analysis
CN105263053A (zh) * 2015-10-15 2016-01-20 深圳创维数字技术有限公司 多业务的硬件资源调度方法、系统及数字电视
CN105373434A (zh) * 2015-12-16 2016-03-02 上海携程商务有限公司 资源管理系统及方法
CN110688217A (zh) * 2019-09-04 2020-01-14 广东浪潮大数据研究有限公司 资源释放方法及装置
US11720383B2 (en) 2017-09-07 2023-08-08 Sony Corporation Information processing apparatus and information processing method

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0107921D0 (en) * 2001-03-30 2001-05-23 Ibm Computer system with multiple heaps and heap reset facility
NL1021289C2 (nl) * 2002-08-16 2004-02-17 Tryllian Holding N V Werkwijze voor het instantieren van verschillende types van programmatuurmodules en werkwijze voor het overdragen van een mobiele programmatuuragent.
US7082509B2 (en) * 2003-02-06 2006-07-25 Intel Corporation Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
US20040172385A1 (en) * 2003-02-27 2004-09-02 Vikram Dayal Database query and content transmission governor
US7406694B2 (en) * 2003-06-20 2008-07-29 Microsoft Corporation Method and system for tracking kernel resource usage
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7458078B2 (en) * 2003-11-06 2008-11-25 International Business Machines Corporation Apparatus and method for autonomic hardware assisted thread stack tracking
JP4459598B2 (ja) * 2003-11-20 2010-04-28 富士通株式会社 自動取引装置、自動取引制御方法及びその制御プログラム
US8332483B2 (en) * 2003-12-15 2012-12-11 International Business Machines Corporation Apparatus, system, and method for autonomic control of grid system resources
JP4303101B2 (ja) * 2003-12-26 2009-07-29 株式会社エヌ・ティ・ティ・ドコモ 通信端末およびプログラム
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7987453B2 (en) * 2004-03-18 2011-07-26 International Business Machines Corporation Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data
US7707586B2 (en) * 2004-09-08 2010-04-27 Intel Corporation Operating system independent agent
US7937717B2 (en) * 2004-09-13 2011-05-03 Tvworks, Llc Method and apparatus enabling multiple application sharing of classes
US7681196B2 (en) * 2004-11-18 2010-03-16 Oracle International Corporation Providing optimal number of threads to applications performing multi-tasking using threads
JP2006163482A (ja) * 2004-12-02 2006-06-22 Hitachi Ltd 情報処理装置の制御方法、情報処理装置、及びプログラム
US20070169045A1 (en) * 2005-12-01 2007-07-19 Microsoft Corporation Component tagging
KR100772867B1 (ko) * 2006-02-23 2007-11-02 삼성전자주식회사 복수의 애플리케이션에 대해 부분적으로 분리된 수행환경을 제공하는 방법 및 이를 이용한 디지털 정보 기기
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US7814486B2 (en) 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8136104B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8108844B2 (en) 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US8443348B2 (en) 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8146066B2 (en) 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US8261270B2 (en) 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US20100031270A1 (en) * 2006-08-01 2010-02-04 Gansha Wu Heap manager for a multitasking virtual machine
KR101116615B1 (ko) * 2007-03-28 2012-03-07 삼성전자주식회사 자바 가상 머신 상에서 이뤄지는 애플리케이션 및 스레드의자원 관리 시스템 및 방법
KR101456489B1 (ko) * 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
US20090031396A1 (en) * 2007-07-24 2009-01-29 Samsung Electronics Co., Ltd. METHOD OF AND APPARATUS FOR MANAGING ACCESS PRIVILEGES IN CLDC OSGi ENVIRONMENT
US8291435B2 (en) * 2007-09-28 2012-10-16 Texas Instruments Incorporated JEK class loader notification
US8543994B2 (en) * 2007-12-07 2013-09-24 Sap Ag Developing java server components without restarting the application server
US20090328028A1 (en) * 2008-06-25 2009-12-31 O'rourke Connor Electronic documents and methods for updating resource files for an application
JP5215779B2 (ja) * 2008-09-01 2013-06-19 キヤノン株式会社 情報処理装置及び情報処理方法
US8246527B2 (en) * 2009-10-21 2012-08-21 J&L Group International, Llc Systems and methods for folding
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US9772831B2 (en) 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
JP2012048674A (ja) * 2010-08-30 2012-03-08 Fujitsu Ltd 資源管理プログラム、資源管理装置及び資源管理方法
DE102010053053A1 (de) * 2010-12-01 2012-06-06 Giesecke & Devrient Gmbh Mikroprozessormodul, insbesondere Chipkarten-Mikroprozessormodul
US9015710B2 (en) 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US8910138B2 (en) 2012-05-23 2014-12-09 Oracle International Corporation Hot pluggable extensions for access management system
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9317323B2 (en) * 2012-12-26 2016-04-19 Microsoft Technology Licensing, Llc Dynamic execution log in a distributed system
CN110083444A (zh) * 2013-12-10 2019-08-02 华为终端有限公司 一种任务管理方法及设备
US10630642B2 (en) 2017-10-06 2020-04-21 Stealthpath, Inc. Methods for internet communication security
US10361859B2 (en) 2017-10-06 2019-07-23 Stealthpath, Inc. Methods for internet communication security
US10375019B2 (en) * 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security
US10397186B2 (en) 2017-10-06 2019-08-27 Stealthpath, Inc. Methods for internet communication security
US10367811B2 (en) * 2017-10-06 2019-07-30 Stealthpath, Inc. Methods for internet communication security
US10374803B2 (en) 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security
US11334329B2 (en) 2018-06-08 2022-05-17 Shanghai Cambricon Information Technology Co., Ltd. General machine learning model, and model file generation and parsing method
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
US11558423B2 (en) * 2019-09-27 2023-01-17 Stealthpath, Inc. Methods for zero trust security with high quality of service

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173989A (ja) * 1991-12-24 1993-07-13 Kawasaki Steel Corp 計算機及びマルチプロセッサ計算装置
JPH08123700A (ja) 1994-10-20 1996-05-17 Fujitsu Ltd 資源管理方法
US6286025B1 (en) * 1994-12-09 2001-09-04 International Business Machines Corporation Method and system of process identification by user defined process variables
JPH0991232A (ja) 1995-09-27 1997-04-04 Nippon Telegr & Teleph Corp <Ntt> リソース変更通知方法
JPH09244940A (ja) * 1996-03-12 1997-09-19 Hitachi Ltd 分散計算機資源の管理方法
US5706515A (en) * 1996-03-25 1998-01-06 Sun Microsystems, Inc. System and method for implementing an atomic wait for notification operation
US5956507A (en) * 1996-05-14 1999-09-21 Shearer, Jr.; Bennie L. Dynamic alteration of operating system kernel resource tables
US5826082A (en) * 1996-07-01 1998-10-20 Sun Microsystems, Inc. Method for reserving resources
US6385639B1 (en) * 1996-07-01 2002-05-07 Fujitsu Limited Device and method of controlling intergroup resource utilization
US6112243A (en) * 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US6125382A (en) * 1997-07-25 2000-09-26 International Business Machines Corporation Distributed thread mechanism and method
JPH1165863A (ja) * 1997-08-26 1999-03-09 Hitachi Ltd 共有資源管理方法
US6560773B1 (en) * 1997-12-12 2003-05-06 International Business Machines Corporation Method and system for memory leak detection in an object-oriented environment during real-time trace processing
US6381321B1 (en) 1998-05-04 2002-04-30 T-Netix, Inc. Telecommunication resource allocation system and method
EP0964333A1 (en) 1998-06-10 1999-12-15 Sun Microsystems, Inc. Resource management
US6446109B2 (en) * 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
US6173294B1 (en) * 1998-08-25 2001-01-09 International Business Machines Corporation Method for combining card marking with remembered set for generational garbage collection with more than two generations
US6970925B1 (en) * 1999-02-03 2005-11-29 William H. Gates, III Method and system for property notification
US6629113B1 (en) * 1999-06-30 2003-09-30 International Business Machines Corporation Method and system for dynamically adjustable and configurable garbage collector
US6654948B1 (en) * 1999-10-12 2003-11-25 International Business Machines Corporation Methods and apparatus for partial and consistent monitoring of object-oriented programs and systems
US20030115575A1 (en) * 2001-12-19 2003-06-19 David Reyna Method and system for sharing resources in hierarchical backplanes

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1332343C (zh) * 2004-10-09 2007-08-15 武汉大学 数据库中对象标识符回收再利用的方法
CN101232689B (zh) * 2007-01-22 2011-11-30 中兴通讯股份有限公司 资源的帐单的管理方法和装置
CN101866298A (zh) * 2009-04-14 2010-10-20 上海科泰世纪科技有限公司 线程托管对象的方法
CN101866298B (zh) * 2009-04-14 2013-08-07 上海科泰世纪科技有限公司 线程托管对象的方法
CN101882068B (zh) * 2009-05-08 2013-04-03 上海科泰世纪科技有限公司 实现构件对象托管的方法和数据处理设备
US8615760B2 (en) 2009-09-29 2013-12-24 International Business Machines Corporation Facilitating memory analysis
CN105263053A (zh) * 2015-10-15 2016-01-20 深圳创维数字技术有限公司 多业务的硬件资源调度方法、系统及数字电视
CN105373434A (zh) * 2015-12-16 2016-03-02 上海携程商务有限公司 资源管理系统及方法
CN105373434B (zh) * 2015-12-16 2018-11-13 上海携程商务有限公司 资源管理系统及方法
US11720383B2 (en) 2017-09-07 2023-08-08 Sony Corporation Information processing apparatus and information processing method
CN110688217A (zh) * 2019-09-04 2020-01-14 广东浪潮大数据研究有限公司 资源释放方法及装置

Also Published As

Publication number Publication date
EP1164485A2 (en) 2001-12-19
CN1254746C (zh) 2006-05-03
US8028289B2 (en) 2011-09-27
US7024668B2 (en) 2006-04-04
EP1978444A1 (en) 2008-10-08
EP1164485A3 (en) 2006-10-18
US20060095919A1 (en) 2006-05-04
US20020049719A1 (en) 2002-04-25

Similar Documents

Publication Publication Date Title
CN1254746C (zh) 应用执行装置及方法
CN1791862A (zh) 操作系统
CN1906583A (zh) 信息处理设备、中断处理控制方法、以及计算机程序
CN1130656C (zh) 对一个存储文件的若干文件拷贝进行协调的方法
CN1908903A (zh) 执行作业步的系统和方法以及计算机产品
CN1266627C (zh) 数据处理装置、数据处理方法
CN1310148C (zh) 程序执行处理终端装置和程序执行处理方法
CN86108127A (zh) 在多任务虚拟存储器虚拟计算机型数据处理系统中控制输入输出存取的方法
CN1795434A (zh) 程序执行控制设备,程序执行控制方法,控制程序和记录介质
CN1658184A (zh) 网络系统、分布式处理方法和信息处理装置
CN1645342A (zh) San环境中基于网络的海量存储资源管理方法
CN1298503A (zh) 分布式系统中的动态查找服务
CN101069161A (zh) 调度方法、调度装置和多处理器系统
CN1610881A (zh) Gui应用开发支持设备、gui显示设备和方法及计算机程序
CN1698051A (zh) 程序、数据处理方法和数据处理装置
CN1761949A (zh) 垃圾收集系统
CN1251064C (zh) 信息处理系统、信息处理终端和存储装置的处理方法
CN1910558A (zh) 半导体存储器装置及其控制方法
CN1842124A (zh) 图像处理装置和图像处理装置的控制方法
CN101030156A (zh) 用于数据备份的装置和方法
CN1731402A (zh) 用协处理器加速文件系统操作的方法及装置
CN1755661A (zh) 信息处理装置以及方法和程序
JP2002259146A (ja) アプリケーション実行装置及び方法
CN1770108A (zh) 软件在线升级的方法
CN1896966A (zh) 计算机测试方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20060503

Termination date: 20180514