KR100503093B1 - 메모리 관리 방법 및 장치 - Google Patents

메모리 관리 방법 및 장치 Download PDF

Info

Publication number
KR100503093B1
KR100503093B1 KR10-2003-0056726A KR20030056726A KR100503093B1 KR 100503093 B1 KR100503093 B1 KR 100503093B1 KR 20030056726 A KR20030056726 A KR 20030056726A KR 100503093 B1 KR100503093 B1 KR 100503093B1
Authority
KR
South Korea
Prior art keywords
memory
predetermined block
block
allocation
allocated
Prior art date
Application number
KR10-2003-0056726A
Other languages
English (en)
Other versions
KR20050018293A (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 KR10-2003-0056726A priority Critical patent/KR100503093B1/ko
Priority to US10/918,750 priority patent/US20050086449A1/en
Publication of KR20050018293A publication Critical patent/KR20050018293A/ko
Application granted granted Critical
Publication of KR100503093B1 publication Critical patent/KR100503093B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메모리 관리 방법 및 장치가 개시된다. 이 방법은 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 소정 블록의 할당이 해제되는가를 판단하는 단계 및 메모리 중 소정 블록이 할당되거나 소정 블록의 할당이 해제된다고 판단되면, 할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리하는 단계를 구비하는 것을 특징으로 한다. 따라서, 본 발명에 따르면, 높이 균형 이진 트리에 의해 메모리 블록의 인덱스 정보를 관리하도록 함으로써, 순차적으로 정보를 관리하는 것에 비해 보다 빠르게 메모리를 관리할 수 있도록 하는 효과가 있다.

Description

메모리 관리 방법 및 장치{Method and apparatus managing a memory}
본 발명은 컴퓨터 등 전자기기에 포함된 메모리 관리에 관한 것으로, 보다 상세하게는 높이 균형 이진 트리에 의해 메모리 블록의 인덱스 정보를 관리하도록 하는 메모리 관리 방법 및 장치에 관한 것이다.
컴퓨터 등 전자기기에 포함된 메모리에 대한 관리는 오퍼레이팅 시스템의 주 기능의 하나로 프로세스에 대한 물리 기억 공간의 할당 제어을 담당한다. 특히 다중 처리를 할 경우에 각 프로세스가 가진 논리 기억 공간에 대한 물리 기억 공간의 대응을 관리한다. 메모리 관리 방식은 링크드 리스트(linked list)방식, 스텍(stack) 방식 또는 큐(queue) 방식 등의 다양한 방식이 있다.
링크드 리스트 방식은 메모리 할당과 관련된 정보들을 서로 연결된 리스트화 시켜서 관리하는 방식이다. 링크드 리스트 방식은 각 데이터를 서로 연결해서 관리하며, 이때 각각의 정보들을 노드(node)라고 불리우는 유닛(Unit)에 넣어서 관리한다.
스텍 방식은 메모리 할당과 관련된 정보들을 출력할 때에 가장 최근에 입력된 정보들을 먼저 인출하고, 가장 먼저 입력된 정보들을 가장 나중에 인출하는 방식이다. 즉, 스텍 방식은 선입선출(FILO: First In Last Out) 혹은 후입선출(LIFO: Last In First Out)에 의한 메모리 관리 방식이다.
큐 방식은 메모리 할당과 관련된 정보들을 출력할 때에 가장 먼저에 입력된 정보들을 먼저 인출하고, 가장 나중에 입력된 정보들을 가장 나중에 인출하는 방식이다. 즉, 큐 방식은 선입선출(FIFO: First In First Out)에 의한 메모리 관리 방식이다.
그런데, 상기와 같은 메모리 관리 방식은 메모리 할당과 관련된 정보들을 출력할 때에 일일이 메모리 전체에 대한 정보들을 검색해야 하기 때문에 메모리 관리에 소요되는 시간이 길어진다는 문제점이 야기된다.
본 발명이 이루고자 하는 기술적 과제는, 높이 균형 이진 트리에 의해 메모리 블록의 인덱스 정보를 관리하도록 하는 메모리 관리 방법을 제공하는데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 높이 균형 이진 트리에 의해 메모리 블록의 인덱스 정보를 관리하도록 하는 메모리 관리 장치를 제공하는데 있다.
상기의 과제를 이루기 위해, 본 발명에 따른 메모리 관리 방법은 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 소정 블록의 할당이 해제되는가를 판단하는 단계 및 메모리 중 소정 블록이 할당되거나 소정 블록의 할당이 해제된다고 판단되면, 할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리하는 단계로 이루어짐이 바람직하다.
상기의 다른 과제를 이루기 위해, 본 발명에 따른 메모리 관리 장치는 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 소정 블록의 할당이 해제되는가를 감지하는 메모리 할당 감지부 및 할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리하는 트리 관리부로 구성됨이 바람직하다.
이하, 본 발명에 의한 메모리 관리 방법을 첨부된 도면을 참조하여 다음과 같이 설명한다.
도 1은 본 발명에 의한 메모리 관리 방법을 설명하기 위한 일 실시예의 플로차트로서, 메모리 중 소정 블록이 할당되지 아니한 나머지 블록에 대해 트리 구조에 따라 관리하는 단계(제10 및 제12 단계들)로 이루어진다.
먼저, 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 소정 블록의 할당이 해제되는가를 판단한다(제10 단계). 만일, 메모리 중 소정 블록이 할당되지 않는다거나 이미 할당된 소정 블록의 할당이 해제된다고 판단되면, 메모리를 관리하는 과정을 종료한다.
그러나, 메모리 중 소정 블록이 할당되거나 이미 할당된 소정 블록의 할당이 해제된다고 판단되면, 할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리(height-balanced binary tree)에 따라 관리하고, 제10 단계로 진행한다(제12 단계).
이진 트리는 노드(node)로 표현되는 인덱스 정보가 나무의 가지처럼 서로 연결되어 있다. 즉, 이진 트리는 하나의 루트(root) 노드 에 0 내지 2 개의 후손 노드가 연결된 서브 트리들로 구성된다. 특히, 높이 균형 이진 트리는 서브 트리의 높이차가 균형을 유지하도록 구성된 트리 구조로서, 에이 브이 엘(AVL: Adelson Velskii Landis) 트리라고도 한다. 인덱스 정보는 나머지 블록들의 색인을 나타내는 정보로서, 나머지 블록들의 메모리 크기 또는 블록 주소 등을 갖는다.
도 2는 메모리 중 소정 블록의 할당에 따른 나머지 블록의 상태를 나타내는 메모리 맵(memory map)의 일 실시예를 도시한 도면이고, 도 3은 메모리 중 소정 블록의 할당에 따른 인덱스 정보들의 높이 균형 이진 트리의 일 실시예를 도시한 도면이다.
도 2 및 도 3에 도시된 스텝 1(step 1)은 전술한 플로차트가 첫번째 수행될 때의 메모리 맵 및 높이 균형 이진 트리를 나타낸다. 도 2의 스텝 1은 메모리 중 할당된 제1 소정 블록 B1 및 제1 소정 블록 B1을 제외한 메모리 부분에 해당하는 제1 나머지 블록 A1의 메모리 맵을 나타낸다. 이때, 도 3의 스텝 1에 도시된 바와 같이, 제1 나머지 블록 A1의 인덱스 정보가 높이 균형 이진 트리의 루트 노드가 된다.
도 2 및 도 3에 도시된 스텝 2(step 2)는 전술한 플로차트가 두번째 수행될 때의 메모리 맵 및 높이 균형 이진 트리를 나타낸다. 도 2의 스텝 2에 도시된 바와 같이, 제2 소정 블록 B2가 할당 요청에 의해 제1 나머지 블록 A1의 메모리 중 할당된 상태를 나타낸다. 또한, 제2 소정 블록 B2가 할당된 제1 나머지 블록 A1은 제2 나머지 블록 A2로 대체된다.
이때, 도 3의 스텝 2에 도시된 바와 같이, 제2 나머지 블록 A2의 인덱스 정보가 높이 균형 이진 트리의 루트 노드로 대체된다.
도 2 및 도 3에 도시된 스텝 3(step 3)은 전술한 플로차트가 새번째 수행될 때의 메모리 맵 및 높이 균형 이진 트리를 나타낸다. 도 2의 스텝 2에 도시된 바와 같이, 제1 소정 블록 B1의 할당 해제에 의해 제1 소정블록 B1은 제3 나머지 블록 A3으로 대체된다.
이때, 도 3의 스텝 3에 도시된 바와 같이, 제3 나머지 블록 A3의 인덱스 정보가 루트 노드인 제2 나머지 블록 A2의 인덱스 정보를 기준으로 좌측에 위치하는 높이 균형 이진 트리를 형성한다. 제3 나머지 블록 A3의 인덱스 정보가 제2 나머지 블록 A2의 인덱스 정보를 기준으로 좌측에 위치하는 이유는 제3 나머지 블록 A3의 메모리 크기가 제2 나머지 블록 A2의 메모리 크기보다 작기 때문이다.
도 2 및 도 3에 도시된 스텝 4(step 4)는 전술한 플로차트가 네번째 수행될 때의 메모리 맵 및 높이 균형 이진 트리를 나타낸다. 도 2의 스텝 2에 도시된 바와 같이, 제3 소정 블록 B3이 할당 요청에 의해 제2 나머지 블록 A2의 메모리 중 중간 부분에 할당된 상태를 나타낸다. 이에 따라, 제2 소정 블록 B2가 할당된 제2 나머지 블록 A2는 제4 나머지 블록 A4 및 제5 나머지 블록 B5로 나뉘어진다.
이때, 도 3의 스텝 4에 도시된 바와 같이, 제4 나머지 블록 A4의 인덱스 정보가 높이 균형 이진 트리의 루트 노드로 대체되고, 제3 나머지 블록 A3 및 제5 나머지 블록 A5의 인덱스 정보들이 높이 균형 이진 트리의 후손 노드들이 된다. 제3 나머지 블록 A3의 메모리 크기는 제4 나머지 블록 A4의 메모리 크기보다 작기 때문에, 제3 나머지 블록 A3의 인덱스 정보는 제4 나머지 블록 A4의 인덱스 정보를 기준으로 좌측에 위치한다. 또한, 제5 나머지 블록 A5의 메모리 크기는 제4 나머지 블록 A4의 메모리 크기보다 크기 때문에, 제5 나머지 블록 A5의 인덱스 정보는 제4 나머지 블록 A4의 인덱스 정보를 기준으로 우측에 위치한다.
전술한 도 2 및 도 3에 도시된 각 단계에 의한 본 발명의 메모리 관리 방법은 일 실시예에 지나지 아니하며, 다양한 형태로 메모리가 할당될 때마다 높이 균형 이진 트리가 형성될 수 있다.
이하, 본 발명에 의한 메모리 관리 장치를 첨부된 도면을 참조하여 다음과 같이 설명한다.
도 3은 본 발명에 의한 메모리 관리 장치를 설명하기 위한 일 실시예의 블록도로서, 메모리 할당 감지부(100) 및 트리 관리부(200)로 구성된다.
메모리 할당 감지부(100)는 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 상기 소정 블록의 할당이 해제되는가를 감지한다. 메모리 할당 감지부(100)는 메모리 중 소정 블록이 할당되었다는 메모리 할당 신호 또는 이미 할당된 소정 블록의 할당이 해제되었다는 할당 해제 신호를 입력단자 IN1을 통해 입력받아서, 소정 블록이 할당되었다는 감지신호 또는 이미 할당된 소정 블록의 할당이 해제되었다는 감지신호를 트리 관리부(200)로 출력한다.
트리 관리부(200)는 할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리한다. 트리 관리부(200)는 메모리 할당 감지부(100)로부터 전송된 감지신호에 응답하여, 메모리 중 할당되지 아니한 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리하고, 관리한 결과를 출력단자 OUT1을 통해 출력한다.
예를 들어, 트리 관리부(200)는 전술한 도 2 및 도 3에 도시된 바와 같이, 소정 블록의 할당에 따라 메모리의 나머지 블록들의 인텍스 정보들에 대해 높이가 균형을 이루는 높이 균형 이진 트리로 정보들을 구현하여 관리한다. 따라서, 순차적인 정보 관리에 비해 검색 속도가 빠른 특징이 있다.
이상에서 설명한 바와 같이, 본 발명에 의한 메모리 관리 방법 및 장치는 높이 균형 이진 트리에 의해 메모리 블록의 인덱스 정보를 관리하도록 함으로써, 순차적으로 정보를 관리하는 것에 비해 보다 빠르게 메모리를 관리할 수 있도록 하는 효과가 있다.
도 1은 본 발명에 의한 메모리 관리 방법을 설명하기 위한 일 실시예의 플로차트이다.
도 2는 메모리 중 소정 블록의 할당에 따른 나머지 블록의 상태를 나타내는 메모리 맵의 일 실시예를 도시한 도면이다.
도 3은 메모리 중 소정 블록의 할당에 따른 인덱스 정보들의 높이 균형 이진 트리의 일 실시예를 도시한 도면이다.
도 4는 본 발명에 의한 메모리 관리 장치를 설명하기 위한 일 실시예의 블록도이다.
〈도면의 주요 부호에 대한 간단한 설명〉
100: 메모리 할당 감지부 200: 트리 관리부

Claims (4)

  1. 메모리를 갖는 전자기기에서 수행되는 메모리 관리 방법에 있어서,
    (a) 상기 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 상기 소정 블록의 할당이 해제되는가를 판단하는 단계; 및
    (b) 상기 메모리 중 상기 소정 블록이 할당되거나 상기 소정 블록의 할당이 해제된다고 판단되면, 할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리하고, 상기 (a) 단계로 진행하는 단계를 구비하는 것을 특징으로 하는 메모리 관리 방법.
  2. 제1 항에 있어서, 상기 (b) 단계는
    상기 나머지 블록들의 메모리 크기에 따라 상기 인덱스 정보들을 관리하는 것을 특징으로 하는 메모리 관리 방법.
  3. 메모리를 갖는 전자기기에 포함되는 메모리 관리 장치에 있어서,
    상기 메모리 중 소정 블록이 할당되는가 또는 이미 할당된 상기 소정 블록의 할당이 해제되는가를 감지하는 메모리 할당 감지부; 및
    할당되지 아니한 메모리의 나머지 블록들에 대한 인덱스 정보들을 높이 균형 이진 트리에 따라 관리하는 트리 관리부를 구비하는 것을 특징으로 하는 메모리 관리 장치.
  4. 제3 항에 있어서, 상기 트리 관리부는
    상기 나머지 블록들의 메모리 크기에 따라 상기 인덱스 정보들을 관리하는 것을 특징으로 하는 메모리 관리 장치.
KR10-2003-0056726A 2003-08-16 2003-08-16 메모리 관리 방법 및 장치 KR100503093B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2003-0056726A KR100503093B1 (ko) 2003-08-16 2003-08-16 메모리 관리 방법 및 장치
US10/918,750 US20050086449A1 (en) 2003-08-16 2004-08-16 Method and apparatus for managing memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0056726A KR100503093B1 (ko) 2003-08-16 2003-08-16 메모리 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20050018293A KR20050018293A (ko) 2005-02-23
KR100503093B1 true KR100503093B1 (ko) 2005-07-21

Family

ID=34510830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0056726A KR100503093B1 (ko) 2003-08-16 2003-08-16 메모리 관리 방법 및 장치

Country Status (2)

Country Link
US (1) US20050086449A1 (ko)
KR (1) KR100503093B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148002A1 (en) * 2006-12-13 2008-06-19 Fleming Matthew D Method and Apparatus for Allocating A Dynamic Data Structure
US8275968B2 (en) * 2009-11-30 2012-09-25 Red Hat, Inc. Managing unallocated storage space using extents and bitmaps
CN111522658A (zh) * 2020-04-14 2020-08-11 西云图科技(北京)有限公司 一种水务系统的内存管理方法
GB2595265A (en) * 2020-05-20 2021-11-24 Imagination Tech Ltd Memory for storing data blocks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06511582A (ja) * 1992-07-24 1994-12-22 マイクロソフト コーポレイション メモリを割り当てそして解放するコンピュータ方法及びシステム
EP0703534B1 (de) * 1994-09-19 2002-05-02 Siemens Aktiengesellschaft Speicherverwaltungssystem eines Rechnersystems
US5930827A (en) * 1996-12-02 1999-07-27 Intel Corporation Method and apparatus for dynamic memory management by association of free memory blocks using a binary tree organized in an address and size dependent manner
US5930829A (en) * 1997-03-31 1999-07-27 Bull Hn Information Systems Inc. Dynamic memory allocation for a random access memory employing separately stored space allocation information using a tree structure
AUPP638698A0 (en) * 1998-10-06 1998-10-29 Canon Kabushiki Kaisha Efficient memory allocator utilising a dual free-list structure
US6411957B1 (en) * 1999-06-30 2002-06-25 Arm Limited System and method of organizing nodes within a tree structure
US6941437B2 (en) * 2001-07-19 2005-09-06 Wind River Systems, Inc. Memory allocation scheme

Also Published As

Publication number Publication date
US20050086449A1 (en) 2005-04-21
KR20050018293A (ko) 2005-02-23

Similar Documents

Publication Publication Date Title
JP5868429B2 (ja) 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置
US7647355B2 (en) Method and apparatus for increasing efficiency of data storage in a file system
US7516166B2 (en) Resource loading
US7188220B2 (en) Method and system for managing the contents of an event log stored within a computer
CN110502357B (zh) 一种栈回溯方法、装置、介质和设备
GB2437561A (en) Methods and apparatus for performing in-service upgrade of software in network processor
US20070073993A1 (en) Memory allocation in a multi-node computer
WO2009098547A1 (en) Memory management
US10049035B1 (en) Stream memory management unit (SMMU)
FR2687812A1 (fr) Systeme de traitement de l'information.
US8140598B2 (en) Creating references in a scoped memory system
US9835461B2 (en) Database management using format description
US20120011166A1 (en) Skip list generation
SE413815B (sv) Databehandlingssystem
CN112328202B (zh) 一种流量控制方法、装置及电子设备和存储介质
KR100503093B1 (ko) 메모리 관리 방법 및 장치
CN112148794A (zh) 智能合约的版本管理方法、装置和存储介质
US7127675B1 (en) Method and system for automatically revising software help documentation
US9891824B2 (en) Sub-block input/output (I/O) commands for storage device including byte stream buffer
CN101751277A (zh) 用于电子装置的数据处理与寻址方法及其电子装置
US20120136871A1 (en) Skip list generation
US7162665B2 (en) Information processing system, method for outputting log data, and computer-readable medium storing a computer software program for the same
US7353323B2 (en) Method, system, and computer-readable medium for updating memory devices in a computer system
CN110209489B (zh) 一种适用于内存页结构的内存管理方法及装置
US6535969B1 (en) Method and apparatus for allocating free memory

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080627

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee