(57)【要約】【課題】第１の停止状態から起動するよりも第２の停止状態から起動する方が高速であるアプリケーションが含まれる場合に、一律に第１の停止状態からアプリケーションを起動する構成よりも装置全体の起動時間の最適化を行うことが可能な情報処理装置及びプログラムを提供する。【解決手段】情報処理装置は、動作を実行する複数の実行単位のうち、第１の停止状態から起動するのに要する第１の時間よりも第２の停止状態から起動するのに要する第２の時間が短い第１の実行単位を特定する特定手段と、特定された第１の実行単位を第２の停止状態から起動するとともに、複数の実行単位のうち第１の実行単位以外の第２の実行単位を第１の停止状態から起動する起動手段とを備える。【選択図】図１
2020052501.tif 000002
【特許請求の範囲】
【請求項１】
動作を実行する複数の実行単位のうち、第１の停止状態から起動するのに要する第１の時間よりも第２の停止状態から起動するのに要する第２の時間が短い第１の実行単位を特定する特定手段と、
特定された前記第１の実行単位を前記第２の停止状態から起動するとともに、前記複数の実行単位のうち前記第１の実行単位以外の第２の実行単位を前記第１の停止状態から起動する起動手段と、
を備える、情報処理装置。
【請求項２】
前記第１の実行単位を起動するのに必要な起動情報を記憶する記憶手段と、
前記記憶手段に記憶された前記起動情報を復元する復元手段と、
前記起動情報の復元に要する時間に応じて前記第１の時間を計測する第１の計測手段と、
をさらに備える、請求項１に記載の情報処理装置。
【請求項３】
前記第１の計測手段は、前記起動情報の復元に要する時間及び前記起動情報の容量が前記記憶手段の容量に対して占める割合を用いて前記複数の実行単位ごとにそれぞれ前記起動情報の復元に要する時間を計測する、
請求項２に記載の情報処理装置。
【請求項４】
前記複数の実行単位ごとに前記第２の時間を計測する第２の計測手段をさらに備える、
請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第２の計測手段は、前記複数の実行単位が制御部をそれぞれ占有する時間に応じて前記第２の時間を計測する、
請求項４に記載の情報処理装置。
【請求項６】
コンピュータを、
動作を実行する複数の実行単位のうち、第１の停止状態から起動するのに要する第１の時間よりも第２の停止状態から起動するのに要する第２の時間が短い第１の実行単位を特定する特定手段と、
特定された前記第１の実行単位を前記第２の停止状態から起動するとともに、前記複数の実行単位のうち前記第１の実行単位以外の第２の実行単位を前記第１の停止状態から起動する起動手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、動作中の情報を一時的に待避させ、コンピュータを起動させたときに作業の途中から再開できるようにする機能を備えた情報処理装置が提案されている（例えば、特許文献１参照。）。
【０００３】
特許文献１に記載された情報処理装置は、不揮発メモリ装置の性能を測定し、測定した不揮発メモリ装置の性能に基づいて、不揮発メモリ装置を使用した復帰方法による復帰時間を予測する手段と、その復帰時間に基づいて、次回の電源オン時に不揮発メモリ装置を使用した方法による起動を行うか否かを決定する手段とを有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４６０６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ソフトウェアによっては、特定の起動方法により起動するよりも特定の起動方法によらずに起動する方が高速となる逆転の現象が生じる場合がある。
【０００６】
本発明の課題は、第１の停止状態から起動するよりも第２の停止状態から起動する方が高速であるアプリケーションが含まれる場合に、一律に第１の停止状態からアプリケーションを起動する構成よりも装置全体の起動時間の最適化を行うことが可能な情報処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
［１］動作を実行する複数の実行単位のうち、第１の停止状態から起動するのに要する第１の時間よりも第２の停止状態から起動するのに要する第２の時間が短い第１の実行単位を特定する特定手段と、
特定された前記第１の実行単位を前記第２の停止状態から起動するとともに、前記複数の実行単位のうち前記第１の実行単位以外の第２の実行単位を前記第１の停止状態から起動する起動手段と、
を備える、情報処理装置。
［２］前記第１の実行単位を起動するのに必要な起動情報を記憶する記憶手段と、
前記記憶手段に記憶された前記起動情報を復元する復元手段と、
前記起動情報の復元に要する時間に応じて前記第１の時間を計測する第１の計測手段と、
をさらに備える、前記［１］に記載の情報処理装置。
［３］前記第１の計測手段は、前記起動情報の復元に要する時間及び前記起動情報の容量が前記記憶手段の容量に対して占める割合を用いて前記複数の実行単位ごとにそれぞれ前記起動情報の復元に要する時間を計測する、
前記［２］に記載の情報処理装置。
［４］前記複数の実行単位ごとに前記第２の時間を計測する第２の計測手段をさらに備える、
前記［１］から［３］のいずれか１つに記載の情報処理装置。
［５］前記第２の計測手段は、前記複数の実行単位が制御部をそれぞれ占有する時間に応じて前記第２の時間を計測する、
前記［４］に記載の情報処理装置。
［６］コンピュータを、
動作を実行する複数の実行単位のうち、第１の停止状態から起動するのに要する第１の時間よりも第２の停止状態から起動するのに要する第２の時間が短い第１の実行単位を特定する特定手段と、
特定された前記第１の実行単位を前記第２の停止状態から起動するとともに、前記複数の実行単位のうち前記第１の実行単位以外の第２の実行単位を前記第１の停止状態から起動する起動手段
として機能させるためのプログラム。
【発明の効果】
【０００８】
請求項１、４、６に係る発明によれば、第１の停止状態から起動するよりも第２の停止状態から起動する方が高速であるアプリケーションが含まれる場合に、一律に第１の停止状態からアプリケーションを起動する構成よりも装置全体の起動時間の最適化を行うことができる。
請求項２に係る発明によれば、復元時間に応じて第１の停止状態から起動するか第２の停止状態から起動するかを特定することができる。
請求項３に係る発明によれば、起動情報の容量に応じて復元時間を計測することができる。
請求項５に係る発明によれば、初期化処理が並行して実行される場合であってもアプリケーションごとに個別に起動時間を計測することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の実施の形態に係る情報処理装置の制御系の一例を示すブロック図である。
【図２】図２は、システムメモリの一例を模式的に示す図である。
【図３】図３は、アプリケーションの動作の一例を模式的に示す図である。
【図４】図４は、管理情報テーブルの一例を示す図である。
【図５】図５は、事前処理の動作の一例を示すフローチャートである。
【図６】図６は、起動時間を測定する動作の一例を示すフローチャートである。
【図７】図７は、起動時間の測定の結果の一例を示す図である。
【図８】図８は、本実施の形態に係る情報処理装置を起動する動作の一例を示すフローチャートである。
【図９】図９は、比較例に係る情報処理装置を起動する動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
【００１１】
［実施の形態］
図１は、本発明の実施の形態に係る情報処理装置の制御系の一例を示すブロック図である。情報処理装置２には、例えば、パーソナルコンピュータ、画像形成装置、タブレッド端末、多機能携帯電話機（スマートフォン）等の携帯情報端末を用いることができる。
【００１２】
この情報処理装置２は、一例として、オペレーティングシステム（ＯＳ：Operating System）に基づいて動作するＣＰＵ２０を有するプロセッサシステムである。オペレーティングシステムとは、例えば、記憶部２４に記憶されたＯＳイメージ２４０がシステムメモリ２１に展開されることによって起動するソフトウェアである。オペレーティングシステムは、例えば、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ＡＲＭ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）アーキテクチャに基づくＯＳ１である。
【００１３】
具体的には、この情報処理装置２は、図１に示すように、各部を制御する制御部としてのＣＰＵ（Central Processing Unit）２０と、各種のデータを記憶する記憶部２４と、情報の入力及び出力を行う入出力部２５とを備えて構成されている。
【００１４】
ＣＰＵ２０は、ＯＳ１に従って、取得したデータに演算や加工等を行うプロセッサである。ＣＰＵ２０は、電源が投入されると（すなわち、電源がＯＦＦからＯＮになると）、ＲＯＭ２２に記憶されたブートローダ２２０が起動し、記憶部２４からＯＳイメージ２４０を読み出す。ＣＰＵ２０は、この読み出したＯＳイメージ２４０をシステムメモリ２１に展開してＯＳ１を起動する。ＣＰＵ２０は、システムメモリ２１、ＲＯＭ（Read Only Memory）２２及びＣＰＵコア２３を備える。
【００１５】
図２は、システムメモリ２１の一例を模式的に示す図である。システムメモリ２１は、揮発性の半導体メモリである。システムメモリ２１は、書き込みと読み込みとが可能なＲＡＭ（Random Access Memory）であり、一時的に演算の結果等を格納する領域として用いられる。
【００１６】
図２に示すように、システムメモリ２１は、ＯＳ１上で起動するアプリケーション２４１に対して割り当てられる領域（以下、「実メモリ領域」ともいう。）を有している。実メモリ領域２１Ａは、プログラムを実行する一定の単位（以下、単に「実行単位」又は「プロセス」ともいう。）ごとに割り当てられる。
【００１７】
実メモリ領域２１Ａは、システムメモリ２１の一部の領域でもよく、又は全部の領域でもよい。実メモリ領域２１Ａは、プロセス２４１Ａ間で相互に依存しないように、すなわちプロセス２４１Ａ間で互いに独立するように各プロセス２４１Ａに割り当てられるようになっている。また、実メモリ領域２１Ａのプロセス２４１Ａへの割り当ては、ＯＳ１によって行われる。
【００１８】
ＲＯＭ２２は、不揮発性の半導体メモリである。ＲＯＭ２２には、例えば、ブートローダ２２０が記憶されている。ブートローダ２２０は、ＯＳ１を起動するための基本的なソフトウェアである。
【００１９】
ＣＰＵコア２３は、記憶部２４に記憶されたアプリケーション２４１に従って動作することにより、生成手段２００、復元手段２０１、復帰処理手段２０２、計測手段２０３、算出手段２０４、作成手段２０５等として機能する。復元手段２０１及び復帰処理手段２０２は、起動手段の一例である。計測手段２０３及び算出手段２０４は、第１の計測手段及び第２の計測手段の一例である。作成手段２０５は、特定手段の一例である。各手段２００〜２０５の詳細については後述する。
【００２０】
記憶部２４は、例えば、ハードディスク等の揮発性の半導体メモリから構成され、例えば、ＯＳイメージ２４０、アプリケーション２４１、管理情報テーブル２４２（図４参照）、スナップショット２４３、リスト情報２４４等の各種データを記憶する。記憶部２４は、記憶手段の一例である。
【００２１】
ＯＳイメージ２４０は、ＯＳ本体を構成するファイルやフォルダを画像（イメージ）としてまとめた情報である。上述したように、ＯＳイメージ２４０は、ＯＳ１が起動するときに、システムメモリ２１に展開されるようになっている。
【００２２】
図３は、アプリケーション２４１の動作の一例を模式的に示す図である。アプリケーション２４１は、ＯＳ１上で動作するソフトウェアである。図３に示すように、アプリケーション２４１には、例えば、情報処理装置２の各部を制御するソフトウェア、画像の入力又は出力を制御するソフトウェア、ＵＩ（User Interface）を制御するソフトウェア、通信を制御するソフトウェア等が含まれる。アプリケーション２４１は、ＯＳ１の起動により、システムメモリ２１に展開されるようになっている。
【００２３】
なお、以下、１つのアプリケーション２４１によって１つのプロセス２４１Ａが動作する場合、すなわち１つのアプリケーション２４１に１つのプロセス２４１Ａが対応している場合を例に挙げて説明する。具体的には、図３に示すように、複数のアプリケーション２４１がそれぞれ独立したプロセス２４１Ａとして動作する場合を例に挙げて説明する。アプリケーション２４１は、実行単位の一例である。
【００２４】
図４は、管理情報テーブル２４２の一例を示す図である。管理情報テーブル２４２は、システムメモリ２１の実メモリ領域２１Ａを各プロセス２４１Ａに対してどのように割り当てているかに関する情報を記録したテーブルである。図４に示すように、管理情報テーブル２４２には、例えば、「領域ＩＤ」欄、「プロセスＩＤ」欄、「プロセス名称」欄、「アプリケーションＩＤ」欄、「使用割合」欄等が設けられている。
【００２５】
「領域ＩＤ」欄には、各プロセス２４１Ａに割り当てられた実メモリ領域２１Ａの部分領域を識別する情報が記録されている。「プロセスＩＤ」欄には、動作中のプロセス２４１Ａを識別する情報が記録されている。また、「プロセス名称」欄には、当該プロセスＩＤが示すプロセス２４１Ａの名称が記録されている。「アプリケーションＩＤ」欄には、当該１つのプロセス２４１Ａとして動作しているアプリケーションを識別する情報が記録される。
【００２６】
「使用割合」欄には、当該プロセス２４１Ａ、すなわち対応するアプリケーション２４１に対して割り当てられている実メモリ領域２１Ａの割合を示す情報が記録されている（図２の破線枠参照）。この割合は、システムメモリ２１全体の容量に対して当該アプリケーション２４１に割り当てられた領域の容量の割合を示す値でもよく、実メモリ領域２１Ａの容量に対して当該アプリケーション２４１に割り当てられた領域の容量の割合を示す値でもよい。
【００２７】
スナップショット２４３は、システムメモリ２１に記録された情報をバイナリデータとして記録した情報である。換言すれば、システムメモリ２１上のアプリケーション２４１の動作に係る情報を一時的に待避させた情報である。スナップショット２４３は、起動情報の一例である。
【００２８】
このスナップショット２４３をシステムメモリ２１に復元し、予め定められた処理（以下、「復帰処理」ともいう。）を施すことにより、スナップショット２４３の作成時（例えば、情報処理装置２の前回のシャットダウンの直前の状態）に実現されていた状態（以下、単に「前回の状態」ともいう。）に戻るようになっている。
【００２９】
以下、スナップショット２４３を復元することによって前回の状態に戻す処理を「ハイバネーション」ともいう。また、動作中のプロセス２４１Ａに係る情報（以下、「プロセス情報」ともいう。）がスナップショット２４３として記憶部２４に記憶されている状態で情報処理装置２を停止した状態を「ハイバネーション状態」ともいう。ハイバネーション状態は、第１の停止状態の一例である。
【００３０】
これに対して、スナップショット２４３に情報を記録せずに情報処理装置２を停止させた状態を第２の停止状態ともいう。なお、「停止」とは、情報処理装置２の電源がＯＦＦとなった状態をいう。
【００３１】
リスト情報２４４は、ハイバネーションによらずに第２の停止状態から起動する対象となるアプリケーション２４１の一覧を示す情報である。一覧の詳細については、後述する。
【００３２】
入出力部２５は、例えば、タッチパネルディスプレイであり、液晶ディスプレイ等のディスプレイにタッチパネルを重合配置した構成を有する。なお、入出力部２５は、キーボード、マウス等で実現される入力部と、液晶ディスプレイ等で実現される表示部とを別体として有するものであってもよい。
【００３３】
（各手段２００〜２０５について）
次に、ＣＰＵコア２３を構成する各手段２００〜２０５の詳細について説明する。生成手段２００は、システムメモリ２１からプロセス情報を読み出すとともに、読み出したプロセス情報を含むスナップショット２４３を生成する。また、生成したスナップショット２４３を記憶部２４に記憶する。
【００３４】
復元手段２０１は、記憶部２４からスナップショット２４３を読み出し、スナップショット２４３に記録されたプロセス情報をシステムメモリ２１上に書き戻す（以下、単に「復元する」ともいう。）。
【００３５】
復帰処理手段２０２は、システムメモリ２１上に復元されたプロセス情報に応じて各プロセス２４１Ａを再開させるために必要な特定の処理を実行する。この特定の処理は、アプリケーション２４１ごとに予め定められる。
【００３６】
特定の処理には、例えば、ネットワーク（不図示）に接続するための条件の設定や、スナップショット２４３に記録された時刻と現在の時刻とを整合させるための時間の設定等の処理が含まれる。
【００３７】
計測手段２０３は、各種の時間の計測を行う。計測手段２０３は、例えば、スナップショット２４３に記録されたプロセス情報をシステムメモリ２１に復元するのに要する時間（以下、「復元時間」ともいう。）や、復帰処理手段２０２により実行された復帰処理に要する時間（以下、「復帰時間」ともいう。）、各アプリケーション２４１を第２の停止状態から起動するために要する時間（以下、単に「起動時間」又は「第２の起動時間」ともいう。）を計測する。第２の起動時間は、第２の時間の一例である。
【００３８】
なお、計測手段２０３は、第２の起動時間として、情報処理装置２が起動を開始した時間から各アプリケーション２４１を初期化する処理（以下、単に「初期化処理」ともいう。）が完了するまでの時間を計測してもよい。
【００３９】
より具体的には、計測手段２０３は、各アプリケーション２４１に係るプロセス２４１ＡがＣＰＵ２０を占有した時間（以下、「ＣＰＵ時間」ともいう。）を計測し、このＣＰＵ時間を第２の起動時間とみなしてよい。以下、ＣＰＵ時間を「Ｑｉ（ｉ＝１、２、…Ｎ：Ｎは、アプリケーション２４１の総数、以下同様。）」とする。
【００４０】
算出手段２０４は、計測手段２０３により計測された各種の時間を演算してその結果を算出する。算出手段２０４は、例えば、アプリケーション２４１ごとの復元時間や、各アプリケーション２４１を第１の停止状態から起動するために要する時間（以下、「ハイバネーション起動時間」又は「第１の起動時間」ともいう。）を算出して出力する。第１の起動時間は、第１の時間の一例である。
【００４１】
具体的には、算出手段２０４は、計測手段２０３により計測された復元時間と、アプリケーション２４１ごとのシステムメモリ２１の使用割合とに応じて、アプリケーション２４１ごとの復元時間を算出する。
【００４２】
より具体的には、算出手段２０４は、計測手段２０３により計測された復元時間に記憶部２４の管理情報テーブル２４２の「使用割合」欄に記録された値を掛けた値を各アプリケーション２４１の復元時間として算出する。
【００４３】
さらにより具体的には、計測手段２０３により計測された復元時間を「Ｔ」、各アプリケーション２４１がシステムメモリ２１を使用する割合を「Ｒｉ」（図２参照）とすると、算出手段２０４は、以下の関係式（１）に基づいてアプリケーション２４１ごとの復元時間ｔｉを算出する。
ｔｉ＝ＴｘＲｉ・・・（１）
【００４４】
また、算出手段２０４は、復元時間ｔｉと復帰時間とに応じてアプリケーション２４１ごとにハイバネーション起動時間（第１の起動時間）を算出する。具体的には、復帰時間を「τｉ」とすると、算出手段２０４は、以下の関係式（２）に基づいて、アプリケーション２４１ごとのハイバネーション起動時間（第１の起動時間）Ｐｉを算出する。
Ｐｉ＝ｔｉ＋τｉ＝ＴｘＲｉ＋τｉ・・・（２）
【００４５】
作成手段２０５は、アプリケーション２４１ごとに求めた第１の起動時間と第２の起動時間とをそれぞれ比較して、第２の起動時間が第１の起動時間よりも短いアプリケーション２４１を特定して一覧（以下、「リスト」ともいう。）を作成する。
【００４６】
換言すれば、作成手段２０５は、第２の停止状態から起動する方（すなわち、ハイバネーションを用いない起動、以下、「第２の起動」ともいう。）が、第１の停止状態から起動する（すなわち、ハイバネーションを用いる起動、以下、「第１の起動」ともいう。）よりも高速となるアプリケーション２４１を特定したリストを作成する。また、作成手段２０５は、作成したリストを記憶部２４に記憶する。
【００４７】
第２の起動が第１の起動よりも高速となるアプリケーション２４１、すなわちリスト情報２４４に記録されるアプリケーション２４１は、第１の実行単位の一例である。また、複数のアプリケーション２４１のうちリスト情報２４４に記録されるアプリケーション２４１以外のアプリケーション２４１は、第２の実行単位の一例である。
【００４８】
（実施の形態の動作）
次に、図１に示す情報処理装置２の動作の一例について図５、図６、図７、図８を参照して説明する。以下、情報処理装置２の動作を、（１）事前処理の動作、及び（２）情報処理装置２を起動する動作の２つの動作に分けてそれぞれ説明する。
【００４９】
（１）事前処理の動作
図５は、事前に行う処理（以下、単に「事前処理」ともいう。）の動作の一例を示すフローチャートである。事前処理とは、アプリケーション２４１ごとに第１の起動時間及び第２の起動時間をそれぞれ計測する処理をいう。
【００５０】
事前処理は、予め定められたタイミングで実行される。予め定められたタイミングには、例えば、以下のものが含まれる。
（Ａ）情報処理装置２が生産されたとき（例えば、出荷されるとき）
（Ｂ）アプリケーション２４１が更新されたとき
（Ｃ）ユーザから事前処理の実行が指示されたとき
【００５１】
事前処理では、まず、情報処理装置２を起動する（Ｓ１）。次に、計測手段２０３は、アプリケーション２４１ごとの起動時間（第２の起動時間）を計測する（Ｓ２）。
【００５２】
次に、生成手段２００は、システムメモリ２１からプロセス情報を読み出してスナップショット２４３を生成する（Ｓ３）。また、生成手段２００は、生成したスナップショット２４３を記憶部２４に記憶する。
【００５３】
次に、算出手段２０４は、アプリケーション２４１ごとのハイバネーション起動時間（第１の起動時間）を算出する（Ｓ４）。ステップＳ４に係る第１の起動時間の算出詳細については、後述する。
【００５４】
作成手段２０５は、計測手段２０３により計測された第２の起動時間及び算出手段２０４により算出された第１の起動時間に応じて、第２の停止状態から起動した方が第１の停止状態から起動するよりも高速となるアプリケーション２４１のリストを作成する（Ｓ５）。
【００５５】
（１−１）アプリケーション２４１ごとのハイバネーション起動時間
図６は、アプリケーション２４１ごとに第１の起動時間を測定する動作、すなわち上述したステップＳ４に係る動作の一例を示すフローチャートである。復元手段２０１は、記憶部２４からスナップショット２４３を読み出し、スナップショット２４３に記録されたプロセス情報をシステムメモリ２１上に復元する（Ｓ１０）。
【００５６】
このとき、計測手段２０３は、スナップショット２４３のプロセス情報をシステムメモリ２１に復元するのに要する時間（以下、「復元時間」ともいう。）を計測する（Ｓ１１）。
【００５７】
算出手段２０４は、計測手段２０３により計測された復元時間と、アプリケーション２４１ごとのシステムメモリ２１の使用割合とに応じて、アプリケーション２４１ごとの復元時間を算出する（Ｓ１２）。
【００５８】
次に、復帰処理手段２０２は、アプリケーション２４１ごとに復帰処理を実行する（Ｓ１３）。このとき、計測手段２０３は、アプリケーション２４１ごとに復帰時間を計測する（Ｓ１４）。
【００５９】
算出手段２０４は、復元時間ｔｉと復帰時間τｉとに応じてアプリケーション２４１ごとにハイバネーション起動時間（第１の起動時間）を算出する（Ｓ１５）。
【００６０】
以上のステップＳ１３からＳ１５の動作は、全てのアプリケーション２４１に対して、すなわちｉ＝１からＮまで実行される（Ｓ１６）。
【００６１】
図７は、第１の起動時間Ｐｉ及び第２の起動時間Ｑｉの測定の結果の一例を示す図である。図７に示すように、第１の起動時間Ｐｉ及び第２の起動時間Ｑｉは、アプリケーション２４１ごとに出力される。
【００６２】
上述のステップＳ５で説明したように、作成手段２０５は、アプリケーション２４１ごとに第１の起動時間Ｐｉと第２の起動時間Ｑｉとをそれぞれ比較し、第２の起動時間Ｑｉが第１の起動時間Ｐｉよりも短いアプリケーション２４１、すなわち、第２の停止状態から起動する方が第１の停止状態から起動するよりも速いアプリケーション２４１を特定してリスト化する。
【００６３】
なお、図７では、説明の便宜上、「リスト対象」欄を設け、リスト化の対象となるアプリケーション２４１を「〇」で示し、リスト化の対象とならないアプリケーション２４１を「×」で示した。
【００６４】
（２）情報処理装置２を起動する動作
図８は、本実施の形態に係る情報処理装置２を起動する動作の一例を示すフローチャートである。説明の便宜上、初めに情報処理装置２を第２の停止状態から起動させる（Ｓ２０）ところから説明を始める。情報処理装置２が起動することにより、上述したようにアプリケーション２４１がシステムメモリ２１に展開され各アプリケーション２４１が動作を開始する。
【００６５】
次に、生成手段２００は、記憶部２４のリスト情報２４４を参照し、システムメモリ２１からリスト情報２４４に記録されたアプリケーション２４１以外のアプリケーション２４１、すなわちリスト情報２４４に記録されていないアプリケーション２４１に係るプロセス情報を読み出してスナップショット２４３を生成する（Ｓ２１）。
【００６６】
次に、情報処理装置２の電源をＯＦＦにすると（Ｓ２２：Ｙｅｓ）、リスト情報２４４に記録されているアプリケーション２４１が終了する。なお、アプリケーション２４１は、起動中の他のプロセス２４１Ａとの整合性を保つ状態で終了する。「整合性を保つ状態」とは、例えば、アプリケーション２４１を共有メモリ（不図示）上で実行している場合に当該共有メモリが解放された状態や、ＣＯＷ（Copy On Write）領域が複製された状態等が含まれる。
【００６７】
再び情報処理装置２の電源をＯＮにすると（Ｓ２３：Ｙｅｓ）、情報処理装置２は、再び起動を開始する。この２回目の起動については、リスト情報２４４に記録されているアプリケーション２４１を第２の停止状態から起動し、リスト情報２４４に記録されていないアプリケーション２４１を第１の停止状態から起動する。以下、詳細を説明する。
【００６８】
復元手段２０１は、記憶部２４からスナップショット２４３を読み出し、スナップショット２４３に記録されたプロセス情報をシステムメモリ２１上に復元する（Ｓ２４）。すなわち、復元手段２０１は、リスト情報２４４に記録されていないアプリケーション２４１に係るプロセス情報をシステムメモリ２１上に復元する。
【００６９】
次に、復帰処理手段２０２は、リスト情報２４４に記録されていないアプリケーション２４１に対する復帰処理を実行する（Ｓ２５）。
【００７０】
次に、第２のリスト情報２４４に記録されているアプリケーション２４１を第２の停止状態から起動する（Ｓ２６）。
【００７１】
以上のようにして、リスト情報２４４に記録されたアプリケーション２４１については第２の停止状態から起動し、リスト情報２４４に記録されていないアプリケーション２４１については第１の停止状態から起動する。すなわち、リスト情報２４４に記録されたアプリケーション２４１は、ハイバネーションを用いずに起動され、リスト情報２４４に記録されていないアプリケーション２４１は、ハイバネーションにより起動される。
【００７２】
（比較例）
図９は、比較例に係る情報処理装置を起動する動作の一例を示すフローチャートである。比較例においても、図８と同様に、情報処理装置２を第２の停止状態から起動させる（Ｔ１）ところから説明を始める。図８で説明した内容と同一の内容については詳細な説明を省略する。
【００７３】
生成手段２００は、システムメモリ２１からアプリケーション２４１に係るプロセス情報を読み出してスナップショット２４３を生成する（Ｔ２）。図８で説明した本実施の形態と異なり、図９に示す比較例では、動作する全てのアプリケーション２４１に係るプロセス情報を含むスナップショット２４３を生成する。
【００７４】
次に、情報処理装置２の電源をＯＦＦにすると（Ｔ３：Ｙｅｓ）、全てのアプリケーション２４１が終了する。再び情報処理装置２の電源をＯＮにすると（Ｔ４：Ｙｅｓ）、情報処理装置２は、再び起動を開始する。この２回目の起動については、図８に示す本実施の形態と異なり、全てのアプリケーション２４１が第１の停止状態から起動する。
【００７５】
すなわち、復元手段２０１は、記憶部２４からスナップショット２４３を読み出し、スナップショット２４３に記録されたプロセス情報をシステムメモリ２１上に復元する（Ｔ５）。
【００７６】
次に、復帰処理手段２０２は、全てのアプリケーション２４１に対する復帰処理を実行する（Ｔ６）。
【００７７】
ここで、ステップＴ４の電源をＯＦＦからＯＮに切り替えて情報処理装置２を起動させてから、ステップＴ６の復帰処理の実行が完了するまでに要する時間は、起動の処理に要する見かけ上の時間を示している。
【００７８】
本実施の形態では、第２の停止状態から起動する方が第１の停止状態から起動するよりも高速となるアプリケーション２４１については、第２の停止状態から起動させる。
【００７９】
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。例えば、動作中のアプリケーション２４１が使用しているシステムメモリ２１上の領域がＯＳ１によって特定できればよく、例えば、１つのアプリケーション２４１に複数のプロセス２４１Ａが対応していてもよい。
【００８０】
また、例えば、第１の停止状態から起動するのと第２の停止状態から起動するのとでいずれが速いか遅いかをアプリケーション２４１ごとに切り分けられればよく、作成手段２０５は、第１の起動時間よりも第２の起動時間が長いアプリケーション２４１を特定してリスト化してもよい。
【００８１】
また、例えば、上述の実施の形態では、単一のＣＰＵ２０を設けたが、複数のＣＰＵ２０を設けてもよい。この場合、ＣＰＵ時間をＣＰＵ２０の個数で除した値を第２の起動時間としてもよい。
【００８２】
また、第１の起動時間よりも第２の起動時間の方が短いことが予め自明なアプリケーション２４１に対しては、それぞれの時間を計測する処理、すなわち、ステップＳ２（図５参照）のうち当該アプリケーション２４１に係る第２の起動時間の測定、ステップＳ１１からＳ１５（図６参照）は、省略してもよい。
【００８３】
ＣＰＵ２０の各手段は、それぞれ一部又は全部を再構成可能回路（ＦＰＧＡ：Field Programmable Gate Array）、特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）等のハードウエア回路によって構成してもよい。
【００８４】
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して提供することができ、クラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することもできる。
【符号の説明】
【００８５】
１  オペレーティングシステム（ＯＳ）
２  情報処理装置
２０  ＣＰＵ
２１  システムメモリ
２１Ａ  実メモリ領域
２２  ＲＯＭ
２３  ＣＰＵコア
２４  記憶部
２５  入出力部
２００  生成手段
２０１  復元手段
２０２  復帰処理手段
２０３  計測手段
２０４  算出手段
２０５  作成手段
２２０  ブートローダ
２４０  ＯＳイメージ
２４１  アプリケーション
２４１Ａ  プロセス
２４２  管理情報テーブル
２４３  スナップショット
２４４  リスト情報
【図１】
2020052501.tif 000003
【図２】
2020052501.tif 000004
【図３】
2020052501.tif 000005
【図４】
2020052501.tif 000006
【図５】
2020052501.tif 000007
【図６】
2020052501.tif 000008
【図７】
2020052501.tif 000009
【図８】
2020052501.tif 000010
【図９】
2020052501.tif 000011