KR20010083781A - 메모리 요건을 줄인 프로그램 코드 실행 장치 - Google Patents

메모리 요건을 줄인 프로그램 코드 실행 장치 Download PDF

Info

Publication number
KR20010083781A
KR20010083781A KR1020007009841A KR20007009841A KR20010083781A KR 20010083781 A KR20010083781 A KR 20010083781A KR 1020007009841 A KR1020007009841 A KR 1020007009841A KR 20007009841 A KR20007009841 A KR 20007009841A KR 20010083781 A KR20010083781 A KR 20010083781A
Authority
KR
South Korea
Prior art keywords
qualifying
entities
memory
objects
class
Prior art date
Application number
KR1020007009841A
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 KR20010083781A publication Critical patent/KR20010083781A/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
    • 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)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

자바 가상 머신(2)은 자바 바이트 코드를 실행하는 실행 엔진과 메모리 관리 시스템(14)을 포함한다. 메모리 관리 시스템(14)은 자바 프로그램의 현 상태로부터 동달 가능하지 않은 오브젝트들을 제거하기 위해 불필요 정보 수집을 실행한다. 종래 기술의 메모리 관리 시스템에서는, 클래스 한정을 나타내는 오브젝트들은 클래스 오브젝트를 로딩한 클래스 로더 오브젝트가 도달 가능하지 않다면 메모리로부터 결국 제거된다. 본 발명에 따르면, 메모리 관리 시스템(14)은 클래스 로더가 여전히 도달 가능할지라도 프로그램의 현 상태에 도달될 수 있는 실증된 오브젝트들을 갖지 않는 클래스들을 제거하도록 구성된다. 이것은 실질적인 메모리의 절약을 가져온다. 바람직하게, 클래스 한정을 나타내는 오브젝트들은 더 이상 실증된 오브젝트들이 없다면 클래스 한정이 메모리로부터 삭제될 수 있다는 것을 신호할 수 있는 방법을 갖는다.

Description

메모리 요건을 줄인 프로그램 코드 실행 장치{Arrangement for executing program code with reduced memory requirements}
이러한 장치는 팀 린드홈과 프랭크 옐린에 의한, 출판물 "The JavaTMVirtual Machine Specification"에 공지되어 있으며. 그것은 Sun 웹싸이트로부터 이용할 수 있고 1996년 9월 제 1판인 인쇄된 위 출판 서적으로부터 변환된 것이다.
최근에, 자바 플랫폼의 인기는 실질적으로 증가되어 왔다. 자바는 자바 가상 머신상에서 처리되는 바이트 코드에 컴파일링되는 자바 언어를 포함하는 플랫폼이다.
가상 머신상에서 처리되는 바이트 코드의 사용은 하드웨어와 동작 시스템의 결합에 대해 가상 머신이 존재한다면 그와 같은 결합마다에 컴파일링된 바이트 코드가 실행될 수 있다는 이점을 갖는다.
자바 언어는 오브젝트 지향되며, 이것은 프로그램 오브젝트의 실행이 한정 엔터티에 따라 발생되는 동안, 자바 언어내에서 클래스 또는 인터페이스가 될 수 있다는 것을 의미한다. 오브젝트가 발생될 수 있기 전에, 필요한 한정 엔터티(클래스 또는 인터페이스)는 메모리에 우선 로딩되어야 한다. 이 로딩은 한정 로딩 수단에 의해 이루어지며, 그것은 자바 언어에서는 클래스 로더라고 불린다. 로딩 한정 엔터티의 서로 다른 방법을 위한 서로 다른 한정 로딩 수단이 존재할 수 있다. 자바에서는 TCP/IP에 기초한 네트워크로에서 디스크로부터 클래스를 로딩 하거나 MPEG-2 전송 스트림으로부터 그들을 로딩하기 위한 서로 다른 클래스 로더가 있을 수 있다.
자바 가상 머신은 더 이상 필요하지 않은 오브젝트와 클랙스를 자동으로 제거하기 위해 불필요 정보 수집을 실행하는 메모리 관리 시스템을 갖는다.
TV와 셋톱 박스 등의 가전 제품에 자바가 사용되는 경우, 단지 메모리 자원 의 한정된 양만이 이용될 수 있다. 현재, 가전 제품용 자바의 사용은 한정된 양의 메모리가 이용가능하기 때문에 상당히 곤란하다.
본 발명은 프로그램 코드를 실행하는 장치에 관한 것으로, 상기 장치는 적어도 2개의 한정 엔터티를 메모리에 로딩하는 한정 로딩 수단을 포함한다. 상기 한정 엔터티는 상기 한정 로딩 수단과 합체되고, 상기 장치는 상기 한정 엔터티에 따라 오브젝트를 발생하는 오브젝트 발생 수단을 더 포함한다.
또한, 본 발명은 프로그램 코드를 실행하는 방법 및 프로그램 코드를 실행하는 방법을 실행하는 컴퓨터 프로그램을 지닌 유형의 매체에 관한 것이다.
도 1은 본 발명이 사용될 수 있는 자바 가상 머신의 구조를 도시한 도면.
도 2는 관련 클래스들과 실증된 오브젝트들을 클래스 로더를 도시한 도면.
도 3은 하나의 클래스 로더가 실증된 오브젝트를 갖는 클래스를 갖는, 2개의 클래스 로더를 도시한 도면.
도 4는 도 1에 따라 메모리 관리 시스템(14)에 사용하기 위한, 본 발명에 따른 프로그램의 흐름도.
본 발명의 목적은 필요한 양의 메모가 감소되는, 서론에 따른 장치를 제공하는데 있다.
상기 목적을 달성하기 위해, 본 발명에 따른 장치는, 상기 장치는 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 메모리 관리 수단을 포함하며, 한정 로딩 수단은 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 한다.
메모리로부터 더이상 관련 오브젝트들을 갖지 않는 엔터티들을 제거함으로써, 실질적인 메모리 양은 제한이 없게 될 수 있어, 그 결과 상기 장치는 종래 기술에 따른 장치보다 더 작은 메모리를 필요로 하게 된다.
본 발명은 자바 가상 머신의 본 명세서에서 만일 한정 로딩 수단이 더 이상 도달가능하지 않다면 한정 엔터티가 단지 제거될 것이라고 규정되어 있는 인식에 기초한다. 이 것은 상기 한정 로딩 수단에 의해 로딩된 한정 엔터티에 더 이상 아무런 오브젝트가 존재하지 않는다는 것을 의미한다.
이것은 다음의 예에서 보다 명확해질 것이다. 만일 클래스 로더(한정 로딩 수단)이 2개의 클래스(한정 엔터티)를 로딩한다면, 관련 오브젝트를 갖지 않는 첫번째 로딩된 클래스는 다른 클래스가 여전히 관련 오브젝트를 갖는 한 메모리로부터 더 이상 제거되지 않을 것이다. 이 결과 클래스들은 메모리에서 오랫동안 불필요하게 된다.
본 발명에 따른 진보성 사상을 사용함으로써, 클래스들은 그들이 더 이상 필요하지 않을 때 언로딩(unloading) 될 것이다.
본 발명의 일 실시예는, 상기 장치는 한정 엔터티들을 제거 가능한 것으로지정하는 지정 수단을 포함하고; 메모리 관리 수단은 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하도록 구성되고, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 로딩 수단에 대응하는 한정 엔터티들을 메모리로부터 제거하도록 구성되는 것을 특징으로 한다.
관련 오브젝트들을 갖지 않는 한정 엔터티들이 항상 메모리로부터 제거된다는 것은 바람직하지 않다는 상황이 있을 수 있다. 이것은 클래스 변수가 클래스 실행 방법에 의해 변경되는 경우일 수 있다. 만일 그와 같은 클래스가 메모리로부터 제거되고, 다시 필요로 할 때 재로딩되면, 클래스 변수값은 변경될 것이다.
한정 엔터티들이 제거 가능한 것으로서 지정될 때 관련 오브젝트 없이 한정 엔터티들을 단지 제거함으로써, 응용 프로그램은 한정 엔터티를 제거 가능한 또는 제거 가능하지 않은 것으로 지정함으로써 이러한 제거를 제어할 수 있다.
본 발명의 또 다른 실시예는 상기 장치는 제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 저장 수단을 포함하는 것을 특징으로 한다.
관련 오브젝트들은 갖지 않을지라도 클래스가 로딩될 수 없는지 여부를 메모리 관리 수단에 통신하는 용이한 방법은 이 클래스가 제거 가능한지 여부의 지시와 함께 모든 로딩된 클래스들이 기록되는 테이블을 저장하는 것이다.
이제 도면을 참조하여 본 발명을 설명한다.
도 1에 따른 자바 가상 머신에서, 클래스 관리 서브 시스템(6)은 로컬 하드 드라이버나 네트워크로부터 메모리에 존재하지 않는 클래스들을 로딩하도록 구성된다.
클래스 관리 서브시스템(6)에 의해 로딩될 클래스들은 코드 검공기(4)에 의해 우선 점검된다. 통상적으로 네트워크로부터 로딩된 클래스들만이 공지되지 않은 덜 신뢰할 수 있는 소스로부터 그들이 존재할 수 있기 때문에 확인된다. 클래스들을 로딩할 때에 신택스 점검이 실행된다. 또한, 로딩된 클래스의 "시맨틱(semantic)" 일관성이 점검된다. 이것은 예를 들어 클래스에 정의된 상수가 그들의 유형과 일관되는지 여부의 점검을 포함한다. 예를 들어 스트링으로서 정의된 상수가 필요한 스트링인지 여부가 점검된다.
실행 시간동안 바이트 코드 확인이 실행된다. 이것은 스택의 일관성의 점검, 즉, 스택 오버플로 및 언더플로가 발생하지 않는다는 확인을 포함한다. 또한,그것은 변수에 놓인 데이터의 유형이 상기 변수의 선언에 대응하는지 여부를 점검하는 것을 포함한다.
실행 엔진(8)은 확인된 바이트 코드를 실행하도록 구성된다. 이 실행에 있어서, 실행 엔진은 3개의 이용가능한 서브 시스템, 예를 들어 디스크나 네트워크로부터 실제 파일의 로딩 등과 같은 소정의 태스크를 실행하기 위해 작동 시스템을 발동하거나, 디스플레이 장치에 그래픽 요소를 디스플레이하는 시스템 호출 서브시스템(10)을 갖는다. 더욱이, 가상 머신은 개별 쓰레드(thread)를 발생하는데 사용된 쓰레드 시스템(12)를 포함한다. 쓰레드 서브시스템(12)는 또한 개별 쓰레드를 동기화하도록 구성된다.
또한, 자바 VM은 메모리로부터 안 쓰이는 항목을 자동으로 제거하는 불필요 정보 수집기를 포함하는 메모리 관리 서브시스템(14)을 포함한다. 자바 VM의 선(Sun) 구현에서는, 소위 "마크(mark)와 스윕(sweep)" 불필요 정보 수집 알고리즘이 사용된다. 이러한 유형의 불필요 정보 수집 알고리즘은 종래 기술에 숙련된 기술자에게 잘 공지되어 있다. 이 알고리즘에서, 힙(heap)에 존재하는 각 오브젝트는 소위 마크 비트를 가진다. 불필요 정보 수집 처리는 힙에 존재하는 모든 오브젝트에 대한 마크 비트의 리세트로 시작한다. 이어서, 모든 필드와 변수는 참고를 위해 힙내의 오브젝트에 대해 검사된다. 필드 또는 변수에 의해 참고되는 힙내의 각 오브젝트에 대해, 마크 비트가 세트된다. 최종적으로, 불필요 정보 수집기는 힙을 스윕하고, 마크 비트가 세트되지 않은 오브젝트에 의해 사용된 메모리 영역을 이용한다.
최종적으로, 자바 VM은 C, C++, 또는 어셈블러로 씌여진 함수를 사용할 수 있는 네이티브 메써드 인터페이스 서브시스템(16)을 포함한다. 이것은 현재의 라이브러리를 재사용하거나 또는 실행을 개선하기 위해 최적화된 어셈블러 루틴을 사용할 수 있도록 하는데 편리할 것이다.
도 2에 따른 도면에서, 도 1에 따른 자바 VM의 힙에 존재하는 오브젝트들이 표시되어 있다. 도 2는 제1 클래스(22)와 제2 클래스(22)를 도시하며, 이들은 클래스 로더(18)에 의해 로딩된다. 클래스(22)로부터 하나의 오브젝트(24)가 실증되고, 클래스(20)는 실증된 오브젝트를 갖지 않는다.
종래 기술에 따른 불필요 정보 수집 알고리즘을 이용할 때는 어떠한 오브젝트(18,20,22,24)도 불필요 정보 수집되지 않을 것이다. 왜냐하면, 클래스 로더(18)는 여전히 도달 가능(상기 클래스 로더(18)에 의해 로딩된 클래스로부터 실증된 오브젝트(24)를 가짐)하기 때문이다. 본 발명에 따른 장치에서는, 클래스(20)는 실증된 오브젝트들을 갖지 않기 때문에 메모리로부터 제거될 수 있다. 바람직하게, 클래스가 실증된 오브젝트들을 더이상 갖지 않을 때 언로딩될 수 있는지 여부를 나타내기 위해 클래스(Class)에 부가되는 방법이 있다. 그와 같은 방법의 신택스는 "EnableClassUnloading(class)"일 수 있다. 이 방법은 이 클래스가 삭제가능하다는 것을 나타내는 관련 클래스의 클래스 헤더내에 비트를 세트할 수 있다. 대안적으로, 모든 삭제가능한 클래스들이 등록되어 있는 상기 VM내에 테이블이 구성될 수 있다.
도 3에서, 도 1에 따른 자바 VM의 힙에 존재하는 또 다른 오브젝트 그룹이나타나 있다. 도 3은 제1 클래스(32)와 제2 클래스(34)를 로딩한 제1 클래스 로더(36)를 도시한다. 클래스(32,34)는 모두 도달 가능하지 않다. 이들 클래스(32,34)와 그들의 클래스 로더(36)는 클래스 로더(36)가 도달 가능하지 않기 때문, 상기 방법 EnableClassUnloading이 호출되는지 그렇지 않은지 여부에 상관없이 메모리로부터 제거될 것이다.
또한, 도 3은 오브젝트(30)이 실증되는 클래스(28)를 로딩한 제2 클래스 로더(26)를 도시하고 있다. 클래스(28)는 하나의 도달 가능한 오브젝트(30)를 가진다. 따라서, 클래스 로더(26), 클래스(28), 오브젝트(30)는 언로드(메모리로부터 제거) 되지 않을 것이다.
자바 1.2 SDK에서 기준 오브젝트의 개념이 도입됨으로써 결과적으로 오브젝트가 강하고 약하게 도달 가능하게 된다는 것을 발견할 수 있다. 종래 기술의 불필요 정보 수집기는 강하게 도달 가능하지 않은 모든 오브젝트들을 제거한다. 기준 오브젝트들이 사용될 때, 도 2 및 도 3을 참조하여 상기 설명에서 사용된 바와 같은 개념 "도달 가능한"은 강하게 도달 가능하다는 것을 의미하는 것을 발견할 수 있다.
도 4에 따른 흐름도에서, 번호 명령은 다음의 의미를 갖는다.
번호 제명 의미
40 BEGIN 불필요 정보 수집기의 실행이 시작됨
42 FIND REACHABLE OBJECT 도달 가능한 오브젝트가 발견
44 MARK REACHABLE OBJECT 상기 오브젝트는 도달 가능한 것으로 마크
46 ALL OBJECT DONE? 모든 오브젝트가 검사되었는지 점검
48 TAKE OBJECT 새로운 오브젝트가 불필요 정보 수집을 위해 사용
49 IS OBJECT MARKED? 상기 오브젝트가 마크되었는지 점검
50 IS OBJECT A CLASS? 상기 오브젝트가 클래스인지 점검
52 IS OBJECT DELETABLE? 상기 오브젝트가 삭제 가능한지 점검
54 FIND CLASS LOADER 현재 오브젝트에 대응하는 클래스 로더가 위치됨
56 IS CLASS LOADER MARKED? 상기 클래스 로더가 마크되었는지 점검
58 DELETE OBJECT 상기 오브젝트를 메모리로부터 삭제
60 ALL OBJECT DONE? 모든 오브젝트가 처리되었는지 점검
62 END 불필요 정보 수집기의 실행이 종료됨
도 4에 따른 프로그램의 명령(40)에서, 프로그램이 시작되고, 필요한 초기화가 이루어진다. 명령(42)에서, 프로그램의 현재 상태에 대응하는 필드와 변수로부터 시작하여 도달 가능한 오브젝트가 탐색된다. 만일 도달 가능한 오브젝트가 발견되면, 상기 오브젝트는 명령(44)에서 마크된다. 명령(46)에서, 모든 도달 가능한 오브젝트가 발견되었는지 여부가 점검된다. 이것은 VM의 현재 상태에서의 모든 필드와 변수가 대응하는 오브젝트에 대해 트레이스한 경우이다. 모든 도달 가능한 오브젝트가 아직 발견되지 않으면, 프로그램은 다음 도달 가능한 오브젝트를 발견하기 위한 명령(42)으로 점프한다.
모든 가능한 도달 가능한 오브젝트가 발견되면, "마크와 스윕"의 "상태 마크" 불필요 정보 수집 알고리즘이 종료되고, "상태 스윕"이 시작된다.
명령(48)에서, 힙으로부터의 오브젝트가 검사를 위해 선택된다. 명령(49)에서, 상기 오브젝트가 마크되었는지 점검된다. 상기 오브젝트가 마크되었다면, 메모리로부터 삭제되지 않아야 하고, 프로그램은 명령(60)으로 이어진다. 상기 오브젝트가 마크되지 않으면, 명령(50)에서, 상기 오브젝트가 클래스인지 여부가 점검된다. 이것은 예를 들어 상기 오브젝트와 관련한 오브젝트 헤더에서의 필드로부터 결정될 수 있다. 만일 상기 오브젝트가 클래스가 아니면, 프로그램은 상기 오브젝트가 메모리로부터 삭제되는 명령(58)으로 이어진다. 이어서, 프로그램은 명령(60)으로 이어진다.
오브젝트가 클래스이면, 명령(52)에서, 클래스가 삭제 가능한 것으로 지정되어 있는지 여부가 점검된다. 이것은 오브젝트 헤더에서 "삭제 가능한 비트"가 "EnableClassUnloading" 법을 발동함으로써 세트되었는지 여부를 점검함으로써 이루어진다. 대안적으로, 모든 삭제 가능한 클래스를 포함하는 테이블이 고려되는 것이 모두 가능해진다. 만일 오브젝트가 삭제 가능하면, 명령(58)에서, 클래스 오브젝트는 삭제된다.
만일 클래스가 삭제 가능한 것으로 마크되지 않으면, 명령(54)에서, 상기 클래스를 로딩한 클래스 로더가 탐색된다. 이것은 로딩된 클래스와 그들의 관련 클래스 로더를 포함하는 VM내의 테이블을 판독함으로써 이루어질 수 있다. 클래스로더를 발견한 후, 명령(56)에서 클래스 로더 오브젝트가 마크되는지 여부가 점검된다. 만일 클래스 로더가 마크되지 않으면, 명령(58)에서, 상기 클래스 오브젝트는 삭제된다. 만일 클래스 로더가 마크되면, 상기 클래스는 메모리로부터 삭제되지 않으며, 프로그램은 명령(60)으로 이어진다.
명령(60)에서, 힙내의 모든 오브젝트가 처리되었는지 여부가 점검된다. 만일 모두 처리되었으며, 프로그램은 명령(62)에서 종료된다. 그렇지 않으며, 프로그램은 힙내의 다음 오브젝트를 처리하기 위해 명령(48)으로 이어진다.

