KR20050033327A - 실시간 운영체제 기반의 메모리 관리 시스템 - Google Patents

실시간 운영체제 기반의 메모리 관리 시스템 Download PDF

Info

Publication number
KR20050033327A
KR20050033327A KR1020030069319A KR20030069319A KR20050033327A KR 20050033327 A KR20050033327 A KR 20050033327A KR 1020030069319 A KR1020030069319 A KR 1020030069319A KR 20030069319 A KR20030069319 A KR 20030069319A KR 20050033327 A KR20050033327 A KR 20050033327A
Authority
KR
South Korea
Prior art keywords
memory
user program
return
module
allocation
Prior art date
Application number
KR1020030069319A
Other languages
English (en)
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 KR1020030069319A priority Critical patent/KR20050033327A/ko
Publication of KR20050033327A publication Critical patent/KR20050033327A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • 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/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 실시간 운영체제(Real Time Operating System)를 기반으로 하는 시스템에서의 각 사용자 프로그램의 메모리 히프(Memory Heap) 영역에 대한 할당 및 반환 처리를 모니터링하여 효율적인 메모리 관리를 수행할 수 있도록 한 실시간 운영체제 기반의 메모리 관리 시스템에 관한 것이다.
본 발명은 실시간 운영체제를 기반으로 하는 시스템에서 사용자 프로그램의 메모리 할당 및 반환시 실시간 운영체제에서 제공하는 기능 함수를 직접 호출하지 않고 API(Application Program Interface) 인터페이스 호출을 통해 해당되는 메모리 히프 영역을 할당 및 반환함으로써, 실시간 운영체제의 태스크 제어 블록 등을 이용한 사용자 프로그램 인지 방법을 사용하지 않고도 메모리 할당 및 반환시 보다 다양한 정보를 수집할 수 있게 된다.
또한, 본 발명은 메모리 할당 및 반환시 메모리 사용 상황에 대한 각 사용자 프로그램별 정보를 별도의 메모리 할당 테이블에 기록하여 관리함으로써, 보다 정확한 메모리 장애 예측 및 장애 발생에 대한 보고 기능을 제공할 수 있게 되고, 이에 따라 신속한 장애 복구가 가능해 지는 등 보다 안정적이고 효율적으로 메모리 관리를 수행할 수 있게 된다.

Description

실시간 운영체제 기반의 메모리 관리 시스템{Memory Management System Over The Real Time Operating System}
본 발명은 실시간 운영체제 기반의 메모리 관리에 관한 것으로, 특히 실시간 운영체제를 기반으로 하는 시스템에서의 각 사용자 프로그램의 메모리 히프 영역에 대한 할당 및 반환 처리를 모니터링하여 효율적인 메모리 관리를 수행할 수 있도록 한 실시간 운영체제 기반의 메모리 관리 시스템에 관한 것이다.
일반적으로, 내장형 시스템(Embedded System)을 운용하는데 있어 가장 중요한 자원(resource)은 중앙처리장치(CPU)와 함께 기억장치인 메모리가 중요한 자원으로 인식되고 있는데, 이는 내장형 시스템의 CPU 동작 과정에서 메모리는 코드의 패치와 데이터 저장 등을 위하여 계속적으로 사용되기 때문으로, 이러한 이유로 인해 메모리 공간에 대한 효율적인 사용은 시스템 전체의 효율성과 안정성에 직접적인 영향을 끼친다고 할 수 있다.
그리고, 전술한 내장형 시스템의 메모리 구성은 첨부된 도면 도 1에 도시된 바와 같이, 사용자 프로그램에 대한 코드와 데이터가 각각 저장되는 코드 영역(Code Area)과 데이터 영역(Data Area) 및 히프 영역(heap Area)과 스택 영역(Stack Area)을 포함하여 이루어지는데, 이때 메모리 히프 영역은 도 2의 (가)에 도시한 바와 같이 사용자 프로그램의 용도에 따라 특정 영역을 할당받아 사용하게 되며, 할당받은 히프 영역은 사용하는 용도가 완료된 경우에 다른 사용자 프로그램에서 할당받아 사용할 수 있도록 도 2의 (나)와 같이 반환해야 한다.
이러한 메모리 히프 영역에 대한 할당과 반환 동작에 있어, 사용자 프로그램의 오류로 인하여 사용 용도가 완료된 경우에도 반환하지 않거나, 반환하더라도 기존에 할당받은 크기보다 작은 크기를 반환하는 등의 동작이 반복되는 경우 반환되지 않고 점유된 메모리 공간은 계속적으로 소모됨에 따라 어느 시점에서는 메모리 부족 현상 즉, 메모리 쓰레기(memory garbage) 또는 메모리 단편화(memory fragmentation)가 발생되는 문제점이 있었는데, 이는 초기 시스템 설계시에 요구된 메모리 요구 크기를 초과한 경우에 해당하는 것이 아니라 잘못된 메모리 자원 관리에 해당하는 것이므로, 어떠한 방법으로든 사전에 감지하여 장애 발생 요인을 찾아내야 하며, 시스템 운용자에게 메모리 운용상의 문제점에 대한 주의를 환기시키는 방법이 제공되어야 할 것이다.
그런데, 종래의 내장형 시스템에서는 메모리 히프 영역에 대한 감시 기능이 제공되고 있지 않으며, 대부분의 경우 실시간 운용체제(RTOS ; Real Time Operating System)가 제공하는 전체 메모리 크기에 대하여 현재 사용중인 메모리 크기만을 알 수 있을 뿐인데, 그 이유는 상용 시스템에서 채택하고 있는 메모리 쓰레기 수집(memory garbage collection) 기법은 동작시 오버헤드가 커서 실시간 응답을 요구하는 내장형 시스템의 운용 조건을 만족시킬 수 없기 때문이다.
따라서, 종래의 내장형 시스템에서는 시스템 운용중에 메모리 부족 현상이 발생하는 경우 어떠한 원인에 의하여 발생되었는지를 알 수 없고, 이러한 메모리 현상을 제공한 사용자 프로그램(RTOS 상의 태스크로 표현됨)도 알아내기 어렵다는 문제점이 있으며, 이에 시스템 전반에 걸쳐 불특정하게 나타날 수 있는 장애 상황에 대하여 효율적으로 대처하지 못하고, 또한 수동적인 대응체계에 따라 장애 내용에 효과적인 디버깅이 이루어지지 않을 수도 있다.
즉, 종래 방식으로는 전체 메모리 크기에 대비하여 현재 점유중인 메모리 소모량만을 파악할 수 있으며, 메모리 히프 영역에 대한 각 사용자 프로그램별 소모량과 반환량을 파악할 수 없기 때문에 사용자 프로그램의 논리적인 오류로 인하여 발생하는 문제점의 원인을 찾기 어렵고, 따라서 사용자 프로그램에 대한 코드 검사(code inspection)를 수행하여 오류를 발생시킨 프로그램 코드를 찾아내는 복잡한 작업을 통해서만 정확한 문제점을 찾아낼 수 있는 등 내장형 시스템의 유지 보수가 어렵다는 문제점이 있었다.
다시 말해서, 실시간 운용체제를 기반으로 구동되는 내장형 시스템에서 메모리 히프 영역은 사용자 프로그램의 요청에 따라 커널 프리미티브(kernel primitive)의 동작에 의해 할당(allocation) 및 반환(free)되며, 이와 같이 커널 호출 서비스에 의해 수행되므로 전체 메모리 크기에 대비한 사용 영역 및 반환 영역을 감지할 수 있다.
하지만, 종래의 실시간 운영체제 환경에서는 사용자 프로그램이나 태스크별 메모리 사용량에 대한 관리는 이루어지지 않고, 전체 메모리 크기에 대비하여 점유된 메모리 크기만을 알 수 있도록 구성되어 있다.
한편, 전술한 내장형 시스템에서의 메모리 히프 할당 및 반환과 관련하여 발생된 장애는 시스템 운용중 예측하지 못한 시점에 발생하는 것이 대부분이며, 장애 발생의 시간적인 차이가 존재할 수도 있는데, 이러한 경우 장애에 대한 어떠한 조치를 취하기 위해서는 하드웨어적인 장애인지, 소프트웨어적인 장애인지를 구분할 필요가 있다.
그런데, 종래에는 소프트웨어적인 장애로 판정되는 경우 해당되는 장애를 유발한 사용자 프로그램을 구분할 방법이 제공되지 않고 있으며, 또한 장애가 시간적인 간격을 두고 시스템 전반에 걸쳐 불특정하게 발생하는 경우 해당되는 장애 원인을 파악하여 대응할 필요가 있지만, 재기동에 의해 해당 프로세서의 메모리 공간까지 초기화됨에 따라 시스템 운용자가 장애 원인을 파악할 방법이 없으며, 따라서 장애 원인이 무엇이었는지 정확하게 판단하지 못한 상태에서 경험에 의하여 대처하는 비효율적인 작업을 수행하게 되는 문제점이 있었다.
전술한 종래의 메모리 관리 기법에서 히프 영역에 대한 관리는 할당 및 반환 동작으로 인한 전체 메모리 소모량만을 관리하는 방식이지만, 메모리 히프 영역에 대한 할당 및 반환 동작은 대부분 실시간 운영체제의 커널에 의해 수행되는 기능으로, 시스템 운용자의 필요에 따라 수정되기가 어렵고, 또한 유닉스(UNIX)와 같은 상용 운영체제에서 사용하는 메모리 쓰레기 수집이나 메모리 단편화(memory fragmentation) 방지 알고리즘은 그 수행시간이 길어서 실시간 운영체제를 기반으로 하는 내장형 시스템에는 적용할 수 없다는 단점이 있다.
전술한 바와 같이, 종래의 실시간 운영체제를 기반으로 하는 내장형 시스템에서는 메모리 부족 현상에 대한 어떠한 사전 예측 방안을 제공하지 않음으로써 장애 발생 이전이나 이후에 운용자가 대처할 방법이 없으며, 따라서 운용자는 메모리 할당이 불가능해지는 시점이 되어야만 메모리 부족을 파악할 수 있다는 문제점이 있고, 결국 그 시점에서는 어떠한 요인에 의해 메모리 부족 현상이 유발되었는지에 대한 장애 분석이 어려운 문제점이 있었다.
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로 그 목적은, 실시간 운영체제를 기반으로 하는 시스템에서 사용자 프로그램의 메모리 할당 및 반환시 실시간 운영체제에서 제공하는 기능 함수를 직접 호출하지 않고도 API 인터페이스 호출을 통해 해당되는 메모리 히프 영역을 할당 및 반환할 수 있도록 하는데 있다.
본 발명의 다른 목적은, API 인터페이스 호출을 통해 메모리 할당 및 반환 처리를 수행함으로써, 실시간 운영체제의 태스크 제어 블록 등을 이용한 사용자 프로그램 인지 방법을 사용하지 않고도 메모리 할당 및 반환시 보다 다양한 정보를 수집할 수 있도록 하는데 있다.
본 발명의 또 다른 목적은, 메모리 할당 및 반환시 메모리 사용 상황에 대한 각 사용자 프로그램별 정보를 별도의 메모리 할당 테이블에 기록하여 관리함으로써, 정확한 메모리 장애 예측과 장애 발생에 대한 보고 및 신속한 장애 복구가 가능하도록 하는 등 보다 안정적이고 효율적인 메모리 관리를 수행할 수 있도록 하는데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징은, 실시간 운영체제를 기반으로 하는 시스템에서 사용자 프로그램의 메모리 히프 할당 및 반환을 위한 API 인터페이스를 제공하는 인터페이스 모듈과; 상기 인터페이스 모듈에 의한 메모리 사용 상황에 대한 태스크별 통계 정보를 메모리 할당 테이블에 기록하여 관리하는 통계 모듈과; 상기 통계 모듈에 의해 수집된 통계 정보를 기반으로 한 장애 상황 보고 기능을 수행하는 장애 보고 모듈을 포함하는 실시간 운영체제 기반의 메모리 관리 시스템을 제공하는데 있다.
여기서, 상기 인터페이스 모듈은, 사용자 프로그램에 의해 호출되어 메모리 히프 할당 및 반환 처리를 수행하고 그 동작을 감지하여 그 처리 결과를 통계 모듈로 보고하는 것을 특징으로 한다.
또한, 상기 인터페이스 모듈은, 사용자 프로그램에 의해 호출된 메모리 할당 API에서의 감지 기능을 이용하여 해당되는 사용자 프로그램이 메모리 히프 영역의 메모리를 할당받는 동작을 감지하고 그 처리 결과를 보고하는 메모리 할당 감지 모듈과; 메모리 반환 API에서의 감지 기능을 이용하여 상기 사용자 프로그램이 할당받은 메모리를 반환하는 동작을 감지하고 그 처리 결과를 보고하는 메모리 반환 감지 모듈을 포함하는 것을 특징으로 한다.
그리고, 상기 통계 모듈은, 인터페이스 모듈로부터 보고되는 메모리 할당 및 반환 처리 결과에 따라 해당되는 메모리 사용 상황에 대한 태스크별 정보를 메모리 할당 테이블에 기록하여 그 통계 정보를 관리하고, 운용자의 요청에 따라 상기 메모리 할당 테이블에 기록된 통계 정보를 출력해 주는 것을 특징으로 한다.
이때, 상기 태스크별 정보는, 메모리 할당 및 반환을 위해 인터페이스 모듈을 호출한 사용자 프로그램(태스크) 명칭과 호출 시점 및 메모리 할당량과 반환량에 대한 정보를 포함하는 것을 특징으로 한다.
또한, 상기 장애 보고 모듈은, 통계 모듈에 의해 수집되어 메모리 할당 테이블에 기록되어 있는 각 태스크별 메모리 사용 상황에 대한 통계 정보를 분석하여 기설정된 메모리 히프 사용 한계치에 도달하거나, 특정 사용자 프로그램의 메모리 할당량과 반환량의 차이가 큰 경우에 이를 사용자 프로그램의 장애 처리 기능과 연동하여 운용자에게 통보해 주는 장애 상황 보고 기능을 수행하고, 메모리 장애의 원인과 유형을 포함하는 장애 이력 정보를 취합하여 보고하는 기능을 수행하는 것을 특징으로 한다.
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세하게 설명하면 다음과 같다.
본 발명에 따른 실시간 운용체제를 기반으로 하는 내장형 시스템에서는 각 사용자 프로그램의 메모리 히프 영역에 대한 할당 및 반환 동작을 감지하여 이에 대한 사용자 프로그램별 사용 현황을 모니터링하고, 부적합한 메모리 사용에 대한 경고를 시스템 운용자에게 통보하고자 하는데, 이를 위한 내장형 시스템의 메모리 관리 구조는 첨부한 도면 도 3에 도시한 바와 같이, 사용자 프로그램(10)의 메모리 히프 할당 및 반환을 위한 API(Application Program Interface) 인터페이스를 제공하는 인터페이스 모듈(20)과, 인터페이스 모듈(20)에 의한 메모리 사용 상황에 대한 태스크별 통계 정보를 관리하는 통계 모듈(30)과, 통계 모듈(30)에 의해 수집된 통계 정보를 기반으로 한 장애 상황 보고 기능을 수행하는 장애 보고 모듈(40)을 포함하여 이루어진다.
여기서, 인터페이스 모듈(20)은 사용자 프로그램(10)에 의해 호출되어 메모리 히프 할당 및 반환을 수행하고 그 동작을 감지하여 그 처리 결과를 통계 모듈(30)로 보고하는데, 이는 사용자 프로그램(10)에 의해 호출된 메모리 할당 API에서의 감지 기능을 이용하여 해당되는 사용자 프로그램(10)이 메모리 히프 영역의 메모리를 할당받는 동작을 감지하고 그 처리 결과를 보고하는 메모리 할당 감지 모듈(21)과, 메모리 반환 API에서의 감지 기능을 이용하여 사용자 프로그램(10)이 할당받은 메모리를 반환하는 동작을 감지하고 그 처리 결과를 보고하는 메모리 반환 감지 모듈(22)을 포함한다.
통계 모듈(30)은 인터페이스 모듈(20)의 메모리 할당 감지 모듈(21) 및 메모리 반환 감지 모듈(22)로부터 보고되는 메모리 할당 및 반환 처리 결과에 따라 해당되는 메모리 사용 상황에 대한 태스크별 정보 즉, 메모리 할당 및 반환을 위해 인터페이스 모듈(20)을 호출한 사용자 프로그램(태스크) 명칭(Task ID)과 호출 시점(Call Time) 및 메모리 할당량(Alloc size)과 반환량(Free size) 등의 정보를 메모리 할당 테이블 저장부(35)에 기록하여 그 통계 정보를 관리하고, 운용자의 요청에 따라 메모리 할당 테이블 저장부(35)에 기록된 통계 정보를 출력해 준다.
장애 보고 모듈(40)은 통계 모듈(30)에 의해 수집되어 메모리 할당 테이블 저장부(35)에 기록되어 있는 각 태스크별 메모리 사용 상황에 대한 통계 정보를 분석하여 기설정된 메모리 히프 사용 한계치에 도달하거나, 특정 사용자 프로그램(10)의 메모리 할당량과 반환량의 차이가 큰 경우에 이를 사용자 프로그램(10)의 장애 처리 기능과 연동하여 운용자에게 통보해 주는 장애 상황 보고 기능을 수행하며, 또한 장애 이력 정보(메모리 장애의 원인과 유형)를 취합하여 주기적으로 또는 운용자의 요구에 따라 보고하는 기능을 수행한다.
그리고, 상술한 내장형 시스템의 메모리 관리 구조에 있어서, 인터페이스 모듈(20)의 메모리 할당 및 반환 API의 구성은 실시간 운영체제 커널(Kernel)의 수정없이 작성할 수 있으므로, 상용 실시간 운영체제와 같이 커널 자원을 수정할 수 없는 경우에도 적용할 수 있으며, 또한 사용자 프로그램(10)은 직접적으로 메모리 할당이나 반환을 위한 함수(memory allocation function, allocation free function)를 호출하지 않고 인터페이스 모듈(20)이 되는 API 인터페이스를 호출함에 따라 사용자 프로그램(10)과 API 인터페이스 사이에 다양한 매개변수(parameter)의 정의가 가능하므로 기능 확장이 용이하다.
상술한 바와 같은 실시간 운영체제를 기반으로 한 내장형 시스템에서의 메모리 관리 동작을 상세하게 설명하면 다음과 같다.
먼저, 내장형 시스템에서 임의의 사용자 프로그램(10) 운용중에 일정크기의 메모리 히프 영역을 할당받고자 하는 경우 해당되는 사용자 프로그램(10)에서는 해당되는 메모리 할당을 위해 기설정된 매개변수를 이용하여 API 인터페이스를 제공하는 인터페이스 모듈(20)을 호출하게 된다.
그러면, 인터페이스 모듈(20)의 메모리 할당 감지 모듈(21)에서는 사용자 프로그램(10) 운용에 필요한 메모리 영역을 할당하기 위해 실시간 운영체제에서 제공하는 메모리 할당 함수(mem_alloc())를 호출하여 필요로 하는 크기의 메모리 히프 영역을 할당한 후, 그 처리 결과 즉, 메모리 할당 처리 결과를 통계 모듈(30)로 보고하게 되며, 이때 통계 모듈(30)에서는 메모리 할당 감지 모듈(21)로부터 보고되는 메모리 할당 처리 결과에 따라 해당되는 메모리 사용 상황에 대한 태스크별 정보 즉, 메모리 할당 및 반환을 위해 인터페이스 모듈(20)을 호출한 사용자 프로그램(태스크) 명칭(Task ID)과 호출 시점(Call Time) 및 메모리 할당량(Alloc size) 등의 정보를 메모리 할당 테이블 저장부(35)에 기록하여 관리하게 된다.
이후, 사용자 프로그램(10)에 의한 메모리 사용이 완료되면 인터페이스 모듈(20)의 메모리 반환 감지 모듈(22)에서는 앞에서 할당된 메모리 영역을 반환하기 위해 실시간 운영체제에서 제공하는 메모리 반환 함수(free())를 호출하여 해당되는 메모리 히프 영역을 반환한 후, 그 처리 결과 즉, 메모리 반환 처리 결과를 통계 모듈(30)로 보고하게 되며, 이때 통계 모듈(30)에서는 메모리 반환 감지 모듈(22)로부터 보고되는 메모리 반환 처리 결과에 따라 메모리 할당 테이블 저장부(35)에 기록되어 관리되고 있는 대응하는 태스크별 정보 영역에 메모리 반환량(Free size)에 대한 정보를 기록하게 된다.
또한, 통계 모듈(30)에서는 해당되는 메모리 할당 및 반환 처리에 따른 통계 정보와, 각 사용자 프로그램(10)들의 메모리 사용 내역을 메모리 할당 테이블 저장부(35)에 기록하여 관리하게 되며, 운용자 요청이 있는 경우 해당되는 메모리 할당 테이블 저장부(35)에 기록된 통계 정보를 출력해 주게 된다.
이때, 장애 보고 모듈(40)에서는 메모리 할당 테이블 저장부(35)를 액세스하여 통계 모듈(30)에 의해 수집된 각 태스크별 메모리 사용 상황에 대한 통계 정보를 분석하여 장애 여부를 확인하게 된다.
즉, 메모리 할당 테이블 저장부(35)에 기록된 메모리 사용 현황을 기반으로 특정 사용자 프로그램(10)의 잘못된 동작으로 인해 메모리 사용상의 문제점이 발생하였는지, 메모리 할당량이 기설정된 메모리 히프 사용 한계치에 도달하였는지, 또한 특정 사용자 프로그램(10)에 대한 메모리 할당량과 메모리 반환량에 차이가 있는지 확인함으로써 장애 여부를 확인하게 되며, 이때 메모리 장애로 확인되는 경우 사용자 프로그램(10)의 장애 처리 기능과 연동하여 이벤트 발생이나 메시지 전달 형태로 해당되는 메모리 장애 정보(장애 원인, 유형 등)를 통보해 주게 되고, 이로써 잘못된 사용자 프로그램(10)의 동작으로 인해 발생되는 메모리 부족 현상에 대해 실질적인 원인 분석이 가능해진다.
그리고, 상술한 메모리 장애 정보를 통보해 주는데 있어, 상술한 내장형 시스템이 TCP/IP 인터페이스를 통해 외부 인터넷과 연동이 가능한 경우 해당되는 메모리 장애 원인과 유형 등에 대한 정보를 이메일 형태로 통보해 줄 수도 있다.
또한, 본 발명에 따른 실시예는 상술한 것으로 한정되지 않고, 본 발명과 관련하여 통상의 지식을 가진자에게 자명한 범위내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있는데, 상술한 실시예에서는 내장형 시스템에 대한 메모리 관리 방식을 설명하고 있으나, 이는 실시간 운영체제의 커널을 변경하는 방식이 아닌 사용자 프로그램과 실시간 운영체제 연결시 API 인터페이스를 사용하도록 함으로써 실시간 운영체제나 사용자 프로그램의 종류에 상관없이 쉽게 인터페이스를 정의하여 구현할 수 있을 것이다.
이상과 같이, 본 발명은 실시간 운영체제를 기반으로 하는 시스템에서 사용자 프로그램의 메모리 할당 및 반환시 실시간 운영체제에서 제공하는 기능 함수를 직접 호출하지 않고 API 인터페이스 호출을 통해 해당되는 메모리 히프 영역을 할당 및 반환함으로써, 실시간 운영체제의 태스크 제어 블록 등을 이용한 사용자 프로그램 인지 방법을 사용하지 않고도 메모리 할당 및 반환시 보다 다양한 정보를 수집할 수 있게 된다.
또한, 본 발명은 메모리 할당 및 반환시 메모리 사용 상황에 대한 각 사용자 프로그램별 정보를 별도의 메모리 할당 테이블에 기록하여 관리함으로써, 보다 정확한 메모리 장애 예측 및 장애 발생에 대한 보고 기능을 제공할 수 있게 되고, 이에 따라 신속한 장애 복구가 가능해 지는 등 보다 안정적이고 효율적으로 메모리 관리를 수행할 수 있게 된다.
도 1은 일반적인 내장형 시스템에 사용되는 메모리 구성을 개략적으로 도시한 도면.
도 2는 종래 내장형 시스템의 메모리 할당 및 반환 과정을 도시한 도면.
도 3은 본 발명에 따른 내장형 시스템의 메모리 관리 구조를 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 사용자 프로그램 20 : 인터페이스 모듈
21 : 메모리 할당 감지 모듈 22 : 메모리 반환 감지 모듈
30 : 통계 모듈 35 : 메모리 할당 테이블 저장부
40 : 장애 보고 모듈

