KR20020035558A - 개별 클래스로더 구현을 위한 방법 및 장치 - Google Patents

개별 클래스로더 구현을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20020035558A
KR20020035558A KR1020027000225A KR20027000225A KR20020035558A KR 20020035558 A KR20020035558 A KR 20020035558A KR 1020027000225 A KR1020027000225 A KR 1020027000225A KR 20027000225 A KR20027000225 A KR 20027000225A KR 20020035558 A KR20020035558 A KR 20020035558A
Authority
KR
South Korea
Prior art keywords
application
classes
classloader
class
unreachable
Prior art date
Application number
KR1020027000225A
Other languages
English (en)
Inventor
타오 예
바틀리에이치. 칼더
지저스데이빗 리바스
조나단디. 커트니
Original Assignee
썬 마이크로시스템즈, 인코포레이티드
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 썬 마이크로시스템즈, 인코포레이티드 filed Critical 썬 마이크로시스템즈, 인코포레이티드
Publication of KR20020035558A publication Critical patent/KR20020035558A/ko

Links

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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream 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 or rendering scenes according to encoded video stream 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Automatic Disk Changers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

응용프로그램과 관련된 클래스들을 로딩 및 언로딩시키는 방법 및 장치가 공개된다. 응용프로그램과 관련된 클래스들을 로딩시키는 클래스로더가 구축된다. 클래스로더는 응용프로그램과 관련된 한 개 이상 클래스를 로딩시키는 데 이용되어 클래스로더가 한 개 이상 클래스에 대한 기준을 유지한다. 그후 클래스로더가 도달불가이도록 응용프로그램에 대한 클래스로더가 참고중지된다.

Description

개별 클래스로더 구현을 위한 방법 및 장치{METHODS AND APPARATUS FOR IMPLEMENTING INDIVIDUAL CLASS LOADERS}
디지털 텔레비전 혁명은 텔레비전 방송 역사에서 가장 주목할만한 사건 중하나이다. 디지털 텔레비전의 출현으로, 위성, 케이블, 지상 텔레비전 채널을 통해 고속 데이터 전송이 가능하다. 디지털 텔레비전은 사용자에게 더많은 채널을 제공할 뿐 아니라, 대폭 향상된 비디오 및 오디오 품질을 제공한다. 보다 중요한 것은 디지털 텔레비전이 진정한 대화형 텔레비전 시대를 안내한다는 점이다. 예를 들어, 디지털 수신기는 간단한 대화형 퀴즈로부터 인터넷까지, 개선된 다양한 서비스를 사용자에게 제공할 수 있고, 텔레비전과 웹 형태 내용의 혼합을 사용자에게 제공할 수 있다. 디지털 텔레비전 시장이 성장함에 따라, 전자 프로그래밍 가이드(Electronic Programming Guides), 보이스-온-디맨드(Voice-On-Demand), 고품질 방송(Enhanced Broadcasting)처럼 차세대 대화형 텔레비전 서비스를 구축할 수 있는, 신뢰성있고 가격경쟁력 있는 소프트웨어 플랫폼을 개발자들이 찾고 있다.
자바는 포터블 언어로 고안된, 선도적인 상용 객제지향 언어이다. 자바 프로그램은 한번에 기록되고 컴파일될 수 있으며, 자바 플랫폼을 지원하는 어떤 호환 장치에서도 가동된다. 가령, 자바는 모든 메이저 웹브라우저와 통합될 수 있다. 따라서, 자바는 어떤 웹-기반 컴퓨터에서도 이 컴퓨터의 웹브라우저를 통해 구동된다. 이와 같이, 자바는 차세대 셋톱 박스와 디지털 텔레비전용 소프트웨어 플랫폼으로 대단한 전망을 제공한다.
객체지향 프로그래밍에서, 런타임 데이터는 객체로 나타난다. 각각의 객체는 그 클래스를 통해 규정되며, 클래스는 객체의 성질을 결정한다. 다시 말해서, 객체들은 클래스의 개별 사례들이다. 자바 응용프로그램을 구동하기 위해, 관련 클래스가 메모리로 로딩된다. 그후 이 클래스들의 사례들이 프로그램 흐름에 따라 구축된다. 생성되는 모든 객체가, 더 이상 필요없을 때, 프로그래머에 의해 자발적으로 파괴되는 점을 대부분의 객체지향 언어가 필요로 한다. 그러나, 자바 가상 머신의 구현은 일반적으로 이 과정을 자동화시키며, 가용 메모리의 양을 증가시키도록 가비지 수집(garbage collection)을 실행한다. 따라서, 객체는 더 이상 필요없을 때 자바 런타임 환경에 의해 자동적으로 "가비지 수집"되거나 삭제된다.
더 이상 필요없는 클래스의 사례들이 가비지 수집을 통해 메모리로부터 제거되지만, 관련 클래스는 메모리로부터 제거되지 않는다. 더욱이, 자바가 동적 언어이기 때문에, 클래스 로딩이 공통적으로 실행된다. 그러나, 더 이상 필요없을 때조차 클래스를 언로딩하는 메카니즘이 현재 존재하지 않는다. 그 결과, 종국에는 자바 플랫폼이 다량의 클래스를 저장할 것이다.
데스크탑 환경에서, 메모리가 상대적으로 제한받지 않기 때문에 클래스가 언로딩될 필요가 없다. 더우기, 브라우저가 턴-오프(닫혀질)될 경우, 메모리로부터 클래스가 지워진다. 그러나, 이 공간은 특히 디지털 텔레비전 영역에서, 구현된 시스템의 환경에서 가치있는 자원이다. 더욱이 디지털 텔레비전 환경에서, 다중 응용프로그램을 구동하는 것은 흔한 일이다. 예를 들어, 텔레비전 시청자가 채널을 변경할 경우, 각각의 관련된 서비스는 다중 클래스를 갖춘 새 응용프로그램이 로딩될 것을 필요로할 것이다. 그 결과, 제한된 양의 메모리가 소모될 때까지 메모리가 로딩된 클래스에 계속 할당될 것이다. 메모리가 고갈되면, 어떤 추가 프로그램을 구동하는 것이 불가능하다. 따라서, 메모리 이용을 감시하면서 더 이상 필요없는 클래스들을 삭제하는 것이 바람직하다. 오류 발생시 텔레비전을 재부팅하는 것이 바람직하지 않기 때문에 이는 특히 중요하다.
앞서의 관점에서, 메모리의 클래스 저장을 관리하는 개선된 방법이 필요하다.
본 발명은 컴퓨터 소프트웨어에 관한 것이다. 특히, 본 발명은 응용프로그램과 관련된 클래스를 로딩하기 위한 클래스로더를 구현하기 위한 방법 및 장치에 관한 것이다.
도 1은 본 발명이 구현될 수 있는 시스템의 블록도표.
도 2는 클래스의 로딩 중 발명의 한 실시예를 도시하는 블록도표.
도 3은 응용프로그램의 실행 중 발명의 한 실시예를 나타내는 블록도표.
도 4는 응용프로그램의 완료시 발명의 한 실시예의 블록도표.
도 5는 가비지 수집 한 라운드가 종료된 후 발명의 한 실시예의 블록도표.
도 6은 발명의 한 실시예에 따라 디지털 TV 수신기 상에서 응용프로그램을 실행하는 한가지 방법의 순서도.
도 7은 발명의 한 실시예에 따라 도 6에 도시되는 바와 같이, 응용프로그램 실행 중 프로그램 관리자가 클래스의 언로딩을 구현하는 한가지 방법의 순서도.
도 8은 본 발명 구현을 위해 적절한 범용 컴퓨터 시스템의 블록도표.
본 발명은 클래스가 더 이상 필요없을 때 메모리로부터 클래스를 동적으로 언로딩시킬 수 있다. 이는 부분적으로, 각 프로그램과 관련된 개별 클래스로더를 이용하여 달성된다. 이 방식으로, 디지털 텔레비전 내 메모리 소모가 관리되어 제한된 메모리 자원을 더 효율적으로 이용할 수 있다.
발명의 한 태양에 따라, 응용프로그램에 대해 클래스로더를 구축하기 위해 프로그램 관리자가 이용된다. 예를 들어, 디지털 텔레비전 수신기를 통해 로딩될응용프로그램과 관련된 클래스를 로딩하도록 특화된 클래스로더가 구축될 수 있다. 따라서, 클래스로더는 응용프로그램과 관련된 한 개 이상의 클래스를 로딩하도록 사용된다.
발명의 또다른 태양에 따라, 응용프로그램 실행을 감시하고 관리하기 위해, 그리고 응용프로그램 실행이 신호 등에 의해 종료될 때 구축된 클래스로더를 참고-중지(de-referencing)하기 위해 프로그램 관리자가 이용된다. 따라서, 응용프로그램이 종료되었다고 프로그램 관리자가 결정할 경우, 클래스는 더 이상 필요가 없으므로 언로딩된다. 이는 부분적으로, 클래스로더가 도달할 수 없게 되도록 응용프로그램에 대해 클래스로더를 참고-중지(de-referencing)시킴으로서 달성된다. 클래스로더가 실행 환경으로 로딩할 클래스에 대한 기준을 유지하는 마지막이기 때문에, 런타임 환경의 어떤 다른 사례도 클래스들을 참고하지 않을 경우 클래스로더가 참고-중지될 때 이 클래스들은 도달불가하다. 따라서, 가비지 수집이 실행될 때, 클래스가 효과적으로 언로딩된다.
발명의 또다른 태양에 따라, 본 발명은 자바 플랫폼에서 구현된다. 자바 플랫폼은 대화형 서비스의 클래스에 대한 이상적인 개발 및 전개 플랫폼이다. 자바 프로그래밍 언어는 응용프로그램의 "외관과 분위기"에 높은 수준의 제어 및 유동성을 내용 개발자에게 제공하며, 가장 동적이고 강제적인 대화형 텔레비전 경험을 청중에게 보여주게 한다. 가비지 수집 과정은 프로그래머로부터 플랫폼까지 메모리 할당 및 메모리 관리의 짐을 옮기도록 균형을 찾는다. 추가적으로, 자바 프로그래밍 언어로 쓰여진 대화형 텔레비전 프로그램은 텔레비전 수신기의 다양한 배열 사이에서 보안성, 확장성, 휴대성을 제공하여, 그 대화형 프로그램을 시장에 내놓기 위해 소요되는 시간과 비용을 절약할 수 있게 한다.
본 발명의 각각의 응용프로그램과 관련된 클래스를 로딩하고 언로딩하도록 개별 클래스로더를 이용한다. 관련 클래스가 더 이상 필요없다고 결정될 때 적절한 클래스로더의 참고-중지를 통해, 가비지 수집 과정이 가용 메모리의 양을 최대화시키도록 균형을 찾는다. 이는 디지털 텔레비전 수신기에서처럼 제한된 양의 메모리를 가지는 시스템에서 특히 중요하다.
여기서 공개되는 발명은 클래스를 동적으로 언로딩시킨다. 특히, 클래스들은각각 클래스 객체로 표시될 수 있고, 클래스 객체는 관련 객체의 정의를 포함한다. 따라서, "클래스"와 "클래스 객체"라는 용어는 전체적으로 바꿔쓸 수 있는 용어로 이용된다.
발명은 디지털 텔레비전 및 디지털 텔레비전 수신기의 범주 내에서 기술된다. 도 1은 한 예의 디지털 텔레비전 수신기를 나타내는 블록도표이다. 도시되는 바와 같이, 안테나(102)를 통해 신호가 수신되고, 튜너 모듈(104)에 의해 신호가 튜닝되어, MPEG2 전송 스트림(106)을 생성한다. 그후, 디-멀티플렉서(108)는 비디오 스트림(112), 오디오 스트림(114), 데이터 스트림(116)을 포함하는 암호화 MPEG 스트림(110)을 생성한다. 그후 이 세 스트림은 조건식 접근 서브시스템(118)에 의해 처리된다. 예를 들어, 조건식 접근 서브시스템(118)은 키이 관리 정보(120)뿐 아니라 해역 정보(122)(가령, 해역 알고리즘)도 이용할 수 있다. 조건식 접근 서브시스템(118)은 비디오 스트림(124), 오디오 스트림(125), 데이터(126)를 포함한 해역 MPEG 스트림(123)을 생성한다. 이 모두는 해역된다. 그후 디코더(128)는 해역 MPEG 스트림(123)을 처리하고, 해역된 비디오 데이터를 프레임 버퍼(130)로 이송하고 해역된 오디오 데이터를 스피커(132)로 전달한다.
자바 가상 머신(JVM)은 도 1에 도시되는 경우처럼 디지털 텔레비전 수신기에 의해 수신되는 정보를 처리함으로서 본 발명을 구현하는 데 사용될 수 있는 플랫폼이다. 특히, 데이터(126)가 처리될 때, 여러 클래스로 구성되는 자바 응용프로그램을 JVM이 포함할 수 있다. 따라서, 일반적으로 제한된 양의 메모리를 가지는 디지털 텔레비전이나 디지털 텔레비전 수신기(또는 셋톱박스)에서 메모리 소모를 최소화하기 위해 클래스를 동적으로 로딩하고 언로딩하는 것이 바람직하다.
본 발명은 각각의 응용프로그램에 대해 개별 클래스로더의 구현을 통해 각 응용프로그램에 대한 클래스의 로딩 및 언로딩을 가능하게 한다. 도 2는 발명의 한 실시예를 도시하는 블록도표이다. 도시되는 바와 같이, 클래스의 로딩뿐 아니라 플랫폼 상에서 응용프로그램의 실행까지 관리하기 위해 프로그램 관리자(202)가 제공된다. 프로그램 관리자(202)를 구현하는 한가지 방법은 도 7을 참고하여 추가로 상세하게 설명될 것이다. 특히, 각 응용프로그램에 대해 개별 클래스로더를 생성함으로서 클래스 로딩이 관리된다. 따라서, 프로그램 관리자(202)는 제 1 응용프로그램(APPI)과 연관된 클래스를 로딩하도록 구성된 제 1 클래스로더(204)를 구현한다. 마찬가지로, 프로그램 관리자(202)는 제 2 응용프로그램(APP2)과 연관된 클래스를 로딩하도록 구성된 제 2 클래스로더(206)를 구현한다. 프로그램 관리자(202)와 클래스로더(204, 206)는 메모리(208)에 저장된다. 그후 클래스로더(204, 206)는 각 응용프로그램에 대해 클래스를 로딩한다. 특히 도시되는 바와 같이, 제 1 응용프로그램 클래스로더(204)는 제 1 응용프로그램과 관련된 제 1 세트의 클래스(210)를 로딩하고, 제 2 응용프로그램 클래스로더(206)는 제 2 응용프로그램과 관련된 제 2 세트의 클래스(212)를 로딩한다. 이 방식으로, 제 1, 2 세트의 응용프로그램 클래스들(210, 212)은 실행 환경(214)(가령, JVM)으로 로딩된다. 로딩되면, 각 응용프로그램의 실행 중 클래스에 접근할 수 있다.
도 3에서, 클래스 로딩 과정을 완료후 발명의 한 실시예를 나타내는 블록도표가 제시된다. 도 3은 예를 들어, JVM에 의해 제 1, 2 응용프로그램의 실행과 연관된다. 도시되는 바와 같이 프로그램 관리자(202)는 제 1 응용프로그램 클래스로더(204)와 제 2 응용프로그램 클래스로더(206)에 대한 링크(가령, 참고)를 유지관리한다. 추가적으로, 제 1 응용프로그램 클래스로더(204)는 제 1 세트의 응용프로그램 클래스(302)에 대한 링크(가령, 참고)를 유지관리한다. 마찬가지로, 제 2 응용프로그램 클래스로더(204)는 제 2 세트의 응용프로그램 클래스(304)에 대한 링크(가령, 참고)를 유지관리한다. 예를 들어, 각각의 링크는 포인터를 이용하여 구현될 수 있다. 프로그램 관리자(202)는 각 응용프로그램 실행중 계속하여 모든 클래스로더(204, 206)를 참고한다. 추가적으로, 클래스로더(204, 206)는 각 응용프로그램 실행 중 응용프로그램 클래스(302, 304)를 각각 참고한다. 한 구현에서, 응용프로그램 클래스 제 1 세트 및 제 2 세트는 메모리(가령, 메모리(200))에 상주하는 JVM 스택에 저장된다. 한 예로, 메모리는 임의 접근 메모리(RAM)일 수 있다.
응용프로그램 중 하나의 실행이 종료되거나 응용프로그램이 종료 이전에 정지되면, 프로그램 관리자(202)는 적절한 클래스로더를 참고-중지(de-referencing)시킨다. 도 4는 제 2 응용프로그램의 실행 종료에 이어지는 발명의 한 실시예를 나타내는 블록도표이다. 제 2 응용프로그램 실행이 완료되거나 그전에 중단될 때, 프로그램 관리자(202)는 제 2 응용프로그램 로더(206)를 참고-중지시킨다. 다시 말해서, 프로그램 관리자(202)는 (402)에 도시되는 바와 같이 제 2 응용프로그램 로더에 대한 링크를 제거한다. 예를 들어, 제 2 응용프로그램 로더(206)에 대한 기준 변수가 0으로 설정될 수 있다. 제 2 클래스로더(206)가 참고-중지된 후, 제 2 클래스로더(206)는 메모리에서 도달불가한 객체가 된다. 앞서 설명한 바와 같이, 객체(즉, 클래스의 사례)나 클래스가 어떤 기준도 가지지 못할 경우, 이는 "도달불가"하고 따라서 가비지 수집될 것이다. 응용프로그램 클래스 제 2 세트(304) 및 그 관련 사례에 대한 최종 기준으로서 제 2 클래스로더(206)가 도달불가하기 때문에, 가비지 수집(406)은 이에 따라 관련 클래스(304)(가령, 클래스 객체)와 모든 클래스 사례(304)(즉, 객체)를 삭제한다. 무론, 이들이 이 순간에 도달불가하기 때문이다. 따라서, 참고-중지된 클래스로더(206)에 의해 참고되는 클래스가 가비지 수집되고, 할당된 메모리는 가용 메모리 풀에 복귀한다. "도달불가 성질"과 가비지 수집을 포함한 JVM에 관한 세부사항은 ISBN 0-201-43294-3, Yellin, Lindholm, 2판 "자바 가상 머신 명세서"에 기록되어 있다.
가비지 수집이 완료된 후, 모든 도달불가 클래스와 객체는 더 이상 메모리에 위치하지 않는다. 도 5에 도시되는 바와 같이, 가비지 수집이 도 4에 도시되는 시스템 상에서 실행될 경우, 도달불가 클래스로더, 도달불가 클래스, 그리고 관련 사례들이 메모리로부터 삭제된다. 그 결과, 제 1 응용프로그램 로더(204)와 제 1 세트의 클래스(304)만이 남아 있게 된다. 결과적으로, 발명은 (디지털 텔레비전 수신기의) 제한된 메모리 자원이 더 효율적으로 이용될 수 있도록 동적인 방식으로 메모리 자원을 비우는 역할을 한다.
도 6은 발명의 한 실시예에 따라 디지털 TV 수신기를 통해 전송되는 응용프로그램을 실행하는 한가지 방법의 순서도이다. 이 과정은 블록(602)에서 시작하고 블록(604)에서 디지털 텔레비전 수신기가 켜진다. 자바 환경이 블록(606)에서 시작된다. 프로그램 관리자가 블록(608)에서 구축되고 블록(610)에서 구동된다.
도 1에 도시되는 경우처럼, 다양한 디지털 텔레비전 서비스가 디지털 텔레비전 수신기에 의해 수신될 수 있다. 다중 채널을 수신함에 추가하여, 이 서비스들은 대화형 텔레비전에서부터 비디오-온-디맨드까지, 특화된 프로그래밍까지를 포함한다. 블록(612)에서 사용자에 의해 한 서비스가 선택되면, 선택된 서비스와 관련된 응용프로그램이 블록(614)에서 디지털 텔레비전 수신기를 통해 수신될 수 있다. 예를 들어, 사용자가 Disney 서비스를 선택할 때, 향상된 시청 경험을 위한 디즈니 응용프로그램이 수신될 것이다.
프로그램 관리자는 응용프로그램 실행을 감시하고 관리할 책임이 있다. 예를 들어, 프로그램 관리자는 블록(616)에서 응용프로그램을 로딩하고 실행하라는 신호를 받는다. 응용프로그램 시동을 위해 블록(618)에서 (디지털 텔레비전 수신기 등을 통해) 시작 신호가 수신되면, 프로그램 관리자는 블록(620)에서 응용프로그램 시작을 신호받는다. 블록(622)에서 중지 신호를 수신할 때까지 응용프로그램이 실행되며, 프로그램 관리자는 블록(624)에서 응용프로그램 중지를 신호받는다. 이 과정들은 블록(626)에서 종료된다.
응용프로그램이 클래스를 더 이상 필요로하지 않을 때 로딩된 클래스가 언로딩되는 것을 보장하기 위해 여러 방식으로 프로그램 관리자가 구현될 수 있다. 도 7은 발명의 한 실시예에 따라 도 6에 도시되는 바와 같이 응용프로그램의 실행 중 클래스를 언로딩하도록 프로그램 관리자를 구현하는 한가지 방법을 설명하는 순서도이다. 이 과정은 블록(702)에서 시작하고 블록(704)에서 프로그램 관리자는 적절한 초기화를 실행한다. 추가적으로, 프로그램 관리자는 한 개 이상 프로그램의 실행을 관리할 책임이 있다. 따라서, 프로그램 관리자는 블록(614, 616) 이전에 도 6에 도시되는 바와 같이 (텔레비전 수신기 등을 통해) 프로그램 관리자의 응용프로그램 로딩, 시작, 또는 중지를 나타내는 신호를 기다린다. 따라서 프로그램 관리자는 블록(706)에서 도시되는 바와 같이 이러한 신호를 기다린다. 프로그램 관리자가 블록(708)에서 프로그램 관리자가 응용프로그램을 로딩시킬 것임을 나타내는 로드 신호를 프로그램 관리자가 수신할 경우, 프로그램 관리자는 응용프로그램에 대한 클래스로더를 구축한다(710). 앞서 설명한 바와 같이, 클래스로더는 응용프로그램과 관련된 한 개 이상의 클래스를 로딩하도록 설계된다. 프로그램 관리자가 블록 (712)에서 시작 신호를 수신할 때, 프로그램 관리자는 블록(714)에서 프로그램 관리자와 관련된 응용프로그램 클래스를 로딩하기 위해 적절한 클래스로더를 이용한다. 예를 들어, 응용프로그램 클래스는 응용프로그램의 보안 제약사항에 따라 로딩될 수 있다. 따라서, 클래스로더는 응용프로그램이 로딩될 수 있는 지를 결정하기 위해 적절한 보안성 검사를 실행할 수 있다. 프로그램 관리자는 그후 블록(716)에서 응용프로그램의 실행을 개시하고, 응용프로그램이 종료되거나 실행 완료전 응용프로그램이 중단될 때까지 블록(718)에서 기다린다. 프로그램 관리자는 응용프로그램 실행의 중단을 나타내는 응용프로그램이나 타과정으로부터의 신호나 메시지를 수신함으로서 응용프로그램의 중단이나 종료를 인식한다.
블록(720)에 도시되는 바와 같이 실행 완료 이전에 응용프로그램의 실행을 중단시키는 중지 신호를 프로그램 관리자가 수신할 때, 블록(722)에서 응용프로그램이 파괴(삭제)된다. 파괴된 응용프로그램과 관련된 클린-업 처리는 블록(724)에서 실행된다. 응용프로그램에 대한 클래스로더는 블록(726)에서 참고-중지된다.
블록(728)에서 응용프로그램이 실행을 완료할 경우, 응용프로그램은 응용프로그램의 클린-업을 시작하라는 신호를 프로그램 관리자에게 전송한다. 예를 들어, 응용프로그램과 관련된 어떤 파일도 삭제되며, 어떤 관련된 연결(Threads)도 삭제된다. 추가적으로, 각 응용프로그램에 대한 참고서처럼 북키핑(bookkeeping)을 위해 사용된 어떤 데이터도, 필요가 없을 경우 삭제될 수 있다. 이 과정은 블록(724)에서 계속되어 응용프로그램을 클린-업하고, 블록(726)에서 응용프로그램에 대한 클래스로더를 참고-중지시킨다. 다시 말해서, 클래스로더에 대한 포인터를 0으로 설정함으로서 클래스로더와 프로그램 관리자간 링크를 제거함에 의해 참고-중지가 달성될 수 있다. 또다른 예에서, 클래스로더는 도달불가로 표시될 수 있다. 클래스로더가 실행 환경으로 로딩한 클래스에 대한 기준을 유지하는 마지막이기 때문에, 이 클래스들은 클래스로더가 참고-중지될 때 도달불가가 된다. 따라서, 가비지 수집이 실행될 때, 클래스들이 효과적으로 언로딩된다.
가비지 수집은 참고-중지된 클래스로더와 관련된 클래스들을 언로딩하기 위해 여러 방식으로 실행될 수 있다. 예를 들어, 가비지 수집은 두 개의 별개의 경로로 실행될 수 있다. 첫 번째 경로에서, 가비지 수집은 도달불가한 모든 객체와 클래스를 검색할 수 있다. 이 경우에, 클래스로더가 도달불가인 지가 결정될 수 있고, 이에 의해 로딩된 클래스도 결정될 수 있다. 도달불가 클래스로더와 관련된 클래스들은 이 경우에 도달불가로 표시된다. 더욱이, 클래스로더가 도달불가이기 때문에, 가비지 수집은 참고-중지된 클래스로더에 할당된 메모리를 비운다. 두 번째경로에서, 이전 경로에서 도달불가로 표시된 비-존재 클래스로더에 의해 로딩되는 클래스들이 발견되고 메모리로부터 제거될 것이다.
본 발명은 어떤 적절한 컴퓨터 시스템에서도 구현될 수 있다. 도 8은 본 발명의 구현에 적절한 범용 컴퓨터 시스템(1002)을 도시한다. 컴퓨터 시스템은 어떤 적절한 형태도 취할 수 있다. 예를 들어, 컴퓨터 시스템은 디지털 텔레비전 수신기나 셋톱박스와 통합될 수 있다.
컴퓨터 시스템(1030), 또는 보다 구체적으로 CPU(1032)는 가상 머신을 지원하도록 배열된다. 컴퓨터 시스템(1002)은 주기억장치(1006)(일반적으로 ROM)와 주기억장치(1008)(일반적으로 RAM)를 포함하는 메모리 장치에 연결될 수 있는 프로세서(1004)를 포함한다. 프로세서(1004)는 여러개일 수도 있다. 당 분야에 공지된 바와 같이, ROM은 CPU(1004)에 단방향으로 데이터 및 명령을 전달하는 역할을 하며, RAM은 양방향으로 데이터 및 명령을 전달하는 데 사용된다. 주기억장치(1006, 1008)는 어떤 적절한 컴퓨터 판독 매체도 포함할 수 있다. CPU(1004)는 어떤 수의 프로세서도 포함할 수 있다.
일반적으로 대용량 기억 소자인 보조기억장치(1010)가 CPU(1004)에 양방향으로 연결될 수 있으며, 추가적인 데이터 기억 용량을 제공한다. 대용량 기억장치(1010)는 컴퓨터 코드, 데이터, 등등을 포함한 프로그램을 저장하는 데 사용될 수 있는 컴퓨터-판독 매체이다. 일반적으로 대용량 기억장치(1010)는 주기억장치(1006, 1008)보다 느린 하드디스크같은 기억 매체이다.
CPU(1004)는 한 개 이상의 입/출력 장치(1012)에도 연결될 수 있다. 입/출력장치(1012)의 예로는 비디오 모니터, 트랙 볼, 마우스, 키보드, 마이크로폰, 터치식 디스플레이 장치, 트랜스듀서 카드 판독기, 자기식/종이테이프식 판독기, 테이블릿, 스타일러스, 음성이나 글자체 인식 장치, 또는 그외 다른 공지 입력 장치가 있다. 마지막으로, CPU(1004)는 (1014)로 도시되는 바와 같이 네트워크 연결을 이용하여, 컴퓨터나 통신망, 가령, 인터넷망이나 인트라넷망에 연결될 수 있다. 이러한 네트워크 연결로, 앞서 설명한 방법 단계들을 실행하는 와중에 CPU(1004)가 네트워크로부터 정보를 수신할 수 있고 네트워크에 정보를 출력할 수 있다. CPU(1004)을 이용하여 실행될 명령 순서로 자주 표시되는 이러한 정보는 가령, 반송파로 구현되는 컴퓨터 데이터 신호 형태로, 네트워크로부터 수신될 수 있고 네트워크로 출력될 수 있다.
본 발명은 클래스들이 더 이상 필요없는 지를 결정할 때 클래스들을 언로딩시킨다. 각 응용프로그램에 대해 개별 클래스로더를 이용함으로서, 클래스들이 더 이상 필요하지 않을 때(가령, 응용프로그램이 종료되거나 중단될 때) 클래스들을 효과적으로 로딩하고 언로딩한다. 더욱이, 주문형 클래스로더의 이용을 통해, 승인되지 않은 응용프로그램이 로딩되고 실행되는 것을 방지하기 위해 추가 보안 단계가 제공된다.
소개된 내용에 비해, 발명의 사상과 범위 내에서 여러 변형과 수정이 가능하다. 예를 들어, 본 발명은 디지털 텔레비전 수신기의 범주 내에서 클래스를 언로딩시키는 것으로 설명되었으나, 본 발명은 다른 내용에서 클래스를 로딩 및 언로딩시키는 데 사용될 수도 있다. 더욱이, 본 발명은 자바 플랫폼 상에서 구현되는 것으로 설명되었으나, 객체지향 언어가 사용되는 여러 다양한 플랫폼이나 내용에서 구현될 수도 있다. 따라서, "도달불가성"이란 "참고-중지"된 객체의 도달불가 성질을 언급하는 것일 수 있다. 더욱이, 앞서 설명한 블록들은 설명을 위한 것이다. 따라서, 클래스의 로딩 및 언로딩은 대안의 과정 블록으로 고려될 것이다. 따라서, 본 실시예들은 여기서 주어진 세부사항에 제한되지 않고, 첨구범위의 청구항과 동등한 범위내에서 수정될 수 있다.

Claims (39)

  1. 응용프로그램과 관련된 클래스를 로딩(loading) 및 언로딩(unloading)하는 방법으로서, 상기 방법은,
    - 응용프로그램에 대한 클래스로더(class loader)를 구축하고, 이때 클래스로더는 응용프로그램과 관련된 클래스를 로딩하는 구조를 가지며,
    - 클래스로더를 이용하여 응용프로그램과 관련된 한 개 이상의 클래스를 로딩시키며, 그래서 클래스로더가 한 개 이상 클래스에 대한 기준(reference)을 유지관리하며,
    - 클래스로더가 도달불가(unreachable)에 이르도록 응용프로그램에 대한 클래스로더를 참고-중지(de-referencing)하는, 이상의 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 클래스로더를 참고-중지하는 단계는 클래스로더를 도달불가로 표시하는 과정을 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 참고-중지 단계는 클래스로더에 대한 기준을 0으로 설정하는 과정을 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 한 개 이상의 클래스가 더 이상 필요없을 때 클래스로더를 참고-중지시키는 단계가 실행되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서 응용프로그램이 자바 프로그램인 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 방법은 응용프로그램을 실행하는 단계를 추가로 포함하고,
    응용프로그램 실행이 중단될 때 클래스로더를 참고-중지하는 단계가 실행되는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 방법은 응용프로그램을 파괴하는 단계를 추가로 포함하고,
    응용프로그램이 파괴될 때 응용프로그램에 대한 클래스로더 참고-중지가 실행되는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서, 상기 방법은,
    - 참고중지된 클래스로더에 의해 참고된 한 개 이상의 클래스를 삭제하도록 가비지 수집(garbage collection)을 실행하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서, 상기 방법은,
    - 참고중지된 클래스로더를 도달불가로 표시하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서,
    - 참고중지된 클래스로더에 의해 참고된 한 개 이상의 클래스로 도달불가로 표시하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  11. 제 8 항에 있어서, 참고중지된 클래스로더에 의해 참고된 한 개 이상 클래스를 삭제하도록 가비지 수집을 실행하는 단계는,
    - 클래스로더가 도달불가인 지 결정하고,
    - 도달불가한 클래스로더가 이와 관련된 한 개 이상 클래스를 가지는 지 확인하며,
    - 한 개 이상 클래스를 도달불가로 표시하는, 이상의 과정을 포함하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서, 상기 방법은,
    - 클래스로더와 관련된 메모리를 비우고,
    - 한 개 이상 클래스와 관련된 메모리를 비우는, 이상의 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  13. 제 1 항에 있어서, 상기 방법은,
    - 도달불가인 모든 객체와 클래스를 검색하고,
    - 관련 메모리 위치로부터 도달불가인 객체와 클래스를 삭제하는, 이상의 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  14. 제 1 항에 있어서, 상기 방법은,
    - 참고중지된 클래스로더와 관련 클래스에 의해 소모되었던 메모리를 다시 비우는, 이상의 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서, 참고중지된 클래스로더와 그 관련 클래스에 의해 소모된 메모리를 다시 비우는 단계는,
    - 클래스로더를 도달불가로 표시하고,
    - 메모리에서 도달불가 객체를 검색하며,
    - 도달불가 클래스로더를 관련 메모리 위치로부터 삭제하고,
    - 도달불가 클래스로더가 한 개 이상 관련 클래스를 가지는 지를 확인하며,
    - 한 개 이상 관련 클래스를 도달불가로 표시하고,
    - 메모리에서 도달불가 클래스를 검색하며,
    - 한 개 이상 관련 클래스를 관련 메모리 위치로부터 삭제하는, 이상의 단계를 포함하는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서, 도달불가 클래스로더를 관련 메모리 위치로부터 삭제하는 단계는 제 1 경로에서 실행되고, 한 개 이상 관련 클래스를 관련 메모리 위치로부터 삭제하는 단계는 제 2 경로에서 실행되는 것을 특징으로 하는 방법.
  17. 다중 응용프로그램과 관련된 클래스를 로딩 및 언로딩하는 방법으로서, 상기 방법은,
    - 다수의 응용프로그램 중 각각의 응용프로그램에 대해 클래스로더를 구축하여, 다수의 클래스로더 중 각각의 클래스로더가 다수의 응용프로그램 중 각각의 응용프로그램과 연관된 클래스를 로딩시키도록 구성되며,
    다수의 클래스 로더 중 한 개 이상을 이용하여 상응하는 응용프로그램과 관련된 한 개 이상 클래스를 로딩시켜서, 클래스로더 중 한 개 이상이 이에 상응하는 응용프로그램과 관련된 클래스에 대한 기준을 유지하게 하며,
    - 상응하는 응용프로그램이 그 동작을 완료하였을 때 다수의 클래스로더 중 한 개 이상을 도달불가이게 하는, 이상의 단계를 포함하는 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서, 다수의 클래스로더 중 한 개 이상을 도달불가이게 하는 단계는, 다수의 클래스로더 중 한 개 이상을 참고중지하는 단계를 포함하는 것을 특징으로 하는 방법.
  19. 제 17 항에 있어서, 상기 방법은, 도달불가인 클래스로더에 의해 참고된 클래스들을 삭제하기 위해 가비지 수집을 실행하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  20. 응용프로그램과 관련된 클래스들을 로딩 및 언로딩하는 방법으로서, 상기 방법은,
    - 응용프로그램이 로딩되는 지를 나타내는 로드 신호를 수신하고,
    - 응용프로그램에 대한 클래스로더를 구축하며, 이 때 상기 클래스로더는 응용프로그램과 관련된 클래스를 로딩하도록 구성되며,
    - 응용프로그램이 시작되는 지를 나타내는 시작 신호를 수신하고,
    - 클래스로더가 한 개 이상 클래스에 대한 기준을 유지하도록 클래스로더를 이용하여 응용프로그램과 관련된 한 개 이상 클래스를 로딩하며,
    - 클래스로더가 도달불가가 되도록 응용프로그램에 대한 클래스로더를 참고중지시키는, 이상의 단계를 포함하는 것을 특징으로 하는 방법.
  21. 제 20 항에 있어서, 클래스로더를 구축하는 것은 로드 신호를 수신함에 따라 실행되고, 클래스로더를 이용하여 응용프로그램과 관련된 한 개 이상 클래스를 로딩시키는 것은 시작 신호 수신에 따라 실행되는 것을 특징으로 하는 방법.
  22. 제 20 항에 있어서, 상기 방법은 응용프로그램이 중단되는 지를 나타내는 중지 신호를 수신하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  23. 제 22 항에 있어서, 중지 신호를 수신할 때 클래스로더를 참고중지시키는 단계가 실행되는 것을 특징으로 하는 방법.
  24. 제 20 항에 있어서, 응용프로그램 실행이 완료될 때, 또는 클래스로더 구축을 책임진 프로그램 관리자에 의해 응용프로그램 실행이 중단될 때, 클래스로더를 참고중지하는 단계가 실행되는 것을 특징으로 하는 방법.
  25. 한 개 이상 응용프로그램과 관련된 클래스를 로딩하는 방법으로서, 상기 방법은,
    a) 응용프로그램에 대한 클래스로더를 구축하도록 프로그램 관리자를 구축하고, 응용프로그램 실행이 완료되거나 응용프로그램 실행이 중단될 때 구축된 클래스로더를 참고중지시키도록 프로그램 관리자를 구축하며, 이때 클래스로더는 응용프로그램과 관련된 클래스를 로딩시키는 역할을 하며,
    b) 응용프로그램을 수신하며,
    c) 프로그램 관리자를 이용하여 수신된 응용프로그램에 대한 클래스로더를 구축하고,
    d) 클래스로더가 한 개 이상 클래스에 대한 기준을 유지하도록, 클래스로더를 이용하여 응용프로그램과 관련된 한 개 이상 클래스를 로딩시키는, 이상의 단계를 포함하는 것을 특징으로 하는 방법.
  26. 제 25 항에 있어서, 상기 방법은,
    - 클래스로더가 도달불가이도록 프로그램 관리자를 이용하여 응용프로그램에 대한 클래스로더를 참고중지시키는, 이상의 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  27. 제 25 항에 있어서, 상기 방법은,
    - 수신된 각각의 응용프로그램에 대해 상기 단계 b), c), d)를 반복하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  28. 제 27 항에 있어서, 응용프로그램 실행이 완료될 때 또는 응용프로그램 실행이 중단될 때 응용프로그램과 관련된 클래스로더를 참고 중지시키는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  29. 한 개 이상 응용프로그램과 관련된 클래스를 로딩 및 언로딩시키는 시스템으로서,
    상기 시스템은 다수의 클래스로더와 프로그램 관리자를 포함하며,
    상기 다수의 클래스로더 중 각각의 클래스로더는 다수의 응용프로그램 중 하나와 관련된 클래스를 로딩시키도록 구성되고,
    상기 프로그램 관리자는 다수의 클래스로더 중 하나를 이용하여 다수의 응용프로그램 중 하나와 관련된 클래스들을 로딩시키며, 상기 프로그램 관리자는 지정 조건에 따라 다수의 클래스로더 중 하나를 참고 중지시키는, 이상의 사항을 특징으로 하는 시스템.
  30. 한 개 이상 응용프로그램과 관련된 클래스들을 로딩하는 시스템으로서,
    상기 시스템은 메모리와 프로세서로 구성되고,
    상기 프로세서는 메모리와 연계하여 응용프로그램에 대한 클래스로더를 구축하도록 프로그램 관리자를 구현하며, 상기 클래스로더는 응용프로그램과 관련된 클래스를 로딩시키며, 응용프로그램 실행이 완료되거나 프로그램 관리자에 의해 응용프로그램 실행이 중단될 때 구축된 클래스로더를 참고중지시키도록 프로그램 관리자가 동작하는, 이상의 사항을 특징으로 하는 시스템.
  31. 제 30 항에 있어서, 상기 시스템은 제 1 응용프로그램과 관련된 클래스를 로딩시키기 위한 제 1 클래스로더를 추가로 포함하는 것을 특징으로 하는 시스템.
  32. 제 31 항에 있어서, 프로그램 관리자가 제 1 클래스로더와 링크되는 것을 특징으로 하는 시스템.
  33. 제 31 항에 있어서, 상기 시스템은 제 1 응용프로그램과 관련된 제 1 세트의 클래스를 저장하는 메모리를 추가로 포함하며, 제 1 클래스로더는 제 1 세트의 클래스와 링크되는 것을 특징으로 하는 시스템.
  34. 제 30 항에 있어서, 상기 시스템이 디지털 텔레비전인 것을 특징으로 하는 시스템.
  35. 제 30 항에 있어서, 상기 시스템이 디지털 텔레비전 수신기인 것을 특징으로 하는 시스템.
  36. 한 개 이상 응용프로그램과 관련된 클래스들은 로딩 및 언로딩하는 디지털 텔레비전 수신기로서,
    이 시스템은 다수의 클래스로더와 한 개의 프로그램 관리자를 포함하며,
    다수의 클래스로더 각각은 다수의 응용프로그램 중 하나와 관련된 클래스들을 로딩시키고,
    상기 프로그램 관리자는 다수의 클래스로더 중 하나를 이용하여 다수의 응용프로그램 중 하나와 관련된 클래스를 로딩시키고 지정 조건에 따라 다수의 클래스로더 중 하나를 참고 중지시키는, 이상의 단계를 포함하는 것을 특징으로 하는 디지털 텔레비전 수신기.
  37. 디지털 텔레비전에서 한 개 이상 응용프로그램과 관련된 클래스들을 로딩하는 시스템으로서,
    상기 시스템은 메모리와 프로세서를 포함하고,
    상기 프로세서는 메모리와 연계해 프로그램 관리자를 운용하여 응용프로그램에 대한 클래스로더를 구축하고, 상기 클래스로더는 응용프로그램과 관련된 클래스를 로딩시키며, 응용프로그램 실행이 완료되거나 응용프로그램 실행이 프로그램 관리자에 의해 중단될 때 구축된 클래스로더를 참고중지시키도록 프로그램 관리자가 작동하는, 이상의 사항을 특징으로 하는 디지털 텔레비전 시스템.
  38. 응용프로그램과 관련된 클래스들을 프로세서로 하여금 로딩 및 언로딩시키는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은,
    - 컴퓨터 판독 명령을 저장하는 컴퓨터 판독 매체,
    - 응용프로그램과 관련된 클래스들을 로딩시키는, 응용프로그램에 대한 클래스로더를 구축하기 위한 명령,
    - 클래스로더가 한 개 이상 클래스에 대한 기준을 유지하도록 응용프로그램과 관련된 한 개 이상 클래스를 로딩시키는 클래스로더를 이용하는 명령,
    - 클래스로더가 도달불가이도록 응용프로그램에 대한 클래스로더를 참고중지시키는 명령의 이상 네가지 사항을 특징으로 하는 컴퓨터 프로그램 제품.
  39. 한 개 이상 응용프로그램과 관련된 클래스들을 프로세서로 하여금 로딩시키는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은,
    - 컴퓨터 판독 명령을 저장하는 컴퓨터 판독 매체,
    - 응용프로그램에 대한 클래스로더를 구축하고 응용프로그램 실행이 완료되거나 응용프로그램 실행이 중단될 때 구축된 클래스로더를 참고중지시키도록 프로그램 관리자를 구축하는 명령, 이때 클래스로더는 응용프로그램과 관련된 클래스들을 로딩시키며,
    - 수신한 응용프로그램에 대한 클래스로더를 구축하도록 프로그램 관리자를 이용하는 명령,
    - 클래스로더가 한 개 이상 클래스에 대한 기준을 유지하도록 응용프로그램과 관련된 한 개 이상 클래스를 로딩하도록 클래스로더를 이용하는 명령,
    - 클래스로더가 도달불가이도록 응용프로그램에 대한 클래스로더를 참고중지시키는 명령의 이상의 사항을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020027000225A 1999-07-13 2000-07-13 개별 클래스로더 구현을 위한 방법 및 장치 KR20020035558A (ko)

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
PCT/US2000/019233 WO2001004744A2 (en) 1999-07-13 2000-07-13 Methods and apparatus for implementing individual class loaders

Publications (1)

Publication Number Publication Date
KR20020035558A true KR20020035558A (ko) 2002-05-11

Family

ID=26841023

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027000225A KR20020035558A (ko) 1999-07-13 2000-07-13 개별 클래스로더 구현을 위한 방법 및 장치

Country Status (10)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489148B1 (en) 2018-06-22 2019-11-26 TmaxSoft Co., Ltd. Unnecessary resource recognition and release plan in application hot deploy on distributed system
US10545754B2 (en) 2018-06-22 2020-01-28 TmaxSoft Co., Ltd. Application hot deploy method to guarantee application version consistency and computer program stored in computer readable medium therefor

Families Citing this family (27)

* 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
CA2479526C (en) 2002-03-20 2015-11-17 Research In Motion Limited System and method of secure garbage collection on a mobile device
US8042189B2 (en) 2002-03-20 2011-10-18 Research In Motion Limited System and method to force a mobile device into a secure state
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 キヤノン株式会社 サービス提供システム及びサービス提供装置
US20060179465A1 (en) * 2003-07-24 2006-08-10 Koninklijke Philips Electroncs N.V. Handling feature availability in a broadcast
KR20070063571A (ko) * 2004-09-30 2007-06-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 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
EP3693851B1 (en) * 2017-10-09 2023-01-11 Huawei Technologies Co., Ltd. Class unloading method and electronic device

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
US6430564B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java data manager for embedded device
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489148B1 (en) 2018-06-22 2019-11-26 TmaxSoft Co., Ltd. Unnecessary resource recognition and release plan in application hot deploy on distributed system
US10545754B2 (en) 2018-06-22 2020-01-28 TmaxSoft Co., Ltd. Application hot deploy method to guarantee application version consistency and computer program stored in computer readable medium therefor

Also Published As

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

Similar Documents

Publication Publication Date Title
US6701334B1 (en) Methods and apparatus for implementing individual class loaders
US6874145B1 (en) Methods and apparatus for implementing an application lifecycle design for applications
EP1194840B1 (en) Digital television receiver for managing execution of an application according to an application lifecycle
US20060225107A1 (en) System for running applications in a resource-constrained set-top box environment
US7937717B2 (en) Method and apparatus enabling multiple application sharing of classes
US20020073218A1 (en) Stream device management system for multimedia clients in a broadcast network architecture
US20060026379A1 (en) Effective memory management method and device in object-oriented application
US6799319B2 (en) Method and apparatus for application packages and delegate packages to adopt and export standard execution state machine interfaces
US7257812B1 (en) Methods and apparatus for managing an application
US8914607B2 (en) Broadcast receiving apparatus and memory managing method thereof
US20130093778A1 (en) Display apparatus and method for controlling the same
CN1820251A (zh) 用于执行软件应用的方法
KR100691120B1 (ko) 메모리 에러 관리를 위한 미들웨어 및 메모리 에러 관리방법
US20080209453A1 (en) System and Method for Reducing the Start-up Time of Mhp Applications
JP4303884B2 (ja) モデム制御
KR100810854B1 (ko) 오류상황을 처리하기 위한 미들웨어를 갖는 데이터 방송 수신기 및 그의 동작방법
López et al. A MHP Receiver over RT-Linux for Digital TV.
KR20100056173A (ko) 화면 제어 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application