KR101355193B1 - 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법 - Google Patents

실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법 Download PDF

Info

Publication number
KR101355193B1
KR101355193B1 KR1020070128557A KR20070128557A KR101355193B1 KR 101355193 B1 KR101355193 B1 KR 101355193B1 KR 1020070128557 A KR1020070128557 A KR 1020070128557A KR 20070128557 A KR20070128557 A KR 20070128557A KR 101355193 B1 KR101355193 B1 KR 101355193B1
Authority
KR
South Korea
Prior art keywords
memory
task
defragmentation
priority
fragmentation
Prior art date
Application number
KR1020070128557A
Other languages
English (en)
Other versions
KR20090061526A (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 KR1020070128557A priority Critical patent/KR101355193B1/ko
Priority to US12/153,526 priority patent/US8051265B2/en
Publication of KR20090061526A publication Critical patent/KR20090061526A/ko
Application granted granted Critical
Publication of KR101355193B1 publication Critical patent/KR101355193B1/ko

Links

Images

Classifications

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

실시간 임베디드 시스템의 메모리 관리 장치 및 메모리 할당/해제/관리 방법{An apparatus for managing memory of a realtime embedded system and methods for allocating/cancelling/managing memory thereof}
본 발명은 임베디드 시스템(embedded system)의 운용장치 및 운용방법에 관한 것으로, 특히 시스템의 실시간성을 보장하고 메모리 자원을 효율적으로 관리하기 위한 메모리 관리 장치 및 메모리 할당/해제/관리 방법과 관련된다.
일반적으로 임베디드 시스템(embedded system)이란 제한된 자원을 이용하여 특정한 목적을 갖는 작업을 처리하기 위한 시스템을 말한다. 대표적인 임베디드 시스템인 휴대폰을 예로 들면, 제한된 자원은 크기, 메모리 및 배터리 용량 등을 의미하고 특정한 목적의 작업은 통신을 위한 호(call)처리 등을 의미한다.
이와 같이 임베디드 시스템은 한정된 자원을 이용하기 때문에 이를 효율적으로 관리하고 운용하는 것이 필수적이다. 특히 제한된 자원 중 거의 모든 작업에 사용되는 메모리(memory) 자원의 경우 효율적 관리가 더욱 중요하다.
임베디드 시스템에서 메모리를 관리하기 위한 방법으로는 가비지 컬렉션(garbage collection)이 있다. 이것은 사용하지 않는 메모리 영역을 수집하여 데 이터를 정리하는 것으로 데이터의 억세스 시간을 단축시키는 효과가 있다.
가비지 컬렉션은 메모리 상의 데이터가 변할 때마다, 즉 데이터가 저장, 삭제 또는 갱신될 때마다 수행되는 것이 일반적이다. 그러나 데이터 변동이 있을 때마다 가비지 컬렉션을 수행하게 되면 데이터 정리를 수행하는 소정 시간 이후에 시스템을 사용해야하는 불편함이 있다. 특히 단말기나 제어대상으로부터 직접성과 시한성을 갖는 자료가 발생할 때마다 즉시 처리하여 그 결과를 출력하거나 응답하여야 하는 실시간 시스템에는 적용할 수가 없다.
이를 개선하고자 메모리 정리 플래그를 이용하여 시스템이 대기 모드에 있는 경우에만 가비지 컬렉션을 수행하는 방법이 등장하게 되었다. 이러한 방식은 메모리 사용이 필요하지 않은 대기 모드에서 데이터를 정리하기 때문에 사용자 대기시간을 줄여 편의성을 높일 수 있는 장점이 있으나, 메모리를 필요로 하는 작업을 수행하는 경우 이를 효과적으로 처리할 수가 없고 여러 작업을 수행해야하는 시스템에서 실시간성을 보장해 주기 어렵다.
본 발명은 전술한 문제점을 고려하여 안출된 것으로, 실시간 임베디드 시스템의 실시간성을 보장하고 메모리 자원을 효율적으로 관리하기 위한 메모리 관리 장치 및 메모리 할당/해제/관리 방법을 제공하는 것을 그 목적으로 한다.
전술한 목적은 단편화된 메모리를 재사용 가능하게 조각 모음을 수행하는 조각 모음 태스크를 이용하되, 이러한 조각 모음 태스크를 적절히 설정된 우선순위에 따라 스케줄링하는 것에 의하여 달성된다.
보다 구체적으로 본 발명에 따른 실시간 임베디드 시스템의 메모리 관리 장치는, 설정된 우선순위에 따라 조각 모음 태스크를 수행하여 단편화된 메모리를 병합하는 조각모음부; 및 태스크의 요청에 따라 메모리의 특정 영역을 할당하거나 해제하며, 메모리의 단편화 정도를 계산하여 상기 조각 모음 태스크의 우선순위를 결정하는 메모리 관리부;를 포함하는 것을 특징으로 한다.
이때, 메모리 관리부는 상기 메모리의 상태 변동이 있을 때마다 메모리의 단편화 정도를 계산하는 것이 바람직하다.
여기서 메모리의 단편화 정도는 단편화된 메모리 조각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 것이 가능하며, 조각 모음 태스크의 우선순위는 메모리의 단편화 정도가 클수록 높게 설정되는 것이 바람직하다.
또한, 본 발명에 따른 실시간 임베디드 시스템의 메모리 관리 방법은, 조각 모음 태스크를 수행하여 메모리를 관리하는 방법에 있어서, 메모리의 상태 변동이 있는지 여부를 판단하는 단계; 및 메모리의 상태 변동이 있는 경우 메모리의 단편 화 정도를 계산하여 메모리의 단편화 정도에 따라 조각 모음 태스크의 우선순위를 결정하는 단계;를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 실시간 임베디드 시스템의 메모리 할당 방법은, (a) 태스크가 요청한 메모리의 양이 현재 할당 가능한 메모리의 양을 초과하는지 여부를 판단하는 단계; (b) 태스크가 요청한 메모리의 양이 현재 할당 가능한 메모리의 양을 초과하는 경우, 조각 모음 태스크의 우선순위를 태스크의 우선순위와 동일하게 설정하는 단계; (c) 상기 우선순위에 따라 조각 모음 태스크를 수행하는 단계; 및 (d) 메모리의 단편화 정도를 계산하여 메모리의 단편화 정도에 따라 조각 모음 태스크의 우선순위를 갱신하는 단계;를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 실시간 임베디드 시스템의 메모리 해제 방법은, 메모리의 해제를 요청하는 태스크에 의해 메모리의 일정 영역이 해제되는 단계; 메모리의 단편화 정도를 계산하여 메모리의 단편화 정도에 따라 조각 모음 태스크의 우선순위를 결정하는 단계; 메모리의 일정 영역이 해제되기 이전의 조각 모음 태스크의 우선순위와 상기 단계에서 결정된 조각 모음 태스크의 우선순위를 비교하는 단계; 상기 단계에서 결정된 조각 모음 태스크의 우선순위가 메모리의 일정 영역이 해제되기 이전의 조각 모음 태스크의 우선순위보다 높은 경우 상기 조각 모음 태스크의 우선순위를 갱신하는 단계;를 포함하는 것을 특징으로 한다.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설 명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 실시간 임베디드 시스템의 메모리 관리 장치의 구성을 나타낸 것이다.
도 1을 참조하면, 본 발명의 실시예에 따른 메모리 관리 장치는 조각모음부(101) 및 메모리 관리부(102)를 포함한다.
조각모음부(101)는 설정된 우선순위에 따라 조각 모음 태스크를 수행하는 부분이다. 조각 모음 태스크(defragment task)란 단편화된 메모리 조각(104)들을 병합하여 메모리(103)의 단편화를 해소하는 과정을 말하며, 우선순위란 다수의 태스크가 스케줄링(scheduling)되는 순서를 말한다. 예컨대, 본 발명의 실시예에 따른 임베디드 시스템에서, 우선순위 3의 제 1 태스크와 우선순위 4의 제 2 태스크가 경합하는 경우, 스케줄러(미도시)는 우선순위가 높은 제 1 태스크가 먼저 수행되도록 스케줄링을 하게 된다. 본 발명의 실시예에 따른 조각 모음 태스크에는 이와 같은 우선순위가 부여되어 상기 우선순위에 따라 조각 모음 태스크가 스케줄링되는 것이 가능하다. 이때 조각 모음 태스크의 우선순위는 메모리의 상태를 반영하여 적절히 조절되는 것이 바람직하며 우선순위와 메모리 상태의 구체적인 관계에 대해서는 후술한다.
조각모음부(101)가 조각 모음 태스크를 수행하는 과정은 종래 기술을 이용하여 다양하게 구현가능하다. 예컨대, 단편화된 메모리 조각(104)들을 모아놓은 조각리스트(105)를 참조하여 상기 단편화된 메모리 조각(104)들을 병합하는 방식을 사용할 수 있다. 다만, 본 발명의 실시예에 따른 조각모음부(101)는 조각 모음 태스크가 수행될 때마다 또는 단편화된 메모리 조각(104)들이 병합될 때마다 후술할 메모리 관리부(102)에 의해 그 우선순위가 결정된다.
메모리 관리부(102)는 태스크의 요청에 따라 메모리(103)의 특정 영역을 할당하거나 해제하는 기능을 수행한다. 이때 상기 태스크는 메모리(103)의 할당 또는 해제를 요청하는 일반적인 태스크를 말하며, 전술한 조각 모음 태스크와 구별되는 개념으로 사용되었다.
또한, 메모리 관리부(102)는 메모리(103)의 단편화 정도를 계산하여 상기 조각 모음 태스크의 우선순위를 결정하는 기능을 수행한다. 메모리(103)의 단편화 정도는 단편화된 메모리 조각(104)들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 것이 가능하다. 따라서 단편화된 조각들이 많을수록 메모리의 단편화 정도는 큰 것으로 볼 수 있다. 전술한 바와 같이, 조각 모음 태스크의 우선순위는 상기 메모리의 단편화 정도에 따라 정해지는데, 상기 메모리의 단편화 정도가 클수록 높게 설정되는 것이 가능하다.
예컨대, 도 2를 참조하면, 왼쪽 열은 메모리의 단편화 정도를 메모리 단편화율로 나타낸 것으로, 단편화된 메모리 조각들의 크기의 총합(SUM)을 가장 큰 단편화된 메모리 조각의 크기(MAX)로 나눈 값을 사용하였다. 따라서, 단편화된 메모리 조각들이 많아 질수록 상기 메모리 단편화율은 증가할 것이다. 또한, 오른쪽 열은 조각 모음 태스크의 우선순위를 나타낸 것으로 상기 메모리 단편화율과 대응된다. 이때, 단편화율이 클수록 조각 모음 태스크가 높은 우선순위를 갖도록 대응되는 것이 가능하다. 여기서 조각 모음 태스크가 높은 우선순위를 갖는다 함은 조각 모음 태스크에 부여된 우선순위 값이 큰 것을 의미하며, 그 수치가 클수록 다른 태스크에 비해 상대적으로 먼저 스케줄링 되는 것이 가능하다.
가장 큰 단편화된 메모리 조각(MAX)은 다른 메모리 조각들보다 크기 때문에 조각난 정도를 대표할 수 있다. 예컨대, SUM=MAX라면 메모리가 조각나 있지 않다는 것을 의미하며, SUM=4*MAX라면 메모리가 적어도 4조각 이상으로 쪼개져 있다는 것을 알 수 있다. 따라서 가장 큰 단편화된 메모리 조각(MAX)은 현재 할당해 줄 수 있는 메모리 양을 나타내고 단편화된 메모리 조각들의 총합(SUM)은 조각을 다 모았을 경우 할당 가능한 메모리 양을 나타내는 것으로 볼 수 있다.
도 2와 같은 우선순위 리스트는 메모리 관리부(102) 또는 별도의 저장부(미도시)에 미리 저장되어 있는 상태이다. 따라서, 메모리 관리부(102)는 메모리의 단편화 정도를 계산하고 상기 우선순위 리스트를 이용하여 조각 모음 태스크의 우선순위를 결정하는 것이 가능하다.
또한, 메모리 관리부(102)는 메모리(103)의 상태 변동이 있는지 여부를 판단하여, 메모리(103)의 상태 변동이 있는 경우 상기 메모리(103)의 단편화 정도를 계산하여 그때그때 조각 모음 태스크의 우선순위가 반영되도록 한다. 메모리(103)의 상태 변동은 메모리 할당/해제를 요청하는 태스크에 의해 메모리(103)의 일정 영역 이 할당되거나 해제되는 경우 발생할 수 있다. 또한, 조각모음부(101)에 의해 조각 모음 태스크가 수행되어 단편화된 메모리 조각(104)이 병합되는 경우에도 발생 가능하다.
즉, 메모리 관리부(102)는 일정한 태스크에 따라 메모리(103)를 할당 또는 해제하되, 메모리(103)의 상태를 계속적으로 감지하여 메모리(103)의 상태가 변동(예컨대, 메모리 할당, 메모리 해제 또는 조각 모음 태스크 수행 등)되는 경우 메모리(103)의 단편화된 정도에 따라 조각 모음 태스크의 우선순위를 조절하여 전체 시스템의 실시간성을 보장하는 것이다.
예컨대, 메모리(103)의 단편화된 정도가 작아서 조각 모음 태스크의 수행이 불필요한 경우 상기 조각 모음 태스크의 우선순위를 낮추어서 일반적인 태스크를 먼저 수행하고, 이러한 태스크가 수행된 결과 메모리(103)의 단편화된 정도가 커진 경우 조각 모음 태스크의 우선순위를 높여서 적절한 시점에 조각 모음 태스크가 수행되도록 하는 것이 가능하다.
또한, 메모리 관리부(102)는 태스크에 의해 메모리 할당이 요청되거나 메모리해제가 이루어지는 경우 다음과 같은 추가 기능을 갖는 것이 가능하다.
메모리 할당에 대해 살펴보면(도 4참조), 어떤 태스크가 메모리 할당을 요청하였는데 요청받은 메모리 양이 할당 가능한 메모리 양을 초과하는 경우, 메모리 관리부(102)는 조각 모음 태스크의 우선순위를 상기 메모리 할당을 요청한 태스크의 우선순위와 같아지도록 변경시키는 기능을 수행한다. 이렇게 되면, 메모리 할당을 요청한 태스크는 대기상태가 되고 조각모음부(101)는 조각 모음 태스크를 수행 하게 된다. 이때 조각모음부(101)는 단편화된 메모리 조각(104)들을 하나씩 병합하여 할당 가능한 메모리 양을 확보하되, 병합된 메모리 양이 상기 태스크가 요청한 메모리 양과 동일해지거나 더 커질 때까지만 조각 모음 태스크를 수행하는 것이 바람직하다.
메모리 해제에 대해 살펴보면(도 6참조), 어떤 태스크에 의해 메모리 해제가 요청되고 이를 처리하여 메모리의 일정 영역이 해제되는 경우, 메모리 관리부(102)는 메모리 상태가 변경되었으므로 메모리의 단편화 정도를 계산하여 조각 모음 태스크의 우선순위를 결정하게 된다. 이때, 메모리 관리부(102)는 메모리의 일정 영역이 해제되기 이전의 조각 모음 태스크의 우선순위와 메모리의 일정 영역이 해제된 이후의 조각 모음 태스크의 우선순위를 비교하여 더 높은 우선순위를 조각 모음 태스크에 부여하는 것이 바람직하다.
도 3은 도 1의 장치를 이용하여 실시간 임베디드 시스템의 메모리를 관리하는 방법에 관한 일 예를 나타낸 것이다.
먼저, 메모리 관리부(102)는 메모리(103)의 상태 변동이 있는지 여부를 판단한다(S301). 예컨대, 메모리(103)의 할당/해제를 요청하는 태스크가 수행되어 상기 메모리(103)의 일정 영역이 할당 또는 해제되었는지 여부 또는 조각모음부(101)가 조각 모음 태스크를 수행하여 단편화된 메모리 조각(104)이 병합되었는지 여부를 판단한다.
만약, 메모리(103)의 상태 변동이 있는 경우, 메모리 관리부(102)는 메모리(103)의 단편화 정도를 계산한다(S302). 상기 단편화 정도는 단편화된 메모리 조 각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 나타낼 수 있으며, 단편화된 메모리 조각들의 크기의 총합을 최대 크기의 단편화된 메모리 조각의 크기로 나눈 값인 메모리 단편화율을 사용하는 것이 가능하다.
이후, 메모리 관리부(102)는 계산된 메모리 단편화 정도에 따라 조각 모음 태스크의 우선순위를 결정한다(S303). 이때 조각 모음 태스크의 우선순위는 메모리의 단편화 정도가 클수록 높게 설정되는 것이 가능하다. 또한, 도 2와 같은 우선순위 리스트를 이용할 수 있다.
상기와 같은 구성 및 방법에 의하면, 조각모음부(101)는 조각 모음 태스크를 수행하되 설정된 우선순위에 따라 조각 모음 태스크를 수행하고, 이러한 조각 모음 태스크의 우선순위는 메모리 관리부(102)에 의해 메모리(103)의 단편화된 정도에 따라 결정되므로 메모리 할당/해제를 요청하는 일반적인 태스크 및 상기 조각 모음 태스크가 우선순위에 따라 적절히 스케줄링된다. 따라서, 전체 시스템의 실시간성 및 메모리 관리 효율을 향상시킬 수 있게 된다.
도 4는 본 발명의 실시예에 따른 실시간 임베디드 시스템의 메모리 할당 방법을 나타낸 것으로, 도 1의 장치를 이용하여 메모리를 할당하는 방식에 관한 일 예이다.
도 4를 참조하면, 메모리의 할당을 요청하는 태스크가 있는 경우, 메모리 관리부(102)는 요청받은 메모리의 양과 할당 가능한 메모리의 양을 비교한다(S401). 만약, 요청받은 메모리의 양이 할당 가능한 메모리의 양보다 작거나 이와 동일한 경우, 메모리(103)의 일정 영역을 할당하고(S404), 메모리의 단편화 정도를 계산하 여 조각 모음 태스크의 우선순위를 갱신(S405)하고 종료한다.
그러나, 요청받은 메모리의 양이 할당 가능한 메모리의 양을 초과하는 경우에는 조각 모음 태스크를 수행하여 단편화된 메모리 조각들을 병합하는 작업을 수행하여야 한다. 이를 위해 메모리 관리부(102)는 조각 모음 태스크의 우선순위를 상기 메모리의 할당을 요청한 태스크의 우선순위와 동일하게 설정한다(S402). 이때, 요청된 메모리의 양을 임의의 변수에 저장하는 추가적인 단계를 수행하는 것도 가능하다.
조각 모음 태스크의 우선순위가 현재 태스크의 우선순위와 같아졌기 때문에 메모리 할당을 요청한 태스크는 홀딩(holding)되고 조각 모음 태스크가 스케줄링되어 조각모음부(101)는 조각 모음 태스크를 수행한다(S403).
조각 모음 태스크가 수행되는 구체적인 과정은 도 5와 같다.
도 5에서, 조각 모음 태스크가 스케줄링되면, 조각모음부(101)는 단편화된 메모리 조각을 하나씩 병합한다(S501). 이어서 메모리 관리부(102)는 메모리 할당이 가능한지 여부를 판단하여, 메모리 할당이 가능한 경우 조각 모음 태스크 과정을 종료하고 그렇지 않으면 위 병합과정을 반복한다(S502). 즉 단편화된 메모리 조각들을 하나씩 병합하되, 상기 병합된 메모리 크기가 요청된 메모리 크기와 동일해지거나 커질 때까지만 상기 과정이 반복된다.
도 5의 조각 모음 태스크는 메모리 할당 요청이 있고 이에 따라 메모리를 할당할 양이 부족한 경우에 단편화된 메모리 조각을 병합하는 경우를 설명하기 위한 것으로 본 발명의 실시예에 따른 조각 모음 태스크 수행방법이 여기에 국한되는 것 은 아니다.
따라서, 메모리 할당 요청이 없는 경우에 조각 모음 태스크가 수행되는 경우에는 단편화된 메모리 조각이 하나씩 병합될 때마다 메모리의 단편화 정도가 계산되고 조각 모음 태스크의 우선순위가 결정되어 전체 시스템 상태에 따라 점진적으로 데이터 정리가 되는 것이 가능하다.
다시 도 4에서, 조각 모음 태스크가 수행되면 메모리 할당이 가능한 상태가 되기 때문에 메모리를 요청한 태스크가 다시 스케줄링되어 메모리 할당이 이루어진다(S404).
메모리 할당이 이루어지면, 메모리 상태가 변경되었기 때문에 메모리 관리부(102)는 메모리의 단편화 정도를 계산하고 계산된 메모리 단편화 정도에 따라 상기 조각 모음 태스크의 우선순위를 갱신한다(S405). 이때 요청된 메모리의 양을 저장한 변수를 다시 0으로 설정하는 것이 가능하다.
우선순위 갱신과 관련하여, 계산된 메모리의 단편화 정도에 따른 우선순위를 일대일로 매핑하여 바꾸는 것이 가능하다. 또한, 위 단계 S401에서, 요청받은 메모리의 크기가 할당 가능한 메모리의 크기보다 작아서 바로 단계 S404가 수행된 경우 조각 모음 태스크의 우선순위를 가장 낮은 순위로 갱신하는 것도 가능하다.
도 6은 본 발명의 실시예에 따른 실시간 임베디드 시스템의 메모리 해제 방법을 나타낸 것으로, 도 1의 장치를 이용하여 메모리를 해제하는 방식에 관한 일 예이다.
도 6을 참조하면, 어떤 태스크가 메모리의 해제를 요청하면 메모리 관리 부(102)는 상기 메모리의 일정 영역을 해제한다(S601).
메모리의 일정 영역이 해제되면, 메모리의 상태가 변동되었으므로 메모리 관리부(102)는 상기 메모리의 단편화 정도를 계산하여 상기 메모리의 단편화 정도에 따른 조각 모음 태스크의 우선순위를 결정한다(S602). 여기서 메모리의 단편화 정도는 전술한 바와 같이 단편화된 메모리 조각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 것이 가능하며, 조각 모음 태스크의 우선순위는 도 2와 같은 우선순위 리스트를 참조하여 메모리의 단편화 정도가 클수록 높게 설정되는 것이 바람직하다.
다음으로, 메모리 관리부(102)는 위 단계 S602에서 결정된 조각 모음 태스크의 우선순위와 상기 메모리의 일정 영역이 해제되기 이전의 조각 모음 태스크의 우선순위를 비교한다(S603).
비교결과 단계 S602에서 결정된 조각 모음 태스크의 우선순위가 메모리의 일정 영역이 해제되기 이전의 조각 모음 태스크의 우선순위보다 높은 경우 단계 S602에서 결정된 우선순위를 부여한다(S604). 만약 그렇지 않으면 메모리 해제 이전의 우선순위를 그대로 유지하고 종료한다.
이와 같은 메모리 할당 및 해제 방법에 의하면, 메모리 할당시, 필요한 만큼만 조각 모음 태스크가 수행되고, 조각 모음 태스크가 수행된 이후 메모리의 단편화된 정도를 반영하여 상기 조각 모음 태스크의 우선순위가 결정되기 때문에 불필요하게 조각 모음 태스크가 수행되는 것을 방지할 수 있다.
또한, 메모리 해제시, 메모리를 해제한 이후에도 메모리의 단편화된 정도가 반영된 우선순위를 조각 모음 태스크에 부여하기 때문에 메모리 변동 상태에 따라 조각 모음 태스크의 우선순위가 적절히 조절되는 것이 가능하다.
결국, 전술한 본 실시예에 의하면, 메모리 상태(즉, 메모리의 단편화 정도)에 따라 조각 모음 태스크의 우선순위가 결정되고 결정된 우선순위에 따라 조각 모음 태스크가 적절히 스케줄링되기 때문에 전체 시스템의 실시간성 및 메모리 효율을 향상시킬 수 있게 되는 것이다.
이상에서 본 발명의 바람직한 실시예에 대하여 설명하였으나 본 발명은 상술한 특정의 실시예에 한정되지 아니한다. 즉, 본 발명이 속하는 기술분야에서 통상의 지식을 가지는 자라면 첨부된 특허청구범위의 사상 및 범주를 일탈함이 없이 본 발명에 대한 다수의 변경 및 수정이 가능하며, 그러한 모든 적절한 변경 및 수정의 균등물들도 본 발명의 범위에 속하는 것으로 간주 되어야 할 것이다.
도 1은 본 발명의 실시예에 따른 메모리 관리 장치의 개략적인 구성을 나타낸 블록도,
도 2는 본 발명의 실시예에 따른 메모리 단편화 정도와 우선순위를 나타낸 참고도,
도 3은 본 발명의 실시예에 따른 메모리 관리 방법을 나타낸 흐름도,
도 4는 본 발명의 실시예에 따른 메모리 할당 방법을 나타낸 흐름도,
도 5는 본 발명의 실시예에 따라 메모리 할당시 조각 모음 태스크가 수행되는 과정을 나타낸 흐름도,
도 6은 본 발명의 실시예에 따른 메모리 해제 방법을 나타낸 흐름도이다.
<도면의 주요부호에 대한 설명>
101 : 조각모음부
102 : 메모리 관리부
103 : 메모리
104 : 단편화된 메모리 조각
105 : 조각리스트

Claims (19)

  1. 설정된 우선순위에 따라 조각 모음 태스크를 수행하여 단편화된 메모리를 병합하는 조각모음부; 및
    태스크의 요청에 따라 메모리의 특정 영역을 할당하거나 해제하며, 상기 메모리의 단편화 정도를 계산하여 상기 조각 모음 태스크의 우선순위를 결정하는 메모리 관리부;를 포함하고 상기 메모리의 단편화 정도는 단편화된 메모리 조각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  2. 제 1 항에 있어서,
    상기 메모리 관리부는 상기 메모리의 상태 변동이 있을 때마다 상기 메모리의 단편화 정도를 계산하는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  3. 제 2 항에 있어서,
    상기 메모리의 상태 변동은 상기 태스크에 의해 메모리의 일정 영역이 할당 또는 해제되거나 상기 조각 모음 태스크가 수행되는 경우에 발생하는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 조각 모음 태스크의 우선순위는 상기 메모리의 단편화 정도가 클수록 높게 설정되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  6. 제 1 항에 있어서,
    상기 메모리 관리부는, 상기 태스크가 요청한 메모리 양이 현재 할당 가능한 메모리 양을 초과하는 경우, 상기 조각 모음 태스크의 우선순위를 상기 메모리를 요청한 태스크의 우선순위와 같아지도록 변경시키는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  7. 제 6 항에 있어서,
    상기 조각모음부는 단편화된 메모리 조각들을 하나씩 병합하여 상기 조각 모음 태스크를 수행하며, 상기 조각 모음 태스크는 병합된 메모리 양이 상기 태스크가 요청한 메모리 양과 동일해지거나 커질 때까지만 수행되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  8. 제 1 항에 있어서,
    상기 메모리 관리부는, 상기 태스크에 의해 상기 메모리의 일정 영역이 해제되는 경우, 상기 메모리의 일정 영역이 해제되기 이전의 상기 조각 모음 태스크의 우선순위와 새롭게 결정된 상기 조각 모음 태스크의 우선순위를 비교하여 상기 조각 모음 태스크의 우선순위를 갱신하는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 장치.
  9. 조각 모음 태스크를 수행하여 메모리를 관리하는 방법에 있어서,
    상기 메모리의 상태 변동이 있는지 여부를 판단하는 단계; 및
    상기 메모리의 상태 변동이 있는 경우 상기 메모리의 단편화 정도를 계산하여 상기 메모리의 단편화 정도에 따라 상기 조각 모음 태스크의 우선순위를 결정하는 단계;를 포함하고 상기 메모리의 단편화 정도는 단편화된 메모리 조각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 방법.
  10. 제 9 항에 있어서,
    상기 메모리의 상태 변동은 상기 태스크에 의해 메모리의 일정 영역이 할당 또는 해제되거나 상기 조각 모음 태스크가 수행되는 경우에 발생하는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 방법.
  11. 삭제
  12. 제 9 항에 있어서,
    상기 조각 모음 태스크의 우선순위는 상기 메모리의 단편화 정도가 클수록 높게 설정되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 관리 방법.
  13. (a) 태스크가 요청한 메모리의 양이 현재 할당 가능한 메모리의 양을 초과하는지 여부를 판단하는 단계;
    (b) 상기 태스크가 요청한 메모리의 양이 현재 할당 가능한 메모리의 양을 초과하는 경우, 조각 모음 태스크의 우선순위를 상기 태스크의 우선순위와 동일하게 설정하는 단계;
    (c) 상기 우선순위에 따라 상기 조각 모음 태스크를 수행하는 단계; 및
    (d) 상기 메모리의 단편화 정도를 계산하여 상기 메모리의 단편화 정도에 따라 상기 조각 모음 태스크의 우선순위를 갱신하는 단계;를 포함하고 상기 메모리의 단편화 정도는 단편화된 메모리 조각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 할당 방법.
  14. 제 13 항에 있어서,
    상기 (c) 단계는 단편화된 메모리 조각들을 하나씩 병합하되, 상기 병합된 메모리 양이 상기 태스크가 요청한 메모리 양과 동일해지거나 커질 때까지만 수행되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 할당 방법.
  15. 삭제
  16. 제 13 항에 있어서,
    상기 조각 모음 태스크의 우선순위는 상기 메모리의 단편화 정도가 클수록 높게 설정되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 할당 방법.
  17. 메모리의 해제를 요청하는 태스크에 의해 상기 메모리의 일정 영역이 해제되는 단계;
    상기 메모리의 단편화 정도를 계산하여 상기 메모리의 단편화 정도에 따라 조각 모음 태스크의 우선순위를 결정하는 단계;
    상기 메모리의 단편화 정도는 단편화된 메모리 조각들의 총합과 최대 크기의 단편화된 메모리 조각의 비율로 계산되는 단계;
    상기 메모리의 일정 영역이 해제되기 이전의 상기 조각 모음 태스크의 우선순위와 상기 단계에서 결정된 조각 모음 태스크의 우선순위를 비교하는 단계; 및
    상기 단계에서 결정된 조각 모음 태스크의 우선순위가 상기 메모리의 일정 영역이 해제되기 이전의 상기 조각 모음 태스크의 우선순위보다 높은 경우 상기 조각 모음 태스크의 우선순위를 갱신하는 단계;를 포함하는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 해제 방법.
  18. 삭제
  19. 제 17 항에 있어서,
    상기 조각 모음 태스크의 우선순위는 상기 메모리의 단편화 정도가 클수록 높게 설정되는 것을 특징으로 하는 실시간 임베디드 시스템의 메모리 해제 방법.
KR1020070128557A 2007-12-11 2007-12-11 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법 KR101355193B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070128557A KR101355193B1 (ko) 2007-12-11 2007-12-11 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법
US12/153,526 US8051265B2 (en) 2007-12-11 2008-05-20 Apparatus for managing memory in real-time embedded system and method of allocating, deallocating and managing memory in real-time embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070128557A KR101355193B1 (ko) 2007-12-11 2007-12-11 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법

Publications (2)

Publication Number Publication Date
KR20090061526A KR20090061526A (ko) 2009-06-16
KR101355193B1 true KR101355193B1 (ko) 2014-01-27

Family

ID=40722867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070128557A KR101355193B1 (ko) 2007-12-11 2007-12-11 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법

Country Status (2)

Country Link
US (1) US8051265B2 (ko)
KR (1) KR101355193B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101460932A (zh) * 2006-06-08 2009-06-17 Nxp股份有限公司 用于嵌入式设备远程解碎片化的设备
KR101198400B1 (ko) * 2008-12-16 2012-11-07 한국전자통신연구원 메모리 관리 장치 및 방법
KR101627273B1 (ko) * 2009-06-23 2016-06-07 삼성전자주식회사 방송수신장치 및 그의 메모리 관리방법
KR101039396B1 (ko) * 2010-05-28 2011-06-07 (주)다윈텍 플래시 메모리의 조각난 저장 영역을 정리하는 방법 및 그를 위한 프로그램을 기록한 컴퓨터로 독출 가능한 기록매체
US8918617B2 (en) * 2012-09-14 2014-12-23 International Business Machines Corporation Defragmentation of storage class memory managed in extents
KR102317599B1 (ko) * 2014-05-26 2021-10-26 삼성전자 주식회사 전자 장치 및 전자 장치의 단편화 분석 방법
US9760288B2 (en) 2015-02-18 2017-09-12 International Business Machines Corporation Determining causes of external fragmentation of memory
CN105302738B (zh) * 2015-12-09 2018-09-11 北京东土科技股份有限公司 一种内存分配方法及装置
KR102653373B1 (ko) * 2018-09-13 2024-04-02 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11520695B2 (en) 2021-03-02 2022-12-06 Western Digital Technologies, Inc. Storage system and method for automatic defragmentation of memory
US20230097115A1 (en) * 2021-09-27 2023-03-30 Advanced Micro Devices, Inc. Garbage collecting wavefront
US11809747B2 (en) 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation
US11809736B2 (en) 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for quantifying storage fragmentation and predicting performance drop
US11847343B2 (en) 2021-12-22 2023-12-19 Western Digital Technologies, Inc. Storage system and method for non-blocking coherent re-writes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903757A (en) * 1992-09-10 1999-05-11 International Business Machines Corporation Monitoring and handling of exception conditions in computer system
KR20070086786A (ko) * 2004-12-30 2007-08-27 인텔 코포레이션 메모리 단편화를 감소시키는 방법, 제조물 및 컴퓨터시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63271646A (ja) 1987-04-30 1988-11-09 Toshiba Corp ガ−ベジコレクシヨン発生管理方式
JPH04281539A (ja) 1991-03-08 1992-10-07 Sony Corp データ管理方式
JP2858498B2 (ja) 1992-02-07 1999-02-17 三菱電機株式会社 メモリ管理装置
US6611858B1 (en) 1999-11-05 2003-08-26 Lucent Technologies Inc. Garbage collection method for time-constrained distributed applications
JP2002358492A (ja) 2001-05-31 2002-12-13 Dainippon Printing Co Ltd Icカード及びその擬似並列処理プログラム
KR100554800B1 (ko) 2003-08-08 2006-02-22 엘지전자 주식회사 파일시스템의 가비지 콜렉션 관리방법
KR100671692B1 (ko) 2005-03-03 2007-01-19 엘지전자 주식회사 응용 프로그램에 따라 개별적인 주기를 갖는 가비지 컬렉션방법 및 이를 위한 단말기
US7409522B1 (en) * 2005-10-26 2008-08-05 Network Appliance, Inc. Method and system for reallocating data in a file system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903757A (en) * 1992-09-10 1999-05-11 International Business Machines Corporation Monitoring and handling of exception conditions in computer system
KR20070086786A (ko) * 2004-12-30 2007-08-27 인텔 코포레이션 메모리 단편화를 감소시키는 방법, 제조물 및 컴퓨터시스템

Also Published As

Publication number Publication date
US8051265B2 (en) 2011-11-01
US20090150633A1 (en) 2009-06-11
KR20090061526A (ko) 2009-06-16

Similar Documents

Publication Publication Date Title
KR101355193B1 (ko) 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법
US7590816B2 (en) Computer system, management computer and storage system, and storage area allocation amount controlling method
US7206890B2 (en) System and method for reducing accounting overhead during memory allocation
US20120278530A1 (en) Enforcing system intentions during memory scheduling
US8271550B2 (en) Memory piece categorization
CN103366022B (zh) 信息处理系统及其处理方法
US20110307677A1 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
US20120311598A1 (en) Resource allocation for a plurality of resources for a dual activity system
JP3832341B2 (ja) メモリプール管理方式
CN115269190A (zh) 内存分配方法、装置、电子设备、存储介质及产品
US6631446B1 (en) Self-tuning buffer management
CN114385370B (zh) 内存分配方法、系统、设备及介质
WO2016115798A1 (zh) 存储空间分配方法、存储空间分配装置和终端
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP2003150417A (ja) 携帯情報通信端末
JP2004030567A (ja) キューを維持するための方法及び装置
JP5351839B2 (ja) オーダ処理方法、プログラムおよびネットワークシステム
CN114640630A (zh) 一种流量管控方法、装置、设备及可读存储介质
JP2004246592A (ja) ジョブ実行管理装置
US20060107018A1 (en) System and method for managing an electronic storage volume
JP2008033838A (ja) メモリ管理装置及びメモリ管理方法
KR101383793B1 (ko) 시스템 온 칩에서 메모리 할당 방법 및 장치
JP2016206729A (ja) 情報処理装置およびその制御方法、並びにプログラム
KR101980581B1 (ko) 탠덤 시스템의 메모리 관리방법
CN108009005A (zh) 一种线程池管理方法及装置

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
FPAY Annual fee payment

Payment date: 20161219

Year of fee payment: 4