KR101636870B1 - 최소 부트 이미지의 생성 방법 및 장치 - Google Patents

최소 부트 이미지의 생성 방법 및 장치 Download PDF

Info

Publication number
KR101636870B1
KR101636870B1 KR1020100018237A KR20100018237A KR101636870B1 KR 101636870 B1 KR101636870 B1 KR 101636870B1 KR 1020100018237 A KR1020100018237 A KR 1020100018237A KR 20100018237 A KR20100018237 A KR 20100018237A KR 101636870 B1 KR101636870 B1 KR 101636870B1
Authority
KR
South Korea
Prior art keywords
application
boot image
executing
information
code
Prior art date
Application number
KR1020100018237A
Other languages
English (en)
Other versions
KR20110098567A (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 KR1020100018237A priority Critical patent/KR101636870B1/ko
Publication of KR20110098567A publication Critical patent/KR20110098567A/ko
Priority claimed from US13/650,727 external-priority patent/US20130036300A1/en
Priority claimed from US13/650,752 external-priority patent/US10394570B2/en
Priority claimed from US13/650,715 external-priority patent/US20130042097A1/en
Publication of KR101636870B1 publication Critical patent/KR101636870B1/ko
Application granted granted Critical

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
    • G06F9/4418Suspend and resume; Hibernate and awake

Abstract

모든 어플리케이션의 실행을 위한 코드를 제외하여 부트 이미지를 생성하는 방법 및 장치, 이러한 부트 이미지를 이용해 디바이스를 부팅하는 방법 및 장치가 개시된다.

Description

최소 부트 이미지의 생성 방법 및 장치{Method and apparatus for generating minimal boot image}

본 발명은 부트 이미지를 생성하는 방법 및 장치에 관한 것으로 보다 상세히는 디바이스의 부팅에 필요한 필수 요소를 포함하는 부트 이미지를 생성하는 방법 및 장치에 관한 것이다.

디바이스에 전원을 켜고, 운영 체계(Operating System)가 디바이스의 메모리에 로드(load)되어 디바이스를 사용 가능한 상태로 만드는 과정을 부팅(booting)이라 한다. 운영 체계가 디바이스의 CPU(Central Processing Unit), 메모리(memory) 등의 컴퓨터 자원을 제어하고, 운영 체계에 기초해 소정의 어플리케이션들이 실행될 수 있는 상태로 만든 후, 다양한 서비스 어플리케이션(service application)이 실행되어 디바이스가 작동될 수 있도록 만드는 과정을 말한다. 일반적으로 운영 체계를 메모리에 로드하고, 입출력 디바이스와 같은 주변 디바이스들을 설정하고, 서비스 어플리케이션을 실행하여, 디바이스를 사용 가능한 상태로 만드는 과정에는 많은 시간이 소모되고, 이러한 부팅에 소모되는 시간은 사용자의 불만족을 초래할 가능성이 높다.

본 발명이 해결하고자 하는 기술적 과제는 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 장치를 제공하는데 있고, 상기 부트 이미지에 기초해 부팅을 수행하는 방법 및 장치를 제공하는데 있다. 또한, 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 방법은 소정 시점에 디바이스에서 실행되고 있는 모든 어플리케이션의 실행을 위한 코드(code)를 상기 디바이스의 휘발성 메모리에서 소거하는 단계; 상기 모든 어플리케이션의 실행을 위한 데이터를 비휘발성 메모리에 저장하는 단계; 및 상기 시점에서 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 중 적어도 하나를 포함하는 부트 이미지(boot image)를 생성하는 단계를 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 어플리케이션의 실행을 위한 코드는 상기 어플리케이션의 실행을 위해 상기 비휘발성 메모리에서 상기 휘발성 메모리로 복사된 코드이고, 상기 운영 체계의 실행을 위한 데이터는 상기 비휘발성 메모리에서 상기 어플리케이션 실행을 위한 코드 및 상기 어플리케이션의 실행을 위한 데이터 중 적어도 하나가 저장된 위치에 대한 정보를 더 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지는 상기 시점에 상기 디바이스에 장착된 적어도 하나의 주변 디바이스(peripheral device)의 상태에 대한 정보를 더 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지를 생성하는 단계는 상기 시점에서 상기 디바이스의 운영 체계의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 중 적어도 하나를 포함하는 부트 이미지를 휘발성 메모리에 저장하는 단계; 상기 적어도 하나의 주변 디바이스를 중지시키는 단계; 및 상기 중지된 적어도 하나의 주변 디바이스의 상태에 대한 정보를 상기 부트 이미지에 저장하는 단계를 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지는 상기 시점에서 실행 중인 프로세스와 관련된 파일에 대한 정보를 더 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 프로세스와 관련된 파일에 대한 정보는 비휘발성 메모리에서 상기 프로세스와 관련된 파일이 저장되어 있는 위치에 대한 정보를 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지를 생성하는 단계는 상기 시점에서 상기 디바이스의 운영 체계의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 중 적어도 하나를 포함하는 부트 이미지를 휘발성 메모리에 저장하는 단계; 상기 적어도 하나의 주변 디바이스를 중지시키는 단계; 상기 중지된 적어도 하나의 주변 디바이스의 상태에 대한 정보를 상기 부트 이미지에 저장하는 단계; 및 상기 실행 중인 프로세스와 관련된 파일에 대한 정보를 상기 부트 이미지에 저장하는 단계를 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지는 상기 시점에 상기 디바이스에 표시되는 화면에 대한 정보를 더 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지는 상기 부트 이미지에서 상기 화면에 대한 정보가 저장된 위치에 대한 정보를 더 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 부트 이미지를 생성하는 방법은 상기 휘발성 메모리에 저장되어 있는 부트 이미지를 비휘발성 메모리에 저장하는 단계를 더 포함한다.

본 발명의 또 다른 실시예에 따르면, 상기 시점은 상기 디바이스에서 상기 운영 체계 및 상기 디바이스의 작동을 위해 실행되어야 하는 적어도 하나의 서비스 어플리케이션을 제외한 다른 어플리케이션은 실행되지 않은 아이들(idle) 상태인 시점인 것을 특징으로 한다.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 부팅 방법은 소정 시점에 디바이스에서 실행되고 있는 모든 어플리케이션의 실행을 위한 코드를 상기 디바이스의 휘발성 메모리에서 소거하고, 상기 모든 어플리케이션의 실행을 위한 데이터를 비휘발성 메모리에 저장하고, 상기 시점에서 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 중 적어도 하나를 포함하도록 생성된 부트 이미지(boot image)를 휘발성 메모리에 로드하는 단계; 및 상기 로드된 부트 이미지에 기초해 상기 디바이스의 상태를 상기 시점의 상태로 복원하는 단계를 포함한다.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 장치는 소정 시점에 디바이스에서 실행되고 있는 모든 어플리케이션의 실행을 위한 코드를 상기 디바이스의 휘발성 메모리에서 소거하고, 상기 모든 어플리케이션의 실행을 위한 데이터를 비휘발성 메모리에 저장하는 스와핑부; 및 상기 시점에서 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 적어도 하나를 포함하는 부트 이미지(boot image)를 생성하는 부트 이미지 생성부를 포함한다.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 부팅 장치는 소정 시점에 디바이스에서 실행되고 있는 모든 어플리케이션의 실행을 위한 코드를 상기 디바이스의 휘발성 메모리에서 소거하고, 상기 모든 어플리케이션의 실행을 위한 데이터를 비휘발성 메모리에 저장하고, 상기 시점에서 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 중 적어도 하나를 포함하도록 생성된 부트 이미지(boot image)를 휘발성 메모리에 로드하는 로딩부; 및 상기 로드된 부트 이미지에 기초해 상기 디바이스의 상태를 상기 시점의 상태로 복원하는 부팅부를 포함한다.

상기 기술적 과제를 해결하기 위해 본 발명의 일 실시예는 상기된 부트 이미지 생성 방법 및 부팅 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.

본 발명에 따르면, 부팅에 필요한 필수 요소만을 포함하는 작은 크기의 부트 이미지를 생성하고, 생성된 부트 이미지를 이용해 빠른 속도로 오류없이 부팅을 수행할 수 있다.

도 1은 본 발명의 일 실시예에 따른 부트 이미지 생성 장치 및 부팅 장치를 포함하는 디바이스를 도시한다.
도 2는 본 발명의 일 실시예에 따른 부트 이미지 생성 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 부트 이미지를 생성하기 위한 휘발성 메모리의 제어 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 부트 이미지를 도시한다.
도 5는 본 발명의 일 실시예에 따른 부팅 장치를 도시한다.
도 6은 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 또 다른 실시예에 따른 부트 이미지를 생성하는 방법을 도시한다.
도 8은 본 발명의 일 실시예에 따른 부팅 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 부트 이미지의 생성 시에 실행 중이던 프로세스와 관련된 파일을 삭제 또는 수정하는 방법을 도시한다.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.

도 1은 본 발명의 일 실시예에 따른 부트 이미지 생성 장치 및 부팅 장치를 포함하는 디바이스를 도시한다.

도 1을 참조하면 본 발명의 일 실시예에 따른 디바이스(100)는 CPU(Central Processing Unit)(110), 휘발성 메모리(120), 부트 이미지 생성 장치(130), 부팅 장치(140), 주변 디바이스들(150 내지 152) 및 비휘발성 메모리(160)를 포함한다.

CPU(110)는 휘발성 메모리(120) 및 비휘발성 메모리(160)에 저장되어 있는 데이터를 이용해 운영 체계의 실행 및 어플리케이션의 실행을 위한 코드들을 처리한다.

휘발성 메모리(120)는 실행되고 있는 운영 체계 및 어플리케이션과 관련된 코드 및 데이터를 비휘발성 메모리(160)에서 읽어 로드함으로써, CPU(110)가 운영 체계 및 어플리케이션과 관련된 코드 및 데이터에 액세스할 수 있게 한다. 휘발성 메모리(120)는 메인 메모리로서 RAM(random access memory)일 수 있다.

부트 이미지 생성 장치(130)는 디바이스(100)의 부트 이미지를 생성한다. 특정 시점의 디바이스(100)의 상태에 대한 정보들을 추출하고, 추출된 상태에 대한 정보들에 기초해 부트 이미지(boot image)를 생성한다.

부트 이미지란 디바이스(100)를 특정 시점의 상태로 복원하기 위해 필요한 모든 정보를 포함하는 데이터로서, 하나의 파일로서 생성될 수도 있다. 디바이스(100)의 상태에 대한 정보들은 특정 시점에서 휘발성 메모리(120)에 저장되어 있는 코드, 데이터 및 주변 디바이스들(150 내지 152)의 상태에 대한 정보를 포함할 수 있다. 본 발명의 일 실시예에 따른 부트 이미지 및 부트 이미지를 생성하는 방법은 도 3 및 4를 참조하여 상세히 설명한다.

부팅 장치(140)는 부트 이미지 생성 장치(130)에서 생성된 부트 이미지에 기초해 디바이스(100)의 부팅을 수행한다. 부트 이미지가 생성된 시점 디바이스(100)의 상태를 부트 이미지에 기초해 복원한다. 부트 이미지가 생성된 시점에 휘발성 메모리(120)에 로드되어 있는 코드 및 데이터를 복원하고, 주변 디바이스들(150 및 152)의 상태를 복원할 수 있다.

주변 디바이스들(150 및 152)은 특정 기능을 수행하기 위해 디바이스(100)에 장착된 디바이스들로서, 디바이스(100)에 장착된 그래픽 모듈(예를 들어, 컴퓨터에 장착된 그래픽 카드), 외부 디바이스와의 통신을 위한 통신 모듈 등이 이에 해당할 수 있다.

비휘발성 메모리(160)는 디바이스(100)의 운영 체계 및 어플리케이션의 실행을 위한 코드 및 데이터를 저장하는 장치로서, 하드 디스크 드라이브(Hard Disk Drive), 메모리 카드 등과 같이 휘발성 메모리(120)와 달리 디바이스(100)의 전원이 꺼져도 저장된 데이터가 소거되지 않는 메모리 디바이스일 수 있다.

도 2는 본 발명의 일 실시예에 따른 부트 이미지 생성 장치를 도시한다.

도 2를 참조하면, 본 발명의 일 실시예에 따른 부트 이미지 생성 장치(130)는 스와핑부(210) 및 부트 이미지 생성부(220)를 포함한다. 스와핑부(210)는 부트 이미지를 생성하는 시점에서 휘발성 메모리(120)에 저장되어 있는 코드 및 데이터를 소거하거나, 비휘발성 메모리에 저장한다.

휘발성 메모리(120)에는 디바이스(100)의 운영 체계 및 어플리케이션과 관련된 코드 및 데이터가 저장되어 있다. 코드는 운영 체계 또는 어플리케이션의 실행을 위해 CPU(100)에 의해 해석되고, 처리되는 비트열(bit stream)을 의미하고, 데이터는 운영 체계 또는 어플리케이션을 실행하는 도중에 운영 체계 또는 어플리케이션에 의해 참조되거나, 생성되는 비트열을 의미한다. 데이터는 운영 체계 또는 어플리케이션을 실행을 위해 비휘발성 메모리(160)로부터 휘발성 메모리(120)로 로드될 수도 있다.

본 발명에 따른 부트 이미지 생성 장치(130)는 운영 체계와 관련된 정보를 포함하여 부팅에 필요한 필수 요소만을 추출하여 부트 이미지를 생성하는 바, 스와핑부(210)는 부팅에 필요한 필수 요소를 제외한 나머지 코드 및 데이터를 휘발성 메모리(120)에서 소거한다. 도 3을 참조하여 상세히 설명한다.

부트 이미지가 생성되는 시점은 디바이스(100)의 작동을 위한 운영 체계 및 적어도 하나의 서비스 어플리케이션을 제외한 다른 어플리케이션은 구동되지 않는 아이들(idle) 상태인 시점일 수 있다. 서비스 어플리케이션은 운영 체계 이외에 디바이스의 작동을 위해 필수적으로 실행되어야 하는 어플리케이션을 의미한다. 예를 들어, 스마트 폰의 경우에는 통신을 위한 어플리케이션, 디스플레이 장치를 제어하기 위한 어플리케이션 등이 이에 해당할 수 있다.

그러나, 운영 체계 및 서비스 어플리케이션 이외에 다른 어플리케이션도 구동되고 있는 시점에서 부팅 이미지를 생성할 수 있음은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 쉽게 알 수 있다.

도 3은 본 발명의 일 실시예에 따른 부트 이미지를 생성하기 위한 휘발성 메모리(120)의 제어 방법을 설명하기 위한 도면이다.

도 3을 참조하면, 부트 이미지를 생성하는 시점에 휘발성 메모리(120)에는 운영 체계와 관련된 정보(310), 어플리케이션 코드(320), 어플리케이션 데이터(330) 및 캐쉬 데이터(340)가 로드되어 있을 수 있다.

운영 체계와 관련된 정보(310)는 운영 체계의 실행을 위한 코드(OS 코드) 및 운영 체계의 실행을 위한 데이터(OS 데이터)를 포함한다.

운영 체계의 실행을 위한 코드는 운영 체계를 유지하기 위해 기본적으로 실행되어야 하는 코드를 포함할 수 있고, 운영 체계의 실행을 위한 데이터는 운영 체계를 실행하는 중에 파생되어, 참조되는 데이터 및 데이터 구조를 포함할 수 있다. 운영 체계의 실행을 위한 데이터는 운영 체계의 실행을 위해 비휘발성 메모리(160)로부터 로드되는 데이터일 수 있다.

운영 체계의 실행을 위한 데이터는 페이지 테이블(page table), 운영 체계의 실행을 위해 이용되는 페이지 정보(page structure), 어플리케이션에 할당되는 작업의 구조(task structure), 메모리 구조(memory structure) 등에 대한 정보를 포함할 수 있다.

본 발명에 따른 부트 이미지(300)에 기초해 디바이스를 복원할 때, 어플리케이션들의 실행 상태를 복원하기 위해 운영 체계의 실행을 위한 데이터는 어플리케이션의 실행을 위한 코드 및 어플리케이션의 실행을 위한 데이터가 저장되어 있는 비휘발성 메모리(160)에서의 위치에 대한 정보를 포함할 수 있다.

어플리케이션 코드(320)는 어플리케이션의 실행을 위한 코드일 수 있다. 일반적으로 디바이스(100)에서 소정의 어플리케이션이 구동되면, 빠른 액세스를 위해 어플리케이션의 실행을 위한 코드를 휘발성 메모리(120)에 로드하고, CPU(110)는 휘발성 메모리(120)에 로드된 코드에 액세스한다. 어플리케이션 코드(320)는 이러한 어플리케이션의 실행을 위해 비휘발성 메모리(160)에서 휘발성 메모리(120)로 복사된 코드일 수 있다.

어플리케이션 데이터(330)는 어플리케이션의 실행을 위한 데이터일 수 있다. 어플리케이션을 실행함에 따라 생성되고, 실행 중인 어플리케이션이 참조하는 모든 데이터 및 데이터 구조가 어플리케이션의 실행을 위한 데이터일 수 있다. 운영 체계의 실행을 위한 데이터와 마찬가지로, 어플리케이션의 실행을 위한 데이터도 비휘발성 메모리(160)로부터 로드된 데이터일 수 있다.

캐쉬 데이터(340)는 실행 중인 운영 체계 또는 어플리케이션이 빠르게 액세스할 수 있게 비휘발성 메모리로부터 휘발성 메모리로 로드된 데이터일 수 있다.

스와핑부(210)는 휘발성 메모리(120)에 저장되어 있는 데이터들 중에서 어플리케이션 코드(320) 및 캐쉬 데이터(340)를 소거한다. 어플리케이션 코드(320)는 비휘발성 메모리(160)에 저장되어 있는 어플리케이션의 실행을 위한 코드를 그대로 복사한 것이므로 소거해도 시스템 복원 시 비휘발성 메모리(160)로부터 다시 로드할 수 있다.

또한, 캐쉬 데이터(340)도 운영 체계 또는 어플리케이션이 빠르게 액세스할 수 있게 임시로 생성되는 데이터로서, 운영 체계 또는 어플리케이션 다시 실행되면 다시 생성될 수 있으므로, 휘발성 메모리(120)에서 소거할 수 있다.

특정 시점의 휘발성 메모리(120)에 로드되어 있는 어플리케이션 코드(320)를 다시 비휘발성 메모리(160)로부터 복사하여 복원하기 위해서는 어플리케이션 코드(320)가 비휘발성 메모리(160)의 어떤 위치에 저장되어 있는지 알아야 한다. 따라서, 전술한 운영 체계의 실행을 위한 데이터는 비휘발성 메모리(160)에서 어플리케이션 코드(320)가 어떤 위치에 저장되어 있는지 나타내는 정보를 포함하고 있다. 디바이스(100)의 복원시에는 이 정보를 참조하여 어플리케이션 코드(320)를 다시 비휘발성 메모리(160)로부터 로드할 수 있다.

스와핑부(110)는 휘발성 메모리(120)에 로드되어 있는 데이터 중에서 운영 체계와 관련된 정보(310) 및 어플리케이션 데이터(330)를 비휘발성 메모리(160)에 저장한다. 운영 체계와 관련된 정보(310)는 디바이스(100)의 복원에 필수적인 데이터이므로 부트 이미지(300)에 포함시켜 저장하고, 어플리케이션 데이터(330)는 부트 이미지(300)와 별도로 저장될 수 있다. 어플리케이션 데이터(330)는 운영 체계의 복원 후 어플리케이션을 다시 실행할 때 필요한 데이터이므로, 보조 부트 이미지로서 부트 이미지(330)와 별도로 저장할 수 있다.

부트 이미지 생성부(220)는 스와핑부(210)의 소거 및 저장 결과에 기초해 디바이스(100)의 부팅을 위한 부트 이미지를 생성한다. 도 4를 참조하여 상세히 설명한다.

도 4는 본 발명의 일 실시예에 따른 부트 이미지를 도시한다.

도 4를 참조하면, 본 발명의 일 실시예에 따른 부트 이미지(300)는 최소 부트 정보(410), 디바이스 상태 정보(420), 프로세스 파일 정보(430) 및 스크린 정보 저장 위치(440)를 포함할 수 있다.

최소 부트 정보(410)는 전술한 운영 체계와 관련된 정보(310)를 포함한다. 전술한 바와 같이 운영 체계와 관련된 정보(310)는 부트 이미지의 생성시 휘발성 메모리(120)에 로드되어 있는 운영 체계의 실행을 위한 코드 및 운영 체계의 실행을 위한 데이터를 포함할 수 있다.

또한, 최소 부트 정보(410)는 부트 이미지의 생성시 디바이스(100)에 표시된 화면에 대한 정보를 포함할 수 있는 바, 디바이스(100)의 디스플레이 장치에 표시된 화면에 대한 정보를 최소 부트 정보(410)에 포함시킴으로써 부트 이미지를 이용해 부팅했을 때 사용자에게 표시되는 화면을 빠른 속도로 복원할 수 있다.

디바이스 상태 정보(420)는 부트 이미지(300)를 생성하는 시점에 주변 디바이스(150 내지 152)의 상태에 대한 정보를 포함한다. 주변 디바이스(150 내지 152)를 중지시킨 후, 주변 디바이스(150 내지 152)의 중지된 상태에 대한 정보로서 부트 이미지(300)에 포함될 수 있다.

프로세스 파일 정보(430)는 부트 이미지(300)의 생성 시에 디바이스(100)에서 실행 중인 프로세스와 관련된 파일에 대한 정보(430)를 포함한다. 부트 이미지(300)에 기초해 시스템을 부팅했을 때, 부트 이미지(300) 생성시에 실행 중인 프로세스와 관련된 파일이 디바이스(100)에 존재하지 않는다면, 시스템 오류가 발생할 수 있다.

예를 들어 설명하면, 부트 이미지(300) 생성 시에 실행 중인 프로세스와 파일 A가 관련되어 있었고, 부트 이미지(300) 생성 후 파일 A가 디바이스(100)에서 삭제되었다면, 부트 이미지(300)에 기초해 다시 디바이스(100)를 부팅하면, 부트 이미지(300) 생성 시의 프로세스를 그대로 복원하여 다시 수행할 수 없다. 따라서, 부트 이미지(300)에 실행 중인 프로세스와 관련된 파일에 대한 정보(430)를 저장하고, 디바이스(100)의 사용자가 프로세스와 관련된 파일을 삭제 또는 수정할 수 없게 한다.

스크린 정보 저장 위치(440)에 대한 정보는 디바이스(100)에 표시된 화면에 대한 정보의 저장 위치에 대한 정보를 포함한다. 전술한 바와 같이 디바이스(100)가 부팅되었을 때 표시되는 화면을 빠른 속도로 복원하기 위해 부트 이미지 생성하는 시점에서 디바이스(100)의 화면에 대한 정보를 최소 부트 정보(410)에 포함시킨다. 그러나, 사용자가 부팅되었을 때 표시되는 화면을 변경하는 경우(예를 들어, 컴퓨터의 바탕화면 또는 스마트 폰의 바탕화면을 변경)에 부트 이미지(300)가 변경되지 않으면, 다시 부팅시 변경된 화면이 디바이스(100)에 표시되지 않는다.

따라서, 사용자가 화면을 변경할 때마다 부트 이미지(300)를 다시 생성해야 사용자가 변경한 화면이 다음 부팅시에도 디바이스(100)에 표시될 수 있다. 그런데, 화면을 제외한 나머지 상태를 부팅할 때마다 계속해서 동일하게 복원하기 위해서는 한번 생성된 부트이미지를 반복해서 사용해야 한다. 따라서, 부트 이미지(300)에서 화면에 대한 정보만 변경할 수 있어야 한다. 이를 위해 부트 이미지(300)는 디바이스(100)의 화면에 대한 정보가 저장되어 있는 위치에 대한 정보(440)를 별도로 포함한다.

부트 이미지 생성부(220)는 도 4에 도시된 바와 같은 부트 이미지(300)를 우선 휘발성 메모리(120)에 생성한 다음에 비휘발성 메모리(160)에 저장할 수 있다. 부트 이미지(300)를 생성하기 위해서는 모든 프로세스 및 주변 디바이스를 중지시켜야 하는데 이때 중지되는 주변 디바이스에는 비휘발성 메모리(160)에 대한 액세스를 제어하는 디바이스도 포함된다. 따라서, 디바이스를 중지시킨 상태에서 휘발성 메모리(120)에 부트 이미지(300)를 생성하고, 부트 이미지(300)의 생성이 완료되면 중지를 해제하고, 부트 이미지(300)를 비휘발성 메모리(160)로 복사한다. 도 7을 참조하여 상세히 후술한다.

도 3 및 4와 관련하여 전술한 바와 같이 본 발명에 따른 부트 이미지 생성 장치(130)는 휘발성 메모리(120)에 로드되어 있는 모든 어플리케이션 코드(320)를 소거하고, 운영 체계와 관련된 최소한의 정보(310)만 포함하도록 부트 이미지(300)를 생성한다. 이에 따라, 부트 이미지(300)의 크기는 작고, 작은 크기의 부트 이미지(300)에 기초해 빠른 속도로 디바이스(100)의 상태를 복원할 수 있는 바, 이러한 부트 이미지 생성 방법 및 부팅 방법을 "전체 페이지 리클레임(Full-page Reclaim)" 기법이라 명명할 수 있다.

도 5는 본 발명의 일 실시예에 따른 부팅 장치를 도시한다.

도 5를 참조하면, 본 발명의 일 실시예에 따른 부팅 장치(140)는 로딩부(510) 및 부팅부(520)를 포함한다.

로딩부(510)는 도 3 및 도 4에 도시된 바와 같이 생성된 부트 이미지(300)를 휘발성 메모리(120)에 로드한다. 비휘발성 메모리(160)에 저장되어 있는 부트 이미지(300)를 읽어, 휘발성 메모리(120)에 로드한다.

복원부(520)는 로딩부(510)에 의해 로딩된 부트 이미지(300)에 기초해 디바이스(100)의 상태를 복원한다. 디바이스(100)의 휘발성 메모리(120)에 로드되어 있는 최소 부트 정보(410)를 기초로 운영 체계를 복원한다.

운영 체계가 복원되면 프로세스들이 다시 실행되고, 프로세스 중 부트 이미지 생성 시에 실행 중이던 어플리케이션과 관련된 프로세스는 어플리케이션 코드(320)가 휘발성 메모리(120)에 로드되어 있지 않아, 오류(예를 들어, 페이지 폴트(page fault))가 발생한다. 이 때, 비휘발성 메모리(160)에서 어플리케이션 코드(320)가 저장된 비휘발성 메모리(160)의 위치에 대한 정보를 참조하여 어플리케이션 코드(320)를 다시 휘발성 메모리(120)에 로드하여 프로세스를 계속한다. 어플리케이션 코드(320)가 저장된 위치에 대한 정보는 전술한 바와 같이 운영 체계와 관련된 정보(310)에 포함되어 있다. 어플리케이션 데이터(330) 또한 어플리케이션 코드(320)가 복원되는 방식과 마찬가지로 필요에 따라 비휘발성 메모리(160)에서 어플리케이션 데이터(330)가 저장된 위치에 대한 정보를 참조하여 복원될 수 있다.

부팅 후의 최초 화면은 최소 부트 정보(410)에 포함되어 있는 디바이스의 화면에 대한 정보에 기초해 표시될 수 있다.

주변 디바이스들(150 내지 152)의 상태도 부트 이미지(300)의 디바이스 상태 정보(420)에 기초해 복원한다. 주변 디바이스들(150 내지 152)의 레지스터(예를 들어, 디바이스 내부 혹은 외부에 위치한 레지스터)를 부트 이미지에 저장된 상태에 대한 정보에 기초해 복원한다.

도 6은 본 발명의 일 실시예에 따른 부트 이미지(300)를 생성하는 방법을 설명하기 위한 흐름도이다.

도 6을 참조하면, 단계 610에서 부트 이미지 생성 장치(130)는 부트 이미지의 생성을 시작하는 시점에 디바이스(100)에서 구동되고 있는 모든 어플리케이션의 실행을 위한 코드 즉, 어플리케이션 코드(320)를 휘발성 메모리(120)에서 소거한다. 도 3과 관련하여 전술한 바와 같이 어플리케이션의 실행을 위한 코드는 비휘발성 메모리(160)로부터 다시 복사할 수 있으므로, 부트 이미지를 생성하는데 필요하지 않다. 따라서, 휘발성 메모리(120)에서 소거한다. 캐쉬 데이터(340)도 어플리케이션 코드(320)와 함께 휘발성 메모리(120)에서 소거될 수 있음은 전술하였다.

단계 620에서 부트 이미지 생성 장치(130)는 부트 이미지 생성시에 실행 중인 모든 어플리케이션의 실행윌 위한 데이터 즉, 어플리케이션 데이터(330)를 비휘발성 메모리(160)에 저장한다.

단계 630에서 부트 이미지 생성 장치(130)는 단계 610의 소거 및 단계 620의 저장이 끝나고 휘발성 메모리에 남아있는 디바이스(100)의 운영 체계와 관련된 정ㅂ보10)에 기초해 부트 이미지(300)를 생성한다. 부트 이미지(300)는 운영 체계와 관련된 정보(310) 이외에 다른 정보들도 포함될 수 있음은 도 4를 참조하여 전술하였다.

도 7은 본 발명의 또 다른 실시예에 따른 부트 이미지를 생성하는 방법을 도시한다.

도 7을 참조하면, 단계 710에서 부트 이미지 생성 장치(130)는 특정 시점에서 실행 중인 모든 프로세스를 중지한다.

단계 720에서 부트 이미지 생성 장치(130)는 전체 페이지를 리클레임(reclaim)한다. 도 3과 관련하여 전술한 바와 같이 부트 이미지(300)의 생성 시점에서 실행되고 있는 모든 어플리케이션의 실행을 위한 코드 즉, 어플리케이션 코드(320)를 휘발성 메모리(120)에서 소거하고, 캐쉬 데이터(340)도 소거한다. 또한, 어플리케이션의 실행을 위한 데이터(330)를 비휘발성 메모리(160)에 저장한다. 그런 다음, 운영 체계와 관련된 정보(310)를 포함하는 부트 이미지(300)를 휘발성 메모리(120)에 생성한다. 운영 체계와 관련된 정보(310) 및 디바이스(100)의 화면에 대한 정보를 포함하는 최소 부트 정보(410)를 포함하는 부트 이미지(300)를 생성할 수 있다.

단계 730에서 주변 디바이스를 모두 중지시키면, 비휘발성 메모리(160)에 대한 액세스를 제어하는 입출력 제어 장치도 작동이 중지되므로, 비휘발성 메모리(160)에 액세스할 수 없다. 따라서, 부트 이미지(300)를 우선 휘발성 메모리(120)에 생성하여 놓고, 부트 이미지(300)에 도 4에 도시된 바와 같은 모든 정보들이 저장되면, 단계 770에서 부트 이미지(300)를 비휘발성 메모리(160)에 저장한다.

단계 730에서 부트 이미지 생성 장치(130)는 디바이스(100)에 장착된 주변 디바이스(150 내지 152)를 모두 중지시킨다.

단계 740에서 부트 이미지 생성 장치(130)는 중지된 주변 디바이스(150 내지 152)의 상태에 대한 정보(420)를 부트 이미지(300)에 저장한다. 중지된 주변 디바이스(150 내지 152)의 레지스터에 저장되어 있는 데이터를 주변 디바이스(150 내지 152)의 상태에 대한 정보(420)로서 부트 이미지(300)에 저장한다.

단계 750에서 부트 이미지 생성 장치(130)는 실행 중이었던 프로세스와 관련된 파일에 대한 정보를 저장한다. 도 4를 참조하여 전술한 바와 같이 부트 이미지(300)의 생성 시에 실행 중이던 프로세스와 관련된 파일이 부트 이미지(300)의 생성 후 디바이스(100)에서 삭제되면, 부트 이미지(300)에 따라 부팅 후 프로세스를 제대로 복원할 수 없어, 시스템 오류가 발생할 수 있다. 따라서, 단계 750에서 부트 이미지 생성 장치(130)는 단계 710에서 중지된 프로세스 즉, 부트 이미지(300)의 생성을 시작할 때 실행 중이던 프로세스와 관련된 파일에 대한 정보를 부트 이미지(300)에 저장한다.

단계 760에서 부트 이미지 생성 장치(130)는 부트 이미지(300)에서 화면에 대한 정보가 저장된 위치 정보를 저장하기 위한 영역을 할당한다. 부트 이미지(300)에 저장되는 최소 부트 정보(410)는 운영 체계와 관련된 정보(310) 및 부팅 후 디바이스(100)에 표시되는 화면에 대한 정보를 포함하고 있다. 또한, 도 4에 도시된 바와 같이 부트 이미지(300)는 화면에 대한 정보가 저장된 위치 정보(440)를 포함하는 바, 단계 760에서 부트 이미지 생성 장치(130)는 화면에 대한 정보가 저장된 위치 정보(440)를 저장하기 위한 영역을 부트 이미지(300) 내부에 할당한다.

단계 770에서 부트 이미지 생성 장치(130)는 단계 710 내지 760에 따라 생성된 부트 이미지(300)를 비휘발성 메모리(160)에 저장한다. 비휘발성 메모리(160)에 대한 액세스를 제어하는 주변 디바이스를 다시 작동시켜 휘발성 메모리에 저장되어있는 부트 이미지(300)를 비휘발성 메모리(160)에 저장한다.

단계 780에서 부트 이미지 생성부(130)는 화면에 대한 정보가 비휘발성 메모리(160)의 어떤 위치에 저장되는지를 판단하여, 위치 정보를 부트 이미지(300)에 저장한다. 단계 770에서 부트 이미지(300)가 비휘발성 메모리(160)로 이동되었으므로, 비휘발성 메모리(160)의 어떤 위치에 화면에 대한 정보가 저장되는지 알 수 있다. 따라서, 이 위치에 대한 정보를 부트 이미지(300) 내의 스크린 정보 저장 위치(440)로서 저장한다.

부트 이미지(300)의 생성 후에 사용자가 부팅시 표시되는 화면을 변경하면, 부트 이미지(300)의 화면에 대한 정보가 저장된 위치에 대한 정보를 참조하여 화면에 대한 정보를 변경할 수 있다. 이에 따라 부트 이미지(300) 전체를 다시 생성할 필요가 없어지며, 최소 부트 정보(410)에 포함되어 있는 화면에 대한 정보만 변경된다.

도 8은 본 발명의 일 실시예에 따른 부팅 방법을 설명하기 위한 흐름도이다.

도 8을 참조하면, 단계 810에서 본 발명의 일 실시예에 따른 부팅 장치(140)는 비휘발성 메모리(160)에 저장되어 있는 부트 이미지(300)를 휘발성 메모리(120)에 로드한다. 디바이스(100)의 하드웨어를 비휘발성 메모리(120)에 접근할 수 있는 최소항의 상태로 초기화하고, 비휘발성 메모리(160)에 부트 이미지(300)가 존재하는지 판단한다. 부트 이미지(300)가 존재하지 않으면, 부트 이미지(300)를 이용하지 않는 일반적인 부팅을 수행한다. 그러나, 부트 이미지(300)가 존재하면, 부트 이미지(300)를 로딩부(510)를 이용해 비휘발성 메모리(160)에서 읽어 휘발성 메모리(120)에 로드한다.

단계 820에서 부팅 장치(140)는 단계 810에서 로드된 부트 이미지(300)에 기초해 디바이스의 상태를 복원한다.

디바이스(100)의 휘발성 메모리(120)에 로드되어 있는 최소 부트 정보(410)를 기초로 운영 체계를 복원한다.

운영 체제의 복원이 완료되면, 주변 디바이스들(150 내지 152)의 상태도 부트 이미지(300)의 디바이스 상태 정보(420)에 기초해 복원한다. 주변 디바이스들(150 내지 152)의 레지스터를 부트 이미지에 저장된 상태에 대한 정보에 기초해 복원한다. 그런 다음, 부트 이미지(300) 생성 시에 중지된 프로세스를 다시 실행한다. 이 때, 비휘발성 메모리(160)에 별도로 저장되어 있는 어플리케이션 데이터(330)도 필요에 따라 휘발성 메모리(120)에 로드한다.

도 9는 본 발명의 일 실시예에 따른 부트 이미지의 생성 시에 실행 중이던 프로세스와 관련된 파일을 삭제 또는 수정하는 방법을 도시한다.

도 9를 참조하면, 단계 910에서 디바이스(100)의 사용자는 부트 이미지(300)에 따라 디바이스(100)를 부팅한 후, 소정의 파일을 삭제 또는 수정하려고 시도한다.

단계 920에서 디바이스(100)는 휘발성 메모리(120)에 로드되어 있는 부트 이미지(300)의 프로세스 파일 정보(430)를 확인한다.

단계 930에서는 단계 920의 확인 결과, 단계 910에서 삭제 또는 수정하려는 파일이 부트 이미지(300)의 생성 시에 실행 중이던 프로세스와 관련된 파일인지 판단한다. 부트 이미지(300)의 생성 시에 실행 중이던 프로세스와 관련된 파일인 경우에는 파일을 삭제 또는 수정하면, 부트 이미지(300)에 따라 디바이스(100)를 부팅한 후 프로세스를 제대로 실행할 수 없어 시스템 오류가 발생하므로, 파일의 삭제 또는 수정을 금지시킨다.

그러나, 단계 910에서 삭제 또는 수정하려는 파일이 부트 이미지(300)의 생성 시에 실행 중이던 프로세스와 관련되지 않은 파일이면, 단계 940에서 파일을 삭제 또는 수정한다.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다.

예를 들어, 본 발명의 예시적인 실시예에 따른 부트 이미재 생성 장치 및 부팅 장치는 도 1, 2 및 5에 도시된 바와 같은 장치의 각각의 유닛들에 커플링된 버스, 상기 버스에 결합된 적어도 하나의 프로세서를 포함할 수 있다. 또한, 명령, 수신된 메시지 또는 생성된 메시지를 저장하기 위해 상기 버스에 결합되어, 전술한 바와 같은 명령들을 수행하기 위한 적어도 하나의 프로세서에 커플링된 메모리를 포함할 수 있다.

또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.

Claims (28)

  1. 소정 시점에 디바이스에서 어플리케이션의 실행을 위해 상기 디바이스의 휘발성 메모리에 로드(load)된 상기 어플리케이션의 실행을 위한 코드(code) 및 상기 어플리케이션의 실행을 위한 데이터 중에서, 상기 어플리케이션의 실행을 위한 코드를 상기 휘발성 메모리에서 소거하고 상기 어플리케이션의 실행을 위한 데이터를 상기 디바이스의 비휘발성 메모리에 저장하는 단계;
    상기 시점에서 상기 휘발성 메모리에 저장된 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드, 상기 운영 체계의 실행을 위한 데이터 및 상기 디바이스에 표시되는 화면에 대한 정보를 포함하는 부트 이미지(boot image)를 생성하는 단계; 및
    상기 생성된 부트 이미지를 상기 휘발성 메모리에 저장하는 단계;를 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  2. 제 1 항에 있어서,
    상기 어플리케이션의 실행을 위한 코드는 상기 어플리케이션의 실행을 위해 상기 비휘발성 메모리에서 상기 휘발성 메모리로 복사된 코드이고,
    상기 운영 체계의 실행을 위한 데이터는 상기 비휘발성 메모리에서 상기 어플리케이션의 실행을 위한 코드 및 상기 어플리케이션의 실행을 위한 데이터 중 적어도 하나가 저장된 위치에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  3. 제 2 항에 있어서, 상기 부트 이미지는
    상기 시점에 상기 디바이스에 장착된 적어도 하나의 주변 디바이스(peripheral device)의 상태에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  4. 제 3 항에 있어서, 상기 부트 이미지를 저장하는 단계는
    상기 적어도 하나의 주변 디바이스를 중지시키는 단계; 및
    상기 중지된 적어도 하나의 주변 디바이스의 상태에 대한 정보를 상기 부트 이미지에 저장하는 단계를 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  5. 제 3 항에 있어서, 상기 부트 이미지는
    상기 시점에서 실행 중인 프로세스와 관련된 파일에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  6. 제 5 항에 있어서, 상기 프로세스와 관련된 파일에 대한 정보는
    상기 비휘발성 메모리에서 상기 프로세스와 관련된 파일이 저장되어 있는 위치에 대한 정보를 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  7. 제 5 항에 있어서, 상기 부트 이미지를 저장하는 단계는
    상기 적어도 하나의 주변 디바이스를 중지시키는 단계;
    상기 중지된 적어도 하나의 주변 디바이스의 상태에 대한 정보를 상기 부트 이미지에 저장하는 단계; 및
    상기 실행 중인 프로세스와 관련된 파일에 대한 정보를 상기 부트 이미지에 저장하는 단계를 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  8. 삭제
  9. 제 1 항에 있어서, 상기 부트 이미지는
    상기 부트 이미지에서 상기 화면에 대한 정보가 저장된 위치에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  10. 제 1 항에 있어서,
    상기 휘발성 메모리에 저장되어 있는 상기 부트 이미지를 상기 비휘발성 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  11. 제 1 항에 있어서, 상기 시점은
    상기 디바이스에서 상기 운영 체계 및 상기 디바이스의 작동을 위해 실행되는 적어도 하나의 서비스 어플리케이션을 제외한 다른 어플리케이션은 실행되지 않은 아이들(idle) 상태인 시점인 것을 특징으로 하는 부트 이미지 생성 방법.
  12. 소정 시점에 디바이스에서 어플리케이션의 실행을 위해 상기 디바이스의 휘발성 메모리에 로드(load)된 상기 어플리케이션의 실행을 위한 코드(code) 및 상기 어플리케이션의 실행을 위한 데이터 중에서, 상기 어플리케이션의 실행을 위한 코드를 상기 디바이스의 휘발성 메모리에서 소거하고, 상기 어플리케이션의 실행을 위한 데이터를 상기 디바이스의 비휘발성 메모리에 저장하고, 상기 시점에서 상기 휘발성 메모리에 저장된 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드, 상기 운영 체계의 실행을 위한 데이터 및 상기 디바이스에 표시되는 화면에 대한 정보를 포함하도록 생성된 부트 이미지(boot image)를 휘발성 메모리에 로드하는 단계; 및
    상기 로드된 부트 이미지에 기초해 상기 디바이스의 상태를 상기 시점의 상태로 복원하는 단계를 포함하는 것을 특징으로 하는 부팅 방법.
  13. 제 12 항에 있어서,
    상기 어플리케이션의 실행을 위한 코드는 상기 어플리케이션의 실행을 위해 상기 비휘발성 메모리에서 상기 휘발성 메모리로 복사된 코드이고,
    상기 운영 체계의 실행의 실행을 위한 데이터는 상기 비휘발성 메모리에서 상기 어플리케이션의 실행을 위한 코드 및 상기 어플리케이션의 실행을 위한 데이터 중 적어도 하나가 저장된 위치에 대한 정보를 더 포함하는 것을 특징으로 하는 부팅 방법.
  14. 제 13 항에 있어서,
    상기 부트 이미지는 상기 시점에 상기 디바이스에 장착된 적어도 하나의 주변 디바이스(peripheral device)의 상태에 대한 정보를 더 포함하고,
    상기 디바이스의 상태를 복원하는 단계는 상기 적어도 하나의 주변 디바이스의 상태에 대한 정보에 기초해 상기 적어도 하나의 주변 디바이스의 상태를 복원하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
  15. 소정 시점에 디바이스에서 어플리케이션의 실행을 위해 상기 디바이스의 휘발성 메모리에 로드(load)된 상기 어플리케이션의 실행을 위한 코드(code) 및 상기 어플리케이션의 실행을 위한 데이터 중에서, 상기 어플리케이션의 실행을 위한 코드를 상기 휘발성 메모리에서 소거하고, 상기 어플리케이션의 실행을 위한 데이터를 상기 디바이스의 비휘발성 메모리에 저장하는 스와핑부; 및
    상기 시점에서 상기 휘발성 메모리에 저장된 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드, 상기 운영 체계의 실행을 위한 데이터 및 상기 디바이스에 표시되는 화면에 대한 정보를 포함하는 부트 이미지(boot image)를 생성하고, 상기 생성된 부트 이미지를 상기 휘발성 메모리에 저장하는 부트 이미지 생성부를 포함하는 것을 특징으로 하는 부트 이미지 생성 장치.
  16. 제 15 항에 있어서,
    상기 어플리케이션의 실행을 위한 코드는 상기 어플리케이션의 실행을 위해 상기 비휘발성 메모리에서 상기 휘발성 메모리로 복사된 코드이고,
    상기 운영 체계의 실행을 위한 데이터는 상기 비휘발성 메모리에서 상기 어플리케이션의 실행을 위한 코드 및 상기 어플리케이션의 실행을 위한 데이터 중 적어도 하나가 저장된 위치에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 장치.
  17. 제 16 항에 있어서, 상기 부트 이미지는
    상기 시점에 상기 디바이스에 장착된 적어도 하나의 주변 디바이스(peripheral device)의 상태에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 장치.
  18. 제 17 항에 있어서, 상기 부트 이미지는
    상기 시점에서 실행 중인 프로세스와 관련된 파일에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 장치.
  19. 제 18 항에 있어서, 상기 프로세스와 관련된 파일에 대한 정보는
    상기 비휘발성 메모리에서 상기 프로세스와 관련된 파일이 저장되어 있는 위치에 대한 정보를 포함하는 것을 특징으로 하는 부트 이미지 생성 장치.
  20. 삭제
  21. 제 15 항에 있어서, 상기 부트 이미지는
    상기 부트 이미지에서 상기 화면에 대한 정보가 저장된 위치에 대한 정보를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 장치.
  22. 소정 시점에 디바이스에서 어플리케이션의 실행을 위해 상기 디바이스의 휘발성 메모리에 로드(load)된 상기 어플리케이션의 실행을 위한 코드(code) 및 상기 어플리케이션의 실행을 위한 데이터 중에서, 상기 어플리케이션의 실행을 위한 코드를 상기 휘발성 메모리에서 소거하고, 상기 어플리케이션의 실행을 위한 데이터를 상기 디바이스의 비휘발성 메모리에 저장하고, 상기 시점에서 상기 휘발성 메모리에 저장된 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드, 상기 운영 체계의 실행을 위한 데이터 및 상기 디바이스에 표시되는 화면에 대한 정보를 포함하도록 생성된 부트 이미지(boot image)를 휘발성 메모리에 로드하는 로딩부; 및
    상기 로드된 부트 이미지에 기초해 상기 디바이스의 상태를 상기 시점의 상태로 복원하는 부팅부를 포함하는 것을 특징으로 하는 부팅 장치.
  23. 제 22 항에 있어서,
    상기 어플리케이션의 실행을 위한 코드는 상기 어플리케이션의 실행을 위해 상기 비휘발성 메모리에서 상기 휘발성 메모리로 복사된 코드이고,
    상기 운영 체계의 실행을 위한 데이터는 상기 비휘발성 메모리에서 상기 어플리케이션의 실행을 위한 코드 및 상기 어플리케이션의 실행을 위한 데이터 중 적어도 하나가 저장된 위치에 대한 정보를 더 포함하는 것을 특징으로 하는 부팅 장치.
  24. 제 22 항에 있어서,
    상기 부트 이미지는 상기 시점에 상기 디바이스에 장착된 적어도 하나의 주변 디바이스(peripheral device)의 상태에 대한 정보를 더 포함하고,
    상기 부팅부는 상기 적어도 하나의 주변 디바이스의 상태에 대한 정보에 기초해 상기 적어도 하나의 주변 디바이스의 상태를 복원하는 것을 특징으로 하는 부팅 장치.
  25. 제 1 항에 있어서, 상기 부트 이미지 생성 방법은
    상기 어플리케이션의 실행을 위한 데이터 및 상기 운영 체계의 캐쉬 데이터를 상기 휘발성 메모리에서 소거하는 단계를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  26. 제 9 항에 있어서,
    상기 시점에 상기 디바이스에 표시되는 화면의 변경 요청을 수신하는 단계; 및
    상기 부트 이미지에서 상기 화면에 대한 정보가 저장된 위치에 대한 정보를 참조하여 상기 부트 이미지의 상기 디바이스에 표시되는 화면에 대한 정보를 변경하는 단계를 더 포함하는 것을 특징으로 하는 부트 이미지 생성 방법.
  27. 소정 시점에 디바이스에서 실행되고 있는 어플리케이션의 실행을 위한 코드를 상기 디바이스의 휘발성 메모리에서 소거하고, 상기 휘발성 메모리에 저장된 상기 어플리케이션의 실행을 위한 데이터를 비휘발성 메모리에 저장하고, 상기 시점에서 상기 휘발성 메모리에 저장된 상기 디바이스의 운영 체계(Operating System)의 실행을 위한 코드 및 상기 운영 체계의 실행을 위한 데이터 중 적어도 하나를 포함하도록 생성된 부트 이미지(boot image)를 휘발성 메모리에 로드하고, 상기 로드된 부트 이미지에 기초해 상기 디바이스의 상태를 상기 시점의 상태로 복원하는 단계;
    소정 파일의 삭제 또는 수정 요청을 수신하는 단계; 및
    상기 부트 이미지에 포함된 상기 부트 이미지의 상기 시점에서 실행 중인 프로세스와 관련된 파일에 대한 정보에 기초해 선택적으로 상기 소정 파일을 삭제 또는 수정하는 단계를 포함하는 것을 특징으로 하는 파일 변경 방법.
  28. 제 1 항 내지 제 7 항, 제 9 항 내지 제 14 항, 및 제 25 내지 제 27 항 중 어느 한 항의 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020100018237A 2010-02-26 2010-02-26 최소 부트 이미지의 생성 방법 및 장치 KR101636870B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100018237A KR101636870B1 (ko) 2010-02-26 2010-02-26 최소 부트 이미지의 생성 방법 및 장치

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
KR1020100018237A KR101636870B1 (ko) 2010-02-26 2010-02-26 최소 부트 이미지의 생성 방법 및 장치
CN2011800109992A CN102770841A (zh) 2010-02-26 2011-02-25 用于产生最小引导映像的方法和装置
JP2012554941A JP2013520744A (ja) 2010-02-26 2011-02-25 最小ブートイメージの生成方法及びその装置
PCT/KR2011/001362 WO2011105860A2 (en) 2010-02-26 2011-02-25 Method and apparatus for generating minimum boot image
EP11747750.5A EP2539807A4 (en) 2010-02-26 2011-02-25 Method and apparatus for generating minimum boot image
US13/036,865 US20110213954A1 (en) 2010-02-26 2011-02-28 Method and apparatus for generating minimum boot image
US13/650,752 US10394570B2 (en) 2010-02-26 2012-10-12 Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US13/650,715 US20130042097A1 (en) 2010-02-26 2012-10-12 Method of updating boot image for fast booting and image forming apparatus for performing the method
US13/650,727 US20130036300A1 (en) 2010-02-26 2012-10-12 Method of fixing error of boot image for fast booting and image forming apparatus for performing the method

Publications (2)

Publication Number Publication Date
KR20110098567A KR20110098567A (ko) 2011-09-01
KR101636870B1 true KR101636870B1 (ko) 2016-07-06

Family

ID=44505925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100018237A KR101636870B1 (ko) 2010-02-26 2010-02-26 최소 부트 이미지의 생성 방법 및 장치

Country Status (6)

Country Link
US (1) US20110213954A1 (ko)
EP (1) EP2539807A4 (ko)
JP (1) JP2013520744A (ko)
KR (1) KR101636870B1 (ko)
CN (1) CN102770841A (ko)
WO (1) WO2011105860A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019132464A1 (ko) * 2017-12-28 2019-07-04 삼성전자 주식회사 디스플레이 장치 및 그 동작방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394570B2 (en) 2010-02-26 2019-08-27 Hp Printing Korea Co., Ltd. Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
KR101813641B1 (ko) * 2011-11-15 2018-01-02 에스프린팅솔루션 주식회사 화상형성장치 및 하이버네이션 기능을 갖는 화상형성장치를 부팅하는 방법
JP6041522B2 (ja) * 2012-04-18 2016-12-07 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム及び記憶媒体
US9367333B2 (en) * 2012-07-30 2016-06-14 Hewlett-Packard Development Company, L.P. Booting a printer
KR101959359B1 (ko) 2012-11-06 2019-03-18 에이치피프린팅코리아 유한회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
CN103885901B (zh) * 2012-12-21 2019-06-25 联想(北京)有限公司 文件读取方法、存储设备和电子设备
US9836306B2 (en) * 2013-07-31 2017-12-05 Marvell World Trade Ltd. Parallelizing boot operations
US10050901B2 (en) * 2014-04-22 2018-08-14 Cisco Technology, Inc. Efficient management and configuration of in-band resources
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US20150324132A1 (en) * 2014-05-07 2015-11-12 Sandisk Technologies Inc. Method and Computing Device for Fast Erase of Swap Memory
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance
US9665296B2 (en) * 2014-05-07 2017-05-30 Sandisk Technologies Llc Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US10521618B1 (en) * 2015-10-20 2019-12-31 Marvell International Ltd. Methods and apparatus for secure root key provisioning
CN108197184A (zh) * 2017-12-25 2018-06-22 深圳天珑无线科技有限公司 文件存储的方法及文件存储设备、存储装置
CN110427582A (zh) * 2018-04-28 2019-11-08 华为技术有限公司 文件缓存的读取方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US20010039612A1 (en) 1999-12-02 2001-11-08 Lee Sang-Jin Apparatus and method for fast booting
JP2003084977A (ja) 2001-09-11 2003-03-20 Ricoh Co Ltd コンピュータシステム及びその制御方法
JP2008165554A (ja) 2006-12-28 2008-07-17 Sony Corp 情報処理装置、起動方法、およびプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325532A (en) * 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
JP2525122B2 (ja) * 1992-11-09 1996-08-14 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タ・システムのバックアップ記録方法、復元方法およびシステム
US5557777A (en) * 1994-09-30 1996-09-17 Apple Computer, Inc. Method and apparatus for system recovery from power loss
US5933631A (en) * 1997-03-17 1999-08-03 International Business Machines Corporation Dynamic boot filesystem selection
KR19990011346A (ko) * 1997-07-23 1999-02-18 윤종용 압축된 부팅 롬 생성 방법
JP3204251B2 (ja) * 1999-06-30 2001-09-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイバネーション装置及び方法、それを格納した記録媒体並びにそれを適用したコンピュータ
US6609182B1 (en) * 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
US7062643B2 (en) * 2000-08-01 2006-06-13 Fujitsu Limited System method and apparatus for controlling a boot process of a computer
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
US7475186B2 (en) * 2003-10-31 2009-01-06 Superspeed Software System and method for persistent RAM disk
US8001348B2 (en) * 2003-12-24 2011-08-16 Intel Corporation Method to qualify access to a block storage device via augmentation of the device's controller and firmware flow
US7590839B2 (en) * 2005-03-22 2009-09-15 Qnx Software Systems Gmbh & Co. Kg System employing fast booting of application programs
US7634689B2 (en) * 2005-09-22 2009-12-15 Advanced Micro Devices, Inc. Boot performance optimization for hard drive for personal internet communicator
JP4933822B2 (ja) * 2006-04-21 2012-05-16 株式会社Cspフロンティア研究所 データ消去システム、管理サーバ、データ消去方法およびプログラム
US7519808B2 (en) * 2006-04-25 2009-04-14 Apple Inc. Method and apparatus for quickly reanimating devices from hibernation
US7673131B2 (en) * 2006-05-05 2010-03-02 Microsoft Corporation Booting an operating system in discrete stages
JP2007334383A (ja) * 2006-06-12 2007-12-27 Sony Corp 情報処理装置とその起動方法およびプログラム
US7743242B2 (en) * 2006-10-16 2010-06-22 Scalent Systems Inc. Method and system for automatic generation of operating system boot images
JP4857201B2 (ja) * 2007-06-20 2012-01-18 キヤノン株式会社 情報処理装置
JP2009193379A (ja) * 2008-02-14 2009-08-27 Konica Minolta Business Technologies Inc 画像処理装置及び同装置の起動方法
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
CN101515239A (zh) * 2009-04-08 2009-08-26 南京航空航天大学 X86飞控计算机快速启动方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US20010039612A1 (en) 1999-12-02 2001-11-08 Lee Sang-Jin Apparatus and method for fast booting
JP2003084977A (ja) 2001-09-11 2003-03-20 Ricoh Co Ltd コンピュータシステム及びその制御方法
JP2008165554A (ja) 2006-12-28 2008-07-17 Sony Corp 情報処理装置、起動方法、およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019132464A1 (ko) * 2017-12-28 2019-07-04 삼성전자 주식회사 디스플레이 장치 및 그 동작방법

Also Published As

Publication number Publication date
WO2011105860A2 (en) 2011-09-01
CN102770841A (zh) 2012-11-07
WO2011105860A3 (en) 2011-11-24
US20110213954A1 (en) 2011-09-01
JP2013520744A (ja) 2013-06-06
EP2539807A4 (en) 2014-10-08
KR20110098567A (ko) 2011-09-01
EP2539807A2 (en) 2013-01-02

Similar Documents

Publication Publication Date Title
CN105745624B (zh) 来自存储快照的虚拟机备份
US9870288B2 (en) Container-based processing method, apparatus, and system
US8832029B2 (en) Incremental virtual machine backup supporting migration
US20160055062A1 (en) Systems and Methods for Maintaining a Virtual Failover Volume of a Target Computing System
US8738883B2 (en) Snapshot creation from block lists
EP2755132B1 (en) Virtual machine memory snapshot generating and recovering method, device and system
US7818616B2 (en) Warm reboot enabled kernel dumper
JP3830886B2 (ja) 不揮発性メモリへのデータ貯蔵方法
CN102207881B (zh) 一种基于Android的操作系统快速启动方法
US7657886B1 (en) Mobile device with a MMU for faster firmware updates in a wireless network
JP4281421B2 (ja) 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
CN102385535B (zh) 处理从非易失性存储器进行设备引导期间的错误
JP5724477B2 (ja) 移行プログラム、情報処理装置、移行方法、及び情報処理システム
TWI388983B (zh) 用於促進快閃記憶體系統之快速喚起的方法及系統
JP4901095B2 (ja) Fail-safe way to apply custom software image updates to non-volatile storage
US8689211B2 (en) Live migration of virtual machines in a computing environment
US7412565B2 (en) Memory optimization for a computer system having a hibernation mode
US7941700B2 (en) Operating system-based application recovery
JP4979287B2 (ja) 画像処理装置及びプログラム
US8209290B1 (en) Generic granular restore of application data from a volume image backup
JP4363676B2 (ja) コンピュータシステム
US8806476B2 (en) Implementing a software installation process
JP4385215B2 (ja) スナップショットシミュレーション機能を有するディスクアレイ装置
KR101288700B1 (ko) 멀티 오퍼레이팅 시스템(os) 기동 장치, 컴퓨터 판독 가능한 기록 매체 및 멀티 os 기동 방법
CN102360298B (zh) 一种终端设备的软件升级方法

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
FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 4