(57)【要約】【課題】システムのリブートを伴う異常終了時に，システムのダウンタイムを短縮する調査用プログラム，情報処理装置及び情報処理方法を提供する。【解決手段】情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成し，第１の異常の検知後であって第１のダンプファイルの作成後に，メモリ内に記憶されているデータを消去することなく情報処理装置をリブートし，リブート中に，メモリ内の複数のページ領域と，ページ領域に対応する第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成し，メモリ内のページ領域が解放されるときに，そのページ領域に記憶されているデータを第１のダンプファイルに書き出す。【選択図】図４
2015114750.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムが第１の異常を検知した時の処理を情報処理装置に実行させる調査用プログラムであって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成し，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成し，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す，
処理を実行する調査用プログラム。
【請求項２】
請求項１において，
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第１のダンプファイルへのアクセスに応答して，前記第１のテーブルを参照し，前記メモリまたは前記第１のダンプファイルにアクセスする，
処理を更に実行する調査用プログラム。
【請求項３】
請求項１または２において，
前記リブートを行う処理の前に，前記オペレーティングシステムのリブートに必要な領域に相当する大きさの前記ページ領域に記憶されたデータを，前記第１のダンプファイルに書き出し，
前記第１のテーブルを作成する処理は，前記第１のダンプファイルに書き出されていないページ領域について，前記第１のテーブルを作成する，
処理を更に実行する調査用プログラム。
【請求項４】
請求項１乃至３のいずれかにおいて，
前記第１のダンプファイルに書き出す処理の実行中に，前記第１の異常とは別の第２の異常を検知した場合，前記メモリ内のデータを書き出す第２のダンプファイルを前記記憶媒体内に作成し，
前記第２のダンプファイルを作成した後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第２のダンプファイル内における複数のダンプファイル領域とを関連付ける第２のテーブルを作成し，
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第１のダンプファイルへのアクセスに応答して，前記第２のテーブルを参照し，前記メモリまたは前記第１のダンプファイルにアクセスし，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第２のダンプファイルに書き出す，
処理を更に実行する調査用プログラム。
【請求項５】
請求項１乃至３のいずれかにおいて，
前記第１のダンプファイルを作成する処理は，前記第１のダンプファイルが作成されるときに，前記第１のダンプファイルのアドレス情報を管理する第１のダンプファイル管理構造体を作成し，
前記第１のテーブルを作成する処理は，前記第１のテーブルとして，前記ページ領域と前記ダンプファイル領域とのアドレス情報をそれぞれ有する複数の第１のメモリ管理構造体を作成する，調査用プログラム。
【請求項６】
請求項５において，
前記第１のメモリ管理構造体は，前記ページ領域に記憶されているデータが前記第１のダンプファイルに書き出されていないか否かを示す第１のフラグを有し，
前記第１のテーブルを作成する処理は，前記第１のメモリ管理構造体を作成するときに，前記第１のフラグを，前記ページ領域に記憶されているデータが前記ダンプファイル領域に書き出されていないことを示すように設定する，調査用プログラム。
【請求項７】
請求項６において，
前記第１のダンプファイルに書き出す処理は，前記第１のメモリ管理構造体が管理するページ領域が解放されるときに，前記第１のフラグが前記ダンプファイル領域に書き出されていないことを示す場合は，前記解放されるページ領域のデータを前記ダンプファイル領域に書き出す，調査用プログラム。
【請求項８】
請求項６において，
前記第１のダンプファイルに書き出す処理の実行中に，前記第１の異常とは別の第２の異常を検知した場合，前記メモリ内のデータを書き出す第２のダンプファイルを前記記憶媒体内に作成し，
前記第２のダンプファイルを作成した後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第２のダンプファイル内における複数のダンプファイル領域とを関連付ける第２のテーブルを作成し，
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第１のダンプファイルへのアクセスに応答して，前記第２のテーブルを参照し，前記メモリまたは前記第１のダンプファイルにアクセスし，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第２のダンプファイルに書き出し， 
前記第１のメモリ管理構造体によって対応付けられたページ領域のうち，前記第１のフラグが第１のダンプファイルに書き出されていないことを示すページ領域に記憶されていたデータについて，前記第１のダンプファイルへの書き出しを再開する，
処理を更に実行する調査用プログラム。
【請求項９】
オペレーティングシステムが第１の異常を検知した時の処理をする情報処理装置であって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成する処理部と，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理部と，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成する処理部と，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す処理部と，を有する，
情報処理装置。
【請求項１０】
オペレーティングシステムが第１の異常を検知した時の処理をする情報処理装置における情報処理方法であって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成する処理工程と，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理工程と，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成する処理工程と，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す処理工程と，を有する，
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，調査用プログラム，情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
稼働中のシステムにおいて，ＯＳ（オペレーティングシステム）が異常を検知した場合，ダンプファイルが作成される。このダンプファイルは，異常を検知した瞬間のメモリ，ＣＰＵ内部のレジスタ，ディスク等の内部のデータが記録されるものであり，検知した異常の原因調査を行うために用いられるものである（例えば，特許文献１を参照）。
【０００３】
ＯＳがシステムの異常発生を検知した場合，検知した異常の内容によっては，システムを正常に動作させるためにリブート（再起動）が行われる。このリブートが行われる際に，リブートに用いるメモリ容量を確保する必要性からメモリに記憶されている内容は消去される場合がある。そのため，ダンプファイルへのメモリ内のデータの採取は，システムのリブートが行われる前に実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１９３４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
システムの異常が発生した場合，ダンプファイルにメモリのデータを記憶してからリブートを行うため，長い時間に渡りシステムに関連するサービス等が停止することになる。そのため，メモリ内のデータの採取に伴う被害の発生または被害の拡大を防止するために，システムのリブートまでに要する時間（以下，システムのダウンタイム）を可能な限り短くし，システムの通常運用への復旧を迅速に行うことが要求される。  
【０００６】
しかしながら，（１）昨今のサーバシステムでは，メモリ容量が数テラバイトあるものも登場し，ダンプファイルの採取（具体的には，メモリとは異なる記憶媒体へのメモリ内のデータの書き出し）に長時間を要する傾向にある。そのため，システムの復旧がダンプファイルの採取によって遅延することになり，システムのダウンタイムが長引く要因となる。（２）また，ダンプファイルの採取時間を短縮させるために，システムのリブート時においてメモリに記憶されていた内容を消去しないままリブートを行う方法が考えられるが，再起動時にメモリに残されたデータは，再起動後のＯＳからは認識することができない。そのため，メモリに記憶されていたデータを消去しないままリブートを行っても，再起動後にダンプファイルを作成することはできない。（３）さらに，ダンプファイルの採取に長時間を要する結果，ダンプファイルの内容の解析開始も遅れることになる。そのため，システム異常終了の原因の特定が遅れ，結果としてシステムの復旧がさらに遅れる要因となる。
【０００７】
そこで，一つの実施の形態の目的は，システムのリブートを伴う異常終了時に，システムのダウンタイムを短縮する調査用プログラム，情報処理装置及び情報処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
実施の形態の一つの側面によれば，オペレーティングシステムが第１の異常を検知した時の処理を情報処理装置に実行させる調査用プログラムであって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成し，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成し，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す。
【発明の効果】
【０００９】
システムのリブートを伴う異常終了時に，システムのダウンタイムを短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態における情報処理装置及び異常調査用装置のハードウエア構成を示す図である。
【図２】情報処理装置のソフトウエアが有する機能の一例を示す図である。
【図３】通常行われる異常発生時におけるシャットダウン時間を説明する図である。
【図４】異常対応処理の概略を説明するフローチャート図である。
【図５】本実施の形態の異常発生時におけるシャットダウン時間を説明する図である。
【図６】異常対応処理の概略を説明する図である。
【図７】異常対応処理の概略を説明する図である。
【図８】異常対応処理の概略を説明する図である。
【図９】メモリ内のページ領域の解放について説明する図である。
【図１０】異常対応処理及び正常対応処理の詳細を説明する図である。
【図１１】異常対応処理及び正常対応処理の詳細を説明する図である。
【図１２】異常対応処理の詳細を説明する図である。
【図１３】異常対応処理の詳細を説明する図である。
【図１４】異常対応処理の詳細を説明する図である。
【図１５】異常対応処理の詳細を説明する図である。
【図１６】異常対応処理の詳細を説明する図である。
【図１７】関連付け処理Ｓ４，Ｓ３０の詳細を説明するフローチャート図である。
【図１８】関連付け処理Ｓ４，Ｓ３０を説明する図である。
【図１９】関連付け処理Ｓ４，Ｓ３０を説明する図である。
【図２０】関連付け処理Ｓ４，Ｓ３０を説明する図である。
【図２１】関連付け処理Ｓ４，Ｓ３０を説明する図である。
【図２２】書き出し処理Ｓ９，Ｓ３５の詳細を説明するフローチャート図である。
【図２３】書き出し処理Ｓ９，Ｓ３５を説明する図である。
【図２４】再異常対応処理を説明するフローチャート図である。
【図２５】再異常対応処理を説明する図である。
【図２６】再異常対応処理を説明する図である。
【図２７】再異常対応処理を説明する図である。
【図２８】書き出し再開処理を説明するフローチャート図である。
【図２９】書き出し再開処理を説明する図である。
【図３０】書き出し再開処理を説明する図である。
【図３１】再異常対応処理中の書き出し処理Ｓ６８を説明するフローチャート図である。
【図３２】再異常対応処理中の書き出し処理Ｓ６８を説明する図である。
【発明を実施するための形態】
【００１１】
［試験システムの構成］
図１は本実施の形態における情報処理装置及び異常調査用装置のハードウエア構成を示す図である。図１に示すように，情報処理装置１００と異常調査用装置２００は，例えば通信ネットワーク（図示しない）を介して接続可能である。
【００１２】
情報処理装置１００（または，システムとも呼ぶ）は，プロセッサであるＣＰＵ１と，メモリ２と，外部インターフェース５（Ｉ／Ｏユニット）と，図２において説明するソフトウエア４１０（プログラム）を格納するプログラム用記憶媒体４とを有し，それらがＢＵＳを介して接続されている。プログラム用記憶媒体４は，例えば，ソフトウエアを読み出し可能なＨＤＤである。また，情報処理装置１００は，メモリ２に格納されたＯＳ（図示しない）が情報処理装置１００内の異常（または第１の異常と呼ぶ）を検知した場合に，異常発生時のメモリ２の状態を書き出すダンプファイル用記憶媒体１０，２０（以下，記憶媒体１０，２０，または第１の記憶媒体１０及び第２の記憶媒体２０とも呼ぶ）を有し，メモリ２等とＢＵＳを介して接続されている。なお，図１では，ダンプファイル用記憶媒体が２つある場合について示しているが，この例に限られず，１つまたは３つ以上のダンプファイル用記憶媒体を有している構成であってもよい。また，プログラム用記憶媒体４及びダンプファイル用記憶媒体１０，２０が単一の記憶媒体から構成されているものであってもよい。
【００１３】
異常調査用装置２００は，プロセッサであるＣＰＵ１０１と，メモリ１０２と，外部インターフェース１０５（Ｉ／Ｏユニット）と，ダンプファイル用記憶媒体１０，２０に格納されているデータを調査するためのソフトウエアを格納する記憶媒体１０４とを有し，それらがＢＵＳを介して接続されている。記憶媒体１０４は，情報処理装置１００の記憶媒体４，１０，２０と同様に，例えば，ソフトウエアを読み出し可能なＨＤＤである。
【００１４】
図２は，情報処理装置のソフトウエアが有する機能の一例を示す図である。情報処理装置１００は，例えば，異常調査用装置２００からのアクセスに応じて，要求されたデータを異常調査用装置２００に返すものである。情報処理装置１００は，図示しないＣＰＵなどのハードウエアに加えて，記憶媒体４内にソフトウエア４１０（以下，異常対応処理部とも呼ぶ）を有する。ソフトウエア４１０は，情報処理装置１００のリブートを要する異常の発生時に，メモリ２内に記憶されているデータのダンプファイルをダンプファイル用記憶媒体１０，２０に作成する。そして，情報処理装置１００のリブート後に，メモリ２内に記憶されているデータをダンプファイルに書き出し，さらに，メモリ２またはダンプファイル用記憶媒体１０，２０に記憶されているデータへのアクセスを可能にする。なお，ソフトウエア４１０は，情報処理装置１００のメモリ２内に格納されているＯＳが起動するＯＳプログラム，または情報処理装置１００のファームウエア３（例えば，ＢＩＯＳ等）が起動するファームウエアプログラムのいずれかに分類することが可能である。
【００１５】
ソフトウエア４１０は，例えば，異常発生時に，図１のダンプファイル用記憶媒体１０内に作成されるメモリ２内のデータを書き出すための第１のダンプファイルを，例えば，記憶媒体１０内（第１の記憶媒体内）に作成する第１のダンプファイル作成部４１１（ＯＳのプログラムであり，処理部４１１とも呼ぶ）を有する。また，異常発生後（異常検知後）であって，第１のダンプファイルの作成後に，メモリ２内に記憶されているデータを消去することなく，情報処理装置１００をリブートする第１のリブート部４１２（ファームウエアプログラムであり，処理部４１２とも呼ぶ）を有する。また，リブート中に，メモリ２内のデータが記憶されているページ領域と，そのデータが書き出される第１のダンプファイル内のダンプファイル領域との関連付けテーブルを作成する第１の関連付け部４１３（ＯＳプログラムであり，処理部４１３とも呼ぶ）と，メモリ２内のページ領域が解放するときに，そのページ領域に記憶されているデータを第１のダンプファイルに書き出す第１の書き出し部４１４（ＯＳプログラムであり，処理部４１４とも呼ぶ）とを有する。さらに，第１のダンプファイルへのアクセス要求（例えば，異常調査用装置２００または情報処理装置１００内のプログラムからのアクセス要求）に対して，関連付けテーブルを参照して，メモリ２または第１のダンプファイルにアクセスを行う第１のアクセス部４１５（ＯＳプログラムであり，処理部４１５とも呼ぶ）と，情報処理装置１００内で発生した異常を検知する異常検知部４１６（ＯＳプログラム）とを有する。また，第１のリブート部４１２によるリブートの前に，リブートに必要なＯＳ等をロードする領域に相当する大きさのページ領域に記憶されたデータを，第１のダンプファイルに書き出した後に行うリブート前書き出し部４１７（ＯＳプログラム）とを有する。
【００１６】
また，ソフトウエア４１０は，例えば，第１の書き出し部４１４の実行中に，異常検知部４１６が既に検知している異常とは別の異常（または第２の異常と呼ぶ）が発生した場合，図１のダンプファイル用記憶媒体２０内に作成されるメモリ２内のデータを書き出す第２のダンプファイルを，例えば，記憶媒体２０内（第２の記憶媒体内）に作成する第２のダンプファイル作成部４２１（ＯＳプログラム）を有する。また，第２のダンプファイルの作成後に，メモリ２内に記憶されているデータを消去することなく情報処理装置１００をリブートする第２のリブート部４２２（ファームウエアプログラム）を有する。また，リブート中に，メモリ２内のデータが記憶されているページ領域と，そのデータが書き出される第２のダンプファイル内のダンプファイル領域との関連付けテーブルの作成を行う第２の関連付け部４２３（ＯＳプログラム）と，ＯＳがメモリ２内のページ領域を解放するときに，そのページ領域に記憶されているデータを第２のダンプファイルに書き出す第２の書き出し部４２４（ＯＳプログラム）とを有する。さらに，第２のダンプファイルへのアクセスに対して，関連付けテーブルを参照して，メモリ２または第２のダンプファイルにアクセスを行う第２のアクセス部４２５（ＯＳプログラム）を有する。
【００１７】
また，ソフトウエア４１０は，例えば，第１のメモリ管理構造体によって対応付けられたページ領域のうち，そのページ領域に記憶されているデータが第１のダンプファイルに書き出されていないか否かを示すフラグ（第１のフラグ）が，第１のダンプファイルに書き出されていないことを示すページ領域に記憶されているデータを，第１のダンプファイルに書き出すＯＳプログラムである書き出し再開部４３１を有する。
【００１８】
［通常行われる異常発生時のシャットダウン時間］
図３は，通常行われる異常発生時におけるシャットダウン時間を説明する図である。図３に示すように，情報処理装置１００の通常運用中に異常が発生した場合（Ｓ１０１），情報処理装置１００のリブートを実行し，メモリ２内に記憶されているデータをダンプファイルへ書き出すためのＯＳプログラムが起動する（Ｓ１０２）。そして，このＯＳプログラムの実行に伴い，ＯＳは，メモリ内のデータをダンプファイルに書き出し（Ｓ１０３），情報処理装置１００のリブートを実行する（Ｓ１０４）。また，ＯＳまたはファームウエアは，情報処理装置１００のリブートを行う際に，リブートに用いるメモリ容量を確保するために，メモリに記憶されているデータを消去する場合がある。そのため，図３に示すように，ダンプファイルへの書き出し（Ｓ１０３）は，情報処理装置１００のリブートが行われる前に実行される。すなわち，情報処理装置１００の異常が発生した後，ダンプファイルへのメモリ２内のデータの書き出し及び情報処理装置１００のリブートが完了するまでの時間が，情報処理装置１００のダウンタイムになる。
【００１９】
ここで，図３に示す異常対応処理では，ＯＳは，ダンプファイルへのメモリ２内のデータの書き出しが完了するまでは，情報処理装置１００をリブートすることができない。そのため，ダンプファイルへのメモリ内のデータの書き出しに長時間を要した場合，情報処理装置１００の復旧がダンプファイルへの書き出しによって遅延する。そのため，情報処理装置１００のダウンタイムが長引く要因となる。また，ＯＳまたはファームウエアが情報処理装置１００のリブート時にメモリ２内の内容を消去しないままリブートを行っても，ＯＳはリブート後にメモリ内に残されたデータを認識することができない。そのため，ＯＳは，情報処理装置１００のリブート後に，メモリ内に残されたデータに基づいてダンプファイルを作成することはできない。さらに，ダンプファイルへの書き出しに長時間を要する結果，ダンプファイルの内容の解析開始が遅れることになる。
【００２０】
そこで，本実施の形態では，情報処理装置１００の異常発生後に，メモリ２内に記憶されているデータをクリアすることなく情報処理装置１００のリブートを行い，さらに，情報処理装置１００のリブート前にダンプファイルへの書き出しを行っていないデータを，リブート後のＯＳが認識することができるようにする。
【００２１】
［第１の実施の形態］
最初に第１の実施の形態について説明する。図４は，異常対応処理の概略を説明するフローチャート図である。また，図５は，本実施の形態の異常発生時におけるシャットダウン時間を説明する図である。さらに，図６から図８は，異常対応処理の概略を説明する図である。図６から図８を参照しながら，図４の異常対応処理の概略及び図５の異常発生時におけるシャットダウン時間について説明する。なお，以下，情報処理装置１００のＯＳは，メモリ２内に格納されているものとして説明を行う。
【００２２】
［図４，図５のＳ１，Ｓ２］
初めに，情報処理装置１００のＯＳの異常検知部４１６は，情報処理装置１００内で発生した異常の検知を行う（Ｓ１）。この異常の検知は，例えば，異常を検知するために配置した監視プロセスが異常を検知した際に，ＯＳの異常検知部４１６に通知する構成でよい。
【００２３】
次に，情報処理装置１００のＯＳにおける第１のダンプファイル作成部４１１は，ＯＳの異常検知部４１６が情報処理装置１００内の異常を検知した場合（情報処理装置１００のリブートを必要とする異常を検知した場合）に，メモリ２内のデータを書き出すための第１のダンプファイル１１を記憶媒体１０内に作成する（Ｓ２）。図６は，ＯＳが情報処理装置１００内の異常を検知した場合を説明する図である。ＯＳの異常検知部４１６が情報処理装置１００内の異常を検知した場合，ＯＳの第１の書き出し部４１４は，異常が発生した瞬間のメモリ２内に記憶されているデータを，第１のダンプファイル１１に書き出す必要がある。そのため，第１のダンプファイル作成部４１１は，記憶媒体１０内の領域に第１のダンプファイル１１を作成し，メモリ２内のデータを書き出すための記憶領域を記憶媒体１０内に確保する。なお，第１のダンプファイル作成部４１１は，異常検知部４１６が異常を検知する前に，予め記憶媒体１０内に第１のダンプファイル１１を作成しておいてもよい。
【００２４】
また，ＯＳの第１のダンプファイル作成部４１１は，Ｓ４において説明する関連付けテーブルを作成するために，Ｓ３において説明するリブートを行う前に第１のダンプファイル１１を作成する。さらに，この第１のダンプファイル１１は，異常が発生した瞬間のメモリ２内のデータを書き出すための記憶領域であるため，ＯＳの第１のダンプファイル作成部４１１は，第１のダンプファイル１１を，メモリ２内に記憶可能なデータ容量と同じ容量を有するように作成する。
【００２５】
［図４，図５のＳ３］
図４に戻り，情報処理装置１００のファームウエア３における第１のリブート部４１２は，第１のダンプファイル１１の作成後に，メモリ２内のデータを消去することなく情報処理装置１００をリブートする（Ｓ３）。具体的には，異常を検知したＯＳは，第１のダンプファイル１１を作成した後（Ｓ２），メモリ２内のデータを消去することなく，発生した異常に対応してシステム構成を変更するために情報処理装置１００をシャットダウンする。その後，情報処理装置１００のファームウエア３及びＯＳは，ファームウエア３，ＯＳの順にリブートする（Ｓ３）。そのため，ＯＳリブート用の領域の確保等，ＯＳがリブートする前に行われる制御は，ファームウエア３によって行われる。
【００２６】
［図４，図５のＳ４，Ｓ５］
次に，情報処理装置１００のＯＳにおける関連付け部４１３は，第１のリブート部４１２によるリブート中に，メモリ２内のデータが記憶されているページ領域と，そのデータが書き出される第１のダンプファイル１１内のダンプファイル領域との関連付けテーブルを作成する（Ｓ４）。
【００２７】
図７は，関連付けテーブルについて説明する図である。関連付けテーブル３０（または第１の関連付け構造体３０，第１のテーブル３０と呼ぶ）は，メモリ２内のページ領域２ａと，そのページ領域２ａに記憶されているデータが書き出される第１のダンプファイル１１内のダンプファイル領域１１ａとを対応付ける情報を有している。具体的には，あるデータが記憶されているページ領域のアドレスと，このデータが書き出される予定のダンプファイル領域のアドレスとを対応付ける情報や，ページ領域に記憶された各データが，ダンプファイル領域に書き出されたか否かを示すフラグ（第１のフラグ）を有している。なお，第１のダンプファイル１１は，メモリ２内に記憶可能なデータ容量と同じ容量を有するため，メモリ２内のページ領域２ａの数と，第１のダンプファイル内におけるダンプファイル領域１１ａの数とは同数であり，それぞれが記憶可能であるデータ容量は同じである。
【００２８】
また，第１の関連付け構造体３０は，リブートの時点では，メモリ２内のページ領域に記憶されているデータはダンプファイルに書き出されていない。そのため，ＯＳの第１の関連付け部４１３は，第１の関連付け構造体３０の作成時に，全てのページ領域における第１のフラグを，ダンプファイル領域に書き出されていないことを示す状態（以下，未書き出し状態またはダーティ状態と呼ぶ）に設定する。これにより，メモリ２内のデータは，第１のダンプファイル１１のファイルキャッシュとして初期化されたことになる。
【００２９】
さらに，Ｓ８，Ｓ９において説明するＯＳの第１の書き出し部４１４は，対応するメモリ２内のページ領域が解放されたときに，第１の関連付け構造体３０を消去する。これにより，第１の関連付け構造体３０の存在を確認することで，この第１の関連付け構造体３０に対応するデータのダンプファイルへの書き出しが，完了しているか否かの判断を行うことができる。すなわち，参照した第１の関連付け構造体３０が存在する場合には，ダンプファイルへの書き出しは完了しておらず，第１の関連付け構造体３０が存在しない場合には，ダンプファイルへの書き出しは完了していると判断することができる。この第１の関連付け構造体３０の動作の詳細については，Ｓ６からＳ９において説明する。
【００３０】
さらに，ＯＳは，第１の関連付け構造体３０を作成した後（Ｓ４），残りのリブート処理を実行して情報処理装置１００のリブートを完了する（Ｓ５）。
【００３１】
本実施の形態では，ＯＳの第１のダンプファイル作成部４１１が，情報処理装置１００のリブート前に，メモリ２内に記憶可能なデータ容量と同じ容量を有する第１のダンプファイル１１を作成する。また，ＯＳの第１のリブート部４１２が，メモリ２内のデータを消去することなくリブートし，ＯＳの第１の関連付け部４１３が，リブート中に，メモリ２内のページ領域２ａと第１のダンプファイル１１内のダンプファイル領域１１ａとをそれぞれ対応付ける。
【００３２】
［図４，図５のＳ６，Ｓ７］
図４に戻り，リブート後の通常動作中において，情報処理装置１００のＯＳにおける第１のアクセス部４１５は，第１のダンプファイル１１へのアクセスがあった場合に（Ｓ６のＹＥＳ），第１の関連付け構造体３０を参照して，メモリ２または第１のダンプファイル１１にアクセスを行う（Ｓ７）。具体的に，参照した第１の関連付け構造体３０が存在した場合，ＯＳの第１の関連付け部４１３は，アクセス対象のデータについて第１のダンプファイル１１への書き出しを行っていない。そのため，ＯＳの第１のアクセス部４１５は，第１の関連付け構造体３０内をさらに参照して，アクセス対象のデータが記憶されているメモリ２内のページ領域のアドレスを取得し，そのアドレスのデータにアクセスする。また，参照した第１の関連付け構造体３０が存在しなかった場合，ＯＳの第１の関連付け部４１３は，アクセス対象のデータについて第１のダンプファイル１１内への書き出しを行っている。そのため，ＯＳの第１のアクセス部４１５は，第１の関連付け構造体３０内をさらに参照して，アクセス対象のデータが記憶されている第１のダンプファイル１１内におけるダンプファイル領域のアドレスを取得し，そのアドレスのデータにアクセスする。
【００３３】
具体的に，図７の場合は，ＯＳの第１の関連付け部４１３が，メモリ２内のデータをまだ第１のダンプファイル１１に書き出していない状態である。そのため，ＯＳの第１のアクセス部４１５は，第１の関連付け構造体３０を参照し，メモリ２内のページ領域にアクセスを行う。
【００３４】
一方，図８の場合は，ＯＳの第１の関連付け部４１３が，メモリ２内のページ領域に記憶されたデータの一部を，第１のダンプファイル１１のダンプアドレス領域に書き出した状態の図である。したがって，図８の場合では，第１のダンプファイル１１内に書き出し済領域と未書き出し領域とが混在している。そのため，ＯＳの第１のアクセス部４１５は，参照した第１の関連付け構造体３０が存在した場合，第１の関連付け構造体３０内をさらに参照して，アクセス対象のデータが記憶されているメモリ２内のページ領域のアドレスを取得し，そのアドレスのデータにアクセスする。また，参照した第１の関連付け構造体３０が存在しなかった場合，第１のアクセス部４１５は，第１の関連付け構造体３０内をさらに参照して，アクセス対象のデータが記憶されている第１のダンプファイル１１内におけるダンプファイル領域のアドレスを取得し，そのアドレスのデータにアクセスする。以上の第１のダンプファイル１１へのアクセスに対するＯＳの処理は，一般的なファイルキャッシュのアクセス制御と同等である。
【００３５】
［図４，図５のＳ８，Ｓ９］
図４に戻り，情報処理装置１００のＯＳにおける第１の書き出し部４１４は，メモリ２内のページ領域が解放されたときに（Ｓ８のＹＥＳ），第１の関連付け構造体３０の第１のフラグが未書き出し状態を示しているならば，そのページ領域に記憶されているデータを第１のダンプファイルに書き出す（Ｓ９）。情報処理装置１００のリブート時において，データは全てメモリ２内のページ領域に記憶されていて，第１のダンプファイル１１内のダンプファイル領域には書き出されていない。そして，リブート後の通常動作時において，データが記憶されているメモリ２内のページ領域は，メモリ２内の領域が不足した場合に，ＯＳによって解放されて他の用途（他のプログラムの実行等）のために用いられる。このときに初めて，ＯＳの第１の書き出し部４１４は，メモリ２内のデータを第１のダンプファイル１１に書き出す。これは，一般的なファイルキャッシュの動作と同等である。
【００３６】
図９は，メモリ内のページ領域の解放について説明する図である。初めに一般的なファイルキャッシュについて説明する。ファイルキャッシュでは，図９に示すように，ＯＳが記憶媒体１０に記憶されたデータの中で，使用頻度が高いデータをメモリ２内のページ領域に書き出す。一般に，ＨＤＤ等の記憶媒体に記憶されたデータはアクセスに時間を要し（低速であり），メモリに記憶されたデータはアクセス時間が短い（高速である）。そのため，使用頻度の高いデータを，メモリ内に書き出しておくことによって，データのアクセスを含む全体の処理に要する時間を短縮することが可能になる。
【００３７】
そして，メモリ２内の記憶容量は記憶媒体の記憶容量と比較して小さいため，メモリ内の使用可能領域が不足した場合には，例えば，使用頻度が低下したデータや長時間アクセスされなかったデータから順に消去または上書きする必要がある。これが，メモリ２内のページ領域の解放処理である。
【００３８】
図９に示すファイルキャッシュの制御では，記憶媒体１０に記憶されているデータのうち，メモリ２内のページ領域にキャッシュされて記憶されているデータについての情報を管理する必要がある。そのため，図９に示すように，図７及び図８と同様に第１の関連付け構造体３０が設けられている。例えば，異常調査用装置２００から記憶媒体１０に記憶されているデータにアクセスがあった場合，ＯＳの第１のアクセス部４１５は，第１の関連付け構造体３０を参照して，アクセス対象のデータがメモリ２内のページ領域に記憶されているか（キャッシュされているか）を確認する。そして，アクセス対象のデータがメモリ２内に記憶されている場合には，第１の関連付け構造体３０をさらに参照して，アクセス対象のデータのメモリ２内におけるアドレスを取得し，アクセス対象のデータを異常調査用装置２００に返す。一方，ＯＳの第１のアクセス部４１５は，アクセス対象のデータがメモリ２内に記憶されていない（キャッシュされていない）場合には，記憶媒体１０をアクセスしてデータを取得する。
【００３９】
これに対して，本実施の形態の図７及び図８の例においては，図９に示す一般的なファイルキャッシュとは異なり，情報処理装置１００のリブート時には，メモリ２内のページ領域にデータが記憶されているが，記憶媒体１０内のダンプファイルにはデータが記憶されていない。つまり，全てのページ領域における第１のフラグが未書き出し状態である。そのため，メモリ２内のページ領域を解放する際には，データが完全に失われることを防ぐために，ＯＳの第１の書き出し部４１４が記憶媒体１０等に書き出しを行ってから，メモリ２内のページ領域の解放を行う（Ｓ８，Ｓ９）。
【００４０】
本実施の形態においては，異常発生時，ＯＳの第１のダンプファイル作成部４１１が，リブート前に，メモリ２内のデータを書き出すための第１のダンプファイル１１を作成するだけである。そして，ＯＳの第１のリブート部４１２が，メモリ２内のデータをクリアすることなくリブートを行う。また，ＯＳの第１の関連付け部４１３が，リブート中に，第１のフラグを全て未書き出し状態に設定して第１の関連付け構造体３０を作成する。そして，リブート後の通常処理では，ＯＳの第１のアクセス部４１５が，メモリ２内のページ領域に記憶されているデータを一般的なファイルキャッシュの制御と同様にアクセスし，ＯＳの第１の書き出し部４１４が，メモリ２内のページ領域の解放時に，メモリ２のデータを第１のダンプファイル１１に書き出す。これにより，図５に示すように，情報処理装置１００のリブートを行う前に，メモリ２内のページ領域に記憶されているデータを，第１のダンプファイル１１へ書き出す必要がなくなる。そのため，異常発生時における情報処理装置１００のダウンタイムを短縮することが可能になる。また，情報処理装置１００のリブートが完了した際に，メモリ２内に記憶されたデータへのアクセスが可能になるため，発生した異常の原因調査を情報処理装置１００のリブートの完了後すぐに開始することが可能になる。
【００４１】
［第１の実施の形態における異常対応処理の詳細］
図４を参照して異常対応処理の概略を説明した。次に，第１の実施の形態における異常対応処理についてより詳細に説明する。図１０，図１１は，異常対応処理及び正常対応処理の詳細を説明する図である。また，図１２から図１６は，異常対応処理の詳細を説明する図である。図１２から図１６を参照しながら，図１０，図１１の異常対応処理及び正常対応処理の詳細について説明する。
【００４２】
［図１０のＳ２１，Ｓ２２］
初めに，ＯＳの異常検知部４１６が，情報処理装置１００内において異常が発生していないかの検知を行い（Ｓ１，Ｓ２１），情報処理装置１００内の異常をＯＳ（異常検知部４１６）が検知した場合に，ＯＳの第１のダンプファイル作成部４１１が，メモリ２内に記憶されているデータを書き出すための第１のダンプファイル１１を，記憶媒体１０（第１の記憶媒体）内に作成する（Ｓ２，Ｓ２２）。このＳ２１，Ｓ２２は，図４で説明したＳ１，Ｓ２と同じであるため，ここでは詳細な説明を省略する。
【００４３】
［図１０のＳ２３］
次に，情報処理装置１００のＯＳのリブート前書き出し部４１７は，第１のリブート部４１２によるリブートの前に，ＯＳのリブートに必要な領域に相当する大きさのページ領域（以下，ＯＳリブート用領域とも呼ぶ）に記憶されたデータを，第１のダンプファイル１１に書き出す（Ｓ２３）。本実施の形態では，異常発生時におけるメモリ２内のデータを記憶媒体１０へ書き出す前にリブートを行う。したがって，リブート時において，メモリ２内には第１のダンプファイル１１への書き出しが行われる予定のデータが存在しているため，リブート後のＯＳをロードするためのメモリ２内の領域が確保できない場合がある。そのため，Ｓ２３においては，ＯＳのリブートに必要な領域に相当する大きさのページ領域に記憶されたデータを，情報処理装置１００のリブートの前に第１のダンプファイル１１に書き出すことにより，ＯＳのリブートに最低限必要な領域を確保する。
【００４４】
図１２は，ＯＳリブート用領域のデータを，記憶媒体１０内の第１のダンプファイル１１に書き出した場合の図である。なお，ＯＳのリブートに最低限必要な領域の容量を，ＯＳのリブートを行うために十分と考えられる容量（例えば，１０ＧＢ等）に予め定めておき，実際のＯＳリブートに必要な領域の容量にかかわらず，ＯＳのリブート前書き出し部４１７が，その予め定めた容量のデータを，第１のダンプファイル１１を書き出すものであってよい。
【００４５】
［図１０のＳ２４からＳ２８］
図１０，図１１に戻り，情報処理装置１００のファームウエア３における第１のリブート部４１２は，第１のダンプファイル１１の作成後に，メモリ２内に記憶されているデータを消去することなく情報処理装置１００のリブートを開始する（Ｓ３，Ｓ２４）。次に，ファームウエア３が，メモリ２内のＯＳリブート用領域にブートローダをロードして実行する（Ｓ２５）。このブートローダは，例えば，図２におけるプログラム用記憶媒体４に記憶されている。さらに，実行したブートローダが，ＯＳリブート用領域にＯＳをロードする（Ｓ２６）。
【００４６】
図１３は，ＯＳリブート用領域にブートローダをロードした場合の図である。また，図１４は，ＯＳリブート用領域においてブートローダを実行してＯＳをロードした場合の図である。なお，図１３，図１４の例においては，ブートローダがＯＳをロードした後（具体的にＯＳのカーネルプログラムを全てロードした後），ＯＳがブートローダから制御を受け継いで，その後の処理を行う。
【００４７】
上記の図４，図１０において，ＯＳが情報処理装置１００の異常を検知した際に行われるリブートについて説明した。ここで，情報処理装置１００のリブートは，情報処理装置１００が正常に運用している場合においても，メンテナンスの実施等の理由によって実行される場合がある。この正常時における情報処理装置１００のリブート（以下，正常対応処理とも呼ぶ）は，ＯＳが情報処理装置１００の異常を検知している場合と異なり，ダンプファイルの作成を行う必要がない。すなわち，正常時の情報処理装置１００のリブート時においては，ＯＳが，図４，図１０で説明した異常の検知（Ｓ１）やダンプファイルの作成（Ｓ２）等を行う必要がない。さらに，正常時における情報処理装置１００のリブートは，ダンプファイルの作成を行う必要がないため，リブート前においてメモリ２内に記憶されているデータを，リブート後において保持する必要がない。すなわち，メモリ２内に記憶されているデータを消去することなく情報処理装置１００のリブートを行う必要がない。そのため，図１０に示すように，正常時におけるリブートにおいては，ファームウエア３がメモリ２内のデータを消去し（Ｓ２７），ファームウエア３がメモリ２内にブートローダをロードして実行し（Ｓ２８），ブートローダがメモリ２内にＯＳをロードすることにより（Ｓ２６），情報処理装置１００のリブートを行う。
【００４８】
なお，情報処理装置１００のシャットダウンが行われる前に，ＯＳは，ファームウエア３に対して実行されるリブートが異常時のリブートであるか否かを記憶させる。具体的に，ファームウエア３が，実行されるリブートが異常時のリブートであるか否かを示すフラグ（図示しない）を有し，これによって実行されるリブートが異常時のリブートであるか否かを記憶させるものであってよい。これにより，リブートしたファームウエア３は，メモリ２内に記憶されているデータをクリアすべきか否かについて判断を行うことができる。
【００４９】
［図１１のＳ２９，Ｓ３０］
次に，記憶媒体１０にダンプファイルが存在する場合（Ｓ２９のＹＥＳ），情報処理装置１００のＯＳにおける第１の関連付け部４１３は，第１のリブート部４１２によるリブート中に，メモリ２内のデータが記憶されているページ領域と，そのデータが書き出される予定の第１のダンプファイル１１内におけるダンプファイル領域とを対応付けた関連付けテーブルを作成する（Ｓ４，Ｓ３０）。
【００５０】
異常発生時におけるリブートの場合は，リブート後の記憶媒体１０内に第１のダンプファイル１１が存在する。また，正常時におけるリブートの場合は，リブート後の記憶媒体１０内に第１のダンプファイル１１は存在しない。そのため，記憶媒体１０内に第１のダンプファイルが存在しているか否かを判断することによって（Ｓ２９），異常発生時の場合に限って関連付けテーブルの作成を行うことが可能になる（Ｓ３０）。
【００５１】
一方，記憶媒体１０内に第１のダンプファイルが存在しない場合は（Ｓ２９のＮＯ），正常時におけるリブートが行われたことになるため，関連付けテーブルの作成は行わない。なお，関連付けテーブルの作成については図４において説明したため，ここでは詳細な説明は省略する。
【００５２】
図１５は，メモリ２内のデータが記憶されているページ領域と，そのデータが書き出される第１のダンプファイル１１内のダンプファイル領域とを対応付ける関連付けテーブルを作成する場合の図である。図１５において，メモリ２内において書き出しを行っていない領域は，複数のページ領域に分割されている。また，Ｓ１またはＳ２１において作成した第１のダンプファイル１１は，複数のダンプ領域に分割されている。そして，ＯＳの第１の関連付け部４１３は，複数のページ領域と複数のダンプファイルとをそれぞれ対応させた形で，図８，図９において説明した第１の関連付け構造体３０に記憶する。これにより，メモリ２内における各ページ領域と，そのページ領域に記憶されたデータが書き出される第１のダンプファイル１１内のダンプファイル領域とを対応付けることができる。さらに，ＯＳの第１の関連付け部４１３は，第１のフラグを全て未書き出し状態（ダーティ状態）にする。これにより，メモリ２内のデータは，第１のダンプファイル１１のファイルキャッシュとして初期化される。その結果，その後の通常動作において，異常調査用装置２００から第１のダンプファイル１１にアクセスがあった場合，ＯＳは第１の関連付け構造体３０を参照して，メモリ２内のページ領域及び第１のダンプファイル１１内におけるダンプファイル領域のうち，データが存在する方にアクセスすることが可能になる。また，メモリ２内のデータを解放するときに，ＯＳは第１の関連付け構造体３０を参照して，解放されるメモリ２内のデータを，対応する第１のダンプファイル１１内のダンプファイル領域に書き出すことが可能になる。なお，図１５の例においては，第１の関連付け構造体３０は，メモリ２内のＯＳ内に記憶される。
【００５３】
［図１１のＳ３２からＳ３５］
図１０，図１１に戻り，情報処理装置１００のＯＳにおける第１のアクセス部４１５は，第１のダンプファイル１１へのアクセスがあった場合に（Ｓ３２のＹＥＳ），第１の関連付け構造体３０を参照して，メモリ２または第１のダンプファイル１１にアクセスを行う（Ｓ３３）。さらに，情報処理装置１００のＯＳにおける第１の書き出し部４１４は，メモリ２内のページ領域が解放されるときに（Ｓ３４のＹＥＳ），第１の関連付け構造体３０の第１フラグが未書き出し状態なら，ページ領域に記憶されているデータを第１のダンプファイル１１に書き出す（Ｓ３５）。
【００５４】
図１６は，ページ領域に記憶されたデータの一部が，第１のダンプファイル１１内のダンプアドレス領域に書き出した状態の図である。図９において説明したように，メモリ２内のページ領域が解放されるときに，ＯＳは，第１の関連付け構造体３０の第１のフラグと関連付けテーブルを参照して，第１のダンプファイル１１内のダンプファイル領域への書き出しを行う。
【００５５】
［関連付け処理の詳細］
図１７は，関連付け処理Ｓ４，Ｓ３０の詳細を説明するフローチャート図である。また，図１８から図２１は関連付け処理Ｓ４，Ｓ３０を説明する図である。図１８から図２１を参照しながら，図１７の関連付け処理Ｓ４，Ｓ３０の詳細について説明する。関連付け処理Ｓ３０は，複数のページ領域と複数のダンプファイルとをそれぞれ対応させる第１の関連付け構造体３０を作成する。第１の関連付け構造体３０は，異常発生時，リブートが行われる前に第１のダンプファイル１１が作成されたときに併せて作成される。また，第１の関連付け構造体３０は，第１のダンプファイル１１のアドレス情報等を管理する第１のダンプファイル管理構造体３１と，第１のダンプファイル１１内のダンプファイル領域及びこのダンプファイル領域に書き出される予定のデータが記憶されているメモリ２内のページ領域のアドレス情報を，それぞれ対応させる複数の第１のメモリ管理構造体３２とを有する。
【００５６】
図１８は，第１のダンプファイル管理構造体及び第１のメモリ管理構造体を説明する図である。図１８の例において，メモリ２はページ領域Ｍ０１からＭ０８の８つのページ領域を有しており，記憶媒体１０内の第１のダンプファイル１１内におけるダンプファイル領域はＤ１１からＤ１８の８つのページ領域を有している。また，第１のダンプファイル管理構造体３１は，第１のダンプファイル１１の情報を管理する構造体であり，第１のメモリ管理構造体３２は，メモリ２内のページ領域と，このページ領域に記憶されているデータが書き出される予定の第１のダンプファイル１１内におけるダンプファイル領域とを対応させて管理する構造体である。
【００５７】
本実施の形態においては，第１のダンプファイル管理構造体３１は，ダンプファイルごとに作成され，第１のメモリ管理構造体３２は，１つのページ領域及び１つのダンプファイル領域の組み合わせごとに作成される。したがって，図１８の例においては，ダンプファイルは１つのみ（第１のダンプファイル１１）であり，ページ領域とダンプファイル領域はそれぞれ８つ存在するため，第１のダンプファイル管理構造体３１は最大で１つ作成され，第１のメモリ管理構造体３２は最大で８つ作成される。
【００５８】
図１８の例においては，ダンプファイル領域Ｄ１１からＤ１８にはそれぞれデータが記憶されており，メモリ２にはページ領域Ｍ０６にのみデータが記憶されている。そして，第１のメモリ管理構造体３２は，ページ領域Ｍ０６とダンプファイル領域Ｄ１６とを対応付けて管理する第１のメモリ管理構造体Ｐ２６のみが存在している。
【００５９】
ここで，ダンプファイル管理構造体及びメモリ管理構造体が有する情報について説明する。図１８の第１のダンプファイル管理構造体３１は，ダンプファイルごとに作成されるものであり，ダンプファイルを特定するために必要な情報を有している。具体的には，第１のダンプファイル管理構造体３１は，例えば，（１）ダンプファイルの名称，（２）ダンプファイルが記憶されている記憶媒体（例えば，ＨＤＤ）の名称，（３）記憶媒体内におけるダンプファイルが記憶されている最初の領域のオフセット値，（４）ダンプファイルのサイズ，（５）読み出し可否や書き出し可否のダンプファイルの属性情報等を有している。そのため，記憶媒体の名称によって，ダンプファイルが記憶されている記憶媒体を特定することが可能になる。また，記憶媒体内におけるダンプファイルが記憶されている最初の領域のオフセット値と，ダンプファイルのサイズによって，記憶媒体内におけるダンプファイルが記憶されている領域を特定することが可能になる。
【００６０】
また，図１８における第１のメモリ管理構造体３２は，１つのページ領域及び１つのダンプファイル領域の組み合わせごとに作成されるものである。そして，第１のメモリ管理構造体３２が管理しているページ領域及びダンプファイル領域にアクセスができるように，それぞれの領域を特定することが可能な情報を有している。具体的に，（１）メモリ内のページ領域のアドレス，（２）管理しているページ領域に対応するダンプファイル領域を管理する第１のダンプファイル管理構造体３１へのリンク情報，（３）第１のダンプファイル１１内におけるオフセット値，（４）ページ領域に記憶されているデータが対応するダンプファイル領域に書き出されたか否か（ダーティ状態であるか否か）を示す第１のフラグの情報を有している。そのため，ページ領域のアドレスによって，管理するページ領域にアクセスすることが可能になる。また，第１のダンプファイル管理構造体３１内へのリンク情報と，ダンプファイル内のオフセット値によって，ページ領域に対応するダンプファイル領域が記憶されるダンプファイルを特定して，そのダンプファイル内におけるダンプファイル領域にアクセスすることが可能になる。
【００６１】
また，第１のメモリ管理構造体３２が第１のフラグを有することによって，ページ領域に記憶されているデータを解放する際に，ＯＳは，対応するダンプファイル領域への書き出しを行う必要があるか否かについて判断を行うことが可能になる。ＯＳは，例えば，図１７で説明したＳ４２において第１のメモリ管理構造体３２を作成するときに，ページ領域に記憶されているデータが対応するダンプファイル領域に記憶されていないことを示す第１のフラグを設定する。これにより，ＯＳがそのページ領域を解放する際には，ページ領域のデータをダンプファイルに書き出しを行ってからページ領域の解放を行うように制御することが可能になる。また，詳細については図２２で説明するが，ＯＳは，第１のメモリ管理構造体３２をメモリ内のページ領域が解放されたときに削除する。これにより，第１のメモリ管理構造体３２の有無によって，メモリ内のページ領域にデータが記憶されているか否か，第１のダンプファイル１１に書き出し済か否かについて判断を行うことができる。
【００６２】
図１９は，第１のダンプファイル管理構造体及び第１のメモリ管理構造体を説明する図である。図１９の例において，ページ領域Ｍ０５，Ｍ０８に対してメモリダンプ領域Ｄ１５，Ｄ１８にはデータが記憶されている状態である。そのため，第１のメモリ管理構造体Ｐ２５，Ｐ２８が存在しており，それぞれが有する第１のフラグは，ページ領域に記憶されているデータが，対応するダンプファイル領域にデータが記憶されているかを示している。
【００６３】
［図１７のＳ４１］
ＯＳにおける第１の関連付け部４１３は，異常発生時，リブート前に第１のダンプファイル１１を作成するときに，第１のダンプファイル１１内のダンプファイル領域を管理する第１のダンプファイル管理構造体３１を作成する（Ｓ４１）。
【００６４】
図２０は，第１のダンプファイル管理構造体３１が作成された状態の図である。図２０に示すように，異常発生後の情報処理装置１００のリブート時においては，ページ領域Ｍ０１からＭ０８の全てにデータが第１のダンプファイル１１に未書き出し状態であり，ダンプファイル領域Ｄ１１からＤ１８にはデータが記憶されていない状態である。また，ＯＳは，第１のダンプファイル１１作成時に，この第１のダンプファイル１１の情報を管理する第１のダンプファイル管理構造体３１を作成する。なお，図１７及び図２０の例においては，第１のダンプファイル管理構造体３１を第１の関連付け部４１３によって作成しているが，第１のダンプファイル１１が作成されるＳ２において，ＯＳの第１のダンプファイル作成部４１１が作成するものであってもよい。
【００６５】
［図１７のＳ４２からＳ４４］
次に，情報処理装置１００の第１の関連付け部４１３は，ページ領域を管理する第１のメモリ管理構造体３２を作成し（Ｓ４２），第１のメモリ管理構造体３２と第１のダンプファイル管理構造体３１とをリンクする（Ｓ４３）。そして，全てのページ領域について第１のメモリ管理構造体３２が作成されるまで，Ｓ４２及びＳ４３を繰り返す（Ｓ４４）。なお，図１７においては，第１のメモリ管理構造体３２の作成と，第１のダンプファイル管理構造体３１へのリンク作成とを交互に行っているが，それぞれ処理を複数回まとめて行ってもよい。
【００６６】
図２１は，第１のメモリ管理構造体３２が作成され，第１のダンプファイル管理構造体３１に対してリンクが作成された状態の図である。異常発生後の情報処理装置１００のリブート時においては，ページ領域Ｍ０１からＭ０８の全てにデータが第１のダンプファイル１１に未書き出し状態であり，ダンプファイル領域Ｄ１１からＤ１８にはデータが記憶されていない状態である。そのため，図１９において説明したように，全てのページ領域Ｍ０１からＭ０８に対して，それぞれ第１のメモリ管理構造体Ｐ２１からＰ２８が設けられている。さらに，ダンプファイル領域Ｄ１１からＤ１８にはデータが記憶されていない状態であるため，それぞれのメモリ管理構造体Ｐ２１からＰ２８が有する第１のフラグは，ページ領域に記憶されているデータが書き出されておらず，対応するダンプファイル領域のデータと不一致であることを示している。
【００６７】
［書き出し処理の詳細］
図２２は，書き出し処理Ｓ９，Ｓ３５の詳細を説明するフローチャート図である。また，図２３は，書き出し処理Ｓ３５を説明する図である。また，図２３は，書き出し処理Ｓ９，Ｓ３５を説明する図である。図２３を参照しながら，図２２の書き出し処理Ｓ９，Ｓ３５の詳細を説明する。ＯＳの第１の書き出し部４１４は，図４において説明したように，ページ領域を解放するときに，第１のフラグが未書き出し状態（ダーティ状態）であれば，第１のダンプファイル１１へ書き出しを行う（Ｓ５１）。次に，情報処理装置１００の第１の書き出し部４１４は，Ｓ５１で書き出したページ領域を管理する第１のメモリ管理構造体３２を消去する（Ｓ５２）。
【００６８】
図２３は，図２１の状態からページ領域Ｍ０２，Ｍ０４及びＭ０８が解放された状態を示す図である。図２３において，ページ領域Ｍ０２，Ｍ０４及びＭ０８のデータが解放するときに，ダンプファイル領域Ｄ１２，Ｄ１４及びＤ１８に書き出しが行われている（Ｓ５１）。また，ＯＳは，ページ領域のデータがダンプファイル領域に書き出した場合，このページ領域の情報を管理する第１のメモリ管理構造体３２を消去する。そのため，図２３においては，ダンプファイル領域への書き出しが完了したメモリ領域Ｍ０２，Ｍ０４及びＭ０８に対応する第１のメモリ管理構造体Ｐ２２，Ｐ２４及びＰ２８が消去されている（Ｓ５２）。これにより，ＯＳの第１のアクセス部４１５が，第１のダンプファイル１１内のデータへのアクセス要求に対して，ページ領域及びダンプファイル領域のうちどちらにアクセスすればよいかを，第１メモリ管理構造体を参照するだけで特定することが可能になる。
【００６９】
具体的に，図２３の状態において第１のダンプファイル１１へのアクセス処理Ｓ７，Ｓ３３が発生した場合について説明する。ＯＳの第１のアクセス部４１５は，そのアクセス対象のデータが記憶されているページ領域を管理する第１のメモリ管理構造体３２を参照する。ここで，その第１のメモリ管理構造体３２が存在した場合（例えば，メモリ管理構造体Ｐ２１）には，アクセス対象のデータはメモリ内のページ領域（ページ領域Ｍ０１）に記憶されていることになる。そのため，第１のメモリ管理構造体３２に記憶されているページ領域のアドレスを参照して，そのページ領域にアクセスを行うことが可能になる。一方，アクセス対象のデータが記憶されているページ領域を管理する第１のメモリ管理構造体３２が存在しない場合（例えば，メモリ管理構造体Ｐ２２），そのアクセス対象のデータはメモリ内のページ領域（ページ領域Ｍ０２）に記憶されておらず，ダンプファイル領域（ダンプファイル領域Ｄ１２）に記憶されていることになる。そのため，第１のメモリ管理構造体３２に記憶されているダンプファイル領域のアドレスを参照して，そのダンプファイル領域にアクセスを行うことが可能になる。なお，ページ領域に記憶されたデータがダンプファイル領域にも記憶されているか否かに問わず，アクセス対象のデータが記憶されているページ領域を管理する第１のメモリ管理構造体３２が存在するか否かを判断することによって，ページ領域及ダンプファイル領域のうちどちらにアクセスすべきか判断することが可能である。
【００７０】
［第２の実施の形態］
図２４は，再異常対応処理を説明するフローチャート図である。また，図２５から図２７は，再異常対応処理を説明する図である。図２５から図２７を参照しながら，図４の再異常対応処理について説明する。図４において説明した第１の実施の形態における異常対応処理では，情報処理装置１００のリブートが完了した後において，第１の書き出し部４１４によって第１のダンプファイル１１への書き出しが行われる。この第１のダンプファイル１１への書き出しは，図９で説明したように，メモリ２内のページ領域が解放されたときに行われるものであり，全てのページ領域に記憶されたデータの書き出しが完了するまでに，長時間を要する場合が考えられる。そのため，全てのページ領域に記憶されているデータの書き出しが完了するまでに，別の異常をＯＳが検知して，再度情報処理装置１００のリブートが発生する場合がある。再異常対応処理は，このような場合に実行される。具体的にＯＳは，図４におけるＳ６からＳ９のいずれか，または図１１のＳ３２からＳ３５のいずれかで再異常対応処理を実行する。
【００７１】
この再異常対応処理は，第１のダンプファイル１１とは異なる第２のダンプファイル２１に，メモリ２内のページ領域に記憶されているデータを書き出すものである。すなわち，それまで行っていた第１のダンプファイル１１に対する書き出しを中止し，第１のダンプファイル１１とは異なる第２のダンプファイル２１に別の異常が発生した時におけるメモリ２内のデータの書き出しを行う。なお，この再異常対応処理は，図４で説明したＳ６からＳ９までのいずれか，または図１０，図１１で説明したＳ３２からＳ３５のいずれかにおいて，ＯＳが別の異常を検知した場合に実行される。以下，再異常対応処理の詳細について説明する。
【００７２】
［図２４のＳ６１］
初めに，ＯＳの異常検知部４１６は，情報処理装置１００内における異常の発生の検知を行う（Ｓ６１）。なお，このＳ６１は，図４で説明したＳ１と同じであるため，ここでは説明を省略する。
【００７３】
図２５，第１のダンプファイル１１に対する書き出しを中止する際の図である。図２５に示すように，ＯＳの異常検知部４１６が，異常対応処理が実行する原因となった異常とは別の異常を検知した場合，第１のダンプファイル１１への書き出しを中止し，第２のダンプファイル２１への処理を開始する。そのため，書き出しが中止された第１のダンプファイル１１は，上書きされることなく中止にされたときの状態を維持する。
【００７４】
［図４のＳ２，Ｓ４，図１０，図１１のＳ２２，Ｓ３０］
ここで，再異常対応処理を実行するために，異常対応処理内で行う必要がある処理について説明する。Ｓ６４において説明する第２の関連付け構造体４０を作成する際に，複数のダンプファイルが記憶媒体内に存在している場合がある。そのため，Ｓ６４において説明するＯＳの第２の関連付け部４２３が，どのダンプファイルについて第２の関連付け構造体４０を作成すればよいかを判断する必要がある。具体的に，異常対応処理部はその処理内において以下の処理を行う。
【００７５】
第１のダンプファイル１１の作成を行う図４のＳ２，図１０のＳ２２において，作成した第１のダンプファイル１１の先頭バイトに，例えば「０ｘ００」を書き込む。さらに，第１の関連付け構造体３０の作成を行う図４のＳ４及び図１１のＳ３０において，記憶媒体内に存在するダンプファイルの先頭バイトに「０ｘ００」が書き込まれているか否かをチェックし，「０ｘ００」が書き込まれているダンプファイルに対して，第１の関連付け構造体３０を作成する。そして，第１の関連付け構造体３０の作成後，対応するダンプファイル（第１のダンプファイル１１）の先頭バイトに，「０ｘｆｆ」を書き込んで関連付け済状態にする。これにより，Ｓ６４において説明する第２の関連付け構造体４０の作成時に，既に第１の関連付け構造体３０が作成されている第１のダンプファイル１１について新たな関連付け構造体が作成されることを防ぐことができる。
【００７６】
［図２４のＳ６２，Ｓ６３］
図２４に戻り，ＯＳにおける第２のダンプファイル作成部４２１が，メモリ２内のページ領域に記憶されているデータを書き出すための第２のダンプファイル２１を記憶媒体２０（第２の記憶媒体）内に作成する（Ｓ６２）。そして，ＯＳの第２のダンプファイル作成部４２１は，作成した第２のダンプファイル２１の先頭バイトに「０ｘ００」を書き込む。次に，情報処理装置１００のファームウエア３によって起動される第２のリブート部４２２は，メモリ２内に記憶されているデータを消去することなく情報処理装置１００をリブートする（Ｓ６３）。なお，このＳ６２，Ｓ６３は，書き出し先のダンプファイルが異なっているが，処理の内容は図４で説明したＳ２，Ｓ３と同じであるため，ここでは説明を省略する。また，記憶媒体１０と記憶媒体２０は，同じ記憶媒体であってもよい。
【００７７】
図２６は，記憶媒体２０内に第２のダンプファイル２１を作成した際の図である。図２６に示すように，ＯＳの異常検知部４１６が，異常対応処理を実行する原因となった異常とは別の異常をＯＳが検知した場合，第１のダンプファイル１１への書き出しの進捗にかかわらず，その別の異常発生時におけるメモリ２内のデータを，リブート後にアクセス可能にする必要がある。そのため，異常対応処理を実行する原因となった異常とは別の異常をＯＳが検知したときに，第２のダンプファイル作成部４２１は，第２のダンプファイル２１を作成する。
【００７８】
［図２４のＳ６４からＳ６８］
図２４に戻り，ＯＳの第２の関連付け部４２３が，情報処理装置１００のリブート中に，メモリ２内のデータが記憶されているページ領域と，データが書き出される第２のダンプファイル２１内のダンプファイル領域との関連付けテーブルを作成する（Ｓ６４）。この関連付けテーブルの作成は，先頭バイトが「０ｘ００」である第２のダンプファイル２１に対して行い，関連付け済状態（第１の関連付け構造体３０が作成されている状態）にある第１のダンプファイル１１は，先頭バイトが「０ｘｆｆ」であるので，関連付けテーブルの作成は行わない。
【００７９】
次に，リブート後の通常動作において第２のダンプファイル２１へのアクセスがあった場合（Ｓ６５のＹＥＳ），ＯＳの第２のアクセス部４２５が，第２の関連付け構造体４０（または第２のテーブル４０と呼ぶ）を参照して，メモリ２または第２のダンプファイル２１にアクセスを行う（Ｓ６６）。なお，第２の関連付け構造体４０は，第１の関連付け構造体３０と同様に，メモリ２内においてデータが記憶されているページ領域と，そのデータが書き出される第２のダンプファイル２１内のダンプファイル領域とを対応付ける。また，この第２の関連付け構造体４０は，第２のダンプファイル２１のアドレス情報等を管理する第２のダンプファイル管理構造体４１と，第２のダンプファイル２１内のダンプファイル領域及びこのダンプファイル領域に書き出されるデータが記憶されているページ領域のアドレス情報を，それぞれ対応させて管理する複数の第２のメモリ管理構造体４２からなる。
【００８０】
また，ＯＳの第２の書き出し部４２４が，リブート後の通常動作において，メモリ２内のページ領域が解放されたときに（Ｓ６７のＹＥＳ），ページ領域に記憶されているデータを第２のダンプファイル２１に書き出す（Ｓ６８）。なお，このＳ６４からＳ６６は，図４で説明したＳ４からＳ６と同じであるため，ここでは詳細な説明を省略する。
【００８１】
図２７は，メモリ２内のページ領域と第２のダンプファイル２１内のダンプファイル領域とを対応付けた関連付けテーブルの作成を行い，第２のダンプファイル２１に対する書き出しを開始した際の図である。図２７の例においては，図１０，図１１で説明した場合と同様に，リブート前に，ＯＳのロードを行うための領域を確保するために第２のダンプファイルに対して書き出し処理を行っている。また，図２７の例においては，情報処理装置１００のリブート前における書き出し処理によって，第１のダンプファイルに関する第１の関連付け構造体３０（第１のダンプファイル管理構造体３１及び第１のメモリ管理構造体３２を含む）の第２のダンプファイル２１への書き出しを完了させている。
【００８２】
［書き出し再開処理］
図２８は，書き出し再開処理を説明するフローチャート図である。また，図２９，図３０は，書き出し再開処理を説明する図である。図２９，図３０を参照しながら図２８の書き出し再開処理について説明する。異常対応処理を実行する原因となった異常とは別の異常をＯＳが検知された場合，ＯＳは，図２４において説明した再異常対応処理が実行し，第１のダンプファイル１１への書き出し処理を中止する。この書き出し再開処理は，再異常対応処理の実行時に中止された第１のダンプファイル１１への書き出しを再開するための処理である。
【００８３】
［図２８のＳ７１］
初めに，例えば，ユーザが書き出し再開処理を実行させるコマンドを入力し，ＯＳがこのコマンド入力に応答して書き出し再開処理を実行する（Ｓ７１）。図２８の例では，ＯＳは，ユーザによるコマンド入力に応答して，第１のダンプファイル１１への書き出し処理を再開させる。なお，書き出し再開処理は，メモリ２内のページ領域に記憶されているデータの第２のダンプファイル２１への書き出しと，並行して実行することが可能である。そのため，このユーザによるコマンド入力は，再異常対応処理が実行された後，任意のタイミングで実行することが可能である。また，例えば，再異常対応処理が実行したことに応答して，書き出し再開処理を実行させるものであってもよい。
【００８４】
また，第１のダンプファイル１１に，第１のダンプファイル１１への書き出しの実行中または実行済（メモリ２内のページ領域に記憶されているデータが第１のダンプファイル１１に書き出されているか否か）を示す第２のフラグを設けておき，この第２のフラグが実行中である場合に限り，書き出し再開処理の実行を可能にするものであってよい。具体的には，第１のダンプファイル１１への書き出し実行中に，異常対応処理を実行する原因となった異常とは別の異常をＯＳが検知した場合，第２のフラグは実行中を示したままで保持される。
【００８５】
一方，第１のダンプファイル１１への書き出しが完了した後に，異常対応処理を実行する原因となった異常とは別の異常をＯＳが検知した場合，第２のフラグは実行済を示したままで保持される。そして，書き出し再開処理は，第１のダンプファイル１１への書き出し実行中に別の異常が発生した場合に限り実行すればよいため，ＯＳは第２のフラグが実行中の場合のみ実行する。なお，例えば，ＯＳが，Ｓ４またはＳ２４においてリブートが実行される前に，第２のフラグを実行中に更新し，Ｓ９またはＳ３５における第１のダンプファイル１１への書き出しが全て完了した後に，第２のフラグを実行済に更新するものであってよい。
【００８６】
［図２８のＳ７２，Ｓ７３］
次に，Ｓ７１において実行されたＯＳの書き出し再開部４３１は，第１のメモリ管理構造体３２に対応付けられたページ領域のうち，第１のフラグが第１のダンプファイルに書き出されていないことを示すページ領域を検索する（Ｓ７２）。そして，ＯＳの書き出し再開部４３１は，Ｓ７２において検索したページ領域に記憶されていたデータが記憶されている領域（メモリ２内のページ領域または第２のダンプファイル２１内のダンプファイル領域）にアクセスし，その領域に記憶されているデータを第１のダンプファイル１１に書き出しを行う（Ｓ７３）。これにより，中止されていた第１のダンプファイル１１に対する書き出しが再開し，最初の異常発生時（第１のダンプファイル１１が作成される原因となった異常の発生時）のメモリ２内のデータを全て第１のダンプファイル１１に書き出すことが可能になる。そのため，異常の原因究明を再開することが可能になる。
【００８７】
この再異常対応処理において，２回目の異常発生時のメモリ２内のデータは順次第２のダンプファイル２１に書き出される。そのため，第１のメモリ管理構造体３２の情報を検索する際において，第１のメモリ管理構造体３２の情報が第２のダンプファイル２１に書き出されていれば，第２のダンプファイル２１内における第１のメモリ管理構造体３２を検索する必要がある。一方，第１のメモリ管理構造体３２の情報が第２のダンプファイル２１に書き出されていなければ，メモリ２内における第１のメモリ管理構造体３２を検索する必要がある。
【００８８】
また，検索したページに領域についても，検索したページ領域が第２のダンプファイル２１に書き出されていれば，第２のダンプファイル２１にアクセスする必要がある。一方，検索したページ領域が第２のダンプファイル２１に書き出されていなければ，メモリ２内のページ領域にアクセスする必要がある。
【００８９】
なお，この書き出し再開処理は，第２のダンプファイルへの書き出しが完了したあとに実行するものであってもよい。そして，第１のダンプファイル１１に書き出しを行う必要がある全てのデータの書き出しが完了するまで，Ｓ７２とＳ７３を繰り返す（Ｓ７４）。
【００９０】
［書き出し再開処理の動作例（１）］
図２９は，検索したページ領域が第２のダンプファイル２１に記憶されている場合の書き出し再開処理を説明する図である。なお，図２９の例においては，第１のメモリ管理構造体３２（第１の関連付け構造体３０）が第２のダンプファイル２１に既に書き出されている場合について説明する。図２９に示すように，書き出し再開処理は，例えば，調査用端末が書き出し再開処理を実行させるコマンドをＯＳに対して入力し，ＯＳがこのコマンド入力に応答することにより実行される（Ｓ７１）。
【００９１】
次に，実行されたＯＳの書き出し再開部４３１は，第１のメモリ管理構造体３２に対応付けられたページ領域のうち，第１のフラグが第１のダンプファイル１１に書き出されていないことを示すページ領域を検索する（Ｓ７２）。図２２において説明したように，第１のメモリ管理構造体３２は，ページ領域に記憶されたデータが解放されたときに消去される。そのため，第１のメモリ管理構造体３２が存在しているページ領域には，書き出しが必要なデータが記憶されている可能性がある。そして，ＯＳの書き出し再開部４３１は，検索した第１のメモリ管理構造体３２の中で，第１のフラグが未書き込み状態を示している第１のメモリ管理構造体３２に対応するページ領域を検索する。図２９の例においては，メモリ２内のＯＳが，第２のダンプファイル２１に書き出されている第１の関連付け構造体３０に対して検索を行う（Ｓ７２）。
【００９２】
さらに，ＯＳは，検索したページ領域に記憶されていたデータが，記憶されている領域にアクセスし，そのアクセスした領域に記憶されるデータを第１のダンプファイル１１に書き出す（Ｓ７３）。図２９の例においては，検索したページ領域が第２のダンプファイル２１に既に書き出されているため，第２のダンプファイル２１内のダンプファイル領域に記憶されているデータに対してアクセスを行い（Ｓ７３−１），アクセスしたデータを第１のダンプファイル１１に書き出している（Ｓ７３−２）。なお，第１のダンプファイル１１及び第２のダンプファイル２１のデータサイズは，メモリ２のデータサイズと同じである。また，第１のダンプファイル１１において各データが書き出されるダンプファイル領域１１ａのオフセット位置（格納位置）と，第２のダンプファイル２１において各データが書き出されるダンプファイル領域２１ａのオフセット位置とは同一のオフセット値である。そのため，ＯＳの書き出し再開部４３１は，第１のメモリ管理構造体３２の中で，第１のフラグが未書き込み状態を示しているダンプファイル領域１１ａのオフセット値に基づいて，第２のダンプファイル２１内のダンプファイル領域２１ａにアクセスする。そして，ダンプファイル領域２１ａにデータが書き出されていれば（第２のダンプファイル２１に対する第２のメモリ管理構造体４２が存在しない場合），そのデータを第１のダンプファイル１１内の同じダンプファイル領域１１ａに書き出す。
【００９３】
［書き出し再開処理の動作例（２）］
図３０は，検索したページ領域が第２のダンプファイル２１に記憶されていな.
い場合の書き出し再開処理を説明する図である。図３０の例においては，図２９の例の場合と異なり，Ｓ７２において検索したページ領域が第２のダンプファイル２１に書き出されていないため，ＯＳが，第１のメモリ管理構造体３２（第１の関連付け構造体３０）を参照して第２のダンプファイル２１内のダンプファイル領域２１ａにアクセスした際に，データを取得することができない（Ｓ７３−１）。
【００９４】
そのため，書き出し再開処理において，ＯＳはさらに，メモリ２内のＯＳに記憶されている第２のメモリ管理構造体４２を参照して（Ｓ７３−２），アクセスしたダンプファイル領域２１aに対応するメモリ２内のページ領域２ａにアクセスする（Ｓ７３−３）。これにより，書き出し再開処理は，検索したページ領域にアクセスすることが可能になり，検索したページ領域に記憶されているデータを第１のダンプファイル１１に書き出すことが可能になる（Ｓ７３−４）。なお，Ｓ７１，Ｓ７２については，図２９で説明した例と同様であるため，ここでは説明を省略する。
【００９５】
［再異常対応処理中の書き出し処理］
図３１は，再異常対応処理中の書き出し処理Ｓ６８を説明するフローチャート図である。また，図３２は，再異常対応処理中の書き出し処理Ｓ６８を説明する図である。図３２を参照しながら図３１の再異常対応処理中の書き出し処理Ｓ６８を説明する。図２８で説明した書き出し再開処理は，再異常対応処理の実行によって中止された第１のダンプファイル１１に対する書き出し処理を，例えばユーザからのコマンド入力によって任意のタイミングで再開させるものである。これに対し，図３１に再異常対応処理中の書き出し処理は，再異常対応処理において第２のダンプファイル２１に対して書き出し処理を行うときに，第１のダンプファイル１１に対しても書き出し処理を行う。そのため，図３１の例において，情報処理装置１００は，図２８で説明した書き出し再開処理を実行する書き出し再開部４３１に代えて，図３１で説明する再異常対応処理中の書き出し処理を実行可能である第２の書き出し部４２４を有する。
【００９６】
再異常対応処理中の書き出し処理は，初めに，ＯＳがページ領域を解放するときに第２のダンプファイル２１に書き出しを行い（Ｓ８１），書き出したページ領域を管理する第２のメモリ管理構造体４２を消去する（Ｓ８２）。ここまでは，図２４で説明した再異常対応処理と同じである。
【００９７】
次に，解放されるページ領域が第１のダンプファイル１１に書き出されていない場合には（Ｓ８３のＹＥＳ），書き出し処理Ｓ６８は，解放されるページ領域に記憶されているデータを第１のダンプファイル１１に対しても書き出し処理を行う（Ｓ８４）。そして，書き出したページ領域を管理する第１のメモリ管理構造体３２を消去する（Ｓ８５）。一方，解放されるページ領域が第１のダンプファイル１１に書き出されている場合には（Ｓ８３のＮＯ），第１のダンプファイルに対する書き出しを行わない。
【００９８】
図３２に示すように，ここで説明する再異常対応処理中の書き出し処理は，メモリ２内のＯＳに，第１のメモリ管理構造体３２及び第２のメモリ管理構造体４２（第１の関連付け構造体３０及び第２の関連付け構造体４０）を有している。具体的には，再異常対応処理が実行されたときに，第１のメモリ管理構造体３２をリブート後のＯＳの中に保持しておく。これにより，メモリ２の解放が発生した場合に，第１のダンプファイル１１及び第２のダンプファイル２１の両方に書き出しを行うことが可能になる。
【００９９】
以上の実施の形態をまとめると，以下の付記のとおりである。
【０１００】
（付記１）
オペレーティングシステムが第１の異常を検知した時の処理を情報処理装置に実行させる調査用プログラムであって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成し，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成し，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す，
処理を実行する調査用プログラム。
【０１０１】
（付記２）
付記１において，
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第１のダンプファイルへのアクセスに応答して，前記第１のテーブルを参照し，前記メモリまたは前記第１のダンプファイルにアクセスする，
処理を更に実行する調査用プログラム。
【０１０２】
（付記３）
付記１または２において，
前記リブートを行う処理の前に，前記オペレーティングシステムのリブートに必要な領域に相当する大きさの前記ページ領域に記憶されたデータを，前記第１のダンプファイルに書き出し，
前記第１のテーブルを作成する処理は，前記第１のダンプファイルに書き出されていないページ領域について，前記第１のテーブルを作成する，
処理を更に実行する調査用プログラム。
【０１０３】
（付記４）
付記１乃至３のいずれかにおいて，
前記第１のダンプファイルに書き出す処理の実行中に，前記第１の異常とは別の第２の異常を検知した場合，前記メモリ内のデータを書き出す第２のダンプファイルを前記記憶媒体内に作成し，
前記第２のダンプファイルを作成した後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第２のダンプファイル内における複数のダンプファイル領域とを関連付ける第２のテーブルを作成し，
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第１のダンプファイルへのアクセスに応答して，前記第２のテーブルを参照し，前記メモリまたは前記第１のダンプファイルにアクセスし，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第２のダンプファイルに書き出す，
処理を更に実行する調査用プログラム。
【０１０４】
（付記５）
付記１乃至３のいずれかにおいて，
前記第１のダンプファイルを作成する処理は，前記第１のダンプファイルが作成されるときに，前記第１のダンプファイルのアドレス情報を管理する第１のダンプファイル管理構造体を作成し，
前記第１のテーブルを作成する処理は，前記第１のテーブルとして，前記ページ領域と前記ダンプファイル領域とのアドレス情報をそれぞれ有する複数の第１のメモリ管理構造体を作成する，調査用プログラム。
【０１０５】
（付記６）
付記５において，
前記第１のメモリ管理構造体は，前記ページ領域に記憶されているデータが前記第１のダンプファイルに書き出されていないか否かを示す第１のフラグを有し，
前記第１のテーブルを作成する処理は，前記第１のメモリ管理構造体を作成するときに，前記第１のフラグを，前記ページ領域に記憶されているデータが前記ダンプファイル領域に書き出されていないことを示すように設定する，調査用プログラム。
【０１０６】
（付記７）
付記６において，
前記第１のダンプファイルに書き出す処理は，前記第１のメモリ管理構造体が管理するページ領域が解放されるときに，前記第１のフラグが前記ダンプファイル領域に書き出されていないことを示す場合は，前記解放されるページ領域のデータを前記ダンプファイル領域に書き出す，調査用プログラム。
【０１０７】
（付記８）
付記６において，
前記第１のダンプファイルに書き出す処理の実行中に，前記第１の異常とは別の第２の異常を検知した場合，前記メモリ内のデータを書き出す第２のダンプファイルを前記記憶媒体内に作成し，
前記第２のダンプファイルを作成した後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第２のダンプファイル内における複数のダンプファイル領域とを関連付ける第２のテーブルを作成し，
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第１のダンプファイルへのアクセスに応答して，前記第２のテーブルを参照し，前記メモリまたは前記第１のダンプファイルにアクセスし，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第２のダンプファイルに書き出し， 
前記第１のメモリ管理構造体によって対応付けられたページ領域のうち，前記第１のフラグが第１のダンプファイルに書き出されていないことを示すページ領域に記憶されていたデータについて，前記第１のダンプファイルへの書き出しを再開する，
処理を更に実行する調査用プログラム。
【０１０８】
（付記９）
付記８において，
前記第１のダンプファイルは，前記第１のダンプファイルへの書き出しの実行中または実行済を示す第２のフラグを有し，
前記第１のダンプファイルへの書き出しを再開する処理は，前記第２のフラグが前記実行中を示しているときに，前記第１のダンプファイルへの書き出しを実行する，調査用プログラム。
【０１０９】
（付記１０）
付記９において，
前記第１の異常を検知したときのリブートを行う処理の前に，前記第２のフラグを前記実行中に設定し，
前記第１のダンプファイルに書き出す処理の後に，前記第２のフラグを前記実行済に設定する，調査用プログラム。
【０１１０】
（付記１１）
オペレーティングシステムが第１の異常を検知した時の処理をする情報処理装置であって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成する処理部と，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理部と，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成する処理部と，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す処理部と，を有する，
情報処理装置。
【０１１１】
（付記１２）
オペレーティングシステムが第１の異常を検知した時の処理をする情報処理装置における情報処理方法であって，
前記情報処理装置内のメモリ内のデータを書き出すための第１のダンプファイルを記憶媒体内に作成する処理工程と，
前記第１の異常の検知後であって前記第１のダンプファイルの作成後に，前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理工程と，
前記リブート中に，前記メモリ内の複数のページ領域と，前記ページ領域に対応する前記第１のダンプファイル内における複数のダンプファイル領域とを関連付ける第１のテーブルを作成する処理工程と，
前記メモリ内のページ領域が解放されるときに，該ページ領域に記憶されているデータを前記第１のダンプファイルに書き出す処理工程と，を有する，
情報処理方法。
【符号の説明】
【０１１２】
１  ＣＰＵ，２  メモリ，３  ファームウエア，４  プログラム用記憶媒体，
１０  記憶媒体，１１  第１のダンプファイル，
２０  記憶媒体，１２  第２のダンプファイル，
３０  第１の関連付け構造体，３１  第１のダンプファイル管理構造体，
３２  第１のメモリ管理構造体，
４０  第２の関連付け構造体，４１  第２のダンプファイル管理構造体，
４２  第２のメモリ管理構造体，
１００  情報処理装置
【図１】
2015114750.tif 000003
【図２】
2015114750.tif 000004
【図３】
2015114750.tif 000005
【図４】
2015114750.tif 000006
【図５】
2015114750.tif 000007
【図６】
2015114750.tif 000008
【図７】
2015114750.tif 000009
【図８】
2015114750.tif 000010
【図９】
2015114750.tif 000011
【図１０】
2015114750.tif 000012
【図１１】
2015114750.tif 000013
【図１２】
2015114750.tif 000014
【図１３】
2015114750.tif 000015
【図１４】
2015114750.tif 000016
【図１５】
2015114750.tif 000017
【図１６】
2015114750.tif 000018
【図１７】
2015114750.tif 000019
【図１８】
2015114750.tif 000020
【図１９】
2015114750.tif 000021
【図２０】
2015114750.tif 000022
【図２１】
2015114750.tif 000023
【図２２】
2015114750.tif 000024
【図２３】
2015114750.tif 000025
【図２４】
2015114750.tif 000026
【図２５】
2015114750.tif 000027
【図２６】
2015114750.tif 000028
【図２７】
2015114750.tif 000029
【図２８】
2015114750.tif 000030
【図２９】
2015114750.tif 000031
【図３０】
2015114750.tif 000032
【図３１】
2015114750.tif 000033
【図３２】
2015114750.tif 000034