(57)【要約】  アプリケーションの実行のためのコードを除外してブートイメージを生成する方法及びその装置、このようなブートイメージを利用してデバイスをブーティングする方法及びその装置が開示される。
2013520744.tif 000002
【特許請求の範囲】
【請求項１】
所定時点でデバイスで実行されているアプリケーションの実行のためのコードを、前記デバイスの揮発性メモリから消去する段階と、
前記アプリケーションの実行のためのデータを、不揮発性メモリに保存する段階と、
前記時点で、前記デバイスのオペレーティングシステム（ＯＳ）の実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むブートイメージを生成する段階と、を含むことを特徴とするブートイメージ生成方法。
【請求項２】
前記アプリケーションの実行のためのコードは、前記アプリケーションの実行のために、前記不揮発性メモリから前記揮発性メモリにコピーされたコードであり、
前記オペレーティングシステムの実行のためのデータは、前記不揮発性メモリであり、前記アプリケーション実行のためのコード及び前記アプリケーションの実行のためのデータのうち少なくとも一つが保存された位置についての情報をさらに含むことを特徴とする請求項１に記載のブートイメージ生成方法。
【請求項３】
前記ブートイメージは、
前記時点で、前記デバイスに装着された少なくとも１つの周辺デバイスの状態についての情報をさらに含むことを特徴とする請求項２に記載のブートイメージ生成方法。
【請求項４】
前記ブートイメージを生成する段階は、
前記時点で、前記デバイスのオペレーティングシステムの実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むブートイメージを揮発性メモリに保存する段階と、
前記少なくとも１つの周辺デバイスを中止させる段階と、
前記中止された少なくとも１つの周辺デバイスの状態についての情報を、前記ブートイメージに保存する段階と、を含むことを特徴とする請求項３に記載のブートイメージ生成方法。
【請求項５】
前記ブートイメージは、
前記時点で実行中であるプロセスと関連したファイルについての情報をさらに含むことを特徴とする請求項３に記載のブートイメージ生成方法。
【請求項６】
前記プロセスと関連したファイルについての情報は、
不揮発性メモリで、前記プロセスと関連したファイルが保存されている位置についての情報を含むことを特徴とする請求項５に記載のブートイメージ生成方法。
【請求項７】
前記ブートイメージを生成する段階は、
前記時点で、前記デバイスのオペレーティングシステムの実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むブートイメージを揮発性メモリに保存する段階と、
前記少なくとも１つの周辺デバイスを中止させる段階と、
前記中止された少なくとも１つの周辺デバイスの状態についての情報を、前記ブートイメージに保存する段階と、
前記実行中であるプロセスと関連したファイルについての情報を前記ブートイメージに保存する段階と、を含むことを特徴とする請求項５に記載のブートイメージ生成方法。
【請求項８】
前記ブートイメージは、
前記時点で、前記デバイスに表示される画面についての情報をさらに含むことを特徴とする請求項５に記載のブートイメージ生成方法。
【請求項９】
前記ブートイメージは、
前記時点で、前記画面についての情報が保存された位置についての情報をさらに含むことを特徴とする請求項８に記載のブートイメージ生成方法。
【請求項１０】
前記揮発性メモリに保存されているブートイメージを、不揮発性メモリに保存する段階をさらに含むことを特徴とする請求項７に記載のブートイメージ生成方法。
【請求項１１】
前記時点は、
前記デバイスで、前記オペレーティングシステム及び前記デバイスの作動のために実行される少なくとも１つのサービス・アプリケーションを除外した他のアプリケーションは、実行されていないアイドル状態である時点であることを特徴とする請求項１に記載のブートイメージ生成方法。
【請求項１２】
所定時点でデバイスで実行されているアプリケーションの実行のためのコードを、前記デバイスの揮発性メモリから消去し、前記アプリケーションの実行のためのデータを不揮発性メモリに保存し、前記時点で、前記デバイスのオペレーティングシステム（ＯＳ）の実行のためのコード、及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むように生成されたブートイメージを、揮発性メモリにロードする段階と、
前記ロードされたブートイメージに基づいて、前記デバイスの状態を、前記時点の状態に復元する段階と、を含むことを特徴とするブーティング方法。
【請求項１３】
所定時点でデバイスで実行されているアプリケーションの実行のためのコードを、前記デバイスの揮発性メモリから消去し、前記アプリケーションの実行のためのデータを不揮発性メモリに保存するスワッピング部と、
前記時点で、前記デバイスのオペレーティングシステム（ＯＳ）の実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むブートイメージを生成するブートイメージ生成部と、を含むことを特徴とするブートイメージ生成装置。
【請求項１４】
所定時点でデバイスで実行されているアプリケーションの実行のためのコードを、前記デバイスの揮発性メモリから消去し、前記アプリケーションの実行のためのデータを不揮発性メモリに保存し、前記時点で、前記デバイスのオペレーティングシステム（ＯＳ）の実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むように生成されたブートイメージを、揮発性メモリにロードするローディング部と、
前記ロードされたブートイメージに基づいて、前記デバイスの状態を、前記時点の状態に復元するブーティング部と、を含むことを特徴とするブーティング装置。
【請求項１５】
請求項１ないし請求項１２のうち、いずれか１項に記載の方法を実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブートイメージを生成する方法及びその装置に係り、さらに詳細には、デバイスのブーティングに必要な必須要素を含むブートイメージを生成する方法及びその装置に関する。
【背景技術】
【０００２】
デバイスに電源をつけて、オペレーティングシステム（ＯＳ：operating system）がデバイスのメモリにロード（load）され、デバイスを使用可能な状態にする過程をブーティング（booting）という。オペレーティングシステムが、デバイスのＣＰＵ（central processing unit）、メモリなどのコンピュータ資源を制御し、オペレーティングシステムに基づいて、所定のアプリケーションが実行される状態にした後、多様なサービス・アプリケーション（service application）が実行され、デバイスが作動できるようにする過程をいう。一般的に、オペレーティングシステムをメモリにロードし、入出力デバイスと同じ周辺デバイスを設定し、サービス・アプリケーションを実行し、デバイスを使用可能な状態にする過程では、多くの時間が消耗され、このようなブーティングに消耗される時間は、ユーザの不満足を招く可能性が高い。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明が解決しようとする技術的課題は、早いブーティングのためのブートイメージを生成する方法及びその装置を提供するところにあり、前記ブートイメージに基づいて、ブーティングを行う方法及びその装置を提供するものである。また、前記方法を実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供するものである。
【課題を解決するための手段】
【０００４】
前記技術的課題を解決するための本発明の一実施形態によるブートイメージを生成する方法は、所定時点でデバイスで実行されているあらゆるアプリケーションの実行のためのコード（code）を、前記デバイスの揮発性メモリから消去する段階と、前記あらゆるアプリケーションの実行のためのデータを不揮発性メモリに保存する段階と、前記時点で、前記デバイスのオペレーティングシステム（ＯＳ）の実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むブートイメージ（boot image）を生成する段階と、を含む。
【０００５】
本発明の他の実施形態によれば、前記アプリケーションの実行のためのコードは、前記アプリケーションの実行のために、前記不揮発性メモリで、前記揮発性メモリにコピーされたコードであり、前記オペレーティングシステムの実行のためのデータは、前記不揮発性メモリで、前記アプリケーション実行のためのコード及び前記アプリケーションの実行のためのデータのうち少なくとも一つが保存された位置についての情報をさらに含む。
【０００６】
本発明のさらに他の実施形態によれば、前記ブートイメージは、前記時点で、前記デバイスに装着された少なくとも１つの周辺デバイス（peripheral device）の状態についての情報をさらに含む。
【０００７】
本発明のさらに他の実施形態によれば、前記ブートイメージは、前記時点で実行中であるプロセスと関連したファイルについての情報をさらに含む。
【０００８】
本発明のさらに他の実施形態によれば、前記ブートイメージは、前記時点で、前記デバイスに表示される画面についての情報をさらに含む。
【０００９】
本発明のさらに他の実施形態によれば、前記ブートイメージは、前記ブートイメージで、前記画面についての情報が保存された位置についての情報をさらに含む。
【００１０】
本発明のさらに他の実施形態によれば、前記ブートイメージを生成する方法は、前記揮発性メモリに保存されているブートイメージを不揮発性メモリに保存する段階をさらに含む。
【００１１】
本発明のさらに他の実施形態によれば、前記時点は、前記デバイスで、前記オペレーティングシステム及び前記デバイスの作動のために実行される少なくとも１つのサービス・アプリケーションを除外した他のアプリケーションは実行されていないアイドル（idle）状態である時点であることを特徴とする。
【００１２】
本発明のさらに他の実施形態によれば、前記ブートイメージに含まれた内容の変更が生じれば、前記ブートイメージを再び生成する段階をさらに含む。
【００１３】
前記技術的課題を解決するための本発明の一実施形態によるブーティング方法は、所定時点でデバイスで実行されているあらゆるアプリケーションの実行のためのコードを前記デバイスの揮発性メモリから消去し、前記あらゆるアプリケーションの実行のためのデータを不揮発性メモリに保存し、前記時点で、前記デバイスのオペレーティングシステムの実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むように生成されたブートイメージを、揮発性メモリにロードする段階と、前記ロードされたブートイメージに基づいて、前記デバイスの状態を、前記時点の状態に復元する段階と、を含む。
【００１４】
前記技術的課題を解決するための本発明の一実施形態によるブートイメージを生成する装置は、所定時点でデバイスで実行されているあらゆるアプリケーションの実行のためのコードを、前記デバイスの揮発性メモリから消去し、前記あらゆるアプリケーションの実行のためのデータを不揮発性メモリに保存するスワッピング部と、前記時点で、前記デバイスのオペレーティングシステムの実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むブートイメージを生成するブートイメージ生成部と、を含む。
【００１５】
前記技術的課題を解決するための本発明の一実施形態によるブーティング装置は、所定時点でデバイスで実行されているあらゆるアプリケーションの実行のためのコードを、前記デバイスの揮発性メモリから消去し、前記あらゆるアプリケーションの実行のためのデータを不揮発性メモリに保存し、前記時点で、前記デバイスのオペレーティングシステムの実行のためのコード及び前記オペレーティングシステムの実行のためのデータのうち少なくとも一つを含むように生成されたブートイメージを揮発性メモリにロードするローディング部と、前記ロードされたブートイメージに基づいて、前記デバイスの状態を、前記時点の状態に復元するブーティング部と、を含む。
【００１６】
前記技術的課題を解決するために、本発明の一実施形態は、前記ブートイメージ生成方法及びブーティング方法を実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
【発明の効果】
【００１７】
本発明によれば、ブーティングに必要な必須要素だけを含む小サイズのブートイメージを生成し、生成されたブートイメージを利用し、速い速度でエラーなしにブーティングを行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態によるブートイメージ生成装置及びブーティング装置を含むデバイスを図示する図面である。
【図２】本発明の一実施形態によるブートイメージ生成装置を図示する図面である。
【図３Ａ】本発明の一実施形態によるブートイメージを生成するための揮発性メモリの制御方法を説明するための図面である。
【図３Ｂ】本発明の一実施形態によるブートイメージを生成するための揮発性メモリの制御方法を説明するための図面である。
【図４Ａ】本発明の一実施形態によるブートイメージを図示する図面である。
【図４Ｂ】本発明の一実施形態によるブートイメージを図示する図面である。
【図５】本発明の一実施形態によるブーティング装置を図示する図面である。
【図６】本発明の一実施形態によるブートイメージを生成する方法について説明するためのフローチャートである。
【図７】本発明の他の実施形態によるブートイメージを生成する方法を図示するフローチャートである。
【図８】本発明の一実施形態によるブーティング方法について説明するためのフローチャートである。
【図９】本発明の一実施形態によるブートイメージの生成時に実行中であったプロセスと関連したファイルを削除または修正する方法を図示するフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明の望ましい実施形態について詳細に説明する。
【００２０】
図１は、本発明の一実施形態によるブートイメージ生成装置及びブーティング装置を含むデバイスを図示している。
【００２１】
図１を参照すれば、本発明の一実施形態によるデバイス１００は、ＣＰＵ（central processing unit）１１０、揮発性メモリ１２０、ブートイメージ生成装置１３０、ブーティング装置１４０、周辺デバイス１５０，１５２、及び不揮発性メモリ１６０を含む。
【００２２】
ＣＰＵ １１０は、揮発性メモリ１２０及び不揮発性メモリ１６０に保存されているデータを利用し、オペレーティングシステム（ＯＳ）の実行及びアプリケーションの実行のためのコードを処理する。
【００２３】
揮発性メモリ１２０は、実行されているオペレーティングシステム及びアプリケーションと関連したコード及びデータを、不揮発性メモリ１６０から読み取ってロードすることにより、ＣＰＵ １１０が、オペレーティングシステム及びアプリケーションと関連したコード及びデータにアクセスできるようにする。揮発性メモリ１２０は、メインメモリであって、ＲＡＭ（random-access memory）であってもよい。
【００２４】
ブートイメージ生成装置１３０は、デバイス１００のブートイメージを生成する。特定時点のデバイス１００の状態についての情報を抽出し、抽出された状態についての情報に基づいて、ブートイメージを生成する。
【００２５】
ブートイメージとは、デバイス１００を特定時点の状態に復元するために必要なあらゆる情報を含むデータであり、１つのファイルとして生成されもする。デバイス１００の状態についての情報は、特定時点で、揮発性メモリ１２０に保存されているコード、データ及び周辺デバイス１５０，１５２の状態についての情報を含んでもよい。本発明の一実施形態によるブートイメージ及びブートイメージを生成する方法については、図３及び図４を参照して詳細に説明する。
【００２６】
ブーティング装置１４０は、ブートイメージ生成装置１３０で生成されたブートイメージに基づいて、デバイス１００のブーティングを行う。ブートイメージが生成された時点でのデバイス１００の状態をブートイメージに基づいて復元する。ブートイメージが生成された時点で揮発性メモリ１２０にロードされているコード及びデータを復元し、周辺デバイス１５０，１５２の状態を復元することができる。
【００２７】
周辺デバイス１５０，１５２は、特定機能を行うために、デバイス１００に装着されたデバイスであり、デバイス１００に装着されたグラフィック・モジュール（例えば、コンピュータに装着されたグラフィックカード）、外部デバイスとの通信のための通信モジュールなどがこれに該当する。
【００２８】
不揮発性メモリ１６０は、デバイス１００のオペレーティングシステム及びアプリケーションの実行のためのコード及びデータを保存する装置であり、ハードディスクドライブ（hard disk drive）、メモリカードのように、揮発性メモリ１２０とは異なり、デバイス１００の電源が消えても保存されたデータが消去されないメモリデバイスである。
【００２９】
図２は、本発明の一実施形態によるブートイメージ生成装置を図示している。
【００３０】
図２を参照すれば、本発明の一実施形態によるブートイメージ生成装置１３０は、スワッピング部２１０及びブートイメージ生成部２２０を含む。スワッピング部２１０は、ブートイメージを生成する時点で、揮発性メモリ１２０に保存されているコード及びデータを消去したり、不揮発性メモリに保存する。
【００３１】
揮発性メモリ１２０には、デバイス１００のオペレーティングシステム及びアプリケーションと関連したコード及びデータが保存されている。コードは、オペレーティングシステムまたはアプリケーションの実行のために、ＣＰＵ １００によって解析されて処理されるビット列（bit stream）を意味し、データは、オペレーティングシステムまたはアプリケーションを実行する最中に、オペレーティングシステムまたはアプリケーションによって参照されたり、生成されるビット列を意味する。データは、オペレーティングシステムまたはアプリケーションの実行のために、不揮発性メモリ１６０から揮発性メモリ１２０にロードされもする。
【００３２】
本発明によるブートイメージ生成装置１３０は、オペレーティングシステムと関連した情報を有し、ブーティングに必要な必須要素だけを抽出してブートイメージを生成するが、スワッピング部２１０は、ブーティングに必要な必須要素を除外した残りのコード及びデータを、揮発性メモリ１２０から消去する。図３を参照して詳細に説明する。
【００３３】
ブートイメージが生成される時点は、デバイス１００の作動のためのオペレーティングシステム及び少なくとも１つのサービス・アプリケーションを除外した他のアプリケーションは駆動にならないアイドル（idle）状態である時点である。サービス・アプリケーションは、オペレーティングシステム以外に、デバイスの作動のために必須的に実行されるアプリケーションを意味する。例えば、スマートホンの場合には、通信のためのアプリケーション、ディスプレイ装置を制御するためのアプリケーションなどがこれに該当しうる。
【００３４】
しかし、オペレーティングシステム及びサービス・アプリケーション以外に、他のアプリケーションも駆動している時点で、ブーティングイメージを生成できるということは、本発明が属する技術分野で当業者であるならば、容易に分かるであろう。
【００３５】
図３Ａは、本発明の一実施形態によるブートイメージを生成するための揮発性メモリ１２０の制御方法について説明するための図面である。
【００３６】
図３Ａを参照すれば、ブートイメージを生成する時点で、揮発性メモリ１２０には、オペレーティングシステムと関連した情報（ＯＳコード，ＯＳデータ）３１０、アプリケーション・コード３２０、アプリケーション・データ３３０及びキャッシュデータ３４０がロードされている。
【００３７】
オペレーティングシステムと関連した情報３１０は、オペレーティングシステムの実行のためのコード（ＯＳコード）及びオペレーティングシステムの実行のためのデータ（ＯＳデータ）を含む。
【００３８】
オペレーティングシステムの実行のためのコードは、オペレーティングシステムを維持するために基本的に実行されるコードを含み、オペレーティングシステムの実行のためのデータは、オペレーティングシステムを実行している最中に派生して参照されるデータ及びデータ構造を含んでもよい。オペレーティングシステムの実行のためのデータは、オペレーティングシステムの実行のために、不揮発性メモリ１６０からロードされるデータであってもよい。
【００３９】
オペレーティングシステムの実行のためのデータは、ページテーブル（page table）、オペレーティングシステムの実行のために利用されるページ情報（page structure）、アプリケーションに割り当てられる作業の構造（task structure）、メモリ構造（memory structure）などについての情報を含んでもよい。
【００４０】
本発明によるブートイメージ３００に基づいてデバイスを復元するとき、アプリケーションの実行状態を復元するために、オペレーティングシステムの実行のためのデータは、アプリケーションの実行のためのコード及びアプリケーションの実行のためのデータが保存されている不揮発性メモリ１６０での位置についての情報を含んでもよい。
【００４１】
アプリケーション・コード３２０は、アプリケーションの実行のためのコードであってもよい。一般的に、デバイス１００で、所定のアプリケーションが駆動されれば、迅速なアクセスのために、アプリケーションの実行のためのコードを、揮発性メモリ１２０にロードし、ＣＰＵ １１０は、揮発性メモリ１２０にロードされたコードにアクセスする。アプリケーション・コード３２０は、このようなアプリケーションの実行のために、不揮発性メモリ１６０から揮発性メモリ１２０にコピーされたコードであってもよい。
【００４２】
アプリケーション・データ３３０は、アプリケーションの実行のためのデータであってもよい。アプリケーションを実行することによって生成され、実行中であるアプリケーションが参照するあらゆるデータ及びデータ構造がアプリケーションの実行のためのデータであってもよい。オペレーティングシステムの実行のためのデータと同様に、アプリケーションの実行のためのデータも、不揮発性メモリ１６０からロードされたデータであってもよい。
【００４３】
キャッシュデータ３４０は、実行中であるオペレーティングシステムまたはアプリケーションが、早くアクセスされるように、不揮発性メモリから揮発性メモリにロードされたデータであってもよい。
【００４４】
スワッピング部２１０は、揮発性メモリ１２０に保存されているデータのうち、アプリケーション・コード３２０及びキャッシュデータ３４０を消去する。アプリケーション・コード３２０は、不揮発性メモリ１６０に保存されているアプリケーションの実行のためのコードをそのままコピーしたものであるので、消去しても、システム復元時に、不揮発性メモリ１６０から再びロードされる。
【００４５】
また、キャッシュデータ３４０も、オペレーティングシステムまたはアプリケーションが、早くアクセスすることができるように、臨時で生成されるデータであり、オペレーティングシステムまたはアプリケーションは、再び実行されれば、さらに生成されるので、揮発性メモリ１２０から消去される。
【００４６】
特定時点の揮発性メモリ１２０にロードされているアプリケーション・コード３２０を不揮発性メモリ１６０からコピーして復元するためには、アプリケーション・コード３２０が不揮発性メモリ１６０のどの位置に保存されているか知らなければならない。従って、前述のオペレーティングシステムの実行のためのデータは、不揮発性メモリ１６０で、アプリケーション・コード３２０がどんな位置に保存されているかを示す情報を含んでいる。デバイス１００の復元時には、この情報を参照し、アプリケーション・コード３２０を再び不揮発性メモリ１６０からロードすることができる。
【００４７】
スワッピング部１１０は、揮発性メモリ１２０にロードされているデータのうち、オペレーティングシステムと関連した情報３１０及びアプリケーション・データ３３０を不揮発性メモリ１６０に保存する。オペレーティングシステムと関連した情報３１０は、デバイス１００の復元に必須なデータであるから、ブートイメージ３００に含めて保存し、アプリケーション・データ３３０は、ブートイメージ３００と別途に保存されてもよい。アプリケーション・データ３３０は、オペレーティングシステムの復元後、アプリケーションを再び実行するときに必要なデータであるから、補助ブートイメージとして、ブートイメージ３３０と別途に保存することができる。
【００４８】
図３Ｂは、本発明の他の実施形態によるブートイメージを生成するための揮発性メモリ１２０の制御方法について説明するための図面である。
【００４９】
図３Ｂを参照すれば、アプリケーション・データ３３０のうち一部は、ブートイメージ３００に含まれてもよい。アプリケーション・データ３３０のうち、オペレーティングシステムまたはアプリケーションによって頻繁にアクセスされるデータは、デバイス１００を復元するとき、早く復元されねばならないので、ブートイメージ３０２に、アクティブ・アプリケーション・データとして含める。
【００５０】
オペレーティングシステムは、所定のアルゴリズムを介して、アプリケーション・データ３３０において、頻繁にアクセスされるデータを決定することができる。例えば、ＬＲＵ（least recently used）アルゴリズムを介して、アプリケーション・データ３３０のうち、最も最近にアクセスされたデータを決定したり、ブートイメージが生成される以前に、所定基準時間の間データがアクセスされた回数をカウントし、頻繁にアクセスされるデータを判断することができる。
【００５１】
スワッピング部１１０は、このような所定のアルゴリズムによって決定された頻繁にアクセスされるデータを除外した残りのデータをアプリケーション・データ３３０から分離し、分離されたデータを不揮発性メモリ１６０に保存する。
【００５２】
再び図２を参照すれば、ブートイメージ生成部２２０は、スワッピング部２１０の消去及び保存の結果に基づいて、デバイス１００のブーティングのためのブートイメージを生成する。図４Ａ及び図４Ｂを参照して詳細に説明する。
【００５３】
図４Ａは、本発明の一実施形態によるブートイメージを図示している。
【００５４】
図４Ａを参照すれば、本発明の一実施形態によるブートイメージ３００は、最小ブート情報４１０、デバイス状態情報４２０、プロセスファイル情報４３０及びスクリーン情報保存位置４４０を含んでもよい。
【００５５】
最小ブート情報４１０は、前述のオペレーティングシステムと関連した情報３１０を含む。前述のように、オペレーティングシステムと関連した情報３１０は、ブートイメージの生成時、揮発性メモリ１２０にロードされているオペレーティングシステムの実行のためのコード及びオペレーティングシステムの実行のためのデータを含んでもよい。
【００５６】
また、最小ブート情報４１０は、ブートイメージの生成時、デバイス１００に表示された画面についての情報を含んでもよいが、デバイス１００のディスプレイ装置に表示された画面についての情報を最小ブート情報４１０に含めることによって、ブートイメージを利用してブーティングしたとき、ユーザに表示される画面を速い速度で復元することができる。
【００５７】
デバイス状態情報４２０は、ブートイメージ３００を生成する時点での、周辺デバイス１５０，１５２の状態についての情報を含む。周辺デバイス１５０，１５２を中止させた後、周辺デバイス１５０，１５２の中止された状態についての情報として、ブートイメージ３００に含まれてもよい。
【００５８】
プロセスファイル情報４３０は、ブートイメージ３００の生成時での、デバイス１００で実行中であるプロセスと関連したファイルについての情報４３０を含む。ブートイメージ３００に基づいてシステムをブーティングしたとき、ブートイメージ３００の生成時に実行中であるプロセスと関連したファイルが、デバイス１００に存在しないならば、システムエラーが発生しうる。
【００５９】
例えば、ブートイメージ３００生成時に実行中であるプロセスとファイルＡが関連しており、ブートイメージ３００生成後、ファイルＡがデバイス１００から削除されたとすれば、ブートイメージ３００に基づいて、再びデバイス１００をブーティングすれば、ブートイメージ３００生成時のプロセスをそのまま復元し、再び遂行されない。従って、ブートイメージ３００に実行中であるプロセスと関連したファイルについての情報４３０を保存し、デバイス１００のユーザが、プロセスと関連したファイルを削除または修正することを不可能にする。
【００６０】
スクリーン情報保存位置４４０についての情報は、デバイス１００に表示された画面についての情報の保存位置についての情報を含む。前述のように、デバイス１００がブーティングされたときに表示される画面を速い速度で復元するために、ブートイメージ生成する時点で、デバイス１００の画面についての情報を、最小ブート情報４１０に含める。しかし、ユーザが、ブーティングされたときに表示される画面を変更する場合（例えば、コンピュータのデスクトップ、またはスマートホンのデスクトップを変更）、ブートイメージ３００が変更されなければ、さらなるブーティング時、変更された画面がデバイス１００に表示されない。
【００６１】
従って、ユーザが画面を変更するたびにブートイメージ３００を再び生成してこそ、ユーザが変更した画面が、次のブーティング時にも、デバイス１００に表示される。ところで、画面を除外した残りの状態をブーティングするたびに続けて同一に復元するためには、一度生成されたブートイメージを反復して使用しなければならない。従って、ブートイメージ３００で、画面についての情報だけ変更せねばならない。このために、ブートイメージ３００は、デバイス１００の画面についての情報が保存されている位置についての情報４４０を別途に含む。
【００６２】
図４Ｂは、本発明の他の実施形態によるブートイメージ３０２を図示している。
【００６３】
図４Ｂを参照すれば、ブートイメージ３０２は、アクティブ・アプリケーション・データ４５０をさらに含む。図３Ｂと関連して説明したように、アプリケーション・データ３００において、頻繁にアクセスされるデータが、ブートイメージ３０２に含まれる。最小ブート情報４１０、デバイス状態情報４２０、プロセスファイル情報４３０及びスクリーン情報保存位置４４０は、図４Ａに図示されたブートイメージ３００と同一である。
【００６４】
ブートイメージ生成部２２０は、図４Ａまたは図４Ｂに図示されたようなブートイメージ３００，３０２をまず揮発性メモリ１２０に生成した後、不揮発性メモリ１６０に保存することができる。ブートイメージ３００，３０２を生成するためには、あらゆるプロセス及び周辺デバイスを中止させなければならないが、このとき、中止される周辺デバイスには、不揮発性メモリ１６０に対するアクセスを制御するデバイスも含まれる。従って、デバイスを中止させた状態で、揮発性メモリ１２０にブートイメージ３００，３０２を生成し、ブートイメージ３００，３０２の生成が完了すれば、中止を解除し、ブートイメージ３００，３０２を、不揮発性メモリ１６０にコピーする。図７を参照して詳細に後述する。
【００６５】
図３Ａ、図３Ｂ、図４Ａ及び図４Ｂと関連して説明したように、本発明によるブートイメージ生成装置１３０は、揮発性メモリ１２０にロードされているあらゆるアプリケーション・コード３２０を消去し、オペレーティングシステムと関連した最小限の情報３１０だけ含むように、ブートイメージ３００，３０２を生成する。これにより、ブートイメージ３００，３０２のサイズは小さく、小サイズのブートイメージ３００，３０２に基づいて、速い速度でデバイス１００の状態を復元することができるが、このようなブートイメージ生成方法及びブーティング方法を、「全体ページレクレーム（full-page reclaim）」技法と命名することができる。
【００６６】
続けて同じ状態でデバイス１００を復元するためには、前述のように、ブートイメージを反復して使用することが望ましい。しかし、ブートイメージ３００，３０２に含まれた内容に変更が生じ、ブートイメージ３００，３０２の再生成（regenerate）が不回避である場合には、ブートイメージ生成装置１３０は、前述のブートイメージ生成過程を再び遂行し、ブートイメージを再生成する。
【００６７】
前述の画面の変更は、ブートイメージに含まれたスクリーン情報保存位置４４０を利用し、ブートイメージを再生成することなしに、ブートイメージに変更を反映することができる。しかし、オペレーティングシステムのアップデートやアプリケーションのアップデートによって、ブートイメージ生成時のコード及び／またはデータが変更される場合には、ブートイメージの再生成が不回避である。従って、このような場合に、ブートイメージ生成装置１３０は、ブートイメージ３００，３０２に保存された内容に変更が生じ、ブートイメージの修正を介して変更を反映することができないので、ブートイメージ３００，３０２を再生成する。
【００６８】
図５は、本発明の一実施形態によるブーティング装置を図示している。
【００６９】
図５を参照すれば、本発明の一実施形態によるブーティング装置１４０は、ローディング部５１０及びブーティング部５２０を含む。
【００７０】
ローディング部５１０は、図３Ａ、図３Ｂ、図４Ａ及び図４Ｂに図示されたように生成されたブートイメージ３００，３０２を揮発性メモリ１２０にロードする。不揮発性メモリ１６０に保存されているブートイメージ３００，３０２を読み取り、揮発性メモリ１２０にロードする。
【００７１】
復元部５２０は、ローディング部５１０によってローディングされたブートイメージ３００，３０２に基づいて、デバイス１００の状態を復元する。デバイス１００の揮発性メモリ１２０にロードされている最小ブート情報４１０を基にオペレーティングシステムを復元する。
【００７２】
オペレーティングシステムが復元されれば、プロセスが再び実行され、プロセスにおいて、ブートイメージ生成時に実行中であったアプリケーションと関連したプロセスは、アプリケーション・コード３２０が揮発性メモリ１２０にロードされておらず、エラー（例えば、ページフォールト（page fault））が生じる。このとき、不揮発性メモリ１６０で、アプリケーション・コード３２０が保存された不揮発性メモリ１６０の位置についての情報を参照し、アプリケーション・コード３２０を再び揮発性メモリ１２０にロードしてプロセスを続ける。アプリケーション・コード３２０が保存された位置についての情報は、前述のように、オペレーティングシステムと関連した情報３１０に含まれている。アプリケーション・データ３３０もまた、アプリケーション・コード３２０が復元される方式と同様に、必要によって、不揮発性メモリ１６０で、アプリケーション・データ３３０が保存された位置についての情報を参照して復元される。補助ブートイメージとして、不揮発性メモリ１６０に保存されているアプリケーション・データ３３０を復元する。
【００７３】
アプリケーション・データにおいて、頻繁にアクセスされるデータがアクティブ・アプリケーション・データ４５０として、ブートイメージ３０２に含まれている場合には、アクティブ・アプリケーション・データ４５０をまず復元し、補助ブートイメージに含まれている残りのアプリケーション・データを復元する。
【００７４】
ブーティング後の最初画面は、最小ブート情報４１０に含まれているデバイスの画面についての情報に基づいて表示されてもよい。
【００７５】
周辺デバイス１５０，１５２の状態も、ブートイメージ３００，３０２のデバイス状態情報４２０に基づいて復元する。周辺デバイス１５０，１５２のレジスタ（例えば、デバイスの内部あるいは外部に位置したレジスタ）を、ブートイメージに保存された状態についての情報に基づいて復元する。
【００７６】
図６は、本発明の一実施形態によるブートイメージ３００，３０２を生成する方法について説明するためのフローチャートである。
【００７７】
図６を参照すれば、段階６１０で、ブートイメージ生成装置１３０は、ブートイメージの生成を始める時点で、デバイス１００で駆動しているあらゆるアプリケーションの実行のためのコード、すなわち、アプリケーション・コード３２０を揮発性メモリ１２０から消去する。図３と関連して説明したように、アプリケーションの実行のためのコードは、不揮発性メモリ１６０から再びコピーすることができるので、ブートイメージを生成するのに不要である。従って、揮発性メモリ１２０から消去する。キャッシュデータ３４０も、アプリケーション・コード３２０と共に、揮発性メモリ１２０から消去されることは、前述の通りである。
【００７８】
段階６２０で、ブートイメージ生成装置１３０は、ブートイメージ生成時に実行中であるあらゆるアプリケーションの実行のためのデータ、すなわち、アプリケーション・データ３３０を不揮発性メモリ１６０に保存する。アプリケーション・データ３３０の全部をブートイメージ３００に含めずに、別途の補助ブートイメージとして不揮発性メモリ１６０に保存することができる。また、アプリケーション・データ３３０において、頻繁にアクセスされるデータは、ブートイメージ３０２に含め、残りのデータを補助ブートイメージとして、不揮発性メモリ１６０に保存することができる。
【００７９】
段階６３０で、ブートイメージ生成装置１３０は、段階６１０の消去及び段階６２０の保存が終わり、揮発性メモリに残っているデバイス１００のオペレーティングシステムと関連した情報に基づいて、ブートイメージ３００，３０２を生成する。ブートイメージ３００，３０２は、オペレーティングシステムと関連した情報３１０以外に、他の情報も含まれることは、図４を参照して説明した。
【００８０】
オペレーティングシステムのアップデートやアプリケーションのアップデートによって、ブートイメージ生成時のコード及び／またはデータが変更される場合には、ブートイメージの再生成が不回避であるので、ブートイメージ生成装置１３０は、段階６１０ないし６３０を再び遂行し、ブートイメージ３００，３０２を再生成する。
【００８１】
図７は、本発明の他の実施形態によるブートイメージを生成する方法を図示している。
【００８２】
図７を参照すれば、段階７１０で、ブートイメージ生成装置１３０は、特定時点で実行中のあるあらゆるプロセスを中止する。
【００８３】
段階７２０で、ブートイメージ生成装置１３０は、全体ページをリクレーム（reclaim）する。図３と関連して説明したように、ブートイメージ３００の生成時点で、実行されているあらゆるアプリケーションの実行のためのコード、すなわち、アプリケーション・コード３２０を揮発性メモリ１２０から消去し、キャッシュデータ３４０も消去する。また、アプリケーション・データ３３０を不揮発性メモリ１６０に保存する。その後、オペレーティングシステムと関連した情報３１０を含むブートイメージ３００，３０２を、揮発性メモリ１２０に生成する。オペレーティングシステムと関連した情報３１０、及びデバイス１００の画面についての情報を含む最小ブート情報４１０を含むブートイメージ３００，３０２を生成することができる。アプリケーション・データ３３０において、頻繁にアクセスされるデータは、ブートイメージ３０２に含まれてもよいことは説明した。
【００８４】
段階７３０で、周辺デバイスをいずれも中止させれば、不揮発性メモリ１６０に対するアクセスを制御する入出力制御装置も、作動が中止されるので、不揮発性メモリ１６０にアクセスすることができない。従って、ブートイメージ３００，３０２を、まず揮発性メモリ１２０に生成しておき、ブートイメージ３００，３０２に、図４Ａまたは図４Ｂに図示されたようなあらゆる情報が保存されれば、段階７７０で、ブートイメージ３００，３０２を不揮発性メモリ１６０に保存する。
【００８５】
段階７３０で、ブートイメージ生成装置１３０は、デバイス１００に装着された周辺デバイス１５０，１５２をいずれも中止させる。
【００８６】
段階７４０で、ブートイメージ生成装置１３０は、中止された周辺デバイス１５０，１５２の状態についての情報４２０を、ブートイメージ３００，３０２に保存する。中止された周辺デバイス１５０，１５２のレジスタに保存されているデータを、周辺デバイス１５０，１５２の状態についての情報４２０として、ブートイメージ３００，３０２に保存する。
【００８７】
段階７５０で、ブートイメージ生成装置１３０は、実行中であったプロセスと関連したファイルについての情報を保存する。図４Ａ及び図４Ｂを参照して説明したように、ブートイメージ３００，３０２の生成時に実行中であったプロセスと関連したファイルが、ブートイメージ３００，３０２の生成後、デバイス１００から削除されれば、ブートイメージ３００によって、ブーティング後にプロセスを正しく復元することができず、システムエラーが発生しうる。従って、段階７５０で、ブートイメージ生成装置１３０は、段階７１０で中止されたプロセス、すなわち、ブートイメージ３００，３０２の生成を始めるときに実行中であったプロセスと関連したファイルについての情報を、ブートイメージ３００，３０２に保存する。
【００８８】
段階７６０で、ブートイメージ生成装置１３０は、ブートイメージ３００，３０２で、画面についての情報が保存された位置情報を保存するための領域を割り当てる。ブートイメージ３００，３０２に保存される最小ブート情報４１０は、オペレーティングシステムと関連した情報３１０及びブーティング後にデバイス１００に表示される画面についての情報を含んでいる。また、図４Ａ及び図４Ｂに図示されたように、ブートイメージ３００，３０２は、画面についての情報が保存された位置情報４４０を含むが、段階７６０で、ブートイメージ生成装置１３０は、画面についての情報が保存された位置情報４４０を保存するための領域を、ブートイメージ３００，３０２の内部に割り当てる。
【００８９】
段階７７０で、ブートイメージ生成装置１３０は、段階７１０ないし７６０によって生成されたブートイメージ３００，３０２を、不揮発性メモリ１６０に保存する。不揮発性メモリ１６０に対するアクセスを制御する周辺デバイスを再び作動させ、揮発性メモリに保存されているブートイメージ３００，３０２を、不揮発性メモリ１６０に保存する。
【００９０】
段階７８０で、ブートイメージ生成部１３０は、画面についての情報が、不揮発性メモリ１６０のどの位置に保存されているかを判断し、位置情報を、ブートイメージ３００，３０２に保存する。段階７７０で、ブートイメージ３００が、不揮発性メモリ１６０に移動したので、不揮発性メモリ１６０のどの位置に、画面についての情報が保存されているかが分かる。従って、この位置についての情報を、ブートイメージ３００，３０２内のスクリーン情報保存位置４４０として保存する。
【００９１】
ブートイメージ３００，３０２の生成後、ユーザがブーティング時に表示される画面を変更すれば、ブートイメージ３００，３０２の画面についての情報が保存された位置についての情報を参照し、画面についての情報を変更することができる。これにより、ブートイメージ３００，３０２の全体を再び生成する必要がなくなり、最小ブート情報４１０に含まれている画面についての情報だけ変更される。
【００９２】
しかし、オペレーティングシステムのアップデートやアプリケーションのアップデートによって、ブートイメージ生成時のコード及び／またはデータが変更される場合には、段階７１０ないし７８０を再び遂行し、ブートイメージ３００，３０２を再生成して保存する。
【００９３】
図８は、本発明の一実施形態によるブーティング方法について説明するためのフローチャートである。
【００９４】
図８を参照すれば、段階８１０で、本発明の一実施形態によるブーティング装置１４０は、不揮発性メモリ１６０に保存されているブートイメージ３００，３０２を、揮発性メモリ１２０にロードする。デバイス１００のハードウェアを、不揮発性メモリ１２０にアクセスすることができる最小限の状態に初期化し、不揮発性メモリ１６０に、ブートイメージ３００，３０２が存在するか否かを判断する。ブートイメージ３００，３０２が存在しなければ、ブートイメージ３００，３０２を利用しない一般的なブーティングを行う。しかし、ブートイメージ３００，３０２が存在すれば、ブートイメージ３００，３０２を、ローディング部５１０を利用し、不揮発性メモリ１６０で読み取り、揮発性メモリ１２０にロードする。
【００９５】
段階８２０で、ブーティング装置１４０は、段階８１０でロードされたブートイメージ３００，３０２に基づいて、デバイスの状態を復元する。
【００９６】
デバイス１００の揮発性メモリ１２０にロードされている最小ブート情報４１０を基に、オペレーティングシステムを復元する。
【００９７】
オペレーティングシステムの復元が完了すれば、周辺デバイス１５０，１５２の状態も、ブートイメージ３００，３０２のデバイス状態情報４２０に基づいて復元する。周辺デバイス１５０，１５２のレジスタを、ブートイメージに保存された状態についての情報に基づいて復元する。その後、ブートイメージ３００の生成時に中止されたプロセスを再び実行する。このとき、アプリケーション・データ３３０も、必要によって、揮発性メモリ１２０にロードする。アプリケーション・データ３３０において、頻繁にアクセスされるデータは、ブートイメージ３０２に含まれている。
【００９８】
図９は、本発明の一実施形態によるブートイメージの生成時に実行中であったプロセスと関連したファイルを、削除または修正する方法を図示している。
【００９９】
図９を参照すれば、段階９１０で、デバイス１００のユーザは、ブートイメージ３００，３０２によって、デバイス１００をブーティングした後、所定のファイルを削除または修正しようと試みる。
【０１００】
段階９２０で、デバイス１００は、揮発性メモリ１２０にロードされているブートイメージ３００，３０２のプロセスファイル情報４３０を確認する。
【０１０１】
段階９３０で、段階９２０の確認結果、段階９１０で、削除または修正しようというファイルが、ブートイメージ３００，３０２の生成時に実行中であったプロセスと関連したファイルであるか否かを判断する。ブートイメージ３００，３０２の生成時に実行中であったプロセスと関連したファイルである場合には、ファイルを削除または修正すれば、ブートイメージ３００，３０２によって、デバイス１００をブーティングした後、プロセスを正しく実行することができず、システムエラーが発生するので、ファイルの削除または修正を禁止させる。
【０１０２】
しかし、段階９１０で、削除または修正しようとするファイルが、ブートイメージ３００，３０２の生成時に実行中であったプロセスと関連しないファイルであるならば、段階９４０で、ファイルを削除または修正する。
【０１０３】
図９は、ファイルの削除または修正なしにも、オペレーティングシステム及び／またはアプリケーションの実行に問題が発生しない場合、ファイルの削除または修正を選択的に行う方法について説明する。しかし、前述のように、オペレーティングシステムのアップデートやアプリケーションのアップデートが行われる場合には、ファイルを削除または修正しなければ、アップデートを完了することができない。従って、ファイルの削除または修正が不回避であるので、無条件ファイルの削除または修正を遂行し、ブートイメージ３００，３０２を再生成する。
【０１０４】
以上のように、本発明は、たとえ限定された実施形態と図面とによって説明したにしても、本発明が、前記の実施形態に限定されるものではなく、それらは、本発明が属する分野で当業者であるならば、このような記載から多様な修正及び変形が可能であろう。従って、本発明の思想は、特許請求の範囲によってのみ把握されねばならず、それと均等である、あるいは等価的な変形は、いずれも本発明の思想の範疇に属するのである。また、本発明によるシステムは、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現することが可能である。
【０１０５】
例えば、本発明の例示的な実施形態によるブートイメージ生成装置及びブーティング装置は、図１、図２及び図５に図示されたような装置のそれぞれのユニットにカップリングされたバス、前記バスに結合された少なくとも１つのプロセッサを含んでもよい。また、命令、受信されたメッセージまたは生成されたメッセージを保存するために、前記バスに結合され、前述のような命令を遂行するための少なくとも１つのプロセッサにカップリングされたメモリを含んでもよい。
【０１０６】
また、コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存されるあらゆる種類の記録装置を含む。記録媒体の例としては、ＲＯＭ（read-only memory）、ＲＡＭ（random-access memory）、ＣＤ−ＲＯＭ、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行される。
【符号の説明】
【０１０７】
１００  デバイス
１１０  ＣＰＵ（central processing unit）
１２０  揮発性メモリ
１３０  ブートイメージ生成装置１３０
１４０  ブーティング装置
１５０、１５２  周辺デバイス
１６０  不揮発性メモリ
２１０  スワッピング部
２２０  ブートイメージ生成装置
【図１】
2013520744.tif 000003
【図２】
2013520744.tif 000004
【図３Ａ】
2013520744.tif 000005
【図３Ｂ】
2013520744.tif 000006
【図４Ａ】
2013520744.tif 000007
【図４Ｂ】
2013520744.tif 000008
【図５】
2013520744.tif 000009
【図６】
2013520744.tif 000010
【図７】
2013520744.tif 000011
【図８】
2013520744.tif 000012
【図９】
2013520744.tif 000013
【国際調査報告】
2013520744.tif 000014
2013520744.tif 000015