(57)【要約】【課題】障害時のプロセスについてのコアファイルを生成できるようにした上で、そのプロセスの停止時間を短縮する。【解決手段】参照数加算部１１１は、障害が発生したプロセスＡより参照されるページをメモリ管理情報記憶部１０２で検索し、検索されたページＰ１０１、Ｐ１０２について、参照数記憶部１０３に記憶された参照数に１を加算する。ダミープロセス生成部１１２は、ページＰ１０１、Ｐ１０２を参照するダミープロセスＡ’を生成する。メモリ管理情報更新部１１３は、ページＰ１０１、Ｐ１０２が、ダミープロセスＡ’に参照されるようにメモリ管理情報記憶部１０２を更新する。メモリダンプ部１１４は、ダミープロセスＡ’により参照されるページをページＰ１０１、Ｐ１０２をダンプしてなるコアファイルＣＡを生成し、そのコアファイルＣＡをコアファイル記憶部１１５に記憶させる。【選択図】図１
2008027232.tif 000002
【特許請求の範囲】
【請求項１】
プロセスに参照されるページが構成されるメモリ部と、
どのプロセスにどのページが参照されるかが記憶されるメモリ管理情報記憶部と、
ページを参照するプロセスの数である参照数が記憶される参照数記憶部と、
プロセスを動作の順に示すランキューとを備え、
プロセスが、ランキューにおける当該プロセスの記憶箇所に対応するタイミングが到来した際に実行権を与えられて動作を行い、当該動作でページを書き換えようとする場合、参照数記憶部において、当該ページを参照するプロセスの参照数＝１か否かを判定し、参照数＝１の場合は、ページを書き換え、一方、参照数＝１でない場合は、当該ページをコピーし、コピーにより生じたページを書き換え、コピーされたページが当該キューのプロセスにより参照されず、コピーにより生じたページが当該プロセスに参照されるようにメモリ管理情報記憶部を更新し、参照数記憶部において、コピーされたページを参照するプロセスの参照数から１を減算し、コピーにより生じたページを参照するプロセスの参照数として１を記憶させる、
コンピュータシステムに設けられるダンプ装置が行うダンプ方法であって、
ダンプ装置の参照数加算部が、障害が発生したプロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算し、
ダンプ装置のダミープロセス生成部が、当該検索された全ページを参照するダミープロセスを生成し、
ダンプ装置のメモリ管理情報更新部が、当該検索されたページが当該ダミープロセスに参照されるようにメモリ管理情報記憶部を更新し、
ダンプ装置のメモリダンプ部が、ダミープロセスを検索し、検索されたダミープロセスにより参照されるページをメモリ管理情報記憶部で検索し、検索された全ページをダンプしてなるコアファイルを生成する
ことを特徴とするダンプ方法。
【請求項２】
ダンプ装置が、互いに関連して動作する複数のプロセスを示すプロセスリストが記憶されるプロセスリスト記憶部を備え、
参照数加算部は、障害が発生したプロセスを示すプロセスリストがプロセスリスト記憶部に存在する場合、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算し、
ダミープロセス生成部は、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、当該検索された全ページを参照するダミープロセスを生成し、
メモリ管理情報更新部は、当該各ダミープロセスにつき、当該ダミープロセスの基となったプロセスにつきメモリ管理情報記憶部で検索されたページが当該ダミープロセスにより参照されるようにメモリ管理情報記憶部を更新する
ことを特徴とする請求項１記載のダンプ方法。
【請求項３】
参照数の加算に先立ち、プロセスリストに示された、障害が発生したプロセス以外のプロセスの記憶内容をランキューから退避させ、参照数の加算後に、当該プロセスの記憶内容をランキューに戻す
ことを特徴とする請求項２記載のダンプ方法。
【請求項４】
プロセスに参照されるページが構成されるメモリ部と、
どのプロセスにどのページが参照されるかが記憶されるメモリ管理情報記憶部と、
ページを参照するプロセスの数である参照数が記憶される参照数記憶部と、
プロセスを動作の順に示すランキューとを備え、
プロセスが、ランキューにおける当該プロセスの記憶箇所に対応するタイミングが到来した際に実行権を与えられて動作を行い、当該動作でページを書き換えようとする場合、参照数記憶部において、当該ページを参照するプロセスの参照数＝１か否かを判定し、参照数＝１の場合は、ページを書き換え、一方、参照数＝１でない場合は、当該ページをコピーし、コピーにより生じたページを書き換え、コピーされたページが当該キューのプロセスにより参照されず、コピーにより生じたページが当該プロセスに参照されるようにメモリ管理情報記憶部を更新し、参照数記憶部において、コピーされたページを参照するプロセスの参照数から１を減算し、コピーにより生じたページを参照するプロセスの参照数として１を記憶させる、
コンピュータシステムに設けられるダンプ装置であって、
障害が発生したプロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算する参照数加算部と、
当該検索された全ページを参照するダミープロセスを生成するダミープロセス生成部と、
当該検索されたページが当該ダミープロセスに参照されるようにメモリ管理情報記憶部を更新するメモリ管理情報更新部と、
ダミープロセスを検索し、検索されたダミープロセスにより参照されるページをメモリ管理情報記憶部で検索し、検索された全ページをダンプしてなるコアファイルを生成するメモリダンプ部と
を備えることを特徴とするダンプ装置。
【請求項５】
互いに関連して動作する複数のプロセスを示すプロセスリストが記憶されるプロセスリスト記憶部を備え、
参照数加算部は、障害が発生したプロセスを示すプロセスリストがプロセスリスト記憶部に存在する場合、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算し、
ダミープロセス生成部は、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、当該検索された全ページを参照するダミープロセスを生成し、
メモリ管理情報更新部は、当該各ダミープロセスにつき、当該ダミープロセスの基となったプロセスにつきメモリ管理情報記憶部で検索されたページが当該ダミープロセスにより参照されるようにメモリ管理情報記憶部を更新する
ことを特徴とする請求項４記載のダンプ装置。
【請求項６】
参照数の加算に先立ち、プロセスリストに示された、障害が発生したプロセス以外のプロセスの記憶内容をランキューから退避させ、参照数の加算後に、当該プロセスの記憶内容をランキューに戻す
ことを特徴とする請求項５記載のダンプ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいてメモリ領域をダンプするダンプ方法およびダンプ装置に関するものである。
【背景技術】
【０００２】
コンピュータシステムでは、障害が発生したプロセスは一旦動作を停止し、その間において、そのプロセスにより参照されるメモリ領域をダンプしてなるコアファイルが生成される。コアファイルは、後にデバッグツールなどで解析され、障害の原因究明がなされる。
【非特許文献１】UNIX(登録商標）manpages:core(4）、［online］、［２００６年７月５日検索］、インターネット<http://mirrors.ccs.neu.edu/cgi-bin/unix(登録商標）help/man-cgi?4+gcore>
【非特許文献２】TechnicalReference:BaseOperatingSystemandExtensions,Volume1、［online］、［２００６年７月５日検索］、インターネット<http://publib16.boulder.ibm.com/pseries/en.US/libs/basetrfl/coredump,htm>
【非特許文献３】UNIX(登録商標）manpages:gcore(1）、［online］、［２００６年７月５日検索］、インターネット<http://mirrors.ccs.neu.edu/cgi-bin/unixhelp/man-cgi?1+gcore>
【発明の開示】
【発明が解決しようとする課題】
【０００３】
コアファイルの生成には長時間を要することが多いので、プロセスの再開後になされる復旧処理等の開始が遅れてしまうという問題がある。
【０００４】
また、障害が発生したプロセスに関連して動作するプロセスにより参照されるメモリ領域に障害の一因があった場合であっても、このメモリ領域からはコアファイルは生成されないので、障害の原因究明が困難となる場合がある。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、障害時のプロセスについてのコアファイルを生成できるようにした上で、そのプロセスの停止時間を短縮することを目的とする。また、好ましくは、さらに、関連して動作するプロセスについてのコアファイルを生成して、障害の原因究明を容易にすることを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、請求項１の本発明は、プロセスに参照されるページが構成されるメモリ部と、どのプロセスにどのページが参照されるかが記憶されるメモリ管理情報記憶部と、ページを参照するプロセスの数である参照数が記憶される参照数記憶部と、プロセスを動作の順に示すランキューとを備え、プロセスが、ランキューにおける当該プロセスの記憶箇所に対応するタイミングが到来した際に実行権を与えられて動作を行い、当該動作でページを書き換えようとする場合、参照数記憶部において、当該ページを参照するプロセスの参照数＝１か否かを判定し、参照数＝１の場合は、ページを書き換え、一方、参照数＝１でない場合は、当該ページをコピーし、コピーにより生じたページを書き換え、コピーされたページが当該キューのプロセスにより参照されず、コピーにより生じたページが当該プロセスに参照されるようにメモリ管理情報記憶部を更新し、参照数記憶部において、コピーされたページを参照するプロセスの参照数から１を減算し、コピーにより生じたページを参照するプロセスの参照数として１を記憶させる、コンピュータシステムに設けられるダンプ装置が行うダンプ方法であって、ダンプ装置の参照数加算部が、障害が発生したプロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算し、ダンプ装置のダミープロセス生成部が、当該検索された全ページを参照するダミープロセスを生成し、ダンプ装置のメモリ管理情報更新部が、当該検索されたページが当該ダミープロセスに参照されるようにメモリ管理情報記憶部を更新し、ダンプ装置のメモリダンプ部が、ダミープロセスを検索し、検索されたダミープロセスにより参照されるページをメモリ管理情報記憶部で検索し、検索された全ページをダンプしてなるコアファイルを生成することを特徴とするダンプ方法をもって解決手段とする。
【０００７】
請求項２の本発明は、ダンプ装置が、互いに関連して動作する複数のプロセスを示すプロセスリストが記憶されるプロセスリスト記憶部を備え、参照数加算部は、障害が発生したプロセスを示すプロセスリストがプロセスリスト記憶部に存在する場合、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算し、ダミープロセス生成部は、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、当該検索された全ページを参照するダミープロセスを生成し、メモリ管理情報更新部は、当該各ダミープロセスにつき、当該ダミープロセスの基となったプロセスにつきメモリ管理情報記憶部で検索されたページが当該ダミープロセスにより参照されるようにメモリ管理情報記憶部を更新することを特徴とする請求項１記載のダンプ方法をもって解決手段とする。
【０００８】
請求項３の本発明は、参照数の加算に先立ち、プロセスリストに示された、障害が発生したプロセス以外のプロセスの記憶内容をランキューから退避させ、参照数の加算後に、当該プロセスの記憶内容をランキューに戻すことを特徴とする請求項２記載のダンプ方法をもって解決手段とする。
【０００９】
請求項４の本発明は、プロセスに参照されるページが構成されるメモリ部と、どのプロセスにどのページが参照されるかが記憶されるメモリ管理情報記憶部と、ページを参照するプロセスの数である参照数が記憶される参照数記憶部と、プロセスを動作の順に示すランキューとを備え、プロセスが、ランキューにおける当該プロセスの記憶箇所に対応するタイミングが到来した際に実行権を与えられて動作を行い、当該動作でページを書き換えようとする場合、参照数記憶部において、当該ページを参照するプロセスの参照数＝１か否かを判定し、参照数＝１の場合は、ページを書き換え、一方、参照数＝１でない場合は、当該ページをコピーし、コピーにより生じたページを書き換え、コピーされたページが当該キューのプロセスにより参照されず、コピーにより生じたページが当該プロセスに参照されるようにメモリ管理情報記憶部を更新し、参照数記憶部において、コピーされたページを参照するプロセスの参照数から１を減算し、コピーにより生じたページを参照するプロセスの参照数として１を記憶させる、コンピュータシステムに設けられるダンプ装置であって、障害が発生したプロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算する参照数加算部と、当該検索された全ページを参照するダミープロセスを生成するダミープロセス生成部と、当該検索されたページが当該ダミープロセスに参照されるようにメモリ管理情報記憶部を更新するメモリ管理情報更新部と、ダミープロセスを検索し、検索されたダミープロセスにより参照されるページをメモリ管理情報記憶部で検索し、検索された全ページをダンプしてなるコアファイルを生成するメモリダンプ部とを備えることを特徴とするダンプ装置をもって解決手段とする。
【００１０】
請求項５の本発明は、互いに関連して動作する複数のプロセスを示すプロセスリストが記憶されるプロセスリスト記憶部を備え、参照数加算部は、障害が発生したプロセスを示すプロセスリストがプロセスリスト記憶部に存在する場合、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、参照数記憶部において、当該検索された全ページの参照数に１を加算し、ダミープロセス生成部は、当該プロセスリストに示された各プロセスにつき、当該プロセスにより参照されるページをメモリ管理情報記憶部で検索し、当該検索された全ページを参照するダミープロセスを生成し、メモリ管理情報更新部は、当該各ダミープロセスにつき、当該ダミープロセスの基となったプロセスにつきメモリ管理情報記憶部で検索されたページが当該ダミープロセスにより参照されるようにメモリ管理情報記憶部を更新することを特徴とする請求項４記載のダンプ装置をもって解決手段とする。
【００１１】
請求項６の本発明は、参照数の加算に先立ち、プロセスリストに示された、障害が発生したプロセス以外のプロセスの記憶内容をランキューから退避させ、参照数の加算後に、当該プロセスの記憶内容をランキューに戻すことを特徴とする請求項５記載のダンプ装置をもって解決手段とする。
【発明の効果】
【００１２】
本発明によれば、障害が発生したプロセスの動作が停止してから再開するまでの間に、当該プロセスにより参照されるページの参照数に１を加算するだけなので、停止時間を短縮することができ、また、当該ページを参照するダミープロセスを生成し、当該ページが当該ダミープロセスに参照されることを記憶するようにしたので、障害時のプロセスについてのコアファイルを生成することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明のダンプ方法およびダンプ装置に係る実施の形態を図面を参照して説明する。説明には例を用いるが、便宜上、例の数は実際のものより少なくて、しかも理解しやすい数にする。
【００１４】
図１は、本発明の実施の形態に係るコンピュータシステム１の構成図である。
【００１５】
コンピュータシステム１は、プロセスＡ、Ｂ、…、Ｚが動作するコンピュータシステムであり、プロセスにより参照されるデータが記憶されるメモリ部１０１を備える。メモリ部１０１は、複数のメモリ領域（ページという）から構成されている。また、コンピュータシステム１は、プロセスを動作させかつ障害時におけるメモリ部１０１の内容をダンプすべく、メモリ管理情報記憶部１０２、参照数記憶部１０３、ランキュー１０４、スケジューラ１０６、プロセスリスト生成部１０７、プロセスリスト記憶部１０８、インタフェース１０９、障害発生時制御部１１０、参照数加算部１１１、ダミープロセス生成部１１２、メモリ管理情報更新部１１３、メモリダンプ部１１４を備える。なお、コンピュータシステム１では、障害発生時制御部１１０、参照数加算部１１１、ダミープロセス生成部１１２、メモリ管理情報更新部１１３を主な要素として、ダンプ装置が構成される。
【００１６】
メモリ管理情報記憶部１０２は、どのページがどのプロセスに参照されるかが記憶されるものである。
【００１７】
参照数記憶部１０３は、各ページにつき、そのページを参照するプロセスの数（参照数）が記憶されるものである。
【００１８】
ランキュー１０４は、記憶手段であり、例えば、プロセスＡが動作（例えば、以下に説明するページ操作）を行い、次にプロセスＢが動作を行い、次に再びプロセスＡが動作を行う場合、ある記憶箇所にプロセスＡの名前などが記憶され、その次の記憶箇所にプロセスＢの名前などが記憶され、その次の記憶箇所にプロセスＡの名前などが記憶される。つまり、ランキュー１０４は、プロセスを動作の順で示すもの（リスト）である。
【００１９】
プロセスは、ランキュー１０４において、当該プロセスの名前などの記憶箇所に対応するタイミングが到来した際に実行権を与えられて動作を行い、そのとき、ページ操作に関しては、いわゆるコピーオンライト方式を行う。つまり、ページを書き換えようとする場合、参照数記憶部１０３において、当該ページを参照するプロセスの参照数＝１か否かを判定し、参照数＝１の場合は、ページを書き換え、一方、参照数＝１でない場合は、当該ページをコピーし、コピーにより生じたページを書き換え、コピーされたページが当該キューのプロセスにより参照されず、コピーにより生じたページが当該プロセスに参照されるようにメモリ管理情報記憶部１０２を更新し、参照数記憶部１０３において、コピーされたページを参照するプロセスの参照数から１を減算し、コピーにより生じたページを参照するプロセスの参照数として１を記憶させるようになっている。
【００２０】
コピーオンライト方式については、http://opentechpress.jp/kernel/internal24/node186.shtmlのホームページに詳細が記載されている。
【００２１】
スケジューラ１０６は、通知されたプロセスの名前などをランキュー１０４から退避させ、戻すように通知されたら、その名前などを戻すようになっている。
【００２２】
コンピュータシステム１では、プロセスＡ、Ｂは互いに関連して動作する。つまり、例えば、プロセスＡが行った処理結果をプロセスＢが利用するのである。
【００２３】
プロセスリスト生成部１０７は、このように互いに関連して動作するプロセスを示すプロセスリストを生成するようになっている。図２は、プロセスリストを例示した図である。例えば、プロセスリストは、互いに関連して動作するプロセスをまとめて示す関連グループＩＤに各プロセスのプロセス名を対応づけたものである。
【００２４】
図１に戻り、プロセスリスト記憶部１０８は、生成されたプロセスリストが記憶されるものである。
【００２５】
インタフェース１０９は、障害が発生したプロセスとのやりとりを行うようになっている。
【００２６】
障害発生時制御部１１０は、プロセスに障害が発生した時の制御を行うようになっている。
【００２７】
参照数加算部１１１は、参照数記憶部１０３において、障害が発生したプロセスに参照されるページなどの参照数について加算を行うようになっている。
【００２８】
ダミープロセス生成部１１２は、障害が発生したプロセスにより参照されるページを参照するダミープロセス（動作しないプロセス）を生成するようになっている。
【００２９】
メモリ管理情報更新部１１３は、ダミープロセスの基となったプロセスに参照されるページがこのダミープロセスに参照されるようにメモリ管理情報記憶部１０２を更新するようになっている。
【００３０】
メモリダンプ部１１４は、ダミープロセスを検索し、検索されたダミープロセスに参照されるページをダンプするようになっている。
【００３１】
コアファイル記憶部１１５は、ダンプにより生成されたコアファイルが記憶されるものであり、ディスク装置などに構成されている。
【００３２】
なお、ランキュー１０４とスケジューラ１０６については、http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-5.html#ss5.3のホームページに詳細が記載されている。
【００３３】
（本実施の形態の動作）
次に、コンピュータシステム１の動作前に行われることを説明する。
【００３４】
コンピュータシステム１のオペレータが、例えば、プロセス設計者からの情報を基に、プロセスＡ、Ｂが互いに関連して動作することを示す操作をコンピュータシステム１に対して行うと、プロセスリスト生成部１０７は、そのことを示すプロセスリストＬを生成し、このプロセスリストＬをプロセスリスト記憶部１０８に記憶させる。なお、プロセスリスト生成部１０７は、オペレータの操作により、プロセスリストの内容変更や削除なども行う。
【００３５】
次に、図３を参照しながら、コンピュータシステム１の動作を説明する。
【００３６】
コンピュータシステム１が起動されると、プロセスＡ、Ｂ、…、Ｚが動作を開始する（ステップＳ１）。このとき、プロセスＡ、Ｂは互いに関連して動作する。ランキュー１０４では、各プロセスが動作の順で記憶される。
【００３７】
ここで、メモリ部は、以下のようになっていることとする。
【００３８】
ページＰ１０１は、プロセスＡ、Ｘ、Ｚにより参照される。ページＰ１０２は、プロセスＡ、Ｘにより参照される。ページＰ２０１は、プロセスＢ、Ｔ、Ｓにより参照される。ページＰ２０２は、プロセスＢ、Ｔにより参照される。ページＰ３０１は、プロセスＸにより参照される。
【００３９】
これにより、参照数記憶部１０３は、ページＰ１０１につき、参照数１０１Ｎ＝３を記憶し、ページＰ１０２につき、参照数１０２Ｎ＝２を記憶し、ページＰ２０１につき、参照数２０１Ｎ＝３を記憶し、ページＰ２０２につき、参照数２０２Ｎ＝２を記憶し、ページＰ３０１につき、参照数３０１Ｎ＝１を記憶していることとする。
【００４０】
例えば、プロセスＸが、ランキュー１０４におけるプロセスＸの名前などの記憶箇所に対応するタイミングが到来した際に動作を行う。
【００４１】
プロセスＸは、例えば、ページＰ１０２を書き換えようとする場合、参照数１０２Ｎ＝１か否かを判定し、ここでは参照数１０２Ｎ＝２であり、１ではないので、そのページをコピーし、そのコピー（ページ）を書き換え、プロセスＸによってそのコピー（ページ）が参照され、プロセスＸによってページＰ１０２が参照されないようにメモリ管理情報記憶部１０２を更新する。そして、プロセスＸは、参照数１０２Ｎから１を減算して１とし、また、コピー（ページ）の参照数として１を参照数記憶部１０３に記憶させる。
【００４２】
一方、プロセスＸは、ページＰ３０１を書き換えようとする場合は、参照数３０１Ｎ＝１か否かを判定し、ここでは参照数３０１Ｎ＝１なので、そのページを書き換える。そして、プロセスＸは、メモリ管理情報記憶部１０２の更新、参照数３０１Ｎからの減算はせず、参照数３０１Ｎを１のままとする。
【００４３】
さて、プロセスＡに障害が発生したこととする。このとき、障害のシグナルがプロセスＡに送信され、プロセスＡは、障害の発生をインタフェース１０９に通知する（ステップＳ２）。なお、プロセスＡは、インタフェース１０９を通じて制御が戻るのを待機し、他の動作は停止させる。
【００４４】
プロセスＡからの通知によりインタフェース１０９は、通知元のプロセスＡで障害が発生したことを障害発生時制御部１１０に通知する。
【００４５】
インタフェース１０９からの通知により障害発生時制御部１１０は、プロセスリスト記憶部１０８において、通知されたプロセスＡを示すプロセスリストが存在するか否かを判定する（ステップＳ３）。ここで、存在する場合は、障害発生時制御部１１０は、そのプロセスリストに示された他のプロセスをスケジューラ１０６に通知する（ステップＳ４）。
【００４６】
ここでは、通知されたプロセスＡを示すプロセスリストＬが存在するので、障害発生時制御部１１０は、そのプロセスリストＬに示された、プロセスＡ以外のプロセスＢをスケジューラ１０６に通知する。
【００４７】
障害発生時制御部１１０からの通知によりスケジューラ１０６は、通知されたプロセスＢの名前などをランキュー１０４から別な場所に退避させる。これにより、プロセスＢは処理を一旦停止する。
【００４８】
ステップＳ３で存在しないと判定された場合、または、ステップＳ４の後においては、障害発生時制御部１１０は、プロセスリストＬに示されたプロセスＡ、Ｂを参照数加算部１１１とダミープロセス生成部１１２に通知する（ステップＳ５）。
【００４９】
障害発生時制御部１１０からの通知により参照数加算部１１１は、通知されたプロセスＡ、Ｂにより参照されるページをメモリ管理情報記憶部１０２で検索し、まず、検索されたページＰ１０１について、参照数記憶部１０３に記憶された参照数１０１Ｎに１を加算し、これにより、参照数１０１Ｎ＝４となる。また、参照数加算部１１１は、検索されたページＰ１０２について、参照数記憶部１０３に記憶された参照数１０２Ｎに１を加算し、これにより、参照数１０２Ｎ＝２となる。また、参照数加算部１１１は、検索されたページＰ２０１について、参照数記憶部１０３に記憶された参照数２０１Ｎに１を加算し、これにより、参照数２０１Ｎ＝４となる。また、参照数加算部１１１は、検索されたページＰ２０２について、参照数記憶部１０３に記憶された参照数２０２Ｎに１を加算し、これにより、参照数２０２Ｎ＝３となる。
【００５０】
障害発生時制御部１１０からの通知によりダミープロセス生成部１１２は、まず、通知されたプロセスＡにより参照されるページをメモリ管理情報記憶部１０２で検索し、検索されたページＰ１０１、Ｐ１０２を参照するダミープロセスＡ’を生成する。また、ダミープロセス生成部１１２は、ページＰ１０１、Ｐ１０２がダミープロセスＡ’に参照されることをメモリ管理情報更新部１１３に通知する。
【００５１】
また、ダミープロセス生成部１１２は、通知されたプロセスＢにより参照されるページをメモリ管理情報記憶部１０２で検索し、検索されたページＰ２０１、Ｐ２０２を参照するダミープロセスＢ’を生成する。また、ダミープロセス生成部１１２は、ページＰ２０１、Ｐ２０２がダミープロセスＢ’に参照されることをメモリ管理情報更新部１１３に通知する。
【００５２】
ダミープロセス生成部１１２からの通知によりメモリ管理情報更新部１１３は、まず、通知されたページＰ１０１、Ｐ１０２が、通知されたダミープロセスＡ’に参照されるようにメモリ管理情報記憶部１０２を更新する。
【００５３】
また、メモリ管理情報更新部１１３は、通知されたページＰ２０１、Ｐ２０２が、通知されたダミープロセスＢ’に参照されるようにメモリ管理情報記憶部１０２を更新する。
【００５４】
このような参照数の加算、ダミープロセスの生成、メモリ管理情報記憶部１０２の更新は、コアファイルの生成と違って、短時間で行うことが可能であり、その後、障害発生時制御部１１０が、スケジューラ１０６に対し、プロセスＢの名前などを戻すように通知し、スケジューラ１０６は、プロセスＢの名前などをランキュー１０４に戻すのだが、この戻す時間を合わせても短時間で行うことが可能である。よって、ステップＳ５の後、障害発生時制御部１１０が、インタフェース１０９を通じて、プロセスＡに制御を戻す（ステップＳ６）のだが、この時には、全てが終了していることとなる。
【００５５】
なお、制御を戻されたプロセスＡは処理を再開し、例えば、障害の復旧処理を行う。
【００５６】
その後、プロセスＡは、ランキュー１０４におけるプロセスＡの名前などの記憶箇所に対応するタイミングが到来した際に動作を行う。
【００５７】
その際、プロセスＡは、ページＰ１０２を書き換えようとする場合、そのページをコピーし、そのコピー（ページ）を書き換え、プロセスＡによってそのコピー（ページ）が参照され、プロセスＡによってページＰ１０２が参照されないように、メモリ管理情報記憶部１０２を更新する。そして、プロセスＡは、参照数１０２Ｎから１を減算して１とし、また、コピー（ページ）の参照数として１を参照数記憶部１０３に記憶させる。
【００５８】
参照数１０２Ｎが１であるということは、ページＰ１０２が１つのプロセスに参照されることを示している。このプロセスはダミープロセスＡ’であり、動作しないので、ページＰ１０２が書き換えられることはない。つまり、プロセスＡに障害が発生した時のページＰ１０２が実質的に保存されていることになる。
【００５９】
次に、図４を参照しながら、メモリダンプ部１１４の動作を説明する。メモリダンプ部１１４は、図２の動作とは非同期で動作する。
【００６０】
メモリダンプ部１１４は、ダミープロセスにより参照されるページをダンプしてなるコアファイルを生成するのだが、まず、コアファイルが生成されていないダミープロセスを検索する（ステップＳ１１）。該当のダミープロセスがあった場合は、その１つのダミープロセスにより参照されるページをメモリ管理情報記憶部１０２で検索し、検索されたページをダンプしてなるコアファイルを生成し、そのコアファイルをコアファイル記憶部１１５に記憶させ（ステップＳ１２）、ステップＳ１１に戻る。一方、該当のダミープロセスがなかった場合は、処理を終了させる。なお、図４の処理は、時間間隔をあけて、繰り返し行われる。
【００６１】
例えば、ダミープロセスＡ’、Ｂ’によりコアファイルが生成されていない場合は、ステップＳ１１でＹＥＳと判定され、ステップＳ１２では、例えば、メモリダンプ部１１４は、ダミープロセスＡ’により参照されるページをメモリ管理情報記憶部１０２で検索し、検索されたページＰ１０１、Ｐ１０２をダンプしてなるコアファイルＣＡを生成し、そのコアファイルＣＡをコアファイル記憶部１１５に記憶させる。
【００６２】
そして、その後のステップＳ１１でもＹＥＳと判定され、ステップＳ１２では、メモリダンプ部１１４は、ダミープロセスＢ’により参照されるページをメモリ管理情報記憶部１０２で検索し、検索されたページＰ２０１、Ｐ２０２をダンプしてなるコアファイルＣＢを生成し、そのコアファイルＣＢをコアファイル記憶部１１５に記憶させる。
【００６３】
以上のように、本実施の形態によれば、障害が発生したプロセスにより参照されるページの参照数に１を加算するだけなので、停止時間を短縮することができ、また、当該ページを参照するダミープロセスを生成し、当該ページが当該ダミープロセスに参照されることを記憶するようにしたので、障害時のプロセスについてのコアファイルを生成することができる。
【００６４】
また、障害が発生したプロセスに関連して動作するプロセスについてのコアファイルも生成されるようにしたので、障害の原因究明を容易にすることができる。
【００６５】
また、本実施の形態では、障害が発生したプロセスに関連して動作するプロセスのキューを一時的に退避するようにした。仮に、そのキューが実行された場合は、当該プロセスに参照されるページが書き換えられ、障害の原因究明が困難になることがあるが、本実施の形態では、そのような不都合を防止することができる。
【００６６】
なお、本実施の形態では、障害が発生したプロセスに制御を戻したが、これを行わないで、そのプロセスを終了させてもよい。
【００６７】
なお、上記のダンプ方法を実行させるコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納し、陳列などして流通させたり、当該コンピュータプログラムをインターネットなどの通信網を介して伝送させてもよい。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態に係るコンピュータシステム１の構成図である。
【図２】プロセスリストを例示した図である。
【図３】コンピュータシステム１におけるフローチャートである。
【図４】メモリダンプ部１１４におけるフローチャートである。
【符号の説明】
【００６９】
１  コンピュータシステム
１０１  メモリ部
１０２  メモリ管理情報記憶部
１０３  参照数記憶部
１０４  ランキュー
１０６  スケジューラ
１０７  プロセスリスト生成部
１０８  プロセスリスト記憶部
１０９  インタフェース
１１０  障害発生時制御部
１１１  参照数加算部
１１２  ダミープロセス生成部
１１３  メモリ管理情報更新部
１１４  メモリダンプ部
１１５  コアファイル記憶部
１０１Ｎ、１０２Ｎ、２０１Ｎ、２０２Ｎ、３０１Ｎ  参照数
Ａ、Ｂ、…、Ｘ  プロセス
Ａ’、Ｂ’  ダミープロセス
ＣＡ、ＣＢ  コアファイル
Ｌ  プロセスリスト
Ｐ１０１、Ｐ１０２、Ｐ２０１、Ｐ２０２、Ｐ３０１  ページ（メモリ領域）
【図１】
2008027232.tif 000003
【図２】
2008027232.tif 000004
【図３】
2008027232.tif 000005
【図４】
2008027232.tif 000006