(57)【要約】【課題】情報処理装置の起動の安定性を高めることができる。【解決手段】情報処理装置は、通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替える切替部と、を有する。【選択図】図１
2013097529.tif 000002
【特許請求の範囲】
【請求項１】
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替える切替部と、
を備える、情報処理装置。
【請求項２】
前記判定部は、前記情報処理装置が連続して前記高速起動モードにより起動した回数に基づいて、前記所定の条件を満たしているか否かを判定する、
請求項１に記載の情報処理装置。
【請求項３】
前記判定部は、前記情報処理装置の起動時間に基づいて、前記所定の条件を満たしているか否かを判定する、
請求項１に記載の情報処理装置。
【請求項４】
前記所定の条件である起動時間の閾値は、前記情報処理装置が連続して前記高速起動モードにより起動した回数に応じて変動する、
請求項３に記載の情報処理装置。
【請求項５】
前記判定部は、前記情報処理装置に異常が検知されたか否かに基づいて、前記所定の条件を満たしているか否かを判定する、
請求項１に記載の情報処理装置。
【請求項６】
前記判定部は、前記高速起動モードにおいて使用される起動イメージの大きさに基づいて、前記所定の条件を満たしているか否かを判定する、
請求項１に記載の情報処理装置。
【請求項７】
前記所定の条件である起動イメージの大きさの閾値は、前記情報処理装置が連続して前記高速起動モードにより起動した回数に応じて変動する、
請求項６に記載の情報処理装置。
【請求項８】
前記判定部は、前記情報処理装置のフラグメンテーションの状態に基づいて、前記所定の条件を満たしているか否かを判定する、
請求項１に記載の情報処理装置。
【請求項９】
前記高速起動モードは、起動イメージを用いて起動する起動モードであり、
前記切替部は、前記起動イメージを使用できない状態とすることにより、前記通常起動モードに切替える、
請求項１に記載の情報処理装置。
【請求項１０】
前記判定部は、前記情報処理装置の電源オフ時に判定を行い、
前記切替部は、前記起動イメージを作成しないことにより、前記通常起動モードに切替える、
請求項９に記載の情報処理装置。
【請求項１１】
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定することと、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替えることと、
を含む、情報処理装置の起動モード切替方法。
【請求項１２】
コンピュータを、
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替える切替部と、
を備える、情報処理装置として機能させるためのプログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理装置の起動モード切替え方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
近年、情報処理装置の起動にかかる時間を短縮するために、様々な手法が提案されている。例えば、特許文献１に記載の撮像装置は、初回起動時には通常起動モードにて起動する。そして、この撮像装置は、２回目以降の移動時には、高速起動モードで動作することにより、起動時の処理を一部省略して高速に起動する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１６５５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、情報処理装置の状態によっては、高速起動を行うよりも通常起動を行う方が安定して起動することができる場合がある。
上記事情に鑑みれば、所定の条件を満たしたときには、次回の起動モードを高速起動モードから通常起動モードに切り替えることが望ましい。そこで、本開示では、通常起動モードに切り替えるための所定の条件について提案する。
【課題を解決するための手段】
【０００５】
本開示によれば、通常起動モード、及び上記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置において、上記情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、判定結果に従って、上記情報処理装置が次回起動するときの起動モードを上記高速起動モードから上記通常起動モードに切替える切替部と、を有する情報処理装置が提供される。
【０００６】
かかる構成によれば、情報処理装置の状態に基づいた所定の条件を用いた判定の結果に応じて、情報処理装置の起動モードが高速起動モードから通常起動モードに切替えられる。従って、適切なタイミングで情報処理装置の起動モードを通常起動モードに切替えることができ、情報処理装置の起動の安定性を向上させることができる。
【０００７】
また、本開示によれば、通常起動モード、及び上記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置において、上記情報処理装置の状態が所定の条件を満たしているか否かを判定することと、判定結果に従って、上記情報処理装置が次回起動するときの起動モードを上記高速起動モードから上記通常起動モードに切替えることと、を含む、情報処理装置の起動モード切替方法が提供される。
【０００８】
また、本開示によれば、コンピュータを、通常起動モード、及び上記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置であって、上記情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、判定結果に従って、上記情報処理装置が次回起動するときの起動モードを上記高速起動モードから上記通常起動モードに切替える切替部と、を有する情報処理装置として機能させるためのプログラムが提供される。
【０００９】
また、本開示によれば、コンピュータを、通常起動モード、及び上記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置において、上記情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、判定結果に従って、上記情報処理装置が次回起動するときの起動モードを上記高速起動モードから上記通常起動モードに切替える切替部と、を有する情報処理装置として機能させるためのプログラムを記録したコンピュータに読み取り可能な記録媒体が提供される。
【発明の効果】
【００１０】
以上説明したように本開示によれば、情報処理装置の起動の安定性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】本開示の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】同実施形態に係る情報処理装置のフラッシュメモリの内部構成の一例を示す説明図である。
【図３】同実施形態に係る情報処理装置の起動動作を示すフローチャートである。
【図４】同実施形態に係る情報処理装置の起動モード切替動作の第１の例を示すフローチャートである。
【図５】同実施形態に係る情報処理装置の起動モード切替動作の第２の例を示すフローチャートである。
【図６】同実施形態に係る情報処理装置が用いる、連続高速起動回数と起動時間の閾値との間の関係を示す表である。
【図７】同実施形態に係る情報処理装置の起動モード切替動作の第３の例を示すフローチャートである。
【図８】同実施形態に係る情報処理装置の起動モード切替動作の第４の例を示すフローチャートである。
【図９】同実施形態に係る情報処理装置が用いる、連続高速起動回数とイメージサイズの閾値との間の関係を示す表である。
【図１０】同実施形態に係る情報処理装置の起動モード切替動作の第５の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
なお、説明は以下の順序で行うものとする。
１．概要
２．装置構成
３．起動動作
４．通常起動モードへの切替え動作
４−１．第１の例（連続高速起動回数を用いる例）
４−２．第２の例（起動時間を用いる例）
４−３．第３の例（例外処理が発生した場合の例）
４−４．第４の例（イメージサイズを用いる例）
４−５．第５の例（フラグメンテーションサイズを用いる例）
５．まとめ
【００１４】
＜１．概要＞
情報処理装置において、ウォームブートやホットブートと呼ばれる起動モードが用いられている。これらの起動方法は、コールドブートとも呼ばれる通常の起動モードでは行う処理の一部（例えばハードウェアの初期化など）を行わずに起動する。このため、ウォームブートやホットブートは、コールドブートと比較して起動にかかる時間が短いという特徴がある。そこで、ウォームブートやホットブートは、コールドブートが通常起動モードと呼ばれるのに対して、高速起動モードとも呼ばれる。
【００１５】
ユーザにとって起動にかかる時間は、待ち時間となってしまう。このため、ユーザの利便性を考えると、高速起動モードは有効である。従って、ユーザの待ち時間を短縮するためには、なるべく高速起動モードが用いられることが好ましい。しかし上述の通り、情報処理装置の高速起動モードでは、通常起動モードで行われる処理の一部が省略される。このため、連続して高速起動モードで起動し続けていると、情報処理装置の安定性が損なわれる場合がある。従って、情報処理装置を安定的に起動するためには、通常起動モードが用いられることが好ましい。そこで、高速起動モードが用いられる情報処理装置において、適切なトリガにより情報処理装置の起動モードを通常起動モードに切替え、安定的な起動を保つことが望ましい。
【００１６】
本開示では、このように情報処理装置の起動モードを高速起動モードから通常起動モードに切替えるための複数のトリガについて提案する。以下、不揮発な領域に保存されたHibernation Image（ＷＢＩ：Ｗａｒｍ  Ｂｏｏｔ  Ｉｍａｇｅとも言う。）を用いて起動するウォームブートからコールドブートへ切替える方法について説明するが、本開示はかかる例に限定されない。例えばホットブートなどの他の高速起動モードから通常起動モードへ切替える場合にも適用することができる。
【００１７】
＜２．装置構成＞
まず、図１及び図２を参照しながら、本開示の一実施形態に係る情報処理装置の構成について説明する。図１は、本開示の一実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。図２は、同実施形態に係る情報処理装置のフラッシュメモリの内部構成の一例を示す説明図である。
【００１８】
まず図１を参照すると、本開示の一実施形態に係る情報処理装置１００は、プロセッサ１０５と、入力部１１０と、ネットワークインタフェース１１５と、ＵＳＢ１２０と、Ｆｌａｓｈ１２５と、ＲＡＭ１３０と、タイマー１３５とを主に有する。但し、ＵＳＢはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略であり、ＲＡＭはＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【００１９】
ここで、情報処理装置１００は、例えばＰＣ、家庭用映像処理装置（ＤＶＤレコーダ、ビデオデッキなど）、家庭用ゲーム機器、家電機器、ＰＤＡ、携帯電話、ＰＨＳ、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器、撮像装置、ナビゲーション装置などの情報処理装置であってよい。但し、ＰＣはＰｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒの略であり、ＤＶＤはＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略であり、ＰＤＡはＰｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｃｅの略であり、ＰＨＳはＰｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。
【００２０】
（プロセッサ１０５）
プロセッサ１０５は、ソフトウェアを動作させることにより情報処理装置１００全体の動作を制御する処理装置である。プロセッサ１０５は、例えば演算器、レジスタ、周辺回路を含んでもよい。プロセッサ１０５の代表的な一例としては、ＣＰＵが挙げられる。但し、ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。なお、このプロセッサ１０５は、判定部、及び切替部の一例である。所定のプログラムを動作させることにより、プロセッサ１０５は判定部及び切替部として機能することができる。
【００２１】
判定部として機能するプロセッサ１０５は、情報処理装置１００の状態が所定の条件を満たしているか否かを判定することができる。ここで用いられる所定の条件は、後に詳述される。また切替部として機能するプロセッサ１０５は、上記判定した結果に従って、情報処理装置１００が次回起動するときの起動モードをウォームブートからコールドブートに切替えることができる。ここでプロセッサ１０５が起動モードを切替える方法は様々な方法が考えられる。例えばプロセッサ１０５は、ＷＢＩを読み込むことができない状態とすることによって、起動モードをウォームブートからコールドブートに切替えることができる。またプロセッサ１０５は、強制的に次回の起動モードがコールドブートとなるように設定してもよい。なお、ＷＢＩは高速起動に用いられる起動イメージの一例である。以下の説明においては、起動モードの切替は、ＷＢＩの破棄によって行われる例が用いられる。
【００２２】
（入力部１１０）
入力部１１０は、例えばボタン、タッチパネル、マウス、キーボード、スイッチ、レバー、及びマイクなどユーザが所望の操作をするための入力信号を生成する機能を有する装置である。
【００２３】
（ネットワークインタフェース１１５）
ネットワークインタフェース１１５は、ネットワークに接続する機能を有するインタフェースである。情報処理装置１００は、ネットワークインタフェース１１５を介して外部の情報処理装置と接続することができる。
【００２４】
（ＵＳＢ１２０）
ＵＳＢ１２０は、例えばＵＳＢ規格に従ったメス側コネクタである。ＵＳＢ１２０には、ＵＳＢ規格に従ったオス側コネクタが挿入されてよい。例えばＵＳＢ１２０には、ＵＳＢ規格に従ったオス側コネクタを有するＵＳＢケーブルが挿入されてよい。例えば情報処理装置１００は、ＵＳＢケーブル及びメス側コネクタであるＵＳＢ１２０を介して他の情報処理装置と接続することができてよい。
【００２５】
（Ｆｌａｓｈ１２５）
Ｆｌａｓｈ１２５は、情報処理装置１００の内蔵記憶領域としての記憶部の一例である。またＦｌａｓｈ１２５は、ここではＷＢＩを記憶する不揮発な記憶領域の一例でもある。Ｆｌａｓｈ１２５の内部構成の一例については、図２を用いて後述される。
【００２６】
（ＲＡＭ１３０）
ＲＡＭ１３０は、情報処理装置１００のメインメモリであり、プロセッサ１０５が使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶することができる。
【００２７】
（タイマー１３５）
タイマー１３５は、経過時間を計測する機能を有する。タイマー１３５は、情報処理装置１００の起動時間や終了時間を計測することができる。タイマー１３５が計測する起動時間又は終了時間は、情報処理装置１００の起動モードを高速起動から通常起動に切替えるためのトリガ判定に用いられる。このトリガ判定については、後に詳述される。
（外部記憶媒体２０）
また、情報処理装置１００は、外部記憶媒体２０とコネクタを介して接続することにより、外部記憶媒体２０にデータを記録することもできる。
【００２８】
ここで、図２を参照しながらＦｌａｓｈ１２５の内部構成について説明する。Ｆｌａｓｈ１２５の内部は、大きく分けてシステム領域とユーザ領域の２つより構成されてよい。システム領域は、起動に必要なデータをロードするＬｏａｄｅｒ領域２１０と、起動用プログラム領域２２０と、ＷＢＩ保存領域２３０より構成される。ユーザー領域２４０は、主にアプリケーションなどのデータが保存される。
【００２９】
ＷＢＩ保存領域２３０の先頭には、ＷＢＩヘッダ領域２３１が設けられてよい。後に情報処理装置１００はＷＢＩがあるか否かに応じて起動モードを選択する処理が説明される。このときＷＢＩがあるか否かの判断は、このＷＢＩヘッダ領域のフォーマットが正しいか否かに基づいて行われてよい。従って、切替部として機能するプロセッサ１０５は、このＷＢＩヘッダ領域２３１をＷＢＩのフォーマットを壊すデータで塗りつぶすことによってＷＢＩを破棄し、次回の起動モードをコールドブートに切替えることができる。
【００３０】
以上、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示した。しかし、上記の構成はあくまで一例であり、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。上記の構成要素の一部が省略されてもよいし、上記の構成要素に加えて他の構成要素が含まれてもよい。
【００３１】
また、以下に説明される情報処理装置１００の動作を実現するためのコンピュータプログラムを作成し、情報処理装置１００のプロセッサ１０５が実行することにより本開示の機能が実現されてよい。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【００３２】
＜３．起動動作＞
次に図３を参照しながら、本実施形態に係る情報処理装置１００の起動シーケンスについて説明する。図３は、同実施形態に係る情報処理装置の起動動作を示すフローチャートである。
【００３３】
図３を参照すると、情報処理装置１００の起動トリガが検知されると、Ｌｏａｄｅｒが起動する（Ｓ１００）。そしてＬｏａｄｅｒは、ＷＢＩ保存領域２３０のＷＢＩの有無を確認する（Ｓ１０５）。ここで、ＷＢＩの有無は、例えばＷＢＩ保存領域２３０の先頭に設けられるＷＢＩヘッダ領域２３１のフォーマットをＬｏａｄｅｒが解釈することにより判断されてよい。Ｌｏａｄｅｒは、ＷＢＩヘッダ領域２３１のフォーマットが正しければＷＢＩが有り、ＷＢＩヘッダ領域２３１のフォーマットが正しくなければ、ＷＢＩが無いと判断することができる。
【００３４】
ステップＳ１０５の判断において、ＷＢＩが有ると判断された場合には、Ｌｏａｄｅｒは、ＷＢＩをＲＡＭ１３０に展開し、ウォームブートする（Ｓ１１０）。一方、ステップＳ１０５の判断において、ＷＢＩが無いと判断された場合には、Ｌｏａｄｅｒは、起動プログラムをＲＡＭ１３０に展開し、コールドブートする（Ｓ１１５）。その後、アプリケーションが起動され（Ｓ１２０）、システム全体が起動する。
【００３５】
以上、ここではＷＢＩを用いてウォームブートする場合の起動シーケンスについて説明された。以下では、本技術のメインテーマである高速起動モードから通常起動モードへの切替えについて説明する。なお、引き続き高速起動モードはＷＢＩを用いたウォームブートであり、コールドブートに切替えるためのトリガについて以下複数の例を挙げて説明する。
【００３６】
＜４．通常起動モードへの切替え動作＞
［４−１．第１の例（連続高速起動回数を用いる例）］
まず、図４を参照しながら、情報処理装置１００の起動モードを高速起動モードから通常起動モードに切替える切替え動作の第１の例について説明する。第１の例は、連続高速起動回数を用いる例である。図４は、同実施形態に係る情報処理装置の起動モード切替動作の第１の例を示すフローチャートである。
【００３７】
図４を参照すると、第１の例における連続高速起動回数を用いた、次回の起動モードをウォームブートからコールドブートに切替えるか否かの判断は、情報処理装置１００の起動時に行われる。
【００３８】
まず、情報処理装置１００の起動トリガが検知されると、Ｌｏａｄｅｒが起動する（Ｓ２００）。そして、Ｌｏａｄｅｒは、ＷＢＩがあるか否かを判断する（Ｓ２０５）。ここでステップＳ２０５のＷＢＩがあるか否かの判断は、上述したステップＳ１０５の判断と同様の方法により行われてよい。そしてステップＳ２０５の判断によりＷＢＩが無いと判断された場合には、Ｌｏａｄｅｒは起動プログラムをＲＡＭ１３０に展開し、コールドブートする（Ｓ２１０）。
【００３９】
一方、ステップＳ２０５の判断においてＷＢＩがあると判断された場合には、ＬｏａｄｅｒはＷＢＩをＲＡＭ１３０に展開し、ウォームブートする（Ｓ２１５）。そしてアプリケーションが起動され（Ｓ２２０）、システム全体が起動する。
【００４０】
次に判定部として機能するプロセッサ１０５は、連続高速起動回数を情報処理装置１００の不揮発領域から読み出す（Ｓ２２５）。ここで連続高速起動回数は、例えば情報処理装置１００が連続してウォームブートにより起動された回数である。コールドブートにより起動されると、この連続高速起動回数は０に設定される。
【００４１】
そして判定部として機能するプロセッサ１０５は、この連続高速起動回数が所定の閾値以上であるか否かを判断する（Ｓ２３０）。連続高速起動回数が多いほど、情報処理装置１００の起動が不安定となる可能性は高まる。このためこの閾値は、情報処理装置１００が安定して起動することができる可能性に基づいて定められてよい。
【００４２】
ステップＳ２３０の判断において、連続高速起動回数が所定の閾値以上であると判断された場合には、切替部として機能するプロセッサ１０５は、ＷＢＩを破棄して連続高速起動回数を０に設定する。そして、情報処理装置１００は、コールドブートにより再起動し直される（Ｓ２３５）。
【００４３】
一方ステップＳ２３０の判断において、連続高速起動回数が所定の閾値以上ではないと判断された場合には、プロセッサ１０５は、連続高速起動回数をインクリメントして不揮発領域に保存する（Ｓ２４０）。
【００４４】
このように、第１の例においては、起動モードをコールドブートに切替えるか否かの判断が、連続高速起動回数に基づいて行われる。本手法のメリットは、複雑なロジックを必要とせずに、予め一定のサイクルでＷＢＩを破棄することができる点にある。適切な閾値を設定しておけば、高い確率でシステムを安定的な状態に保つことができる。
【００４５】
［４−２．第２の例（起動時間を用いる例）］
次に、図５及び図６を参照しながら、情報処理装置１００の起動モードを高速起動モードから通常起動モードに切替える切替え動作の第２の例について説明する。第２の例は、起動時間を用いる例である。図５は、同実施形態に係る情報処理装置の起動モード切替動作の第２の例を示すフローチャートである。図６は、同実施形態に係る情報処理装置が用いる、連続高速起動回数と起動時間の閾値との間の関係を示す表である。
【００４６】
図５を参照すると、第２の例は、次回の起動モードをウォームブートからコールドブートに切替えるか否かの判断は、情報処理装置１００の起動にかかる時間を計測することにより行われる。
【００４７】
まず、情報処理装置１００の起動トリガが検知されると、Ｌｏａｄｅｒが起動する（Ｓ３００）。そして、Ｌｏａｄｅｒは、ＷＢＩがあるか否かを判断する（Ｓ３０５）。ここでステップＳ３０５のＷＢＩがあるか否かの判断は、上述したステップＳ１０５の判断と同様の方法により行われてよい。そしてステップＳ３０５の判断によりＷＢＩが無いと判断された場合には、Ｌｏａｄｅｒは起動プログラムをＲＡＭ１３０に展開し、コールドブートする（Ｓ３１０）。
【００４８】
一方、ステップＳ３０５の判断においてＷＢＩがあると判断された場合には、判定部として機能するプロセッサ１０５は、タイマーをスタートする（Ｓ３１５）。そしてＬｏａｄｅｒはＷＢＩをＲＡＭ１３０に展開し、ウォームブートする（Ｓ３２０）。そしてアプリケーションが起動され（Ｓ３２５）、システム全体が起動する。
【００４９】
その後、判定部として機能するプロセッサ１０５は、タイマーにより起動をスタートしてからウォームブートが完了するまでに要した時間（起動時間とする）を算出する（Ｓ３３０）。そして判定部として機能するプロセッサ１０５は、算出した起動時間が所定の閾値以上であるか否かを判断する（Ｓ３３５）。
【００５０】
ステップＳ３３５の判断により、起動時間が閾値以上であると判断された場合には、切替部として機能するプロセッサ１０５は、ＷＢＩを破棄する。そして情報処理装置１００は、コールドブートにより再起動し直される（Ｓ３４０）。
【００５１】
このように、第２の例においては、起動モードをコールドブートに切替えるか否かの判断が、起動時間に基づいて行われる。起動時間に基づいて判断される場合には、ウォームブートが高速に起動することができなくなった状態が起動時間という直接的なパラメータに基づいて判断される。従って、ＷＢＩが高速起動のために役立たなくなった場合に、コールドブートにより安定的な状態に遷移させることができる。
【００５２】
なお、起動時間の閾値は、一定の値が用いられてもよいし、変動する値が用いられてもよい。例えば、連続高速起動回数と起動時間との間には相関がある可能性が高い。連続高速起動回数が少ないほど起動時間は短い傾向がある。このため、連続高速起動回数が少ないにも関わらず、起動時間が長い場合には、他の何らかの問題が生じている可能性が高い。従って、起動時間の閾値は、連続高速起動回数に応じて変動する値が用いられてよい。例えば、図６に示されるように、連続起動回数に応じて変動する起動時間の閾値が用いられてよい。例えば連続起動回数が１回〜１０回の場合には、起動時間の閾値として１０ｓが用いられ、連続起動回数が１１回〜５０回の場合には、起動時間の閾値として３０ｓが用いられ、連続起動回数が５１回〜１００回の場合には、起動時間の閾値として４０ｓが用いられ、連続起動回数が１０１回以上の場合には、起動時間の閾値として５０ｓが用いられる。
【００５３】
［４−３．第３の例（例外処理が発生した場合の例）］
次に、図７を参照しながら、情報処理装置１００の起動モードを高速起動モードから通常起動モードに切替える切替え動作の第３の例について説明する。第３の例は、例外処理が発生した場合の例である。図７は、同実施形態に係る情報処理装置の起動モード切替動作の第３の例を示すフローチャートである。
【００５４】
図７を参照すると、第３の例は、情報処理装置１００に例外処理が発生した場合の起動モード切替えについて示される。
【００５５】
まず、情報処理装置１００の起動トリガが検知されると、Ｌｏａｄｅｒが起動する（Ｓ４００）。そして、Ｌｏａｄｅｒは、ＷＢＩがあるか否かを判断する（Ｓ４０５）。ここでステップＳ４０５のＷＢＩがあるか否かの判断は、上述したステップＳ１０５の判断と同様の方法により行われてよい。そしてステップＳ４０５の判断によりＷＢＩが無いと判断された場合には、Ｌｏａｄｅｒは起動プログラムをＲＡＭ１３０に展開し、コールドブートする（Ｓ４１０）。
【００５６】
一方、ステップＳ４０５の判断においてＷＢＩがあると判断された場合には、ＬｏａｄｅｒはＷＢＩをＲＡＭ１３０に展開し、ウォームブートする（Ｓ４１５）。そしてアプリケーションが起動され（Ｓ４２０）、ユーザー操作が開始される（Ｓ４２５）。
【００５７】
ユーザーが情報処理装置１００を使用し続けていると、システムの潜在的な不具合が発生する場合がある。この場合、多くの情報処理装置においては、フリーズや情報処理装置の応答がないなどの例外処理状態に陥る。判定部として機能するプロセッサ１０５は、この例外処理が発生しているか否かを判断する（Ｓ４３０）。ステップＳ４３０の判断において、例外処理が発生したと判断された場合には、切替部として機能するプロセッサ１０５は、ＷＢＩを破棄する。そして情報処理装置１００は、コールドブートで再起動し直される（Ｓ４３５）。
【００５８】
例外処理が発生した情報処理装置１００のＷＢＩは、データとして異常な状態となっている可能性が高い。このため、このＷＢＩを使用しても情報処理装置１００の安定動作を保証することは困難である。従って、例外処理が発生したタイミングでＷＢＩを破棄してコールドブートし、新たにＷＢＩを作成し直すことが望ましい。かかる構成により、より安定したシステムの起動を実現することができる。
【００５９】
［４−４．第４の例（イメージサイズを用いる例）］
次に、図８及び図９を参照しながら、情報処理装置１００の起動モードを高速起動モードから通常起動モードに切替える切替え動作の第４の例について説明する。第４の例は、起動イメージのイメージサイズを用いる例である。図８は、同実施形態に係る情報処理装置の起動モード切替動作の第４の例を示すフローチャートである。図９は、同実施形態に係る情報処理装置が用いる、連続高速起動回数とイメージサイズの閾値との間の関係を示す表である。
【００６０】
図８を参照すると、第４の例は、次回の起動モードをウォームブートからコールドブートへに切替えるか否かの判断は、情報処理装置１００のＷＢＩのサイズに基づいて情報処理装置１００の電源オフ時に行われる。
【００６１】
まず、電源オフ操作が検知される（Ｓ５００）と、プロセッサ１０５はＷＢＩを作成する（Ｓ５０５）。ここで、判定部として機能するプロセッサ１０５は、作成したＷＢＩのサイズが所定の閾値以上であるか否かを判断する（Ｓ５１０）。
【００６２】
ステップＳ５１０の判断において、作成したＷＢＩのサイズが閾値以上であると判断されると、プロセッサ１０５は、作成したＷＢＩを保存しない（Ｓ５１５）。従ってこの場合、次回起動時はコールドブートされる。
【００６３】
一方、ステップＳ５１０の判断において、作成したＷＢＩのサイズが閾値以上ではないと判断されると、プロセッサ１０５は、作成したＷＢＩを保存して電源をオフさせる（Ｓ５２０）。この場合、次回起動時は保存したＷＢＩを用いてウォームブートされる。
【００６４】
ＷＢＩのサイズは、メモリーの使用量など、ＷＢＩが作成された時点における使用状況に応じて変化する。情報処理装置１００が安定的に動作しているときにはＷＢＩのイメージサイズに大きな変化はないが、異常時にはメモリ使用量が増大してイメージサイズも大きくなる傾向がある。従って、イメージサイズの大きなＷＢＩを用いたウォームブートは安定的に起動することができない可能性が高い。このため、第４の例では、イメージサイズが所定の閾値以上大きくなったＷＢＩを破棄することにより、情報処理装置１００の起動の安定性を向上させる。
【００６５】
なお、ここでトリガとなるイメージサイズの閾値は、一定の値が用いられてもよいし、変動する値が用いられてもよい。例えば、情報処理装置１００が安定的に動作している場合のＷＢＩのイメージサイズは、連続高速起動回数と相関がある可能性が高い。連続起動回数が少ないほどイメージサイズは小さい傾向がある。このため、イメージサイズの閾値は、連続高速起動回数に応じて変動する値が用いられてもよい。例えば、図９に示されるように、連続起動回数が１〜１０回の場合には、イメージサイズの閾値として１００ＭＢが用いられ、連続起動回数が１１〜５０回の場合には、イメージサイズの閾値として２００ＭＢが用いられ、連続起動回数が５１〜１００回の場合には、イメージサイズの閾値として３００ＭＢが用いられ、連続起動回数が１０１回以上の場合には、イメージサイズの閾値として４００ＭＢが用いられてよい。
【００６６】
［４−５．第５の例（フラグメンテーションサイズを用いる例）］
次に、図１０を参照しながら、情報処理装置１００の起動モードを高速起動モードから通常起動モードに切替える切替え動作の第５の例について説明する。第５の例は、フラグメンテーションサイズを用いる例である。図１０は、同実施形態に係る情報処理装置の起動モード切替動作の第５の例を示すフローチャートである。
【００６７】
図１０を参照すると、第５の例は、次回の起動モードをウォームブートからコールドブートに切替えるか否かの判断は、情報処理装置１００のフラグメンテーションサイズに基づいて、電源オフ時に行われる。
【００６８】
まず、電源オフ操作が検知される（Ｓ６００）と、判定部として機能するプロセッサ１０５はメモリのフラグメンテーション情報を取得する（Ｓ６０５）。そして、プロセッサ１０５は、フラグメンテーション量が所定の閾値以上であるか否かを判断する（Ｓ６１０）。
【００６９】
ステップＳ６１０の判断において、フラグメンテーション量が閾値以上であると判断されると、プロセッサ１０５は、ＷＢＩを作成しない。この場合、次回起動時はコールドブートされる。
【００７０】
一方、ステップＳ６１０の判断において、フラグメンテーション量が閾値以上ではないと判断されると、プロセッサ１０５は、ＷＢＩを作成及び保存し、電源をオフさせる（Ｓ６１５）。この場合、次回起動時は保存したＷＢＩを用いてウォームブートされる。
【００７１】
フラグメンテーション量は、ＷＢＩサイズと同様に通常時はその量に大きな変化はない。しかし、情報処理装置１００の動作に異常が発生したときには、急激にフラグメンテーション量の増大が生じる傾向がある。異常が発生したときに作成されたＷＢＩを用いたウォームブートは安定的に起動することができない可能性が高い。このため、第５の例では、フラグメーテンション量を用いて異常事態を検出し、フラグメンテーション量が増大したときにはコールドブートを行って情報処理装置１００の起動の安定性を向上させることができる。
【００７２】
＜５．まとめ＞
以上、ウォームブートからコールドブートに切替えるトリガについて複数の例を挙げて説明してきた。情報処理装置１００は、適切なトリガを用いて、適切なタイミングでコールドブートに切替えることにより、安定的な起動を保つことができる。
【００７３】
ウォームブートからコールドブートに切替える判断を行うタイミングは、例えば情報処理装置１００の起動時であってもよく、また情報処理装置１００の電源オフ時であってもよい。ＷＢＩは通常電源オフ前の処理として作成される。このため、例えば情報処理装置１００の起動時に判断が行われるときには、ＷＢＩのヘッダ部分を書き換えることにより情報処理装置１００がＷＢＩを使用できない状態とし、次回の起動モードをコールドブートに切替えることができる。また電源オフ時に判断が行われるときには、例えばＷＢＩを作成しない又は保存しないことにより情報処理装置１００がＷＢＩを使用できない状態とし、次回の起動モードをコールドブートに切替えることができる。コールドブートへ切替える方法としては、他にも様々な方法が用いられてよく、ここで説明した方法に限定されない。
【００７４】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００７５】
例えば上記の実施形態では、ウォームブートからコールドブートに切替える判断は、連続高速起動回数、起動時間、例外処理の発生の有無、起動イメージのイメージサイズ、フラグメンテーション量に基づいて行われた。これらの条件は、それぞれ用いられることに加えて、複数の条件が組み合わされて用いられてもよい。
【００７６】
尚、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。
【００７７】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替える切替部と、
を備える、情報処理装置。
（２）
前記判定部は、前記情報処理装置が連続して前記高速起動モードにより起動した回数に基づいて、前記所定の条件を満たしているか否かを判定する、
前記（１）に記載の情報処理装置。
（３）
前記判定部は、前記情報処理装置の起動時間に基づいて、前記所定の条件を満たしているか否かを判定する、
前記（１）または（２）のいずれかに記載の情報処理装置。
（４）
前記所定の条件である起動時間の閾値は、前記情報処理装置が連続して前記高速起動モードにより起動した回数に応じて変動する、
前記（３）に記載の情報処理装置。
（５）
前記判定部は、前記情報処理装置に異常が検知されたか否かに基づいて、前記所定の条件を満たしているか否かを判定する、
前記（１）〜（４）のいずれかに記載の情報処理装置。
（６）
前記判定部は、前記高速起動モードにおいて使用される起動イメージの大きさに基づいて、前記所定の条件を満たしているか否かを判定する、
前記（１）〜（５）のいずれかに記載の情報処理装置。
（７）
前記所定の条件である起動イメージの大きさの閾値は、前記情報処理装置が連続して前記高速起動モードにより起動した回数に応じて変動する、
前記（６）に記載の情報処理装置。
（８）
前記判定部は、前記情報処理装置のフラグメンテーションの状態に基づいて、前記所定の条件を満たしているか否かを判定する、
前記（１）〜（７）のいずれかに記載の情報処理装置。
（９）
前記高速起動モードは、起動イメージを用いて起動する起動モードであり、
前記切替部は、前記起動イメージを使用できない状態とすることにより、前記通常起動モードに切替える、
前記（１）〜（８）のいずれかに記載の情報処理装置。
（１０）
前記判定部は、前記情報処理装置の電源オフ時に判定を行い、
前記切替部は、前記起動イメージを作成しないことにより、前記通常起動モードに切替える、
前記（９）に記載の情報処理装置。
（１１）
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定することと、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替えることと、
を含む、情報処理装置の起動モード切替方法。
（１２）
コンピュータを、
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替える切替部と、
を備える、情報処理装置として機能させるためのプログラムを記録したコンピュータに読み取り可能な記録媒体。
（１３）
コンピュータを、
通常起動モード、及び前記通常起動モードよりも高速に起動する高速起動モードを有する情報処理装置であって、
前記情報処理装置の状態が所定の条件を満たしているか否かを判定する判定部と、
判定結果に従って、前記情報処理装置が次回起動するときの起動モードを前記高速起動モードから前記通常起動モードに切替える切替部と、
を備える、情報処理装置として機能させるためのプログラム。
【符号の説明】
【００７８】
１００    情報処理装置
１０５    プロセッサ（判定部、切替部）
１１０    入力部
１１５    ネットワークインタフェース
１２０    ＵＳＢ
１２５    Ｆｌａｓｈ
１３０    ＲＡＭ
１３５    タイマー
２０      外部記憶媒体
【図１】
2013097529.tif 000003
【図２】
2013097529.tif 000004
【図３】
2013097529.tif 000005
【図４】
2013097529.tif 000006
【図５】
2013097529.tif 000007
【図６】
2013097529.tif 000008
【図７】
2013097529.tif 000009
【図８】
2013097529.tif 000010
【図９】
2013097529.tif 000011
【図１０】
2013097529.tif 000012