KR102047769B1 - 메모리 가상화 기반 스냅샷 부트 장치 및 방법 - Google Patents

메모리 가상화 기반 스냅샷 부트 장치 및 방법 Download PDF

Info

Publication number
KR102047769B1
KR102047769B1 KR1020130033376A KR20130033376A KR102047769B1 KR 102047769 B1 KR102047769 B1 KR 102047769B1 KR 1020130033376 A KR1020130033376 A KR 1020130033376A KR 20130033376 A KR20130033376 A KR 20130033376A KR 102047769 B1 KR102047769 B1 KR 102047769B1
Authority
KR
South Korea
Prior art keywords
memory
state information
page
loading
snapshot image
Prior art date
Application number
KR1020130033376A
Other languages
English (en)
Other versions
KR20140118093A (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 KR1020130033376A priority Critical patent/KR102047769B1/ko
Publication of KR20140118093A publication Critical patent/KR20140118093A/ko
Application granted granted Critical
Publication of KR102047769B1 publication Critical patent/KR102047769B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Abstract

본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치는 프로세서, 메모리 및 저장소를 포함하며, 상기 저장소는 운영체제에 대응되는 상태 정보를 저장하는 하드웨어; 및 상기 프로세서에 의해 동작되며, 상기 상태 정보를 상기 메모리에 로드시킴으로써 상기 운영체제를 동작시키는 메모리 가상화 관리자(VMM; Virtual Machine Monitor)를 포함하며, 본 발명에 의하면 스냅샷 이미지의 일부만을 로딩하여 시스템을 부팅 시키는 기술을 가상화 기술을 통해 구현함으로써 시스템의 부팅시간을 단축 시킬 수 있다.

Description

메모리 가상화 기반 스냅샷 부트 장치 및 방법{Apparatus and Method for fast booting based on virtualization and snapshot image}

본 발명은 가상화 기반 스냅샷 부트 장치 및 방법에 관한 것이다. 더욱,

상세하게는 스냅샷 이미지의 일부만을 로딩하여 시스템을 부팅 시키는 기술을 가상화 기술을 통해 구현함으로써, 시스템의 부팅 시간을 단축시키는 가상화 기반 스냅샷 부트 장치 및 방법에 관한 것이다.

일반적으로 컴퓨터는 전원이 인가된 후 부팅(booting)을 시작하여 시스템의 초기화가 모두 완료되기까지 적지 않은 시간이 소요된다. 따라서, 특정 애플리케이션(application)을 실행하려는 사용자는 전원을 인가한 후에도 애플리케이션을 수행하려면 부팅이 완료될 때까지 기다리고 있어야 하는 문제가 있다. 특히, 스마트폰(smart phone), PMP(Portable Multimedia Player) 또는 차량용 내비게이션(navigation) 장치와 같이 많이 쓰이고 있는 임베디드(embedded) 장치에서는 전원을 인가하자마자 즉각적인 사용이 가능하지 않다면 사용자들은 불편함을 느끼게 된다.

특히, 종래에 펌웨어(firmware) 수준에서 프로그램되던 임베디드 장치들은 현재 리눅스(Linux) 또는 윈도우 모바일(Windows Mobile)과 같이 상대적으로 느린 임베디드 장치에서 이와 같은 운영체제를 부팅하기 위해서는 부팅 시간이 더욱 늘어나므로 부팅 속도를 최적화하기 위한 노력들이 이루어지고 있다.

종래 스냅샷 이미지에는 특정 시점의 컴퓨터 시스템 상태 정보가 기록되며, 구동 시 시스템을 저장된 상태로 복원하는데 사용되었다. 또한, 대기 전력을 최소화하고 부팅 시간을 단축하는데 사용되어 왔다. 최근에는 임베디드 시스템 분야에서도 안드로이드와 같은 큰 규모의 플랫폼이 사용되면서 늘어난 부팅 시간을 단축하기 위해 스냅샷 부팅 기술이 적용되고 있다. 공개 특허 제 2012-0062968 는 부팅 시 메모리 상태 정보를 모두 로딩하였으며, 운영체제 등의 상태 정보의 저장 방법에 대하여 명시되지 않고 있으므로 부팅 속도를 최적화 하는데 한계가 있었다. 따라서 시스템의 상태 정보를 종류 별로 접근하고, 스냅샷 이미지의 메모리 정보를 제외한 상태 정보만을 로딩하여 부팅하는 메모리 가상화 기반 스냅샷 부트 장치 및 방법이 필요하다.

본 발명은 전술한 종래 기술의 단점을 해결하기 위하여, 스냅샷 이미지의

일부만을 로딩하여 시스템을 부팅시키는 장치 및 방법을 제공하는 것을 목적으로 한다.

본 발명은 스냅샷 이미지의 일부를 로딩하여 시스템을 부팅시키는데 있어

서,가상화 기술을 통해 효율적인 시스템 운영으로 부팅시키는 장치 및 방법을 제공하는 것을 목적으로 한다.

본 발명은 메모리 가상화 기반 스냅샷 부팅 후, 메모리 상태 정보를 로딩하지 않으므로 발생하는 페이지 폴트를 메모리 가상화 관리자의 페이지 폴트 핸들러를 통하여 처리하는 장치 및 방법을 제공하는 것을 목적으로 한다.

상기한 목적을 달성하기 위한 본 발명에 따른 메모리 가상화 기반 스냅샷

부트 장치는 프로세서, 메모리 및 저장소를 포함하며, 상기 저장소는 운영체제에 대응되는 상태 정보를 저장하는 하드웨어; 및 상기 프로세서에 의해 동작되며, 상기 상태 정보를 상기 메모리에 로드시킴으로써 상기 운영체제를 동작시키는 메모리 가상화 관리자(VMM; Virtual Machine Monitor)를 포함하되, 상기 상태 정보는 스냅샷 이미지로 저장이 가능하며, 상기 스냅샷 이미지는 상기 상태 정보의 종류에 따라 구분되어 저장되며, 상기 메모리 가상화 관리자는 스냅샷 이미지 헤더의 유효여부를 판단하는 판단부 및 상기 판단부에서 유효라고 판단되는 경우, 상기 스냅샷 이미지를 로딩하는 로딩부를 포함하며, 상기 로딩부는 상기 상태 정보의 종류에 따라 구분하여 로딩할 수 있는 것을 특징으로 한다.

이 때, 상기 스냅샷 이미지는, CPU 상태 정보, 주변장치 상태 정보, 메모

리 페이지 테이블 및 MMU(Memory Management Unit) 상태 정보, 메모리 상태 정보로 구분되어 저장될 수 있다.

이 때, 상기 로딩부는, CPU 상태 정보, 주변장치 상태 정보, 메모리 페이

지 테이블 및 MMU 상태 정보를 로딩할 수 있다.

이 때, 상기 메모리 페이지 테이블은, 상기 운영체제가 관리하는 1차 페이지 테이블이며, 상기 1차 페이지 테이블을 통해 번역된 주소에 대해 페이지 폴트를 발생하도록 설정되는 2차 페이지 테이블이 생성될 수 있다.

이 때, 상기 메모리 가상화 관리자는 페이지 폴트가 발생한 경우, 페이지

폴트 핸들러를 통하여 해당 메모리페이지를 저장소에서 메모리로 적재하고, 페이지 테이블 엔트리를 갱신 할 수 있다.

이 때, 상기 상태 정보는, 각각 서로 상이한 운영체제에 대응되는 복수

개의 상태 정보를 포함하며, 상기 로딩부는 상기 복수 개의 상태 정보 중 어느 하나를 상기 메모리에 로드시킬 수 있다.

이 때, 상기 메모리 가상화 관리자는, 상기 상태 정보가 상기 메모리에

로드된 후, 상기 저장소에 저장된 상기 상태 정보를 갱신할 수 있다.

또한, 상기한 목적을 달성하기 위한 본 발명에 따른 메모리 가상화 기반

스냅샷 부트 방법은 메모리 가상화 관리자를 구동시키는 단계; 스냅샷 이미지 헤더를 로딩하는 하는 단계; 상기 스냅샷 이미지 헤더의 유효여부를 판단하는 단계;

상기 스냅샷 이미지를 로딩하는 단계를 포함하며, 상기 상기 스냅샷 이미지는 상기 상태 정보의 종류에 따라 구분되어 저장되며, 상기 로딩하는 단계는 상기 유효여부를 판단하는 단계에서 유효하다고 판단되는 경우, 상기 상태 정보의 종류에 따라 구분하여 로딩할 수 있으며, 상기 유효여부를 판단하는 단계에서 유효하지 않다고 판단되는 경우, 상기 로딩하는 단계 없이 일반적인 부팅을 할 수 있다.

이 때, 상기 스냅샷 이미지는, CPU 상태 정보, 주변장치 상태 정보, 메모리 페이지 테이블 및 MMU(Memory Management Unit) 상태 정보, 메모리 상태 정보로 구분되어 저장될 수 있다.

이 때, 상기 로딩하는 단계는, CPU 상태 정보, 주변장치 상태 정보, 메모리 페이지 테이블 및 MMU 상태 정보를 로딩할 수 있다.

이 때, 상기 메모리 페이지 테이블은, 상기 운영체제가 관리하는 1차 페이지 테이블이며, 상기 1차 페이지 테이블을 통해 번역된 주소에 대해 페이지 폴트를 발생하도록 설정되는 2차 페이지 테이블이 생성될 수 있다.

이 때, 상기 메모리 가상화 관리자는 페이지 폴트가 발생한 경우, 페이지 폴트 핸들러를 통하여 해당 메모리페이지를 저장소에서 메모리로 적재하고, 페이지 테이블 엔트리를 갱신할 수 있다.

이 때, 상기 상태 정보는, 각각 서로 상이한 운영체제에 대응되는 복수 개의 상태 정보를 포함하며, 상기 로딩부는 상기 복수 개의 상태 정보 중 어느 하나를 상기 메모리에 로드시킬 수 있다.

이 때, 상기 메모리 가상화 관리자는, 상기 상태 정보가 상기 메모리에 로드된 후, 상기 저장소에 저장된 상기 상태 정보를 갱신할 수 있다.

본 발명은 전술한 종래 기술의 단점을 해결하기 위하여, 스냅샷 이미지의

일부만을 로딩하여 시스템을 부팅시키는 효과가 있다.

본 발명은 스냅샷 이미지의 일부를 로딩하여 시스템을 부팅시키는데 있어

서 가상화 기술을 통해 효율적인 시스템 운영을 지원하는 효과가 있다.

본 발명은 메모리 가상화 기반 스냅샷 부팅 후, 메모리 상태 정보를 로딩하지 않으므로 발생하는 페이지 폴트를 메모리 가상화 관리자의 페이지 폴트 핸들러를 통하여 처리하는 효과가 있다.

도 1은 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치의 구성을 도시한 것이다.
도 2는 본 발명에 따른 스냅샷 이미지의 구성을 도시한 것이다.
도 3은 본 발명에 따른 페이지 테이블에 관한 것으로서, 2 단계의 페이지 테이블을 도시한 것이다.
도 4는 본 발명에 따른 부팅 직후의 2차 페이지 테이블의 설정을 도시한 것이다.
도 5는 부팅 직 후에 발생한 페이지 폴트를 처리하는 과정을 도시한 것이다.
도 6는 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 방법의 동작 흐름도를 도시한 것이다.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.

본 명세서에서 "가상화(virtualization)" 란 운영체제(OS; Operating System) 가상화 기술을 지칭한다. 운영체제 가상화란 하드웨어 자원들을 가상화하여 하나의 물리적인 머신(machine)에서 복수 개의 운영체제를 동작시킬 수 있는 기술을 말한다. 상기 가상화 기술에는 실행중인 운영체제를 멈춤(suspend)시키고 또는/또한 다시 복원(resume) 시킬 수 있는 기능이 있다. 이상의 기능은, 현재 실행중인 운영체제의 상태 정보를 파일(file) 형태의 이미지로 저장하였다가 추후 원하는 시점에 저장된 이미지 파일을 사용하여 운영체제의 상태를 복원함으로써 달성될 수 있다.

본 명세서에 기술된 예는 전적으로 하드웨어이거나, 부분적으로 하드웨어이고 부분적으로 소프트웨어이거나, 또는 전적으로 소프트웨어인 측면을 가질 수 있다. 본 명세서에서 "장치", "인터페이스(interface)" 또는 "시스템" 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어 등 컴퓨터 관련 엔티티(entity)를 지칭한다. 예를 들어, 본 명세서에서 장치, 인터페이스 또는 시스템 등은 실행중인 프로세스, 프로세서, 객체(object), 실행 파일(excutable), 실행 스레드(thread of execution), 프로그램(program), 및/또는 컴퓨터(computer)일 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 컴퓨터에서 실행중인 애플리케이션(application) 및 컴퓨터의 양쪽이 모두 본 명세서의 장치, 인터페이스 또는 시스템 등에 해당할 수 있다.

이하에서는 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치에 대하여 설명한다.

도 1은 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치의 구성을 도시한 것이다.

상기 도 1을 참조하면, 본 발명의 메모리 가상화 기반 스냅샷 부트 장치(100)는 크게 하드웨어(10)와 메모리 가상화 관리자(VMM; Virtual Machine Monitor)(20)를 포함한다. 상기 하드웨어(10)는 중앙 처리 장치(CPU; Central Processing Unit)와 같은 프로세서(11), 프로세서의 작업 영역을 제공하는 메모리(12) 및 운영체제(30)의 상태 정보를 저장하기 위한 저장소(13)를 포함할 수 있다. 상기 저장소는 하드 디스크(Hard disk) 등의 자기 저장 매체 및/또는 CD(Compact Disc), DVD(Digital Versatile Disc) 등의 광학 저장 매체를 포함할 수 있으나, 이에 한정되는 것은 아니다.

본 발명의 메모리 가상화 기반 스냅샷 부트 장치(100)는 스냅샷 이미지를 이용하여 부팅을 실행할 수 있다. 스냅샷 이미지는 초기 부팅이 완료되었을 때의 시스템 상태 정보가 될 수 있다. 시스템의 상태 정보는 하드웨어에 포함된 프로세서, 메모리, 주변장치인 입/출력 장치 등의 상태 정보가 될 수 있다. 예를 들어, 시스템의 부팅이 완료된 직후에, 메모리 가상화 기반 스냅샷 부트 장치(100)는 스냅샷 이미지를 생성한다. 생성된 스냅샷 이미지는 메모리(12)의 특정 영역에 존재할 수 있다. 메모리 가상화 기반 스냅샷 부트 장치(100)는 생성된 스냅샷 이미지를 저장소(13)에 저장한다. 저장소(13)는 메모리(12)와 달리 전원 공급이 중단되어도 정보를 저장할 수 있다. 시스템이 재기동 될 때, 메모리 가상화 스냅샷 부트 장치(100)는 저장소(13)에 저장된 스냅샷 이미지를 메모리(12)에 로딩함으로써 빠른 부팅이 수행되도록 하는 것이 가능하다.

도 2는 본 발명에 따른 스냅샷 이미지의 구성을 도시한 것이다.

도 2를 참조하면 상기 스냅샷 이미지(200)는 상태 정보의 종류에 따라 구분되어 저장할 수 있다. 예를 들어, 상기 상태 정보의 종류에는 CPU 상태 정보(210), 주변장치 상태 정보(220), 메모리 페이지 테이블 및 MMU 상태 정보(230) 및 메모리 상태 정보(240)로 구분될 수 있다.

도 1 및 2를 참조하면, 상기 메모리 가상화 관리자(20)는 스냅샷 이미지 헤더의 유효여부를 판단하는 판단부(21)와 상기 스냅샷 이미지를 로딩하는 로딩부(22)를 포함한다.

상기 메모리 가상화 기반 스냅샷 부트 장치의 실시와 관련하여 설명하면, 우선 시스템에 전원이 인가되고, 메모리 가상화 관리자(20)가 구동된다. 그리고 상기 저장소에서 스냅샷 이미지 헤더를 읽어온 후 상기 판단부(21)는 스냅샷 이미지 헤더의 유효성을 검사하게 된다. 상기 스냅샷 이미지 헤더가 유효하지 않다고 판단되면, 상기 스냅샷 이미지를 복원하지 않는 일반적인 부팅이 진행되고, 상기 스냅샷 이미지 헤더가 유효하다고 판단되면, 상기 로딩부(22)는 스냅샷 이미지에 저장된 상태 정보 중에서 일부를 로딩한다. 여기서, 로딩되는 상태 정보에는 메모리 페이지 테이블과 MMU 설정 정보 등이 포함될 수 있다. 이상에서 설명한 것처럼 상기 스냅샷 이미지에 저장된 상태 정보 중에서 일부만을 로딩하는 이유는 스냅샷 부팅에 소요되는 시간의 대부분이 저장소(13)에 저장된 스냅샷 이미지를 메모리(12)로 읽어 오는데 쓰이기 때문이며, 상기 스냅샷 이미지의 대부분이 상기 상태 정보 중 메모리 상태 정보(240)이기 때문이다. 전술한 것과 같이 스냅샷 이미지 형태로 저장되어 있는 운영체제의 상태 정보를 메모리 내에 적재하면, 부팅 과정이 완료된 상태로 운영체제로 복원 할 수 있고, 이러한 경우, 장치 드라이버 초기화 등을 포함하여 모든 초기화 과정이 완료된 운영체제의 상태 정보를 메모리에 적재하는 것에 의하여 실제로 운영체제를 부팅한 것과 동일한 효과를 얻을 수 있다. 그 결과, 장치 드라이버의 초기화, 각종 커널 자료 구조에 대한 초기화 및 기타 초기화 프로그램에서 발생되는 소요 시간이 없게 되며, 단지 부팅이 완료된 운영체제의 상태 정보를 메모리 내에 적재하기만 하면 되므로, 장치에 전원을 인가한 후 시스템이 부팅되는 시간이 비약적으로 감소하게 된다. 또한, 부팅이 완료된 운영체제의 상태 정보가 스냅샷 이미지 형태로 하드웨어(10)의 저장소(13)에 미리 저장되어 있으므로, 전원이 종료되었다가 다시 인가되는 경우에도 고속 부팅이 가능하다. 또한, 추후 운영체제(30) 업그레이드 등 운영체제에 변경이 발생하는 경우, 운영체제(30)의 변경에 대응되도록 저장소(13)에 저장된 운영체제(30)의 상태 정보 스냅샷 이미지를 업데이트 함으로써 유연성 있는 스냅샷 이미지 관리가 이루어 질 수도 있다. 예컨데, 메모리 가상화 관리자(20)는 특정 사용자 입력에 대한 응답으로 또는 자동으로 운영체제(30)의 상태 정보를 갱신하도록 구성될 수 있다. 상기 메모리 가상화 관리자(20)의 로딩부(22)는 상기 스냅샷 이미지를 점진적으로(incrementally) 로딩할 수 있다. 구체적으로, 상기 스냅샷 이미지의 상태 정보를 모두 로딩한 후 부팅이 완료되는 것이 아니라, 상기 스냅샷 이미지의 상태 정보 중 가장 많은 부분을 차지하고 있는 메모리 상태 정보(240)를 제외한 상태 정보 만을 로딩한 후 부팅을 완료할 수 있다. 따라서, 부팅 시간이 줄어드는 효과가 있게 되는 것이다.

예를 들면, 시스템 부팅이 시작되어, 메모리 가상화 관리자가 구동되고, 스냅샷 이미지 헤더를 로딩하고, 상기 스냅샷 이미지 헤더가 유효하면, 상기 스냅샷 이미지에서 메모리 상태 정보(240)를 제외한 상태 정보만을 로딩함으로써 운영체제(30)의 복원 시점으로 돌아가면서 부팅이 완료 되는 것이다.

도 3은 본 발명에 따른 페이지 테이블에 관한 것으로서, 2 단계의 페이지 테이블을 도시한 것이다.

일반적으로, 운영체제(30)에서 메모리(12)를 참조하는 경우, 메모리 영역을 비연속적인 페이지 단위로 나누어 주소를 할당하는 페이징 기법이 널리 사용되고 있다. 이 페이징 기법에서는 연속적인 실제의 물리적 주소를 비연속적인 논리적 주소로서 페이지에 할당하고, 페이지 테이블 엔트리(PTE; Page Table Entry)를 통해 실제 물리 주소를 맵핑(mapping)하는 방식으로 메모리를 참조하게 된다. 이 때, 논리적 주소와 실제 물리적 주소가 다르므로 이를 가상 메모리(Virtual Memory)라고 하며, 논리적 주소는 가상 주소(Virtual Adress)라고 한다.

도 3을 참조하면, 본 발명에서는 2 단계의 메모리 페이지 테이블이 관리되며, 이는 종래의 운영체제(30)에서 관리하던 1차 페이지 테이블(231)과 메모리 가상화 관리자(20)가 관리하는 2차 페이지 테이블(233)로 구성된다.

운영체제(30) 혹은 응용프로그램(40,41,42)이 접근하는 메모리 주소가 운영체제의 1차 페이지 테이블(231)에서 번역된 후 메모리 가상화 관리자(20)에 의해 2차 페이지 테이블(233)에서 다시 번역되어 실제 물리적 메모리 접근할 때 사용된다. 결과적으로, 2차 페이지 테이블(233)의 관리를 통해, 운영체제(30)로 하여금 메모리 정보가 모두 로딩된 것으로 보이도록 구색을 갖추게 되어 부팅을 완료할 수 있게 되는 것이다.

도 4는 본 발명에 따른 부팅 직후의 2차 페이지 테이블의 설정을 도시한 것이다.

도 4를 참조하면, 부팅 직 후의 페이지 테이블 설정을 알 수 있다. 구체적으로, 도 3의 상태에서의 페이지 테이블을 포함한 시스템의 상태 정보가 스냅샷 이미지로 저장되었다고 가정하면, 상기 스냅샷 이미지를 활용하여 부팅한 직 수의 페이지 테이블의 상태를 도 4에서 나타난다. 도 4를 계속하여 참조하면, 부팅 완료 후 2차 페이지 테이블(234)의 모든 행이 fault로 설정되었는데, 이는 본 발명이 스냅샷 이미지의 메모리 상태 정보(240)를 로딩하지 않고 부팅을 완료하는 것에서 기인하는 당연한 결과이다. 재언하면, 부팅 직 후에는 응용프로그램(40,41,42)이나 운영체제(30)에서 접근하는 메모리 페이지가 유효하지 않기 때문에, 부팅 후 실행되는 도중에 페이지 폴트가 발생하게 되는 것이다.

도 5는 부팅 직 후에 발생한 페이지 폴트를 처리하는 과정을 도시한 것이다.

도 1, 4 및 5를 참조하면, 상기 도 4에서 나타난 페이지 폴트를 처리하는 과정을 알 수 있다. 본 발명에 따른 메모리 가상화 기반 스냅샷 부팅 후, 운영체제(30) 또는 응용 프로그램(40,41,42)에서 메모리에 접근하는 과정(S200)에서 상기 접근 하는 페이지가 복원되지 않은 경우, 페이지 폴트가 발생한다(S210). 이 때, 메모리 가상화 관리자(20)의 페이지 폴트 핸들러에게 제어가 넘어가게 된다. 상기 페이지 폴트 핸들러는 상기 복원되지 않은 메모리 페이지를 저장소(13)에서 메모리(12)로 적재하고 상기 2차 페이지 테이블의 엔트리를 수정하게 된다(S20). 그 후, 페이지 테이블 핸들러는 페이지 폴트를 발생시킨 운영체제(30) 또는 응용프로그램(40,41,42)에게 제어를 통보하여 제어를 넘기게 된다(S240). 이상에서와 같이, 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치(100)는 메모리 가상화 관리자(20)를 통하여 스냅샷 이미지(200)의 메모리 상태 정보(240)를 생략하거나 일부만을 로딩함으로써, 부팅 속도를 향상시키고, 이로 인해, 발생하는 페이지 폴트를 해결하기 위해 메모리 가상화 관리자(20)의 페이지 폴트 핸들러를 활용하는 것이다.

이하에서는 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 방법에 대하여 설명한다.

도 6는 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 방법의 동작 흐름도를 도시한 것이다.

도 6을 참조하면, 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 방법은 시스템의 전원이 인가되고, 메모리 가상화 관리자를 구동하게 된다(S100). 그리고 저장소에서 스냅샷 이미지 헤더를 로딩한 후(S110), 스냅샷 이미지의 헤더가 유효한지를 판단하게 된다(S120). 상기 S120 단계에서 상기 스냅샷 이미지의 헤더가 유효하다고 판단되면, 스냅샷 이미지를 로딩(S130)함으로써 부팅을 하는 것이고, 상기 스냅샷 이미지의 헤더가 유효하지 않다고 판단되면, 스냅샷 이미지의 활용없이 일반적인 부팅방법으로 부팅을 하게 된다(S140). 상기 S130 단계에서 스냅샷 이미지를 로딩 할 때에는 상기 스냅샷 이미지에 저장된 상태 정보 중에서 일부를 로딩한다. 여기서, 로딩되는 상태 정보에는 메모리 페이지 테이블과 MMU 설정 정보 등이 포함될 수 있으며, 상기 상태 정보는 상이한 운영체제에 대응하는 복수 개의 상태 정보를 포함할 수 있고, 이 때, 로딩하는 단계(S130)에서는 상기 복수 개의 상태 정보 중 어느 하나를 메모리에 로드를 할 수 있다. 또한, S130 단계에서 상기 상태 정보가 로드된 후에는 저장소에 저장된 상기 상태 정보가 갱신된다. 이상에서 설명한 것처럼 상기 스냅샷 이미지에 저장된 상태 정보 중에서 일부만을 로딩하는 이유는 스냅샷 부팅에 소요되는 시간의 대부분이 저장소에 저장된 스냅샷 이미지를 메모리로 읽어 오는데 쓰이기 때문이며, 상기 스냅샷 이미지의 대부분이 상기 상태 정보 중 메모리 상태 정보이기 때문이다. 예를 들면, 시스템 부팅이 시작되어, 메모리 가상화 관리자가 구동되고, 스냅샷 이미지 헤더를 로딩하고, 상기 스냅샷 이미지 헤더가 유효하면, 상기 스냅샷 이미지에서 메모리 상태 정보(240)를 제외한 상태 정보만을 로딩함으로써 운영체제(30)의 복원 시점으로 돌아가면서 부팅이 완료 되는 것이다.

도 5는 부팅 직 후에 발생한 페이지 폴트를 처리하는 과정을 도시한 것이다.

도 1, 4 및 5를 참조하면, 상기 도 4에서 나타난 페이지 폴트를 처리하는 과정을 알 수 있다. 본 발명에 따른 메모리 가상화 기반 스냅샷 부팅 후, 운영체제(30) 또는 응용 프로그램(40,41,42)에서 메모리에 접근하는 과정(S200)에서 상기 접근 하는 페이지가 복원되지 않은 경우, 페이지 폴트가 발생한다(S210). 이 때, 메모리 가상화 관리자(20)의 페이지 폴트 핸들러에게 제어가 넘어가게 된다. 상기 페이지 폴트 핸들러는 상기 복원되지 않은 메모리 페이지를 저장소(13)에서 메모리(12)로 적재하고 상기 2차 페이지 테이블의 엔트리를 수정하게 된다(S20). 그 후, 페이지 테이블 핸들러는 페이지 폴트를 발생시킨 운영체제(30) 또는 응용프로그램(40,41,42)에게 제어를 통보하여 제어를 넘기게 된다(S240). 이상에서와 같이, 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치(100)는 메모리 가상화 관리자(20)를 통하여 스냅샷 이미지(200)의 메모리 상태 정보(240)를 생략하거나 일부만을 로딩함으로써, 부팅 속도를 향상시키고, 이로 인해, 발생하는 페이지 폴트를 해결하기 위해 메모리 가상화 관리자(20)의 페이지 폴트 핸들러를 활용하는 것이다.

이상에서와 같이 본 발명에 따른 메모리 가상화 기반 스냅샷 부트 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.

10; 하드웨어
11; 프로세서
12; 메모리
13; 저장소
20; 메모리 가상화 관리자(VMM; Virtual Machine Monitor)
21; 판단부
30; 운영체제
40, 41, 42; 응용 프로그램
200; 스냅샷 이미지
210; CPU 상태 정보
220; 주변장치 상태 정보
230; 메모리 페이지 테이블 및 MMU(Memory Management Unit) 상태 정보
231, 232; 1차 페이지 테이블
233, 234; 2차 페이지 테이블
240; 메모리 상태 정보

Claims (14)

  1. 프로세서, 메모리 및 저장소를 포함하며, 상기 저장소는 운영체제에 대응되는 상태 정보를 저장하는 하드웨어; 및
    상기 프로세서에 의해 동작되며, 상기 상태 정보를 상기 메모리에 로드시킴으로써 상기 운영체제를 동작시키는 메모리 가상화 관리자(VMM; Virtual Machine Monitor)를 포함하되,
    상기 상태 정보는 스냅샷 이미지로 저장이 가능하며, 상기 스냅샷 이미지는 상기 상태 정보의 종류에 따라 구분되어 저장되며,
    상기 메모리 가상화 관리자는 스냅샷 이미지 헤더의 유효여부를 판단하는 판단부 및 상기 판단부에서 유효라고 판단되는 경우, 상기 스냅샷 이미지를 로딩하는 로딩부를 포함하며,
    상기 로딩부는 상기 상태 정보의 종류에 따라 구분하여 로딩하고,
    상기 스냅샷 이미지는,
    CPU 상태 정보, 주변장치 상태 정보, 메모리 페이지 테이블 및 MMU(Memory Management Unit) 상태 정보, 메모리 상태 정보로 구분되어 저장되고,
    상기 로딩부는
    상기 스냅샷 이미지에서 가장 많은 부분을 차지하는 상태 정보를 확인하여 제외시키고, 나머지 CPU 상태 정보, 주변장치 상태 정보, 메모리 페이지 테이블 및 MMU 상태 정보 중 적어도 하나 이상을 로딩하고,
    상기 운영체제는
    상기 메모리에 접근하는 메모리 주소를 상기 운영체제가 관리하는 1차 페이지 테이블에서 1차 번역하고,
    상기 메모리 가상화 관리자는
    상기 1차 페이지 테이블에서 1차 번역된 메모리 주소를 상기 메모리 가상화 관리자가 관리하는 2차 페이지 테이블에서 2차 번역하고,
    상기 메모리 상태 정보를 제외시킨 스냅샷 이미지를 로딩하여 상기 운영체제의 부팅을 완료함으로써 상기 2차 페이지 테이블에서 2차 번역된 메모리 주소에 대해 페이지 폴트를 발생시키고,
    상기 페이지 폴트가 발생한 경우, 페이지 폴트 핸들러를 통하여 상기 페이지 폴트가 발생한 메모리 페이지를 상기 저장소에서 상기 메모리로 적재하고, 상기 메모리에 적재된 상기 페이지 폴트가 발생한 메모리 페이지를 이용하여 상기 2차 페이지 테이블을 수정하고, 상기 페이지 폴트를 발생시킨 운영체제에게 제어를 통보하는 것을 특징으로 하는 메모리 가상화 기반 스냅샷 부트 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 청구항 1에 있어서,
    상기 상태 정보는,
    각각 서로 상이한 운영체제에 대응되는 복수 개의 상태 정보를 포함하며, 상기 로딩부는 상기 복수 개의 상태 정보 중 어느 하나를 상기 메모리에 로드시키는 것을 특징으로 하는 메모리 가상화 기반 스냅샷 부트 장치.
  7. 청구항 1에 있어서,
    상기 메모리 가상화 관리자는,
    상기 상태 정보가 상기 메모리에 로드된 후, 상기 저장소에 저장된 상기 상태 정보를 갱신하는 것을 특징으로 하는 메모리 가상화 기반 스냅샷 부트 장치.
  8. 프로세서, 메모리 및 저장소를 포함하며, 상기 저장소는 운영체제에 대응되는 상태 정보를 저장하는 메모리 가상화 기반 스냅샷 부트 장치의 메모리 가상화 기반 스냅샷 부트 방법에 있어서,
    상기 프로세서에 의해 동작되며, 운영체제에 대응되는 상태 정보를 메모리에 로드시킴으로써 상기 운영체제를 동작시키는 메모리 가상화 관리자를 구동시키는 단계;
    상기 메모리 가상화 관리자가, 스냅샷 이미지 헤더를 로딩하는 단계;
    상기 메모리 가상화 관리자가, 상기 스냅샷 이미지 헤더의 유효여부를 판단하는 단계;
    상기 메모리 가상화 관리자가, 스냅샷 이미지를 로딩하는 단계를 포함하며,
    상기 스냅샷 이미지는 상태 정보의 종류에 따라 구분되어 저장소에저장되며,
    상기 로딩하는 단계는 상기 유효여부를 판단하는 단계에서 유효하다고 판단되는 경우, 상기 상태 정보의 종류에 따라 구분하여 로딩할 수 있으며,
    상기 유효여부를 판단하는 단계에서 유효하지 않다고 판단되는 경우, 상기 로딩하는 단계 없이 일반적인 부팅을 하고,
    상기 스냅샷 이미지는,
    CPU 상태 정보, 주변장치 상태 정보, 메모리 페이지 테이블 및 MMU(Memory Management Unit) 상태 정보, 메모리 상태 정보로 구분되어 저장되고,
    상기 스냅샷 이미지를 로딩하는 단계는
    상기 스냅샷 이미지에서 가장 많은 부분을 차지하는 상태 정보를 확인하여 제외시키고, 나머지 CPU 상태 정보, 주변장치 상태 정보, 메모리 페이지 테이블 및 MMU 상태 정보 중 적어도 하나 이상을 로딩하고,
    상기 운영체제는
    상기 메모리에 접근하는 메모리 주소를 상기 운영체제가 관리하는 1차 페이지 테이블에서 1차 번역하고,
    상기 메모리 가상화 관리자는
    상기 1차 페이지 테이블에서 1차 번역된 메모리 주소를 상기 메모리 가상화 관리자가 관리하는 2차 페이지 테이블에서 2차 번역하고,
    상기 스냅샷 이미지를 로딩하는 단계는
    상기 메모리 가상화 관리자가, 상기 메모리 상태 정보를 제외시킨 스냅샷 이미지를 로딩하여 상기 운영체제의 부팅을 완료함으로써 상기 2차 페이지 테이블에서 2차 번역된 메모리 주소에 대해 페이지 폴트를 발생시키고,
    상기 페이지 폴트가 발생한 경우, 페이지 폴트 핸들러를 통하여 상기 페이지 폴트가 발생한 메모리 페이지를 상기 저장소에서 상기 메모리로 적재하고, 상기 메모리에 적재된 상기 페이지 폴트가 발생한 메모리 페이지를 이용하여 상기 2차 페이지 테이블을 수정하고, 상기 페이지 폴트를 발생시킨 운영체제에게 제어를 통보하는 것을 특징으로 하는 메모리 가상화 기반 스냅샷 부트 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 청구항 8에 있어서,
    상기 상태 정보는,
    각각 서로 상이한 운영체제에 대응되는 복수 개의 상태 정보를 포함하며, 상기 로딩하는 단계는 상기 복수 개의 상태 정보 중 어느 하나를 상기 메모리에 로드시키는 것을 특징으로 하는 메모리 가상화 기반 스냅샷 부트 방법.
  14. 청구항 8에 있어서,
    상기 메모리 가상화 관리자는,
    상기 상태 정보가 메모리에 로드된 후, 상기 저장소에 저장된 상기 상태 정보를 갱신하는 것을 특징으로 하는 메모리 가상화 기반 스냅샷 부트 방법.
KR1020130033376A 2013-03-28 2013-03-28 메모리 가상화 기반 스냅샷 부트 장치 및 방법 KR102047769B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130033376A KR102047769B1 (ko) 2013-03-28 2013-03-28 메모리 가상화 기반 스냅샷 부트 장치 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130033376A KR102047769B1 (ko) 2013-03-28 2013-03-28 메모리 가상화 기반 스냅샷 부트 장치 및 방법
US14/142,458 US9384007B2 (en) 2013-03-28 2013-12-27 Memory virtualization-based snapshot boot apparatus and method

Publications (2)

Publication Number Publication Date
KR20140118093A KR20140118093A (ko) 2014-10-08
KR102047769B1 true KR102047769B1 (ko) 2019-11-25

Family

ID=51622026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130033376A KR102047769B1 (ko) 2013-03-28 2013-03-28 메모리 가상화 기반 스냅샷 부트 장치 및 방법

Country Status (2)

Country Link
US (1) US9384007B2 (ko)
KR (1) KR102047769B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804965B2 (en) 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same
KR102011059B1 (ko) * 2015-03-20 2019-08-16 한국전자통신연구원 스냅샷 이미지 업데이트 장치 및 방법
KR20170065272A (ko) 2015-12-03 2017-06-13 삼성전자주식회사 비휘발성 메인 메모리 시스템의 메모리 맵핑 관리 방법
CN106557355A (zh) * 2016-12-01 2017-04-05 北京奇虎科技有限公司 虚拟机镜像的生成方法及生成装置
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10552070B2 (en) 2017-11-14 2020-02-04 International Business Machines Corporation Separation of memory-based configuration state registers based on groups
US10761983B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
EP3572934A1 (en) * 2018-05-24 2019-11-27 Visteon Global Technologies, Inc. Method for starting an operating system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860447B1 (ko) 2001-07-24 2008-09-25 마이크로소프트 코포레이션 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120988A (ko) * 2005-05-23 2006-11-28 삼성전자주식회사 이중화된 부트롬을 사용하는 시스템 부팅 장치 및 방법
KR101013419B1 (ko) * 2008-08-29 2011-02-14 주식회사 안철수연구소 시스템 보호 장치 및 방법
KR100994723B1 (ko) 2008-10-14 2010-11-16 포항공과대학교 산학협력단 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
CN101770410B (zh) * 2009-01-07 2016-08-17 联想(北京)有限公司 基于客户操作系统的系统还原方法、虚拟机管理器及系统
US20100306774A1 (en) * 2009-05-28 2010-12-02 Subash Kalbarga Instant-On Computing System
KR101651204B1 (ko) * 2010-06-15 2016-08-26 삼성전자주식회사 스냅샷 이미지의 동기화 장치 및 방법
KR101212273B1 (ko) 2010-12-07 2012-12-13 한국과학기술연구원 가상화 기술 기반의 고속 부팅 장치 및 방법
CN103197934A (zh) * 2012-01-09 2013-07-10 联咏科技股份有限公司 多媒体装置的启动方法及多媒体装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860447B1 (ko) 2001-07-24 2008-09-25 마이크로소프트 코포레이션 선택된 기능성을 갖는 오퍼레이팅 시스템 생성 및 이용을위한 방법 및 시스템

Also Published As

Publication number Publication date
KR20140118093A (ko) 2014-10-08
US20140297998A1 (en) 2014-10-02
US9384007B2 (en) 2016-07-05

Similar Documents

Publication Publication Date Title
US10261800B2 (en) Intelligent boot device selection and recovery
US9170835B2 (en) Apparatus and method for expedited virtual machine (VM) launch in VM cluster environment
US8694828B2 (en) Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US9720717B2 (en) Virtualization support for storage devices
US9448728B2 (en) Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
US9183026B2 (en) Supporting heterogeneous virtualization
US10437727B2 (en) Transparent host-side caching of virtual disks located on shared storage
JP2017045477A (ja) 仮想ディスクストレージ技術
US9239841B2 (en) Hash-based snapshots
US9317279B2 (en) Virtual machine block substitution
EP2876556B1 (en) Fast restart of applications using shared memory
US10162655B2 (en) Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
JP5649184B2 (ja) ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム
US8970884B2 (en) Image forming apparatus
EP2397943B1 (en) Uniform storage device by partial virtualization machine
US7412565B2 (en) Memory optimization for a computer system having a hibernation mode
AU2011348835B2 (en) Method and device for implementing memory migration
US9201875B2 (en) Partition file system for virtual machine memory management
US8490088B2 (en) On demand virtual machine image streaming
US10289684B2 (en) Live migration of virtual machine persistent data using mirrored input-output operations
US10474369B2 (en) Mapping guest pages to disk blocks to improve virtual machine management processes
US8972669B2 (en) Page buffering in a virtualized, memory sharing configuration
US7093089B2 (en) Systems and methods for storing data on computer systems
US8453015B2 (en) Memory allocation for crash dump
US9514002B2 (en) Incremental backups using retired snapshots

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant