KR20130040637A - 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 - Google Patents

빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 Download PDF

Info

Publication number
KR20130040637A
KR20130040637A KR1020110105529A KR20110105529A KR20130040637A KR 20130040637 A KR20130040637 A KR 20130040637A KR 1020110105529 A KR1020110105529 A KR 1020110105529A KR 20110105529 A KR20110105529 A KR 20110105529A KR 20130040637 A KR20130040637 A KR 20130040637A
Authority
KR
South Korea
Prior art keywords
forming apparatus
boot
image forming
boot image
image
Prior art date
Application number
KR1020110105529A
Other languages
English (en)
Other versions
KR101850272B1 (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 KR1020110105529A priority Critical patent/KR101850272B1/ko
Priority to PCT/KR2012/007439 priority patent/WO2013055044A1/en
Priority to US13/650,715 priority patent/US20130042097A1/en
Publication of KR20130040637A publication Critical patent/KR20130040637A/ko
Application granted granted Critical
Publication of KR101850272B1 publication Critical patent/KR101850272B1/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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/12Digital output to print unit, e.g. line printer, chain printer

Landscapes

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

Abstract

화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법은 화상형성장치에 설치된 소프트웨어에 대한 변경 요청이 있는 경우 저장된 부트 이미지를 삭제하고 화상형성장치를 재부팅함으로써 부트 이미지를 재생성한다.

Description

빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치{Method for updating boot image for fast booting and image forming apparatus for performing the same}
빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치에 관한다.
최근 전자제품의 많은 기능들이 하드웨어에서 소프트웨어로 변동하고 있다. 이는 하드웨어의 기술 발전으로 인하여 소프트웨어에 대한 제약이 줄어든 것이다. 하지만, 소프트웨어가 다양한 기능을 제공함으로써 소프트웨어의 용량이 커지고 처리가 복잡해 지고 있다. 그리고, 다양한 미들웨어(middleware)를 사용으로 소프트웨어의 개발을 효율적으로 하고 있으나, 다양한 소프트웨어들로 인하여 전자제품의 시스템 부팅 시간 또는 속도는 점점 느려지고 있다. 비록 시스템의 부팅 시간은 시스템의 종류마다 상이하지만, 퍼스널 컴퓨터나 서버 시스템은 장치 드라이버 및 시스템 초기화에 소요되는 부팅 시간이 상당히 길기 때문에, 에너지 낭비 또는 시간 낭비가 크다. 또한, 시스템 부팅 속도는 비단 컴퓨터나 서버 시스템뿐만 아니라, 점차 다양한 기능을 포함하는 디지털 텔레비전, 이동통신 단말기, 내비게이션 등의 전자제품에서도 상당한 문제가 되고 있다. 이와 같은, 최근 전자제품들의 부팅 시간은 짧게는 수십 초에서 길게는 수 분에 이르고 있는 현실이다.
빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치를 제공하는데 있다. 또한, 이 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따르면, 화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법은 상기 화상형성장치에 설치된 소프트웨어에 대한 변경 요청이 있는 경우, 상기 화상형성장치의 적어도 하나의 파일시스템의 속성을 변경하는 단계; 상기 화상형성장치에 저장된 부트 이미지를 삭제하는 단계; 상기 변경 요청에 따라 상기 소프트웨어를 변경하는 단계; 및 상기 화상형성장치를 재부팅함으로써 상기 변경된 소프트웨어에 기초하여 상기 부트 이미지를 재생성하는 단계를 포함한다.
다른 일 측면에 따르면, 상기 부트 이미지 업데이트 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
또 다른 일 측면에 따르면, 빠른 부팅을 위한 부트 이미지를 업데이트하는 화상형성장치는 상기 화상형성장치에 설치된 소프트웨어에 대한 변경 요청이 있는 경우 상기 화상형성장치의 적어도 하나의 파일시스템의 속성을 변경하고, 상기 화상형성장치에 저장된 부트 이미지를 삭제하고, 상기 변경 요청에 따라 상기 소프트웨어를 변경하는 제어부; 및 상기 변경된 소프트웨어에 기초하여 상기 부트 이미지를 재생성하는 부트 이미지 생성부를 포함한다.
상기된 바에 따르면, 전자제품에 설치된 펌웨어, 응용 프로그램과 같은 소프트웨어가 변경되더라도 부트 이미지를 이용하여 빠른 부팅(fast booting)을 수행함으로써 전자제품의 하드웨어적인 변경 없이 소프트웨어적으로 전자제품의 부팅 속도를 개선할 수 있다. 따라서, 사용자는 부팅 시간의 감소 또는 부팅 속도의 증대로 인해 보다 효율적으로 전자제품을 사용할 수 있다.
도 1a는 본 발명의 일 실시예에 따른 디바이스의 구성도이다.
도 1b는 본 발명의 일 실시예에 따른 화상형성장치의 구성도이다.
도 1c는 본 발명의 일 실시예에 따른 프로세서의 상세 구성도이다.
도 2는 본 발명의 일 실시예에 따른 화상형성장치의 전체 부팅 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 상세 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 파일시스템의 속성이 변경되는 과정을 도시한 상세 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리에 실제로 저장된 파일시스템의 정보가 다를 수 있는 경우를 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다.
도 9는 본 발명의 다른 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다.
도 10은 본 발명의 일 실시예에 따라 사용자 인터페이스부에 표시된 부팅 모드를 선택하는 화면을 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따라 부트 이미지 생성 모드에 따라 부트 이미지가 생성될 때 사용자 인터페이스부에 표시되는 화면을 도시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 빠른 부팅을 수행하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 13은 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치의 빠른 부팅 수행하는 방법의 흐름도이다.
도 14는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치의 빠른 부팅 수행하는 방법의 상세 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 16은 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 방법의 흐름도이다.
도 17a은 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 방법의 상세 흐름도이다.
도 17b는 본 발명의 다른 일 실시예에 따른 부트 이미지를 업데이트하는 방법의 상세 흐름도이다.
도 18은 본 발명의 일 실시예에 따른 부트 이미지의 에러를 복구하는 프로세서를 포함하는 화상형성장치의 구성도이다.
도 19는 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법의 흐름도이다.
도 20은 본 발명의 일 실시예에 따른 화상형성장치의 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법의 상세 흐름도이다.
도 21은 본 발명의 일 실시예에 따른 사용자 인터페이스부에 표시된 복구 모드를 선택하는 화면을 도시한 도면이다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 상세히 설명하도록 하겠다.
도 1a는 본 발명의 일 실시예에 따른 디바이스(1)의 구성도이다. 도 1a를 참고하면, 디바이스(1)는 프로세서(10), 메모리부(20), 사용자 인터페이스부(30) 및 네트워크 인터페이스부(40)로 구성된다.
도 1a에서는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예에 관련된 하드웨어 구성요소(hardware component)들만이 도시되었다. 하지만, 본 실시예에 따른 디바이스(1)는 도 1a에 도시된 하드웨어 구성요소들 외에 다른 범용적인 하드웨어 구성요소들이 포함될 수 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
본 실시예에서 디바이스(1)는 일반적으로 사용되는 휴대폰, PDA 등의 모바일 장치 또는 컴퓨터 등과 같은 일종의 컴퓨팅 장치를 포함한다. 또한, 디바이스(1)는 임베디드(embedded) 장치를 포함할 수도 있다.
도 1b는 본 발명의 일 실시예에 따른 화상형성장치(2)의 구성도이다. 도 1b를 참고하면, 화상형성장치(2)는 프로세서(10), 메모리부(20), 사용자 인터페이스부(30), 네트워크 인터페이스부(40), 프린팅부, 팩스부, 스캐닝부, 데이터 변환부로 구성된다. 도 1b에서는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예에 관련된 하드웨어 구성요소(hardware component)들만이 도시되었다. 하지만, 본 실시예에 따른 화상형성장치(2)는 도 1b에 도시된 하드웨어 구성요소들 외에 다른 범용적인 하드웨어 구성요소들이 포함될 수 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1b를 참고하면, 화상형성장치(2)는 도 1a의 디바이스(1)의 일 예로써 디바이스(1)와 유사한 기능을 하는 공통적 구성 요소들인 프로세서(10), 메모리부(20), 사용자 인터페이스부(30), 네트워크 인터페이스부(40)를 포함한다. 따라서, 이하에서는 프로세서(10), 메모리부(20), 사용자 인터페이스부(30), 네트워크 인터페이스부(40)에 대해서는 화상형성장치(2)의 구성 요소들로써 설명하겠으나, 화상형성장치(2)는 디바이스(1)의 일 예에 해당되는바 화상형성장치(2)에 대해 설명된 내용은 디바이스(1)에도 공통적으로 적용될 수 있다.
본 실시예에 따른 화상형성장치(2)는 복사, 인쇄, 스캔, 팩스 송수신, 이메일 전송 등의 기능들을 하나의 장치에서 수행할 수 있는 일반적인 복합기를 포함한다. 이하에서는 화상형성장치(2)가 복합기인 경우를 예로 들어 설명하겠으나, 본 실시예에 따른 화상형성장치(2)는 이에 한정되지 않고 프린터, 스캐너, 팩스 등과 같은 개별적인 장치에 해당될 수 있다.
프로세서(10)는 메모리부(20)에 저장되어 있는 데이터를 이용하여 화상형성장치(2)에 설치된 운영체계(Operating System, OS)의 실행 및 응용 프로그램(application)의 실행을 처리하는 것으로써, 중앙처리장치(CPU)에 해당된다.
도 1c는 본 발명의 일 실시예에 따른 프로세서(10)의 상세 구성도이다. 도 1c를 참고하면, 프로세서(10)는 제어부(110), 부트 이미지 생성부(120), 스와핑부(130), 부팅부(140) 및 로딩부(150)를 포함한다. 이와 같은 프로세서(10)는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서로 구현될 수도 있다. 즉, 다양한 형태의 하드웨어로 구현될 수도 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
다시 도 1a 또는 1b를 참고하면, 메모리부(20)는 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함한다.
휘발성 메모리(210)는 화상형성장치(2)에서 실행되고 있는 운영체계 및 응용 프로그램과 관련된 데이터를 비휘발성 메모리(220)에서 읽어 로드함으로써, 프로세서(10)가 운영체계 및 응용 프로그램과 관련된 데이터에 액세스할 수 있게 한다. 여기서, 휘발성 메모리(210)는 메인 메모리로서 RAM(random access memory)일 수 있다.
비휘발성 메모리(220)는 화상형성장치(2)의 운영체계 및 응용 프로그램의 실행을 위한 데이터를 저장하는 장치로써, 하드 디스크 드라이브(Hard Disk Drive), FRAM(Ferroelectric RAM), MRAM(Magnetoresistive RAM), PRAM(Phase-change RAM) 등과 같이 휘발성 메모리(210)와 달리 화상형성장치(2)의 전원이 꺼져도 저장된 데이터가 소거되지 않는 메모리일 수 있다.
사용자 인터페이스부(30)는 키보드, 마우스, 하드웨어 버튼, GUI의 소프트 키보드와 같은 터치 스크린, 또는 음성 인식 장치 등의 정보 입력 장치를 사용하여 사용자로부터 정보를 입력받는다. 또한, 사용자 인터페이스부(30)는 시각 정보를 표시하기 위한 장치(예를 들어, LCD 화면, LED 화면, 눈금 표시 장치 등) 또는 청각 정보를 제공하기 위한 장치(예를 들어, 스피커 등) 등을 이용하여 화상형성장치(2)에서 처리되는 정보를 사용자에게 보고한다.
네트워크 인터페이스부(40)는 화상형성장치(2)의 주변 기기, 외부의 다른 디바이스 또는 네트워크 등과 통신한다. 예를 들어, 화상형성장치(2)는 네트워크 인터페이스부(40)를 통해 WIFI, Bluetooth 기능 등을 구비한 장치들과 통신하거나, 네트워크에 접속하거나, 또는 USB(Universal Serial Bus)와 같은 주변 기기들과 통신한다.
화상형성장치(2)는 전원이 인가된 경우 프로세서(10) 및 메모리부(20) 등의 내부 구성 요소들을 이용하여 자동적으로 부팅된다. 나아가서, 본 실시예에 따른 화상형성장치(2)는 부트 이미지(boot image)를 이용하여 빠른 부팅(fast booting)이 수행되거나, 부트 이미지를 생성하는 과정을 거치면서 부팅이 수행될 수 있다.
여기서, 부트 이미지(boot image)란 부트 이미지가 생성된 특정 시점의 시스템 상태로 복원하면서 화상형성장치(2)를 부팅시키기 위하여 필요한 모든 정보를 포함하는 데이터로서, 하나의 파일로써 생성될 수 있다. 보다 상세하게 설명하면, 부트 이미지는 화상형성장치(2)의 부팅 초기의 시스템 상태에 필요한 정보를 나타내는, 휘발성 메모리의 데이터 및 CPU 레지스터의 데이터를 포함하는 이미지이다. 본 실시예에 따른 부트 이미지는 다른 용어로써 스냅샷 이미지(snapshot image)로도 호칭될 수 있다.
도 2는 본 발명의 일 실시예에 따른 화상형성장치(2)의 전체 부팅 방법을 나타내는 흐름도이다. 도 2를 참고하면, 도 2의 흐름도에 따른 전체 부팅 방법은 도 1b에 도시된 화상형성장치(2)에서 수행되는 부팅 방법이다.
201 단계에서, 프로세서(10)는 화상형성장치(2)에 전원이 인가된 경우 부트로더(bootloader)를 초기화함으로써 화상형성장치(2)의 부팅을 시작한다.
202 단계에서, 프로세서(10)는 화상형성장치(2)의 기존의 하드웨어(H/W) 설정과 변경된 부분이 있는지 여부를 판단한다. 예를 들어, 프로세서(10)는 화상형성장치(2)의 스캐닝부, 팩스부 등과 같은 하드웨어(H/W)의 설정에 변경된 부분이 있는지를 판단한다.
203 단계에서, 프로세서(10)는 202 단계에서 하드웨어(H/W) 설정이 변경되지 않았다고 판단된 경우 화상형성장치(2)의 운영체계(OS)를 초기화한다.
204 단계에서, 프로세서(10)는 비휘발성 메모리(220)에 저장된 파일시스템(filesystem)을 검사하고 복구한다. 만약, 파일시스템에 문제가 있다고 검사된 경우, 프로세서(10)는 문제가 있는 파일시스템에 대해 정상적인 파일시스템의 상태로 복구한다.
205 단계에서, 프로세서(10)는 비휘발성 메모리(220)에 부트 이미지가 저장되어 있는지 여부를 판단한다.
206 단계에서, 프로세서(10)는 205 단계에서 부트 이미지가 저장되어 있다고 판단된 경우 저장된 부트 이미지에 에러가 있는지 여부를 검사한다.
207 단계에서, 프로세서(10)는 206 단계에서 저장된 부트 이미지에 에러가 없는 것으로 검사된 경우 비휘발성 메모리(220)에 저장된 부트 이미지를 휘발성 메모리(210)로 로딩한다.
208 단계에서, 프로세서(10)는 로드된 부트 이미지에 기초하여 화상형성장치(2)를 부트 이미지에 포함된 시스템 상태로 복원하여 부팅한다.
209 단계에서, 프로세서(10)는 화상형성장치(2)의 부팅을 완료한다.
210 단계에서, 프로세서(10)는 206 단계에서 저장된 부트 이미지에 에러가 있는 것으로 검사된 경우 저장된 부트 이미지를 복구한다. 저장된 부트 이미지의 복구가 완료된 후, 프로세서(10)는 201 단계의 방법부터 다시 수행한다.
211 단계에서, 프로세서(10)는 202 단계에서 하드웨어(H/W) 설정이 변경된 경우 화상형성장치(2)의 부팅 모드를 판단한다. 여기서, 부팅 모드는 정상 부팅(normal booting) 및 부트 이미지 생성 모드 중 어느 하나이다. 정상 부팅은 일반적으로 사용되는 콜드 부팅(cold booting)을 의미한다.
이 때, 사용자 인터페이스부(30)는 사용자에게 부팅 모드에 대한 선택 화면을 표시하고, 사용자로부터 부팅 모드에 대한 선택을 입력받을 수 있다. 이와 같이, 사용자 인터페이스부(30)를 통해 사용자로부터 부팅 모드에 대한 선택을 입력받은 경우, 화상형성장치(2)는 입력된 부팅 모드에 기초하여 부팅 모드를 판단한다. 또한, 다른 실시예에 따라서는 화상형성장치(2)와 네트워크로 연결된 외부의 다른 디바이스와 네트워크 인터페이스부(40)를 통해 통신함으로써 부팅 모드에 대한 선택을 입력받을 수 있다.
212 단계에서, 프로세서(10)는 211 단계에서 부팅 모드가 부트 이미지 생성 모드로 판단된 경우 부트 이미지를 생성한다.
213 단계에서, 프로세서(10)는 화상형성장치(2)의 상태 등에 따라 시스템 재부팅(system reboot)이 필요한지 여부를 판단한다. 프로세서(10)는 재부팅이 필요한 것으로 판단된 경우 재부팅 후 201 단계의 방법부터 다시 수행한다.
214 단계에서, 프로세서(10)는 212 단계에서 시스템 재부팅이 필요 없는 것으로 판단된 경우 부트 이미지를 다시 로딩하여야 하는지 여부를 판단한다. 프로세서(10)는 부트 이미지를 다시 로딩하여야 하는 것으로 판단된 경우 203 단계의 방법부터 다시 수행한다. 그러나, 부트 이미지를 다시 로딩하지 않아도 되는 것으로 판단된 경우, 209 단계로 진행되어 화상형성장치(2)의 부팅은 완료된다.
215 단계에서, 프로세서(10)는 211 단계에서 부팅 모드가 정상 부팅(normal booting)으로 판단된 경우 운영체계(OS)를 초기화한다. 그리고, 209 단계로 진행되어 화상형성장치(2)의 부팅은 완료된다.
결국, 도 2에 따르면 화상형성장치(2)는 부팅이 시작된 경우 207 단계 내지 208 단계에 따른 빠른 부팅(fast booting), 212 단계에 따른 부트 이미지 생성 모드, 215 단계에 따른 정상 부팅(normal booting)의 세 가지 부팅 모드 중 어느 하나로 진행된다.
이하에서는 빠른 부팅을 위한 부트 이미지 생성 모드에 따라 부트 이미지를 생성하는 과정과, 빠른 부팅을 수행하는 과정에 대하여 보다 상세하게 설명하도록 하겠다.
도 3은 본 발명의 일 실시예에 따른 부트 이미지를 생성하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 3을 참고하면, 화상형성장치(2)는 도 1b에 도시된 바와 같이 프로세서(10) 및 메모리부(20)를 포함한다. 그러나, 본 실시예의 설명의 편의를 위하여 다른 구성 요소들은 생략하여 도시하였다. 또한, 도 3에는 도 1c에 도시된 프로세서(10)의 구성 요소들 중 본 실시예와 관련된 구성 요소들만 도시되었음을 당해 기술분야에서 통상의 지식을 가진 자라면 알 수 있다.
프로세서(10)는 제어부(110), 부트 이미지 생성부(120) 및 스와핑부(130)를 포함한다. 그리고, 메모리부(20)는 도 1b에서 설명한 바와 같이, 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함한다.
도 4는 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 흐름도이다. 도 4를 참고하면, 부트 이미지 생성 방법은 도 3의 화상형성장치(2)에서 시계열적으로 수행되는 방법이다. 따라서, 이하에서는 도 3 및 4를 연계하여 부트 이미지를 생성하는 방법을 설명하도록 하겠다.
401 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS) 및 적어도 하나의 응용 프로그램을 초기화한다.
402 단계에서, 제어부(110)는 초기화가 완료된 상태에서 실행되는 프로세스들 중 운영체계 및 응용 프로그램의 실행에 사용되지 않는 프로세스를 종료한다.
403 단계에서, 제어부(110)는 화상형성장치(2)에서 실행 중인 프로세스들을 정지(suspend)한다.
404 단계에서, 부트 이미지 생성부(120)는 실행 중인 프로세스들이 정지된 동안 휘발성 메모리(210)에 저장된 시스템 상태에 대한 정보에 기초하여 부트 이미지를 생성한다. 이 때, 스와핑부(130)는 생성된 부트 이미지를 비휘발성 메모리(220)에 저장한다.
도 5는 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지를 생성하는 방법의 상세 흐름도이다. 도 5에 도시된 부트 이미지 생성 방법은 도 4에 도시된 부트 이미지 생성 방법을 보다 상세하게 도시한 흐름도에 해당된다.
501 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS) 및 적어도 하나의 응용 프로그램을 초기화한다. 여기서, 초기화되는 응용 프로그램은 운영체계(OS) 외에, 시스템을 동작시킬 수 있는 응용 프로그램을 의미한다. 화상형성장치(2)의 경우, 복사, 인쇄, 스캔, 팩스, 주소록(Address Book), 다큐먼트 박스(Document Box) 등과 관련된 적어도 하나의 응용 프로그램이 초기화된다. 이 때, 응용 프로그램의 초기화 과정에서 응용 프로그램의 데이터 및 스레드(thread)가 생성된다. 그리고, 응용 프로그램의 초기화 과정에서, 필요한 정보들이 파일, DB, 네트워크 소켓(network socket)으로부터 휘발성 메모리(210)로 로딩된다.
예를 들어, Java와 같은 미들웨어(middleware)가 사용될 경우에는 시스템 사용에 필요한 클래스들(class)도 함께 초기화된다. 하지만, Java와 같이 첫 단계의 수행 속도가 느린 시스템인 경우에는 속도가 느린 초기 단계의 중요 기능들을 초기화시켜 부트 이미지에 저장함으로써, 빠른 부팅 이후의 Java의 부팅 속도를 빠르게 할 수 있다. 왜냐하면, Java의 경우에는 interpreting 기반의 미들웨어로써 첫 번째 코드 수행 시 interpreting과 컴파일(compile)이 함께 수행된다. 다음 코드들의 수행부터는 이미 컴파일이 완료되었기 때문에 수행 속도가 빨라진다.
제어부(110)는 초기화가 완료된 것을 판단하기 위하여 운영체계(OS), 응용 프로그램 각각으로부터 완료 여부를 수신하여 판단할 수 있다.
502 단계에서, 제어부(110)는 USB, Bluetooth 장치 등과 같은 주변 장치(peripheral device)를 모두 정지(suspend)시킨다. 여기서, 주변 장치를 정지시키는 이유는 추후에 부트 이미지를 이용한 빠른 부팅시 추가적인 초기화를 방지하여 부팅 속도를 빠르게 하기 위함이다. 정지될 주변 장치는 예를 들어, 이더넷(ethernet)과 같은 네트워크 장치, USB 장치 등일 수 있다. 또한, 화상형성장치(1)의 경우, 팩스, 스캐너, 프린터 등과 같은 장치가 정지될 수 있다. 또한, 제어부(110)는 화상형성장치(2)의 PCI(peripheral component interconnect) 상태 정보를 저장한다.
503 단계에서, 제어부(110)는 동작 중인 드라이버(driver)들 중 주변 장치의 정지로 인해 불필요한 장치 드라이버(device driver)를 종료한다.
504 단계에서, 제어부(110)는 초기화된 응용 프로그램들 중 부트 이미지에 저장하고자 하는 응용 프로그램의 프로세스(process)를 정지한다. 이는 부트 이미지가 생성되는 동안 응용 프로그램의 프로세스가 진행될 경우에 발생되는 오동작을 방지하기 위함이다.
505 단계에서, 제어부(110)는 운영체계(OS) 및 응용 프로그램의 초기화가 완료된 상태에서 실행되는 프로세스들 중 운영체계 및 응용 프로그램의 실행에 사용되지 않는 프로세스를 종료한다. 예를 들어, 리눅스 운영체계(Linux OS)의 경우 제어부(110)는 samba, ssh, telnet 등의 프로세스를 종료한다. 이와 같이 프로세스를 종료시키는 이유 중 하나는 생성될 부트 이미지의 사이즈를 줄이기 위함이다. 또한, 파일(file)을 사용하는 프로세스의 경우에는 파일(file)이 열린(open) 정보가 그대로 저장되게 되므로, 부트 이미지를 이용한 빠른 부팅 시 이와 같은 프로세스가 잘못된 파일(file) 정보를 참조하지 않게 하기 위함이다. 화상형성장치(2)의 경우, 펌웨어 업데이트(F/W udpate)를 담당하는 프로세스나 개발용 로그를 저장하는 프로세스 등이 종료될 수 있다.
또한, 제어부(110)는 부트 이미지를 생성하는 작업에 사용되지 않는 다른 프로세스도 종료할 수 있다. 나아가서, 제어부(110)는 운영체계(OS) 및 응용 프로그램의 초기화가 완료된 상태에서 실행되는 프로세스들 중 수행 시간이 소정 임계값 이하인 프로세스도 함께 종료할 수 있다. 여기서, 소정 임계값은 사용자의 설정에 따라 변경될 수 있다.
506 단계에서, 제어부(110)는 종료된 프로세스에서 사용된 파일시스템(filesystem) 및 부트 이미지를 생성하는 작업(job)에 사용되지 않는 파일시스템 중 적어도 하나를 언마운트(unmount)한다. 바꾸어 말하면, 제어부(110)는 동작 중인 프로세스들이 사용하고 있지 않는 파일시스템들을 모두 언마운트한다. 화상형성장치(2)의 경우에는, 사용자(User) 정보, 계정(Account) 정보, 히스토리(history) 정보 등이 사용되고 있는 경우 모두 언마운트함으로써, 부트 이미지가 저장될 때 파일시스템을 안전하게 유지시킨다.
507 단계에서, 제어부(110)는 비휘발성 메모리(220)에서 부트 이미지가 저장될 공간을 초기화한다. 예를 들어, 제어부(110)는 비휘발성 메모리(220)의 특정 파티션 등에 저장될 수 있도록 특정 파티션을 초기화할 수 있다. 보다 상세하게 설명하면, 제어부(110)는 비휘발성 메모리(220)에서 사용이 이미 끝난 메모리 공간이지만 소거(free)하지 않고 유지하고 있는 메모리 공간을 의미한다. 특히, Java와 같은 미들웨어(middleware)를 사용할 경우에는 비휘발성 메모리(220)에 있는 불필요한 데이터를 가비지 콜렉션(Garbage collection)을 이용하여 제거할 수 있다. 이와 같이, 제어부(110)가 부트 이미지가 저장될 공간을 초기화하면, 이후에 빠른 부팅시 보다 많은 메모리 공간을 확보하여 동작시킬 수 있다. 따라서, 여유로운 메모리 공간이 미리 확보될 수 있으므로, 추가적으로 가비지 콜렉션(Garbage collection)을 수행하지 않고도 메모리 공간을 확보할 수 있으므로, 시스템 성능 저하를 방지할 수 있다.
제어부(110)는 비휘발성 메모리(220)를 여러 개의 파티션들로 초기화한다. 이와 같이, 복수의 파티션들로 나누는 이유는, 만약 하나의 파티션만이 존재한다면 부트 이미지가 생성될 때 파일시스템의 모든 정보가 부트 이미지에 저장될 수 있다. 이는, 이후에 부트 이미지에 저장된 파일과 파일시스템의 파일 정보가 일치하지 않게 되는 문제의 원인이 될 수 있다. 제어부(110)는 변경될 수 없는 데이터와 변경 가능한 데이터를 별도의 파티션에 저장한다. 화상형성장치(2)의 경우, 변경될 수 없는 데이터는 일반적인 운영체계(OS) 및 펌웨어(F/W) 데이터에 해당될 수 있다. 또한, 화상형성장치(2)의 경우 변경 가능한 데이터는 작업(Job) 히스토리 정보, 계정(account) 정보, 사용자 주소록 등과 같은 데이터와, IP address 등과 같이 사용자에 의해서 변경 가능한 운영체계(OS) 데이터가 포함된다.
508 단계에서, 제어부(110)는 화상형성장치(2)에서 실행 중인 모든 프로세스들을 정지(suspend)한다.
509 단계에서, 부트 이미지 생성부(120)는 실행 중인 프로세스들이 정지된 동안 휘발성 메모리(210)에 저장된 시스템 상태에 대한 정보에 기초하여 부트 이미지를 생성한다. 보다 상세하게 설명하면, 508 단계를 통해 모든 프로세스들이 멈추게 되면, 제어부(110)는 부트 이미지를 생성하기 위한 사전 단계로써 비휘발성 메모리(220)의 부트 이미지의 저장 공간에 헤더(header) 정보를 저장한다. 이와 같이 부트 이미지의 생성 준비가 완료되면, 부트 이미지 생성부(120)는 시스템 상태에 대한 정보를 저장하고 있는 휘발성 메모리(210)의 모든 데이터, CPU(프로세서(10)) 레지스터 값들 및 CPU 캐쉬 정보들에 기초하여 부트 이미지를 생성한다.
즉, 부트 이미지에 포함된 시스템 상태에 대한 정보는 실행 중인 프로세스들이 정지된 상태에서 화상형성장치(2)의 부팅에 필요한 정보를 나타내는, 휘발성 메모리(210)의 데이터 및 CPU(프로세서(10)) 레지스터의 데이터를 포함한다.
510 단계에서, 스와핑부(130)는 생성된 부트 이미지를 비휘발성 메모리(220)에 저장한다. 스와핑부(130)는 비휘발성 메모리(220)의 특정 파일에 또는 특정 파티션에, 생성된 부트 이미지를 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 파일시스템의 속성이 변경되는 과정을 도시한 상세 흐름도이다. 도 6을 참고하면, 도 6에는 파일시스템이 언마운트되는 도 5의 506 단계의 상세 흐름도도 함께 도시되어 있다.
601 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS)를 초기화한다.
602 단계에서, 제어부(110)는 운영체계의 초기화가 완료된 상태에서, 적어도 하나의 파일시스템(filesystem)의 속성을 읽기/쓰기 전용(read/write)의 상태로 변경시킨다.
예를 들어, 제어부(110)는 일 실시예에 따라, 모든 파일시스템의 속성을 읽기/쓰기 전용(read/write)의 상태로 변경시킨다. 이후에 제어부(110)는 아래의 604 단계에서 모든 파일시스템을 언마운트한다. 이와 같이 모든 파일시스템의 속성을 읽기/쓰기 전용(read/write)의 상태로 변경시킨 후 모든 파일시스템을 언마운트하는 이유는, 추후에 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 다를 경우를 방지하기 위함이다.
이에 따라, 생성될 부트 이미지에는 어떠한 파일시스템에 대한 정보도 저장되지 않을 수 있다. 따라서, 부트 이미지를 이용한 빠른 부팅을 수행하는 경우 파일시스템이 다시 마운트(mount) 되어 새롭게 파일시스템에 대한 정보가 운영체계(OS)에 로딩(loading)된다.
하지만, 다른 일 실시예에 따르면, 예를 들어 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 달라질 수 없는 파일시스템에 대해서는 읽기/쓰기 전용(read/write)의 상태로 변경시키지 않거나, 언마운트하지 않을 수 있다.
603 단계에서, 제어부(110)는 적어도 하나의 응용 프로그램을 초기화한다.
604 단계에서, 제어부(110)는 읽기/쓰기 전용(read/write)의 속성으로 변경된 상태를 이용하여 상기 파일시스템을 언마운트한다. 이 때, 제어부(110)는 파일시스템을 언마운트하기 전에 운영체계 및 응용 프로그램이 열고(open) 있는 모든 file/Socket/Database 등을 우선 닫는다(close). 이와 같이 file/Socket/Database 를 닫는(close) 이유는 열려진(open) file/Socket/Database 때문에 정상적으로 언마운트할 수 없는 경우를 방지하고, 파일시스템을 안전하게 보호하기 위함이다. 이에 대해서는 이하의 도 7에서 보다 상세하게 설명하도록 하겠다. 파일시스템이 언마운트되면, 운영체계(OS) 및 응용 프로그램이 열고 있는 파일시스템에 대한 정보가 모두 삭제되게 되므로, 파일시스템은 없는 것으로 간주된 상태로 부트 이미지에 저장된다.
605 단계에서, 부트 이미지 생성부(120)는 부트 이미지를 생성한다.
606 단계에서, 제어부(110)는 부트 이미지의 생성이 완료된 경우, 읽기/쓰기 전용(read/write)의 속성으로 변경된 파일시스템 중 운영체계(OS)에 대한 파일시스템의 속성을 읽기 전용(read only) 상태로 변경시킨다.
607 단계에서, 제어부(110)는 운영체계(OS) 및 응용 프로그램에서 사용되는 파일시스템들과 그 밖의 프로세스들에서 사용되는 파일시스템들을 마운트(mount)한다.
부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 다를 수 있는 경우가 발생될 수 있다고 앞서 설명하였다. 이에 대해서는 이하의 도 7을 참고하여 설명하도록 하겠다.
도 7은 본 발명의 일 실시예에 따라 부트 이미지에 저장된 파일시스템의 정보와 비휘발성 메모리(220)에 실제로 저장된 파일시스템의 정보가 다를 수 있는 경우를 설명하는 도면이다.
도 7을 참고하면, 부트 이미지가 생성될 당시에 휘발성 메모리(210)에는 File A가 저장되어 있으므로, 부트 이미지에는 File A가 저장된다. 이후에, 사용자가 응용 프로그램을 사용하면서 File A를 삭제하고 File B를 사용한 경우 비휘발성 메모리(220)에는 File A 대신에 File B가 저장된다. 차후 사용자가 부트 이미지를 이용한 빠른 부팅을 할 경우 부트 이미지에는 File A가 저장되어 있는바, 응용 프로그램은 비휘발성 메모리(220)로부터 File A를 읽으려고(read) 한다. 하지만, 비휘발성 메모리(220)에는 File A 대신에 File B가 저장되어 있다. 따라서, 응용 프로그램은 File A를 읽을 수 없어 오동작을 하게 된다.
그러므로, 이와 같은 오동작을 방지하기 위해서는 부트 이미지 생성 전에 모든 파일시스템들 또는 적어도 하나의 특정 파일시스템을 언마운트하여야 한다.
도 8은 본 발명의 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다. 도 8을 참고하면, 앞서 도 5의 501 단계의 응용 프로그램이 초기화되는 과정에 대한 상세 흐름도이다.
801 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS)를 초기화한다.
802 단계에서, 제어부(110)는 운영체계(OS)가 초기화되면 화상형성장치(2)에 설치된 적어도 하나의 응용 프로그램을 실행한다.
803 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인지 정상 부팅(normal booting)인지 판단한다. 부팅 모드가 부트 이미지 생성 모드인 경우 804 단계로 진행되고, 부팅 모드가 정상 부팅인 경우 806 단계로 진행된다.
804 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 실행된 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화함으로써, 실행된 응용 프로그램을 초기화한다. 즉, 제어부(110)는 마치 콜드 부팅(cold booting)과 같은 정상 부팅시에 초기화되는 것처럼 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화한다.
805 단계에서, 부트 이미지 생성부(120)는 초기화된 응용 프로그램을 이용하여 부트 이미지를 생성한다.
806 단계에서, 제어부(110)는 부팅 모드가 정상 부팅인 경우 실행된 응용 프로그램을 초기화한다.
807 단계에서, 제어부(110)는 화상형성장치(2)의 정상 부팅을 완료한다.
이와 같이 도 8에 따르면, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 부트 이미지가 생성되기 전에 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화한다.
그러나, 이후에 부트 이미지를 이용한 빠른 부팅을 수행할 경우에는 응용 프로그램의 가변 정보를 재초기화하는 과정이 수행된다. 여기서, 가변 정보는 사용자가 응용 프로그램을 사용하면서 사용자에 의해 변경될 수 있는 데이터 및 스레드를 포함하는 정보를 의미한다. 화상형성장치(2)의 경우, 가변 정보는 작업 히스토리(Job history) 정보, 사용자별 계정(account) 정보, 사용자가 설정한 시스템 옵션, 사용자가 저장한 문서들이 포함된다. 이와 같은 가변 정보는 부트 이미지의 생성 이후에 사용자에 의해 변경되는 정보들로써 빠른 부팅 이후에 재초기화되어야 한다. 즉, 가변 정보는 빠른 부팅 이후 비활성 메모리(220)로부터 다시 독출됨으로써(read-out), 부트 이미지에 저장된 정보가 재초기화된다. 그러나, 만약 재초기화되지 않는다면, 부트 이미지에 저장된 정보가 그대로 사용되게 되어 충돌이 발생될 수 있다. 하지만, 이와 같은 가변 정보에 대해서는 초기화가 두 번 수행될 수 있는바, 불필요한 시간이 낭비될 수 있다.
도 9는 본 발명의 다른 일 실시예에 따라 응용 프로그램을 초기화하는 과정을 도시한 상세 흐름도이다. 도 9를 참고하면, 도 8과 마찬가지로 앞서 도 5의 501 단계의 응용 프로그램이 초기화되는 과정에 대한 상세 흐름도이다. 도 9는 도 8과 비교할 때, 응용 프로그램의 모든 데이터 및 스레드(thread)를 초기화하지 않는다.
901 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 설치된 운영체계(OS)를 초기화한다.
902 단계에서, 제어부(110)는 운영체계(OS)가 초기화되면 화상형성장치(2)에 설치된 적어도 하나의 응용 프로그램을 실행한다.
903 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인지 정상 부팅(normal booting)인지 판단한다. 부팅 모드가 부트 이미지 생성 모드인 경우 904 단계로 진행되고, 부팅 모드가 정상 부팅인 경우 906 단계로 진행된다.
904 단계에서, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 실행된 응용 프로그램에 대한 데이터 및 스레드(thread) 중 사용자에 의해 변경될 수 없는 데이터 및 스레드를 선택적으로 초기화함으로써, 실행된 응용 프로그램을 초기화한다.
905 단계에서, 부트 이미지 생성부(120)는 초기화된 응용 프로그램을 이용하여 부트 이미지를 생성한다.
906 단계에서, 제어부(110)는 부팅 모드가 정상 부팅인 경우 실행된 응용 프로그램을 초기화한다.
907 단계에서, 제어부(110)는 화상형성장치(2)의 정상 부팅을 완료한다.
이와 같이 도 9에 따르면, 제어부(110)는 부팅 모드가 부트 이미지 생성 모드인 경우 부트 이미지가 생성되기 전에 선택적으로 응용 프로그램의 데이터 및 스레드(thread)를 초기화함으로써 가변 정보가 두 번 초기화되지 않을 수 있다. 즉, 가변 정보는 부트 이미지 생성을 위해서는 초기화되지 않고 빠른 부팅시에만 초기화되기 때문에 부트 이미지를 생성하는 시간을 줄일 수 있다.
다시 도 1b를 참고하면, 사용자 인터페이스부(30)는 정보 입력 장치를 사용하여 사용자로부터 정보를 입력받거나, 화상형성장치(2)에서 처리되는 정보를 사용자에게 보고한다.
도 10은 본 발명의 일 실시예에 따라 사용자 인터페이스부(30)에 표시된 부팅 모드를 선택하는 화면을 도시한 도면이다. 앞서 설명한 바와 같이, 부팅 모드는 빠른 부팅(fast booting), 정상 부팅(normal booting) 및 부트 이미지 생성 모드를 포함한다. 사용자는 사용자 인터페이스부(30)를 통해 도 10과 같은 화면에서 부팅 모드를 선택할 수 있다.
도 11은 본 발명의 일 실시예에 따라 부트 이미지 생성 모드에 따라 부트 이미지가 생성될 때 사용자 인터페이스부(30)에 표시되는 화면을 도시한 도면이다. 도 11을 참고하면, 부트 이미지를 생성하는 진행 상황에 대해 도시되어 있다. 특히, 진행 상황은 백분율과 같은 숫자(10) 또는 그래프(20) 등의 다양한 형태로 표시될 수 있다. 나아가서, 사용자에게 필요한 메세지(30)도 함께 표시될 수 있다.
이와 같은 도 10 및 11의 화면 구성은 일 실시예에 해당될 뿐, 다른 형태로 변경될 수 있음을 당해 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
이제까지, 화상형성장치(2)에서 부트 이미지를 생성하는 과정에 대해 살펴보았다. 이하에서는 화상형성장치(2)에서 생성된 부트 이미지를 이용하여 빠른 부팅을 수행하는 과정에 대해 살펴보도록 하겠다.
도 12는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 빠른 부팅을 수행하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 12를 참고하면, 화상형성장치(2)는 도 1b에 도시된 바와 같이 프로세서(10) 및 메모리부(20)를 포함한다. 그러나, 본 실시예의 설명의 편의를 위하여 다른 구성 요소들은 생략하여 도시하였다. 또한, 도 12에는 도 1c에 도시된 프로세서(10)의 구성 요소들 중 본 실시예와 관련된 구성 요소들만 도시되었음을 당해 기술분야에서 통상의 지식을 가진 자라면 알 수 있다.
프로세서(10)는 부팅부(140) 및 로딩부(150)를 포함한다. 그리고, 메모리부(20)는 도 1b에서 설명한 바와 같이, 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함한다.
도 13은 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치(2)의 빠른 부팅을 수행하는 방법의 흐름도이다. 도 13을 참고하면, 부트 이미지를 이용한 빠른 부팅 방법은 도 12의 화상형성장치(2)에서 시계열적으로 수행되는 방법이다. 따라서, 이하에서는 도 12 및 13을 연계하여 부트 이미지를 이용한 빠른 부팅 방법을 설명하도록 하겠다.
1301 단계에서, 부팅부(140)는 화상형성장치(2)의 전원이 인가된 경우 화상형성장치(2)의 부팅을 시작한다. 즉, 부팅부(140)는 부트로더를 초기화한다.
1302 단계에서, 로딩부(150)는 화상형성장치(2)에 미리 저장된 부트 이미지를 로드한다. 여기서, 부트 이미지는 앞서 설명된 부트 이미지에 해당된다. 보다 상세하게 설명하면, 1301 단계의 부팅이 시작되기 전에 미리 저장된, 화상형성장치(2)에 설치된 운영체계(OS) 및 적어도 하나의 응용 프로그램의 초기화가 완료된 상태에서 실행되는 프로세스들 중 운영체계 및 응용 프로그램의 실행에 사용되지 않는 프로세스가 종료된 후 화상형성장치(2)에서 실행 중인 프로세스들이 정지된 동안의 시스템 상태에 대한 정보가 포함된 부트 이미지이다.
1303 단계에서, 부팅부(140)는 로드된 부트 이미지에 기초하여 화상형성장치(2)를 부트 이미지에 포함된 시스템 상태로 복원한다.
도 14는 본 발명의 일 실시예에 따른 부트 이미지를 이용하여 화상형성장치(2)의 빠른 부팅을 수행하는 방법의 상세 흐름도이다. 도 14에 도시된 빠른 부팅 방법은 도 13에 도시된 빠른 부팅 방법을 보다 상세하게 도시한 흐름도에 해당된다.
1401 단계에서, 부팅부(140)는 부팅 모드가 부트 이미지를 이용한 빠른 부팅인 경우 현재 화상형성장치(2)에서 동작 중인 프로세스들을 정지(suspend)한다.
1402 단계에서, 부팅부(140)는 프로세스들의 정지가 완료된 경우 화상형성장치(2)가 정지되도록 제어한다. 화상형성장치(2)가 정지되면, 화상형성장치(2)의 네트워크 장치와 USB 장치와 같은 주변 장치들도 함께 정지된다. 또한, 화상형성장치(2)의 프린팅부, 팩스부 등과 같은 내부 장치들도 함께 정지될 수 있다.
이와 같이 1401 단계에서 프로세스들을 정지시키고 1402 단계에서 화상형성장치(2)를 정지시키는 이유는, 부트 이미지를 로드하기 위한 준비 과정들에 해당된다.
1403 단계에서, 로딩부(150)는 비휘발성 메모리(220)에 미리 저장된 부트 이미지를 휘발성 메모리(210)로 로드한다.
1404 단계에서, 부팅부(140)는 로드된 부트 이미지에 기초하여 화상형성장치(2)를 부트 이미지에 포함된 시스템 상태로 복원한다.
1405 단계에서, 부팅부(140)는 정지된 프로세스들을 다시 실행하고, 화상형성장치(2)를 다시 구동한다.
1406 단계에서, 부팅부(140)는 운영체계(OS), 응용 프로그램 및 다시 실행된 프로세스들에서 사용되는 파일시스템들을 마운트(mount)한다. 예를 들어, 화상형성장치(2)에서 마운트되는 파일시스템들은 사용자 문서, 사용자 주소록, 임시 프린트 데이터, 스캔 이미지 데이터 등을 포함한다. 하지만, 이에 한정되지 않고 다른 사용자 정보들에 대한 파일시스템도 마운트될 수 있다.
1407 단계에서, 부팅부(140)는 추가적으로 필요한 프로세스들을 실행한다. 예를 들어, 리눅스 운영체계(Linux OS)의 경우 부팅부(140)는 samba 또는 ssh 등과 같은 프로세스들을 추가적으로 실행할 수 있다. 또한, 화상형성장치(2)의 펌웨어(F/W)를 업데이트하는 응용 프로그램의 프로세스, 사용자 및 개발 로그 등을 저장할 수 있는 프로그램의 프로세스, 사용자에 의해 직접 설치된 프로그램의 프로세스 등이 실행될 수 있다. 하지만, 추가적으로 실행할 프로세스가 없는 경우 부팅부(140)는 1407 단계를 생략할 수 있다.
1408 단계에서, 부팅부(140)는 화상형성장치(2)에 필요한 주변 장치를 구동하기 위한 장치 드라이버(device driver)를 실행한다. 예를 들어, 부팅부(140)는 USB 장치와 같은 주변 장치를 구동하기 위한 USB driver를 실행한다. 또한, 예를 들어 화상형성장치(2)의 프린팅부, 팩스부, 스캐닝부 등과 통신할 수 있는 드라이버를 실행한다.
1409 단계에서, 부팅부(140)는 1408 단계에서 실행된 장치 드라이버(device driver)에 따라 주변 장치를 구동한다. 즉, 앞서 설명한 바와 같이 부팅부(140)는 주변 장치와 통신하여 초기화 여부 및 동작 가능 상태를 확인하고 주변 장치를 구동한다. 예를 들어, 부팅부(140)는 화상형성장치(2)의 프린팅부, 팩스부, 스캐닝부 등을 구동한다.
1410 단계에서, 부팅부(140)는 부트 이미지에 초기화되어 저장된 응용 프로그램을 다시 실행한다.
1411 단계에서, 부팅부(140)는 응용 프로그램을 재초기화한다. 이 때, 부팅부(140)는 앞서 설명된 응용 프로그램의 가변 정보와 같이 사용자에 의해 변경될 수 있는 데이터 및 스레드(thread)를 초기화할 수 있다. 보다 상세하게 설명하면, 재초기화가 필요한 가변 정보는 사용자 및 시스템에 의해 변경이 일어나는 데이터들로, 예를 들어 히스토리 정보, 카운트(count) 정보, 옵션 정보 등을 포함한다. 화상형성장치(2)의 경우 가변 정보는 작업(Job) 히스토리 정보 및 사용자 사용 이력 정보, 토너(toner) 및 트레이(tray) 정보, 네트워크 설정 정보 등을 포함한다. 또한, 가변 정보는 사용자에 의해 변경된 응용 프로그램의 옵션 정보, 복사(copy) 기능에서 사용자에 의해 설정된 옵션 정보 등을 포함한다.
1412 단계에서, 부팅부(140)는 화상형성장치(2)의 빠른 부팅을 완료한다.
이제까지, 화상형성장치(2)에서 부트 이미지를 이용하여 빠른 부팅을 수행하는 과정에 대해 살펴보았다. 이와 같이 부트 이미지를 이용하여 빠른 부팅을 수행할 경우에는 정상 부팅과 달리 부트 이미지에 저장된 시스템 상태부터 부팅되므로, 화상형성장치(2)의 부팅 속도를 개선시킬 수 있다. 특히, 부팅 속도가 느린 미들웨어를 사용해야 하는 시스템의 경우 부팅 시간이 많이 걸린다. 예를 들어, Java와 같은 미들웨어를 사용하는 시스템은 C언어 기반의 시스템에 비하여 부팅 속도가 늦을 수 밖에 없다. 나아가서, Spring framework과 같은 프레임워크(framework)를 Java에서 사용할 경우에는 프로그램 개발 편의성 및 확장성을 제공해 줄 수 있지만, 부팅 속도가 현저히 느려질 수 있다. 본 실시예에 따라 생성된 부트 이미지를 이용하여 시스템을 부팅할 경우에는 아래의 표 1과 같이 부팅 속도 또는 부팅 시간이 개선될 수 있다.
표 1은 ARM CPU 800Mhz 및 512MB RAM을 가진 복합기(MFP)에서 정상 부팅과 빠른 부팅에서의 각각의 기능들의 활성화 시간을 비교한 표이다. 다만, 표 1의 시간은 본 실시예를 설명하기 위한 하나의 예시일 뿐, 본 실시예는 이에 한정되지 않는다.
구분 COPY 화면 표시 시점 Printing 가능 시점 전체 부팅 완료 시점
정상 부팅
(cold booting)
3분 40초 5분 30초 10분 20초
부트 이미지를 이용한 빠른 부팅 1분 10초 1분 10초 2분
다시 도 1b를 참고하면, 화상형성장치(2)에는 다양한 종류의 소프트웨어들이 미리 설치되어 있다. 예를 들어, 화상형성장치(2)에는 펌웨어(firmware), 운영체계(OS), 응용 프로그램 등이 설치되어 있다. 그리고, 이와 같은 소프트웨어들은 비휘발성 메모리(220)에 저장된다.
사용자는 화상형성장치(2)를 사용하는 과정에서 소프트웨어들을 변경할 경우가 있다. 예를 들어, 소프트웨어에 대한 변경 요청은 펌웨어의 업데이트에 대한 요청, 응용 프로그램의 설치에 대한 요청, 응용 프로그램의 업데이트에 대한 요청 및 응용 프로그램의 삭제에 대한 요청 중 적어도 하나일 수 있다.
이와 같은 변경 요청에 따라 소프트웨어가 변경되면, 부트 이미지를 업데이트하여야 할 경우가 있다. 예를 들어, 응용 프로그램을 실행할 때 설정에 사용되는 값들은 부트 이미지의 생성 후에 변경될 수 없는 경우가 있다. 또한, 변경된 소프트웨어에 대한 정보와 미리 저장된 부트 이미지에 포함된 소프트웨어에 대한 정보와 달라질 수 있어, 소프트웨어를 실행하는데 충돌이 발생될 경우가 있다. 이와 같은 경우에는 부트 이미지를 업데이트할 필요가 있다.
우선, 사용자에 의한 펌웨어 업데이트에 대한 요청이 있는 경우 부트 이미지를 업데이트하는 과정에 대해서는 이하에서 설명하도록 하겠다.
도 15는 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 15를 참고하면, 화상형성장치(2)는 도 1b에 도시된 바와 같이 프로세서(10) 및 메모리부(20)를 포함한다. 그러나, 본 실시예의 설명의 편의를 위하여 다른 구성 요소들은 생략하여 도시하였다. 또한, 도 15에는 도 1c에 도시된 프로세서(10)의 구성 요소들 중 본 실시예와 관련된 구성 요소들만 도시되었음을 당해 기술분야에서 통상의 지식을 가진 자라면 알 수 있다.
프로세서(10)는 제어부(110) 및 부트 이미지 생성부(120)를 포함한다.
도 16은 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 방법의 흐름도이다. 도 16을 참고하면, 부트 이미지 생성 방법은 도 15의 화상형성장치(2)에서 시계열적으로 수행되는 방법이다. 따라서, 이하에서는 도 15 및 16을 연계하여 부트 이미지를 업데이트하는 방법을 설명하도록 하겠다.
1601 단계에서, 제어부(110)는 화상형성장치(2)에 설치된 소프트웨어에 대한 변경 요청이 있는 경우, 화상형성장치(2)의 적어도 하나의 파일시스템의 속성을 변경한다.
1602 단계에서, 제어부(110)는 화상형성장치(2)에 저장된 부트 이미지를 삭제한다.
1603 단계에서, 제어부(110) 변경 요청에 따라 소프트웨어를 변경한다.
1604 단계에서, 부트 이미지 생성부(120)는 변경된 소프트웨어에 기초하여 부트 이미지를 재생성한다.
도 17a은 본 발명의 일 실시예에 따른 부트 이미지를 업데이트하는 방법의 상세 흐름도이다. 도 17a에 도시된 부트 이미지 업데이트 방법은 도 16에 도시된 부트 이미지 업데이트 방법을 보다 상세하게 도시한 흐름도에 해당된다. 도 17a은 펌웨어를 업데이트할 경우 펌웨어에 새로운 부트 이미지가 포함되지 않는 경우에 부트 이미지를 업데이트하는 과정에 대한 도면일 수 있다. 또한, 도 17a은 응용 프로그램의 설치, 업데이트, 또는 삭제시 부트 이미지를 업데이트하는 과정에 대한 도면일 수 있다.
1701 단계에서, 제어부(110)는 화상형성장치(2)에 설치된 소프트웨어에 대한 변경 요청이 있는지 여부를 판단한다. 제어부(110)는 판단 결과 설치된 소프트웨어에 대한 변경 요청이 없는 경우 부트 이미지를 업데이트하지 않는다.
1702 단계에서, 제어부(110)는 설치된 소프트웨어의 변경 요청이 있는 경우, 화상형성장치(2)의 적어도 하나의 파일시스템의 속성을 변경한다. 이 때, 제어부(110)는 읽기 전용(read only) 상태인 파일시스템의 속성을 읽기/쓰기(read/write) 상태로 변경한다.
1703 단계에서, 제어부(110)는 화상형성장치(2)의 비휘발성 메모리(220)에 미리 저장된 부트 이미지를 삭제한다.
1704 단계에서, 제어부(110)는 변경 요청에 따라 소프트웨어를 변경한다. 즉, 제어부(110)는 펌웨어를 업데이트하거나, 응용 프로그램을 설치, 업데이트 또는 삭제한다.
1705 단계에서, 제어부(110)는 소프트웨어의 변경이 완료된 경우 읽기/쓰기(read/write) 상태인 파일시스템의 속성을 읽기 전용(read only) 상태로 다시 변경한다.
1706 단계에서, 부트 이미지 생성부(120)는 변경된 소프트웨어에 기초하여 화상형성장치(2)를 재부팅함으로써 부트 이미지를 재생성한다. 여기서, 재생성하는 과정은 화상형성장치(2)의 부팅이 시작된 후 부트 이미지를 생성하는, 앞서 설명된 부트 이미지를 생성하는 과정을 이용한다. 따라서, 자세한 설명은 생략하도록 하겠다.
도 17b는 본 발명의 다른 일 실시예에 따른 부트 이미지를 업데이트하는 방법의 상세 흐름도이다. 도 17b에 도시된 부트 이미지 업데이트 방법은 도 16에 도시된 부트 이미지 업데이트 방법을 보다 상세하게 도시한 흐름도에 해당된다. 도 17b는 도 17a와 달리, 펌웨어를 업데이트할 경우 펌웨어에 새로운 부트 이미지가 포함되어 있는 경우에 부트 이미지를 업데이트하는 과정에 대한 도면일 수 있다.
1711 단계에서, 제어부(110)는 화상형성장치(2)에 설치된 소프트웨어에 대한 변경 요청이 있는지 여부를 판단한다. 제어부(110)는 판단 결과 설치된 소프트웨어에 대한 변경 요청이 없는 경우 부트 이미지를 업데이트하지 않는다.
1712 단계에서, 제어부(110)는 설치된 소프트웨어의 변경 요청이 있는 경우, 화상형성장치(2)의 적어도 하나의 파일시스템의 속성을 변경한다. 이 때, 제어부(110)는 읽기 전용(read only) 상태인 파일시스템의 속성을 읽기/쓰기(read/write) 상태로 변경한다.
1713 단계에서, 제어부(110)는 화상형성장치(2)의 비휘발성 메모리(220)에 미리 저장된 부트 이미지를 삭제한다.
1714 단계에서, 제어부(110)는 변경 요청에 따라 소프트웨어를 변경한다. 즉, 제어부(110)는 펌웨어를 업데이트한다.
1715 단계에서, 제어부(110)는 펌웨어와 같은 소프트웨어가 변경된 경우, 상기 변경된 소프트웨어에 부트 이미지가 저장되어 있는지 여부를 판단한다. 이 때, 펌웨어에는 다양한 형태의 부트 이미지가 저장되어 있을 수 있다. 예를 들어, 하나의 파일의 부트 이미지 파일 형태로 저장될 수 있다. 또는, 화상형성장치(2)에 기존에 저장된 부트 이미지와 공통적인 부분에 대한 부트 이미지만 제공되고 나머지 부분은 추후 빠른 부팅시 초기화되도록 제공될 수 있다.
만약, 변경된 펌웨어에 부트 이미지가 저장되지 않은 것으로 판단된 경우, 1717 단계로 바로 진행된다.
1716 단계에서, 제어부(110)는 변경된 펌웨어에 부트 이미지가 저장된 것으로 판단된 경우, 변경된 펌웨어에 저장된 부트 이미지를 비휘발성 메모리(220)로 복사한다.
1717 단계에서, 제어부(110)는 소프트웨어의 변경이 완료된 경우 읽기/쓰기(read/write) 상태인 파일시스템의 속성을 읽기 전용(read only) 상태로 다시 변경한다.
1718 단계에서, 부트 이미지 생성부(120)는 화상형성장치(2)의 재부팅후 복사된 부트 이미지에 기초하여 부트 이미지를 재생성한다. 여기서, 1718 단계에서의 부트 이미지의 재생성은 복사된 부트 이미지를 화상형성장치(2)의 새로운 부트 이미지로써 설치하는 것을 의미한다.
다시 도 2를 참고하면, 프로세서(10)는 부트 이미지에 에러가 있는지 여부를 검사하고(206 단계), 부트 이미지에 에러가 있는 것으로 검사된 경우 부트 이미지를 복구한다(210 단계). 이와 같은 과정에 대해 보다 상세하게 설명하면, 이하와 같다.
도 18은 본 발명의 일 실시예에 따른 부트 이미지의 에러를 복구하는 프로세서(10)를 포함하는 화상형성장치(2)의 구성도이다. 도 18을 참고하면, 화상형성장치(2)는 도 1b에 도시된 바와 같이 프로세서(10) 및 메모리부(20)를 포함한다. 그러나, 본 실시예의 설명의 편의를 위하여 다른 구성 요소들은 생략하여 도시하였다. 또한, 도 18에는 도 1c에 도시된 프로세서(10)의 구성 요소들 중 본 실시예와 관련된 구성 요소들만 도시되었음을 당해 기술분야에서 통상의 지식을 가진 자라면 알 수 있다.
프로세서(10)는 제어부(110), 부트 이미지 생성부(120) 및 부팅부(140)를 포함한다.
도 19는 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법의 흐름도이다. 도 19를 참고하면, 부트 이미지의 에러 복구 방법은 도 18의 화상형성장치(2)에서 시계열적으로 수행되는 방법이다. 따라서, 이하에서는 도 18 및 19를 연계하여 부트 이미지의 에러 복구 방법을 설명하도록 하겠다.
1901 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 저장된 제 1 부트 이미지에 에러가 있는 경우 제 1 부트 이미지를 삭제한다. 여기서, 제 1 부트 이미지란 현재 화상형성장치(2)의 부팅이 시작되기 이전의 시점에 생성되어 화상형성장치(2)에 미리 저장된 부트 이미지를 의미한다.
1902 단계에서, 제어부(110)는 에러를 복구하기 위한 복구 모드를 결정한다. 여기서, 복구 모드는 부트 이미지 생성 모드, 백업 부트 이미지 대체 모드 및 정상 부팅 전환 모드 중 적어도 하나를 포함한다.
1903 단계에서, 제어부(110)는 결정된 복구 모드에 따라 제 1 부트 이미지가 백업된 제 2 부트 이미지로 대체하거나 부트 이미지 생성부(120)가 제 3 부트 이미지를 생성하도록 제어하여 에러를 복구한다.
1904 단계에서, 부팅부(120)는 대체된 제 2 부트 이미지 또는 생성된 제 3 부트 이미지를 이용하여 빠른 부팅을 수행한다.
제 1, 2 및 3 부트 이미지는 앞서 도 2, 3, 4 및 5 등에서 설명된 부트 이미지로써, 화상형성장치(2)의 부팅 초기의 시스템 상태에 필요한 정보를 나타내는 휘발성 메모리의 데이터 및 CPU 레지스터의 데이터가 포함된 이미지를 의미한다.
도 20은 본 발명의 일 실시예에 따른 화상형성장치(2)의 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법의 상세 흐름도이다. 도 20에 도시된 부트 이미지의 에러 복구 방법은 도 19에 도시된 부트 이미지의 에러 복구 방법을 보다 상세하게 도시한 흐름도에 해당된다.
2001 단계에서, 제어부(110)는 화상형성장치(2)의 부팅이 시작된 후 화상형성장치(2)에 저장된 제 1 부트 이미지에 대하여 에러가 존재하는지 여부를 검사한다. 2001 단계는 앞서 설명된 도 2의 206 단계에 대응된다. 제어부(110)는 에러를 검사하기 위하여 다음과 같은 방법들을 사용한다. 제어부(110)는 검사 결과 저장된 제 1 부트 이미지에 에러가 없는 경우 에러를 복구하지 않는다.
제 1 부트 이미지를 이용하여 빠른 부팅을 시도한 후 소정 시간 동안 정상적으로 빠른 부팅이 수행되지 않을 경우, 제어부(110)는 제 1 부트 이미지에 대하여 에러가 존재하는 것으로 검사한다. 이를 위하여 제어부(110)는 부트 이미지를 로딩하기 전, 이전 부팅 상태에 대한 플래그(flag)를 체크하고, 정상적인 빠른 부팅이 수행되었다고 판단될 수 있는 부분까지 수행되었다면 정상 부팅 여부를 플래그(flag)에 저장한다.
또한, 제어부(110)는 제 1 부트 이미지에 포함된 시스템 상태로 복원을 실패할 경우 제 1 부트 이미지에 대하여 에러가 존재하는 것으로 검사한다.
나아가서, 제어부(110)는 제 1 부트 이미지에 대한 체크섬(checksum)을 미리 저장된 체크섬과 비교한 후 동일할 경우에는 제 1 부트 이미지에 대하여 에러가 존재하지 않는 것으로 검사하나, 차이가 있을 경우에는 제 1 부트 이미지에 대하여 에러가 존재하는 것으로 검사한다. 체크섬(checksum)은 패리티 비트(parity bit) 방식, CRC(Cyclic redundancy checks) 방식, 해싱(hashing) 방식 등의 특정 값을 계산할 수 있는 다양한 형태를 방식을 이용하여 계산된다. 제어부(110)는 체크섬의 계산이 오래 걸릴 경우에는 헤더(header) 부분, 특정 영역, 여러 작은 영역 등을 선택하여 확인함으로써, 제 1 부트 이미지에 대한 체크섬을 계산할 수 있다.
2002 단계에서, 제어부(110)는 검사 결과에 기초하여 제 1 부트 이미지에 에러가 있는 경우 제 1 부트 이미지를 삭제한다.
2003 단계에서, 제어부(110)는 에러를 복구하기 위한 복구 모드를 결정한다. 여기서, 복구 모드는 부트 이미지 생성 모드, 백업 부트 이미지 대체 모드 및 정상 부팅 전환 모드 중 적어도 하나를 포함한다.
2004 단계에서, 제어부(110)는 결정된 복구 모드가 부트 이미지 생성 모드인 경우 화상형성장치(2)가 재부팅되도록 제어한다.
2005 단계에서, 제어부(110)는 부트 이미지 생성부(120)가 제 3 부트 이미지를 생성하도록 제어함으로써 에러를 복구한다. 2001 단계는 앞서 설명된 도 2의 210 단계에 대응된다.
2006 단계에서, 부팅부(120)는 생성된 제 3 부트 이미지를 이용하여 빠른 부팅을 수행한다.
2007 단계에서, 제어부(110)는 결정된 복구 모드가 백업 부트 이미지 대체 모드인 경우 화상형성장치(2)에 미리 저장된 제 2 부트 이미지를 복사하여 대체함으로써 에러를 복구한다. 여기서, 제 2 부트 이미지는 제 1 부트 이미지가 생성된 과거 시점 또는 제 1 부트 이미지를 이용하여 빠른 부팅이 정상적으로 완료된 과거 시점 중 적어도 하나의 과거 시점에서 제 1 부트 이미지가 백업되어 저장된 부트 이미지를 의미한다. 즉, 제 2 부트 이미지는 제 1 부트 이미지의 백업에 해당되는바, 제 1 부트 이미지와 제 2 부트 이미지는 동일한 정보를 포함할 수 있다. 이후 2006 단계로 진행되어, 부팅부(120)는 대체된 제 2 부트 이미지를 이용하여 빠른 부팅을 수행한다.
2008 단계에서, 제어부(110)는 결정된 복구 모드가 정상 부팅 전환 모드인 경우 부트 이미지의 생성 또는 대체 없이 부팅 모드를 정상 부팅으로 전환한다.
2009 단계에서, 부팅부(120)는 정상 부팅을 수행한다.
도 21은 본 발명의 일 실시예에 따른 사용자 인터페이스부(30)에 표시된 복구 모드를 선택하는 화면을 도시한 도면이다. 앞서 설명한 바와 같이, 복구 모드는 부트 이미지 생성 모드, 백업 부트 이미지 대체 모드 및 정상 부팅 전환 모드를 포함한다. 사용자 인터페이스부(30)는 사용자에게 복구 모드에 대한 선택 화면을 표시하고, 사용자로부터 복구 모드에 대한 선택을 입력받을 수 있다. 이와 같이, 사용자 인터페이스부(30)를 통해 사용자로부터 복구 모드에 대한 선택을 입력받은 경우, 제어부(110)는 입력된 복구 모드에 기초하여 에러를 복구한다. 또한, 다른 실시예에 따라서는 화상형성장치(2)와 네트워크로 연결된 외부의 다른 디바이스와 네트워크 인터페이스부(40)를 통해 통신함으로써 복구 모드에 대한 선택을 입력받을 수 있다.
다시 도 1b를 참고하면, 화상형성장치(2)에 저장된 부트 이미지에 에러가 있는 경우, 사용자에 의해 수동적으로 에러를 복구할 수 있다. 보다 상세하게 설명하면, 사용자가 직접 부트 이미지에 에러가 있다고 인식할 경우 다양한 방법을 통해 시스템을 복구할 수 있다. 예를 들어, 사용자는 화상형성장치(2)의 부팅시 키를 특정 패턴으로 입력하여 복구를 직접 수행할 수 있다. 또는, 사용자는 부트 이미지가 로딩되기 전 USB 장치와 같은 주변 장치를 이용하여 복구할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1: 디바이스 2: 화상형성장치
10: 프로세서(CPU) 20: 메모리부
30: 사용자 인터페이스부 40: 네트워크 인터페이스부
110: 제어부 120: 부트 이미지 생성부
130: 스와핑부 140: 부팅부
150: 로딩부 210: 휘발성 메모리
220: 비휘발성 메모리

Claims (14)

  1. 화상형성장치의 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법에 있어서,
    상기 화상형성장치에 설치된 소프트웨어에 대한 변경 요청이 있는 경우, 상기 화상형성장치의 적어도 하나의 파일시스템의 속성을 변경하는 단계;
    상기 화상형성장치에 저장된 부트 이미지를 삭제하는 단계;
    상기 변경 요청에 따라 상기 소프트웨어를 변경하는 단계; 및
    상기 화상형성장치를 재부팅함으로써 상기 변경된 소프트웨어에 기초하여 상기 부트 이미지를 재생성하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 부트 이미지는
    상기 화상형성장치의 부팅 초기의 시스템 상태에 필요한 정보를 나타내는, 휘발성 메모리의 데이터 및 CPU 레지스터의 데이터가 포함된 이미지인 방법.
  3. 제 1 항에 있어서,
    상기 소프트웨어는
    상기 화상형성장치에 설치된 펌웨어(firmware) 및 응용 프로그램 중 적어도 하나인 방법.
  4. 제 3 항에 있어서,
    상기 변경 요청은
    상기 펌웨어의 업데이트에 대한 요청, 상기 응용 프로그램의 설치에 대한 요청, 상기 응용 프로그램의 업데이트에 대한 요청 및 상기 응용 프로그램의 삭제에 대한 요청 중 적어도 하나인 방법.
  5. 제 3 항에 있어서,
    상기 펌웨어가 변경된 경우, 상기 변경된 펌웨어에 부트 이미지가 저장되어 있는지 여부를 판단하는 단계를 더 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 변경된 펌웨어에 부트 이미지가 저장된 것으로 판단된 경우, 상기 변경된 펌웨어에 저장된 부트 이미지를 상기 화상형성장치의 비휘발성 메모리로 복사하는 단계를 더 포함하고,
    상기 부트 이미지를 재생성하는 단계는 상기 복사된 부트 이미지에 기초하여 상기 부트 이미지를 재생성하는 방법.
  7. 제 1 항에 있어서,
    상기 부트 이미지를 재생성하는 단계는
    상기 변경된 소프트웨어에 기초하여 상기 화상형성장치를 재부팅함으로써 상기 부트 이미지를 재생성하는 방법.
  8. 제 1 항에 있어서,
    상기 파일시스템의 속성을 변경하는 단계는
    상기 파일시스템의 속성을 읽기/쓰기(read/write) 상태로 변경하는 방법.
  9. 제 8 항에 있어서,
    상기 소프트웨어의 변경이 완료된 경우 상기 파일시스템의 속성을 읽기 전용(read only) 상태로 다시 변경하는 단계를 더 포함하는 방법.
  10. 제 1 항 내지 제 9 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 빠른 부팅을 위한 부트 이미지를 업데이트하는 화상형성장치에 있어서,
    상기 화상형성장치에 설치된 소프트웨어에 대한 변경 요청이 있는 경우 상기 화상형성장치의 적어도 하나의 파일시스템의 속성을 변경하고, 상기 화상형성장치에 저장된 부트 이미지를 삭제하고, 상기 변경 요청에 따라 상기 소프트웨어를 변경하는 제어부; 및
    상기 변경된 소프트웨어에 기초하여 상기 부트 이미지를 재생성하는 부트 이미지 생성부를 포함하는 화상형성장치.
  12. 제 11 항에 있어서,
    상기 소프트웨어는
    상기 화상형성장치에 설치된 펌웨어(firmware) 및 응용 프로그램 중 적어도 하나인 화상형성장치.
  13. 제 11 항에 있어서,
    상기 부트 이미지 생성부는
    상기 변경된 소프트웨어에 기초하여 상기 화상형성장치를 재부팅함으로써 상기 부트 이미지를 재생성하는 화상형성장치.
  14. 제 11 항에 있어서,
    상기 제어부는
    상기 파일시스템의 속성을 읽기/쓰기(read/write) 상태로 변경하는 화상형성장치.
KR1020110105529A 2010-02-26 2011-10-14 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치 KR101850272B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110105529A KR101850272B1 (ko) 2011-10-14 2011-10-14 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
PCT/KR2012/007439 WO2013055044A1 (en) 2011-10-14 2012-09-18 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110105529A KR101850272B1 (ko) 2011-10-14 2011-10-14 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치

Publications (2)

Publication Number Publication Date
KR20130040637A true KR20130040637A (ko) 2013-04-24
KR101850272B1 KR101850272B1 (ko) 2018-04-20

Family

ID=48440405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110105529A KR101850272B1 (ko) 2010-02-26 2011-10-14 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치

Country Status (1)

Country Link
KR (1) KR101850272B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160006495A (ko) * 2014-07-09 2016-01-19 한화테크윈 주식회사 부팅이미지 복구 시스템 및 그 복구 방법
KR20220041936A (ko) * 2019-08-21 2022-04-01 마이크론 테크놀로지, 인크 구성 가능 매체 구조

Family Cites Families (2)

* 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
US7363484B2 (en) * 2003-09-15 2008-04-22 Hewlett-Packard Development Company, L.P. Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160006495A (ko) * 2014-07-09 2016-01-19 한화테크윈 주식회사 부팅이미지 복구 시스템 및 그 복구 방법
KR20220041936A (ko) * 2019-08-21 2022-04-01 마이크론 테크놀로지, 인크 구성 가능 매체 구조

Also Published As

Publication number Publication date
KR101850272B1 (ko) 2018-04-20

Similar Documents

Publication Publication Date Title
KR101959359B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
US10394570B2 (en) 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
US20130036300A1 (en) Method of fixing error of boot image for fast booting and image forming apparatus for performing the method
US6591376B1 (en) Method and system for failsafe recovery and upgrade of an embedded operating system
US20130042097A1 (en) Method of updating boot image for fast booting and image forming apparatus for performing the method
TWI305319B (en) Computer having proctected data stores and switchable components providing isolated computing for vital and haker immunity
US6317845B1 (en) System for computer recovery using removable high capacity media
CN105917306B (zh) 用于配置系统固件配置数据的系统和方法
TWI505087B (zh) 系統重設
US20070094656A1 (en) Self-modifying copier for downloading executable code in a non-disruptive manner
US20080098381A1 (en) Systems and methods for firmware update in a data processing device
JP2012252701A (ja) データ回復およびバックアップシステムおよび方法
KR20170040734A (ko) 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법
US20100042753A1 (en) Interception and management of i/o operations on portable storage devices
WO2019182796A1 (en) Configurable recovery states
KR101813641B1 (ko) 화상형성장치 및 하이버네이션 기능을 갖는 화상형성장치를 부팅하는 방법
TWI498822B (zh) 可更新基本輸入輸出系統的電子裝置及其基本輸入輸出系統的更新方法
KR101850275B1 (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
KR101850272B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
KR101845467B1 (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
US11467898B2 (en) Information processing apparatus and method of controlling the same
EP2490122A2 (en) Hardware turnkey mobility
KR100792786B1 (ko) 백업 이미지 파일을 이용한 컴퓨터의 최적화 운영체제 복구방법
TWI448967B (zh) 軟體更新方法與電腦可讀取媒體
US20220108017A1 (en) Firmware to restore configurable option

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right