再起動される計算機において、データが記憶される記憶領域を有するメモリと、前記メモリが有する記憶領域に所定の予約サイズだけ連続する予約領域を確保することにより、データを記憶できる記憶領域を前記予約領域を除いた連続する残領域だけに制限する領域予約部と、所定のプログラムを実行するためのプログラムデータを記憶する第1の記憶媒体から前記プログラムデータを読み出し、読み出したプログラムデータを前記残領域に記憶するプログラムロード部と、前記プログラムロード部によって記憶されたプログラムデータに従って前記プログラムの初期化処理を実行するプログラム初期化部と、前記プログラム初期化部が前記プログラムの初期化処理を完了したときに、前記残領域に記憶されている全てのデータをブートイメージとして第2の記憶媒体に保存するブートイメージ保存部と、前記計算機が再起動された場合、前記第2の記憶媒体から前記ブートイメージを読み出し、読み出したブートイメージを前記残領域と同じ記憶領域に記憶するイメージロード部と、前記イメージロード部によって記憶されたブートイメージを用いて前記プログラムを実行するプログラム実行部とを備えたことを特徴とする計算機。前記計算機は、さらに、前記プログラム初期化部が前記プログラムの初期化処理を完了したときに、前記領域予約部により確保された予約領域を解放する領域解放部を備え、前記ブートイメージ保存部は、前記領域解放部により前記予約領域が解放されたときに前記ブートイメージを前記第2の記憶媒体に保存することを特徴とする請求項1記載の計算機。前記計算機は、さらに、前記所定の予約サイズと所定の最大サイズとを記憶する予約サイズ記憶部と、前記プログラムロード部が前記プログラムデータを前記残領域に記憶するときと前記プログラム初期化部が前記プログラムの初期化処理を実行するときとの少なくともいずれかのときに前記残領域に空き領域が不足したか否かを判定する領域不足判定部と、前記領域不足判定部によって前記残領域に空き領域が不足したと判定されなかった場合、前記最大サイズを前記予約サイズで更新し、前記予約サイズに所定の拡張サイズを加算して前記予約サイズを更新する予約サイズ更新部と、前記領域不足判定部によって前記残領域に空き領域が不足したと判定されなかった場合、前記領域予約部によって確保された予約領域を解放する領域初期化部とを備え、前記領域予約部は、前記領域初期化部によって前記予約領域が解放された場合、前記予約サイズ更新部によって更新された予約サイズだけ予約領域を確保し、前記プログラムロード部は、前記領域予約部によって予約領域が確保された場合、前記予約領域を除いた残領域に前記プログラムデータを記憶し、前記プログラム初期化部は、前記プログラムロード部によって前記プログラムデータが記憶された場合、記憶されたプログラムデータに従って前記プログラムの初期化処理を実行し、前記領域不足判定部は、前記残領域に空き領域が不足したか否かを判定し、前記予約サイズ更新部は、前記領域不足判定部によって前記残領域に空き領域が不足したと判定された場合、前記予約サイズ記憶部に記憶されている予約サイズと最大サイズとに基づいて前記予約サイズを前記最大サイズで更新し、前記領域初期化部は、前記領域不足判定部によって前記残領域に空き領域が不足したと判定された場合、前記領域予約部によって確保された予約領域を解放し、前記領域予約部は、前記領域初期化部によって前記予約領域が解放された場合、前記予約サイズ更新部によって更新された予約サイズだけ予約領域を確保し、前記プログラムロード部は、前記領域予約部によって予約領域が確保された場合、前記予約領域を除いた残領域に前記プログラムデータを記憶し、前記プログラム初期化部は、前記プログラムロード部によって前記プログラムデータが記憶された場合、記憶されたプログラムデータに従って前記プログラムの初期化処理を実行し、前記ブートイメージ保存部は、前記プログラム初期化部が前記プログラムの初期化処理を完了したときに、前記残領域に記憶されている全てのデータをブートイメージとして第2の記憶媒体に保存することを特徴とする請求項1または請求項2記載の計算機。前記計算機は、さらに、前記メモリが有する記憶領域のうち所定の割当領域をバーチャルマシンに割り当てるバーチャルマシンモニタ部を備え、前記領域予約部は、前記バーチャルマシンモニタ部により割り当てられた割当領域に所定の予約サイズだけ連続する予約領域を確保することにより、データを記憶できる記憶領域を前記予約領域を除いた連続する残領域だけに制限し、前記イメージロード部は、前記バーチャルマシンが再起動された場合、前記第2の記憶媒体から前記ブートイメージを読み出し、読み出したブートイメージを前記残領域と同じ記憶領域に記憶することを特徴とする請求項1から請求項3いずれかに記載の計算機。前記領域予約部と、前記プログラムロード部と、前記プログラム初期化部と、前記ブートイメージ保存部とを前記バーチャルマシンモニタ部が備えたことを特徴とする請求項4記載の計算機再起動される計算機の再起動方法において、領域予約部が、メモリが有する記憶領域に所定の予約サイズだけ連続する予約領域を確保することにより、データを記憶できる記憶領域を前記予約領域を除いた連続する残領域だけに制限し、プログラムロード部が、所定のプログラムを実行するためのプログラムデータを記憶する第1の記憶媒体から前記プログラムデータを読み出し、読み出したプログラムデータを前記残領域に記憶し、プログラム初期化部が、前記プログラムロード部によって記憶されたプログラムデータに従って前記プログラムの初期化処理を実行し、ブートイメージ保存部が、前記プログラム初期化部が前記プログラムの初期化処理を完了したときに、前記残領域に記憶されている全てのデータをブートイメージとして第2の記憶媒体に保存し、イメージロード部が、前記計算機が再起動された場合、前記第2の記憶媒体から前記ブートイメージを読み出し、読み出したブートイメージを前記残領域と同じ記憶領域に記憶し、プログラム実行部が、前記イメージロード部によって記憶されたブートイメージを用いて前記プログラムを実行することを特徴とする計算機の再起動方法。メモリが有する記憶領域に所定の予約サイズだけ連続する予約領域を確保することにより、データを記憶できる記憶領域を前記予約領域を除いた連続する残領域だけに制限する領域予約処理と、所定のプログラムを実行するためのプログラムデータを記憶する第1の記憶媒体から前記プログラムデータを読み出し、読み出したプログラムデータを前記残領域に記憶するプログラムロード処理と、前記プログラムロード処理によって記憶されたプログラムデータに従って前記プログラムを初期化するプログラム初期化処理と、前記プログラム初期化処理が完了したときに、前記残領域に記憶されている全てのデータをブートイメージとして第2の記憶媒体に保存するブートイメージ保存処理と、計算機が再起動された場合、前記第2の記憶媒体から前記ブートイメージを読み出し、読み出したブートイメージを前記残領域と同じ記憶領域に記憶するイメージロード処理と、前記イメージロード処理によって記憶されたブートイメージを用いて前記プログラムを実行するプログラム実行処理とを前記計算機に実行させる再起動プログラム。本発明は、例えば、計算機例えば、組込み機器を高速に起動できるようにすることを目的とする。本発明の計算機は、データが記憶される記憶領域を有するメモリと、前記メモリが有する記憶領域に所定の予約サイズだけ連続する予約領域を確保することにより、データを記憶できる記憶領域を前記予約領域を除いた連続する残領域だけに制限する領域予約部と、所定のプログラムを実行するためのプログラムデータを記憶する第1の記憶媒体から前記プログラムデータを読み出し、読み出したプログラムデータを前記残領域に記憶するプログラムロード部と、前記プログラムロード部によって記憶されたプログラムデータに従って前記プログラムの初期化処理を実行するプログラム初期化部と、前記プログラム初期化部が前記プログラムの初期化処理を完了したときに、前記残領域に記憶されている全てのデータをブートイメージとして第2の記憶媒体に保存するブートイメージ保存部と、前記計算機が再起動された場合、前記第2の記憶媒体から前記ブートイメージを読み出し、読み出したブートイメージを前記残領域と同じ記憶領域に記憶するイメージロード部と、前記イメージロード部によって記憶されたブートイメージを用いて前記プログラムを実行するプログラム実行部とを備える。本発明によれば、例えば、ブートイメージのサイズを小さくしてブートイメージのロード時間を短縮することにより、計算機例えば、組込み機器を高速に起動することができる。実施の形態1.高速に起動するためのブートイメージを生成し、生成したブートイメージを用いて高速に起動する計算機について説明する。図1は、実施の形態1における情報システム100のハードウェア構成図である。実施の形態1における情報システム100のハードウェア構成について、図1に基づいて説明する。情報システム100は、コンピュータ、組込み機器、演算装置などの計算機を意味する。情報システム100は、CPU101CentralProcessingUnit、ブリッジ102、主メモリ103、IOデバイス104IO:Input/Output、通常起動用メモリ105、高速起動用メモリ106およびROM107リードオンリーメモリを備える。CPU101は、ブリッジ102およびバス102を介して主メモリ103、IOデバイス104、通常起動用メモリ105、高速起動用メモリ106またはROM107を制御する。CPU101は、単一のCPUコアを内蔵したチップによって構成されても、複数のCPUコアを内蔵したチップマルチコアCPUで構成されても構わない。また、情報システム100は、複数のCPU101を備えても構わない。さらに、CPU101は、ブリッジ102や各メモリを内蔵しても構わない。IOデバイス104は、情報システム100の入出力を制御する。主メモリ103は揮発性メモリまたは不揮発性メモリである。RAMランダムアクセスメモリは主メモリ103の一例である。通常起動用メモリ105、高速起動用メモリ106およびROM107は不揮発性メモリである。通常起動用メモリ105第1の記憶媒体の一例には、OSデータ191や複数のアプリデータ192プログラムデータの一例が予め記憶される。OSデータ191とは、OSオペレーティングシステムと呼ばれるプログラムやOSで使用する各種データを含んだデータである。アプリデータ192とは、アプリケーションプログラムやアプリケーションプログラムで使用する各種データを含んだデータである。以下、アプリケーションプログラムをアプリという。OSデータ191やアプリデータ192はブートイメージ199を生成する際に主メモリ103メモリの一例にロードされ、CPU101により主メモリ103から読み出されて実行される。高速起動用メモリ106第2の記憶媒体の一例には、生成されたブートイメージ199が保存される。ブートイメージ199は情報システム100の高速起動時に主メモリ103にロードされ、CPU101により主メモリ103から読み出されて実行される。ブートイメージ199については後述する。ROM107には、ブートローダ190と呼ばれるプログラムが予め記憶される。ブートローダ190は、情報システム100の起動時にCPU101により読み出されて実行される。後述する~部として説明する機能は、OSまたはブートローダ190の一部としてCPU101により実行される。すなわち、プログラムは、~部としてコンピュータを機能させるものであり、また~部の手順や方法をコンピュータに実行させるものである。実施の形態において構成図またはフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。実施の形態において~部として説明するものは~回路、~装置、~機器であってもよく、また~ステップ、~手順、~処理であってもよい。すなわち、~部として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。図2は、実施の形態1における情報システム100の機能構成図である。実施の形態1における情報システム100の機能構成について、図2に基づいて説明する。情報システム100は、OS部110とブートローダ部120とを備える。情報システム100が起動された際、主メモリ103予約サイズ記憶部の一例にはOSデータ191やアプリデータ192図示省略の他に、メモリ管理テーブル193や予約パラメータ194が記憶される。メモリ管理テーブル193および予約パラメータ194については後述する。OS部110はCPU101図1参照を用いてOSを実行し、ブートローダ部120はCPU101を用いてブートローダ190を実行する。OS部110は、予約パラメータ指定部111、メモリ領域予約部112、アプリ起動部113、メモリ領域解放部114、ブートイメージ保存部115、アプリ実行部116およびOS制御部119を備える。ブートローダ部120は、ブートイメージロード部121とブート制御部129とを備える。予約パラメータ指定部111は、情報システム100が起動された際に予約サイズを含んだ予約パラメータ194を主メモリ103に記憶する。メモリ領域予約部112領域予約部の一例は、主メモリ103が有する記憶領域に予約パラメータ194で指定された予約サイズだけ連続する予約領域を確保する。これにより、メモリ領域予約部112は、データを記憶できる記憶領域を予約領域を除いた連続する残領域後述する起動領域だけに制限する。アプリ起動部113プログラムロード部、プログラム初期化部の一例は、通常起動用メモリ105からアプリデータ192を読み出し、読み出したアプリデータ192を残領域に記憶する。アプリ起動部113は、残領域に記憶したアプリデータに従ってアプリの初期化処理を実行する。メモリ領域解放部114領域解放部の一例は、アプリ起動部113がアプリの初期化処理を完了したときに、メモリ領域予約部112により確保された予約領域を解放する。ブートイメージ保存部115は、アプリ起動部113がアプリの初期化処理を完了したときに、残領域に記憶されている全てのデータ後述するメモリイメージをブートイメージ199として高速起動用メモリ106に保存する。例えば、ブートイメージ保存部115は、メモリ領域解放部114により予約領域が解放されたときにブートイメージ199を高速起動用メモリ106に保存する。OS制御部119は、OSの初期化処理や情報システム100の停止処理を行う。ブート制御部129は、OSデータ191をロードしてOS部110の実行を開始する。ブートイメージロード部121イメージロード部の一例は、情報システム100が再起動された場合、高速起動用メモリ106からブートイメージ199を読み出し、読み出したブートイメージ199を残領域と同じ記憶領域に記憶する。アプリ実行部116プログラム実行部の一例は、ブートイメージロード部121によって記憶されたブートイメージ199を用いてアプリを実行する。図3は、実施の形態1における情報システム100の高速起動方法を示すフローチャートである。実施の形態1における情報システム100の高速起動方法計算機の再起動方法の一例について、図3に基づいて説明する。S100において、OS部110はブートイメージ199を作成する。ブートイメージ作成処理S100の詳細については別途説明する。以後、情報システム100を再起動する毎に、S200からS400を実行する。S200において、ブートローダ部120は、ブートイメージ199を主メモリ103にロードすることにより情報システム100を起動する。高速起動処理S200の詳細については別途説明する。S200の後、S300に進む。S300において、OS部110のアプリ実行部116は、ブートイメージ199に含まれるアプリデータに従ってアプリを実行する。S300の後、S400に進む。S400において、OS部110のOS制御部119は、所定の停止処理を実行して情報システム100を停止する。図4は、実施の形態1におけるブートイメージ作成処理S100のフローチャートである。実施の形態1におけるブートイメージ作成処理図3のS100について、図4に基づいて説明する。まず、ブートイメージ作成処理S100の概要について説明する。ブート制御部129は、OSデータ191を主メモリ103にロードするS110。予約パラメータ指定部111は予約パラメータ194を主メモリ103にロードしS120、メモリ領域予約部112は予約パラメータ194に基づいて予約領域を主メモリ103に確保するS130。OS制御部119はOSを初期化するS140。アプリ起動部113はアプリデータ192を主メモリ103にロードしS150、アプリを初期化するS160。メモリ領域解放部114は予約領域を解放するS170。ブートイメージ保存部115は、メモリイメージをブートイメージ199として保存するS180。図5、図6は、実施の形態1におけるブートイメージ作成処理S100の概要図である。図4に示すブートイメージ作成処理S100の概要について、図5および図6に基づいて説明する。図5、6において、OSはOS用に確保された記憶領域以下、OS領域というを示し、パラメータは予約パラメータ194が記憶された記憶領域を示し、メモリ管理テーブルはメモリ管理テーブル193が記憶された記憶領域を示す。パラメータおよびメモリ管理テーブルはOS領域に含まれるが、OSと区別して記載した。また、アプリnはアプリn用に確保された記憶領域以下、アプリ領域というを示す。S130の終了時とS160の終了時とS170の終了時とのそれぞれの主メモリ103の状態を図5に示す。主メモリ103に予約領域103bが確保された後S130、起動領域103aを用いてOSの初期化処理S140とアプリの初期化処理S160とが行われ、その後、予約領域103bが解放されるS170。起動領域103aとは、主メモリ103の記憶領域のうち予約領域103bを除いた残りの記憶領域のことである。通常、起動領域103aは主メモリ103の記憶領域の先頭部分に確保され、予約領域103bは主メモリ103の記憶領域の最終部分に確保される。S170の終了時の主メモリ103と、S180で高速起動用メモリ106に保存されるブートイメージ199との関係を図6に示す。予約領域103bが解放された後S170、起動領域103aのメモリイメージがブートイメージ199として高速起動用メモリ106に保存されるS180。起動領域103aのメモリイメージとは、起動領域103a使用領域および空き領域の全体をコピーしたデータである。起動領域103aのメモリイメージには、起動領域103aに記憶されている各データが起動領域103a内と同じデータ位置相対位置に含まれる。次に、図4に戻り、ブートイメージ作成処理S100の詳細について説明する。S110において、ブート制御部129は、通常起動用メモリ105からOSデータ191を読み出し、読み出したOSデータ191を主メモリ103に記憶する図5内の左図OSパラメータメモリ管理テーブル。OSデータ191には主メモリ103の使用領域、空き領域および予約領域を管理するためのメモリ管理テーブル193が含まれる。メモリ管理テーブル193には、未使用の記憶領域空き領域であることを示すフラグ値0が初期値として記憶領域のアドレスに対応付けて設定されている。また、OSデータ191には予約パラメータ194が設定されるパラメータデータが含まれる。OSデータ191が主メモリ103に記憶されることによりOS部110の実行が開始される。つまり、OSの実行が開始される。また、OS制御部119は、使用中の記憶領域使用領域であることを示すフラグ値1をOSデータ191の記憶領域を示すアドレスに対応付けて、メモリ管理テーブル193に設定する。また、OSリジューム処理やIOデバイス104の起動処理が行われる後述する図7のS220、S230を参照のこと。S110の後、S120に進む。S120において、予約パラメータ指定部111は予約パラメータ194を含んだOSブートパラメータを取得し、取得したOSブートパラメータに含まれる予約パラメータ194を主メモリ103に記憶する。OSブートパラメータは、情報システム100が起動される際に情報システム100の利用者によって指定される。例えば、OSブートパラメータは、OS191を起動するためのOSブート引数、またはOS191の構成情報を指定するためのコンフィグレーションパラメータとして指定される。予約パラメータ194は、主メモリ103に確保する予約領域103bの開始アドレスと予約サイズとの組からなる。S120の後、S130に進む。S130において、メモリ領域予約部112は主メモリ103に記憶された予約パラメータ194を参照し、参照した予約パラメータ194に基づいて予約領域103bを主メモリ103に確保する図5参照。以後、予約領域103bは解放されるまで使用することができない。予約領域103bの確保はメモリ管理テーブル193を更新することにより行われる。つまり、メモリ領域予約部112は、予約パラメータ194に指定された開始アドレスから予約パラメータ194に指定された予約サイズだけ連続する記憶領域を予約領域103bとしてメモリ管理テーブル193に設定する。例えば、メモリ領域予約部112は、予約領域103bであることを示すフラグ値2を予約領域103bを示すアドレスに対応付けてメモリ管理テーブル193に設定する。S130の後、S140に進む。S140において、OS制御部119は、主メモリ103に記憶されたOSデータ191に従って、起動領域103aを用いてOSの従来の初期化処理を行う。起動領域103aとは、主メモリ103の記憶領域のうち予約領域103bを除いた残りの記憶領域のことである図3参照。OSの初期化処理では、OSを実行するための各種データを記憶するためにOS用の記憶領域OS領域が起動領域103aに確保され、また不要になった記憶領域が解放される。OS制御部119は記憶領域の確保または解放に応じてメモリ管理テーブル193の設定を行う。S140の後、S150に進む。S150において、アプリ起動部113は、アプリデータ192を通常起動用メモリ105から読み出し、読み出したアプリデータ192を主メモリ103の起動領域103aに記憶する。アプリ起動部113は、アプリデータ192を記憶した記憶領域を使用領域としてメモリ管理テーブル193の設定を行う。S150の後、S160に進む。S160において、アプリ起動部113は、主メモリ103に記憶したアプリデータ192に従って、起動領域103aを用いて各アプリの従来の初期化処理を行う。アプリの初期化処理では、アプリを実行するための各種データを記憶するためにアプリ用の記憶領域アプリ領域が起動領域103aに確保され、また不要になった記憶領域が解放される。アプリ起動部113は記憶領域の確保または解放に応じてメモリ管理テーブル193の設定を行う。S160により各アプリを実行することが可能な状態になる。通常、アプリ特に、OSと共に実行を開始するスタートアッププログラムを実行することが可能な状態になるまでの処理S110~S160を情報システム100の起動処理という。S160の後、S170に進む。S170において、メモリ領域解放部114は、主メモリ103に記憶された予約パラメータ194を参照し、参照した予約パラメータ194に基づいて予約領域103bを解放する。以後、予約領域103bであった記憶領域を使用することが可能である。つまり、メモリ領域解放部114は、空き領域を示すフラグ値0を予約領域103bのアドレスに対応付けてメモリ管理テーブル193に設定する。S170の後、S180に進む。S180において、ブートイメージ保存部115は、主メモリ103に記憶された予約パラメータ194を参照し、参照した予約パラメータ194に基づいて起動領域103aのメモリイメージをブートイメージ199として高速起動用メモリ106に保存する。S180により、ブートイメージ作成処理S100は終了する。図7は、実施の形態1における高速起動処理S200のフローチャートである。実施の形態1における高速起動処理図3のS200について、図7に基づいて説明する。S210において、ブートイメージロード部121は、高速起動用メモリ106からブートイメージ199を読み出し、読み出したブートイメージ199を主メモリ103に記憶する。これにより、各アプリを実行することが可能な状態になる。S210の後、S220に進む。S220において、ブート制御部129は、従来のOSリジューム処理を実行してOS部110に制御を移す。OSリジューム処理では、例えば、OSの制御データがCPU101の制御レジスタに設定復元される。S220の後、S230に進む。S230において、OS制御部119は、I/Oドライバとして機能し、CPU101のI/Oレジスタの初期設定を行う。そして、IOデバイス104の実行が開始される。これにより、情報システム100の状態は、ブートイメージ199を保存したときと同じ状態に戻る。S230により、高速起動処理S200は終了する。図8は、実施の形態1におけるブートイメージロード処理S210の概要図である。実施の形態1におけるブートイメージロード処理図7のS210の概要について、図8に基づいて説明する。ブートイメージロード処理図7のS210により、ブートイメージ199は高速起動用メモリ106から読み出され、主メモリ103の記憶領域の先頭部分に記憶される。つまり、ブートイメージ199は、主メモリ103の起動領域103a図6参照と同じ記憶領域に記憶される。実施の形態1において、例えば、以下のような情報システム100について説明した。情報システム100は、OSとアプリケーションとの起動が完了した後のメモリイメージを不揮発メモリ高速起動用メモリ106に保存し、このメモリイメージをブートイメージとして起動する。情報システム100は、ブートイメージを作成するためにメモリ領域予約部112、メモリ領域解放部114、予約パラメータ指定部111および予約パラメータ194を備える。メモリ領域予約部112は、物理メモリ領域主メモリ103の一部を予約し、OSがその領域を他に割り当てることを禁止する。メモリ領域解放部114は、予約された物理メモリ領域を解放し、OSがその領域を未使用メモリとして必要な処理に割り当てることを可能にする。予約パラメータ指定部111は、予約する物理メモリ領域のサイズ予約サイズやアドレス情報開始アドレスをOSのブート時にパラメータ予約パラメータ194として記憶する。予め物理メモリの一部予約領域を予約することにより、使用中の物理メモリを集約することができる。集約した使用中の物理メモリだけをブートイメージとして保存することにより、ブートイメージを保存する不揮発メモリ高速起動用メモリ106のサイズを削減することができる。つまり、不揮発メモリの記憶容量は小さくても構わないため、情報システム100の小型化および低価格化という効果を奏することができる。さらに、ブートイメージが小さいため、不揮発メモリから主メモリへのブートイメージの転送が早く終了し、情報システム100を短い時間で起動することができる。図9は、従来のブートイメージの一例を示す図である。図9に示すように、従来は、予約領域図5参照が無いため、主メモリ全体を利用してOSおよびアプリが初期化され、主メモリ全体をブートイメージとして保存する必要があった。一方、実施の形態図5、図6参照では、予約領域が有るため、主メモリのうち予約領域を除いた残りの記憶領域起動領域を利用してOSおよびアプリを初期化し、この残りの記憶領域だけをブートイメージとして保存することができる。また、実施の形態では、ブートイメージ作成時に、物理メモリの使用領域と未使用領域との判定特許文献1参照や、物理メモリの再配置処理特許文献2参照のような複雑な処理を行う必要がない。このため、OSの変更を最小限に抑えることができる。また、従来と同様の起動処理ブートイメージの記憶で情報システム100を高速起動することができる。実施の形態2.ブートイメージを生成するための最適な予約サイズを判定する形態について説明する。以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。図10は、実施の形態2における情報システム100の機能構成図である。実施の形態2における情報システム100の機能構成について、図10に基づいて説明する。主メモリ103には、予約領域の最大値予約最大値195を設定する変数を記憶する。この変数は、予約パラメータ194に含んでも、予約パラメータ194とは別に設けてもどちらでも構わない。OS部110は、実施の形態1の構成図2参照に加えて、メモリ不足検出部117と予約パラメータ更新部118とを備える。メモリ不足検出部117領域不足判定部の一例は、アプリ起動部113がアプリデータ192を残領域起動領域に記憶するときとアプリ起動部113がアプリの初期化処理を実行するときとの少なくともいずれかのときに残領域に空き領域が不足したか否かを判定する。予約パラメータ更新部118予約サイズ更新部の一例は、メモリ不足検出部117によって残領域に空き領域が不足したと判定されなかった場合、予約最大値195最大サイズを予約サイズで更新し、予約サイズに所定の拡張サイズを加算して予約サイズを更新する。OS制御部119領域初期化部の一例は、メモリ不足検出部117によって残領域に空き領域が不足したと判定されなかった場合、メモリ領域予約部112によって確保された予約領域を解放する。メモリ領域予約部112は、OS制御部119によって予約領域が解放された場合、予約パラメータ更新部118によって更新された予約サイズだけ予約領域を確保する。アプリ起動部113は、メモリ領域予約部112によって予約領域が確保された場合、予約領域を除いた残領域起動領域にアプリデータ192を記憶する。アプリ起動部113は、記憶したアプリデータ192に従ってアプリの初期化処理を実行する。メモリ不足検出部117は、残領域に空き領域が不足したか否かを判定する。予約パラメータ更新部118は、メモリ不足検出部117によって残領域に空き領域が不足したと判定された場合、予約サイズを予約最大値195で更新する。OS制御部119は、メモリ不足検出部117によって残領域に空き領域が不足したと判定された場合、メモリ領域予約部112によって確保された予約領域を解放する。メモリ領域予約部112は、OS制御部119によって予約領域が解放された場合、予約パラメータ更新部118によって更新された予約サイズだけ予約領域を確保する。アプリ起動部113は、メモリ領域予約部112によって予約領域が確保された場合、予約領域を除いた残領域起動領域にアプリデータ192を記憶する。アプリ起動部113は、記憶したアプリデータ192に従ってアプリの初期化処理を実行する。ブートイメージ保存部115は、アプリ起動部113がアプリの初期化処理を完了したときに、残領域に記憶されている全てのデータメモリイメージをブートイメージ199として高速起動用メモリ106に保存する。情報システム100の高速起動方法の処理の流れは実施の形態1図3参照と同じである。但し、ブートイメージ作成処理S100は実施の形態1と一部が異なる。図11は、実施の形態2におけるブートイメージ作成処理S100のフローチャートである。実施の形態2におけるブートイメージ作成処理図3のS100について、図11に基づいて説明する。以下、実施の形態1図4で説明したS110からS160の処理を領域予約起動処理という。まず、情報システム100は、予約パラメータ194に設定されている予約サイズの初期値を用いて、第1の領域予約起動処理図4のS110からS160を実行する。但し、予約サイズの初期値は大きめの値にする。例えば、情報システム100の利用者は、予約サイズとして主メモリ103の記憶サイズを指定する。第1の領域予約起動処理S110-S160において主メモリ103にメモリ不足空き領域の不足が発生した場合、メモリ不足が発生した処理で第1の領域予約起動処理S110-S160は終了する。例えば、メモリ不足が発生した場合、記憶領域の確保が失敗してメモリ不足のOS例外が発生するか、またはアプリの初期化が失敗してアプリが起動しない。第1の領域予約起動処理S110-S160の後、S191に進む。S191において、メモリ不足検出部117は、領域予約起動処理S110-S160でメモリ不足が発生したか否かを判定する。図12は、実施の形態2におけるメモリ不足判定処理S191のフローチャートである。実施の形態2におけるメモリ不足判定処理S191について、図12に基づいて説明する。S191aにおいて、メモリ不足検出部117は、第1の領域予約起動処理S110-S160でメモリ不足のOS例外が発生したか否かを判定する。メモリ不足のOS例外が発生した場合YES、メモリ不足検出部117はメモリ不足が発生したと判定するS191c。メモリ不足のOS例外が発生しなかった場合NO、S191bに進む。S191bにおいて、メモリ不足検出部117は、第1の領域予約起動処理S110-S160で起動すべき所定の全てのアプリが正常に起動しているか否かを判定する。所定の全てのアプリが正常に起動している場合YES、メモリ不足検出部117はメモリ不足が発生しなかったと判定する191d。所定の全てのアプリのうち少なくともいずれかのアプリが正常に起動していない場合NO、メモリ不足検出部117はメモリ不足が発生したと判定するS191c。図11に戻り、ブートイメージ作成処理S100の説明を続ける。S191での判定の結果、第1の領域予約起動処理S110-S160でメモリ不足が発生した場合YES、S194に進む。S191での判定の結果、第1の領域予約起動処理S110-S160でメモリ不足が発生しなかった場合NO、S192に進む。S192において、予約パラメータ更新部118は、予約パラメータ194を参照し、予約パラメータ194に設定されている予約サイズを予約最大値195の変数に設定する。さらに、予約パラメータ更新部118は、予約サイズに所定の拡張サイズ例えば、16メガバイトを加算した値を新たな予約サイズとして算出し、算出した新たな予約サイズでOSブートパラメータ内の予約サイズを更新する。更新後の予約サイズは、次回の領域予約起動処理特に、S130で用いられる。S192の後、S193に進む。S193において、OS制御部119は、ソフトウェアによる情報システム100の従来の再起動処理を行う。通常、ソフトウェアによる再起動処理はOSの機能として提供され、このOSの機能を呼び出すことにより実行される。再起動処理が行われることにより、主メモリ103の全ての記憶領域が使用可能になる。つまり、予約領域が解放された状態になる。S193の後、第1の領域予約起動処理S110-S160に戻る。今回の領域予約起動処理S110-S160ではS192で拡張された予約サイズを用いて、前回の領域予約起動処理S110-S160の予約領域よりも大きな予約領域が確保される。このため、今回の領域予約起動処理S110-S160でメモリ不足が発生する可能性がある。以下に、第1の領域予約起動処理S110-S160でメモリ不足が発生した場合S191、NOの処理について説明する。S194において、予約パラメータ更新部118は、予約最大値195の変数を参照し、予約最大値195でOSブートパラメータ内の予約サイズを更新する。更新後の予約サイズは、領域予約起動処理S110-S160でメモリ不足が発生しない最大の予約サイズである。つまり、更新後の予約サイズは、ブートイメージ199として保存される起動領域を最小にする最適な予約サイズである。S194の後、S191に進む。S195において、OS制御部119は、ソフトウェアによる情報システム100の従来の再起動処理を行う。S195の後、第2の領域予約起動処理S110-S160に進む。第2の領域予約起動処理S110-S160では、S194で予約最大値195に更新された予約サイズを用いて最適な予約領域が確保される。第2の領域予約起動処理S110-S160の後、S170に進む。S170において、メモリ領域解放部114は、実施の形態1図4で説明したように予約領域を解放する。S170の後、S180に進む。S180において、ブートイメージ保存部115は、実施の形態1図4で説明したように起動領域のメモリイメージをブートイメージ199としてブートローダ部120に保存する。S180により、ブートイメージ作成処理S100は終了する。ブートイメージ199を用いた高速起動処理S200は実施の形態1図7と同じである。実施の形態2において、例えば、以下のような情報システム100について説明した。情報システム100は、OS制御部119、予約パラメータ更新部118、メモリ不足検出部117および予約最大値195を備える。OS制御部119は、OSの再起動処理を呼び出すことにより、自動的な再起動を可能とする。予約パラメータ更新部118は、物理メモリ領域の予約サイズ情報を自動的に更新する。メモリ不足検出部117は、OSまたはアプリケーションの起動完了までに発生したメモリ不足エラーを検出する。予約最大値195は、OSおよびアプリケーションがメモリ不足エラーを発生せずに起動したときのメモリ領域予約パラメータ予約サイズである。情報システム100は、物理メモリ領域の予約サイズを一定値づつ増加させて再起動を繰り返し、正常に動作する物理メモリ領域の予約サイズの最大値を取得する。そして、情報システム100は、予約サイズが最大値である場合のブートイメージを記録する。これにより、最も小さいブートイメージを自動的に作成することができる。そして、ブートイメージを保存する不揮発メモリのサイズを削減すると共に、情報システム100を短時間で起動することができる。実施の形態3.情報システム100内で複数のバーチャルマシンを高速に起動する形態について説明する。以下、実施の形態1、2と異なる事項について主に説明する。説明を省略する事項については実施の形態1、2と同様である。図13は、実施の形態3における情報システム100の機能構成図である。実施の形態3における情報システム100の機能構成について、図13に基づいて説明する。情報システム100は、仮想化技術により複数のバーチャルマシンを制御する。仮想化技術とは、ソフトウェアによって仮想的な計算機バーチャルマシンを実装する技術である。仮想化技術では、CPUやメモリなどのハードウェア資源がバーチャルマシン毎に割り当てられる。情報システム100は、バーチャルマシンモニタ部130と複数のバーチャルマシン部200とを備える。但し、バーチャルマシン部200は一つであっても構わない。バーチャルマシン部200は、バーチャルマシンの機能例えば、バーチャルマシンのOSを実行する。バーチャルマシンモニタ部130は複数のバーチャルマシン部200を制御する。例えば、バーチャルマシンモニタ部130は、主メモリ103の記憶領域のうち所定の割当領域を割当メモリ203として各バーチャルマシン部200に割り当てる。図14は、実施の形態3におけるバーチャルマシン部200の機能構成図である。図14に示すように、バーチャルマシン部200の機能構成は、実施の形態1で説明した情報システム100と同様である。但し、バーチャルマシン部200は、実施の形態1の情報システム100の主メモリ103に相当する構成として、バーチャルマシンモニタ部130によって割り当てられた割当メモリ203を備える。つまり、メモリ領域予約部112は、バーチャルマシンモニタ部130により割り当てられた割当メモリ203に予約パラメータ194で指定された予約サイズだけ連続する予約領域を確保する。これにより、データを記憶できる記憶領域を予約領域を除いた連続する残領域起動領域だけに制限することができる。また、ブートイメージロード部121は、バーチャルマシン部200が再起動された場合、高速起動用メモリ106から当該バーチャルマシン部200のブートイメージ199を読み出し、読み出したブートイメージを残領域と同じ記憶領域に記憶する。バーチャルマシン部200の高速起動方法は、実施の形態1で説明した情報システム100の高速起動方法図3参照と同様である。また、バーチャルマシン部200のブートイメージ作成処理S100および高速起動処理S200は、実施の形態1で説明した情報システム100のブートイメージ作成処理S100図4参照および高速起動処理S200図7参照と同様である。バーチャルマシン部200は、実施の形態2の情報システム100と同様に、最大の予約サイズを判定し、最適なブートイメージ199を作成してもよい。実施の形態3において、例えば、以下のような情報システム100について説明した。情報システム100は、ハードウェアの仮想化機能を持つバーチャルマシンモニタ上で実施の形態1、2で説明した高速起動方式を実行する。これにより、バーチャルマシンモニタ上で複数のOSバーチャルマシンが動作した場合でも、各OSおよびアプリケーションのメモリイメージをブートイメージとしてOS毎に作成し、各OSを高速に起動することができる。実施の形態4.ブートイメージを作成する機能をバーチャルマシンモニタ部130に備える形態について説明する。以下、実施の形態3と異なる事項について主に説明する。説明を省略する事項については実施の形態3と同様である。図15は、実施の形態4における情報システム100の機能構成図である。実施の形態4における情報システム100の機能構成について、図15に基づいて説明する。情報システム100は、主メモリ103、複数または一つのバーチャルマシン部200およびバーチャルマシンモニタ部130を備える。バーチャルマシンモニタ部130は、予約パラメータ指定部111、ブートイメージ保存部115、VMメモリ割当部131VM:バーチャルマシンおよびVM制御部139を備える。VMメモリ割当部131領域予約部、領域解放部の一例は、各バーチャルマシン部200の割当メモリ203を管理する。例えば、VMメモリ割当部131は、各バーチャルマシン部200のメモリ領域予約部112およびメモリ領域解放部114として機能する実施の形態1-3参照。VM制御部139は、各バーチャルマシン部200を制御する。例えば、VM制御部139は主メモリ103の所定の記憶領域を割当メモリ203として各バーチャルマシン部200に割り当てる。主メモリ103は、各バーチャルマシン部200の割当メモリ203を管理するメモリ管理テーブルとしてVM管理テーブル293を記憶する。主メモリ103は、さらに、バーチャルマシン部200毎に予約パラメータ194を記憶する。図16は、実施の形態4におけるバーチャルマシン部200の機能構成図である。実施の形態4におけるバーチャルマシン部200の機能構成について、図16に基づいて説明する。バーチャルマシン部200は、割当メモリ203、OS部110およびブートローダ部120を備える。OS部110はアプリ起動部113とアプリ実行部116とOS制御部119とを備え、ブートローダ部120はブートイメージロード部121とブート制御部129とを備える。図17は、実施の形態4における高速起動方法を示すフローチャートである。実施の形態4における高速起動方法について、図17に基づいて説明する。以下に説明するS100BからS400Bは、実施の形態1で説明したS100からS400図3参照に相当する。S100Bにおいて、バーチャルマシンモニタ部130は、バーチャルマシン部200毎にブートイメージ199を作成する。S200Bにおいて、バーチャルマシンモニタ部130のVM制御部139は各バーチャルマシン部200のブートローダ部120を呼び出し、各ブートローダ部120はブートイメージ199を用いてバーチャルマシン部200を起動する。S300Bにおいて、各バーチャルマシン部200のアプリ実行部116は、ブートイメージ199に含まれるアプリデータ192に従ってアプリを実行する。S400Bにおいて、バーチャルマシンモニタ部130のVM制御部139は、各バーチャルマシン部200を停止する。図18は、実施の形態4におけるブートイメージ作成処理S100Bのフローチャートである。実施の形態4におけるブートイメージ作成処理図17のS100Bについて、図18に基づいて説明する。以下に説明するS110BからS180Bは、実施の形態1で説明したS110からS180図4参照に相当する。S110Bにおいて、バーチャルマシンモニタ部130のVM制御部139は、バーチャルマシン部200毎にOSデータ191を通常起動用メモリ105から読み出し、読み出したOSデータ191を割当メモリ203に記憶する。S110Bの後、S120Bに進む。S120Bにおいて、バーチャルマシンモニタ部130の予約パラメータ指定部111は、バーチャルマシン部200毎にバーチャルマシンのOSブートパラメータを取得し、取得したOSブートパラメータに含まれる予約パラメータ194を主メモリ103に記憶する。S120Bの後、S130Bに進む。S130Bにおいて、バーチャルマシンモニタ部130のVMメモリ割当部131は、バーチャルマシン部200毎に予約パラメータ194を参照し、参照した予約パラメータ194に基づいて予約領域を割当メモリ203に確保する。つまり、VMメモリ割当部131は、各バーチャルマシン部200の予約領域のアドレスに対応付けて予約領域を示すフラグ値2をVM管理テーブル293に設定する。S130Bの後、S140Bに進む。S140Bにおいて、バーチャルマシンモニタ部130のVM制御部139は、各バーチャルマシン部200にCPU101の使用時間を割り当てることによりバーチャルマシン部200の実行を開始する。そして、各バーチャルマシン部200のOS制御部119は、割当メモリ203に記憶されたOSデータ191に従って、起動領域予約領域を除いた残りの記憶領域を用いてOSの初期化処理を行う。OS制御部119は、OSの初期化処理での記憶領域の確保または解放をバーチャルマシンモニタ部130のVMメモリ割当部131を介して実行する。例えば、記憶領域を確保する場合、OS制御部119は確保された記憶領域のアドレス情報をVMメモリ割当部131から取得する。また、記憶領域を解放する場合、OS制御部119は解放する記憶領域のアドレス情報をVMメモリ割当部131に通知する。バーチャルマシンモニタ部130は、OS制御部119からの要求に従って記憶領域の確保または解放を行う。このとき、バーチャルマシンモニタ部130は、確保した記憶領域のアドレスに対応付けて使用領域を示すフラグ値1をVM管理テーブル293に設定する。また、バーチャルマシンモニタ部130は、解放する記憶領域のアドレスに対応付けて空き領域を示すフラグ値0をVM管理テーブル293に設定する。S140Bの後、S150Bに進む。S150Bにおいて、各バーチャルマシン部200のアプリ起動部113は、通常起動用メモリ105からアプリデータ192を読み出し、読み出したアプリデータ192を割当メモリ203の起動領域に記憶する。アプリ起動部113は、アプリデータ192を記憶した記憶領域のアドレス情報をバーチャルマシンモニタ部130のVMメモリ割当部131に通知する。VMメモリ割当部131は、通知されたアドレス情報に基づいてアプリデータ192の記憶領域のアドレスに対応付けて使用領域を示すフラグ値1をVM管理テーブル293に設定する。S150Bの後、S160Bに進む。S160Bにおいて、各バーチャルマシン部200のアプリ起動部113は、割当メモリ203に記憶したアプリデータ192に従って、起動領域を用いて各アプリの初期化処理を行う。アプリ起動部113は、アプリの初期化処理での記憶領域の確保または解放をバーチャルマシンモニタ部130のVMメモリ割当部131を介して実行する。VMメモリ割当部131は、アプリ起動部113からの要求に従ってVM管理テーブル293を更新するS140Bと同様。S160Bの後、S101Bに進む。S101Bにおいて、バーチャルマシンモニタ部130のVM制御部139は、各バーチャルマシン部200に対してCPU101の使用時間の割り当てを停止することにより、バーチャルマシン部200の実行を停止する。S101Bの後、S170Bに進む。S170Bにおいて、バーチャルマシンモニタ部130のVMメモリ割当部131は、バーチャルマシン部200毎に予約パラメータ194を参照し、参照した予約パラメータ194に基づいて予約領域を解放する。つまり、VMメモリ割当部131は、各バーチャルマシン部200の予約領域のアドレスに対応付けて空き領域を示すフラグ値2をVM管理テーブル293に設定する。S170Bの後、S180Bに進む。S180Bにおいて、バーチャルマシンモニタ部130のブートイメージ保存部115は、バーチャルマシン部200毎に予約パラメータ194を参照し、参照した予約パラメータ194に基づいて起動領域のメモリイメージをブートイメージ199として高速起動用メモリ106に保存する。つまり、ブートイメージ保存部115は、バーチャルマシン部200毎にブートイメージ199を保存する。S180Bの後、S102Bに進む。S102Bにおいて、バーチャルマシンモニタ部130のVM制御部139は、各バーチャルマシン部200にCPU101の使用時間を割り当てることにより、バーチャルマシン部200の実行を再開する。S102Bにより、ブートイメージ作成処理S100Bは終了する。高速起動処理図17のS200Bは、実施の形態1図7と同様である。バーチャルマシンモニタ部130は、実施の形態2の情報システム100と同様に、最大の予約サイズを判定し、最適なブートイメージ199を作成してもよい。実施の形態4において、例えば、以下のような情報システム100について説明した。情報システム100は、従来のバーチャルマシンのOSに修正を加えることなく実施の形態1、2で説明した高速起動方式を実現するために以下の構成を備える。情報システム100は、ブートイメージ保存部115、VM管理テーブル293、VMメモリ割当部131および予約パラメータ指定部111を備える。ブートイメージ保存部115は、バーチャルマシンモニタ上で動作するOSおよびアプリケーションのメモリイメージをブートイメージとして不揮発メモリ高速起動用メモリ106に保存する。VM管理テーブル293は、バーチャルマシンのOSに割り当てている物理メモリ割当メモリ203のマップ情報を管理すると共に、バーチャルマシンのOSに割り当てた物理メモリの一部を予約領域として指定する。VMメモリ割当部131は、バーチャルマシンのOSからの要求に基づき物理メモリを割り当てる。また、VMメモリ割当部131は、予約領域として指定された物理メモリに対するメモリ割当要求があった場合、VM管理テーブル293を参照し、予約領域でない物理メモリを割り当てる。ブートイメージを作成する構成をバーチャルマシンモニタに入れることにより、バーチャルマシンモニタのOS自体に変更を加えずに使用中の物理メモリを起動領域に集約することができる。また、ブートイメージの不揮発メモリ高速起動用メモリ106への保存処理自体も、バーチャルマシンモニタにより行うことができ、バーチャルマシンのOS毎にブートイメージの保存手段を持つ必要がない。