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

메모리 관리 방법 및 장치

Info

Publication number
KR20050018293A
KR20050018293A KR1020030056726A KR20030056726A KR20050018293A KR 20050018293 A KR20050018293 A KR 20050018293A KR 1020030056726 A KR1020030056726 A KR 1020030056726A KR 20030056726 A KR20030056726 A KR 20030056726A KR 20050018293 A KR20050018293 A KR 20050018293A
Authority
KR
South Korea
Prior art keywords
memory
index information
allocation
block
allocated
Prior art date
Application number
KR1020030056726A
Other languages
English (en)
Other versions
KR100503093B1 (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 true KR20050018293A (ko) 2005-02-23
KR100503093B1 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
WO1994002898A1 (en) * 1992-07-24 1994-02-03 Microsoft Corporation Computer method and system for allocating and freeing memory
ES2176214T3 (es) * 1994-09-19 2002-12-01 Siemens Ag Sistema de administracion de memoria de un sistema de ordenador.
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
KR100503093B1 (ko) 2005-07-21
US20050086449A1 (en) 2005-04-21

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
TWI436271B (zh) 具有結果緩衝器之型樣辨識處理器
JP4701321B2 (ja) メモリ管理
US7188220B2 (en) Method and system for managing the contents of an event log stored within a computer
WO2009098547A1 (en) Memory management
GB2437561A (en) Methods and apparatus for performing in-service upgrade of software in network processor
US20080059491A1 (en) System and method for mapping events into a data structure
US11122002B2 (en) Storing messages of a message queue
FR2687812A1 (fr) Systeme de traitement de l'information.
US10049035B1 (en) Stream memory management unit (SMMU)
US9835461B2 (en) Database management using format description
SE413815B (sv) Databehandlingssystem
CN112328202B (zh) 一种流量控制方法、装置及电子设备和存储介质
CN112148794A (zh) 智能合约的版本管理方法、装置和存储介质
KR100503093B1 (ko) 메모리 관리 방법 및 장치
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
KR19980079668A (ko) 병렬 데이타 처리 시스템 및 그 제어 방법
CN110209489B (zh) 一种适用于内存页结构的内存管理方法及装置
US6535969B1 (en) Method and apparatus for allocating free memory
JP2012511775A (ja) 異なるユーザインターフェースコマンドシステムのブリッジングのためのアダプタ
CN110704691A (zh) 一种数据管理方法、装置及电子设备和存储介质
CN113609344B (zh) 字节流状态机的构建方法及装置、电子设备、存储介质

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