KR101651204B1 - 스냅샷 이미지의 동기화 장치 및 방법 - Google Patents

스냅샷 이미지의 동기화 장치 및 방법 Download PDF

Info

Publication number
KR101651204B1
KR101651204B1 KR1020100056770A KR20100056770A KR101651204B1 KR 101651204 B1 KR101651204 B1 KR 101651204B1 KR 1020100056770 A KR1020100056770 A KR 1020100056770A KR 20100056770 A KR20100056770 A KR 20100056770A KR 101651204 B1 KR101651204 B1 KR 101651204B1
Authority
KR
South Korea
Prior art keywords
synchronization
page
status information
storage unit
unit
Prior art date
Application number
KR1020100056770A
Other languages
English (en)
Other versions
KR20110136639A (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 KR1020100056770A priority Critical patent/KR101651204B1/ko
Priority to US12/983,693 priority patent/US8589647B2/en
Publication of KR20110136639A publication Critical patent/KR20110136639A/ko
Application granted granted Critical
Publication of KR101651204B1 publication Critical patent/KR101651204B1/ko

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

스냅샷 이미지에 기반하여 부팅이 이루어지는 시스템에 있어서, 시스템의 최신 상태가 지속적으로 반영되도록 하는 스냅샷 이미지의 동기화 장치 및 방법이 제공된다. 동기화 대상이 되는 동기화 페이지는 스냅샷 이미지의 일 부분인 스냅샷 페이지에 대한 라이트 폴트 발생 여부 및 라이트 폴트를 발생시킨 프로세스의 특성에 따라 검출된다. 검출된 동기화 페이지는 특정 순간에 스냅샷 이미지에 반영된다.

Description

스냅샷 이미지의 동기화 장치 및 방법{Apparatus and Method for synchronization of snapshot image}
스냅샷 이미지에 기반한 빠른 시스템 부팅 기술과 관련된다.
최근 시스템의 부팅 시간을 줄이기 위한 방법으로 스냅샷 이미지에 기반한 system suspend/resume 기법에 대한 활용이 부각되고 있다. 스냅샷 이미지는 컴퓨팅 상태를 비롯하여 물리 메모리의 내용을 담고 있는 일종의 메타 데이터로, system suspend시 비휘발성 메모리에 생성되고 system resume시 저장된 스냅샷 이미지 통해 시스템이 중단된 시점부터 작업이 재개될 수 있도록 한다.
이러한 스냅샷 이미지에 기반한 suspend/resume 기법은 시스템 부팅이 끝난 이후의 시스템 상태를 가지고 스냅샷 이미지를 생성하고 이를 이용하여 부팅하도록 함으로써 시스템 부팅 시간을 줄일 수 있다.
하지만 이 기법은 시스템의 최신 상태를 유지하기 위해서는 항상 사용자가 개입하여 시스템의 스냅샷 이미지를 생성해야 할 뿐만 아니라 시스템 메모리 전체를 덤프해야 한다는 문제가 있다. 만약, 스냅샷 이미지에 기반한 fast boot 환경에서, 사용자가 새로운 프로그램을 설치하거나 시스템의 설정을 변경한 상태에서 스냅샷 이미지를 동기화시키지 않고 시스템을 다시 시작하게 되면, 이전에 설치된 프로그램 정보와 설정 변경 사항들이 모두 사라지게 되는 문제가 있다.
즉 비록 프로그램이 저장 장치에 설치되어 있거나 변경 사항들이 설정 파일에 기록되어 있다고 할지라도 스냅샷 이미지 동기화 없이 시스템을 재 부팅하게 되면 메모리의 내용이 프로그램 설치 이전이나 설정 변경 이전 상태로 돌아가기 때문에 저장장치에 저장된 정보와 메모리에 로드된 정보가 일치하지 않게 된다.
런타임시 사용자의 개입 없이 시스템의 변경 상태를 스냅샷 이미지와 동기화 시키는 스냅샷 이미지의 동기화 기술 및 이를 이용한 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 스냅샷 동기화 장치는 시스템의 실행 상태와 관련되고 시스템의 디스크에 저장되는 상태 정보에 기초하여 시스템을 부팅하는 부팅부, 시스템의 부팅 이후에, 시스템 상의 프로세스 실행에 따라 상태 정보 중 시스템의 메모리로 로딩된 부분에 변경이 있는지 여부를 판단하고, 그 판단 결과에 따라 변경된 부분에 대응되는 동기화 페이지를 검출하는 동기화 페이지 검출부, 및 검출된 동기화 페이지를 시스템의 디스크에 저장된 상태 정보에 반영하는 상태 정보 갱신부를 포함할 수 있다.
또한 본 발명의 일 양상에 따른 스냅샷 동기화 방법은 시스템의 실행 상태와 관련되고 시스템의 디스크에 저장되는 상태 정보에 기초하여 시스템을 부팅하는 단계, 시스템의 부팅 이후에, 시스템 상의 프로세스 실행에 따라 상태 정보 중 시스템의 메모리로 로딩된 부분에 변경이 있는지 여부를 판단하고, 그 판단 결과에 따라 변경된 부분에 대응되는 동기화 페이지를 검출하는 단계, 및 검출된 동기화 페이지에 기초하여 시스템의 디스크에 저장된 상태 정보를 갱신하는 단계를 포함할 수 있다.
또한 본 발명의 일 양상에 따른 전자 장치는 시스템의 실행 상태와 관련된 상태 정보를 저장하는 제 1 저장부, 상태 정보에 기초하여 시스템이 부팅되는 경우, 시스템 상의 프로세스 실행에 따라 상태 정보 중 일부가 로딩되는 제 2 저장부, 및 프로세스가 제 2 저장부에 로딩된 상태 정보를 변경하는 경우, 그 변경된 부분에 대응되는 동기화 페이지를 검출하고, 검출된 동기화 페이지를 제 1 저장부에 저장된 상태 정보에 반영하는 동기화부를 포함할 수 있다.
개시된 내용에 따르면, 스냅샷 이미지에 기초하여 부팅이 수행되므로 초기 부팅시간을 줄일 수 있고, 스냅샷 이미지의 특정 부분이 자동적으로 갱신되기 때문에 시스템의 최신 상태를 스냅샷 이미지에 계속적으로 반영할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 도시한다.
도 2는 본 발명의 다른 실시예에 따른 전자 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 스냅샷 동기화 장치를 도시한다.
도 4는 본 발명의 다른 실시예에 따른 스냅샷 동기화 장치를 도시한다.
도 5는 본 발명의 일 실시예에 따른 스냅샷 동기화 방법을 도시한다.
도 6은 본 발명의 일 실시예에 따른 동기화 페이지 검출 방법을 도시한다.
도 7은 본 발명의 일 실시예에 따른 스냅샷 페이지를 도시한다.
도 8은 본 발명의 일 실시예에 따른 동기화 페이지 검출부를 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 도시한다.
도 1을 참조하면, 본 실시에에 따른 전자 장치(100)는 컴퓨터, 모바일 폰, 스마트 폰, MP3 플레이어, PMP, PDA 등이 될 수 있다. 또한 전자 장치(100)는 이러한 컴퓨터, 모바일 폰, 스마트 폰, MP3 플레이어, PMP, PDA 등의 시스템 부팅(booting)을 관리하는 부분이 될 수도 있다.
도 1에서, 전자 장치(100)는 제 1 저장부(101), 제 2 저장부(102), 및 동기화부(103)를 포함한다.
제 1 저장부(101)는 전자 장치(100)의 실행 상태와 관련된 상태 정보를 저장한다. 상태 정보란 특정 시점에서의 전자 장치(100)의 실행 상태를 나타낸다. 예를 들어, 상태 정보는 전자 장치(100)가 부팅된 직후의 메모리 상태 및/또는 전자 장치(100)의 CPU 레지스터 상태를 나타내는 스냅샷 이미지가 될 수 있다. 본 실시예에 따라, 스냅샷, 스냅샷 이미지, 또는 스냅샷 이미지 데이터 등은 이러한 상태 정보와 동일한 의미로 사용될 수 있다.
따라서 전자 장치(100)는 제 1 저장부(101)에 저장된 상태 정보에 기초하여 부팅을 실행함으로써 초기 부팅 시간을 단축시킬 수 있다. 제 1 저장부(101)는 전자 장치(100)의 전원이 꺼지더라도 저장된 상태 정보를 계속적으로 유지할 수 있는 비휘발성의 메모리 또는 디스크가 사용될 수 있다. 비휘발성 메모리 또는 디스크의 예로는 HDD(hard disk drive), SSD(solid state drive), Flash memory 등이 있다.
제 2 저장부(102)는 전자 장치(100) 상에서 실행되는 운영체제 및 응용 프로그램과 현재 사용중인 데이터를 저장 및 유지한다. 예를 들어, 제 1 저장부(101)에 저장된 상태 정보에 기초하여 전자 장치(100)가 부팅되는 경우, 상태 정보 중의 일부가 제 2 저장부(102)에 로딩될 수 있다. 또한 부팅 이후에 전자 장치(100) 상의 특정 프로세스의 실행에 따라 상태 정보 중의 또 다른 일부가 제 2 저장부(102)에 로딩될 수 있다. 제 2 저장부(102)는 전자 장치(100)의 CPU가 빠르게 접근할 수 있는 RAM(random access memory)과 같은 휘발성 메모리가 사용될 수 있다.
동기화부(103)는 제 1 저장부(101)에 저장된 상태 정보가 전자 장치(100)의 최신 상태와 일치하도록 상태 정보를 갱신한다. 이러한 갱신을 위해 동기화부(103)는 전자 장치(100) 상의 특정 프로세스가 제 2 저장부(102)에 로딩된 상태 정보를 변경하는 경우, 그 변경된 부분에 대응되는 동기화 페이지를 검출하고, 검출된 동기화 페이지를 제 1 저장부(101)에 저장된 상태 정보에 반영할 수 있다.
예를 들어, 동기화부(103)는 제 1 저장부(101)에 저장된 상태 정보 중 일부가 제 2 저장부(102)로 로딩될 때, 그 로딩이 특정한 프로세스의 실행에 따라 발생한 페이지 라이트 폴트(write fault)에 기인한 것인지 여부를 판단한다. 만약 제 2 저장부(102)에 로딩된 부분이 페이지 라이트 폴트에 기인한 것이면 해당 부분을 후보 동기화 페이지로 등록한다. 그리고 라이트 폴트를 유발한 프로세스가 사전에 정의된 동기화 필요 프로세스인 경우, 등록된 후보 동기화 페이지를 최종 동기화 페이지로 검출한다.
검출된 동기화 페이지는 제 1 저장부(101)에 저장된 상태 정보에 반영된다. 예컨대, 동기화부(103)는 검출된 동기화 페이지를 제 1 저장부(101)에 저장된 상태 정보에 덮어쓰는 것이 가능하다.
동기화부(103)가 언제 검출된 동기화 페이지를 제 1 저장부(101)에 저장된 상태 정보에 반영하는가, 즉 언제 동기화를 시키는가는 전자 장치(100)의 종류 또는 응용예에 따라 다양하게 변경될 수 있다.
일 예로써, 동기화부(103)는 검출된 동기화 페이지의 개수가 정해진 임계 값을 넘어가면 검출된 동기화 페이지들을 동기화시키는 것이 가능하다. 임계 값 역시 전자 장치(100)의 종류 또는 응용예에 따라 가변될 수 있음은 물론이다.
다른 예로써, 전자 장치(100)가 특정한 상태, 예컨대, 아이들(idle) 상태와 같이 다른 작업을 하지 않는 경우 또는 배터리(battery)의 잔량이 어떤 임계값 이하로 내려가는 경우에 검출된 동기화 페이지들을 동기화 시킬 수도 있다.
이와 같이, 본 실시에에 따른 전자 장치(100)는 제 1 저장부(101)에 저장된 상태 정보에 기초하여 부팅이 수행되므로 초기 부팅시간을 줄일 수 있다. 또한 상태 정보의 특정 부분이 자동적으로 갱신되기 때문에 전자 장치(100)의 최신 상태를 유지하면서 상태 정보에 기초한 부팅이 계속적으로 이루어지게 할 수 있다.
도 2는 본 발명의 다른 실시예에 따른 전자 장치를 도시한다.
도 2를 참조하면, 본 실시예에 따른 전자 장치(200)는 제 1 저장부(101), 제 2 저장부(102), 동기화부(103), 및 생성부(201)를 포함한다. 이 중 제 1 저장부(101), 제 2 저장부(102), 및 동기화부(103)에 관한 설명은 도 1에서 설명한 것과 동일하다.
생성부(201)는 제 1 저장부(101)에 저장될 상태 정보를 생성한다. 예를 들어, 생성부(201)는 최초 전자 장치(200)가 부팅되었을 때(즉, 상태 정보에 기초하지 않고 일반적인 방식으로 부팅이 이루어졌을 때), 전자 장치(200)의 실행 상태, 예컨대, 제 2 저장부(102)의 상태에 관한 정보 및/또는 전자 장치(200)의 CPU 레지스터 정보에 대응되는 정보를 생성한다. 다시 말해, 본 실시예에 따른 상태 정보는 어떤 시스템이 부팅된 직후의 그 시스템의 실행 상태를 찍은 스냅샷 이미지 데이터로 볼 수 있다.
또한 생성부(201)는 상태 정보를 생성하기 전에, 향후 특정 프로세스가 제 2 저장부(102)에 엑세스하는 경우 모두 페이지 폴트(page fault)가 발생되도록 프로세스와 관련된 페이지 테이블을 클리어하고 상태 정보를 생성하는 것이 가능하다. 예를 들어, 생성부(201)는 페이지 테이블 엔트리의 present 비트를 0 또는 1로 셋팅하여 클리어하는 것이 가능하다.
따라서 상태 정보에 기초하여 시스템이 부팅된 이후에, 모든 프로세스 실행에 따라 페이지 폴트가 발생하기 때문에 이 페이지 폴트에 근거하여 특정한 페이지들을 동기화 대상 페이지로 사용자 개입 없이 런타임 상황에서 검출하는 것이 가능하다.
도 3은 본 발명의 일 실시예에 따른 스냅샷 동기화 장치를 도시한다. 이것은 본 실시예에 따른 동기화부(103)의 구성에 관한 일 예가 될 수 있다.
도 3을 참조하면, 스냅샷 동기화 장치(300)는 부팅부(301), 동기화 페이지 검출부(302), 및 상태 정보 갱신부(303)를 포함한다.
부팅부(301)는 상태 정보에 기초하여 시스템을 부팅한다. 상태 정보란 시스템의 실행 상태와 관련되는 스냅샷 이미지 또는 부팅 정보 이미지 등이 될 수 있으며 전원 공급 유무와 관계 없이 데이터를 저장하는 시스템 디스크에 저장된다.
동기화 페이지 검출부(302)는 부팅부(301)의 시스템의 부팅 이후에, 시스템 상의 프로세스 실행에 따라 상태 정보 중 시스템의 메모리로 로딩된 부분에 변경이 있는지 여부를 판단하고, 그 판단 결과에 따라 변경된 부분에 대응되는 동기화 페이지를 검출한다.
동기화 페이지 검출부(302)의 동기화 페이지 검출 과정을 구체적으로 살펴보면 다음과 같다.
시스템 부팅 이후에, 어떤 프로세스의 실행에 따라 상태 정보의 일부가 시스템 메모리로 로딩될 수 있다. 왜냐하면 도 2에서 설명한 것과 같이 최초 상태 정보를 생성하기 전에, 부팅 이후 실행되는 모든 프로세스에 대해 페이지 폴트(page fault)가 발생하도록 프로세스와 관련된 페이지 테이블을 수정했기 때문이다.
만약 어떤 프로세스의 읽기 동작에 따라 페이지 폴트가 발생하면, 즉 리드 폴트(read fault)가 발생하면 상태 정보 중 해당 페이지를 메모리로 로딩하고 그 페이지에 대한 페이지 테이블의 present 비트를 변경하고 permission 비트를 읽기 전용으로 설정한다. 여기서 페이지 테이블은 프로세스의 각 페이지가 메모리에 어느 프레임에 저장되는지를 나타낸다.
그리고 이 페이지에 대하여 어떤 프로세스의 읽기 동작에 따라 페이지 폴트가 발생하면, 즉 라이트 폴트(write fault)가 발생하면 해당 페이지 테이블의 permission 비트를 쓰기 가능으로 설정하고 그 페이지를 동기화가 필요한 후보 페이지로 등록한다.
후보 페이지로 등록된 페이지는 후보 페이지와 관련된 프로세스 또는 태스크의 속성에 따라 최종적으로 동기화 페이지로 검출될 수 있다.
예컨대, 도 7을 참조하면, 상태 정보(701)는 다수의 페이지로 이루어질 수 있다. 이 중 어떤 프로세스의 읽기 동작에 따른 페이지 폴트에 따라 페이지 #1, 페이지 #2, 페이지 #3, 및 페이지 #4가 메모리로 로딩되었다고 가정하자. 그리고 로딩된 페이지 #1, 페이지 #2, 페이지 #3, 및 페이지 #4 중에서 페이지 #1 및 페이지 #2에 라이트 폴트가 발생하였다면, 페이지 #1과 페이지 #2가 동기화 페이지의 후보로 선택된다.
한편, 도 8을 참조하면, 동기화 페이지 검출부(302)는 태스크(또는 프로세스) 별로 태스크(또는 프로세스)의 정보를 유지하는 태스크 제어 블록(task control block)(801)과 물리 페이지 프레임의 정보를 유지하는 페이지 프레임 디스크립터(page frame descriptor)(802)를 가진다.
페이지 프레임 디스크립터(802)는 각각의 물리 페이지와 1:1로 대응하며, 어떤 물리 페이지가 어느 태스크에 속해 있는지를 나타낸다. 즉 도 7에서 동기화 페이지의 후보로 선택된 페이지 #1과 페이지 #2의 페이지 프레임 디스크립터(802)를 살펴보면 이 페이지들이 어떠한 태스크 또는 어떠한 프로세스와 관련되는지 식별할 수 있다.
동기화 페이지 검출부(302)는 페이지 프레임 디스크립터(802)에 기초하여 후보 페이지가 사전에 정의된 동기화 필요 태스크 또는 동기화 필요 프로세스와 관련되었는지 여부를 판단한다. 만약 관련이 되었다면 해당 후보 페이지를 최종적으로 동기화 페이지로 검출한다. 동기화 필요 태스크 또는 동기화 필요 프로세스는 시스템의 종류 및 응용예에 따라 다양하게 설정될 수 있다. 예를 들어, 시스템 콜과 관련되거나 시스템의 백그라운드에서 지속적으로 실행되는 프로세스 등은 동기화가 필요한 프로세스 그룹으로 묶일 수 있다.
다시 도 3에서, 동기화 페이지 검출부(302)가 라이트 폴트 여부 및 프로세스의 특성에 따라 동기화 페이지를 검출하면, 상태 정보 갱신부(303)는 검출된 동기화 페이지를 상태 정보에 반영해서 상태 정보를 갱신한다.
상태 정보 갱신부(303)가 언제 상태 정보를 갱신하는지는 다양하게 조절될 수 있는데, 일 예로써, 검출된 동기화 페이지의 개수가 정해진 임계 값을 넘어가면 그 동기화 페이지들을 동기화시킬 수도 있다. 또한 다른 예로써, 시스템이 특정 상태일 때, 예컨대, 아이들(idle) 상태이거나 배터리의 잔량이 임계값 이하로 내려가는 경우에 동기화를 수행하는 것도 가능하다.
도 4는 본 발명의 다른 실시예에 따른 스냅샷 동기화 장치를 도시한다. 이것은 본 실시예에 따른 스냅샷 동기화 장치가 OS 레벨에서 구현된 경우를 나타낸다.
도 4를 참조하면, OS kernel(401) 위로는 여러 가지 종류의 프로세스가 동작하게 되는데, 이 프로세스 중 일부는 그 특성에 따라 동기화가 필요한 프로세스 그룹(402)으로 묶일 수 있다. 어떤 프로세스를 그룹핑할 것인지는 시스템의 종류 및 사용목적에 따라 가변될 수 있음은 물론이다.
OS kernel(401) 아래로는 스냅샷 이미지가 저장되는 스냅샷 스토리지(403)가 존재한다. 스냅샷 이미지는 시스템의 실행 상태에 관한 정보를 담고 있다.
본 실시예에 따른 스냅샷 동기화 장치(400)는 OS 레벨에서 구현될 수 있다. 예컨대, 스냅샷 동기화 장치(400)는 OS kernel(401) 내부에 형성될 수 있다. 이러한 경우 스냅샷 동기화 장치(400)는 런타임시 변경되는 스냅샷 페이지를 파악하여 수집하는 페이지 폴트 필터(410), 변경되는 스냅샷 페이지 중 동기화 대싱이 되는 페이지를 선별하는 페이지 폴트 핸들링 모듈(420), 스냅샷 동기화 대상이 되는 스냅샷 페이지 그룹(430) 그리고 런타임시 변경된 스냅샷 페이지들을 스냅샷 이미지와 동기화 하기 위한 스냅샷 페이지 플러시 모듈(440)로 이루어질 수 있다.
도 5는 본 발명의 일 실시예에 따른 스냅샷 동기화 방법을 도시한다. 본 실시예에 따른 스냅샷 동기화 방법은 도 1 및 도 2와 같은 시스템 환경에 적용될 수 있다. 도 1 내지 도 4를 참조하여 본 실시예에 따른 스냅샷 동기화 방법을 설명하면 다음과 같다.
먼저 프로세스와 관련된 페이지 테이블을 클리어해서 향후 프로세스가 메모리에 엑세스하는 경우 페이지 폴트가 발생하도록 만든다(501).
페이지 테이블이 클리어되면, 스냅샷 이미지를 생성하고 생성된 스냅샷 이미지를 디스크에 저장한다(502). 예컨대, 생성부(201)가 시스템 부팅 직전의 메모리 상태 및 CPU 레지스터 상태를 제 1 저장부(101)에 저장하는 것이 가능하다.
스냅샷 이미지가 생성 및 저장되면, 스냅샷 이미지에 기초하여 시스템을 부팅한다(503). 예컨대, 부팅부(301)가 제 1 저장부(101)에 저장된 스냅샷 이미지 중 일부 페이지를 한번에 제 2 저장부(102)에 올림으로써 빠르게 부팅이 이루어지도록 한다.
시스템이 부팅되면, 프로세스 실행 과정에서 동기화가 필요한 동기화 페이지를 검출한다(504). 예컨대, 동기화 페이지 검출부(302)가 라이프 폴트 발생 여부 및 관련 프로세스의 특성 등에 기초하여 동기화 페이지를 검출할 수 있다.
동기화 페이지가 검출되면, 검출된 동기화 페이지를 스냅샷 이미지에 복사해서 스냅샷 이미지를 갱신한다(505). 예컨대, 상태 정보 갱신부(303)가 검출된 동기화 페이지의 개수와 임계 값을 비교하여 동기화 페이지 개수가 임계 값을 넘어가면 검출된 동기화 페이지를 스냅샷 이미지에 덮어쓸 수 있다. 또한 시스템이 아이들 상태이거나 배터리의 잔량이 특정한 임계값 이하로 내려갈 때 검출된 동기화 페이지를 스냅샷 이미지에 덮어쓸 수도 있다.
도 6은 본 발명의 일 실시예에 따른 동기화 페이지 검출 방법을 도시한다.
도 6에서, 페이지 폴트가 발생하면(601), 그것이 라이트 폴트인지 여부를 판단한다(602). 만약 라이트 폴트가 아닌 리드 폴트라면 동기화 페이지를 검출하지 아니한다. 그렇지 않고 라이트 폴트라면 라이트 폴트가 발생된 페이지를 후보 동기화 페이지로 등록한다(603).
또한 라이트 폴트를 발생시킨 프로세스가 동기화 필요 프로세스인지 여부를 판단한다(604). 해당 프로세스가 일반적인 프로세스라면 동기화 페이지를 검출하지 아니한다. 그렇지 않고 해당 프로세스가 동기화가 필요한 프로세스인 경우 후보 동기화 페이지를 최종 동기화 페이지로 등록한다(605).
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (22)

  1. 시스템의 실행 상태와 관련된 상태 정보를 저장하는 제 1 저장부;
    상기 상태 정보에 기초하여 상기 시스템이 부팅되는 경우, 상기 시스템 상의 프로세스 실행에 따라 상기 상태 정보 중의 일부가 로딩되는 제 2 저장부; 및
    상기 프로세스가 상기 제 2 저장부에 로딩된 상태 정보의 일부를 변경하는 경우, 그 변경된 부분에 대응되는 동기화 페이지를 검출하고, 검출된 동기화 페이지를 상기 제 1 저장부에 저장된 상태 정보에 반영하는 동기화부; 를 포함하는 전자 장치.
  2. 제 1 항에 있어서, 상기 동기화부는
    상기 제 1 저장부에 저장된 상태 정보 중 상기 제 2 저장부에 로딩된 부분이 상기 프로세스 실행에 따라 발생한 페이지의 라이트 폴트(write fault)에 기초하여 발생된 부분인지 여부를 판단하고 그 판단 결과에 따라 상기 동기화 페이지를 검출하는 전자 장치.
  3. 제 2 항에 있어서, 상기 동기화부는
    상기 라이트 폴트를 유발한 프로세스가 사전에 정의된 동기화 필요 프로세스인지 여부를 판단하고 그 판단 결과에 따라 상기 동기화 페이지를 검출하는 전자 장치.
  4. 제 1 항에 있어서, 상기 동기화부는
    상기 검출된 동기화 페이지의 개수가 임계값 이상일 때 상기 검출된 동기화 페이지를 상기 제 1 저장부에 저장된 상태 정보에 반영하는 전자 장치.
  5. 제 1 항에 있어서, 상기 동기화부는
    상기 시스템이 아이들(idle) 상태일 때 상기 검출된 동기화 페이지를 상기 제 1 저장부에 저장된 상태 정보에 반영하는 전자 장치.
  6. 제 1 항에 있어서, 상기 동기화부는
    상기 시스템에 관한 배터리의 잔량이 임계값 이하로 내려가는 경우 상기 검출된 동기화 페이지를 상기 제 1 저장부에 저장된 상태 정보에 반영하는 전자 장치.
  7. 제 1 항에 있어서,
    상기 상태 정보를 생성하는 생성부; 를 더 포함하는 전자 장치.
  8. 제 7 항에 있어서, 상기 생성부는
    상기 상태 정보를 생성하기 전에, 상기 프로세스가 상기 제 2 저장부에 엑세스하는 경우 페이지 폴트(page fault)가 발생하도록 상기 프로세스의 페이지 테이블을 클리어하는 전자 장치.
  9. 제 1 항에 있어서,
    상기 제 1 저장부는 비휘발성 메모리 또는 디스크이고,
    상기 제 2 저장부는 휘발성 메모리인 전자 장치.
  10. 시스템의 실행 상태와 관련되고 상기 시스템의 디스크에 저장되는 상태 정보에 기초하여 시스템을 부팅하는 부팅부;
    상기 시스템의 부팅 이후에, 상기 시스템 상의 프로세스 실행에 따라 상기 상태 정보 중 상기 시스템의 메모리로 로딩된 부분에 변경이 있는지 여부를 판단하고, 그 판단 결과에 따라 변경된 부분에 대응되는 동기화 페이지를 검출하는 동기화 페이지 검출부; 및
    상기 검출된 동기화 페이지를 상기 시스템의 디스크에 저장된 상태 정보에 반영하는 상태 정보 갱신부; 를 포함하는 스냅샷 동기화 장치.
  11. 제 10 항에 있어서, 상기 동기화 페이지 검출부는
    상기 디스크에 저장된 상태 정보 중 상기 메모리로 로딩된 부분이 상기 시스템 상의 프로세스가 상기 메모리에 엑세스함에 따라 발생한 페이지의 라이트 폴트(write fault)에 기초하여 발생된 부분인지 여부를 판단하고 그 판단 결과에 따라 상기 동기화 페이지를 검출하는 스냅샷 동기화 장치.
  12. 제 11 항에 있어서, 상기 동기화 페이지 검출부는
    상기 라이트 폴트를 유발한 프로세스가 사전에 정의된 동기화 필요 프로세스인지 여부를 판단하고 그 판단 결과에 따라 상기 동기화 페이지를 검출하는 스냅샷 동기화 장치.
  13. 제 11 항에 있어서, 상기 상태 정보 갱신부는
    상기 동기화 페이지의 개수가 임계값 이상일 때 상기 검출된 동기화 페이지를 상기 디스크에 저장된 상태 정보에 반영하는 스냅샷 동기화 장치.
  14. 제 11 항에 있어서, 상기 상태 정보 갱신부는
    상기 시스템이 아이들(idle) 상태일 때 상기 검출된 동기화 페이지를 상기 디스크에 저장된 상태 정보에 반영하는 스냅샷 동기화 장치.
  15. 제 11 항에 있어서, 상기 상태 정보 갱신부는
    상기 시스템에 관한 배터리의 잔량이 임계값 이하로 내려가는 경우 상기 검출된 동기화 페이지를 제 1 저장부에 저장된 상태 정보에 반영하는 스냅샷 동기화 장치.
  16. 스냅샷 동기화 장치가
    시스템의 실행 상태와 관련되고 상기 시스템의 디스크에 저장되는 상태 정보에 기초하여 시스템을 부팅하는 단계;
    상기 시스템의 부팅 이후에, 상기 시스템 상의 프로세스 실행에 따라 상기 상태 정보 중 상기 시스템의 메모리로 로딩된 부분에 변경이 있는지 여부를 판단하고, 그 판단 결과에 따라 변경된 부분에 대응되는 동기화 페이지를 검출하는 단계; 및
    상기 검출된 동기화 페이지에 기초하여 상기 시스템의 디스크에 저장된 상태 정보를 갱신하는 단계; 를 포함하는 스냅샷 동기화 방법.
  17. 제 16 항에 있어서, 상기 동기화 페이지를 검출하는 단계는
    상기 디스크에 저장된 상태 정보 중 상기 메모리로 로딩된 부분이 상기 시스템 상의 프로세스가 상기 메모리에 엑세스함에 따라 발생한 페이지의 라이트 폴트(write fault)에 기초하여 발생된 부분인지 여부를 판단하고 그 판단 결과에 따라 상기 동기화 페이지를 검출하는 과정을 포함하는 스냅샷 동기화 방법.
  18. 제 17 항에 있어서, 상기 동기화 페이지를 검출하는 단계는
    상기 라이트 폴트를 유발한 프로세스가 사전에 정의된 동기화 필요 프로세스인지 여부를 판단하고 그 판단 결과에 따라 상기 동기화 페이지를 검출하는 과정을 포함하는 스냅샷 동기화 방법.
  19. 제 16 항에 있어서, 상기 갱신하는 단계는
    상기 동기화 페이지의 개수가 임계값 이상일 때 상기 검출된 동기화 페이지를 상기 디스크에 저장된 상태 정보에 반영하는 과정을 포함하는 스냅샷 동기화 방법.
  20. 제 16 항에 있어서, 상기 갱신하는 단계는
    상기 시스템이 아이들(idle) 상태일 때 상기 검출된 동기화 페이지를 상기 디스크에 저장된 상태 정보에 반영하는 과정을 포함하는 스냅샷 동기화 방법.
  21. 제 16 항에 있어서, 상기 갱신하는 단계는
    상기 시스템에 관한 배터리의 잔량이 임계값 이하로 내려가는 경우 상기 검출된 동기화 페이지를 제 1 저장부에 저장된 상태 정보에 반영하는 과정을 포함하는 스냅샷 동기화 방법.
  22. 제 16 항에 있어서,
    상기 부팅 전에, 상기 상태 정보를 저장하기 전에, 상기 프로세스가 상기 메모리에 엑세스하는 경우 페이지 폴트(page fault)가 발생하도록 상기 프로세스와 관련된 페이지 테이블을 클리어하는 단계; 및
    상기 시스템의 실행 상태와 관련된 상태 정보를 상기 디스크에 저장하는 단계; 를 더 포함하는 스냅샷 동기화 방법.
KR1020100056770A 2010-06-15 2010-06-15 스냅샷 이미지의 동기화 장치 및 방법 KR101651204B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100056770A KR101651204B1 (ko) 2010-06-15 2010-06-15 스냅샷 이미지의 동기화 장치 및 방법
US12/983,693 US8589647B2 (en) 2010-06-15 2011-01-03 Apparatus and method for synchronizing a snapshot image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100056770A KR101651204B1 (ko) 2010-06-15 2010-06-15 스냅샷 이미지의 동기화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110136639A KR20110136639A (ko) 2011-12-21
KR101651204B1 true KR101651204B1 (ko) 2016-08-26

Family

ID=45097190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100056770A KR101651204B1 (ko) 2010-06-15 2010-06-15 스냅샷 이미지의 동기화 장치 및 방법

Country Status (2)

Country Link
US (1) US8589647B2 (ko)
KR (1) KR101651204B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5959841B2 (ja) * 2011-12-12 2016-08-02 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
US9128901B1 (en) * 2011-12-30 2015-09-08 Emc Corporation Continuous protection of data and storage management configuration
US9141560B2 (en) * 2012-06-29 2015-09-22 Intel Corporation Multi-level storage apparatus
KR101395007B1 (ko) * 2012-12-18 2014-05-14 주식회사 아로마소프트 복수의 프로세서를 이용한 스냅샷 이미지 처리 장치 및 방법
US8977594B2 (en) * 2012-12-21 2015-03-10 Zetta Inc. Systems and methods for state consistent replication
KR102047769B1 (ko) * 2013-03-28 2019-11-25 한국전자통신연구원 메모리 가상화 기반 스냅샷 부트 장치 및 방법
EP3069276B1 (en) 2014-01-02 2019-03-13 Huawei Technologies Co., Ltd. Method and apparatus of maintaining data for online analytical processing in a database system
KR102011059B1 (ko) * 2015-03-20 2019-08-16 한국전자통신연구원 스냅샷 이미지 업데이트 장치 및 방법
US10949310B2 (en) 2016-11-28 2021-03-16 Sap Se Physio-logical logging for in-memory row-oriented database system
CN109413497B (zh) * 2018-09-12 2021-04-13 海信视像科技股份有限公司 一种智能电视机及其系统启动方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106754A1 (en) * 2008-10-24 2010-04-29 Microsoft Corporation Hardware and Operating System Support for Persistent Memory On A Memory Bus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04225206A (ja) 1990-12-26 1992-08-14 Nikko Kyodo Co Ltd 積層磁心の製造方法
JPH04256851A (ja) 1991-02-08 1992-09-11 Riken Corp ガス検知装置
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
JP4363676B2 (ja) * 1997-10-31 2009-11-11 株式会社東芝 コンピュータシステム
US7296125B2 (en) * 2001-11-29 2007-11-13 Emc Corporation Preserving a snapshot of selected data of a mass storage system
US8095511B2 (en) 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
JP4225206B2 (ja) * 2004-01-23 2009-02-18 日本電気株式会社 記憶装置の複製データ格納システムと複製データ格納プログラム
US7440966B2 (en) 2004-02-12 2008-10-21 International Business Machines Corporation Method and apparatus for file system snapshot persistence
JP4839841B2 (ja) * 2006-01-04 2011-12-21 株式会社日立製作所 スナップショット再起動方法
WO2009107507A1 (en) 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Memory system
KR101103201B1 (ko) 2008-02-29 2012-01-05 가부시끼가이샤 도시바 메모리 시스템
US8112664B2 (en) 2008-03-26 2012-02-07 Symantec Operating Corporation Using volume snapshots to prevent file corruption in failed restore operations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100106754A1 (en) * 2008-10-24 2010-04-29 Microsoft Corporation Hardware and Operating System Support for Persistent Memory On A Memory Bus

Also Published As

Publication number Publication date
US8589647B2 (en) 2013-11-19
KR20110136639A (ko) 2011-12-21
US20110307674A1 (en) 2011-12-15

Similar Documents

Publication Publication Date Title
KR101651204B1 (ko) 스냅샷 이미지의 동기화 장치 및 방법
EP2329360B1 (en) Managing cache data and metadata
EP2353081B1 (en) Managing cache data and metadata
EP2876556B1 (en) Fast restart of applications using shared memory
US8972967B2 (en) Application packages using block maps
TWI546818B (zh) 一種具有綠能資料持續模式的裝置驅動器
CN102999431B (zh) 用于非易失性存储器系统的编织序列计数器
US9189248B2 (en) Specialized boot path for speeding up resume from sleep state
US20130326121A1 (en) Data-storage device and flash memory control method
US8762967B2 (en) Program compiler, program installer, and program install method
WO2014138411A1 (en) System and method for tiered caching and storage allocation
KR20220050895A (ko) 메모리 애퍼처 플러쉬 순서를 사용한 데이터 보존 기법
JP2017527887A (ja) ファイルシステムにおけるフラッシング
KR20150052107A (ko) Bpram을 이용한 운영체제의 레이아웃 및 실행
WO2013110189A1 (en) Data staging area
CN111796882A (zh) 电子设备系统处理方法、装置及电子设备
JP2015114750A (ja) 調査用プログラム,情報処理装置及び情報処理方法
US20130166852A1 (en) Method for hibernation mechanism and computer system therefor
KR20130002692A (ko) 백신과 컴퓨터 최적화 기능을 구비한 컴퓨터 최적화 방법, 최적화 서버 및 컴퓨터 판독 가능한 기록매체
JP2009223713A (ja) メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム
CN116841789A (zh) 一种内存故障处理方法、装置、设备及介质
Bai A Checkpointing Methodology for Android Smartphone
JP2015176334A (ja) 情報処理システム、情報処理装置起動方法および起動プログラム

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