Claims (6)

  1. 실시간 운영체제를 기반으로 하는 시스템에서 사용자 프로그램의 메모리 히프 할당 및 반환을 위한 API 인터페이스를 제공하는 인터페이스 모듈과;
    상기 인터페이스 모듈에 의한 메모리 사용 상황에 대한 태스크별 통계 정보를 메모리 할당 테이블에 기록하여 관리하는 통계 모듈과;
    상기 통계 모듈에 의해 수집된 통계 정보를 기반으로 한 장애 상황 보고 기능을 수행하는 장애 보고 모듈을 포함하는 것을 특징으로 하는 실시간 운영체제 기반의 메모리 관리 시스템.
  2. 제 1항에 있어서,
    상기 인터페이스 모듈은, 사용자 프로그램에 의해 호출되어 메모리 히프 할당 및 반환 처리를 수행하고 그 동작을 감지하여 그 처리 결과를 통계 모듈로 보고하는 것을 특징으로 하는 실시간 운영체제 기반의 메모리 관리 시스템.
  3. 제 1항 또는 2항에 있어서,
    상기 인터페이스 모듈은, 사용자 프로그램에 의해 호출된 메모리 할당 API에서의 감지 기능을 이용하여 해당되는 사용자 프로그램이 메모리 히프 영역의 메모리를 할당받는 동작을 감지하고 그 처리 결과를 보고하는 메모리 할당 감지 모듈과;
    메모리 반환 API에서의 감지 기능을 이용하여 상기 사용자 프로그램이 할당받은 메모리를 반환하는 동작을 감지하고 그 처리 결과를 보고하는 메모리 반환 감지 모듈을 포함하는 것을 특징으로 하는 실시간 운영체제 기반의 메모리 관리 시스템.
  4. 제 1항에 있어서,
    상기 통계 모듈은, 인터페이스 모듈로부터 보고되는 메모리 할당 및 반환 처리 결과에 따라 해당되는 메모리 사용 상황에 대한 태스크별 정보를 메모리 할당 테이블에 기록하여 그 통계 정보를 관리하고, 운용자의 요청에 따라 상기 메모리 할당 테이블에 기록된 통계 정보를 출력해 주는 것을 특징으로 하는 실시간 운영체제 기반의 메모리 관리 시스템.
  5. 제 4항에 있어서,
    상기 태스크별 정보는, 메모리 할당 및 반환을 위해 인터페이스 모듈을 호출한 사용자 프로그램(태스크) 명칭과 호출 시점 및 메모리 할당량과 반환량에 대한 정보를 포함하는 것을 특징으로 하는 실시간 운영체제 기반의 메모리 관리 시스템.
  6. 제 1항에 있어서,
    상기 장애 보고 모듈은, 통계 모듈에 의해 수집되어 메모리 할당 테이블에 기록되어 있는 각 태스크별 메모리 사용 상황에 대한 통계 정보를 분석하여 기설정된 메모리 히프 사용 한계치에 도달하거나, 특정 사용자 프로그램의 메모리 할당량과 반환량의 차이가 큰 경우에 이를 사용자 프로그램의 장애 처리 기능과 연동하여 운용자에게 통보해 주는 장애 상황 보고 기능을 수행하고, 메모리 장애의 원인과 유형을 포함하는 장애 이력 정보를 취합하여 보고하는 기능을 수행하는 것을 특징으로 하는 실시간 운영체제 기반의 메모리 관리 시스템.
KR1020030069319A 2003-10-06 2003-10-06 실시간 운영체제 기반의 메모리 관리 시스템 KR20050033327A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030069319A KR20050033327A (ko) 2003-10-06 2003-10-06 실시간 운영체제 기반의 메모리 관리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030069319A KR20050033327A (ko) 2003-10-06 2003-10-06 실시간 운영체제 기반의 메모리 관리 시스템

Publications (1)

Publication Number Publication Date
KR20050033327A true KR20050033327A (ko) 2005-04-12

Family

ID=37237571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030069319A KR20050033327A (ko) 2003-10-06 2003-10-06 실시간 운영체제 기반의 메모리 관리 시스템

Country Status (1)

Country Link
KR (1) KR20050033327A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047180B2 (en) 2009-11-13 2015-06-02 Samsung Electronics Co., Ltd. Computing system, method and computer-readable medium processing debug information in computing system
KR20200020485A (ko) 2018-08-17 2020-02-26 주식회사 한컴엠디에스 운영체제 시스템의 자원 관리 장치 및 방법
KR102651400B1 (ko) * 2023-08-25 2024-03-26 주식회사 수주아이티씨 메타데이터 분석 및 피드백 제공을 통한 솔루션 구축 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047180B2 (en) 2009-11-13 2015-06-02 Samsung Electronics Co., Ltd. Computing system, method and computer-readable medium processing debug information in computing system
KR20200020485A (ko) 2018-08-17 2020-02-26 주식회사 한컴엠디에스 운영체제 시스템의 자원 관리 장치 및 방법
KR102651400B1 (ko) * 2023-08-25 2024-03-26 주식회사 수주아이티씨 메타데이터 분석 및 피드백 제공을 통한 솔루션 구축 시스템

Similar Documents

Publication Publication Date Title
CN101154180B (zh) 一种任务栈溢出的监测方法
US8892960B2 (en) System and method for determining causes of performance problems within middleware systems
JP2007157131A (ja) ガベージ・コレクション対応の仮想マシンにおいて、将来のメモリ不足例外を自動予測する方法、コンピュータ読み取り可能な媒体、及びコンピューティング・デバイス
CN100487690C (zh) 自主记日志支持
US7765528B2 (en) Identifying sources of memory retention
US8135988B2 (en) Non-intrusive gathering of diagnostic data using asynchronous mechanisms
US7434206B2 (en) Identifying memory leaks in computer systems
US7971010B2 (en) Mechanism for performing loitering trace of objects that cause memory leaks in a post-garbage collection heap
US7930491B1 (en) Memory corruption detection system and method using contingency analysis regulation
CN109408210B (zh) 分布式定时任务管理方法及系统
CN100517249C (zh) 一种捕获导致内存被野指针改写的函数的方法
US8132170B2 (en) Call stack sampling in a data processing system
US20060173877A1 (en) Automated alerts for resource retention problems
US7293142B1 (en) Memory leak detection system and method using contingency analysis
US8516462B2 (en) Method and apparatus for managing a stack
US20080243969A1 (en) Method and system for customizing allocation statistics
US9436534B2 (en) Method and system for preemptive detection of occurrence of faulty conditions based on resource usage
US8478738B2 (en) Object deallocation system and method
CN101334744B (zh) 一种检测多处理器系统故障的方法、系统和装置
CN114048099A (zh) Java应用监控方法及装置、存储介质及电子设备
KR20050033327A (ko) 실시간 운영체제 기반의 메모리 관리 시스템
CN116737818A (zh) Druid数据库连接池的连接泄漏检测方法及系统
CN114637656B (zh) 基于Redis的监控方法、装置、存储介质和设备
JPH09179754A (ja) タスク監視装置及びタスク監視方法
CN111857689A (zh) 一种框架、框架的功能配置方法、终端及存储介质

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination