1 |
1
메모리에 객체가 할당되면, 상기 객체를 가리키는 포인터와 상기 객체에 대한 참조횟수를 포함하는 메타데이터 사이의 맵핑관계를 저장하는 단계;상기 객체를 가리키는 포인터가 메모리에 저장되면 상기 객체에 대한 메타데이터의 참조횟수를 증가시키고, 상기 객체를 가리키는 포인터가 소멸하면 상기 객체에 대한 메타데이터의 참조횟수를 감소시키는 단계; 및상기 메타데이터의 참조횟수가 기 정의된 값이 되면, 상기 객체를 메모리에서 해제하는 단계;를 포함하는 것을 특징으로 하는 메모리 관리 방법
|
2 |
2
제 1항에 있어서, 상기 메타데이터는, 객체 주소, 참조횟수 및 해제가능플래그를 포함하고,상기 해제하는 단계는, 상기 객체에 대한 해제명령이 발생할 때 상기 메타데이터의 참조횟수가 기 정의된 값이 아니면 상기 메타데이터의 해제가능플래그에 해제 가능함을 나타내는 정보를 저장하는 것을 특징으로 하는 메모리 관리 방법
|
3 |
3
제 2항에 있어서,상기 해제하는 단계는, 상기 참조횟수가 기 정의된 값이 되면 상기 메타데이터의 해제가능플래그를 기초로 상기 객체에 대한 해제의 수행 여부를 결정하는 단계;를 포함하는 것을 특징으로 하는 메모리 관리 방법
|
4 |
4
제 1항에 있어서,메모리에 저장된 포인터의 위치를 비트맵으로 저장하는 단계;를 포함하고,상기 메타데이터의 참조횟수를 증가시키는 단계는, 메모리 영역의 복사가 발생하면, 상기 비트맵을 기초로 복사대상영역에 속한 적어도 하나 이상의 포인터를 파악하고, 상기 복사대상영역에 속한 적어도 하나 이상의 포인터와 맵핑된 메타데이터의 참조횟수를 증가시키는 단계;를 포함하는 것을 특징으로 하는 메모리 관리 방법
|
5 |
5
제 1항에 있어서,메모리에 저장된 포인터의 위치를 비트맵으로 저장하는 단계;를 포함하고,상기 메타데이터의 참조횟수를 감소시키는 단계는, 메모리 영역의 초기화, 복사 또는 해제가 발생하면, 상기 비트맵을 기초로 상기 초기화, 복사 또는 해제의 목적지 메모리 영역에 속한 적어도 하나 이상의 포인터를 파악하고, 상기 목적지 메모리 영역에 속한 적어도 하나 이상의 포인터와 맵핑된 메타데이터의 참조횟수를 감소시키는 단계;를 포함하는 것을 특징으로 하는 메모리 관리 방법
|
6 |
6
제 4항 또는 제 5항에 있어서, 상기 비트맵은 쉐도우 메모리에 저장되는 것을 특징으로 하는 메모리 관리 방법
|
7 |
7
제 1항에 있어서,상기 각 단계는 런타임라이브러리의 함수를 통해 구현되는 것을 특징으로 하는 메모리 관리 방법
|
8 |
8
제 7항에 있어서,소스 코드의 컴파일 과정에서 상기 런타임라이브러리의 함수를 호출하는 명령을 포인터 관련 동작이 발생하는 부분에 자동 삽입하는 단계;를 더 포함하는 것을 특징으로 하는 메모리 관리 방법
|
9 |
9
제 8항에 있어서, 상기 포인터 관련 동작은, 메모리 객체 할당, 메모리 초기화, 메모리 복사, 메모리 해제 또는 메모리 저장 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 메모리 관리 방법
|
10 |
10
컴퓨터에서 동작하는 프로그램에 의해 실시간 호출되어 동작하는 복수의 함수를 포함하는 런타임라이브러리가 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,상기 런타임라이브러리는,객체를 가리키는 포인터와 상기 객체에 대한 참조횟수를 포함하는 메타데이터 사이의 맵핑관계를 저장하는 제1 함수;객체를 가리키는 포인터가 메모리에 저장되면 객체에 대한 메타데이터의 참조횟수를 증가시키는 제2 함수;객체를 가리키는 포인터가 소멸하면 객체에 대한 메타데이터의 참조횟수를 감소시키는 제3 함수; 및메타데이터의 참조횟수가 기 정의된 값이 되면, 객체를 메모리에서 해제하는 제4 함수;를 포함하는 것을 특징으로 하는 기록매체
|
11 |
11
제 1항 내지 제 9항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
|