Claims (9)

  1. 2개 이상의 한정 엔터티를 메모리에 로딩하는 한정 로딩 수단 및 상기 한정 엔터티에 따라 오브젝트들을 발생하는 오브젝트 발생 수단을 포함하며, 상기 한정 엔터티가 상기 한정 로딩 수단과 합체되는, 프로그램 코드 실행 장치에 있어서,
    관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 메모리 관리 수단을 포함하며, 상기 한정 로딩 수단은 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 하는 프로그램 코드 실행 장치.
  2. 제 1 항에 있어서,
    한정 엔터티들을 제거 가능한 것으로 지정하는 지정 수단을 포함하고; 상기 메모리 관리 수단은 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하도록 구성되고, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 로딩 수단에 대응하는 한정 엔터티들을 메모리로부터 제거하도록 구성되는 것을 특징으로 하는 프로그램 코드 실행 장치.
  3. 제 2 항에 있어서,
    제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 저장 수단을 포함하는 것을 특징으로 하는 프로그램 코드 실행 장치.
  4. 한정 로딩 엔터티에 의해 2개 이상의 한정 엔터티를 메모리에 로딩하는 단계 및 상기 한정 엔터티에 따라 오브젝트들을 발생하는 단계를 포함하며, 상기 한정 엔터티가 상기 한정 로딩 엔터티와 합체되는, 프로그램 코드 실행 방법에 있어서,
    관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하며, 상기 한정 로딩 엔터티는 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 하는 프로그램 코드 실행 방법.
  5. 제 4 항에 있어서,
    한정 엔터티들을 제거 가능한 것으로 지정하는 단계와, 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계와, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하는 것을 특징으로 하는 프로그램 코드 실행 방법.
  6. 제 5 항에 있어서,
    제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 단계를 포함하는 것을 특징으로 하는 프로그램 코드 실행 방법.
  7. 프로그램 코드를 실행하는 방법을 실행하기 위한 컴퓨터 프로그램을 지닌 유형의 매체로서, 상기 방법은 한정 로딩 엔터티에 의해 2개 이상의 한정 엔터티를 메모리에 로딩하는 단계 및 상기 한정 엔터티에 따라 오브젝트들을 발생하는 단계를 포함하며, 상기 한정 엔터티는 상기 한정 로딩 엔터티와 합체되는, 유형의 매체에 있어서,
    상기 방법은 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하며, 상기 한정 로딩 엔터티는 관련 오브젝트들을 여전히 갖는 한정 엔터티들과 합체되는 것을 특징으로 하는 유형의 매체.
  8. 제 7 항에 있어서,
    상기 방법은 한정 엔터티들을 제거 가능한 것으로 지정하는 단계와, 상기 한정 엔터티가 제거 가능한 것으로 지정될 때 관련 오브젝트들을 갖지 않는 한정 엔터티들을 메모리로부터 제거하는 단계와, 관련 오브젝트들을 갖지 않는 한정 엔터티들에만 합체되는 한정 엔터티들을 메모리로부터 제거하는 단계를 포함하는 것을 특징으로 하는 유형의 매체.
  9. 제 8 항에 있어서,
    상기 방법은 제거 가능한 것으로 지정되는 한정 엔터티들의 확인을 저장하는 단계를 포함하는 것을 특징으로 하는 유형의 매체.
KR1020007009841A 1999-01-06 1999-12-20 메모리 요건을 줄인 프로그램 코드 실행 장치 KR20010083781A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP99200015 1999-01-06
EP99200015.8 1999-01-06
PCT/EP1999/010301 WO2000041079A2 (en) 1999-01-06 1999-12-20 Arrangement for executing program code with reduced memory requirements

Publications (1)

Publication Number Publication Date
KR20010083781A true KR20010083781A (ko) 2001-09-01

Family

ID=8239783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007009841A KR20010083781A (ko) 1999-01-06 1999-12-20 메모리 요건을 줄인 프로그램 코드 실행 장치

Country Status (8)

Country Link
US (1) US6681381B1 (ko)
EP (1) EP1068572A2 (ko)
JP (1) JP2002534737A (ko)
KR (1) KR20010083781A (ko)
CN (1) CN1139032C (ko)
BR (1) BR9908574A (ko)
CA (1) CA2322950A1 (ko)
WO (1) WO2000041079A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2376191T3 (es) * 2000-05-25 2012-03-09 Oracle America, Inc. Método y aparato para crear métodos nativos eficaces que extienden un intérprete de códigos de byte.
US7082597B2 (en) 2001-06-20 2006-07-25 Sun Microsystems, Inc. Representation of objects in a Java programming environment
US7036120B2 (en) 2001-07-31 2006-04-25 Sun Microsystems, Inc. Two tier clusters for representation of objects in Java programming environments
US7114152B2 (en) * 2002-01-08 2006-09-26 International Business Machines Corporation Method, apparatus, and program to determine the mutability of an object at loading time
JP2005018425A (ja) * 2003-06-26 2005-01-20 Matsushita Electric Ind Co Ltd プログラム変換方法、プログラムおよび記憶媒体
KR100626368B1 (ko) * 2003-08-25 2006-09-20 삼성전자주식회사 가비지 콜렉션 벤치마킹 방법
US7263532B2 (en) * 2003-09-23 2007-08-28 Microsoft Corporation Region-based memory management for object-oriented programs
DE10351622A1 (de) 2003-11-05 2005-06-23 Giesecke & Devrient Gmbh Beschleunigtes Referenzfinden für eine automatische Speicherbereinigung (Garbage Collection)
US7823137B2 (en) * 2004-10-21 2010-10-26 International Business Machines Corporation Process and implementation for using byte code insertion to modify a class definition to define and use probes for application components
WO2007076629A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Type checking for object-oriented programming languages
US20090199171A1 (en) * 2006-03-01 2009-08-06 Nokia Corporation Code Size Reduction by Outlining Specific Functions in a Library
US8375373B2 (en) * 2010-04-19 2013-02-12 Microsoft Corporation Intermediate language support for change resilience
JP6010961B2 (ja) * 2012-03-27 2016-10-19 日本電気株式会社 データ参照元特定システム及びその特定方法、並びにそのコンピュータ・プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3294326B2 (ja) * 1992-07-09 2002-06-24 株式会社日立製作所 データ処理方法および装置
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5925100A (en) * 1996-03-21 1999-07-20 Sybase, Inc. Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system

Also Published As

Publication number Publication date
US6681381B1 (en) 2004-01-20
CN1292119A (zh) 2001-04-18
JP2002534737A (ja) 2002-10-15
EP1068572A2 (en) 2001-01-17
CA2322950A1 (en) 2000-07-13
WO2000041079A2 (en) 2000-07-13
WO2000041079A3 (en) 2000-11-02
CN1139032C (zh) 2004-02-18
BR9908574A (pt) 2000-11-21

Similar Documents

Publication Publication Date Title
US7516166B2 (en) Resource loading
KR100541174B1 (ko) 로컬화된 메모리 재이용을 가진 데이터 처리기
US6757890B1 (en) Methods and apparatus for enabling local Java object allocation and collection
US6272674B1 (en) Method and apparatus for loading a Java application program
US6542167B1 (en) System and method for flexible software linking
US6820101B2 (en) Methods and apparatus for optimizing garbage collection using separate heaps of memory for storing local objects and non-local objects
EP3198452B1 (en) On-demand loading of dynamic scripting language code for reduced memory usage
US6701520B1 (en) Preventing garbage collection of objects in object oriented computer programming languages
CA2255035C (en) Archiving tool
KR20010083781A (ko) 메모리 요건을 줄인 프로그램 코드 실행 장치
US6584478B1 (en) Transparent garbage collection of resources
CN113296786B (zh) 数据处理方法、装置、电子设备及存储介质
JP2005063449A (ja) オブジェクトからオブジェクトへのJavaネイティブインタフェースマッピングの方法及び装置
US9477496B2 (en) Method and apparatus for loading classes and re-organizing class archives
US6901591B1 (en) Frameworks for invoking methods in virtual machines
US6996813B1 (en) Frameworks for loading and execution of object-based programs
Agesen et al. Finding references in Java stacks
US7096466B2 (en) Loading attribute for partial loading of class files into virtual machines
CN112631621A (zh) 一种依赖包管理方法、装置、服务器及存储介质
KR101249739B1 (ko) 달빅 가상머신이 탑재된 단말기에서 자바 클래스 로딩 방법, 그리고 이를 수행하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US6934726B2 (en) Storing and retrieving of field descriptors in Java computing environments
CN117667108A (zh) 一种基于Flutter单项目生成多App的方法、设备及介质
MXPA00008635A (en) Arrangement for executing program code with reduced memory requirements
Graham The standard interface file concept used in wind tunnel data reduction
Warford Linked Lists

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
NORF Unpaid initial registration fee