CN1156753C - 实现单独的类装载器的方法和设备 - Google Patents

实现单独的类装载器的方法和设备 Download PDF

Info

Publication number
CN1156753C
CN1156753C CNB008102597A CN00810259A CN1156753C CN 1156753 C CN1156753 C CN 1156753C CN B008102597 A CNB008102597 A CN B008102597A CN 00810259 A CN00810259 A CN 00810259A CN 1156753 C CN1156753 C CN 1156753C
Authority
CN
China
Prior art keywords
application program
class
class loaders
relevant
loaders
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.)
Expired - Lifetime
Application number
CNB008102597A
Other languages
English (en)
Other versions
CN1360694A (zh
Inventor
��T���Ҷ�
T·叶
B·H·卡尔德
J·D·里瓦斯
J·D·库尔特尼
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1360694A publication Critical patent/CN1360694A/zh
Application granted granted Critical
Publication of CN1156753C publication Critical patent/CN1156753C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4858End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Abstract

公开了用于装载并卸载与一个应用程序相关类的方法和设备。构造一个用于装载与应用程序相关类的类装载器。使用该类装载器装载与应用程序相关的一个或多个类,这样类装载器就保持了对这一个或多个类的引用。随后用于应用程序的类装载器被解除引用,这样它就成为无法获得。

Description

实现单独的类装载器的方法和设备
技术领域
本发明通常涉及计算机软件。尤其涉及实现适合于装载与应用程序相关的类的类装载器。
背景技术
数字电视革命是广播电视历史上最为重大的事件之一。随着数字电视的出现,通过人造卫星、电缆和陆地电视频道的高速数据传输也成为了可能。数字电视将给用户提供更多的频道以及有很大提高的视频和音频质量。更为重要地是,数字电视用户处于真正的交互电视时代。例如,数字接收器将能够给我们带来很多加强的服务,从简单的交互测试表演到空中的因特网,以及电视和web类型的内容的混合体。随着数字电视市场的成长,节目开发者正在寻找更富有特色、效益更高的可靠的软件平台,以便能在其上构造出下一代交互式电视服务,像电子编程指南、视频点播和增强广播。
Java是最主要的商业化面向对象语言,它被设计为可移植语言。一个Java程序写好以后只需编译一次就可运行在所有支持JAVATM平台的兼容设备上。例如,Java可以被插入到所有主要的Web浏览器中。同样地,它作为软件平台也给下一代置顶盒和数字电视带来了很大的希望。
在面向对象编程中,运行时数据由对象表示。每个对象通过它的类被定义,类代表对象的属性。也就是说,对象是类的一个个体实例。为了运行一个Java应用程序,需要把相关的类装入到存储器中。随后按照程序的流程构造这些类的实例。大部分面向对象语言要求在不再需要创建出来的对象时由程序员主动销毁它们。然而,Java虚拟机的实现使这个过程实现了自动化并完成了垃圾回收以增加可用存储器的数量。因此,当对象或存储器空间不再被引用时就由Java运行时环境自动删除这些对象或进行“垃圾回收”。
即使不再被引用的类实例通过垃圾回收被从存储器中移走,相关的类并未从存储器中移走。此外,既然Java是动态语言,通常也完成了类的装载。然而目前还没有一种机制用于卸载类,即使已经不再需要它们。随之的结果是JAVA平台最后将存储大量的类。
在桌面环境中,存储器是相对无限的,因而也就不需要卸载类。另外,一旦关闭浏览器,类就被从存储器中清除出去。然而在嵌入式系统环境中存储器是非常宝贵的资源,在数字电视领域尤其如此。而且,在数字电视环境中运行多个应用程序的情况将更为普通。例如,当电视观看者转换频道时,每个相关服务将很可能要求一个新的应用程序并装载几个类。结果是存储器被连续分配给装入的类直到有限的存储器数量被消耗怠尽。一旦存储器耗尽,将不可能再运行其它任何程序。因此人们非常希望能够监控存储器的使用并移走应用程序不再需要的类。因为不希望在出现错误时重新开启电视机,这一点就显得尤其重要。
由于上述原因,需要有更好的方法来管理存储器中的类存储。
发明内容
本发明使类能够在它们不再被需要时从存储器中动态卸载。这部分是通过与每个应用程序相关的单独的类装载器来实现的。这样一来,就可以管理数字电视中的存储器消耗以便更有效地利用有限的存储器资源。
根据本发明的一个方面,提供一种装载并卸载与一个应用程序相关的类的方法,该方法包括:
为该应用程序构造一类装载器,该类装载器适用于装载与该应用程序相关的类;
使用该类装载器来装载与该应用程序相关的一个或多个类,这样该类装载器就保持对这一个或多个类的引用;和
对用于该应用程序的类装载器解除引用,这样该类装载器就变为无法访问。
根据本发明的另一个方面,提供一种装载并卸载与一个应用程序相关的类的方法,该方法包括:
接收一个装载信号,该信号指示应用程序将要被装载;
为该应用程序构造一个类装载器,该类装载器适用于装载与该应用程序相关的类;
接收一个启动信号,该信号指示应用程序将要被启动;
使用该类装载器装载与该应用程序相关的一个或多个类,这样该类装载器就保持对该一个或多个类的引用;和
对用于该应用程序的类装载器解除引用,这样该类装载器就变成无法访问。
根据本发明的另一个方面,提供一种装载与一个或多个应用程序相关的类的方法,该方法包括:
(a)构造一个应用程序管理器,该管理器适用于为一个应用程序构造一个类装载器并在该应用程序的执行结束时或该应用程序的执行被终止时对构造出的类装载器解除引用,该类装载器适用于装载与应用程序相关的类;
(b)接收一个应用程序;
(c)使用应用程序管理器为接收到的应用程序构造一个类装载器;及
(d)使用该类装载器装载与该应用程序相关的一个或多个类,这样该类装载器就保持了对这一个或多个类的引用;及
(e)使用该应用程序管理器以便在该应用程序的执行结束时或该应用程序的执行被终止时对该类装载器解除引用。
根据本发明的另一个方面,提供一种用于装载与一个或多个应用程序相关的类的系统,该系统包括:
一个存储器;和
一个处理器,该处理器与存储器一同实现用于为一个应用程序构造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应用程序的执行终止时,应用程序管理器操作对所构造的类装载器解除引用。
根据本发明的另一个方面,提供在数字电视中,一种用于装载与一个或多个应用程序相关的类的系统,该系统包括:
一个存储器;和
一个处理器,该处理器与存储器一同实现用于为一个应用程序构造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应用程序的执行终止时,该应用程序管理器操作对所构造的类装载器解除引用。
依照本发明的一个方面,应用程序管理器适于为应用程序构造类装载器。例如,可以构造(例如,实例化)一个特定的类装载器来装载与应用程序相关的类,该程序通过数字电视接收器被装载。因此,用类装载器来装入与该程序相关的一个或多个类。
依照本发明的另一个方面,应用程序管理器适用于监视并管理应用程序的执行,并在程序执行结束或程序的执行被终止(如,被信号终止)时对构造出的类装载器解除引用。这样,当应用程序管理器确定程序已经结束时,既然已经不再需要这些类就把它们卸载掉。这部分是通过对用于应用程序的类装载器解除引用使得它们无法访问而实现的。既然类装载器是最后一个对由它装入到执行环境中的类保持引用的,在类装载器被解除引用之后,如果运行时环境中没有其它实例引用这些类,它们也就成为无法访问。因此,当执行垃圾回收时,这些类都被有效地卸载。
然而依照本发明的另一个方面,本发明是实现在JAVA平台上的。JAVA平台为交互服务中新出现的类提供理想的开发和配置平台。Java编程语言为节目开发者提供对它们的应用程序的“外观(look andfeel)”的高度的控制和灵活性,使他们能够给观众提供最为生动和有说服力的交互电视体验。垃圾回收过程以杠杆作用把存储分配和存储器管理的负担从程序员身上移到平台上。另外,用Java编程语言写的交互式电视程序提供了安全性、可扩展性以及在各种不同的电视接收器之间的可移植性,节省了节目开发者把他们的交互式程序推向市场所需要的时间和金钱。
本发明使用单独的类装载器以装载和卸载与每个应用程序相关的类。当确认已经不再需要相关的类时,通过对适当的类装载器解除引用,垃圾回收过程用杠杆作用来使可用存储器的数量最大化。这在那些存储器资源有限的环境,如数字电视接收机中尤其重要。
附图说明
通过下面的描述连同附图,可以最好地理解本发明及其优势。
图1是描述了在其中实现本发明的系统的方框图。
图2是描述了在类的装载过程中本发明的一个实施方案的方框图。
图3是描述了在程序的执行过程中本发明的一个实施方案的方框图。
图4是描述了在程序执行完毕之后本发明的一个实施方案的方框图。
图5是描述了在一轮垃圾回收完成之后本发明的一个实施方案的方框图。
图6是依照本发明的一个实施方案在数字电视接收机上执行一个应用程序的一种方法的流程图。
图7是依照本发明的一个实施方案在图6所示的应用程序执行过程中卸载类的程序管理器的一种实现方法的流程图。
图8是描述了一个适用于实现本发明的典型的通用计算机系统的方框图。
具体实施方式
在下面的描述中,阐明了大量的特定细节以便能够提供对本发明的彻底理解。然而,对那些本领域的专家来说,不使用这些特定细节中的一些或全部也可以实践本发明。在其它实例中,一些广为所知的过程步骤并没有被详细描述出来,这样做是为了避免不必要的模糊本发明。
在这里描述的发明能够使类被动态卸载。尤其是,每个类可能由一个类对象表示,它包括相关类的定义。因此,术语“类”和“类对象”始终被交替使用。
本发明被描述在数字电视和数字电视接收机环境中。图1以框图描述了数字电视接收机样板。如图所示,信号通过天线102被接收,由调谐模块104进行调谐,处理MPEG2传输流106。接着反多路复用器处理包括视频流112、音频流114和数据流116的加密的MPEG流110。随后这三个流由条件访问子系统118进行处理。例如,条件访问子系统118可以使用密钥管理信息120和解密信息122(例如加密算法)。条件访问子系统产生解密的MPEG流123,包括视频流124、音频流125和数据126,所有这些都被解压出来。解码器128随后处理解密后的MPEG流123,并把解码后的视频数据转发给帧缓冲区130,把解码后的音频数据传送给扬声器132。
Java虚拟机(JVM)是可以用来通过处理由图1中所示数字电视接收机接收到的信息实现本发明的平台。尤其在处理数据126时,它可以包含由许多类组成的Java应用程序。因此人们希望能够在数字电视或数字电视接收机(或置顶盒),它们通常都受限于存储器中,动态地装载和卸载类以将存储器的消耗减小到最低。
本发明通过为每个应用程序初始化一个单独的类装载器使得对每个应用程序能够装载和卸载类。图2用框图描述了本发明的一个实施方案。如图所示,应用程序管理器202用来管理类的装载和平台上应用程序的执行。图7详细描述了实现应用程序管理器202的一种方法。尤其是通过为每个应用程序创建一个单独的类装载器来部分实现对类的装载的管理。这样,应用程序管理器202初始化第一个类装载器204用于装载与第一个应用程序(APP1)相关的类。同样地,应用程序管理器202初始化第二个类装载器206用于装载与第二个应用程序(APP2)相关的类。应用程序管理器202和类装载器204、206被存储在存储器208中。随后类装载器204和206分别为各自的应用程序装载类。尤其,如图所示,第一个应用程序类装载器204装入与第一个应用程序相关的第一组类210,第二个应用程序类装载器206装入与第二个应用程序相关的第二组类212。这样,第一组和第二组应用程序类210和212就被装入到执行环境214(例如Java虚拟机)中。一旦装载完毕,就可以在每个应用程序的执行期间访问这些类。
现在看图3,以框图形式描述了在类装载过程完成之时本发明的一个实施方案。例如,图3与JVM(Java虚拟机)上第一第二个应用程序的执行相关。如图所示,应用程序管理器202保持到第一个应用程序类装载器204和第二个应用程序类装载器206的一个链接(例如引用)。另外,第一个应用程序类装载器204保持到第一组应用程序类302的一个链接(例如,引用)。同样地,第二个应用程序类装载器206保持到第二组应用程序类304的一个链接(例如,引用)。可以用指针来实现每个链接。应用程序管理器202在各自的应用程序执行过程中继续引用所有的类装载器204和206。另外,类装载器204和206在各自应用程序执行过程中分别引用应用程序类302和304。一种实现中,第一和第二组应用程序类被存储在JVM栈里,驻留在存储器中(例如,存储器208)。该存储器可以是随机访问存储器(RAM)。
当一个应用程序的执行结束或者应用程序在完成之前就被停止时,应用程序管理器202对适当的类装载器解除引用。图4用框图描述了第二个应用程序的执行完成时本发明的一个实施方案。当第二个应用程序的执行被过早地终止时,程序管理器202对第二个应用程序类装载器206解除引用。也就是说,应用程序管理器202去掉402处所示的到第二个应用程序类装载器的链接。例如,对第二个应用程序类装载器206的初始引用变量可以被设置为空。例如,在第二个类装载器206被解除引用之后,对它的引用变量被设置为空,它因此变成存储器中一个无法访问的对象。如上所述,当一个对象(也就是类的一个实例)或类没有对它的引用时,它们是“无法访问”的,因此将被进行垃圾回收。既然作为对第二组应用程序类304和相关实例的最后一个引用的第二个类装载器206已经无法访问,垃圾回收406随后就移走相关的类304(也就是类对象)和类304的所有实例(也就是对象),因为它们在这一时刻已经无法访问。这样,由解除引用的类装载器206引用的类被进行垃圾回收,分配的存储器被还给可用存储器池。JVM上的附加细节,包括“无法访问性”和垃圾回收,都包括在“Java虚拟机规范”,第二版,Lindholm,Yellin,ISBN 0-201-43294-3,它因此被按照引用合并起来。
垃圾回收完成以后,所有无法访问的类和对象都已不在存储器当中。如图5所示,一旦垃圾回收在图4所示的系统上被执行,无法访问的类装载器、类以及相关实例都被从存储器中删除。结果是只有第一个应用程序装载器204和第一组类依然保留。因此,本发明以一种动态模式释放存储器以使有限的存储器资源(例如,数字电视接收机)能被更好地利用。
图6用流程图描述了依照本发明的一个实施方案通过数字电视接收机执行一个应用程序的一种方法的过程。该过程从模块602开始,在模块604处数字电视接收机被打开。JavaTM环境在模块606启动。在模块608构造出一个应用程序管理器并在模块610运行。
许多数字电视服务可以由像图1中所示的数字电视接收机接收到。除了接收多数频道之外,这些服务的范围从交互电视到近似的视频点播,到专用编程。当用户在模块612选中一个服务时,与被选中服务相关的应用程序可以在模块614通过数字电视接收机被接收到。例如,当用户选择了一个Disney服务时,可能会有一个Disney应用程序被接收用于增强的观看体验。
应用程序管理器负责监视并管理应用程序的执行。例如,应用程序管理器在模块616被通知去装载并执行应用程序。当在模块618接收到一个启动信号(例如,通过数字电视接收机)以启动应用程序时,应用程序管理器在模块620被通知启动应用程序。应用程序执行-直到在模块622接收到一个停止信号(例如,通过数字电视接收机),应用程序管理器在模块624被通知停止应用程序。整个过程在模块626结束。
可以用多种方式来实现应用程序管理器以确保类被装载并在应用程序不再需要它们时被卸载。图7是一个过程流程图,描述了依照本发明的实施方案,实现应用程序管理器以在图6所示的应用程序执行过程中卸载类的一种方法。过程在模块702开始,应用程序管理器在模块704执行适当的初始化。另外,应用程序管理器负责管理一个或多个应用程序的执行。这样,应用程序管理器在图6所示的模块614和616之前等待信号(例如,通过电视接收机),该信号指示应用程序管理器将要装载程序(例如,从广播数据流接收)、启动程序或停止程序。因此应用程序管理器在模块706等待这样一个信号,如图所示。当应用程序管理器在模块708接收到指示它将要装载一个应用程序的装载信号时,应用程序管理器在710为应用程序构造一个类装载器。如上所述,类装载器被设计用于装载与应用程序相关的一个或多个类。当应用程序管理器在模块712接收到一个启动信号时,应用程序管理器用适当的的类装载器在714装载与应用程序相关的应用程序类。例如,可以按照应用程序的安全性限制装载应用程序类。这样,类装载器可以执行适当的安全性检查以确认应用程序是否能被装载。应用程序管理器随后在模块716开始应用程序的执行并在模块718等待直到应用程序结束或者在完成之前就被终止。应用程序管理器通过从应用程序或其它指示应用程序的执行被终止的过程接收到的信号或消息识别应用程序的终止或完成。
当应用程序管理器接收到一个停止信号,在模块720处在应用程序完成之前终止它的执行,应用程序在模块722被销毁(例如删除)。在模块724执行与销毁的应用程序相关的清除。用于该应用程序的类装载器随后也在模块726被解除引用。
如果应用程序在模块728执行完毕,就向应用程序管理器发送一个信号(例如,通过接收器从应用程序或广播环境而来)以初始化应用程序的清除。例如,与应用程序相关的任何文件均被删除,任何相关的线程均被清除。另外,当不再需要时用于登记对每个应用程序的引用的数据也被删除掉。该过程仍然在模块724继续清除应用程序并在模块726对用于该应用程序的类装载器解除引用。也就是说,可以通过把指向类装载器的指针(例如,与应用程序管理器相关的引用变量)设置为空来去掉类装载器和应用程序管理器之间的链接,用来实现解除引用。另外,类装载器也可以被标记为无法访问。既然类装载器是最后一个对它所装入执行环境的类保持引用的,当类装载器被解除引用之后这些类也变为无法访问。因此,当垃圾回收被执行时这些类可以被有效卸载。
可以用多种方法执行垃圾回收以卸载与已被解除引用的类装载器相关的类。例如,可以用两个分开的途径执行垃圾回收。在第一个途径中,垃圾回收搜寻所有已经无法访问的对象和类。这时,可以确定类装载器无法访问以及由它装载的类。此时与无法访问的类装载器相关的类可以被标记为无法访问。此外,既然类装载器无法访问,垃圾回收释放分配的存储器以对类装载器解除引用。在第二个途径中,由现在不存在的类装载器装载的类已经在前一途径中被标记为无法访问,在这一途径中将发现被从存储器中清除它们。
本发明可以被实现在任何合适的计算机系统上。图8描述了一个适用于实现本发明的典型的通用计算机系统1002。该计算机系统可以采用任意合适的形式。例如,该计算机系统可以与数字电视接收器或置顶盒集成在一起。
可以调整计算机系统1002,更明确地说是CPU1004以支持虚拟机,那些本领域的专家会乐于做这些。计算机系统1002包括任意数量的处理器1004(也称为中央处理单元,或CPU),它可被连结到包括主存储设备1006(通常是只读存储器,或ROM)和主存储设备1008(通常是随机访问存储器RAM)的存储器设备上。众所周知,ROM只能往CPU单向传送数据和指令,而RAM可以双向传送数据和指令。主存储设备1006和1008可以包括任意适合计算机读取的介质。CPU1004通常可以包括任意数量的处理器。
二级存储介质1010,通常是大容量存储设备,也可以双向连结到CPU1004上并提供额外的数据存储空间。大容量存储设备1010是计算机可读的介质,可被用来存储包括计算机代码、数据等在内的程序。通常,大容量存储设备1010是像硬盘这样的存储介质,通常要比主存储设备1006、1008慢一些。
CPU1004也可被连结到一个或几个输入/输出设备1012上,包括视频监视器、轨迹球、键盘、麦克风、触控式显示器、传感器卡阅读器、磁带或纸带阅读器、写字板、指示笔、声音或手写识别器,或其它已经的输入设备如其它计算机。输入/输出设备并不仅仅局限于这些。最后,CPU1004可以用图中所示的网络连接在1014被连结到一个计算机或电信网络上,例如因特网或内联网。可以期望CPU1004从网络接收信息或在执行上述方法步骤期间向网络输出信息。这些信息通常被表示为可以由CPU1004执行的指令序列,可以从网络接收或向网络输出,例如,可以用载波中的数字信号形式。
本发明能够使类在确定不再需要它们时被卸载掉。通过为每个应用程序使用一个单独的类装载器,可以有效地装载类并在不需要时(例如,当应用程序结束或被终止时)卸载掉它们。此外,通过使用优化的类装载器,提供一个附加的安全级别以阻止未获授权的应用程序被装载并被执行。
虽然这里显示并描述了本发明的说明性的实施方案和应用,在本发明的概念、范围和精神内可能会有很多变化和更改,那些具有本领域基本技巧的人在精读了这个应用之后应该能够明白这些变化和更改。例如,本发明被描述为在数字电视接收机的环境中使类能够被卸载。然而,本发明也可用于在其它环境中装载和卸载类。此外,虽然本发明被描述为实现在JAVA平台上,但它也可实现在多种使用面向对象语言的平台或环境上。这样,“无法访问”通常指的是那些被解除引用的实体无法访问。而且,上述过程块只是说明性的。因此,类的装载和卸载可以使用别的过程块来执行。因此本发明的实施方案可以被看作说明性的和非限制性的,本发明并不局限于到目前所给出的细节,但应该在所附权利要求的等价范围内进行修改。

Claims (31)

1.一种装载并卸载与一个应用程序相关的类的方法,该方法包括:
为该应用程序构造一类装载器,该类装载器适用于装载与该应用程序相关的类;
使用该类装载器来装载与该应用程序相关的一个或多个类,这样该类装载器就保持对这一个或多个类的引用;和
对用于该应用程序的类装载器解除引用,这样该类装载器就变为无法访问。
2.如权利要求1的方法,其中的对用于该应用程序的类装载器解除引用包括标记类装载器为无法访问。
3.如权利要求1的方法,其中的对用于该应用程序的类装载器解除引用包括把对类装载器的引用设置为空。
4.如权利要求1的方法,其中对用于该应用程序的类装载器解除引用是在该应用程序的执行结束时或者该应用程序的执行被终止时执行的。
5.如权利要求1的方法,其中的应用程序是一个Java程序。
6.如权利要求1的方法,进一步包括:
执行应用程序;
其中对用于该应用程序的类装载器解除引用是在应用程序的执行被终止时执行的。
7.如权利要求1的方法,进一步包括:
销毁应用程序;
其中对用于该应用程序的类装载器解除引用的操作是在应用程序被销毁时执行的。
8.如权利要求1的方法,进一步包括:
执行垃圾回收以删除由已被解除引用的类装载器所引用的一个或多个类。
9.如权利要求1的方法,进一步包括:
标记由已被解除引用的类装载器所引用的一个或多个类为无法访问。
10.如权利要求8的方法,其中执行垃圾回收以删除由被解除引用的类装载器所引用的一个或多个类的步骤包括:
确定该类装载器为无法访问;
确定该无法访问的类装载器有一个或多个类与之相关;和
标记这一个或多个类为无法访问。
11.如权利要求10的方法,进一步包括:
释放与该类装载器相关的存储器;及
释放与该一个或多个类相关的存储器。
12.如权利要求1的方法,进一步包括:
搜索所有无法访问的对象和类;和
从相关存储区域中删除这些无法访问的对象和类,其中每个对象是一个类的一个实例。
13.如权利要求1的方法,进一步包括:
释放由已被解除引用的类装载器和相关的类所消耗的存储器。
14.如权利要求13的方法,其中释放由已被解除引用的类装载器和相关的类所消耗的存储器的步骤包括:
标记该类装载器为无法访问;
从相关的存储器区域删除无法访问的类装载器;
确定无法访问的类装载器有一个或多个相关的类;
标记这一个或多个相关的类为无法访问;
搜索存储器中无法访问的类;和
从相关的存储器区域删除这一个或多个相关的类。
15.如权利要求14的方法,其中在两种途径中执行垃圾回收,其中从相关存储器区域删除无法访问的类装载器是在第一个途径中执行,从相关存储器区域删除一个或多个相关的类是在第二个途径中执行。
16.一种装载并卸载与一个应用程序相关的类的方法,该方法包括:
接收一个装载信号,该信号指示应用程序将要被装载;
为该应用程序构造一个类装载器,该类装载器适用于装载与该应用程序相关的类;
接收一个启动信号,该信号指示应用程序将要被启动;
使用该类装载器装载与该应用程序相关的一个或多个类,这样该类装载器就保持对该一个或多个类的引用;和
对用于该应用程序的类装载器解除引用,这样该类装载器就变成无法访问。
17.如权利要求16的方法,其中构造类装载器对应于接收装载信号执行,使用类装载器装载与该应用程序相关的一个或多个类对应于接收启动信号执行。
18.如权利要求16的方法,进一步包括:
接收一个停止信号,该信号指示应用程序将要被停止。
19.如权利要求18的方法,其中对类装载器解除引用是在接收到停止信号时执行的。
20.如权利要求16的方法,其中对类装载器解除引用是在应用程序的执行完成时或应用程序的执行被负责构造类装载器的应用程序管理器终止时执行的。
21.一种装载与一个或多个应用程序相关的类的方法,该方法包括:
(a)构造一个应用程序管理器,该管理器适用于为一个应用程序构造一个类装载器并在该应用程序的执行结束时或该应用程序的执行被终止时对构造出的类装载器解除引用,该类装载器适用于装载与应用程序相关的类;
(b)接收一个应用程序;
(c)使用应用程序管理器为接收到的应用程序构造一个类装载器;及
(d)使用该类装载器装载与该应用程序相关的一个或多个类,这样该类装载器就保持了对这一个或多个类的引用;及
(e)使用该应用程序管理器以便在该应用程序的执行结束时或该应用程序的执行被终止时对该类装载器解除引用。
22.如权利要求21的方法,进一步包括:
用应用程序管理器对用于该应用程序的类装载器解除引用,这样该类装载器为无法访问。
23.如权利要求21的方法,进一步包括:
对每个接收到的应用程序重复步骤(b)、(c)和(d)。
24.如权利要求23的方法,进一步包括在一个应用程序的执行结束或被终止时对与一个应用程序相关的一个类装载器解除引用,由此在垃圾回收期间,使得该类装载器及相关类被卸载。
25.一种用于装载与一个或多个应用程序相关的类的系统,该系统包括:
一个存储器;和
一个处理器,该处理器与存储器一同实现用于为一个应用程序构造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应用程序的执行终止时,应用程序管理器操作对所构造的类装载器解除引用。
26.如权利要求25的系统,进一步包括:
用于装载与一个第一应用程序相关的类的一个第一类装载器。
27.如权利要求26的系统,其中该应用程序管理器被链接到该第一类装载器。
28.如权利要求26的系统,进一步包括:
在其中存储与该第一应用程序相关的第一组类的存储器;
其中该第一类装载器被链接到该第一组类
29.如权利要求25的系统,其中该系统是数字电视。
30.如权利要求25的系统,其中该系统是一个数字电视接收机。
31.在数字电视中,一种用于装载与一个或多个应用程序相关的类的系统,该系统包括:
一个存储器;和
一个处理器,该处理器与存储器一同实现用于为一个应用程序构造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应用程序的执行终止时,该应用程序管理器操作对所构造的类装载器解除引用。
CNB008102597A 1999-07-13 2000-07-13 实现单独的类装载器的方法和设备 Expired - Lifetime CN1156753C (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14342899P 1999-07-13 1999-07-13
US60/143,428 1999-07-13
US09/465,995 1999-12-16
US09/465,995 US6701334B1 (en) 1999-07-13 1999-12-16 Methods and apparatus for implementing individual class loaders
US09/465995 1999-12-16

Publications (2)

Publication Number Publication Date
CN1360694A CN1360694A (zh) 2002-07-24
CN1156753C true CN1156753C (zh) 2004-07-07

Family

ID=26841023

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008102597A Expired - Lifetime CN1156753C (zh) 1999-07-13 2000-07-13 实现单独的类装载器的方法和设备

Country Status (10)

Country Link
US (1) US6701334B1 (zh)
EP (1) EP1194838B1 (zh)
JP (3) JP2003504754A (zh)
KR (1) KR20020035558A (zh)
CN (1) CN1156753C (zh)
AT (1) ATE389912T1 (zh)
AU (1) AU5934500A (zh)
CA (1) CA2378588A1 (zh)
DE (1) DE60038377D1 (zh)
WO (1) WO2001004744A2 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701334B1 (en) * 1999-07-13 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for implementing individual class loaders
US6901586B1 (en) * 2000-11-06 2005-05-31 Sun Microsystems, Inc. Safe language static variables initialization in a multitasking system
US7237237B2 (en) 2001-07-24 2007-06-26 The Mathworks, Inc. Designating an object for destruction
CN1407780A (zh) * 2001-08-13 2003-04-02 国际商业机器公司 在多种终端设备访问服务内容时保持过程持续性的方法和设备
GB2381090B (en) * 2001-10-17 2005-02-02 Bitarts Ltd Software loading
GB0125176D0 (en) * 2001-10-19 2001-12-12 Koninkl Philips Electronics Nv A method of compiling bytecode to native code
EP1345417A1 (en) 2002-03-14 2003-09-17 Sony Service Center (Europe) N.V. Method and digital television unit for operating broadcast applications
US8042189B2 (en) * 2002-03-20 2011-10-18 Research In Motion Limited System and method to force a mobile device into a secure state
CA2479526C (en) 2002-03-20 2015-11-17 Research In Motion Limited System and method of secure garbage collection on a mobile device
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.
JP4136639B2 (ja) * 2002-12-13 2008-08-20 キヤノン株式会社 サービス提供システム及びサービス提供装置
KR20060065645A (ko) * 2003-07-24 2006-06-14 코닌클리케 필립스 일렉트로닉스 엔.브이. 브로드캐스트에서 특징 이용성 핸들링
JP2008515322A (ja) * 2004-09-30 2008-05-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Mhpアプリケーションの起動時間を減少させるシステム及び方法
US7823143B2 (en) * 2005-04-29 2010-10-26 Sap Ag Efficient algorithm for performing multi-parent class loading
US7421540B2 (en) * 2005-05-03 2008-09-02 International Business Machines Corporation Method, apparatus, and program to efficiently calculate cache prefetching patterns for loops
US20080005160A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Assembly Sensitive Dynamic Classloading Of .Net Types in J#
WO2008099453A1 (ja) * 2007-02-09 2008-08-21 Fujitsu Limited 縮退方法および情報処理装置
JP5157537B2 (ja) * 2008-03-06 2013-03-06 日本電気株式会社 メモリ管理装置、システム、方法、及び、プログラム
US8489653B2 (en) * 2011-02-08 2013-07-16 International Business Machines Corporation Incremental class unloading in a region-based garbage collector
US8910138B2 (en) * 2012-05-23 2014-12-09 Oracle International Corporation Hot pluggable extensions for access management system
KR101463856B1 (ko) 2012-09-13 2014-11-19 뱅크웨어글로벌 주식회사 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템 및 그 방법
JP5950288B2 (ja) 2014-09-16 2016-07-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラミング言語の処理系を実現する装置及び方法
US10114745B2 (en) * 2014-10-07 2018-10-30 Red Hat, Inc. Assisted garbage collection in a virtual machine
EP3093761A1 (en) * 2015-05-13 2016-11-16 Gemalto Sa Integrated circuit card adapted to transfer first data from a first application for use by a second application
CN105404589B (zh) * 2015-10-29 2019-04-30 天脉聚源(北京)教育科技有限公司 一种垃圾回收方法及装置
US10089235B1 (en) 2017-07-28 2018-10-02 Citrix Systems, Inc. Dynamic trim processing with disk caching
WO2019071601A1 (zh) * 2017-10-09 2019-04-18 华为技术有限公司 一种类卸载方法及电子设备
KR102116813B1 (ko) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 분산 환경 시스템에서의 어플리케이션 무중단 배포 시 불필요한 리소스 인식 및 해제 방안
KR102116814B1 (ko) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 어플리케이션 무중단 배포 시 응용 프로그램 버전 정합성을 위한 방법 및 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
FR2679351B1 (fr) 1991-07-15 1995-01-27 Bull Sa Systeme d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur a une liaison specifique d'un reseau.
US5727147A (en) * 1995-12-08 1998-03-10 Sun Microsystems, Inc. System and method for resolving symbolic references to externally located program files
US5815718A (en) * 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
EP0908821A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Digital code interpreter
US6553564B1 (en) * 1997-12-12 2003-04-22 International Business Machines Corporation Process and system for merging trace data for primarily interpreted methods
US6266716B1 (en) * 1998-01-26 2001-07-24 International Business Machines Corporation Method and system for controlling data acquisition over an information bus
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6496871B1 (en) * 1998-06-30 2002-12-17 Nec Research Institute, Inc. Distributed agent software system and method having enhanced process mobility and communication in a computer network
US6202208B1 (en) * 1998-09-29 2001-03-13 Nortel Networks Limited Patching environment for modifying a Java virtual machine and method
GB2343021A (en) * 1998-10-19 2000-04-26 Ibm Class loading model for object oriented programming
US6279030B1 (en) * 1998-11-12 2001-08-21 International Business Machines Corporation Dynamic JAVA™ class selection and download based on changeable attributes
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
US6430564B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java data manager for embedded device
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation
US6701334B1 (en) * 1999-07-13 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for implementing individual class loaders
US6442565B1 (en) * 1999-08-13 2002-08-27 Hiddenmind Technology, Inc. System and method for transmitting data content in a computer network

Also Published As

Publication number Publication date
AU5934500A (en) 2001-01-30
JP2011233171A (ja) 2011-11-17
EP1194838B1 (en) 2008-03-19
CN1360694A (zh) 2002-07-24
DE60038377D1 (de) 2008-04-30
CA2378588A1 (en) 2001-01-18
JP2003504754A (ja) 2003-02-04
WO2001004744A2 (en) 2001-01-18
KR20020035558A (ko) 2002-05-11
EP1194838A2 (en) 2002-04-10
ATE389912T1 (de) 2008-04-15
WO2001004744A3 (en) 2001-07-19
JP2014059906A (ja) 2014-04-03
US6701334B1 (en) 2004-03-02

Similar Documents

Publication Publication Date Title
CN1156753C (zh) 实现单独的类装载器的方法和设备
US6530080B2 (en) Method and apparatus for pre-processing and packaging class files
US6216152B1 (en) Method and apparatus for providing plug in media decoders
US5925100A (en) Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application
EP1212678B1 (fr) Protocole de gestion, procede de verification et de transformation d'un fragment de programme telecharge et systemes correspondants
US6757890B1 (en) Methods and apparatus for enabling local Java object allocation and collection
US7146479B2 (en) Method and apparatus of storage allocation/de-allocation in object-oriented programming environment
CN1264354C (zh) 选择以广播流发送的多点传送ip数据的方法和装置
CN1277782A (zh) 数字解码器中应用的下载
CN1360695A (zh) 用于根据应用生存周期管理该应用的方法和设备
JPH1083299A (ja) オブジェクト指向プログラムなどの処理で使用されるオブジェクトのオブジェクト・タイプを固有に識別する識別子を生成するシステムおよび方法
US20070294311A1 (en) Application program interface to manage media files
EP1142306A1 (en) A stream device management system for multimedia clients in a broadcast network architecture
WO2000040004A1 (en) Method and apparatus for providing reliable graphic memory operations in a set-top box environment
US20070203959A1 (en) Apparatus and method for managing resources using virtual ID in multiple Java application environment
Breg et al. Java virtual machine support for object serialization
US20060026379A1 (en) Effective memory management method and device in object-oriented application
CN1369779A (zh) 用于下载应用数据的方法和设备
US6799319B2 (en) Method and apparatus for application packages and delegate packages to adopt and export standard execution state machine interfaces
US7028287B2 (en) Method and apparatus for facilitating compact object headers
Peng et al. Digital television application manager
US6829686B2 (en) Method and apparatus for bag-to-set, buffering remembered set
US20080320490A1 (en) Method, apparatus and computer program product for providing sub-process resource management
US20030163506A1 (en) Speeding up application downloading from a remote server
US20020095556A1 (en) Memory management apparatus, memory management method, memory management program and computer readable storage medium therein

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
CX01 Expiry of patent term

Granted publication date: 20040707

CX01 Expiry of patent term