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

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

Info

Publication number
KR101740317B1
KR101740317B1 KR1020130039007A KR20130039007A KR101740317B1 KR 101740317 B1 KR101740317 B1 KR 101740317B1 KR 1020130039007 A KR1020130039007 A KR 1020130039007A KR 20130039007 A KR20130039007 A KR 20130039007A KR 101740317 B1 KR101740317 B1 KR 101740317B1
Authority
KR
South Korea
Prior art keywords
memory
reference data
physical
physical memory
mapped
Prior art date
Application number
KR1020130039007A
Other languages
English (en)
Other versions
KR20140122400A (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 KR1020130039007A priority Critical patent/KR101740317B1/ko
Priority to US13/942,328 priority patent/US9189165B2/en
Publication of KR20140122400A publication Critical patent/KR20140122400A/ko
Application granted granted Critical
Publication of KR101740317B1 publication Critical patent/KR101740317B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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

Abstract

본 발명은 메모리 관리 방법 및 장치에 관한 것이다. 개시된 메모리 관리 방법은 응용프로그램의 수행에 따라 참조 데이터를 위한 물리메모리의 빈페이지를 할당하여 가상메모리에 빈페이지를 사상하는 단계와, 참조 데이터가 적재된 물리메모리의 물리주소를 확인하는 단계와, 빈페이지가 사상되어 있는 가상메모리에 확인된 물리주소를 매핑하여 참조 데이터를 사상하는 단계와, 가상메모리에 참조 데이터가 사상되면 할당되어 있는 물리메모리의 할당을 해제하는 단계를 포함한다. 따라서, 참조 데이터를 기반으로 대상 데이터를 분석하는 응용에 대해서 다수의 프로세스 수준 병렬화를 수행할 때 응용 수행의 초기부터 요구되는 참조 데이터의 중복을 방지하고, 대상 데이터의 사용으로 인해 참조 데이터가 메모리 캐쉬에서 쫓겨남으로 인해 발생하는 입출력을 방지함으로써, 분석 응용이 시스템을 효율적으로 사용하도록 지원하여 단위시간당 연산량을 증대시키는 이점이 있다.

Description

메모리 관리 방법 및 장치{METHOD AND APPARATUS FOR MEMORY MANAGEMENT}
본 발명은 메모리 관리 방법 및 장치에 관한 것으로, 더욱 상세하게는 생물정보학 응용의 고집적 수행을 위한 요구 메모리를 절감하는 메모리 관리 방법 및 장치에 관한 것이다.
생물정보학 분야에서는 참조 데이터를 기반으로 DNA, RNA 혹은 단백질 등의 서열 등과 관련된 연산을 수행한다. 이러한 연산에는 서열들 간의 기능적, 구조적 및 발전적 관계에 있어서 유사성을 갖는 영역을 확인하기 위한 대상 정렬 등을 포함하며, 그 응용에 따라서 하나의 객체를 위해 수백 MB에서 수 TB의 대상 데이터에 대한 처리를 요구한다.
이를 위한 종래 기술로서 폰 노이만 구조의 범용 컴퓨터를 대상으로 전통적인 메모리 관리 방법을 적용할 경우, 접근 데이터가 참조 데이터와 대상 데이터로 나뉘는 응용의 특성을 인지하지 못함으로 인해 수십 MB/s에서 수백 MB/s의 데이터 입출력(IO) 대역폭을 추가로 요구하게 된다. 여기서, 참조 데이터는 다수의 응용이 동일하게 사용하는 약 3 GB ~ 50 GB 크기의 데이터를 의미하고, 대상 데이터는 약 70 GB ~ 200 GB 크기의 정보 처리 대상이 되는 데이터를 의미한다.
또한, 하나의 컴퓨터 노드에 대해서 다수의 해당 응용을 수행할 경우, 참조 데이터가 읽기 전용의 동일한 데이터임을 인지하지 못하고 별도의 메모리를 할당함으로 인해서 높은 메모리 비용을 요구하며, 비효율적인 데이터 관리로 인하여 메모리를 포함하여 프로세서의 비효율적인 연산을 야기한다.
일례로, 뉴클레오티드 서열 혹은 펩타이드 서열을 나타내는 문자열 기반의 참조 데이터를 기반으로 대상 생물학적 서열의 SNP(Single-nucleotide polymorphism) 검출 응용들은 파이프라인을 거쳐서 여러 단계를 수행한다. 전체 파이프라인 수행에 있어서 약 780 GB의 데이터를 읽고, 약 800 GB의 데이터를 생성한다. 이 때, 다수의 응용을 수행할 경우, 프로세스 수준의 데이터 병렬성을 이용하여 파이프라인 의존성을 위배하지 않는 한도에서 전체 분석 파이프라인에 대한 수행시간을 줄일 수 있다.
하지만 이와 같이 병렬성을 이용하여 수행시간을 줄일 경우, 유전체 데이터를 분석시 응용들이 참조 데이터와 대상 데이터를 구분하지 않으며, 이로 인하여 높은 메모리 요구량 대비 낮은 메모리를 갖는 시스템에 대하여 참조 데이터에 대한 스레슁(thrashing)으로 인해 많은 입출력 요구를 발생할 수 있다.
이에 대해서 리눅스 커널(Linux Kernel)에서 추가된 KSM(Kernel Shared Memory 혹은 Kernel Samepage Merging) 기법은 시스템에서 사용하는 동일한 내용을 갖는 메모리 페이지프레임에 대한 공유를 지원한다. 하지만 이는 시스템 전역적으로 동일한 페이지프레임을 찾아 이를 병합하는 알고리즘을 적용함으로 응용의 초기 수행 단계에 있어서 메모리에 대한 공유를 지원할 수 없다. 결과적으로 프로그램 초기 수행 단계에서 높은 메모리 요구량을 충족시키고 응용 프로그램이 안정화 단계에 이르면 시스템의 메모리를 효율적으로 사용하도록 동일한 내용들을 병합하게 된다. 하지만 이는 메모리가 충분하지 않은 시스템에서 응용 프로그램의 초기 수행에 있어서 요구하는 메모리 요구량을 충족할 수 없을 경우 해당 응용을 수행시킬 수 없는 문제를 갖는다. 또한 계속적으로 비교/병합을 수행하는 커널 프로그램이 동작함으로 인해서 성능 저하를 내포한다.
대한민국 등록특허공보 제10-1105127호, 공고일자 2012년 01월 16일.
본 발명은 생물정보학 응용의 고집적 수행을 위한 요구 메모리를 절감하는 메모리 관리 방법 및 장치를 제공한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 제 1 관점으로서 메모리 관리 방법은, 응용프로그램의 수행에 따라 참조 데이터를 위한 물리메모리의 빈페이지를 할당하여 가상메모리에 상기 빈페이지를 사상하는 단계와, 상기 참조 데이터가 적재된 상기 물리메모리의 물리주소를 확인하는 단계와, 상기 빈페이지가 사상되어 있는 상기 가상메모리에 확인된 상기 물리주소를 매핑하여 상기 참조 데이터를 사상하는 단계와, 상기 가상메모리에 상기 참조 데이터가 사상되면 할당되어 있는 상기 물리메모리의 할당을 해제하는 단계를 포함할 수 있다.
여기서, 상기 물리메모리를 할당할 때에, 상기 물리메모리를 모두 사용 중일 때에 전체 주소 공간 중에서 상기 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은 주소 공간을 빅팀 프레임(victim frame)으로 선택할 수 있다.
본 발명의 제 2 관점으로서 메모리 관리 장치는, 응용프로그램의 수행에 따라 참조 데이터를 위한 물리메모리의 빈페이지를 할당하여 가상메모리에 상기 빈페이지를 사상하는 메모리 할당부와, 상기 참조 데이터가 적재된 상기 물리메모리의 물리주소를 확인하고, 상기 빈페이지가 사상되어 있는 상기 가상메모리에 확인된 상기 물리주소를 매핑하여 상기 참조 데이터를 사상하는 참조 데이터 관리부와, 상기 가상메모리에 상기 참조 데이터가 사상되면 상기 메모리 할당부에 의해 할당되어 있는 상기 물리메모리의 할당을 해제하는 메모리 해제부를 포함할 수 있다.
여기서, 상기 메모리 할당부는, 상기 물리메모리를 모두 사용 중일 때에 전체 주소 공간 중에서 상기 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은 주소 공간을 빅팀 프레임으로 선택할 수 있다.
본 발명의 실시예에 의하면, 참조 데이터를 기반으로 대상 데이터를 분석하는 응용에 대해서 다수의 프로세스 수준 병렬화를 수행할 때 응용 수행의 초기부터 요구되는 참조 데이터의 중복을 방지하고, 대상 데이터의 사용으로 인해 참조 데이터가 메모리 캐쉬에서 쫓겨남으로 인해 발생하는 입출력을 방지한다. 따라서, 분석 응용이 시스템을 효율적으로 사용하도록 지원하여 단위시간당 연산량을 증대시키는 효과가 있다.
도 1은 본 발명의 실시예에 따른 메모리 관리 장치의 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 메모리 관리 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시예에 따른 메모리 관리 장치에 의한 응용 프로그램의 메모리 사상 관계를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 메모리 관리 방법에 의한 응용 프로그램의 수행 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따라 빅팀 프레임을 선택할 때에 이용하는 우선순위 큐(priority queue)를 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 메모리 관리 장치의 블록 구성도이다.
이에 나타낸 바와 같이 메모리 관리 장치(100)는, 메모리 할당부(110), 참조 데이터 관리부(120), 메모리 해제부(130)를 포함한다.
메모리 할당부(110)는 응용프로그램의 수행에 따라 참조 데이터를 위한 물리메모리의 빈페이지를 할당하여 가상메모리에 빈페이지를 사상한다. 이러한 메모리 할당부(110)는 물리메모리를 모두 사용 중일 때에 전체 주소 공간 중에서 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은 주소 공간을 빅팀 프레임(victim frame)으로 선택한다.
참조 데이터 관리부(120)는 응용프로그램의 수행에 필요한 참조 데이터가 물리메모리에 기 적재된 경우에 참조 데이터가 적재된 물리메모리의 물리주소를 확인하고, 빈페이지가 사상되어 있는 가상메모리에 확인된 물리주소를 매핑하여 참조 데이터를 사상한다.
메모리 해제부(130)는 가상메모리에 참조 데이터가 사상되면 메모리 할당부(110)에 의해 할당되어 있는 물리메모리의 할당을 해제한다.
도 2는 본 발명의 실시예에 따른 메모리 관리 방법을 설명하기 위한 흐름도이다.
이에 나타낸 바와 같이 메모리 관리 방법은, 응용프로그램의 수행에 따른 물리메모리의 할당 요청을 수신하는 단계(S201)와, 물리메모리를 모두 사용 중일 때에 전체 주소 공간 중에서 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은 주소 공간을 빅팀 프레임으로 선택하는 단계(S203 및 S205)와, 참조 데이터를 위한 물리메모리의 빈페이지를 할당하여 가상메모리에 빈페이지를 사상하는 단계(S207)와, 응용프로그램의 수행에 필요한 참조 데이터가 물리메모리에 기 적재된 경우에 참조 데이터가 적재된 물리메모리의 물리주소를 확인하는 단계(S209 및 S211)와, 빈페이지가 사상되어 있는 가상메모리에 확인된 물리주소를 매핑하여 참조 데이터를 사상하는 단계(S213)와, 가상메모리에 참조 데이터가 사상되면 할당되어 있는 물리메모리의 할당을 해제하는 단계(S215)와, 응용프로그램의 수행에 필요한 참조 데이터가 물리메모리에 기 적재되지 않은 경우에 해당 참조 데이터를 적재하는 단계(S217)를 포함한다.
이하, 도 1 내지 도 5를 참조하여 본 발명의 실시예에 따른 메모리 관리 장치에 의해 수행되는 메모리 관리 과정을 자세히 살펴보기로 한다.
본 발명의 실시예에 따른 메모리 관리 장치(100)는 참조 데이터를 기반으로 연산을 수행하는 응용에 대하여 응용의 인지 없이 참조 데이터와 대상 데이터의 이원화된 관리 및 참조 데이터의 공유를 통해 단위 시간당 연산량을 증가시킨다. 이를 위해, 메모리 관리 장치(100)의 참조 데이터 관리부(120)는 운영체제의 파일시스템 인터페이스를 통해서 동작하게 되고, 다수의 응용 프로그램에 대해서 동일한 참조 데이터가 메모리에 중복되어 적재되는 것을 방지하며, 하나의 참조 데이터를 다수의 응용프로그램이 각각 직접 적재하여 사용하는 것과 같은 환상을 제공한다.
도 3은 본 발명의 실시예에 따른 메모리 관리 장치(100)에 의한 응용 프로그램의 메모리 사상 관계를 나타낸 도면이다. 도 4는 본 발명의 실시예에 따른 메모리 관리 방법에 의한 응용 프로그램의 수행 과정을 설명하기 위한 도면이며, 응용프로그램 A가 수행 중인 상황에서 응용프로그램 B를 수행할 때에 메모리 할당 순서를 나타내었다.
먼저, 응용프로그램 B의 수행에 따라 물리메모리의 할당이 요청(S201)되면 메모리 할당부(110)는 물리메모리가 모두 사용 중인가를 확인하며(S203), 물리메모리가 모두 사용 중일 때에는 전체 주소 공간 중에서 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은 주소 공간을 빅팀 프레임(victim frame)으로 선택한다(S205). 이를 위해, 도 5에 나타낸 바와 같이 현재 전체 주소공간에 대해서 가상메모리에 사상되어 있는 수를 기준으로 정렬한 우선순위 큐(priority queue)를 이용한다. 따라서, 우선순위가 낮은 페이지프레임부터 빅팀 프레임으로 선택된다.
이후, 메모리 할당부(110)는 응용프로그램 B의 코드 01에서 참조 데이터를 사용하기 위해 물리메모리의 빈페이지 A ~ 빈페이지 D를 할당하여 가상메모리에 빈페이지 A ~ 빈페이지 D를 사상한다(S207).
다음으로, 메모리 할당부(110)가 응용프로그램 B의 코드 03에서 참조 데이터 관리부(120)의 오픈(open) 함수를 호출하면 참조 데이터 관리부(120)는 응용프로그램 B가 필요로 하는 참조 데이터가 물리메모리에 이미 적재되어 있는지를 확인하게 된다(S209).
여기서, 응용프로그램 B가 필요로 하는 참조 데이터가 물리메모리에 이미 적재되어 있을 때에는 단계 S207에 의해 빈페이지 A ~ 빈페이지 D가 사상되어 있는 가상메모리에 확인(S211)된 물리주소를 매핑(S213)하여 참조 데이터 A ~ 참조 데이터 D를 사상한다. 즉, 응용프로그램 B의 코드 04에서 참조 데이터 관리부(120)의 리드(read) 함수를 호출하면 앞서 응용프로그램 A가 수행하면서 적재한 참조 데이터의 물리주소를 코드 01에서 할당 받은 빈페이지 A가 존재하는 주소공간에 사상하여 빈페이지 A ~ 빈페이지 D가 사상되어 있는 가상메모리 공간에 참조 데이터 A ~ 참조 데이터 D를 사상하게 된다.
그리고, 메모리 해제부(130)는 가상메모리에 참조 데이터 A ~ 참조 데이터 D가 사상되면 메모리 할당부(110)에 의해 단계 S207에서 할당되었던 물리메모리 빈페이지 A ~ 빈페이지 D의 할당을 해제한다(S215).
만약에, 응용프로그램 B의 수행에 필요한 참조 데이터가 물리메모리에 기 적재되지 않은 경우에는 필요로 하는 해당 참조 데이터를 물리메모리의 빈페이지 A ~ 빈페이지 D에 적재한다(S217).
다음으로, 응용프로그램 B의 코드 06 내지 코드 13에서는 대상 데이터를 열어서 이를 물리메모리에 적재하여 참조 데이터를 기반으로 정보처리를 수행하게 된다.
이와 같은 본 발명의 메모리 관리 장치(100)에 의한 메모리 관리 방법에 의하면, 동일한 참조 데이터를 사용하는 응용프로그램 A와 응용프로그램 B가 하나의 노드에 존재할 경우, 저장소(예컨대, 하드디스크드라이브)로부터 필요한 참조 데이터와 대상 데이터를 가져와서 물리메모리에 적재할 때에 도 3에 나타낸 바와 같이 시스템 전 영역에 복제본을 갖지 않는다.
이처럼, 낮은 재사용성을 갖는 대상 데이터와 높은 재사용성을 갖는 참조 데이터의 공유 및 빅팀 우선순위 적용을 통해서 메모리를 효율적으로 사용하기 때문에 메모리 요구량이 감소되고, 참조 데이터의 입출력으로 발생하는 요구 대역폭이 감소된다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 메모리 관리 장치
110 : 메모리 할당부
120 : 참조 데이터 관리부
130 : 메모리 해제부

Claims (4)

  1. 제1 응용프로그램의 수행에 따라 참조 데이터를 위한 물리메모리의 제1 빈페이지를 할당하여 제1 가상메모리에 상기 제1 빈페이지를 사상하는 단계;
    상기 참조 데이터가 상기 물리메모리에 기 적재되어 있지 않은 경우에 상기 물리메모리의 상기 제1 빈페이지에 상기 참조 데이터를 적재하는 단계;
    제2 응용프로그램의 수행에 따라 상기 참조 데이터를 위한 상기 물리메모리의 제2 빈페이지를 할당하여 제2 가상메모리에 상기 제2 빈페이지를 사상하는 단계;
    상기 참조 데이터가 상기 물리메모리에 기 적재되어 있는 경우에 상기 참조 데이터가 적재된 상기 물리메모리의 물리주소를 확인하는 단계;
    상기 제2 빈페이지가 사상되어 있는 상기 제2 가상메모리에, 상기 제2 빈페이지 대신, 확인된 상기 물리주소를 매핑하여 상기 참조 데이터를 사상하는 단계와,
    상기 제2 가상메모리에 상기 참조 데이터가 사상되면 할당되어 있는 상기 물리메모리의 상기 제2 빈페이지의 할당을 해제하는 단계를 포함하는 메모리 관리 방법.
  2. 제 1 항에 있어서,
    상기 물리메모리를 할당할 때에, 상기 물리메모리를 모두 사용 중일 때에 전체 주소 공간 중에서, 상기 참조 데이터가 적재된 물리메모리의 물리주소보다 상기 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은, 대상 데이터가 적재된 물리메모리의 물리주소를 빅팀 프레임(victim frame)으로 선택하는 메모리 관리 방법.
  3. 제1 응용프로그램의 수행에 따라 참조 데이터를 위한 물리메모리의 제1 빈페이지를 할당하여 제1 가상메모리에 상기 제1 빈페이지를 사상하고, 상기 참조 데이터가 상기 물리메모리에 기 적재되어 있지 않은 경우에 상기 물리메모리의 상기 제1 빈페이지에 상기 참조 데이터를 적재하고, 제2 응용프로그램의 수행에 따라 상기 참조 데이터를 위한 상기 물리메모리의 제2 빈페이지를 할당하여 제2 가상메모리에 상기 제2 빈페이지를 사상하는 메모리 할당부;
    상기 참조 데이터가 상기 물리메모리에 기 적재되어 있는 경우에 상기 참조 데이터가 적재된 상기 물리메모리의 물리주소를 확인하고, 상기 제2 빈페이지가 사상되어 있는 상기 제2 가상메모리에, 상기 제2 빈페이지 대신, 확인된 상기 물리주소를 매핑하여 상기 참조 데이터를 사상하는 참조 데이터 관리부와,
    상기 제2 가상메모리에 상기 참조 데이터가 사상되면 상기 메모리 할당부에 의해 할당되어 있는 상기 물리메모리의 상기 제2 빈페이지의 할당을 해제하는 메모리 해제부를 포함하는 메모리 관리 장치.
  4. 제 3 항에 있어서,
    상기 메모리 할당부는, 상기 물리메모리를 모두 사용 중일 때에 전체 주소 공간 중에서, 상기 참조 데이터가 적재된 물리메모리의 물리주소보다 상기 가상메모리에 사상되어 있는 수가 상대적으로 가장 적은, 대상 데이터가 적재된 물리메모리의 물리주소를 빅팀 프레임(victim frame)으로 선택하는 메모리 관리 장치.
KR1020130039007A 2013-04-10 2013-04-10 메모리 관리 방법 및 장치 KR101740317B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130039007A KR101740317B1 (ko) 2013-04-10 2013-04-10 메모리 관리 방법 및 장치
US13/942,328 US9189165B2 (en) 2013-04-10 2013-07-15 Method and apparatus for memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130039007A KR101740317B1 (ko) 2013-04-10 2013-04-10 메모리 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140122400A KR20140122400A (ko) 2014-10-20
KR101740317B1 true KR101740317B1 (ko) 2017-05-26

Family

ID=51687615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130039007A KR101740317B1 (ko) 2013-04-10 2013-04-10 메모리 관리 방법 및 장치

Country Status (2)

Country Link
US (1) US9189165B2 (ko)
KR (1) KR101740317B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101729097B1 (ko) * 2014-06-09 2017-04-24 한국전자통신연구원 복수의 가상 머신에서 수행되는 응용 프로그램들간 참조 데이터를 공유하는 방법 및 이를 위한 참조 데이터 관리 장치 및 시스템
US9898198B2 (en) * 2015-06-12 2018-02-20 International Business Machines Corporation Available frame queue processing
US10635307B2 (en) 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
US10884945B2 (en) 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
MY192169A (en) * 2018-11-14 2022-08-03 Mimos Berhad System and method for managing duplicate entities based on a relationship cardinality in production knowledge base repository
CN109614237A (zh) * 2018-12-10 2019-04-12 浪潮(北京)电子信息产业有限公司 一种资源释放方法、装置、设备及介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860141A (en) * 1996-12-11 1999-01-12 Ncr Corporation Method and apparatus for enabling physical memory larger than corresponding virtual memory
US6128713A (en) * 1997-09-24 2000-10-03 Microsoft Corporation Application programming interface enabling application programs to control allocation of physical memory in a virtual memory system
US7000087B2 (en) * 2001-11-07 2006-02-14 International Business Machines Corporation Programmatically pre-selecting specific physical memory blocks to allocate to an executing application
US7206915B2 (en) * 2004-06-03 2007-04-17 Emc Corp Virtual space manager for computer having a physical address extension feature
US7213125B2 (en) * 2004-07-31 2007-05-01 Hewlett-Packard Development Company, L.P. Method for patching virtually aliased pages by a virtual-machine monitor
US8291192B2 (en) * 2008-10-30 2012-10-16 Kyocera Document Solutions, Inc. Memory management system
KR101105127B1 (ko) 2010-04-16 2012-01-16 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Also Published As

Publication number Publication date
KR20140122400A (ko) 2014-10-20
US20140310497A1 (en) 2014-10-16
US9189165B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
KR101740317B1 (ko) 메모리 관리 방법 및 장치
US10222985B2 (en) Autonomous dynamic optimization of platform resources
US7398521B2 (en) Methods and apparatuses for thread management of multi-threading
US9298377B2 (en) Techniques for reducing read I/O latency in virtual machines
CN110008009B (zh) 在运行时绑定常量以提高资源利用率
US20230196502A1 (en) Dynamic kernel memory space allocation
Kwon et al. {DC-Store}: Eliminating noisy neighbor containers using deterministic {I/O} performance and resource isolation
KR102434170B1 (ko) 하이브리드 메모리 시스템
CN1831775A (zh) 虚拟机环境中用于多级截取处理的系统和方法
KR101544309B1 (ko) 스트림 기반의 비휘발성 메모리 제어 방법 및 장치
US20210042115A1 (en) Data structure processing
US9069477B1 (en) Reuse of dynamically allocated memory
CN100594481C (zh) 允许运行在逻辑分区上的程序访问资源的方法与系统
US8327111B2 (en) Method, system and computer program product for batched virtual memory remapping for efficient garbage collection of large object areas
US10338830B2 (en) Methods for accessing a solid state disk for QoS (quality of service) and apparatuses using the same
US11157415B2 (en) Operation of a multi-slice processor implementing a unified page walk cache
KR102443593B1 (ko) 하이브리드 메모리 시스템
US8769498B2 (en) Warning of register and storage area assignment errors
US9792042B2 (en) Systems and methods for set membership matching
EP2977897A1 (en) Compatibility method and apparatus
US20170337004A1 (en) Disk assignment for multiple distributed computing clusters in a virtualized computing environment
CN102662857B (zh) 用于对于存储进行虚拟化的设备和方法
US20100077155A1 (en) Managing shared memory through a kernel driver
US9720597B2 (en) Systems and methods for swapping pinned memory buffers
CN110851181B (zh) 数据处理方法、装置及计算设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant