[go: up one dir, main page]

JP2015114750A - 調査用プログラム,情報処理装置及び情報処理方法 - Google Patents

調査用プログラム,情報処理装置及び情報処理方法 Download PDF

Info

Publication number
JP2015114750A
JP2015114750A JP2013254864A JP2013254864A JP2015114750A JP 2015114750 A JP2015114750 A JP 2015114750A JP 2013254864 A JP2013254864 A JP 2013254864A JP 2013254864 A JP2013254864 A JP 2013254864A JP 2015114750 A JP2015114750 A JP 2015114750A
Authority
JP
Japan
Prior art keywords
dump file
memory
information processing
abnormality
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2013254864A
Other languages
English (en)
Inventor
英幸 丹羽
Hideyuki Niwa
英幸 丹羽
寛之 亀澤
Hiroyuki Kamezawa
寛之 亀澤
上田 康夫
Yasuo Ueda
康夫 上田
長濱 裕一
Yuichi Nagahama
裕一 長濱
英俊 瀬戸
Hidetoshi Seto
英俊 瀬戸
拓 泉
Taku Izumi
拓 泉
靖章 石松
Yasuaki Ishimatsu
靖章 石松
顕 市川
Akira Ichikawa
顕 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013254864A priority Critical patent/JP2015114750A/ja
Priority to US14/552,818 priority patent/US9507657B2/en
Publication of JP2015114750A publication Critical patent/JP2015114750A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】システムのリブートを伴う異常終了時に,システムのダウンタイムを短縮する調査用プログラム,情報処理装置及び情報処理方法を提供する。
【解決手段】情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成し,第1の異常の検知後であって第1のダンプファイルの作成後に,メモリ内に記憶されているデータを消去することなく情報処理装置をリブートし,リブート中に,メモリ内の複数のページ領域と,ページ領域に対応する第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成し,メモリ内のページ領域が解放されるときに,そのページ領域に記憶されているデータを第1のダンプファイルに書き出す。
【選択図】図4

Description

本発明は,調査用プログラム,情報処理装置及び情報処理方法に関する。
稼働中のシステムにおいて,OS(オペレーティングシステム)が異常を検知した場合,ダンプファイルが作成される。このダンプファイルは,異常を検知した瞬間のメモリ,CPU内部のレジスタ,ディスク等の内部のデータが記録されるものであり,検知した異常の原因調査を行うために用いられるものである(例えば,特許文献1を参照)。
OSがシステムの異常発生を検知した場合,検知した異常の内容によっては,システムを正常に動作させるためにリブート(再起動)が行われる。このリブートが行われる際に,リブートに用いるメモリ容量を確保する必要性からメモリに記憶されている内容は消去される場合がある。そのため,ダンプファイルへのメモリ内のデータの採取は,システムのリブートが行われる前に実行される。
特開2007−193414号公報
システムの異常が発生した場合,ダンプファイルにメモリのデータを記憶してからリブートを行うため,長い時間に渡りシステムに関連するサービス等が停止することになる。そのため,メモリ内のデータの採取に伴う被害の発生または被害の拡大を防止するために,システムのリブートまでに要する時間(以下,システムのダウンタイム)を可能な限り短くし,システムの通常運用への復旧を迅速に行うことが要求される。
しかしながら,(1)昨今のサーバシステムでは,メモリ容量が数テラバイトあるものも登場し,ダンプファイルの採取(具体的には,メモリとは異なる記憶媒体へのメモリ内のデータの書き出し)に長時間を要する傾向にある。そのため,システムの復旧がダンプファイルの採取によって遅延することになり,システムのダウンタイムが長引く要因となる。(2)また,ダンプファイルの採取時間を短縮させるために,システムのリブート時においてメモリに記憶されていた内容を消去しないままリブートを行う方法が考えられるが,再起動時にメモリに残されたデータは,再起動後のOSからは認識することができない。そのため,メモリに記憶されていたデータを消去しないままリブートを行っても,再起動後にダンプファイルを作成することはできない。(3)さらに,ダンプファイルの採取に長時間を要する結果,ダンプファイルの内容の解析開始も遅れることになる。そのため,システム異常終了の原因の特定が遅れ,結果としてシステムの復旧がさらに遅れる要因となる。
そこで,一つの実施の形態の目的は,システムのリブートを伴う異常終了時に,システムのダウンタイムを短縮する調査用プログラム,情報処理装置及び情報処理方法を提供することにある。
実施の形態の一つの側面によれば,オペレーティングシステムが第1の異常を検知した時の処理を情報処理装置に実行させる調査用プログラムであって,
前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成し,
前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成し,
前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す。
システムのリブートを伴う異常終了時に,システムのダウンタイムを短縮することができる。
本実施の形態における情報処理装置及び異常調査用装置のハードウエア構成を示す図である。 情報処理装置のソフトウエアが有する機能の一例を示す図である。 通常行われる異常発生時におけるシャットダウン時間を説明する図である。 異常対応処理の概略を説明するフローチャート図である。 本実施の形態の異常発生時におけるシャットダウン時間を説明する図である。 異常対応処理の概略を説明する図である。 異常対応処理の概略を説明する図である。 異常対応処理の概略を説明する図である。 メモリ内のページ領域の解放について説明する図である。 異常対応処理及び正常対応処理の詳細を説明する図である。 異常対応処理及び正常対応処理の詳細を説明する図である。 異常対応処理の詳細を説明する図である。 異常対応処理の詳細を説明する図である。 異常対応処理の詳細を説明する図である。 異常対応処理の詳細を説明する図である。 異常対応処理の詳細を説明する図である。 関連付け処理S4,S30の詳細を説明するフローチャート図である。 関連付け処理S4,S30を説明する図である。 関連付け処理S4,S30を説明する図である。 関連付け処理S4,S30を説明する図である。 関連付け処理S4,S30を説明する図である。 書き出し処理S9,S35の詳細を説明するフローチャート図である。 書き出し処理S9,S35を説明する図である。 再異常対応処理を説明するフローチャート図である。 再異常対応処理を説明する図である。 再異常対応処理を説明する図である。 再異常対応処理を説明する図である。 書き出し再開処理を説明するフローチャート図である。 書き出し再開処理を説明する図である。 書き出し再開処理を説明する図である。 再異常対応処理中の書き出し処理S68を説明するフローチャート図である。 再異常対応処理中の書き出し処理S68を説明する図である。
[試験システムの構成]
図1は本実施の形態における情報処理装置及び異常調査用装置のハードウエア構成を示す図である。図1に示すように,情報処理装置100と異常調査用装置200は,例えば通信ネットワーク(図示しない)を介して接続可能である。
情報処理装置100(または,システムとも呼ぶ)は,プロセッサであるCPU1と,メモリ2と,外部インターフェース5(I/Oユニット)と,図2において説明するソフトウエア410(プログラム)を格納するプログラム用記憶媒体4とを有し,それらがBUSを介して接続されている。プログラム用記憶媒体4は,例えば,ソフトウエアを読み出し可能なHDDである。また,情報処理装置100は,メモリ2に格納されたOS(図示しない)が情報処理装置100内の異常(または第1の異常と呼ぶ)を検知した場合に,異常発生時のメモリ2の状態を書き出すダンプファイル用記憶媒体10,20(以下,記憶媒体10,20,または第1の記憶媒体10及び第2の記憶媒体20とも呼ぶ)を有し,メモリ2等とBUSを介して接続されている。なお,図1では,ダンプファイル用記憶媒体が2つある場合について示しているが,この例に限られず,1つまたは3つ以上のダンプファイル用記憶媒体を有している構成であってもよい。また,プログラム用記憶媒体4及びダンプファイル用記憶媒体10,20が単一の記憶媒体から構成されているものであってもよい。
異常調査用装置200は,プロセッサであるCPU101と,メモリ102と,外部インターフェース105(I/Oユニット)と,ダンプファイル用記憶媒体10,20に格納されているデータを調査するためのソフトウエアを格納する記憶媒体104とを有し,それらがBUSを介して接続されている。記憶媒体104は,情報処理装置100の記憶媒体4,10,20と同様に,例えば,ソフトウエアを読み出し可能なHDDである。
図2は,情報処理装置のソフトウエアが有する機能の一例を示す図である。情報処理装置100は,例えば,異常調査用装置200からのアクセスに応じて,要求されたデータを異常調査用装置200に返すものである。情報処理装置100は,図示しないCPUなどのハードウエアに加えて,記憶媒体4内にソフトウエア410(以下,異常対応処理部とも呼ぶ)を有する。ソフトウエア410は,情報処理装置100のリブートを要する異常の発生時に,メモリ2内に記憶されているデータのダンプファイルをダンプファイル用記憶媒体10,20に作成する。そして,情報処理装置100のリブート後に,メモリ2内に記憶されているデータをダンプファイルに書き出し,さらに,メモリ2またはダンプファイル用記憶媒体10,20に記憶されているデータへのアクセスを可能にする。なお,ソフトウエア410は,情報処理装置100のメモリ2内に格納されているOSが起動するOSプログラム,または情報処理装置100のファームウエア3(例えば,BIOS等)が起動するファームウエアプログラムのいずれかに分類することが可能である。
ソフトウエア410は,例えば,異常発生時に,図1のダンプファイル用記憶媒体10内に作成されるメモリ2内のデータを書き出すための第1のダンプファイルを,例えば,記憶媒体10内(第1の記憶媒体内)に作成する第1のダンプファイル作成部411(OSのプログラムであり,処理部411とも呼ぶ)を有する。また,異常発生後(異常検知後)であって,第1のダンプファイルの作成後に,メモリ2内に記憶されているデータを消去することなく,情報処理装置100をリブートする第1のリブート部412(ファームウエアプログラムであり,処理部412とも呼ぶ)を有する。また,リブート中に,メモリ2内のデータが記憶されているページ領域と,そのデータが書き出される第1のダンプファイル内のダンプファイル領域との関連付けテーブルを作成する第1の関連付け部413(OSプログラムであり,処理部413とも呼ぶ)と,メモリ2内のページ領域が解放するときに,そのページ領域に記憶されているデータを第1のダンプファイルに書き出す第1の書き出し部414(OSプログラムであり,処理部414とも呼ぶ)とを有する。さらに,第1のダンプファイルへのアクセス要求(例えば,異常調査用装置200または情報処理装置100内のプログラムからのアクセス要求)に対して,関連付けテーブルを参照して,メモリ2または第1のダンプファイルにアクセスを行う第1のアクセス部415(OSプログラムであり,処理部415とも呼ぶ)と,情報処理装置100内で発生した異常を検知する異常検知部416(OSプログラム)とを有する。また,第1のリブート部412によるリブートの前に,リブートに必要なOS等をロードする領域に相当する大きさのページ領域に記憶されたデータを,第1のダンプファイルに書き出した後に行うリブート前書き出し部417(OSプログラム)とを有する。
また,ソフトウエア410は,例えば,第1の書き出し部414の実行中に,異常検知部416が既に検知している異常とは別の異常(または第2の異常と呼ぶ)が発生した場合,図1のダンプファイル用記憶媒体20内に作成されるメモリ2内のデータを書き出す第2のダンプファイルを,例えば,記憶媒体20内(第2の記憶媒体内)に作成する第2のダンプファイル作成部421(OSプログラム)を有する。また,第2のダンプファイルの作成後に,メモリ2内に記憶されているデータを消去することなく情報処理装置100をリブートする第2のリブート部422(ファームウエアプログラム)を有する。また,リブート中に,メモリ2内のデータが記憶されているページ領域と,そのデータが書き出される第2のダンプファイル内のダンプファイル領域との関連付けテーブルの作成を行う第2の関連付け部423(OSプログラム)と,OSがメモリ2内のページ領域を解放するときに,そのページ領域に記憶されているデータを第2のダンプファイルに書き出す第2の書き出し部424(OSプログラム)とを有する。さらに,第2のダンプファイルへのアクセスに対して,関連付けテーブルを参照して,メモリ2または第2のダンプファイルにアクセスを行う第2のアクセス部425(OSプログラム)を有する。
また,ソフトウエア410は,例えば,第1のメモリ管理構造体によって対応付けられたページ領域のうち,そのページ領域に記憶されているデータが第1のダンプファイルに書き出されていないか否かを示すフラグ(第1のフラグ)が,第1のダンプファイルに書き出されていないことを示すページ領域に記憶されているデータを,第1のダンプファイルに書き出すOSプログラムである書き出し再開部431を有する。
[通常行われる異常発生時のシャットダウン時間]
図3は,通常行われる異常発生時におけるシャットダウン時間を説明する図である。図3に示すように,情報処理装置100の通常運用中に異常が発生した場合(S101),情報処理装置100のリブートを実行し,メモリ2内に記憶されているデータをダンプファイルへ書き出すためのOSプログラムが起動する(S102)。そして,このOSプログラムの実行に伴い,OSは,メモリ内のデータをダンプファイルに書き出し(S103),情報処理装置100のリブートを実行する(S104)。また,OSまたはファームウエアは,情報処理装置100のリブートを行う際に,リブートに用いるメモリ容量を確保するために,メモリに記憶されているデータを消去する場合がある。そのため,図3に示すように,ダンプファイルへの書き出し(S103)は,情報処理装置100のリブートが行われる前に実行される。すなわち,情報処理装置100の異常が発生した後,ダンプファイルへのメモリ2内のデータの書き出し及び情報処理装置100のリブートが完了するまでの時間が,情報処理装置100のダウンタイムになる。
ここで,図3に示す異常対応処理では,OSは,ダンプファイルへのメモリ2内のデータの書き出しが完了するまでは,情報処理装置100をリブートすることができない。そのため,ダンプファイルへのメモリ内のデータの書き出しに長時間を要した場合,情報処理装置100の復旧がダンプファイルへの書き出しによって遅延する。そのため,情報処理装置100のダウンタイムが長引く要因となる。また,OSまたはファームウエアが情報処理装置100のリブート時にメモリ2内の内容を消去しないままリブートを行っても,OSはリブート後にメモリ内に残されたデータを認識することができない。そのため,OSは,情報処理装置100のリブート後に,メモリ内に残されたデータに基づいてダンプファイルを作成することはできない。さらに,ダンプファイルへの書き出しに長時間を要する結果,ダンプファイルの内容の解析開始が遅れることになる。
そこで,本実施の形態では,情報処理装置100の異常発生後に,メモリ2内に記憶されているデータをクリアすることなく情報処理装置100のリブートを行い,さらに,情報処理装置100のリブート前にダンプファイルへの書き出しを行っていないデータを,リブート後のOSが認識することができるようにする。
[第1の実施の形態]
最初に第1の実施の形態について説明する。図4は,異常対応処理の概略を説明するフローチャート図である。また,図5は,本実施の形態の異常発生時におけるシャットダウン時間を説明する図である。さらに,図6から図8は,異常対応処理の概略を説明する図である。図6から図8を参照しながら,図4の異常対応処理の概略及び図5の異常発生時におけるシャットダウン時間について説明する。なお,以下,情報処理装置100のOSは,メモリ2内に格納されているものとして説明を行う。
[図4,図5のS1,S2]
初めに,情報処理装置100のOSの異常検知部416は,情報処理装置100内で発生した異常の検知を行う(S1)。この異常の検知は,例えば,異常を検知するために配置した監視プロセスが異常を検知した際に,OSの異常検知部416に通知する構成でよい。
次に,情報処理装置100のOSにおける第1のダンプファイル作成部411は,OSの異常検知部416が情報処理装置100内の異常を検知した場合(情報処理装置100のリブートを必要とする異常を検知した場合)に,メモリ2内のデータを書き出すための第1のダンプファイル11を記憶媒体10内に作成する(S2)。図6は,OSが情報処理装置100内の異常を検知した場合を説明する図である。OSの異常検知部416が情報処理装置100内の異常を検知した場合,OSの第1の書き出し部414は,異常が発生した瞬間のメモリ2内に記憶されているデータを,第1のダンプファイル11に書き出す必要がある。そのため,第1のダンプファイル作成部411は,記憶媒体10内の領域に第1のダンプファイル11を作成し,メモリ2内のデータを書き出すための記憶領域を記憶媒体10内に確保する。なお,第1のダンプファイル作成部411は,異常検知部416が異常を検知する前に,予め記憶媒体10内に第1のダンプファイル11を作成しておいてもよい。
また,OSの第1のダンプファイル作成部411は,S4において説明する関連付けテーブルを作成するために,S3において説明するリブートを行う前に第1のダンプファイル11を作成する。さらに,この第1のダンプファイル11は,異常が発生した瞬間のメモリ2内のデータを書き出すための記憶領域であるため,OSの第1のダンプファイル作成部411は,第1のダンプファイル11を,メモリ2内に記憶可能なデータ容量と同じ容量を有するように作成する。
[図4,図5のS3]
図4に戻り,情報処理装置100のファームウエア3における第1のリブート部412は,第1のダンプファイル11の作成後に,メモリ2内のデータを消去することなく情報処理装置100をリブートする(S3)。具体的には,異常を検知したOSは,第1のダンプファイル11を作成した後(S2),メモリ2内のデータを消去することなく,発生した異常に対応してシステム構成を変更するために情報処理装置100をシャットダウンする。その後,情報処理装置100のファームウエア3及びOSは,ファームウエア3,OSの順にリブートする(S3)。そのため,OSリブート用の領域の確保等,OSがリブートする前に行われる制御は,ファームウエア3によって行われる。
[図4,図5のS4,S5]
次に,情報処理装置100のOSにおける関連付け部413は,第1のリブート部412によるリブート中に,メモリ2内のデータが記憶されているページ領域と,そのデータが書き出される第1のダンプファイル11内のダンプファイル領域との関連付けテーブルを作成する(S4)。
図7は,関連付けテーブルについて説明する図である。関連付けテーブル30(または第1の関連付け構造体30,第1のテーブル30と呼ぶ)は,メモリ2内のページ領域2aと,そのページ領域2aに記憶されているデータが書き出される第1のダンプファイル11内のダンプファイル領域11aとを対応付ける情報を有している。具体的には,あるデータが記憶されているページ領域のアドレスと,このデータが書き出される予定のダンプファイル領域のアドレスとを対応付ける情報や,ページ領域に記憶された各データが,ダンプファイル領域に書き出されたか否かを示すフラグ(第1のフラグ)を有している。なお,第1のダンプファイル11は,メモリ2内に記憶可能なデータ容量と同じ容量を有するため,メモリ2内のページ領域2aの数と,第1のダンプファイル内におけるダンプファイル領域11aの数とは同数であり,それぞれが記憶可能であるデータ容量は同じである。
また,第1の関連付け構造体30は,リブートの時点では,メモリ2内のページ領域に記憶されているデータはダンプファイルに書き出されていない。そのため,OSの第1の関連付け部413は,第1の関連付け構造体30の作成時に,全てのページ領域における第1のフラグを,ダンプファイル領域に書き出されていないことを示す状態(以下,未書き出し状態またはダーティ状態と呼ぶ)に設定する。これにより,メモリ2内のデータは,第1のダンプファイル11のファイルキャッシュとして初期化されたことになる。
さらに,S8,S9において説明するOSの第1の書き出し部414は,対応するメモリ2内のページ領域が解放されたときに,第1の関連付け構造体30を消去する。これにより,第1の関連付け構造体30の存在を確認することで,この第1の関連付け構造体30に対応するデータのダンプファイルへの書き出しが,完了しているか否かの判断を行うことができる。すなわち,参照した第1の関連付け構造体30が存在する場合には,ダンプファイルへの書き出しは完了しておらず,第1の関連付け構造体30が存在しない場合には,ダンプファイルへの書き出しは完了していると判断することができる。この第1の関連付け構造体30の動作の詳細については,S6からS9において説明する。
さらに,OSは,第1の関連付け構造体30を作成した後(S4),残りのリブート処理を実行して情報処理装置100のリブートを完了する(S5)。
本実施の形態では,OSの第1のダンプファイル作成部411が,情報処理装置100のリブート前に,メモリ2内に記憶可能なデータ容量と同じ容量を有する第1のダンプファイル11を作成する。また,OSの第1のリブート部412が,メモリ2内のデータを消去することなくリブートし,OSの第1の関連付け部413が,リブート中に,メモリ2内のページ領域2aと第1のダンプファイル11内のダンプファイル領域11aとをそれぞれ対応付ける。
[図4,図5のS6,S7]
図4に戻り,リブート後の通常動作中において,情報処理装置100のOSにおける第1のアクセス部415は,第1のダンプファイル11へのアクセスがあった場合に(S6のYES),第1の関連付け構造体30を参照して,メモリ2または第1のダンプファイル11にアクセスを行う(S7)。具体的に,参照した第1の関連付け構造体30が存在した場合,OSの第1の関連付け部413は,アクセス対象のデータについて第1のダンプファイル11への書き出しを行っていない。そのため,OSの第1のアクセス部415は,第1の関連付け構造体30内をさらに参照して,アクセス対象のデータが記憶されているメモリ2内のページ領域のアドレスを取得し,そのアドレスのデータにアクセスする。また,参照した第1の関連付け構造体30が存在しなかった場合,OSの第1の関連付け部413は,アクセス対象のデータについて第1のダンプファイル11内への書き出しを行っている。そのため,OSの第1のアクセス部415は,第1の関連付け構造体30内をさらに参照して,アクセス対象のデータが記憶されている第1のダンプファイル11内におけるダンプファイル領域のアドレスを取得し,そのアドレスのデータにアクセスする。
具体的に,図7の場合は,OSの第1の関連付け部413が,メモリ2内のデータをまだ第1のダンプファイル11に書き出していない状態である。そのため,OSの第1のアクセス部415は,第1の関連付け構造体30を参照し,メモリ2内のページ領域にアクセスを行う。
一方,図8の場合は,OSの第1の関連付け部413が,メモリ2内のページ領域に記憶されたデータの一部を,第1のダンプファイル11のダンプアドレス領域に書き出した状態の図である。したがって,図8の場合では,第1のダンプファイル11内に書き出し済領域と未書き出し領域とが混在している。そのため,OSの第1のアクセス部415は,参照した第1の関連付け構造体30が存在した場合,第1の関連付け構造体30内をさらに参照して,アクセス対象のデータが記憶されているメモリ2内のページ領域のアドレスを取得し,そのアドレスのデータにアクセスする。また,参照した第1の関連付け構造体30が存在しなかった場合,第1のアクセス部415は,第1の関連付け構造体30内をさらに参照して,アクセス対象のデータが記憶されている第1のダンプファイル11内におけるダンプファイル領域のアドレスを取得し,そのアドレスのデータにアクセスする。以上の第1のダンプファイル11へのアクセスに対するOSの処理は,一般的なファイルキャッシュのアクセス制御と同等である。
[図4,図5のS8,S9]
図4に戻り,情報処理装置100のOSにおける第1の書き出し部414は,メモリ2内のページ領域が解放されたときに(S8のYES),第1の関連付け構造体30の第1のフラグが未書き出し状態を示しているならば,そのページ領域に記憶されているデータを第1のダンプファイルに書き出す(S9)。情報処理装置100のリブート時において,データは全てメモリ2内のページ領域に記憶されていて,第1のダンプファイル11内のダンプファイル領域には書き出されていない。そして,リブート後の通常動作時において,データが記憶されているメモリ2内のページ領域は,メモリ2内の領域が不足した場合に,OSによって解放されて他の用途(他のプログラムの実行等)のために用いられる。このときに初めて,OSの第1の書き出し部414は,メモリ2内のデータを第1のダンプファイル11に書き出す。これは,一般的なファイルキャッシュの動作と同等である。
図9は,メモリ内のページ領域の解放について説明する図である。初めに一般的なファイルキャッシュについて説明する。ファイルキャッシュでは,図9に示すように,OSが記憶媒体10に記憶されたデータの中で,使用頻度が高いデータをメモリ2内のページ領域に書き出す。一般に,HDD等の記憶媒体に記憶されたデータはアクセスに時間を要し(低速であり),メモリに記憶されたデータはアクセス時間が短い(高速である)。そのため,使用頻度の高いデータを,メモリ内に書き出しておくことによって,データのアクセスを含む全体の処理に要する時間を短縮することが可能になる。
そして,メモリ2内の記憶容量は記憶媒体の記憶容量と比較して小さいため,メモリ内の使用可能領域が不足した場合には,例えば,使用頻度が低下したデータや長時間アクセスされなかったデータから順に消去または上書きする必要がある。これが,メモリ2内のページ領域の解放処理である。
図9に示すファイルキャッシュの制御では,記憶媒体10に記憶されているデータのうち,メモリ2内のページ領域にキャッシュされて記憶されているデータについての情報を管理する必要がある。そのため,図9に示すように,図7及び図8と同様に第1の関連付け構造体30が設けられている。例えば,異常調査用装置200から記憶媒体10に記憶されているデータにアクセスがあった場合,OSの第1のアクセス部415は,第1の関連付け構造体30を参照して,アクセス対象のデータがメモリ2内のページ領域に記憶されているか(キャッシュされているか)を確認する。そして,アクセス対象のデータがメモリ2内に記憶されている場合には,第1の関連付け構造体30をさらに参照して,アクセス対象のデータのメモリ2内におけるアドレスを取得し,アクセス対象のデータを異常調査用装置200に返す。一方,OSの第1のアクセス部415は,アクセス対象のデータがメモリ2内に記憶されていない(キャッシュされていない)場合には,記憶媒体10をアクセスしてデータを取得する。
これに対して,本実施の形態の図7及び図8の例においては,図9に示す一般的なファイルキャッシュとは異なり,情報処理装置100のリブート時には,メモリ2内のページ領域にデータが記憶されているが,記憶媒体10内のダンプファイルにはデータが記憶されていない。つまり,全てのページ領域における第1のフラグが未書き出し状態である。そのため,メモリ2内のページ領域を解放する際には,データが完全に失われることを防ぐために,OSの第1の書き出し部414が記憶媒体10等に書き出しを行ってから,メモリ2内のページ領域の解放を行う(S8,S9)。
本実施の形態においては,異常発生時,OSの第1のダンプファイル作成部411が,リブート前に,メモリ2内のデータを書き出すための第1のダンプファイル11を作成するだけである。そして,OSの第1のリブート部412が,メモリ2内のデータをクリアすることなくリブートを行う。また,OSの第1の関連付け部413が,リブート中に,第1のフラグを全て未書き出し状態に設定して第1の関連付け構造体30を作成する。そして,リブート後の通常処理では,OSの第1のアクセス部415が,メモリ2内のページ領域に記憶されているデータを一般的なファイルキャッシュの制御と同様にアクセスし,OSの第1の書き出し部414が,メモリ2内のページ領域の解放時に,メモリ2のデータを第1のダンプファイル11に書き出す。これにより,図5に示すように,情報処理装置100のリブートを行う前に,メモリ2内のページ領域に記憶されているデータを,第1のダンプファイル11へ書き出す必要がなくなる。そのため,異常発生時における情報処理装置100のダウンタイムを短縮することが可能になる。また,情報処理装置100のリブートが完了した際に,メモリ2内に記憶されたデータへのアクセスが可能になるため,発生した異常の原因調査を情報処理装置100のリブートの完了後すぐに開始することが可能になる。
[第1の実施の形態における異常対応処理の詳細]
図4を参照して異常対応処理の概略を説明した。次に,第1の実施の形態における異常対応処理についてより詳細に説明する。図10,図11は,異常対応処理及び正常対応処理の詳細を説明する図である。また,図12から図16は,異常対応処理の詳細を説明する図である。図12から図16を参照しながら,図10,図11の異常対応処理及び正常対応処理の詳細について説明する。
[図10のS21,S22]
初めに,OSの異常検知部416が,情報処理装置100内において異常が発生していないかの検知を行い(S1,S21),情報処理装置100内の異常をOS(異常検知部416)が検知した場合に,OSの第1のダンプファイル作成部411が,メモリ2内に記憶されているデータを書き出すための第1のダンプファイル11を,記憶媒体10(第1の記憶媒体)内に作成する(S2,S22)。このS21,S22は,図4で説明したS1,S2と同じであるため,ここでは詳細な説明を省略する。
[図10のS23]
次に,情報処理装置100のOSのリブート前書き出し部417は,第1のリブート部412によるリブートの前に,OSのリブートに必要な領域に相当する大きさのページ領域(以下,OSリブート用領域とも呼ぶ)に記憶されたデータを,第1のダンプファイル11に書き出す(S23)。本実施の形態では,異常発生時におけるメモリ2内のデータを記憶媒体10へ書き出す前にリブートを行う。したがって,リブート時において,メモリ2内には第1のダンプファイル11への書き出しが行われる予定のデータが存在しているため,リブート後のOSをロードするためのメモリ2内の領域が確保できない場合がある。そのため,S23においては,OSのリブートに必要な領域に相当する大きさのページ領域に記憶されたデータを,情報処理装置100のリブートの前に第1のダンプファイル11に書き出すことにより,OSのリブートに最低限必要な領域を確保する。
図12は,OSリブート用領域のデータを,記憶媒体10内の第1のダンプファイル11に書き出した場合の図である。なお,OSのリブートに最低限必要な領域の容量を,OSのリブートを行うために十分と考えられる容量(例えば,10GB等)に予め定めておき,実際のOSリブートに必要な領域の容量にかかわらず,OSのリブート前書き出し部417が,その予め定めた容量のデータを,第1のダンプファイル11を書き出すものであってよい。
[図10のS24からS28]
図10,図11に戻り,情報処理装置100のファームウエア3における第1のリブート部412は,第1のダンプファイル11の作成後に,メモリ2内に記憶されているデータを消去することなく情報処理装置100のリブートを開始する(S3,S24)。次に,ファームウエア3が,メモリ2内のOSリブート用領域にブートローダをロードして実行する(S25)。このブートローダは,例えば,図2におけるプログラム用記憶媒体4に記憶されている。さらに,実行したブートローダが,OSリブート用領域にOSをロードする(S26)。
図13は,OSリブート用領域にブートローダをロードした場合の図である。また,図14は,OSリブート用領域においてブートローダを実行してOSをロードした場合の図である。なお,図13,図14の例においては,ブートローダがOSをロードした後(具体的にOSのカーネルプログラムを全てロードした後),OSがブートローダから制御を受け継いで,その後の処理を行う。
上記の図4,図10において,OSが情報処理装置100の異常を検知した際に行われるリブートについて説明した。ここで,情報処理装置100のリブートは,情報処理装置100が正常に運用している場合においても,メンテナンスの実施等の理由によって実行される場合がある。この正常時における情報処理装置100のリブート(以下,正常対応処理とも呼ぶ)は,OSが情報処理装置100の異常を検知している場合と異なり,ダンプファイルの作成を行う必要がない。すなわち,正常時の情報処理装置100のリブート時においては,OSが,図4,図10で説明した異常の検知(S1)やダンプファイルの作成(S2)等を行う必要がない。さらに,正常時における情報処理装置100のリブートは,ダンプファイルの作成を行う必要がないため,リブート前においてメモリ2内に記憶されているデータを,リブート後において保持する必要がない。すなわち,メモリ2内に記憶されているデータを消去することなく情報処理装置100のリブートを行う必要がない。そのため,図10に示すように,正常時におけるリブートにおいては,ファームウエア3がメモリ2内のデータを消去し(S27),ファームウエア3がメモリ2内にブートローダをロードして実行し(S28),ブートローダがメモリ2内にOSをロードすることにより(S26),情報処理装置100のリブートを行う。
なお,情報処理装置100のシャットダウンが行われる前に,OSは,ファームウエア3に対して実行されるリブートが異常時のリブートであるか否かを記憶させる。具体的に,ファームウエア3が,実行されるリブートが異常時のリブートであるか否かを示すフラグ(図示しない)を有し,これによって実行されるリブートが異常時のリブートであるか否かを記憶させるものであってよい。これにより,リブートしたファームウエア3は,メモリ2内に記憶されているデータをクリアすべきか否かについて判断を行うことができる。
[図11のS29,S30]
次に,記憶媒体10にダンプファイルが存在する場合(S29のYES),情報処理装置100のOSにおける第1の関連付け部413は,第1のリブート部412によるリブート中に,メモリ2内のデータが記憶されているページ領域と,そのデータが書き出される予定の第1のダンプファイル11内におけるダンプファイル領域とを対応付けた関連付けテーブルを作成する(S4,S30)。
異常発生時におけるリブートの場合は,リブート後の記憶媒体10内に第1のダンプファイル11が存在する。また,正常時におけるリブートの場合は,リブート後の記憶媒体10内に第1のダンプファイル11は存在しない。そのため,記憶媒体10内に第1のダンプファイルが存在しているか否かを判断することによって(S29),異常発生時の場合に限って関連付けテーブルの作成を行うことが可能になる(S30)。
一方,記憶媒体10内に第1のダンプファイルが存在しない場合は(S29のNO),正常時におけるリブートが行われたことになるため,関連付けテーブルの作成は行わない。なお,関連付けテーブルの作成については図4において説明したため,ここでは詳細な説明は省略する。
図15は,メモリ2内のデータが記憶されているページ領域と,そのデータが書き出される第1のダンプファイル11内のダンプファイル領域とを対応付ける関連付けテーブルを作成する場合の図である。図15において,メモリ2内において書き出しを行っていない領域は,複数のページ領域に分割されている。また,S1またはS21において作成した第1のダンプファイル11は,複数のダンプ領域に分割されている。そして,OSの第1の関連付け部413は,複数のページ領域と複数のダンプファイルとをそれぞれ対応させた形で,図8,図9において説明した第1の関連付け構造体30に記憶する。これにより,メモリ2内における各ページ領域と,そのページ領域に記憶されたデータが書き出される第1のダンプファイル11内のダンプファイル領域とを対応付けることができる。さらに,OSの第1の関連付け部413は,第1のフラグを全て未書き出し状態(ダーティ状態)にする。これにより,メモリ2内のデータは,第1のダンプファイル11のファイルキャッシュとして初期化される。その結果,その後の通常動作において,異常調査用装置200から第1のダンプファイル11にアクセスがあった場合,OSは第1の関連付け構造体30を参照して,メモリ2内のページ領域及び第1のダンプファイル11内におけるダンプファイル領域のうち,データが存在する方にアクセスすることが可能になる。また,メモリ2内のデータを解放するときに,OSは第1の関連付け構造体30を参照して,解放されるメモリ2内のデータを,対応する第1のダンプファイル11内のダンプファイル領域に書き出すことが可能になる。なお,図15の例においては,第1の関連付け構造体30は,メモリ2内のOS内に記憶される。
[図11のS32からS35]
図10,図11に戻り,情報処理装置100のOSにおける第1のアクセス部415は,第1のダンプファイル11へのアクセスがあった場合に(S32のYES),第1の関連付け構造体30を参照して,メモリ2または第1のダンプファイル11にアクセスを行う(S33)。さらに,情報処理装置100のOSにおける第1の書き出し部414は,メモリ2内のページ領域が解放されるときに(S34のYES),第1の関連付け構造体30の第1フラグが未書き出し状態なら,ページ領域に記憶されているデータを第1のダンプファイル11に書き出す(S35)。
図16は,ページ領域に記憶されたデータの一部が,第1のダンプファイル11内のダンプアドレス領域に書き出した状態の図である。図9において説明したように,メモリ2内のページ領域が解放されるときに,OSは,第1の関連付け構造体30の第1のフラグと関連付けテーブルを参照して,第1のダンプファイル11内のダンプファイル領域への書き出しを行う。
[関連付け処理の詳細]
図17は,関連付け処理S4,S30の詳細を説明するフローチャート図である。また,図18から図21は関連付け処理S4,S30を説明する図である。図18から図21を参照しながら,図17の関連付け処理S4,S30の詳細について説明する。関連付け処理S30は,複数のページ領域と複数のダンプファイルとをそれぞれ対応させる第1の関連付け構造体30を作成する。第1の関連付け構造体30は,異常発生時,リブートが行われる前に第1のダンプファイル11が作成されたときに併せて作成される。また,第1の関連付け構造体30は,第1のダンプファイル11のアドレス情報等を管理する第1のダンプファイル管理構造体31と,第1のダンプファイル11内のダンプファイル領域及びこのダンプファイル領域に書き出される予定のデータが記憶されているメモリ2内のページ領域のアドレス情報を,それぞれ対応させる複数の第1のメモリ管理構造体32とを有する。
図18は,第1のダンプファイル管理構造体及び第1のメモリ管理構造体を説明する図である。図18の例において,メモリ2はページ領域M01からM08の8つのページ領域を有しており,記憶媒体10内の第1のダンプファイル11内におけるダンプファイル領域はD11からD18の8つのページ領域を有している。また,第1のダンプファイル管理構造体31は,第1のダンプファイル11の情報を管理する構造体であり,第1のメモリ管理構造体32は,メモリ2内のページ領域と,このページ領域に記憶されているデータが書き出される予定の第1のダンプファイル11内におけるダンプファイル領域とを対応させて管理する構造体である。
本実施の形態においては,第1のダンプファイル管理構造体31は,ダンプファイルごとに作成され,第1のメモリ管理構造体32は,1つのページ領域及び1つのダンプファイル領域の組み合わせごとに作成される。したがって,図18の例においては,ダンプファイルは1つのみ(第1のダンプファイル11)であり,ページ領域とダンプファイル領域はそれぞれ8つ存在するため,第1のダンプファイル管理構造体31は最大で1つ作成され,第1のメモリ管理構造体32は最大で8つ作成される。
図18の例においては,ダンプファイル領域D11からD18にはそれぞれデータが記憶されており,メモリ2にはページ領域M06にのみデータが記憶されている。そして,第1のメモリ管理構造体32は,ページ領域M06とダンプファイル領域D16とを対応付けて管理する第1のメモリ管理構造体P26のみが存在している。
ここで,ダンプファイル管理構造体及びメモリ管理構造体が有する情報について説明する。図18の第1のダンプファイル管理構造体31は,ダンプファイルごとに作成されるものであり,ダンプファイルを特定するために必要な情報を有している。具体的には,第1のダンプファイル管理構造体31は,例えば,(1)ダンプファイルの名称,(2)ダンプファイルが記憶されている記憶媒体(例えば,HDD)の名称,(3)記憶媒体内におけるダンプファイルが記憶されている最初の領域のオフセット値,(4)ダンプファイルのサイズ,(5)読み出し可否や書き出し可否のダンプファイルの属性情報等を有している。そのため,記憶媒体の名称によって,ダンプファイルが記憶されている記憶媒体を特定することが可能になる。また,記憶媒体内におけるダンプファイルが記憶されている最初の領域のオフセット値と,ダンプファイルのサイズによって,記憶媒体内におけるダンプファイルが記憶されている領域を特定することが可能になる。
また,図18における第1のメモリ管理構造体32は,1つのページ領域及び1つのダンプファイル領域の組み合わせごとに作成されるものである。そして,第1のメモリ管理構造体32が管理しているページ領域及びダンプファイル領域にアクセスができるように,それぞれの領域を特定することが可能な情報を有している。具体的に,(1)メモリ内のページ領域のアドレス,(2)管理しているページ領域に対応するダンプファイル領域を管理する第1のダンプファイル管理構造体31へのリンク情報,(3)第1のダンプファイル11内におけるオフセット値,(4)ページ領域に記憶されているデータが対応するダンプファイル領域に書き出されたか否か(ダーティ状態であるか否か)を示す第1のフラグの情報を有している。そのため,ページ領域のアドレスによって,管理するページ領域にアクセスすることが可能になる。また,第1のダンプファイル管理構造体31内へのリンク情報と,ダンプファイル内のオフセット値によって,ページ領域に対応するダンプファイル領域が記憶されるダンプファイルを特定して,そのダンプファイル内におけるダンプファイル領域にアクセスすることが可能になる。
また,第1のメモリ管理構造体32が第1のフラグを有することによって,ページ領域に記憶されているデータを解放する際に,OSは,対応するダンプファイル領域への書き出しを行う必要があるか否かについて判断を行うことが可能になる。OSは,例えば,図17で説明したS42において第1のメモリ管理構造体32を作成するときに,ページ領域に記憶されているデータが対応するダンプファイル領域に記憶されていないことを示す第1のフラグを設定する。これにより,OSがそのページ領域を解放する際には,ページ領域のデータをダンプファイルに書き出しを行ってからページ領域の解放を行うように制御することが可能になる。また,詳細については図22で説明するが,OSは,第1のメモリ管理構造体32をメモリ内のページ領域が解放されたときに削除する。これにより,第1のメモリ管理構造体32の有無によって,メモリ内のページ領域にデータが記憶されているか否か,第1のダンプファイル11に書き出し済か否かについて判断を行うことができる。
図19は,第1のダンプファイル管理構造体及び第1のメモリ管理構造体を説明する図である。図19の例において,ページ領域M05,M08に対してメモリダンプ領域D15,D18にはデータが記憶されている状態である。そのため,第1のメモリ管理構造体P25,P28が存在しており,それぞれが有する第1のフラグは,ページ領域に記憶されているデータが,対応するダンプファイル領域にデータが記憶されているかを示している。
[図17のS41]
OSにおける第1の関連付け部413は,異常発生時,リブート前に第1のダンプファイル11を作成するときに,第1のダンプファイル11内のダンプファイル領域を管理する第1のダンプファイル管理構造体31を作成する(S41)。
図20は,第1のダンプファイル管理構造体31が作成された状態の図である。図20に示すように,異常発生後の情報処理装置100のリブート時においては,ページ領域M01からM08の全てにデータが第1のダンプファイル11に未書き出し状態であり,ダンプファイル領域D11からD18にはデータが記憶されていない状態である。また,OSは,第1のダンプファイル11作成時に,この第1のダンプファイル11の情報を管理する第1のダンプファイル管理構造体31を作成する。なお,図17及び図20の例においては,第1のダンプファイル管理構造体31を第1の関連付け部413によって作成しているが,第1のダンプファイル11が作成されるS2において,OSの第1のダンプファイル作成部411が作成するものであってもよい。
[図17のS42からS44]
次に,情報処理装置100の第1の関連付け部413は,ページ領域を管理する第1のメモリ管理構造体32を作成し(S42),第1のメモリ管理構造体32と第1のダンプファイル管理構造体31とをリンクする(S43)。そして,全てのページ領域について第1のメモリ管理構造体32が作成されるまで,S42及びS43を繰り返す(S44)。なお,図17においては,第1のメモリ管理構造体32の作成と,第1のダンプファイル管理構造体31へのリンク作成とを交互に行っているが,それぞれ処理を複数回まとめて行ってもよい。
図21は,第1のメモリ管理構造体32が作成され,第1のダンプファイル管理構造体31に対してリンクが作成された状態の図である。異常発生後の情報処理装置100のリブート時においては,ページ領域M01からM08の全てにデータが第1のダンプファイル11に未書き出し状態であり,ダンプファイル領域D11からD18にはデータが記憶されていない状態である。そのため,図19において説明したように,全てのページ領域M01からM08に対して,それぞれ第1のメモリ管理構造体P21からP28が設けられている。さらに,ダンプファイル領域D11からD18にはデータが記憶されていない状態であるため,それぞれのメモリ管理構造体P21からP28が有する第1のフラグは,ページ領域に記憶されているデータが書き出されておらず,対応するダンプファイル領域のデータと不一致であることを示している。
[書き出し処理の詳細]
図22は,書き出し処理S9,S35の詳細を説明するフローチャート図である。また,図23は,書き出し処理S35を説明する図である。また,図23は,書き出し処理S9,S35を説明する図である。図23を参照しながら,図22の書き出し処理S9,S35の詳細を説明する。OSの第1の書き出し部414は,図4において説明したように,ページ領域を解放するときに,第1のフラグが未書き出し状態(ダーティ状態)であれば,第1のダンプファイル11へ書き出しを行う(S51)。次に,情報処理装置100の第1の書き出し部414は,S51で書き出したページ領域を管理する第1のメモリ管理構造体32を消去する(S52)。
図23は,図21の状態からページ領域M02,M04及びM08が解放された状態を示す図である。図23において,ページ領域M02,M04及びM08のデータが解放するときに,ダンプファイル領域D12,D14及びD18に書き出しが行われている(S51)。また,OSは,ページ領域のデータがダンプファイル領域に書き出した場合,このページ領域の情報を管理する第1のメモリ管理構造体32を消去する。そのため,図23においては,ダンプファイル領域への書き出しが完了したメモリ領域M02,M04及びM08に対応する第1のメモリ管理構造体P22,P24及びP28が消去されている(S52)。これにより,OSの第1のアクセス部415が,第1のダンプファイル11内のデータへのアクセス要求に対して,ページ領域及びダンプファイル領域のうちどちらにアクセスすればよいかを,第1メモリ管理構造体を参照するだけで特定することが可能になる。
具体的に,図23の状態において第1のダンプファイル11へのアクセス処理S7,S33が発生した場合について説明する。OSの第1のアクセス部415は,そのアクセス対象のデータが記憶されているページ領域を管理する第1のメモリ管理構造体32を参照する。ここで,その第1のメモリ管理構造体32が存在した場合(例えば,メモリ管理構造体P21)には,アクセス対象のデータはメモリ内のページ領域(ページ領域M01)に記憶されていることになる。そのため,第1のメモリ管理構造体32に記憶されているページ領域のアドレスを参照して,そのページ領域にアクセスを行うことが可能になる。一方,アクセス対象のデータが記憶されているページ領域を管理する第1のメモリ管理構造体32が存在しない場合(例えば,メモリ管理構造体P22),そのアクセス対象のデータはメモリ内のページ領域(ページ領域M02)に記憶されておらず,ダンプファイル領域(ダンプファイル領域D12)に記憶されていることになる。そのため,第1のメモリ管理構造体32に記憶されているダンプファイル領域のアドレスを参照して,そのダンプファイル領域にアクセスを行うことが可能になる。なお,ページ領域に記憶されたデータがダンプファイル領域にも記憶されているか否かに問わず,アクセス対象のデータが記憶されているページ領域を管理する第1のメモリ管理構造体32が存在するか否かを判断することによって,ページ領域及ダンプファイル領域のうちどちらにアクセスすべきか判断することが可能である。
[第2の実施の形態]
図24は,再異常対応処理を説明するフローチャート図である。また,図25から図27は,再異常対応処理を説明する図である。図25から図27を参照しながら,図4の再異常対応処理について説明する。図4において説明した第1の実施の形態における異常対応処理では,情報処理装置100のリブートが完了した後において,第1の書き出し部414によって第1のダンプファイル11への書き出しが行われる。この第1のダンプファイル11への書き出しは,図9で説明したように,メモリ2内のページ領域が解放されたときに行われるものであり,全てのページ領域に記憶されたデータの書き出しが完了するまでに,長時間を要する場合が考えられる。そのため,全てのページ領域に記憶されているデータの書き出しが完了するまでに,別の異常をOSが検知して,再度情報処理装置100のリブートが発生する場合がある。再異常対応処理は,このような場合に実行される。具体的にOSは,図4におけるS6からS9のいずれか,または図11のS32からS35のいずれかで再異常対応処理を実行する。
この再異常対応処理は,第1のダンプファイル11とは異なる第2のダンプファイル21に,メモリ2内のページ領域に記憶されているデータを書き出すものである。すなわち,それまで行っていた第1のダンプファイル11に対する書き出しを中止し,第1のダンプファイル11とは異なる第2のダンプファイル21に別の異常が発生した時におけるメモリ2内のデータの書き出しを行う。なお,この再異常対応処理は,図4で説明したS6からS9までのいずれか,または図10,図11で説明したS32からS35のいずれかにおいて,OSが別の異常を検知した場合に実行される。以下,再異常対応処理の詳細について説明する。
[図24のS61]
初めに,OSの異常検知部416は,情報処理装置100内における異常の発生の検知を行う(S61)。なお,このS61は,図4で説明したS1と同じであるため,ここでは説明を省略する。
図25,第1のダンプファイル11に対する書き出しを中止する際の図である。図25に示すように,OSの異常検知部416が,異常対応処理が実行する原因となった異常とは別の異常を検知した場合,第1のダンプファイル11への書き出しを中止し,第2のダンプファイル21への処理を開始する。そのため,書き出しが中止された第1のダンプファイル11は,上書きされることなく中止にされたときの状態を維持する。
[図4のS2,S4,図10,図11のS22,S30]
ここで,再異常対応処理を実行するために,異常対応処理内で行う必要がある処理について説明する。S64において説明する第2の関連付け構造体40を作成する際に,複数のダンプファイルが記憶媒体内に存在している場合がある。そのため,S64において説明するOSの第2の関連付け部423が,どのダンプファイルについて第2の関連付け構造体40を作成すればよいかを判断する必要がある。具体的に,異常対応処理部はその処理内において以下の処理を行う。
第1のダンプファイル11の作成を行う図4のS2,図10のS22において,作成した第1のダンプファイル11の先頭バイトに,例えば「0x00」を書き込む。さらに,第1の関連付け構造体30の作成を行う図4のS4及び図11のS30において,記憶媒体内に存在するダンプファイルの先頭バイトに「0x00」が書き込まれているか否かをチェックし,「0x00」が書き込まれているダンプファイルに対して,第1の関連付け構造体30を作成する。そして,第1の関連付け構造体30の作成後,対応するダンプファイル(第1のダンプファイル11)の先頭バイトに,「0xff」を書き込んで関連付け済状態にする。これにより,S64において説明する第2の関連付け構造体40の作成時に,既に第1の関連付け構造体30が作成されている第1のダンプファイル11について新たな関連付け構造体が作成されることを防ぐことができる。
[図24のS62,S63]
図24に戻り,OSにおける第2のダンプファイル作成部421が,メモリ2内のページ領域に記憶されているデータを書き出すための第2のダンプファイル21を記憶媒体20(第2の記憶媒体)内に作成する(S62)。そして,OSの第2のダンプファイル作成部421は,作成した第2のダンプファイル21の先頭バイトに「0x00」を書き込む。次に,情報処理装置100のファームウエア3によって起動される第2のリブート部422は,メモリ2内に記憶されているデータを消去することなく情報処理装置100をリブートする(S63)。なお,このS62,S63は,書き出し先のダンプファイルが異なっているが,処理の内容は図4で説明したS2,S3と同じであるため,ここでは説明を省略する。また,記憶媒体10と記憶媒体20は,同じ記憶媒体であってもよい。
図26は,記憶媒体20内に第2のダンプファイル21を作成した際の図である。図26に示すように,OSの異常検知部416が,異常対応処理を実行する原因となった異常とは別の異常をOSが検知した場合,第1のダンプファイル11への書き出しの進捗にかかわらず,その別の異常発生時におけるメモリ2内のデータを,リブート後にアクセス可能にする必要がある。そのため,異常対応処理を実行する原因となった異常とは別の異常をOSが検知したときに,第2のダンプファイル作成部421は,第2のダンプファイル21を作成する。
[図24のS64からS68]
図24に戻り,OSの第2の関連付け部423が,情報処理装置100のリブート中に,メモリ2内のデータが記憶されているページ領域と,データが書き出される第2のダンプファイル21内のダンプファイル領域との関連付けテーブルを作成する(S64)。この関連付けテーブルの作成は,先頭バイトが「0x00」である第2のダンプファイル21に対して行い,関連付け済状態(第1の関連付け構造体30が作成されている状態)にある第1のダンプファイル11は,先頭バイトが「0xff」であるので,関連付けテーブルの作成は行わない。
次に,リブート後の通常動作において第2のダンプファイル21へのアクセスがあった場合(S65のYES),OSの第2のアクセス部425が,第2の関連付け構造体40(または第2のテーブル40と呼ぶ)を参照して,メモリ2または第2のダンプファイル21にアクセスを行う(S66)。なお,第2の関連付け構造体40は,第1の関連付け構造体30と同様に,メモリ2内においてデータが記憶されているページ領域と,そのデータが書き出される第2のダンプファイル21内のダンプファイル領域とを対応付ける。また,この第2の関連付け構造体40は,第2のダンプファイル21のアドレス情報等を管理する第2のダンプファイル管理構造体41と,第2のダンプファイル21内のダンプファイル領域及びこのダンプファイル領域に書き出されるデータが記憶されているページ領域のアドレス情報を,それぞれ対応させて管理する複数の第2のメモリ管理構造体42からなる。
また,OSの第2の書き出し部424が,リブート後の通常動作において,メモリ2内のページ領域が解放されたときに(S67のYES),ページ領域に記憶されているデータを第2のダンプファイル21に書き出す(S68)。なお,このS64からS66は,図4で説明したS4からS6と同じであるため,ここでは詳細な説明を省略する。
図27は,メモリ2内のページ領域と第2のダンプファイル21内のダンプファイル領域とを対応付けた関連付けテーブルの作成を行い,第2のダンプファイル21に対する書き出しを開始した際の図である。図27の例においては,図10,図11で説明した場合と同様に,リブート前に,OSのロードを行うための領域を確保するために第2のダンプファイルに対して書き出し処理を行っている。また,図27の例においては,情報処理装置100のリブート前における書き出し処理によって,第1のダンプファイルに関する第1の関連付け構造体30(第1のダンプファイル管理構造体31及び第1のメモリ管理構造体32を含む)の第2のダンプファイル21への書き出しを完了させている。
[書き出し再開処理]
図28は,書き出し再開処理を説明するフローチャート図である。また,図29,図30は,書き出し再開処理を説明する図である。図29,図30を参照しながら図28の書き出し再開処理について説明する。異常対応処理を実行する原因となった異常とは別の異常をOSが検知された場合,OSは,図24において説明した再異常対応処理が実行し,第1のダンプファイル11への書き出し処理を中止する。この書き出し再開処理は,再異常対応処理の実行時に中止された第1のダンプファイル11への書き出しを再開するための処理である。
[図28のS71]
初めに,例えば,ユーザが書き出し再開処理を実行させるコマンドを入力し,OSがこのコマンド入力に応答して書き出し再開処理を実行する(S71)。図28の例では,OSは,ユーザによるコマンド入力に応答して,第1のダンプファイル11への書き出し処理を再開させる。なお,書き出し再開処理は,メモリ2内のページ領域に記憶されているデータの第2のダンプファイル21への書き出しと,並行して実行することが可能である。そのため,このユーザによるコマンド入力は,再異常対応処理が実行された後,任意のタイミングで実行することが可能である。また,例えば,再異常対応処理が実行したことに応答して,書き出し再開処理を実行させるものであってもよい。
また,第1のダンプファイル11に,第1のダンプファイル11への書き出しの実行中または実行済(メモリ2内のページ領域に記憶されているデータが第1のダンプファイル11に書き出されているか否か)を示す第2のフラグを設けておき,この第2のフラグが実行中である場合に限り,書き出し再開処理の実行を可能にするものであってよい。具体的には,第1のダンプファイル11への書き出し実行中に,異常対応処理を実行する原因となった異常とは別の異常をOSが検知した場合,第2のフラグは実行中を示したままで保持される。
一方,第1のダンプファイル11への書き出しが完了した後に,異常対応処理を実行する原因となった異常とは別の異常をOSが検知した場合,第2のフラグは実行済を示したままで保持される。そして,書き出し再開処理は,第1のダンプファイル11への書き出し実行中に別の異常が発生した場合に限り実行すればよいため,OSは第2のフラグが実行中の場合のみ実行する。なお,例えば,OSが,S4またはS24においてリブートが実行される前に,第2のフラグを実行中に更新し,S9またはS35における第1のダンプファイル11への書き出しが全て完了した後に,第2のフラグを実行済に更新するものであってよい。
[図28のS72,S73]
次に,S71において実行されたOSの書き出し再開部431は,第1のメモリ管理構造体32に対応付けられたページ領域のうち,第1のフラグが第1のダンプファイルに書き出されていないことを示すページ領域を検索する(S72)。そして,OSの書き出し再開部431は,S72において検索したページ領域に記憶されていたデータが記憶されている領域(メモリ2内のページ領域または第2のダンプファイル21内のダンプファイル領域)にアクセスし,その領域に記憶されているデータを第1のダンプファイル11に書き出しを行う(S73)。これにより,中止されていた第1のダンプファイル11に対する書き出しが再開し,最初の異常発生時(第1のダンプファイル11が作成される原因となった異常の発生時)のメモリ2内のデータを全て第1のダンプファイル11に書き出すことが可能になる。そのため,異常の原因究明を再開することが可能になる。
この再異常対応処理において,2回目の異常発生時のメモリ2内のデータは順次第2のダンプファイル21に書き出される。そのため,第1のメモリ管理構造体32の情報を検索する際において,第1のメモリ管理構造体32の情報が第2のダンプファイル21に書き出されていれば,第2のダンプファイル21内における第1のメモリ管理構造体32を検索する必要がある。一方,第1のメモリ管理構造体32の情報が第2のダンプファイル21に書き出されていなければ,メモリ2内における第1のメモリ管理構造体32を検索する必要がある。
また,検索したページに領域についても,検索したページ領域が第2のダンプファイル21に書き出されていれば,第2のダンプファイル21にアクセスする必要がある。一方,検索したページ領域が第2のダンプファイル21に書き出されていなければ,メモリ2内のページ領域にアクセスする必要がある。
なお,この書き出し再開処理は,第2のダンプファイルへの書き出しが完了したあとに実行するものであってもよい。そして,第1のダンプファイル11に書き出しを行う必要がある全てのデータの書き出しが完了するまで,S72とS73を繰り返す(S74)。
[書き出し再開処理の動作例(1)]
図29は,検索したページ領域が第2のダンプファイル21に記憶されている場合の書き出し再開処理を説明する図である。なお,図29の例においては,第1のメモリ管理構造体32(第1の関連付け構造体30)が第2のダンプファイル21に既に書き出されている場合について説明する。図29に示すように,書き出し再開処理は,例えば,調査用端末が書き出し再開処理を実行させるコマンドをOSに対して入力し,OSがこのコマンド入力に応答することにより実行される(S71)。
次に,実行されたOSの書き出し再開部431は,第1のメモリ管理構造体32に対応付けられたページ領域のうち,第1のフラグが第1のダンプファイル11に書き出されていないことを示すページ領域を検索する(S72)。図22において説明したように,第1のメモリ管理構造体32は,ページ領域に記憶されたデータが解放されたときに消去される。そのため,第1のメモリ管理構造体32が存在しているページ領域には,書き出しが必要なデータが記憶されている可能性がある。そして,OSの書き出し再開部431は,検索した第1のメモリ管理構造体32の中で,第1のフラグが未書き込み状態を示している第1のメモリ管理構造体32に対応するページ領域を検索する。図29の例においては,メモリ2内のOSが,第2のダンプファイル21に書き出されている第1の関連付け構造体30に対して検索を行う(S72)。
さらに,OSは,検索したページ領域に記憶されていたデータが,記憶されている領域にアクセスし,そのアクセスした領域に記憶されるデータを第1のダンプファイル11に書き出す(S73)。図29の例においては,検索したページ領域が第2のダンプファイル21に既に書き出されているため,第2のダンプファイル21内のダンプファイル領域に記憶されているデータに対してアクセスを行い(S73−1),アクセスしたデータを第1のダンプファイル11に書き出している(S73−2)。なお,第1のダンプファイル11及び第2のダンプファイル21のデータサイズは,メモリ2のデータサイズと同じである。また,第1のダンプファイル11において各データが書き出されるダンプファイル領域11aのオフセット位置(格納位置)と,第2のダンプファイル21において各データが書き出されるダンプファイル領域21aのオフセット位置とは同一のオフセット値である。そのため,OSの書き出し再開部431は,第1のメモリ管理構造体32の中で,第1のフラグが未書き込み状態を示しているダンプファイル領域11aのオフセット値に基づいて,第2のダンプファイル21内のダンプファイル領域21aにアクセスする。そして,ダンプファイル領域21aにデータが書き出されていれば(第2のダンプファイル21に対する第2のメモリ管理構造体42が存在しない場合),そのデータを第1のダンプファイル11内の同じダンプファイル領域11aに書き出す。
[書き出し再開処理の動作例(2)]
図30は,検索したページ領域が第2のダンプファイル21に記憶されていな.
い場合の書き出し再開処理を説明する図である。図30の例においては,図29の例の場合と異なり,S72において検索したページ領域が第2のダンプファイル21に書き出されていないため,OSが,第1のメモリ管理構造体32(第1の関連付け構造体30)を参照して第2のダンプファイル21内のダンプファイル領域21aにアクセスした際に,データを取得することができない(S73−1)。
そのため,書き出し再開処理において,OSはさらに,メモリ2内のOSに記憶されている第2のメモリ管理構造体42を参照して(S73−2),アクセスしたダンプファイル領域21aに対応するメモリ2内のページ領域2aにアクセスする(S73−3)。これにより,書き出し再開処理は,検索したページ領域にアクセスすることが可能になり,検索したページ領域に記憶されているデータを第1のダンプファイル11に書き出すことが可能になる(S73−4)。なお,S71,S72については,図29で説明した例と同様であるため,ここでは説明を省略する。
[再異常対応処理中の書き出し処理]
図31は,再異常対応処理中の書き出し処理S68を説明するフローチャート図である。また,図32は,再異常対応処理中の書き出し処理S68を説明する図である。図32を参照しながら図31の再異常対応処理中の書き出し処理S68を説明する。図28で説明した書き出し再開処理は,再異常対応処理の実行によって中止された第1のダンプファイル11に対する書き出し処理を,例えばユーザからのコマンド入力によって任意のタイミングで再開させるものである。これに対し,図31に再異常対応処理中の書き出し処理は,再異常対応処理において第2のダンプファイル21に対して書き出し処理を行うときに,第1のダンプファイル11に対しても書き出し処理を行う。そのため,図31の例において,情報処理装置100は,図28で説明した書き出し再開処理を実行する書き出し再開部431に代えて,図31で説明する再異常対応処理中の書き出し処理を実行可能である第2の書き出し部424を有する。
再異常対応処理中の書き出し処理は,初めに,OSがページ領域を解放するときに第2のダンプファイル21に書き出しを行い(S81),書き出したページ領域を管理する第2のメモリ管理構造体42を消去する(S82)。ここまでは,図24で説明した再異常対応処理と同じである。
次に,解放されるページ領域が第1のダンプファイル11に書き出されていない場合には(S83のYES),書き出し処理S68は,解放されるページ領域に記憶されているデータを第1のダンプファイル11に対しても書き出し処理を行う(S84)。そして,書き出したページ領域を管理する第1のメモリ管理構造体32を消去する(S85)。一方,解放されるページ領域が第1のダンプファイル11に書き出されている場合には(S83のNO),第1のダンプファイルに対する書き出しを行わない。
図32に示すように,ここで説明する再異常対応処理中の書き出し処理は,メモリ2内のOSに,第1のメモリ管理構造体32及び第2のメモリ管理構造体42(第1の関連付け構造体30及び第2の関連付け構造体40)を有している。具体的には,再異常対応処理が実行されたときに,第1のメモリ管理構造体32をリブート後のOSの中に保持しておく。これにより,メモリ2の解放が発生した場合に,第1のダンプファイル11及び第2のダンプファイル21の両方に書き出しを行うことが可能になる。
以上の実施の形態をまとめると,以下の付記のとおりである。
(付記1)
オペレーティングシステムが第1の異常を検知した時の処理を情報処理装置に実行させる調査用プログラムであって,
前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成し,
前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成し,
前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す,
処理を実行する調査用プログラム。
(付記2)
付記1において,
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第1のダンプファイルへのアクセスに応答して,前記第1のテーブルを参照し,前記メモリまたは前記第1のダンプファイルにアクセスする,
処理を更に実行する調査用プログラム。
(付記3)
付記1または2において,
前記リブートを行う処理の前に,前記オペレーティングシステムのリブートに必要な領域に相当する大きさの前記ページ領域に記憶されたデータを,前記第1のダンプファイルに書き出し,
前記第1のテーブルを作成する処理は,前記第1のダンプファイルに書き出されていないページ領域について,前記第1のテーブルを作成する,
処理を更に実行する調査用プログラム。
(付記4)
付記1乃至3のいずれかにおいて,
前記第1のダンプファイルに書き出す処理の実行中に,前記第1の異常とは別の第2の異常を検知した場合,前記メモリ内のデータを書き出す第2のダンプファイルを前記記憶媒体内に作成し,
前記第2のダンプファイルを作成した後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第2のダンプファイル内における複数のダンプファイル領域とを関連付ける第2のテーブルを作成し,
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第1のダンプファイルへのアクセスに応答して,前記第2のテーブルを参照し,前記メモリまたは前記第1のダンプファイルにアクセスし,
前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第2のダンプファイルに書き出す,
処理を更に実行する調査用プログラム。
(付記5)
付記1乃至3のいずれかにおいて,
前記第1のダンプファイルを作成する処理は,前記第1のダンプファイルが作成されるときに,前記第1のダンプファイルのアドレス情報を管理する第1のダンプファイル管理構造体を作成し,
前記第1のテーブルを作成する処理は,前記第1のテーブルとして,前記ページ領域と前記ダンプファイル領域とのアドレス情報をそれぞれ有する複数の第1のメモリ管理構造体を作成する,調査用プログラム。
(付記6)
付記5において,
前記第1のメモリ管理構造体は,前記ページ領域に記憶されているデータが前記第1のダンプファイルに書き出されていないか否かを示す第1のフラグを有し,
前記第1のテーブルを作成する処理は,前記第1のメモリ管理構造体を作成するときに,前記第1のフラグを,前記ページ領域に記憶されているデータが前記ダンプファイル領域に書き出されていないことを示すように設定する,調査用プログラム。
(付記7)
付記6において,
前記第1のダンプファイルに書き出す処理は,前記第1のメモリ管理構造体が管理するページ領域が解放されるときに,前記第1のフラグが前記ダンプファイル領域に書き出されていないことを示す場合は,前記解放されるページ領域のデータを前記ダンプファイル領域に書き出す,調査用プログラム。
(付記8)
付記6において,
前記第1のダンプファイルに書き出す処理の実行中に,前記第1の異常とは別の第2の異常を検知した場合,前記メモリ内のデータを書き出す第2のダンプファイルを前記記憶媒体内に作成し,
前記第2のダンプファイルを作成した後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第2のダンプファイル内における複数のダンプファイル領域とを関連付ける第2のテーブルを作成し,
前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第1のダンプファイルへのアクセスに応答して,前記第2のテーブルを参照し,前記メモリまたは前記第1のダンプファイルにアクセスし,
前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第2のダンプファイルに書き出し,
前記第1のメモリ管理構造体によって対応付けられたページ領域のうち,前記第1のフラグが第1のダンプファイルに書き出されていないことを示すページ領域に記憶されていたデータについて,前記第1のダンプファイルへの書き出しを再開する,
処理を更に実行する調査用プログラム。
(付記9)
付記8において,
前記第1のダンプファイルは,前記第1のダンプファイルへの書き出しの実行中または実行済を示す第2のフラグを有し,
前記第1のダンプファイルへの書き出しを再開する処理は,前記第2のフラグが前記実行中を示しているときに,前記第1のダンプファイルへの書き出しを実行する,調査用プログラム。
(付記10)
付記9において,
前記第1の異常を検知したときのリブートを行う処理の前に,前記第2のフラグを前記実行中に設定し,
前記第1のダンプファイルに書き出す処理の後に,前記第2のフラグを前記実行済に設定する,調査用プログラム。
(付記11)
オペレーティングシステムが第1の異常を検知した時の処理をする情報処理装置であって,
前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成する処理部と,
前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理部と,
前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成する処理部と,
前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す処理部と,を有する,
情報処理装置。
(付記12)
オペレーティングシステムが第1の異常を検知した時の処理をする情報処理装置における情報処理方法であって,
前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成する処理工程と,
前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理工程と,
前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成する処理工程と,
前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す処理工程と,を有する,
情報処理方法。
1 CPU,2 メモリ,3 ファームウエア,4 プログラム用記憶媒体,
10 記憶媒体,11 第1のダンプファイル,
20 記憶媒体,12 第2のダンプファイル,
30 第1の関連付け構造体,31 第1のダンプファイル管理構造体,
32 第1のメモリ管理構造体,
40 第2の関連付け構造体,41 第2のダンプファイル管理構造体,
42 第2のメモリ管理構造体,
100 情報処理装置

Claims (10)

  1. オペレーティングシステムが第1の異常を検知した時の処理を情報処理装置に実行させる調査用プログラムであって,
    前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成し,
    前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
    前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成し,
    前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す,
    処理を実行する調査用プログラム。
  2. 請求項1において,
    前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第1のダンプファイルへのアクセスに応答して,前記第1のテーブルを参照し,前記メモリまたは前記第1のダンプファイルにアクセスする,
    処理を更に実行する調査用プログラム。
  3. 請求項1または2において,
    前記リブートを行う処理の前に,前記オペレーティングシステムのリブートに必要な領域に相当する大きさの前記ページ領域に記憶されたデータを,前記第1のダンプファイルに書き出し,
    前記第1のテーブルを作成する処理は,前記第1のダンプファイルに書き出されていないページ領域について,前記第1のテーブルを作成する,
    処理を更に実行する調査用プログラム。
  4. 請求項1乃至3のいずれかにおいて,
    前記第1のダンプファイルに書き出す処理の実行中に,前記第1の異常とは別の第2の異常を検知した場合,前記メモリ内のデータを書き出す第2のダンプファイルを前記記憶媒体内に作成し,
    前記第2のダンプファイルを作成した後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
    前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第2のダンプファイル内における複数のダンプファイル領域とを関連付ける第2のテーブルを作成し,
    前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第1のダンプファイルへのアクセスに応答して,前記第2のテーブルを参照し,前記メモリまたは前記第1のダンプファイルにアクセスし,
    前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第2のダンプファイルに書き出す,
    処理を更に実行する調査用プログラム。
  5. 請求項1乃至3のいずれかにおいて,
    前記第1のダンプファイルを作成する処理は,前記第1のダンプファイルが作成されるときに,前記第1のダンプファイルのアドレス情報を管理する第1のダンプファイル管理構造体を作成し,
    前記第1のテーブルを作成する処理は,前記第1のテーブルとして,前記ページ領域と前記ダンプファイル領域とのアドレス情報をそれぞれ有する複数の第1のメモリ管理構造体を作成する,調査用プログラム。
  6. 請求項5において,
    前記第1のメモリ管理構造体は,前記ページ領域に記憶されているデータが前記第1のダンプファイルに書き出されていないか否かを示す第1のフラグを有し,
    前記第1のテーブルを作成する処理は,前記第1のメモリ管理構造体を作成するときに,前記第1のフラグを,前記ページ領域に記憶されているデータが前記ダンプファイル領域に書き出されていないことを示すように設定する,調査用プログラム。
  7. 請求項6において,
    前記第1のダンプファイルに書き出す処理は,前記第1のメモリ管理構造体が管理するページ領域が解放されるときに,前記第1のフラグが前記ダンプファイル領域に書き出されていないことを示す場合は,前記解放されるページ領域のデータを前記ダンプファイル領域に書き出す,調査用プログラム。
  8. 請求項6において,
    前記第1のダンプファイルに書き出す処理の実行中に,前記第1の異常とは別の第2の異常を検知した場合,前記メモリ内のデータを書き出す第2のダンプファイルを前記記憶媒体内に作成し,
    前記第2のダンプファイルを作成した後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートし,
    前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第2のダンプファイル内における複数のダンプファイル領域とを関連付ける第2のテーブルを作成し,
    前記情報処理装置または前記情報処理装置とは別の情報処理装置からの前記第1のダンプファイルへのアクセスに応答して,前記第2のテーブルを参照し,前記メモリまたは前記第1のダンプファイルにアクセスし,
    前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第2のダンプファイルに書き出し,
    前記第1のメモリ管理構造体によって対応付けられたページ領域のうち,前記第1のフラグが第1のダンプファイルに書き出されていないことを示すページ領域に記憶されていたデータについて,前記第1のダンプファイルへの書き出しを再開する,
    処理を更に実行する調査用プログラム。
  9. オペレーティングシステムが第1の異常を検知した時の処理をする情報処理装置であって,
    前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成する処理部と,
    前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理部と,
    前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成する処理部と,
    前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す処理部と,を有する,
    情報処理装置。
  10. オペレーティングシステムが第1の異常を検知した時の処理をする情報処理装置における情報処理方法であって,
    前記情報処理装置内のメモリ内のデータを書き出すための第1のダンプファイルを記憶媒体内に作成する処理工程と,
    前記第1の異常の検知後であって前記第1のダンプファイルの作成後に,前記メモリ内に記憶されているデータを消去することなく前記情報処理装置をリブートする処理工程と,
    前記リブート中に,前記メモリ内の複数のページ領域と,前記ページ領域に対応する前記第1のダンプファイル内における複数のダンプファイル領域とを関連付ける第1のテーブルを作成する処理工程と,
    前記メモリ内のページ領域が解放されるときに,該ページ領域に記憶されているデータを前記第1のダンプファイルに書き出す処理工程と,を有する,
    情報処理方法。
JP2013254864A 2013-12-10 2013-12-10 調査用プログラム,情報処理装置及び情報処理方法 Ceased JP2015114750A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013254864A JP2015114750A (ja) 2013-12-10 2013-12-10 調査用プログラム,情報処理装置及び情報処理方法
US14/552,818 US9507657B2 (en) 2013-12-10 2014-11-25 Investigation program, information processing apparatus, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013254864A JP2015114750A (ja) 2013-12-10 2013-12-10 調査用プログラム,情報処理装置及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2015114750A true JP2015114750A (ja) 2015-06-22

Family

ID=53271271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013254864A Ceased JP2015114750A (ja) 2013-12-10 2013-12-10 調査用プログラム,情報処理装置及び情報処理方法

Country Status (2)

Country Link
US (1) US9507657B2 (ja)
JP (1) JP2015114750A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025216309A1 (ja) * 2024-04-11 2025-10-16 ニデック株式会社 情報処理方法および情報処理装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7007557B2 (ja) * 2017-08-24 2022-01-24 富士通株式会社 情報処理装置、プロセス管理方法およびプロセス管理プログラム
JP2020171002A (ja) * 2019-04-05 2020-10-15 キヤノン株式会社 情報処理装置及びその制御方法
CN113553207B (zh) * 2020-04-24 2024-09-17 伊姆西Ip控股有限责任公司 用于管理跟踪记录的方法、设备和计算机程序产品
US10976965B1 (en) * 2020-10-14 2021-04-13 First Capitol Consulting, Inc. Optimization of in-memory processing of data represented by an acyclic graph so that the removal and re-materialization of data in selected nodes is minimized
US11321075B1 (en) * 2021-01-05 2022-05-03 Dell Products L.P. Updating a computing device of an information handling system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333944A (ja) * 1997-05-30 1998-12-18 Nec Software Ltd メモリダンプ採取方式
JP2000293391A (ja) * 1999-04-07 2000-10-20 Mitsubishi Electric Corp 大規模メモリシステム管理方法および装置
JP2000339199A (ja) * 1999-05-28 2000-12-08 Fujitsu Ltd Tmセーブ解析方法
JP2001229053A (ja) * 2000-02-15 2001-08-24 Hitachi Ltd ダンプ取得機構を備えた計算機
JP2006072997A (ja) * 2004-08-23 2006-03-16 Microsoft Corp 高速再起動を伴うメモリダンプ生成

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
JP2007193414A (ja) 2006-01-17 2007-08-02 Nec Corp コンピュータシステムおよびコンピュータシステムにおけるメモリダンプ制御方法
US7831857B2 (en) * 2006-10-31 2010-11-09 Hewlett-Packard Development Company, L.P. Method and system for recovering from operating system crash or failure
JP5255348B2 (ja) 2007-07-16 2013-08-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. クラッシュダンプ用のメモリアロケーション

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333944A (ja) * 1997-05-30 1998-12-18 Nec Software Ltd メモリダンプ採取方式
JP2000293391A (ja) * 1999-04-07 2000-10-20 Mitsubishi Electric Corp 大規模メモリシステム管理方法および装置
JP2000339199A (ja) * 1999-05-28 2000-12-08 Fujitsu Ltd Tmセーブ解析方法
JP2001229053A (ja) * 2000-02-15 2001-08-24 Hitachi Ltd ダンプ取得機構を備えた計算機
JP2006072997A (ja) * 2004-08-23 2006-03-16 Microsoft Corp 高速再起動を伴うメモリダンプ生成

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025216309A1 (ja) * 2024-04-11 2025-10-16 ニデック株式会社 情報処理方法および情報処理装置

Also Published As

Publication number Publication date
US20150160994A1 (en) 2015-06-11
US9507657B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
US10073703B2 (en) Booting an operating system of a system using a read ahead technique
US7774636B2 (en) Method and system for kernel panic recovery
US20150039837A1 (en) System and method for tiered caching and storage allocation
US10152416B2 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
US9507657B2 (en) Investigation program, information processing apparatus, and information processing method
US10353636B2 (en) Write filter with dynamically expandable overlay
TWI506429B (zh) 用於非依電性容錯寫入作業之方法、運算系統及相關電腦程式產品
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
US9575827B2 (en) Memory management program, memory management method, and memory management device
WO2009123342A1 (ja) データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム
CN108604201B (zh) 一种快照回滚方法、装置、存储控制器和系统
KR20140147017A (ko) 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법
WO2025194825A1 (zh) 一种异常掉电处理方法、装置、设备、介质及产品
CN107003897B (zh) 监控事务处理资源的利用率
US8255642B2 (en) Automatic detection of stress condition
WO2026001164A1 (zh) 堆叠文件系统、系统管理方法、控制器、芯片设备和车辆
JP6677021B2 (ja) 情報処理装置、情報処理方法、プログラム
US10185653B2 (en) Integrated systems and methods for the transactional management of main memory and data storage
KR20140083338A (ko) 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법
US11226875B2 (en) System halt event recovery
CN112286804B (zh) 系统的调试方法、装置、设备和介质
KR20150058092A (ko) 네트워크 부트 시스템
US20110131181A1 (en) Information processing device and computer readable storage medium storing program
US7934067B2 (en) Data update history storage apparatus and data update history storage method
KR101966399B1 (ko) 원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170829

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171205

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20180424