KR101430394B1 - 메모리 객체 관리방법 및 이를 위한 단말 - Google Patents

메모리 객체 관리방법 및 이를 위한 단말 Download PDF

Info

Publication number
KR101430394B1
KR101430394B1 KR1020140080826A KR20140080826A KR101430394B1 KR 101430394 B1 KR101430394 B1 KR 101430394B1 KR 1020140080826 A KR1020140080826 A KR 1020140080826A KR 20140080826 A KR20140080826 A KR 20140080826A KR 101430394 B1 KR101430394 B1 KR 101430394B1
Authority
KR
South Korea
Prior art keywords
segment
volatile memory
memory
meta
mapping
Prior art date
Application number
KR1020140080826A
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 KR1020140080826A priority Critical patent/KR101430394B1/ko
Application granted granted Critical
Publication of KR101430394B1 publication Critical patent/KR101430394B1/ko

Links

Images

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
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

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

Abstract

본 발명은 메모리 객체 관리방법 및 이를 위한 단말에 관한 것이다.
본 발명의 일 실시예에 따른 메모리 객체 관리방법은 휘발성 메모리와 비휘발성 메모리를 포함하는 단말이 메모리 객체를 관리하는 방법에 있어서, 타겟 프로세스의 맵을 확인하는 단계, 세그먼트를 파싱하는 단계, 세그먼트 데이터와 세그먼트 메타를 휘발성 메모리에 할당 후 복사하는 단계, 타겟 프로세스의 통합 메타를 생성하는 단계, 세그먼트 데이터, 세그먼트 메타, 통합 메타를 비휘발성 메모리에 저장하는 단계를 포함한다.

Description

메모리 객체 관리방법 및 이를 위한 단말{METHOD AND TERMINAL FOR MANAGING MEMORY OBJECT}
본 발명은 메모리 객체 관리방법 및 이를 위한 단말에 관한 것이다.
최근에 컴퓨터 등의 빠른 처리를 위해서 메모리에 대한 연구가 활발하게 진행되고 있다. 특히, 종래에 메인 메모리로 휘발성 메모리를 사용하였는데, 휘발성 메모리의 한계를 극복하기 위해 비휘발성 메모리의 연구가 활발하다.
비휘발성 메모리는 전원의 차단에도 불구하고 데이터를 소실하지 않는 특성을 갖는 메모리이다. 이러한 비휘발성 메모리는 메모리 셀(memory cell)이 스스로 비휘발성을 띄고, 빠른 속도로 바이트 단위의 주소 접근이 가능하다.
대한민국 등록특허공보 제0755700호(2007년08월30일 등록)는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리 방법에 관한 것으로서, 더욱 상세하게는 전원이 차단되어도 데이터가 남아있는 비휘발성 메모리를 캐쉬로 사용한 비휘발성 메모리가 캐쉬로 사용되는 저장장치 및 그 관리 방법을 개시한다.
한편, 이러한 메인 메모리로 사용될 수 있는 다양한 메모리들을 어떻게 관리하는지에 대한 연구도 진행되고 있는데, 종래에 파일 형태로 프로세스 내용을 저장하는 방법은 파일형태로 프로세스를 저장하기 때문에 프로세스를 복구하는 과정에서 하드디스크와 같은 저장장치에 접근하여야 하므로 많은 시간이 소모되는 문제점이 있었다.
본 발명이 이루고자 하는 기술적인 과제는 프로세스를 빠른 시간 내에 연속 실행할 수 있는 효율적인 메모리 객체 관리방법 및 이를 위한 단말에 관한 것이다.
본 발명의 일 실시예에 따른 메모리 객체 관리방법은 휘발성 메모리와 비휘발성 메모리를 포함하는 단말이 메모리 객체를 관리하는 방법에 있어서, 타겟 프로세스의 맵을 확인하는 단계, 세그먼트를 파싱하는 단계, 세그먼트 데이터와 세그먼트 메타를 상기 휘발성 메모리에 할당 후 복사하는 단계, 상기 타겟 프로세스의 통합 메타를 생성하는 단계, 상기 세그먼트 데이터, 상기 세그먼트 메타, 상기 통합 메타를 상기 비휘발성 메모리에 저장하는 단계를 포함한다.
본 발명의 일 실시예에 따른 메모리 객체 관리를 위한 단말은 휘발성 메모리와 비휘발성 메모리를 포함하는 메인 메모리, 타겟 프로세스의 맵을 확인하고, 세그먼트를 파싱하고, 세그먼트 데이터와 세그먼트 메타를 상기 휘발성 메모리에 할당 후 복사하며, 상기 타겟 프로세스의 통합 메타를 생성하고, 상기 세그먼트 데이터, 상기 세그먼트 메타, 상기 통합 메타를 상기 비휘발성 메모리에 저장하는 것을 관리하는 비휘발성 메모리 관리자를 포함한다.
본 발명의 다른 실시예에 따른 메모리 객체 관리방법은 휘발성 메모리와 비휘발성 메모리를 포함하는 단말이 메모리 객체를 관리하는 방법에 있어서, 상기 비휘발성 메모리에 타겟 프로세스가 저장되어 있으면, 비휘발성 메모리로부터 통합 메타를 읽어오는 단계, 상기 비휘발성 메모리로부터 세그먼트 메타를 읽어오는 단계, 세그먼트가 익명 매핑이 아니면, 파일 매핑을 수행하고, 상기 세그먼트가 익명 매핑이면, 익명 매핑을 수행하는 단계, 상기 익명 매핑을 수행한 상기 세그먼트를 상기 휘발성 메모리에 복사하는 단계, 레지스터를 복원하고, 상기 타겟 프로세스 실행을 재개하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 메모리 객체 관리를 위한 단말은 휘발성 메모리와 비휘발성 메모리를 포함하는 메인 메모리, 상기 비휘발성 메모리에 타겟 프로세스가 저장되어 있으면, 비휘발성 메모리로부터 통합 메타를 읽어오고, 상기 비휘발성 메모리로부터 세그먼트 메타를 읽어오며, 세그먼트가 익명 매핑이 아니면, 파일 매핑을 수행하고, 상기 세그먼트가 익명 매핑이면, 익명 매핑을 수행하고, 상기 익명 매핑을 수행한 상기 세그먼트를 상기 휘발성 메모리에 복사하고, 레지스터를 복원하여, 상기 타겟 프로세스 실행을 재개하는 것을 관리하는 비휘발성 메모리 관리자를 포함한다.
본 발명의 실시예에 따른 메모리 객체 관리방법 및 이를 위한 단말에 의하면 다음과 같은 효과가 있다.
첫째, 본 발명은 프로세스를 비휘발성 메모리에 실행 가능한 형태로 저장하여, 프로세스 실행을 재개 시에 빠른 시간 내에 연속 실행할 수 있다.
둘째, 본 발명은 단말과 같은 시스템의 전원을 껐다가 다시 공급하거나 재부팅 명령이 있을 때에 비휘발성 메모리에 저장된 프로세스를 빠른 시간 내에 실행하여 연속성을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 객체 관리를 위한 단말을 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 임의의 프로세스를 비휘발성 메모리에 저장하는 방식을 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따른 메모리 객체 관리방법을 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리에 저장된 프로세스를 연속 실행하는 방법을 나타낸 것이다.
도 5는 본 발명의 다른 실시예에 따른 메모리 객체 관리방법을 나타낸 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
또한, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 이외의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.
본 명세서에서 “영속적 프로세스 컨텍스트”는 임의의 프로세스를 비휘발성 메모리에 저장하는 단위를 의미한다.
또한, 본 명세서에서 “타겟 프로세스”는 비휘발성 메모리에 관리하는 임의의 프로세스로, 본 발명에서는 영속적 프로세스 컨텍스트로 타겟 프로세스를 관리한다.
이하, 본 발명을 보다 구체적으로 설명하기 위하여 본 발명에 따른 실시예들을 첨부 도면을 참조하면서 보다 상세하게 설명하고자 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 객체 관리를 위한 단말을 나타낸 것이다.
본 명세서에서 메모리 객체 관리를 위한 단말(1)은 컴퓨터, 휴대용 컴퓨터(Laptop), 핸드헬드 컴퓨터(Handheld computer), 태블릿(Tablet) 컴퓨터, 이동전화, 미디어 플레이어, PDA 등, 그리고 이러한 아이템 둘 이상의 결합을 포함하지만 이에 한정되지 않는 임의의 전자장치일 수 있다. 단말(1)은 전자장치의 한 예이고, 도 1에서 도시한 단말(1)보다 많거나 적은 구성요소 또는 상이한 구성요소의 구성(Configuration)을 가질 수 있음을 인식하여야 한다. 도 1에 도시한 여러 구성요소는 하나 이상의 신호처리 및/또는 애플리케이션 전용 집적회로를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.
도 1을 참조하면, 메모리 객체 관리를 위한 단말(1)은 저장장치(10), 저장장치 제어회로(21), 하나 이상의 중앙처리장치(23), 인터페이스(25), 메인 메모리(30), 통신회로(50), 외부포트(60), 오디오회로(70), 표시장치(80), 입력장치(90)를 포함한다. 이러한 구성요소는 하나 이상의 통신버스 또는 신호선을 통하여 통신한다.
저장장치(10)는 임의의 데이터, 소프트웨어 등을 저장하는 부분으로, 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장장치, 플래시 메모리 장치와 같은 비휘발성 메모리, 또는 다른 불휘발성 반도체 메모리장치를 포함할 수 있다. 일부 실시예에서, 저장장치(10)는 하나 이상의 중앙처리장치로부터 떨어져 위치하는 저장장치, 예를 들어 통신회로(50) 또는 외부포트(60)와 인터넷, 인트라넷, LAN(Local Area Network), WLAN(Wide LAN), SAN(Storage Area Network) 등이나 또는 이들의 적절한 조합과 같은 통신 네트워크를 통하여 액세스되는 네트워크 부착형(Attached) 저장장치를 더 포함할 수 있다. 중앙처리장치(23) 및 인터페이스(25)와 같은 단말(1)의 다른 구성요소에 의한 저장장치(10)로의 액세스는 저장장치 제어회로(21)에 의하여 제어될 수 있다.
저장장치(10)에 저장된 소프트웨어 구성요소는 운영체제(11), 비휘발성 메모리 관리자(13)(또는 명령어 세트), 리스토어(Restore) 프로그램(15), 통신모듈(17)(또는 명령어 세트) 및 적어도 하나 이상의 애플리케이션(19)(또는 명령어 세트)을 포함한다. 또한, 도 1에는 도시하지 않았지만 저장장치(10)는 다양한 모듈이나 콘텐츠와 같은 데이터를 더 저장할 수 있다.
운영체제(11)(예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS, WINDOWS 또는 VxWorks와 같은 내장 운영체제)는 일반적인 시스템 태스크(예를 들어, 저장장치 관리, 휘발성 메모리 관리, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.
비휘발성 메모리 관리자(13)는 메인 메모리(30) 내의 비휘발성 메모리(33)를 관리하는 관리자로, 임의의 프로세스를 영속적 프로세서 컨텍스트로 관리한다. 즉, 비휘발성 메모리 관리자(13)는 비휘발성 메모리(33)의 물리적인 계층을 가상 메모리 계층(프로세스 주소공간)으로 전체 매핑하는 방식으로 사용하는데, 이는 비휘발성 메모리(33)의 물리적인 계층에 사용 중이 아닌 영역도 가상 메모리 계층으로 매핑될 수 있다. 이와 같이 본 발명은 비휘발명 메모리(33)를 가상 메모리 계층에 전체 매핑하는 방식으로 사용함으로써 비휘발성 메모리(33)에 저장된 임의의 프로세스를 가장주소로 접근하여 프로세스를 실행할 수 있다.
다만, 다른 실시예로 비휘발성 메모리 관리자(13)는 일부 매핑하는 방식으로도 사용될 수 있다.
또한, 실시예에 따라서는 비휘발성 메모리 관리자(13)는 운영체제(11)에 포함될 수도 있다.
리스토어(Restore) 프로그램(15)은 임의의 프로그램을 복원하기 위한 프로그램이다. 리스토어 프로그램(15)은 비휘발성 메모리(33)에 저장되어 있는 프로세스를 연속 실행하기 위해서 필요한 런처(Lauucher)를 작동한다. 이와 같이, 본 발명에서 단말(1)이 리스토어 프로그램(150)을 실행하여 런처가 작동하고, 프로세스 주소공간의 스택(STACK)과 힙(HEAP)에 해당하는 세그먼트는 휘발성 메모리(31)에 익명 매핑 후 복사한다. 이렇게 함으로써, 휘발성 메모리(31)에 복사된 스택과 힙은 자동적으로 프로세스 주소공간으로 접근할 수 있다.
통신모듈(17)은 하나 이상의 외부포트(60)를 통하여 다른 장치와의 통신을 촉진시키고 통신회로(50)와 외부포트(60)가 수신하는 데이터를 처리하기 위한 다양한 소프트웨어 구성요소를 또한 포함한다. 외부포트(60)(예를 들어, USB, FIREWIRE 등)는 다른 장치로의 직접 연결이나 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통한 간접 연결을 위해 사용된다.
적어도 하나 이상의 애플리케이션(19)은 브라우저, 어드레스 북(Address Book), 접촉 리스트, 이메일, 인스턴트 메시지, 워드 프로세싱(Word Processing), 키보드 에뮬레이션(Keyboard Emulation), 위짓(Widget), 부호화, 디지털 저작권 관리, 음성 인식, 음성 복제, 위치 결정 기능(GPS에 의하여 제공되는 것과 같은 위치정보), 음악 플레이어(MP3 또는 AAC 파일과 같은 하나 이상의 파일에 저장되어 기록된 음악을 재생하는) 등을 포함하여 단말(1)에 설치된 임의의 모든 애플리케이션을 포함할 수 있다.
인터페이스(25)는 단말(1)의 입출력 주변장치를 중앙처리장치(23) 및 저장장치(10)와 연결시킨다. 하나 이상의 중앙처리장치(23)는 다양한 소프트웨어 프로그램 및/또는 저장장치(10)에 저장되어 있는 명령어 세트를 실행하여 단말(1)을 위한 여러 기능을 수행하고 데이터를 처리한다. 예를 들어, 인터페이스(25), 중앙처리장치(23) 및 저장장치 제어회로(21)는 하나의 단일칩 상에서 구현되거나 별개의 칩으로 구현될 수 있다.
메인 메모리(30)는 중앙처리장치(23)가 처리하는 적어도 하나 이상의 프로세스에 대한 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장하는 부분이다. 또한, 메인 메모리(30)는 중앙처리장치(23)가 프로세스에 대한 컴퓨팅 연산을 위해 저장장치(40)로부터 필요한 파일을 독출하여 임시로 저장하고, 프로세스에 대한 컴퓨팅 연산의 종료 등의 원인에 의해 저장장치(40)로 데이터가 옮겨지기 전까지 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장할 수 있다.
메인 메모리(30)는 휘발성 메모리(31)와 비휘발성 메모리(33)를 포함할 수 있다. 다만, 실시예에 따라서는 메인 메모리(30)의 구성을 비휘발성 메모리와 휘발성 메모리, 휘발성 메모리와 휘발성 메모리, 비휘발성 메모리와 비휘발성 메모리 등 다양하게 할 수 있고 본 발명은 다양한 실시예에 적용 가능하다.
예를 들어, 비휘발성 메모리(33)는 비휘발성 램(Non-Volatile Random Access Memory, NVRAM)이 가능하고, 비휘발성 램은 스토리지 클래스 메모리(Storage Class Memory, SCM)일 수 있는데, 스토리지 클래스 메모리로 PCRAM(Phase Change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM), STT-MRAM(Spin-Transfer Torque MRAM) 등의 예가 있고, 휘발성 메모리로(31)는 DRAM(Dynamic Random Access Memory)이 가능하다.
또한, 본 실시예에서는 메인 메모리(30)가 2개의 메모리로 구성되는 경우를 예로 하였으나 본 발명은 메인 메모리(30)를 2개 이상인 경우에도 적용 가능하다.
본 발명에서 비휘발성 메모리(33)는 특정 방식으로 임의의 프로세스에 대한 데이터를 저장하고 관리하는데 이에 대한 상세한 설명은 이하 도 2 ~ 도 5에서 상세히 설명하도록 한다.
통신회로(50)는 전자파와 같은 신호를 송수신한다. 통신회로(50)는 전기신호를 전자파로 변환하며 이 전자파를 통하여 통신 네트워크 및 다른 통신장치와 통신한다. 통신회로(50)는 예를 들어, 안테나 시스템, RF 트랜시버, 하나 이상의 증폭기, 튜너, 하나 이상의 오실레이터, 디지털 신호 처리기, CODEC 칩셋, 가입자 식별모듈(Subscriber Identity Module, SIM) 카드, 메모리 등을 포함하지만 이에 한정되지 않고, 이러한 기능을 수행하기 위한 주지의 회로를 포함할 수 있다. 통신회로(50)는 월드 와이드 웹(World Wide Web, WWW)으로 불리는 인터넷, 인트라넷과 네트워크 및/또는, 셀룰러 전화 네트워크, 무선 LAN 및/또는 MAN(metropolitan area network)와 같은 무선 네트워크, 그리고 무선통신에 의하여 다른 장치와 통신할 수 있다. 무선통신은 GSM(Global System for Mobile Communication), EDGE(Enhanced Data GSM Environment), WCDMA(Wideband Code Division Multiple Access), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), 블루투스(Bluetooth), 와이 파이(Wireless Fidelity, Wi-Fi)(예를 들어, IEEE802.11a, IEEE802.11b, IEEE802.11g 및/또는 IEEE802.11n), VoIP(Voice over Internet Protocol), Wi-MAX, 이메일, 인스턴트 메시징(Instant messaging) 및/또는 단문 문자 서비스(SMS)용 프로토콜 또는 본 발명의 출원 시점에 아직 개발되지 않은 통신 프로토콜을 포함하는 기타 다른 적절한 통신 프로토콜을 포함하지만 이에 한정되지 않는 복수의 통신 표준, 프로토콜 및 기술 중 어느 것을 이용할 수 있다.
오디오회로(70)는 인터페이스(25)로부터 데이터를 수신하고, 수신한 데이터를 전기신호로 변환하고, 전기신호를 스피커로 전송한다. 스피커는 수신한 전기신호를 인간이 들을 수 있는 음파로 변환한다. 오디오회로(70)는 전기신호를 오디오 데이터를 변환하고 이를 인터페이스(25)로 전송하여 처리한다. 오디오 데이터는 인터페이스(25)에 의하여 저장장치(10) 및/또는 통신회로(50)로부터 검색하거나 전송할 수 있다.
표시장치(80)는 사용자와 단말(1) 사이의 출력과 관련한 인터페이스를 제공한다. 즉, 표시장치(80)는 사용자에게 시각적인 출력을 표시하여, 사용자는 표시장치(80)를 통해서 데이터, 콘텐츠 등을 볼 수 있다. 시각적 출력은 애니메이션, 이미지, 텍스트, 그래픽, 비디오와 이들의 조합을 포함할 수 있다.
입력장치(90)는 사용자와 단말(1) 사이의 입력과 관련한 인터페이스를 제공한다. 즉, 입력장치(90)는 사용자가 단말(1)에 입력신호와 같은 명령 등을 입력할 수 있고, 사용자가 입력장치(90)를 통해서 입력신호를 입력하면, 단말(1)은 다양한 종류의 사용자 입력신호를 검출하고 중앙처리장치(23)의 제어에 의해서 사용자의 명령을 수행한다.
다만, 터치스크린과 같은 일부 실시예에서는 표시장치(80)와 입력장치(90)가 일체로 될 수 있고, 분리될 수도 있다.
또한, 단말(1)은 오디오회로(70)와 연결된 스피커(미도시)와 마이크로폰(미도시)을 더 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 임의의 프로세스를 비휘발성 메모리에 저장하는 방식을 나타낸 것이다. 본 실시예에서는 가상 메모리 계층인 프로세스 주소공간(100)에서 제1세그먼트(110), 제2세그먼트(120), 제3세그먼트(130)로 구성되는 임의의 프로세스가 비휘발성 메모리(200)에 저장되어 관리되는 형태를 나타낸 것이다. 또한, 본 발명은 적어도 하나 이상의 세그먼트로 구성되는 다양한 종류의 프로세스에 적용 가능하며, 프로세스를 구성하는 세그먼트의 개수에 본 발명이 한정되지는 않음을 밝혀둔다.
도 2를 참조하면, 비휘발성 메모리(200)에서 하나의 프로세스를 비휘발성 메모리(200)에 저장하는 단위인 영속적 프로세스 컨텍스트를 형성하는 영역으로 세그먼트 데이터 영역(210), 세그먼트 메타 영역(220), 통합 메타 영역(250)을 포함한다. 여기서, 영속적 프로세스 컨텍스트를 형성하는 영역은 빈 영역(260)을 더 포함할 수 있는데, 이는 영속적 프로세스 컨텍스트의 크기가 바이트(Byte) 단위 또는 페이지 단위로 이루어지게 하기 위함이다. 이때, 빈 영역(26)의 위치는 설계에 따라서 다양한 경우가 가능한데, 예를 들어, 도 2와 같이 통합 메타 영역(250)과 접하거나, 다른 실시예로 세그먼트 데이터 영역(210)과 세그먼트 메타 영역(220) 사이에 위치할 수 있다.
세그먼트 데이터 영역(210)은 실제 프로세스를 구성하는 데이터가 저장되는 영역으로, 프로세스 주소공간의 제1세그먼트(110)의 세그먼트 데이터를 저장하는 제1세그먼트 데이터 영역(211), 프로세스 주소공간의 제2세그먼트(120)의 세그먼트 데이터를 저장하는 제2세그먼트 데이터 영역(221), 프로세스 주소공간의 제3세그먼트(130)의 세그먼트 데이터를 저장하는 제3세그먼트 데이터 영역(231)을 포함한다.
세그먼트 메타 영역(220)은 비휘발성 메모리(200)에 저장된 세그먼트 데이터에 접근할 수 있는 메타 정보를 저장하는 영역으로, 예를 들어 세그먼트 메타 영역(220)에 저장된 정보는 세그먼트 데이터 영역의 주소정보, 세그먼트 권한 정보, 매핑 타입 정보(예를 들어, inode 정보), 타겟 프로그램 정보, 동적링크 정보, 라이브러리 정보 등을 포함한다. 여기서, 매핑 타입 정보로 세그먼트가 익명 매핑인지 직접 매핑인지를 판단할 수 있다.
즉, 제1세그먼트 메타 영역(213)은 제1세그먼트 데이터 영역(211)의 메타 정보, 제2세그먼트 메타 영역(223)은 제2세그먼트 데이터 영역(221)의 메타 정보, 제3세그먼트 메타 영역(233)은 제3세그먼트 데이터 영역(231)의 메타 정보를 포함한다.
통합 메타 영역(250)은 세그먼트 메타 영역(220)의 메타 정보를 저장하는 영역으로, 예를 들어, 통합 메타 영역(250)은 제1세그먼트 메타 영역(213)의 주소 정보, 제2세그먼트 메타 영역(223)의 주소 정보, 제3세그먼트 메타 영역(233)의 주소 정보와 세그먼트 메타의 개수 정보를 포함하고 있다.
그리고, 세그먼트의 데이터를 이용해서 프로세스를 실행하기 위해서는 프로세스 주소공간(100)에 페이지 단위로 세그먼트가 저장되어야 하는 경우의 예에서, 각각의 영속성 프로세스 컨텍스트의 크기를 페이지에 맞추어서 관리하면 자동적으로 세그먼트들도 페이지 단위로 정렬이 되어 관리가 될 수 있다.
도 3은 본 발명의 일 실시예에 따른 메모리 객체 관리방법을 나타낸 흐름도이다. 즉, 도 3은 본 발명의 일 실시예에 따른 메모리 객체를 관리하는 방법 중에서 비휘발성 메모리(33)에 영속적 프로세스 컨텍스트를 저장하는 방법을 도시한 흐름도이다.
도 3을 참조하면, 단말(1)은 비휘발성 메모리(33)에 저장할 임의의 프로세스인 타겟 프로세스를 식별한다(S310). 이때, 단말(1)은 타겟 프로세스를 식별하기 위해서 타겟 프로세스의 아이디를 검출하여 확인한다.
단말(1)은 타겟 프로세스 식별 후, 타겟 프로세스의 실행을 멈춘다(S320).
단말(1)은 타겟 프로세스의 실행이 멈추었는지 확인한다(S330).
단말(1)은 타겟 프로세스의 실행이 멈추었는지 확인하여, 타겟 프로세스의 실행이 멈추지 않았으면, 타겟 프로세스의 작업이 끝날 때까지 블록킹을 수행한다(S340). 단말(1)은 단계S340이후에, 단계S320을 수행한다.
단말(1)은 타겟 프로세스의 실행이 멈추었는지 확인하여, 타겟 프로세스의 실행이 멈추었으면, 타겟 프로세스의 맵을 확인(S350)하고, 세그먼트를 파싱한다(S360).
단말(1)은 세그먼트 데이터와 세그먼트 메타를 휘발성 메모리(31)에 할당 후 복사한다(S370).
단말(1)은 파싱하여 세그먼트 데이터와 세그먼트 메타를 휘발성 메모리(31)에 할당 후 복사한 세그먼트가 마지막 세그먼트인지 확인한다(S380).
단말(1)은 단계S380에서 확인한 세그먼트가 마지막 세그먼트가 아니면, 세그먼트를 파싱한다(S360).
단말(1)은 단계S380에서 확인한 세그먼트가 마지막 세그먼트이면, 타겟 프로세스의 통합 메타를 생성한다(S390). 여기서, 통합 메타는 세그먼트 메타를 관리하기 위한 정보이다.
단말(1)은 세그먼트 데이터, 세그먼트 메타, 통합 메타를 비휘발성 메모리(33)에 저장한다(S400). 이때, 단말(1)은 세그먼트 데이터, 세그먼트 메타, 통합 메타를 바이트 단위 또는 페이지 단위로 비휘발성 메모리에 저장할 수 있다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리에 저장된 프로세스를 연속 실행하는 방법을 나타낸 것이다. 즉, 본 실시예에서는 비휘발성 메모리에 저장된 영속성 프로세스 컨텍스트를 프로세스 주소공간에 매핑시키고 복사하여 임의의 프로세스를 연속 실행하는 방법을 설명한다.
비휘발성 메모리(400)에 저장된 임의의 프로세스를 연속 실행하기 위해서 단말(1)은 저장장치(700)에 저장된 리스토어 프로그램(790)를 실행하여, 프로세스 주소공간(600)의 런처 영역(690)에서 런처(Launcher)를 작동한다.
단말(1)은 런처 작동 후, 프로세스 주소공간(600)의 스택 영역(610)에 해당하는 제1세그먼트와 힙 영역(620)에 해당하는 제2세그먼트를 휘발성 메모리(500)의 제1영역(510)과 제2영역(520)에 익명 매핑 후 복사한다. 이때, 휘발성 메모리(500)에 복사된 스택과 힙은 자동적으로 프로세스 주소공간(600)에 접근할 수 있다.
그리고, 단말(1)은 직접 매핑이 가능한 제3세그먼트, 제4세그먼트, 제5세그먼트는 비휘발성 메모리(400)에서 프로세스 주소공간(600)의 제3세그먼트 영역(630), 제4세그먼트 영역(640), 제5세그먼트 영역(650)으로 직접 매핑을 수행한다. 이때, 비휘발성 메모리(400)에서 프로세스 주소공간(600)의 제3세그먼트 영역(630), 제4세그먼트 영역(640), 제5세그먼트 영역(650)으로 직접 매핑은 휘발성 메모리(500)에 복사는 속도보다 훨씬 빠른 효과가 있다. 이와 같이, 비휘발성 메모리(400)에서 프로세스 주소공간(600)으로 직접 매핑을 하면 단말(1)은 프로세스 주소공간(600)의 주소로 비휘발성 메모리(400)의 세그먼트 데이터에 바로 접근할 수 있다.
따라서, 본 발명은 스택과 힙을 제외한 나머지 세그먼트들에 대해서 직접 매핑을 수행하여 프로세스의 빠른 연속 실행이 가능하다.
도 5는 본 발명의 다른 실시예에 따른 메모리 객체 관리방법을 나타낸 흐름도이다. 즉, 도 5는 본 발명의 다른 실시예에 따른 메모리 객체를 관리하는 방법 중에서 비휘발성 메모리(33)에 저장된 영속적 프로세스 컨텍스트를 연속 실행하는 방법을 도시한 흐름도이다.
도 5를 참조하면, 단말(1)은 비휘발성 메모리 관리자(15)를 실행한다(S510). 이때, 비휘발성 메모리 관리자(15)가 실행되지 않으면 비휘발성 메모리(33)에 접근을 불가능하다.
단말(1)은 실행시키려는 타겟 프로세스가 저장장치(10)에 있는지 확인한다(S520).
단말(1)은 실행시키려는 타겟 프로세스가 저장장치(10)에 없으면, 비휘발성 메모리(33)에 저장된 영속적 프로세스 컨텍스트를 삭제한다(S530). 이는 더 이상 영속적 프로세스 컨텍스트가 필요하지 않기 때문이다.
단말(1)은 실행시키려는 타겟 프로세스가 저장장치(10)에 있으면, 비휘발성 메모리(33)에 타겟 프로세스가 저장되어 있는지 확인한다(S540).
단말(1)은 비휘발성 메모리(33)에 타겟 프로세스가 저장되어 있지 않으면, 타겟 프로세스의 복구가 불가하여 복구를 수행하지 않는다(S550).
단말(1)은 비휘발성 메모리(33)에 타겟 프로세스가 저장되어 있으면, 비휘발성 메모리(33)로부터 통합 메타를 읽어온다(S560).
단말(1)은 비휘발성 메모리(33)로부터 세그먼트 메타를 읽어온다(S570).
단말(1)은 세그먼트가 익명 매핑인지 확인한다(S580).
단말(1)은 세그먼트가 익명 매핑이 아니면, 파일 매핑을 수행한다(S590). 즉, 단말(1)은 비휘발성 메모리(33)의 세그먼트를 프로세스 주소공간에 직접 매핑을 수행한다. 단말(1)은 단계S590에서 파일 매핑을 수행 후, 세그먼트가 마지막 세그먼트인지 확인한다(S620).
단말(1)은 세그먼트가 익명 매핑이면, 익명 매핑을 수행한다(S600).
단말(1)은 익명 매핑을 수행한 세그먼트를 휘발성 메모리(31)에 복사한다(S610).
단말(1)은 익명 매핑을 수행한 세그먼트를 휘발성 메모리(31)에 복사 후, 세그먼트가 마지막 세그먼트인지 확인한다(S620).
단말(1)은 세그먼트가 마지막 세그먼트인지 확인하여, 단계S620에서 확인한 세그먼트가 마지막 세그먼트가 아니면, 비휘발성 메모리(33)로부터 세그먼트 메타를 읽어온다(S570).
단말(1)은 세그먼트가 마지막 세그먼트인지 확인하여, 단계S620에서 확인한 세그먼트가 마지막 세그먼트이면, 레지스터를 복원(S630)하고, 타겟 프로세스 실행을 재개한다(S640). 이때, 단말(1)은 영속성 프로세스 컨텍스트의 형태로 비휘발성 메모리(33)에 저장될 때 당시의 프로세스의 상태로 타겟 프로세스의 실행을 재개시켜 프로세스 복원을 완료한다.
본 발명의 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 기록매체에 기록될 수 있다. 컴퓨터 판독 가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램(프로그램 명령)은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic media), CDROM, DVD와 같은 광기록 매체(Optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(Magneto-optical media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명을 도면에 도시한 실시예를 참고하여 설명하였으나, 이는 발명을 설명하기 위한 것일 뿐이며, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면 발명의 상세한 설명으로부터 다양한 변형 또는 균등한 실시예가 가능하다는 것을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 권리범위는 특허청구범위의 기술적 사상에 의해 결정되어야 한다.
1: 단말
10: 저장장치
11: 운영체제
13: 비휘발성 메모리 관리자
15: 리스토어 프로그램
17: 통신모듈
19: 애플리케이션
21: 저장장치 제어회로
23: 중앙처리장치
25: 인터페이스
30: 메인 메모리
31: 휘발성 메모리
33: 비휘발성 메모리
50: 통신회로
60: 외부포트
70: 오디오회로
80: 표시장치
90: 입력장치

Claims (6)

  1. 휘발성 메모리와 비휘발성 메모리를 포함하는 단말이 메모리 객체를 관리하는 방법에 있어서,
    상기 비휘발성 메모리에 타겟 프로세스가 저장되어 있으면, 비휘발성 메모리로부터 통합 메타를 읽어오는 단계,
    상기 비휘발성 메모리로부터 세그먼트 메타를 읽어오는 단계,
    세그먼트가 익명 매핑이 아니면, 파일 매핑을 수행하고, 상기 세그먼트가 익명 매핑이면, 익명 매핑을 수행하는 단계,
    상기 익명 매핑을 수행한 상기 세그먼트를 상기 휘발성 메모리에 복사하는 단계,
    레지스터를 복원하고, 상기 타겟 프로세스 실행을 재개하는 단계를 포함하되,
    상기 통합 메타는 상기 세그먼트 메타를 관리하기 위한 정보인 메모리 객체 관리방법.
  2. 제1항에 있어서,
    상기 세그먼트가 마지막 세그먼트인지 확인하여, 상기 세그먼트가 마지막 세그먼트가 아니면, 상기 비휘발성 메모리로부터 상기 세그먼트 메타를 읽어오는 단계를 더 포함하는 메모리 객체 관리방법.
  3. 제2항에 있어서,
    상기 세그먼트가 익명 매핑이면, 익명 매핑을 수행하는 단계는,
    상기 단말이 런처 작동 후, 프로세스 주소공간의 스택 영역에 해당하는 제1세그먼트와 힙 영역에 해당하는 제2세그먼트를 상기 휘발성 메모리의 제1영역과 제2영역에 익명 매핑을 수행하는 메모리 객체 관리방법.
  4. 제3항에 있어서,
    상기 세그먼트가 익명 매핑이 아니면, 파일 매핑을 수행하는 단계는,
    상기 단말이 직접 매핑이 가능한 제3세그먼트, 제4세그먼트, 제5세그먼트를 상기 비휘발성 메모리에서 상기 프로세스 주소공간의 제3세그먼트 영역, 제4세그먼트 영역, 제5세그먼트 영역으로 직접 매핑을 수행하는 메모리 객체 관리방법.
  5. 휘발성 메모리와 비휘발성 메모리를 포함하는 메인 메모리,
    상기 비휘발성 메모리에 타겟 프로세스가 저장되어 있으면, 비휘발성 메모리로부터 통합 메타를 읽어오고, 상기 비휘발성 메모리로부터 세그먼트 메타를 읽어오며, 세그먼트가 익명 매핑이 아니면, 파일 매핑을 수행하고, 상기 세그먼트가 익명 매핑이면, 익명 매핑을 수행하고, 상기 익명 매핑을 수행한 상기 세그먼트를 상기 휘발성 메모리에 복사하고, 레지스터를 복원하여, 상기 타겟 프로세스 실행을 재개하는 것을 관리하는 비휘발성 메모리 관리자를 포함하되,
    상기 통합 메타는 상기 세그먼트 메타를 관리하기 위한 정보인 단말.
  6. 제1항의 메모리 객체 관리방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체.
KR1020140080826A 2014-06-30 2014-06-30 메모리 객체 관리방법 및 이를 위한 단말 KR101430394B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140080826A KR101430394B1 (ko) 2014-06-30 2014-06-30 메모리 객체 관리방법 및 이를 위한 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140080826A KR101430394B1 (ko) 2014-06-30 2014-06-30 메모리 객체 관리방법 및 이를 위한 단말

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020130039761A Division KR101429967B1 (ko) 2013-04-11 2013-04-11 메모리 객체 관리방법 및 이를 위한 단말

Publications (1)

Publication Number Publication Date
KR101430394B1 true KR101430394B1 (ko) 2014-08-13

Family

ID=51750472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140080826A KR101430394B1 (ko) 2014-06-30 2014-06-30 메모리 객체 관리방법 및 이를 위한 단말

Country Status (1)

Country Link
KR (1) KR101430394B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3663927A1 (de) * 2018-12-06 2020-06-10 Giesecke+Devrient Mobile Security GmbH Verfahren zum energiesparenden betreiben eines sicherheitselements einer ein-chip-system-vorrichtung, und ein-chip-system-vorrichtung

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110129250A (ko) * 2010-05-25 2011-12-01 한국과학기술원 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템
KR20130026999A (ko) * 2011-09-06 2013-03-14 삼성전자주식회사 이동 단말 및 그 파일 시스템 관리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110129250A (ko) * 2010-05-25 2011-12-01 한국과학기술원 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템
KR20130026999A (ko) * 2011-09-06 2013-03-14 삼성전자주식회사 이동 단말 및 그 파일 시스템 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3663927A1 (de) * 2018-12-06 2020-06-10 Giesecke+Devrient Mobile Security GmbH Verfahren zum energiesparenden betreiben eines sicherheitselements einer ein-chip-system-vorrichtung, und ein-chip-system-vorrichtung

Similar Documents

Publication Publication Date Title
US10216455B1 (en) Systems and methods for performing storage location virtualization
WO2021098267A1 (zh) 一种磁盘处理的方法、系统、设备及可读存储介质
US20080114923A1 (en) Apparatus and method for controlling operation processing in nonvolatile memory
US10609141B2 (en) Methods and apparatuses for cluster switching
EP2437462A2 (en) Data access processing method and device
US20140068216A1 (en) Storage system for supporting copy command and move command and operation method of storage system
US10657052B2 (en) Information handling system with priority based cache flushing of flash dual in-line memory module pool
US9367691B2 (en) Modify executable bits of system management memory page table
US20170031833A1 (en) Hibernation based on page source
KR20140093505A (ko) 단말기의 메모리 확장 장치 및 방법
WO2019015490A1 (zh) 一种数据处理方法、装置、设备及系统
CN105339909A (zh) 存储系统和有别名的存储器
US9557980B2 (en) Seamless application integration apparatus and method
US10169027B2 (en) Upgrade of an operating system of a virtual machine
CN105740413A (zh) Linux平台上使用FUSE的文件移动方法
CN114579055B (zh) 磁盘存储方法、装置、设备及介质
WO2014100954A1 (zh) 数据控制方法及系统
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
KR101430394B1 (ko) 메모리 객체 관리방법 및 이를 위한 단말
KR101430360B1 (ko) 프로세스의 버전 생성, 버전 복원 방법 및 이를 위한 단말
US9619168B2 (en) Memory deduplication masking
US20190332487A1 (en) Generic metadata tags with namespace-specific semantics in a storage appliance
KR101429967B1 (ko) 메모리 객체 관리방법 및 이를 위한 단말
CN116841799A (zh) 虚拟机备份方法、系统、设备及可读存储介质
CN107656702B (zh) 加速硬盘读写的方法及其系统、以及电子设备

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee