(57)【特許請求の範囲】
【請求項１】
ページ単位のデータが格納されている記憶装置が接続されている計算機におけるメモリダンプ採取方法は、
ユーザからダンプ要求を受け付け、
メモリ領域全体の各ページをライトプロテクションし、
全ての前記メモリ領域に対してダンプ要求フラグを立て、
メモリアクセス時にページフォルト例外が発生した場合、前記ページフォルト例外が起きたページのハッシュ値を算出し、各ページに格納されているデータに対するハッシュ値を格納したメモリハッシュテーブルに保存されているハッシュ値と照合し、
前記照合の結果、双方のハッシュ値が一致すればダンプを採取せず、双方のハッシュ値が不一致であればダンプを採取する、
ことを特徴とするメモリダンプ採取方法。
【請求項２】
ページ単位のデータが格納されている記憶装置が接続されている計算機におけるメモリダンプ採取方法は、
ユーザからダンプ要求を受け付け、
全てのメモリ領域に対してページ番号とハッシュ値を算出し、各ページに格納されているデータに対するハッシュ値を格納したメモリハッシュテーブルに保存されているハッシュ値と照合し、
前記照合の結果、双方のハッシュ値が一致すれば前記ページにライトプロテクションをかけず、双方のハッシュ値が不一致であれば前記ページにライトプロテクションをかけ、
前記ライトプロテクションをかけたページのダンプ要求フラグを立て、
ページフォルト例外が起こった時にダンプを採取する、
ことを特徴とするメモリダンプ採取方法。
【請求項３】
オペレーティングシステムの仮想記憶をページ単位で処理する情報処理装置において、
前記オペレーティングシステムのメモリ領域をページ単位でハッシュを計算し、計算結果を記憶する管理テーブルと、
前記管理テーブルが記憶するページフレームの内容から算出されるハッシュ値の初期化を行うメモリハッシュテーブル初期化手段と、
システムメモリに変更があり、前記管理テーブルが記憶しているハッシュ値とシステムメモリが不一致の際、前記管理テーブルが記憶しているハッシュ値の更新と、外部記憶装置が記憶しているメモリイメージを更新するメモリハッシュテーブル更新手段と、
前記管理テーブルとシステムメモリのハッシュ値を比較し、ハッシュ値が不一致のメモリ領域に対してのみダンプ要求を発行するハッシュ値比較手段と、
前記ハッシュ値比較手段が発行するダンプ要求を処理するダンプ出力手段と、
を備えることを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
前記ハッシュ値比較手段は、前記管理テーブルとシステムメモリのハッシュ値を比較して、不一致の場合のみシステムメモリ内容を前記外部記憶装置へダンプすること、を特徴とする情報処理装置。
【請求項５】
請求項３に記載の情報処理装置は、さらに、
前記管理テーブルとシステムメモリのハッシュ値を比較し、比較結果によりメモリプロテクションをするメモリ領域を限定するメモリプロテクション手段を有することを特徴とする情報処理装置。
【請求項６】
請求項３に記載の情報処理装置は、さらに、
ページフォルト例外が発生した際、前記管理テーブルとシステムメモリのハッシュ値を比較し、比較結果により外部記憶装置へダンプするメモリ領域を限定するページフォルト処理手段を有することを特徴とする情報処理装置。
【請求項７】
前記計算機が複数の仮想計算機を起動する場合、ダンプ出力を実行する際に、前記仮想計算機のそれぞれが保持するメモリハッシュテーブルのハッシュ値を比較し、同一のハッシュ値であるページフレームに対しては、一つの仮想計算機がダンプ出力し、前記複数の仮想計算機が、ダンプされたメモリイメージを共有することを特徴とする請求項１又は２に記載のメモリダンプ採取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および同装置に適用されるメモリダンプ採取方法に関する。
【背景技術】
【０００２】
従来から、コンピュータシステム障害時に情報採取を行うメモリダンプ採取方法又は採取装置が存在する。【０００３】
従来においては、コンピュータシステムで障害が発生して、システムが停止した場合、その原因を調査する上で有効となる障害発生時のメモリイメージの保存（メモリダンプ採取）は、障害が発生した後に開始され、実装されているメモリ全体を採取及び保存していた。【０００４】
システム再起動は、メモリダンプ採取が完了すると実施可能となっていた。このようなダンプ採取の機能をLinux（登録商標）オペレーティングシステムにおいて実現する機能の例としては非特許文献1などが存在する。【０００５】
しかし近年は、コンピュータシステムが搭載するメモリ容量が増大し、メモリイメージ全体を採取及び保存すると非常に時間がかかるため、システムがサービス提供を再開するまでに長時間を要する状況となっている。【０００６】
このような問題に対し、特許文献1では、オペレーティングシステムの中核部（メモリ常駐部）のみをダンプして再起動を開始し、再起動後のオペレーティングシステムが未ダンプのメモリページを割り当てようとした場合、ダンプ出力を実行してからメモリページを割り当てることで、再起動を開始するまでにかかる時間を短縮している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−３３３９４４号公報
【非特許文献】
【０００８】
【非特許文献１】kdump  http://lse.sourceforge.net/kdump/
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１の方法では、メモリページを割り当てる度に、同ページがダンプ出力済みか否か判別する必要があり、メモリページの割り当て処理にオーバヘッドを生じる。【００１０】
メモリページ割り当て処理は非常に頻繁に発生するため、このオーバヘッドはシステムの処理性能を低下させる。【００１１】
また、オペレーティングシステムは初期化処理の段階から多くのメモリページ割り当てを実行することが一般的であるため、初期化処理中にダンプ出力処理が頻発することになり、再起動の開始が早くなっても、初期化処理に長時間を要してしまい、システムがサービス提供を再開するまでには長時間を要する。【００１２】
また、再起動後に漸次ダンプを実施するため、本来短時間で完了するはずのメモリページ割り当て処理が長時間を要することになり、システム性能（特にリアルタイム性能）の見積もりが困難となる。【００１３】
また、故障の重度によりシステム全体が停止してしまいダンプ出力処理自体が実行されない可能性がある。深刻なシステムエラーの際には、エラー原因の究明が重要であり、原因究明の手段として最も有効なメモリイメージのダンプが実行されないことにより、原因究明に膨大な時間を要する。【００１４】
本発明は上述の事情を考慮してなされたものであり、再起動後のオペレーティングシステムには全く影響を与えることなく、深刻なシステムエラーによるシステムダウンの際にもメモリイメージ全体を短い時間で漏れなく採取するメモリダンプ採取方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成する本発明のうち主たる発明は、オペレーティングシステムの仮想記憶をページ単位で管理する計算機システムであって、オペレーティングシステムのメモリ領域をページ単位に分けてハッシュを計算した結果を記憶するメモリハッシュテーブルと、メモリハッシュテーブルが記憶するハッシュ値を、ページ単位でシステムメモリの記憶内容から算出し、初期化を行うメモリハッシュテーブル初期化機能と、外部記憶装置へ初めてメモリイメージをコピーする外部装置記憶初期ダンプと、システムメモリの変更箇所に対してメモリハッシュテーブルのハッシュ値更新と、外部記憶装置のメモリイメージ更新を行うメモリハッシュテーブル更新機能と、外部記憶装置への最後のデータ保存ののちに書き込みが発生したメモリ領域を検知しダンプ要求を発行するハッシュ値比較機能と、ダンプ要求を処理するダンプ出力機能と、を備えることとする。【００１６】
システム稼働時にメモリハッシュテーブルのハッシュ値および外部記憶装置のメモリイメージを更新することで、ダンプ時は、メモリの内容から算出したハッシュ値とメモリハッシュテーブル内のハッシュ値が不一致の領域のみダンプすることでダンプ要求時のシステムメモリイメージ全体を外部記憶装置にダンプすることができる。これにより、ダンプ時間を削減することができる。【００１７】
その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面によって明らかにされる。
【発明の効果】
【００１８】
本発明によれば、オペレーティングシステムで障害が発生した際、障害解析に必要になる可能性のあるメモリイメージ全体を保存することができ、しかも、メモリ総容量に比例しない短時間で保存を完了することが出来、オペレーティングシステムを早く再起動・再初期化してサービス提供を再開できる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態の計算機システムの構成例を示す図である。
【図２】本実施形態のメモリハッシュテーブルの構成例を示す図である。
【図３】本実施形態のメモリハッシュテーブル初期化機能を説明する図である。
【図４】本実施形態の外部記憶装置初期ダンプ機能を説明する図である。
【図５】本実施形態のメモリハッシュテーブル更新機能を説明する図である。
【図６】本実施形態のハッシュ値比較機能を説明する図である。
【図７】本実施形態のダンプ出力機能を説明する図である。
【図８】本実施形態のダンプ要求管理テーブルの構成例を示す図である。
【図９】本実施形態のメモリプロテクション方法(1)を説明する図である。
【図１０】本実施形態のページフォルト処理機能(1)を説明する図である。
【図１１】本実施形態のメモリプロテクション方法(2)を説明する図である。
【図１２】本実施形態のページフォルト処理機能(2)を説明する図である。
【図１３】メモリハッシュテーブルを使用したダンプ容量の削減手法を説明する図である。
【発明を実施するための形態】
【００２０】
（システム構成）
以下に実施形態について図面を用いて詳細に説明する。図１は、本実施形態の計算機システム１０の構成図である。
【００２１】
計算機システム１０は、メモリ上にオペレーティングシステムを構成するコンピュータシステムであって、単一もしくは複数のプロセッサ１３０で稼動する。
【００２２】
また、計算機システム１０には、通信インターフェース１４０が備わっており、計算機システム１０と外部記憶装置２００が接続されている。
【００２３】
外部記憶装置２００は、計算機システム１０に備わる通信インターフェース１４０によって計算システム１０と接続されており、後述するダンプ処理時にメモリ内容のダンプ先として用いるものである。したがって、メモリ２０より大きい記憶領域を持っていることとする。
【００２４】
本実施形態では、計算機システム１０のメモリ２０上でオペレーティングシステム１１０およびタスクプログラム１２０が動作する一般的な計算機システムである。
【００２５】
オペレーティングシステム１１０は、ページフレーム番号とその領域のハッシュ値を対応付けて保存するメモリハッシュテーブル１１１、メモリハッシュテーブルに格納されている各ページフレーム番号に対するハッシュ値を初期化するメモリハッシュテーブル初期化機能１１２、外部記憶装置２００への最初のメモリダンプを実施する外部記憶装置初期ダンプ機能１１３、システム稼働中メモリ２０に書き込みがあった際に、メモリハッシュテーブルおよび外部記憶装置のメモリイメージの更新を実施するメモリハッシュテーブル更新機能１１４、外部記憶装置への最後のデータ保存ののちに書き込みが発生したメモリ領域を検知しダンプ要求を発行するハッシュ値比較機能１１５、外部記憶装置２００へメモリイメージをダンプするダンプ出力機能１１６を有している。
【００２６】
図２は、メモリハッシュテーブル１１１の構成例を示す図である。ページフレーム番号は、オペレーティングシステム１１０が管理しているメモリのページフレーム番号に対応付けられている。ハッシュ値はページフレーム番号に対応するメモリ領域の内容に対してハッシュを算出することによって得られるハッシュ値である。
【００２７】
ハッシュ値の算出は、システムブート時でもシステム稼働時でも構わない。またハッシュ値算出中にメモリの内容が変更されても構わない。
【００２８】
また、ハッシュ値はコリジョン（collision：２つのハッシュ値の競合）が発生してしまう可能性がある。しかし、本方法では同一のページフレーム番号で、現在メモリハッシュテーブル１１１に保存されているハッシュ値と再計算した際のハッシュ値とではコリジョンが起こらないようなハッシュ値算出を行っていることを前提とする。ただし、異なるページフレーム番号同士でコリジョンが発生することは十分起こりうるものとする。
【００２９】
（処理の説明）
図３は、メモリハッシュテーブル初期化処理１１２を説明する図である。
【００３０】
前述のように、メモリハッシュテーブル１１１の初期化はシステムブート時またはシステム稼働時に実行される。システム稼働時は刻一刻とメモリ内容が変化しており、すでに初期化が終了したページフレームの内容がその後に変化し、メモリハッシュテーブル１１１に記憶されているハッシュ値と、該当するメモリ２０のページフレームから算出されるハッシュ値が異なる可能性がある。しかし、本方法ではメモリハッシュテーブル１１１はページフレームの内容が更新されるたびに頻繁にハッシュ値が更新されることになるため、特に問題は生じない。
【００３１】
メモリハッシュテーブル１１１の初期化は、まずメモリハッシュテーブル１１１を作成する（S４０１）。ページフレーム番号の個数は、計算機システム１０に備わるメモリ２０に対してオペレーティングシステムによるメモリ管理上のページフレーム番号の個数と同数である。次に、このページフレーム番号に対応するメモリ２０のページの内容からハッシュ値を算出し、その値をメモリハッシュテーブル１１１に記憶する（S４０２）。S４０２の処理は、すべてのページフレームに対して実行される必要があり、ページフレーム番号を１ずつ増加させながら、すべてのページフレームについてS４０２の処理を実施する（S４０３）。すべてのページフレームに対して実行が終了したら、メモリハッシュテーブル１１１の初期化を終了する。
【００３２】
図４は、外部記憶装置初期ダンプ機能１１３を説明する図である。ここで、初期ダンプとは、外部記憶装置へ初めてメモリイメージのコピーを実行することを指す。本処理はダンプ命令の発行の有無に関わらず実行されるものである。
【００３３】
本方法では、メモリをページ単位でダンプすることを想定しているため、外部記憶装置へのメモリダンプもページ単位で行われる（S４１１）。S４１１の処理は全てのメモリページに対して外部記憶装置へのメモリイメージのコピーが完了するまで繰り返し実行される（S４１２）。
【００３４】
外部記憶装置への初期ダンプは、メモリハッシュテーブル１１１の初期化と同様にシステムブート時、システム稼働時のいずれでも構わない。なぜなら、メモリハッシュテーブル１１１のハッシュ値と同様にシステム稼働時に更新されるからである。しかし、ダンプを高速に終了させて、実際のシステム稼動時にダンプ命令が発行されるまでに外部記憶装置初期ダンプ機能１１３を完了することが望ましい。
【００３５】
図５は、メモリハッシュテーブル更新機能１１４を説明する図である。システム稼働中は、メモリ領域への書き込みが起こるため、前述でメモリハッシュテーブル１１１の初期化および外部記憶装置への初期ダンプが現状のメモリのハッシュ値およびメモリイメージとは異なる。
【００３６】
そこで、本処理によりメモリハッシュテーブルのハッシュ値の更新および外部記憶装置への差分ダンプを行うことにより、メモリの内容に対応したハッシュ値とメモリハッシュテーブルのハッシュ値を一致させ、メモリイメージと外部記憶装置にダンプされたメモリイメージを一致させる。
【００３７】
メモリハッシュテーブル更新機能１１４では、まずダンプ命令が発行されていることをチェックする（S４２１）。更新処理は、メモリのハッシュ値を算出し、メモリのページフレーム番号に対応付けられるメモリハッシュテーブルのハッシュ値と比較する（S４２２）（S４２３）。ハッシュ値が一致した場合は、ハッシュ値を算出したメモリ領域への書込みが行われていないと判断できるので、更新処理の対象とするページフレームを次のページフレームに移し（S４２５）、ステップS４２１に戻り、他のページフレームに対してメモリのハッシュ値算出とメモリハッシュテーブルのハッシュ値の比較を行う。ハッシュ値が不一致だった場合は、ハッシュ値を算出したメモリ領域への書込みが行われたと判断し、メモリハッシュテーブル１１１の該当するハッシュ値を算出したハッシュ値に更新し、ページフレームのメモリイメージを外部記憶装置にダンプする（S４２４）。その後、更新処理の対象とするページフレームを次のページフレームに移し（S４２５）、同様に更新処理を実行していく。
【００３８】
メモリハッシュテーブル更新機能１１４は、システム稼働中であって、かつダンプ命令が発行されていない間は常に実行されているものとする。
【００３９】
これにより、ダンプ命令が発行されていない場合でも、外部記憶装置には更新された直近のメモリイメージが保存されており、障害解析のためのメモリダンプイメージを取得することが出来るため、ダンプ出力処理不実行の際に原因究明の長期化を防ぐことができる。
【００４０】
図６は、ハッシュ値比較機能１１５を説明する図である。外部記憶装置への最後のデータ保存ののちに書き込みが発生したメモリ領域についてダンプ要求を発行する処理である。
【００４１】
ダンプ命令を受信した際（S４３１）、ダンプ命令を受信した際のメモリイメージに変更が行われないように、即座にすべてのプロセッサ１３０に対しメモリ領域への書き込みを停止する（S４３２）。
【００４２】
その後、メモリの各ページに対するハッシュ値を算出し、メモリハッシュテーブルの該当するページフレーム番号と対応付けられているハッシュ値と比較する（S４３３、S４３４）。
【００４３】
当該ページの双方のハッシュ値が一致した場合、メモリハッシュテーブルおよび外部記憶装置の更新が実行されたのちにその領域への書込みが行われなかったと考えられ、外部記憶装置へメモリイメージをダンプする必要はない。
【００４４】
一方、当該ページの双方のハッシュ値が不一致である場合、メモリハッシュテーブルおよび外部記憶装置の更新が実行されたのちにそのページ内の領域への書込みが行われたと考えられるので、ページ内容を外部記憶装置にダンプする要求を発行する（S４３５）。
【００４５】
S４３３〜S４３５の処理をすべてのページに対して実施する（S４３６）。
【００４６】
図７は、ダンプ出力機能１１６を説明する図である。
【００４７】
本実施形態では、計算機システム１０に備わる通信インターフェース１４０を用いて、接続された外部記憶装置２００へダンプを書き出す。
【００４８】
ハッシュ値比較機能１１５のＳ４３５によって発行されたダンプ要求を受け取り（S４４１）、ページ内容を外部記憶装置にダンプする（S４４２）。
【００４９】
前述のように、システム稼働中にメモリ２０に書込みが発生した際、その書込みをメモリハッシュテーブル１１１のハッシュ値によって検知し、メモリハッシュテーブル１１１のハッシュ値の更新と、外部記憶装置２００に記憶するメモリイメージの更新を行うことにより、ダンプ命令が発行された際に特定のメモリ領域のみダンプすれば、ダンプ命令が発行された時点の全メモリ領域のダンプが保存される。
【００５０】
これにより、ダンプ命令が発行された時点から全メモリ領域をダンプする手法に比べて大幅なダンプ時間の短縮に繋がり、かつダンプ処理はシステムの再起動後に引き継がれることはないので、従来手法に比べシステムの再起動後にサービスを再開するまでの時間を削減することが可能となる。
【００５１】
前述は、システムが故障した際にダンプ命令が発行され、システムがサービスの継続が不可能であることを前提としている。しかしダンプ命令はシステムが故障した際に発行されるものとは限らない。システム保守員等が現在のメモリイメージを保存したいため、明示的にダンプ命令を発行する可能性がある。
【００５２】
明示的なダンプ命令が発行される場合はシステム故障が発生していないので、サービスを継続しつつ、ダンプを保存したいという要求がある。この場合、前述の方法では正確なダンプ命令発行時のメモリイメージを保存することは出来ない。なぜなら、ハッシュ値比較を行っている最中にサービス稼働によって、刻一刻とメモリ領域への書込みが発生してしまうからである。
【００５３】
前述の問題は、オペレーティングシステム１１０の従来技術であるメモリプロテクション機能とページフォルト処理機能を使用し、ダンプ要求を管理するためのテーブルを追加することで解決することができる。
【００５４】
図８は、図１のメモリ２０のオペレーティングシステム１１０が管理するダンプ要求管理テーブル８００の構成例を示す図である。ページフレーム番号８０１は、メモリハッシュテーブル１１１に対応付けられるものである。ダンプ要求フラグ８０２は、対応付けられたページに対するダンプ要求の有無を表すものである。
【００５５】
明示的なダンプ命令が発行され、サービスを継続しつつ、メモリ２０の内容が外部記憶装置２００にダンプされる処理フローにおいて、本実施形態では以下の２つの方法について記述する。
【００５６】
一方は、ダンプ命令を受信した際に、メモリ２０の全領域に対してライトプロテクション（書込み禁止）処理をかけ、各ページのハッシュ値を調べてダンプの可否を決める方法（方法１）であり、他方はダンプ命令を受信した際に、メモリ２０の特定領域（フラグが１のページ）に対してのみライトプロテクション処理をかける方法（方法２）である。ライトプロテクションのかけ方により、ライトプロテクションがかけられたページへの書込み要求があった際のページフォルト例外処理が異なるので、それぞれについて記述する。
【００５７】
上記の方法１（ダンプ要求フラグを予め設定）及び方法２（ダンプ要求フラグは処理中に設定）の処理概要を以下に示す。
【００５８】
（方法１、図９、図１０）
（１）ユーザからダンプ要求を受け付ける。（Ｓ４５１）
（２）メモリ領域全体をライトプロテクションする。（Ｓ４５３）
（３）全てのメモリ領域に対してダンプ要求フラグを立てる。（Ｓ４５４）
（４）メモリアクセス時にページフォルト例外が発生する。（Ｓ４６１）
（５）ページフォルト例外が起きたページのハッシュ値を算出し、メモリハッシュテーブルに保存されているハッシュ値と照合する。（Ｓ４６３）
（６）照合の結果、双方のハッシュ値が一致すればダンプを採取せず、双方のハッシュ値が不一致であればダンプを採取する。（Ｓ４６４〜Ｓ４６６）
（方法２、図１１、図１２）
（１）ユーザからダンプ要求を受け付ける。（Ｓ４７１）
（２）全てのメモリ領域に対してページＮｏ．とハッシュ値を算出し、メモリハッシュテーブルに保存されているハッシュ値と照合する。（Ｓ４７３）
（３）照合の結果、双方のハッシュ値が一致すればライトプロテクションをかけず、双方のハッシュ値が不一致であればライトプロテクションをかける。（Ｓ４７４〜Ｓ４７５）
（４）ライトプロテクションをかけたページのダンプ要求フラグを立てる。（Ｓ４７６）
（５）ページフォルト例外が起こった時にダンプを採取する。（Ｓ４８１〜Ｓ４８５）
（方法１：全領域ライトプロテクション）
図９は、ダンプ命令受付時のメモリプロテクション機能として、全メモリ領域へのライトプロテクション処理を説明する図である。（フラグは予め設定されている場合）
ダンプ命令を受信した際（S４５１）、ダンプ命令を受信した際のメモリイメージに変更が行われないように、即座にすべてのプロセッサ１２０に対しメモリ領域への書き込みを停止する（S４５２）。
【００５９】
その後、ページ単位で各メモリ領域に対してライトプロテクション処理を実行し（S４５３）、ＯＳのライトプロテクションの指示に基づいて、ダンプ要求管理テーブル８００のダンプ要求フラグ８０２を１にする（S４５４）。なお、本実施形態では、ダンプ要求フラグ８０２に対して、０をダンプ要求無し、１をダンプ要求有りとして割り当てている。S４５３〜S４５４の処理を全メモリ領域に対して実行する（S４５５）。
【００６０】
全メモリ領域に対してS４５３〜S４５４の処理が実行されたら、S４５２で停止したすべてのプロセッサ１３０に対し全メモリ領域への書き込みを再開する（S４５６）。
【００６１】
図１０は、ダンプ命令受信時のメモリプロテクション機能として、全メモリ領域へのライトプロテクション処理を行った場合のページフォルト処理機能を説明した図である。オペレーティングシステム１１０やタスクプログラム１２０等の実行により、図９のS４５３によってライトプロテクションがかけられたメモリ領域への書込みが発生した際、ページフォルト例外が発生する（S４６１）。
【００６２】
ダンプ要求管理テーブル８００のページフォルト例外が発生したページのページフレーム番号に対応付けられるダンプ要求フラグ８０２を参照し（S４６２）、ダンプ要求フラグ８０２が１の場合、ページフォルト例外が発生したページのハッシュ値を算出し、メモリハッシュテーブル１１１の該当するページフレーム番号と対応付けられているハッシュ値と比較する（S４６３）（S４６４）。
【００６３】
ページフォルト例外が発生したページに対する双方のハッシュ値が一致する場合、メモリハッシュテーブル１１１および外部記憶装置２００の更新が実行されたのちにその領域への書込みが行われなかったと考えられ、メモリイメージと外部記憶装置のダンプイメージは同一であると言えるので、外部記憶装置へのダンプは実施せず、ダンプ要求管理テーブル８００の該当するページフレーム番号に対応付けられているダンプ要求フラグ８０２をクリアする（S４６６）。
【００６４】
ページフォルト例外が発生したページに対する双方のハッシュ値が不一致であるの場合、メモリハッシュテーブル１１１および外部記憶装置２００の更新が実行されたのちにその領域への書込みが行われたと考えられ、メモリイメージと外部記憶装置のダンプイメージは異なっていると言えるので、ページの内容を外部記憶装置にダンプする要求を出し（S４６５）、ダンプ要求管理テーブル８００の該当するページフレーム番号８０１に対応付けられているダンプ要求フラグ８０２をクリアする（S４６６）。更に、メモリハッシュテーブル１１１のハッシュ値を算出した値で更新する。
【００６５】
ダンプ要求フラグ８０２が０の場合、ページフォルト例外が発生した要因が、図９のS４５３でメモリにかけられたライトプロテクションではなくオペレーティングシステム１１０のメモリ管理でかけられたライトプロテクションであるので、オペレーティングシステム１１０が提供する通常のページフォルト処理を実行する（S４６７）。
【００６６】
ページフォルト処理機能部でメモリハッシュテーブルを用いることにより、メモリイメージと外部記憶装置のダンプイメージの同異を判定し、ダンプする領域を限定することにより、ダンプ時間を削減することができる。
【００６７】
（方法２：特定領域ライトプロテクション）
図１１は、ダンプ命令受付時のメモリプロテクション機能として、特定メモリ領域へのライトプロテクション処理を説明する図である。（ハッシュに基づいて、フラグは処理中に設定される場合）
ダンプ命令を受信した際（S４７１）、ダンプ命令を受信した際のメモリイメージに変更が行われないように、即座にすべてのプロセッサ１３０に対し特定メモリ領域への書き込みを停止する（S４７２）。
【００６８】
その後、メモリのハッシュ値を算出し、算出したハッシュ値を、メモリハッシュテーブルの該当するページフレーム番号と対応付けられているハッシュ値と比較する（S４７３）（S４７４）。
【００６９】
双方のハッシュ値が一致する場合、メモリハッシュテーブルおよび外部記憶装置の更新が実行されたのちにその領域への書込みが行われなかったと考えられ、外部記憶装置へメモリイメージをダンプする必要はない。従って、ダンプ要求フラグ８０２を０にする。
【００７０】
双方のハッシュ値が不一致である場合、メモリハッシュテーブル１１１および外部記憶装置２００の更新が実行されたのちにその領域への書込みが行われたと考えられるので、そのページに対してライトプロテクション処理を実行し（S４７５）、ダンプ要求管理テーブル８００の該当するページフレーム番号８０１に対応付けられているダンプ要求フラグ８０２を１にする（S４７６）。
【００７１】
S４５３〜S４５６の処理をすべてのページに対して実施し（S４７７）、S４７１で停止したすべてのプロセッサに対し全体メモリ領域への書き込みを再開させる。
【００７２】
図１２は、ダンプ命令受信時のメモリプロテクション機能として、特定メモリ領域へのライトプロテクション処理を行った場合のページフォルト処理機能を説明した図である。オペレーティングシステム１１０やタスクプログラム１２０等の実行により、図１１のS４７５によってライトプロテクションがかけられたメモリ領域への書込みが発生した際、ページフォルト例外が発生する（S４８１）。
【００７３】
ダンプ要求管理テーブル８００のページフォルト例外が発生したページのページフレーム番号に対応付けられるダンプ要求フラグ８０２を参照する（S４８２）（S４８３）。
【００７４】
ダンプ要求フラグ８０２が１の場合、即ち、双方のハッシュ値が不一致である場合は、図１１のS４７５でページにライトプロテクションがかけられた領域への書き込みが行なわれた場合であり、したがってそのメモリ領域イメージと外部記憶装置のダンプイメージが一致していないので、ページ内容を外部記憶装置にダンプする要求を発行し（S４８４）、ダンプ要求管理テーブル８００の該当するダンプ要求フラグ８０２を０にする（S４８５）。
【００７５】
ダンプ要求フラグ８０２が０の場合、即ち、双方のハッシュ値が一致する場合は、ページフォルト例外が発生した要因が、S４５５でメモリにかけられたライトプロテクションではなくオペレーティングシステム１１０のメモリ管理でかけられたライトプロテクションであるので、オペレーティングシステム１１０が提供する通常のページフォルト処理を実行する（S４８６）。
【００７６】
ダンプ命令受信時のメモリプロテクション処理部でメモリハッシュテーブルを用いることにより、ライトプロテクションをかけるメモリ領域を限定することで、ダンプ時間を削減することができる。
【００７７】
前述のように、ページフォルト処理機能部またはメモリプロテクション機能部でダンプ領域を限定、またはライトプロテクションをかけるメモリ領域を限定することで、どちらも本方法で目指すダンプ高速化を実現することが可能である。
【００７８】
しかし、メモリプロテクション機能部でのライトプロテクションをかけるメモリ領域を限定する方法は、すべてのプロセッサに対し特定メモリ領域への書き込みを停止している状態で行われるので、ページフォルト処理機能部でのダンプ領域を限定する方法に比べて、システム停止時間が長くなるが、書き込みの停止にための処理が簡単である。したがって、処理時間の短縮のためには、ページフォルト処理機能部でのダンプ領域を限定する方法が好ましい。
【００７９】
図１３は、メモリハッシュテーブルを使用したダンプ容量の削減手法を説明する図である。仮想化機構を利用して同一筐体内に複数の仮想計算機を起動した場合、全仮想計算機に対してダンプ命令があった際、外部記憶装置にダンプ出力されるメモリイメージは大容量となる。
【００８０】
出力されるメモリイメージ量を削減するために、物理計算機は、外部記憶装置へダンプ出力を実行する際に、各仮想計算機のメモリハッシュテーブルのハッシュ値を比較し、同一のハッシュ値であるページフレーム（ページフレーム番号１およびＮ）は、どちらか一方のみをダンプ出力し、双方の仮想計算機において、メモリイメージを共有させる。
【００８１】
以上、実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００８２】
１０：計算機システム、２０：メモリ、１１０：オペレーティングシステム、１１１：メモリハッシュテーブル、１１２：メモリハッシュテーブル初期化機能、１１３：外部記憶装置初期ダンプ機能、１１４：メモリハッシュテーブル更新機能、１１５：ハッシュ値比較機能、１１６：ダンプ出力機能、１２０：タスクプログラム、１３０：プロセッサ、１４０：通信インターフェース、２００：外部記憶装置
【図１】
0005852672.tif 000002
【図２】
0005852672.tif 000003
【図３】
0005852672.tif 000004
【図４】
0005852672.tif 000005
【図５】
0005852672.tif 000006
【図６】
0005852672.tif 000007
【図７】
0005852672.tif 000008
【図８】
0005852672.tif 000009
【図９】
0005852672.tif 000010
【図１０】
0005852672.tif 000011
【図１１】
0005852672.tif 000012
【図１２】
0005852672.tif 000013
【図１３】
0005852672.tif 000014