KR100772872B1 - 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법 - Google Patents

다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법 Download PDF

Info

Publication number
KR100772872B1
KR100772872B1 KR1020060018282A KR20060018282A KR100772872B1 KR 100772872 B1 KR100772872 B1 KR 100772872B1 KR 1020060018282 A KR1020060018282 A KR 1020060018282A KR 20060018282 A KR20060018282 A KR 20060018282A KR 100772872 B1 KR100772872 B1 KR 100772872B1
Authority
KR
South Korea
Prior art keywords
resource
virtual
application
resources
release
Prior art date
Application number
KR1020060018282A
Other languages
English (en)
Other versions
KR20070088099A (ko
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 삼성전자주식회사
Priority to KR1020060018282A priority Critical patent/KR100772872B1/ko
Priority to US11/652,028 priority patent/US20070203959A1/en
Priority to JP2007040392A priority patent/JP2007226800A/ja
Priority to EP07102946A priority patent/EP1826672A3/en
Publication of KR20070088099A publication Critical patent/KR20070088099A/ko
Application granted granted Critical
Publication of KR100772872B1 publication Critical patent/KR100772872B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/0206Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
    • H04M1/0208Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
    • H04M1/0235Slidable or telescopic telephones, i.e. with a relative translation movement of the body parts; Telephones using a combination of translation and other relative motions of the body parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/0206Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
    • H04M1/0208Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
    • H04M1/0225Rotatable telephones, i.e. the body parts pivoting to an open position around an axis perpendicular to the plane they define in closed position
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 다중 자바 어플리케이션 환경에서 가상의 아이디를 이용하여 자원의 할당 및 해제를 수행함으로써, 자원의 보다 효율적으로 이용할 수 있는 장치 및 그 방법에 관한 것이다.
본 발명의 일 실시예에 따른 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치는, 어플리케이션으로부터 자원 할당 및 자원 해제가 요청되면 운영 체계에게 자원 할당 및 자원 해제를 요청하는 자원 관리부와, 상기 운영 체계로부터 할당된 자원에 대응되는 가상 아이디를 생성하는 가상 아이디 생성부와, 상기 어플리케이션이 상기 가상 아이디를 이용하여 자원 해제를 요청하면, 상기 가상 아이디의 존재 여부를 검색하는 아이디 검색부를 포함한다.
다중 자바 어플리케이션 환경, 자원, 할당, 해제, 가상 아이디

Description

다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치 및 그 방법{Apparatus and method for managing resource using virtual ID under multiple java applications environment}
도 1은 종래의 다중 자바 어플리케이션의 구조를 나타낸 블록도.
도 2는 본 발명의 일 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치에서 어플리케이션에 의하여 자원이 사용되는 예를 나타낸 도면.
도 3은 본 발명의 다른 실시예에 따른 다중 자바 어플리케이션 환경의 구조를 나타낸 블록도.
도 4는 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치의 내부 블록도.
도 5는 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치가 관리하는 테이블의 예를 나타낸 도면.
도 6은 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법 중 자원을 할당하는 과정을 나타낸 순서도.
도 7은 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법 중 자원을 해제하는 과정을 나타낸 순서도.
도 8은 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법 중 모든 자원을 해제하는 과정을 나타낸 순서도.
도 9는 본 발명의 또 다른 실시예에 따라 다중 자바 어플리케이션 환경에서 자원 할당 및 해제를 수행하는 어플리케이션, 자원 관리 인터페이스, 및 운영 체계의 동작을 나타낸 도면.
<도면의 주요 부분에 관한 부호의 설명>
300 : 다중 자바 어플리케이션 310 : 어플리케이션 관리자
340 : 자바 가상 머신 350 : 자원 관리 인터페이스
351 : 가상 아이디 생성부 352 : 저장부
353 : 아이디 검색부 354 : 자원 관리부
355 : 제어부
본 발명은 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치 및 그 방법에 관한 것으로서, 더욱 상세하게는 다중 자바 어플리케 이션 환경에서 가상의 아이디를 이용하여 자원의 할당 및 해제를 수행함으로써, 자원의 보다 효율적으로 이용할 수 있는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치 및 그 방법에 관한 것이다.
자바(Java)는 작성된 코드를 플랫폼 독립적으로 수행하는 객체 지향 프로그래밍 언어이다. 여기서, 플랫폼은 프로그램이 실행되는 하드웨어 또는 운영 체계와 같은 소프트웨어 환경을 말한다. 자바로 작성된 코드는 자바 컴파일러(Java Compiler)에 의해 자바 바이트 코드(Java Byte Code)로 컴파일 되고, 자바 바이트 코드는 다양한 하드웨어 기반 플랫폼에 포팅된 자바 가상 머신(Java Virtual Machine)에 의해 실행된다.
도 1은 종래의 다중 자바 어플리케이션의 구조를 나타낸 블록도 이다.
도 1a에 도시된 바와 같이, 다중 자바 어플리케이션(Multiple Java Applications)(10)은 어플리케이션 관리자(Application Manager)(11), 어플리케이션(Application)(12a, 12b, 12n), 미들웨어(Middleware)(13), 자바 가상 머신(Java Virtual Machine)(14) 및 운영 체계(Operating System)(15)를 포함하여 구성된다. 여기서, 어플리케이션은 자바 어플리케이션(12a, 12b, 12n)을 포함한다.
어플리케이션 관리자(11)는 어플리케이션의 상태를 전환시킴으로써 어플리케이션의 라이프 사이클(Life Cycle)을 관리한다. 예를 들면, OCAP(Open Cable Application Platform), ACAP(Advanced open Cable Application Platform) 등의 미들웨어(13)를 통하여 어플리케이션 관리자(11)는 어플리케이션의 동작을 관리한다.
자바 가상 머신(14)은 어플리케이션에 포함된 클래스를 메모리에 탑재하고 클래스의 수행 코드를 운영 체계(15)의 명령 코드로 전환하며 어플리케이션에 할당된 자원을 관리한다.
자바 가상 머신(14)은 도 1b에 도시된 바와 같이 클래스를 로드하는 클래스 로더(Class Loader)(16), Just-In-Time 컴파일러(Compiler)(17), 인터프리터(Interpreter)(18), 및 수행시간에 리소스 관리를 담당하는 가비지 컬렉터(Garbage Collector:GC)(19)를 포함하여 구성된다.
인터프리터(18)는 클래스의 수행 코드를 실행하기 위한 구성 요소로서 가상 머신 명령어들을 인식하여 명령을 수행하는 역할을 하며, Just-In-Time 컴파일러(17)는 클래스 수행 중 가상 머신 명령어들을 CPU의 기계어로 미리 변환해주어 속도를 향상시키는 기능을 수행한다.
가비지 컬렉터(19)는 가비지 객체(자원을 사용하지 않는 객체)를 찾아내고, 가비지 객체가 사용한 힙 자원을 운영 체계에 반환함으로써 해당 힙 자원이 다른 어플리케이션에 의하여 재사용될 수 있도록 한다.
다시 말해, 자바 플랫폼에서 자원 관리는 가비지 컬렉터(19)에 의하여 수행되는 것으로서, 가비지 컬렉터(19)는 객체(Object)가 참조(reference)되는지 여부에 따라 해당 객체의 자원 할당 또는 자원 해제를 관리하는 것이다. 그런데, 다중 자바 어플리케이션과 같이 라이프 사이클을 가지는 다중 자바 어플리케이션에서 복수개의 어플리케이션이 수행되는 경우 어플리케이션상에서 자원 해제를 위한 작업이 제대로 수행되지 않으면, 어플리케이션이 종료된 상태에서도 가비지 컬렉터(19)는 객체가 실제로 유효(alive)한 상태인지를 확인할 수 없으므로 적절한 자원 해제 를 수행할 수 없다는 문제점이 있다.
한편, 어플리케이션에서 직접 자원을 할당 및 해제하는 경우를 설명한다. 먼저, 어플리케이션에서 자원을 사용하는 경우 자바 가상 머신(14)을 통하여 바로 운영체계(15)로 자원 할당 및 해제를 요청하고, 자원 할당에 성공하게 되면 바로 그 자원을 사용하게 된다. 여기서, 운영체계(15)로부터 자원 할당 및 해제가 실패한 경우에는 해당 작업을 종료한다.
한편, 상기와 같이 어플리케이션이 직접 자원을 해제하는 경우와 달리 자원 해제를 하지 않은 경우에는 객체가 회수될 때, 가비지 컬렉터(19)와 파이널라이즈(finalize)에 의하여 자원이 해제된다.
즉, 가비지 컬렉팅(Garbage collecting)이 시작되면, 가비지 컬렉터(19)는 모든 객체들의 참조 여부를 검사하여 참조되지 않은 객체들을 검사한다. 이때 참조되지 않은 객체들 중 파이널라이즈가 선언된 객체들을 찾는다.
그 다음, 가비지 컬렉터(19)는 파이널라이저(finalizer)가 선언되어 있는 모든 객체(object)들의 파이널라이즈를 수행한 후 파이널라이즈에 의해 추가로 생성될 수 있는 참조되지 않은 객체들을 다시 조사한다. 그 다음, 참조되지 않은 객체들을 모두 해제 시키고 가비지 컬렉터(19)의 동작을 종료한다.
그러나, 자바 어플리케이션에서 명시적으로 자원을 회수하지 않은 경우 사용하던 자원들은 오직 가비지 컬렉터(19)에 의해서만 회수되며, 이에 어플리케이션이 종료된 이후에도 가비지 컬렉터(19)가 동작하지 않았다면 재사용 가능한 자원들이 동작이 끝난 어플리케이션에 의해 선점되어 사용할 수 없다는 문제점이 있다.
한편, 종래의 자원 관리 인터페이스를 통해 자원이 관리되는 예를 설명한다.
먼저, 어플리케이션이 종료될 경우 어플리케이션 관리자(11) 자원 관리 인터페이스에게 해당 어플리케이션의 자원을 해제해 줄 것을 요구하고, 자원 관리 인터페이스는 해당 어플리케이션의 자원을 해제하는 역할을 수행한다.
이 때, 각 어플리케이션이 사용하는 자원들은 각각의 객체들에 의해 유지 및 사용된다. 따라서, 자원 관리 인터페이스는 자원을 가지고 있는 객체와 객체가 속해있는 어플리케이션에 대한 정보를 가지고 있다가 어플리케이션의 종료 시 해당 어플리케이션의 객체들이 가지고 있는 자원들을 호출하여 시스템에게 반납하는 것이 일반적인 방법이다.
그러나, 객체를 통하여 자원을 해제할 경우 JNI 와 같은 방법을 통하여 네이티브(native) 자원을 해제해 주어야 하는데, 이는 스택 머신(stack machine)인 자바의 경우 새로운 스택을 쌓고 진행해야 하는 작업이기 때문에 성능의 저하를 가져올 수 있다. 하지만, 성능 저하를 피하기 위하여 어플리케이션의 ID와 객체가 아닌 자원만 자원 관리 인터페이스가 유지하게 되면 자원 관리 인터페이스가 자원을 해제한 이후에도 객체에는 자원에 대한 정보가 남아 있게 된다.
이에, 어플리케이션 ID와 자원만을 관리하는 자원 관리 인터페이스가 어플리케이션의 종료와 함께 해당 어플리케이션의 자원들을 강제로 운영 체계에 반납할 경우, 운영 체계는 반납 받은 자원들을 다른 어플리케이션에게 재사용할 수 있도록 할당한다.
이때, 가비지 컬렉터가 수행되며 파이널라이저가 수행되어 객체에 기록되어 있던 자원을 다시 해제하게 되면, 재사용되고 있던 자원을 사용하고 있던 어플리케이션은 오작동을 하게 되는 문제점이 있다.
일본공개특허 2002-259146은 어플리케이션에 자원을 제공하는 적어도 1개 이상의 라이브러리부와 커넬부를 구비하는 어플리케이션 실행 장치이고, 상기 커넬부는 어플리케이션이 종료되면 종료한 어플리케이션이 어느 것으로 있는지를 자원에 제공하는 각 라이브러리부에 통지하는 수단을 가지며, 상기 각 라이브러리부는 통지 수단으로부터 통지된 종료된 어플리케이션에 제공한 자원을 회수하는 회수 수단을 포함하는 어플리케이션 실행 장치를 개시하고 있으나, 이는 어플리케이션이 종료되면 라이브러리부에 의하여 불필요한 자원이 회수되는 것으로, 가상 아이디를 이용하여 자원을 할당 및 해제하는 기술은 전혀 개시하고 있지 않다.
본 발명은 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원의 할당 및 해제를 수행함으로써, 자원을 보다 효율적으로 이용할 수 있도록 하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치는, 어플리케이션으로부 터 자원 할당 및 자원 해제가 요청되면 운영 체계에게 자원 할당 및 자원 해제를 요청하는 자원 관리부와, 상기 운영 체계로부터 할당된 자원에 대응되는 가상 아이디를 생성하는 가상 아이디 생성부와, 상기 어플리케이션이 상기 가상 아이디를 이용하여 자원 해제를 요청하면, 상기 가상 아이디의 존재 여부를 검색하는 아이디 검색부를 포함한다.
또한, 본 발명의 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법은, 어플리케이션으로부터 자원 할당이 요청되면, 상기 요청에 따라 운영 체계에게 자원 할당을 요청하는 단계;
상기 할당된 자원에 대응되는 가상 아이디를 생성하는 단계와, 상기 어플리케이션으로부터 전송된 어플리케이션 아이디, 상기 생성된 가상 아이디 및 할당된 자원을 포함하는 테이블을 작성하는 단계와, 상기 어플리케이션으로 가상 아이디 및 할당된 자원을 전송하는 단계를 포함한다.
또한, 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법은, 어플리케이션으로부터 가상 아이디를 이용하여 자원 해제가 요청되는 단계와, 상기 어플리케이션으로부터 전송된 가상 아이디가 포함된 테이블이 존재하는지 검색하는 단계와, 상기 검색 결과 상기 전송된 가상 아이디가 포함된 테이블이 존재하면, 운영 체계로 상기 가상 아이디에 대응되는 자원의 해제를 요청하는 단계와, 상기 자원이 해제되면 상기 가상 아이디가 포함된 테이블을 삭제하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있 다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치에서 어플리케이션에 의하여 자원이 사용되는 예를 나타낸 도면이다.
다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치는 적어도 하나 이상의 어플리케이션(210, 220)을 이용하여 자원을 사용할 수 있다. 여기서, 어플리케이션(210, 220)은 라이프 사이클(Life Cycle)을 갖는 다중 자바 어플리케이션 환경에서의 자바 어플리케이션일 수 있는데 예를 들어, 엑스렛(Xlet), 미들렛(Middlelet) 또는 애플렛(Applet)일 수 있다.
또한, 어플리케이션(210, 220)에 의하여 사용되는 자원은 메모리 자원(251), 파일 자원(252) 및 네트워크 자원(253) 중 적어도 어느 하나일 수 있다.
도시된 바와 같이, 제1 어플리케이션(210)이 2개의 메모리 자원(251) 및 1개의 네트워크 자원(253)을 사용하고, 제2 어플리케이션(220)이 1개의 메모리 자원(251), 2개의 파일 자원(252) 및 1개의 네트워크 자원(253)을 사용하고 있는 것을 나타낸다.
즉, 각각의 어플리케이션(210, 220)은 서로 다른 복수 개의 자원을 동시에 사용할 수 있고, 동일한 자원을 복수 개 사용할 수 있다. 또한, 하나의 어플리케이션에 의하여 사용 중인 자원을 또 다른 어플리케이션이 사용할 수도 있다.
어플리케이션은 수시로 발생하고 소멸할 수 있는데, 특정 어플리케이션에 의하여 점유된 자원이 해당 어플리케이션의 소멸에 따라 해제되지 않으면 이후에 발생된 어플리케이션은 그 자원을 사용하지 못할 수도 있다.
이에 따라, 본 발명의 가상 아이디를 이용하여 자원을 관리하는 장치는 각 어플리케이션에 할당된 자원에 대한 사용 및 해제 여부에 대한 정보를 가상 아이디(Virtual ID : VID)를 이용하여 관리함으로써, 어플리케이션으로부터 자원 해제 요청 시 바로 해당 자원을 해지함으로써, 다른 어플리케이션이 해당 자원을 재사용할 수 있게 하는 것이다.
예를 들어, 가상 아이디를 이용하여 자원을 관리하는 장치가 자바 환경에서 동작하는 경우 가상 아이디를 이용하여 자원을 관리하는 장치는 소정 어플리케이션이 자원 할당을 요청할 경우 운영 체계로부터 자원을 할당받은 후 가상 아이디를 생성하고, 생성된 가상 아이디 및 할당받은 자원을 테이블에 저장한 후 해당 어플리케이션으로 자원 및 생성된 가상 아이디를 전송한다.
또한, 어플리케이션이 자원을 해제할 경우 운영 체계에게 해당 자원의 해제를 요청한 후, 해당 자원에 대응되는 가상 아이디가 저장된 테이블을 삭제함으로써, 다른 어플리케이션이 자원을 재사용할 수 있게 한다. 이하, 도 3에서 다중 자원 어플리케이션 환경에 대한 설명을 후술하기로 한다.
도 3은 본 발명의 다른 실시예에 따른 다중 자바 어플리케이션 환경의 구조를 나타낸 블록도 이다.
다중 자바 어플리케이션(300)은 어플리케이션 관리자(310), 어플리케이션(321, 322, 및 32n), 미들웨어(330), 자바 가상 머신(340), 자원 관리 인터페이스(350), 및 운영 체계(360)를 포함하여 구성된다. 여기서, 어플리케이션은 자바 어플리케이션을 포함한다.
어플리케이션 관리자(310)는 어플리케이션의 상태를 전환시킴으로써 어플리케이션의 라이프 사이클을 관리한다. 여기서, 어플리케이션 관리자(310)는 OCAP(Open Cable Application Platform), ACAP(Advanced open Cable Application Platform) 등의 미들웨어(330)를 통하여 어플리케이션의 동작을 관리할 수 있다.
자바 가상 머신(340)은 어플리케이션에 포함된 클래스를 메모리에 탑재하고 클래스의 수행 코드를 운영 체계(360)의 명령 코드로 전환한다.
또한, 자바 가상 머신(340)은 다중 자바 어플리케이션(300)에 존재하는 어플리케이션의 고유 아이디를 생성한다. 여기서, 어플리케이션 아이디 생성부(351)는 어플리케이션의 스레드(Thread) 아이디를 이용하여 어플리케이션 아이디를 생성할 수 있다.
자원 관리 인터페이스(350)는 라이프 사이클을 갖는 다중 자바 어플리케이션(300) 상에서의 자원 할당 및 자원 해제를 수행한다.
예를 들어, 자원 관리 인터페이스(350)는 소정 어플리케이션으로부터 자원 할당을 요청 받으면, 운영 체계(360)에게 자원 할당을 요청한다. 그 다음, 자원 할당을 요청한 어플리케이션으로부터 전송된 어플리케이션 아이디와, 할당된 자원에 대응되는 가상 아이디를 생성한 후, 어플리케이션 아이디, 가상 아이디, 및 운영 체계(360)로부터 할당 받은 자원을 하나의 테이블로 작성 및 저장한다.
그 다음, 해당 어플리케이션에게 할당받은 자원, 및 생성된 가상 아이디를 전송한다.
이 후, 소정 어플리케이션이 가상 아이디를 이용하여 자원 해제를 요청하면, 운영 체계(360)에게 전송된 가상 아이디에 대응되는 자원의 해제를 요청하고, 해당 가상 아이디가 포함된 테이블을 삭제한다.
또한, 자원 관리 인터페이스(350)는 다중 자바 어플리케이션(300) 내에 별도로 구비될 수도 있고, 자바 가상 머신(340) 내에 구비될 수도 있다. 본 발명에서는 다중 자바 어플리케이션(300) 내에 별도로 구비된 구성을 예를 들어 설명한다. 이하, 도 4에서 자원 관리 인터페이스(350)에 대한 설명을 후술하기로 한다.
도 4는 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치의 내부 블록도 이다.
도시된 바와 같이, 자원 관리 인터페이스(350)는 가상 아이디 생성부(351), 저장부(352), 아이디 검색부(353), 자원 관리부(354), 및 제어부(355)를 포함하여 구성된다.
이 때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합 되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
가상 아이디 생성부(351)는 소정 어플리케이션에게 자원을 할당할 때 해당 자원에 부여되는 고유한 가상 아이디(VID)를 생성한다. 여기서, 가상 아이디는 자원 관리 인터페이스(350)가 운영 체계(360)로부터 할당받은 자원에 대응되게 생성되는 것으로, 즉 자원을 할당받을 때 마다 생성되는 고유한 아이디이다. 또한, 자원은 메모리 자원, 파일 자원 및 네트워크 자원 중 적어도 하나를 포함할 수 있다. 즉, 어플리케이션은 메모리 자원, 파일 자원 및 네트워크 자원 중 적어도 하나를 이용할 수 있는 것으로서, 각각의 자원을 복수 개 이용할 수도 있다. 여기서, 어플리케이션은 엑스렛, 미들렛 또는 애플렛과 같이 소정의 라이프 사이클을 갖는 컨테인먼트 프레임워크 환경에서의 자바 어플리케이션일 수 있다.
예를 들어, 소정 어플리케이션으로부터 자원 할당이 요청되면, 운영 체계(360)로부터 자원을 할당받고, 가상 아이디 생성부(351)는 할당받은 자원에 대한 가상 아이디를 생성한다.
저장부(352)는 가상 아이디 생성부(351)가 생성한 어플리케이션 아이디 및 가상 아이디, 운영 체계(360)로부터 할당받은 자원, 및 어플리케이션을 통해 전송된 어플리케이션 아이디가 대응되어 작성된 테이블을 저장한다. 여기서, 저장부(352)에 저장된 테이블은 자원의 할당 및 해제됨에 따라 갱신될 수 있다. 이하, 도 5에서 저장부(352)에 저장된 테이블에 대한 설명을 후술하기로 한다.
여기서, 저장부(352)는 하드 디스크, 플래시 메모리, CF 카드(Compact Flash Card), SD 카드(Secure Digital Card), SM 카드(Smart Media Card), MMC 카드(Multimedia Card) 또는 메모리 스틱(Memory Stick) 등 정보의 입출력이 가능한 모듈을 말한다.
아이디 검색부(353)는 어플리케이션 및 가비지 컬렉션이 가상 아이디(또는 어플리케이션 아이디)를 이용하여 자원의 해제를 요청한 경우, 저장부(352)에 저장된 테이블 내에 전송된 가상 아이디(또는 어플리케이션 아이디)가 존재하는지 검색한다.
예를 들어, 어플리케이션 및 가비지 컬렉션이 가상 아이디를 이용하여 소정 자원의 해제를 요청할 경우, 아이디 검색부(353)는 전송된 가상 아이디가 포함된 테이블을 검색한다.
또한, 어플리케이션이 모든 자원의 해제를 요청할 경우, 아이디 검색부(353)는 모든 자원의 해제를 요청한 어플리케이션의 아이디가 포함된 테이블을 검색한다.
자원 관리부(354)는 어플리케이션의 자원 할당 요청에 따라 운영 체계(360)로부터 소정 자원을 할당 받는다.
또한, 자원 관리부(354)는 어플리케이션 및 가비지 컬렉션으로부터 소정 자원의 해제가 요청되면, 아이디 검색부(353)의 검색 결과를 기초로 해당 자원의 해제 여부를 결정한다.
예를 들어, 어플리케이션 및 가비지 컬렉션이 가상 이이디를 이용하여 소정 자원의 해제를 요청하면, 자원 관리부(354)는 아이디 검색부(353)로부터 가상 아이디의 존재 여부를 전송받는다.
이 때, 검색 결과 해당 가상 아이디가 존재할 경우 자원 관리부(354)는 운영 체계(360)에게 해당 자원의 해제를 요청하고, 만일 검색 결과 해당 가상 아이디가 존재하지 않을 경우 자원 관리부(354)는 운영 체계(360)에게 해당 자원의 해제를 요청하지 않는다.
제어부(355)는 어플리케이션으로부터 전송된 어플리케이션 아이디, 가상 아이디 생성부(351)를 통해 생성된 가상 아이디, 및 자원 관리부(354)를 통해 할당된 자원이 대응되어 있는 테이블을 작성하고, 자원 관리부(354)에 의해 소정 자원이 해제되면, 해제된 자원이 포함된 테이블을 삭제한다.
또한, 제어부(355)는 자원 관리 인터페이스(350)를 구성하는 각 기능성 블록들(351 내지 354)의 동작을 제어한다.
도 5는 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치가 관리하는 테이블의 예를 나타낸 도면이다.
도시된 바와 같이, 자원 관리 인터페이스(350)의 저장부(352)에는 다수개의 테이블(510,520)들이 저장되어 있으며, 테이블 내에는 자원을 요청한 어플리케이션의 아이디 정보(521), 가상 아이디 정보(522), 및 할당받은 자원(523)이 저장되어 있다.
예를 들어, 자원 관리 인터페이스(350)가 어플리케이션으로부터 소정 자원의 할당을 요청받으면, 자원 관리 인터페이스(350)의 자원 관리부(354)는 운영 체계(360)에게 자원 할당을 요청하여 자원을 할당받고, 가상 아이디 생성부(351)는 할당받은 자원에 대한 고유한 가상 아이디를 생성한다. 여기서, 어플리케이션 아이디는 자원을 요청한 어플리케이션으로부터 전송된다.
그 다음, 제어부(355)는 어플리케이션 아이디(521), 가상 아이디(522), 및 자원(523)을 하나의 테이블(예를 들어, 테이블2(520))로 작성한 후, 저장부(352)에 저장한다.
도 6은 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법 중 자원을 할당하는 과정을 나타낸 순서도 이다.
먼저, 어플리케이션(321)이 자원 관리 인터페이스(350)에게 자원 할당을 요청하면(S600), 자원 관리 인터페이스(350)의 자원 관리부(354)는 운영 체계(360)에게 자원 할당을 요청한다(S610). 이 때, 어플리케이션(321)은 자신의 어플리케이션 아이디를 함께 전송한다.
그 다음, 제어부(355)는 운영 체계(360)로부터 자원이 할당 되었는지 판단한다(S620). 판단 결과 자원을 할당받은 경우, 가상 아이디 생성부(351)는 할당된 자원에 대응되는 고유 아이디를 생성한다(S630).
그 다음, 제어부(355)는 어플리케이션 아이디, 가상 아이디, 및 운영 체계(360)로부터 할당된 자원을 포함하는 테이블을 작성한 후, 작성된 테이블을 저장부(352)에 저장한다(S640).
그 다음, 할당받은 자원 및 그에 대응하는 가상 아이디를 해당 어플리케이션(312)에 전송한다(S650).
한편, 운영 체계(360)로부터 자원이 할당이 되었는지 판단한 결과 자원 할당이 되지 않은 경우(S620), 제어부(355)는 자원 관리부(354)를 통해 재요청을 수행하거나, 어플리케이션(321)에게 자원 할당이 실패됨을 알린다.
도 7은 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법 중 자원을 해제하는 과정을 나타낸 순서도 이다. 여기서, 도 7a는 어플리케이션으로부터 자원 해제를 요청받은 경우, 자원 관리 인터페이스에서 자원 해제를 수행하는 과정을 나타낸 도면이고, 도 7b는 가비지 컬렉터로부터 자원 해제를 요청받은 경우, 자원 관리 인터페이스에서 자원 해제를 수행하는 과정을 나타낸 도면이다.
도 7a를 참조하여 어플리케이션의 요청에 따라 자원 해제를 수행하는 과정을 설명한다.
먼저, 어플리케이션(321)이 가상 아이디를 이용하여 자원 관리 인터페이스(350)에게 자원 해제를 요청하면(S710), 자원 관리 인터페이스(350)의 아이디 검색부(353)는 어플리케이션(321)으로부터 전송된 가상 아이디가 포함된 테이블을 검색한다(S712). 여기서, 어플리케이션(321)이 가상 아이디를 이용하여 자원 해제를 요청하는 것은, 다수의 어플리케이션에서 동일한 자원을 이용할 경우, 소정 자원을 이용하는 각각의 어플리케이션은 자원에 대한 고유 가상 아이디 가지고 있고, 가상 아이디로 자원 해제를 요청할 경우, 자원 관리 인터페이스(350)는 해당 가상 아이디에 대한 자원만을 해지함으로써, 다른 어플리케이션이 사용하고 있는 다른 가상 아이디로 제공된 자원은 해지하지 않기 위해서이다.
그 다음, 자원 관리부(354)는 아이디 검색부(353)를 통해 검색된 가상 아이디가 포함된 테이블을 참조하여 대응되는 자원에 대한 해제를 운영 체계(360)에게 요청한다(S714).
그 다음, 제어부(355)는 해당 자원이 해제되었는지를 판단하고(S716), 판단 결과 자원이 해제된 경우 해당 자원이 저장된 테이블을 저장부(352)에서 삭제한다(S718).
한편, 해당 자원의 해제 여부를 판단한 결과 자원이 해제되지 않은 경우 (S716), 자원 관리부(354)는 운영 체계(360)에게 해당 자원의 해제를 다시 요청한다.
도 7b를 참조하여 가비지 컬렉터의 요청에 따라 자원 해제를 수행하는 과정을 설명한다.
먼저, 가비지 컬렉터에서 가상 아이디를 이용하여 자원 관리 인터페이스(350)에게 자원 해제를 요청하면(S750), 자원 관리 인터페이스(350)의 아이디 검색부(353)는 가비지 컬렉터로부터 전송된 가상 아이디가 포함된 테이블이 존재하는지 검색한다(S752). 여기서, 가비지 컬렉터가 가상 아이디를 이용하여 자원 해제를 요청하는 것은, 다수의 어플리케이션에서 동일한 자원을 이용할 경우, 소정 자원을 이용하는 각각의 어플리케이션은 자원에 대한 고유 가상 아이디 가지고 있고, 가상 아이디로 자원 해제를 요청할 경우, 자원 관리 인터페이스(350)는 해당 가상 아이디에 대한 자원만을 해지함으로써, 다른 어플리케이션이 사용하고 있는 다른 가상 아이디로 제공된 자원은 해지하지 않기 위해서이다.
검색 결과 가비지 컬렉터가 전송한 가상 아이디가 포함된 테이블이 존재하면(S754), 자원 관리부(354)는 검색된 가상 아이디가 포함된 테이블을 참조하여 대응되는 자원에 대한 해제를 운영 체계(360)에게 요청한다(S756).
그 다음, 제어부(355)는 해당 자원이 해제되었는지를 판단하고(S758), 판단 결과 자원이 해제된 경우 해당 자원이 포함된 테이블을 저장부(352)에서 삭제한다(S760).
한편, 해당 자원의 해제 여부를 판단한 결과 자원이 해제되지 않은 경우 (S758), 자원 관리부(354)는 운영 체계(360)에게 해당 자원의 해제를 다시 요청한다.
또한, 검색 결과 가지비 컬렉터가 전송한 가상 아이디가 포함된 테이블이 존재하지 않을 경우(S754), 제어부(355)는 이미 해제된 자원에 대해서 가비지 컬렉터가 해제를 요청하는 것으로 판단하여 가비지 컬렉터의 요청을 수행하지 않는다(S762).
따라서, 자원 관리 인터페이스(350)는 가상 아이디를 이용하여 이미 해제된 자원에 대한 중복 해제를 수행하지 않음으로써, 동일한 자원을 사용하고 있는 어플리케이션의 프로그램이 비정상으로 동작하게 되는 오류가 발생되지 않도록 한다.
도 8은 본 발명의 또 다른 실시예에 따른 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법 중 모든 자원을 해제하는 과정을 나타낸 순서도이다.
먼저, 어플리케이션(321)이 자원 관리 인터페이스(350)에게 사용하던 모든 자원의 해제를 요청한다(S800). 이 때, 어플리케이션(321)은 자신의 어플리케이션 아이디를 함께 전송한다.
그 다음, 자원 관리 인터페이스(350)의 아이디 검색부(353)는 자원 해지를 요청한 어플리케이션의 아이디가 포함된 테이블을 검색한다(S810).
검색 결과 어플리케이션의 아이디가 포함된 테이블이 존재하면(S820), 자원 관리부(354)는 검색된 테이블을 참조하여 어플리케이션 아이디에 대응되는 자원에 대한 해제를 운영 체계(360)에게 요청한다(S830).
그 다음, 제어부(355)는 해당 자원이 해제되었는지를 판단하고(S840), 판단 결과 자원이 해제된 경우 해당 자원이 저장된 테이블을 저장부(352)에서 삭제한다(S850).
한편, 해당 자원의 해제 여부를 판단한 결과 자원이 해제되지 않은 경우(S840), 자원 관리부(354)는 운영 체계(360)에게 해당 자원의 해제를 다시 요청한다.
도 9는 본 발명의 또 다른 실시예에 따라 다중 자바 어플리케이션 환경에서 자원 할당 및 해제를 수행하는 어플리케이션, 자원 관리 인터페이스, 및 운영 체계의 동작을 나타낸 도면이다.
어플리케이션A(910)가 자원 관리 인터페이스(350)에게 자원 할당을 요청하면, 자원 관리 인터페이스(350)는 운영 체계(360)에게 자원 할당을 요청한다. 이 때, 어플리케이션A(910)는 자신의 어플리케이션 아이디를 함께 전송한다.
그 다음, 자원 관리 인터페이스(350)가 운영 체계(360)로부터 자원a를 할당 받으면, 자원 관리 인터페이스(350)는 자원을 요청한 어플리케이션의 ID(예를 들어, 어플리케이션 AA)(931), 할당받은 자원a에 대응되는 가상 ID(예를 들어, 0101)(932), 및 할당 받은 자원 a(933)를 포함하는 테이블(예를 들어, 테이블 1)을 작성하여 저장한다.
그 다음, 어플리케이션A(910)에게 가상 ID(예를 들어, 0101)(932), 및 자원 a(933)를 전송한다.
이 후, 어플리케이션A(910)는 가상 ID(예를 들어, 0101)(932)를 이용하여 자 원 관리 인터페이스(350)에게 자원 해제를 요청한다. 이에, 자원 관리 인터페이스(350)는 전송받은 가상 ID(예를 들어, 0101)(932)가 포함된 테이블을 검색한다.
검색 결과 전송된 가상 ID(예를 들어, 0101)(932)가 포함된 테이블(예를 들어, 테이블 1)이 존재하면, 자원 관리 인터페이스(350)는 운영 체계(360)에게 전송된 가상 ID에 대응되는 자원의 해제를 요청한다.
그 다음, 자원 관리 인터페이스(350)는 전송된 가상 ID(예를 들어, 0101)(932)가 포함된 테이블(예를 들어, 테이블 1)을 삭제한다.
한편, 어플리케이션B(920)가 자원 관리 인터페이스(350)에게 자원 할당을 요청하면, 자원 관리 인터페이스(350)는 운영 체계(360)에게 자원 할당을 요청한다.
이에, 운영 체계(360)는 이전에 해제되었던 자원a를 자원 관리 인터페이스(350)에게 할당한다.
그 다음, 자원 관리 인터페이스(350)는 자원을 요청한 어플리케이션의 ID(예를 들어, 어플리케이션 BB)(951), 할당받은 자원a에 대응되는 가상 ID(예를 들어, 0501)(952), 및 할당된 자원 a(953)을 포함하는 테이블(예를 들어, 테이블 2)을 작성하여 저장한다.
그 다음, 어플리케이션B(910)에게 가상 ID(예를 들어, 0501)(952), 및 자원 a(953)를 전송한다.
이 후, 가비지 컬렉터가 가상 ID(예를 들어, 0101)를 이용하여 자원 관리 인터페이스(350)에게 자원 해제를 요청하면, 자원 관리 인터페이스(350)은 전송받은 가상 ID(예를 들어, 0101)가 포함된 테이블이 존재하는지 판단한다.
판단 결과 해당 가상 ID(예를 들어, 0101)가 포함된 테이블이 존재하지 않으면, 자원 관리 인터페이스(350)는 이미 해제된 자원에 대해서 가비지 컬렉터가 해제를 요청하는 것으로 판단하여 가비지 컬렉터의 요청을 수행하지 않는다.
이에, 이미 해제된 가상 아이디(예를 들어, 0101)에 대응하는 자원a에 대한 해제를 수행하지 않음으로써, 어플리케이션B에서 사용하고 있는 자원a가 해제되지 않게 되므로, 어플리케이션B의 프로그램이 비정상으로 동작하게 되는 오류는 발생되지 않는다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
상기한 바와 같은 본 발명의 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치 및 그 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원의 할당 및 해제를 수행함으로써, 어플리케이션 환경에서 어플리케이션 종료 시 객체가 아닌 중복 해제를 수행하는 오류를 방지하는 장점이 있다.
또한, 다중 자바 사용된 자원만을 해제시킴으로써, 자원이 부족한 환경에서 빠르게 자원을 재사용할 수 있는 장점이 있다.

Claims (10)

  1. 어플리케이션으로부터 자원 할당 및 자원 해제가 요청되면 운영 체계에게 자원 할당 및 자원 해제를 요청하는 자원 관리부;
    상기 운영 체계로부터 할당된 자원에 대응되는 가상 아이디를 생성하는 가상 아이디 생성부;
    상기 어플리케이션이 상기 가상 아이디를 이용하여 자원 해제를 요청하면, 상기 가상 아이디의 존재 여부를 검색하는 아이디 검색부; 및
    상기 어플리케이션으로부터 전송된 어플리케이션 아이디, 가상 아이디, 및 할당된 자원을 포함하는 테이블을 작성하고, 소정 자원이 해지된 경우 상기 해지된 자원이 포함된 테이블을 삭제하는 제어부를 포함하는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치.
  2. 제 1항에 있어서,
    상기 자원 관리부는 상기 아이디 검색부의 검색 결과 가상 아이디가 존재할 경우, 상기 가상 아이디에 대응되는 자원의 해제를 요청하는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치.
  3. 제 1항에 있어서,
    상기 가상 아이디는 상기 운영 체계로부터 자원을 할당받을 때 마다 생성되는 고유한 아이디인 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치.
  4. 제 1항에 있어서,
    상기 작성된 테이블을 저장하는 저장부를 포함하는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 장치.
  5. 어플리케이션으로부터 자원 할당이 요청되면, 상기 요청에 따라 운영 체계에게 자원 할당을 요청하는 단계;
    상기 할당된 자원에 대응되는 가상 아이디를 생성하는 단계;
    상기 어플리케이션으로부터 전송된 어플리케이션 아이디, 상기 생성된 가상 아이디 및 상기 할당된 자원을 포함하는 테이블을 작성하는 단계; 및
    상기 어플리케이션으로 상기 가상 아이디 및 상기 할당된 자원을 전송하는 단계를 포함하는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법.
  6. 제 5항에 있어서,
    상기 가상 아이디는 상기 운영 체계로부터 자원을 할당받을 때 마다 생성되는 고유한 아이디인 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법.
  7. 어플리케이션으로부터 가상 아이디를 이용하여 자원 해제가 요청되는 단계;
    상기 어플리케이션으로부터 전송된 상기 가상 아이디가 포함된 테이블이 존재하는지 검색하는 단계;
    상기 검색 결과 상기 가상 아이디가 포함된 테이블이 존재하면, 운영 체계로 상기 가상 아이디에 대응되는 자원의 해제를 요청하는 단계; 및
    상기 자원이 해제된 경우, 상기 가상 아이디가 포함된 상기 테이블을 삭제하는 단계를 포함하는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법.
  8. 제 7항에 있어서,
    상기 검색 결과 상기 전송된 가상 아이디가 포함된 테이블이 존재하지 않을 경우, 자원 해제 요청을 수행하지 않는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법.
  9. 제 7항에 있어서,
    상기 가상 아이디는 상기 어플리케이션에게 할당된 자원에 대응되는 고유한 아이디인 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법.
  10. 제 7항에 있어서,
    상기 테이블에는 소정 자원을 이용하는 어플리케이션의 아이디, 자원에 대응되는 가상 아이디, 및 할당된 자원이 포함되는 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여 자원을 관리하는 방법.
KR1020060018282A 2006-02-24 2006-02-24 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법 KR100772872B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060018282A KR100772872B1 (ko) 2006-02-24 2006-02-24 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법
US11/652,028 US20070203959A1 (en) 2006-02-24 2007-01-11 Apparatus and method for managing resources using virtual ID in multiple Java application environment
JP2007040392A JP2007226800A (ja) 2006-02-24 2007-02-21 多重ジャバアプリケーション環境で仮想idを用いて資源を管理する装置およびその方法
EP07102946A EP1826672A3 (en) 2006-02-24 2007-02-23 Apparatus and method for managing resources in a multiple application environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060018282A KR100772872B1 (ko) 2006-02-24 2006-02-24 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20070088099A KR20070088099A (ko) 2007-08-29
KR100772872B1 true KR100772872B1 (ko) 2007-11-02

Family

ID=38137463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060018282A KR100772872B1 (ko) 2006-02-24 2006-02-24 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법

Country Status (4)

Country Link
US (1) US20070203959A1 (ko)
EP (1) EP1826672A3 (ko)
JP (1) JP2007226800A (ko)
KR (1) KR100772872B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8718030B2 (en) * 2007-03-26 2014-05-06 Qualcomm Incorporated Methods and apparatus for performing channel tree operations
JP5046863B2 (ja) * 2007-11-01 2012-10-10 株式会社日立製作所 情報処理システム及びデータ管理方法
CN101894041A (zh) * 2010-07-15 2010-11-24 中兴通讯股份有限公司 多虚拟串口系统及其通信方法
US10164902B2 (en) 2014-09-22 2018-12-25 Kt Corporation Resource allocation method using cloud API key and apparatus therefor
US20170031959A1 (en) * 2015-07-30 2017-02-02 Kabushiki Kaisha Toshiba Scheduling database compaction in ip drives
CN105224398A (zh) * 2015-10-30 2016-01-06 中国民生银行股份有限公司 智能pos机的硬件调用方法和智能pos机
CN108614740A (zh) * 2016-12-12 2018-10-02 上海美桔网络科技有限公司 基于进程间共享内存方式生成唯一id的方法及系统
US11138046B2 (en) * 2018-06-19 2021-10-05 Jpmorgan Chase Bank, N.A. Methods for auxiliary service scheduling for grid computing and devices thereof
US11356382B1 (en) * 2020-09-30 2022-06-07 Amazon Technologies, Inc. Protecting integration between resources of different services using service-generated dependency tags

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249226A (ja) * 1995-03-08 1996-09-27 Hitachi Ltd メモリ資源の管理システム
WO2001084301A2 (en) * 2000-05-02 2001-11-08 Microsoft Corporation Resource manager architecture
JP2002259146A (ja) * 2000-05-15 2002-09-13 Matsushita Electric Ind Co Ltd アプリケーション実行装置及び方法
US20040123303A1 (en) * 2002-12-19 2004-06-24 International Business Machines Corporation System and method for managing memory resources in a shared memory system
JP2005129066A (ja) * 2003-10-24 2005-05-19 Microsoft Corp オペレーティングシステムリソース保護

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813769B1 (en) * 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
US5802590A (en) * 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
JP3778593B2 (ja) * 1995-06-23 2006-05-24 富士通株式会社 システム資源管理装置および管理方法
JP3653159B2 (ja) * 1997-04-01 2005-05-25 株式会社日立製作所 仮想計算機システム間の仮想計算機移動制御方法
AU1075101A (en) * 1999-10-05 2001-05-10 Ejasent Inc. Virtual resource id mapping
JP4434408B2 (ja) * 2000-02-02 2010-03-17 富士通株式会社 情報処理装置
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
US7146602B2 (en) * 2001-01-16 2006-12-05 Ajile Systems, Inc. Builder tool and interface for system supporting multiple virtual machines
US7472144B2 (en) 2003-07-28 2008-12-30 International Business Machines Corporation Method and system for resolving memory leaks and releasing obsolete resources from user session data
JP2005216151A (ja) * 2004-01-30 2005-08-11 Hitachi Ltd 資源運用管理システム及び資源運用管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249226A (ja) * 1995-03-08 1996-09-27 Hitachi Ltd メモリ資源の管理システム
WO2001084301A2 (en) * 2000-05-02 2001-11-08 Microsoft Corporation Resource manager architecture
JP2002259146A (ja) * 2000-05-15 2002-09-13 Matsushita Electric Ind Co Ltd アプリケーション実行装置及び方法
US20040123303A1 (en) * 2002-12-19 2004-06-24 International Business Machines Corporation System and method for managing memory resources in a shared memory system
JP2005129066A (ja) * 2003-10-24 2005-05-19 Microsoft Corp オペレーティングシステムリソース保護

Also Published As

Publication number Publication date
EP1826672A3 (en) 2008-12-17
US20070203959A1 (en) 2007-08-30
EP1826672A2 (en) 2007-08-29
KR20070088099A (ko) 2007-08-29
JP2007226800A (ja) 2007-09-06

Similar Documents

Publication Publication Date Title
KR100772872B1 (ko) 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법
US7024668B2 (en) Application execution apparatus and method
US7165255B2 (en) Method and apparatus for managing surplus memory in multitasking system
US6862674B2 (en) Methods and apparatus for performing a memory management technique
US11232026B2 (en) Deferred destruction for efficient resource reclamation
JP3027845B2 (ja) プログラム制御装置および方法
JP4511653B2 (ja) マルチスレッド仮想マシン内におけるメモリ・アロケーションの方法及び装置
US6493730B1 (en) Efficient object faulting with generational garbage collection
US7406684B2 (en) Compiler, dynamic compiler, and replay compiler
US8156492B2 (en) System and method to improve memory usage in virtual machines running as hypervisor guests
CN108459898B (zh) 一种资源回收方法及装置
US6643753B2 (en) Methods and systems for managing heap creation and allocation
JP5218985B2 (ja) メモリ管理方法計算機システム及びプログラム
CN109324893B (zh) 分配内存的方法和装置
JP2007226790A (ja) コンテインメントフレームワーク環境で資源を管理する装置および方法
US6681234B2 (en) Method and apparatus for storing long-lived objects in a virtual machine
US8966212B2 (en) Memory management method, computer system and computer readable medium
JP2002259146A (ja) アプリケーション実行装置及び方法
KR100493893B1 (ko) 자바 프로그램에서 클래스 로딩 과정을 단축시키는 시스템및 방법
JP2004503869A (ja) モジュール式ガーベッジコレクタを実現するための方法および装置
JP5381624B2 (ja) メモリ管理機能を有するプログラム及び装置
JP2000099351A (ja) プログラム制御装置とメモリ割当装置および方法
CN114051610A (zh) 基于arena的存储器管理
Yang Java GC Tutorials-Herong's Tutorial Examples
EP3933582B1 (en) Distributed storage method and device, electronic apparatus and computer-readable medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20111010

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee