(57)【要約】  情報処理装置（１００）は、プロセス（１２０）の動作内容を参照してプロセス（１２０）の動作状況を監視するカーネル（１１０）からのシグナルのうち、強制終了シグナルを検出すると、この強制終了シグナル検出時にカーネル（１１０）が参照したプロセス（１２０）の動作内容に関する情報を取得しシグナル情報（１３１）としてメモリ（１３０）に蓄積する。蓄積されたシグナル情報（１３１）は、強制終了原因の検証時に参照される。また、情報処理装置（１００）は、強制終了されたプロセスに対する問い合わせを受け付けると、問い合わせを受け付けたプロセス（１２０）の動作内容に関する情報をメモリ（１３０）から検索して出力することもできる。
2009104274.tif 000002
【特許請求の範囲】
【請求項１】
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出する検出手段と、
前記プロセスのうち、前記検出手段による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得手段と、
前記取得手段によって取得された情報をメモリに蓄積する蓄積手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ手段と、
前記問い合わせ手段によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索手段と、
前記検索手段によって検索された情報を出力する出力手段と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検出手段によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成手段を備え、
前記生成手段は、前記取得手段によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記取得手段は、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記出力手段は、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記出力手段は、前記問い合わせ手段が、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索手段によって検索された情報を所定のアドレスに宛てに送信することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援方法であって、
前記強制終了シグナルを検出する検出工程と、
前記プロセスのうち、前記検出工程による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得工程と、
前記取得工程によって取得された情報をメモリに蓄積する蓄積工程と、
を含むことを特徴とするプロセス検証支援方法。
【請求項８】
前記強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ工程と、
前記問い合わせ工程によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索工程と、
前記検索工程によって検索された情報を出力する出力工程と、
をさらに含むことを特徴とする請求項７に記載のプロセス検証支援方法。
【請求項９】
前記検出工程によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成工程を含み、
前記生成工程では、前記取得工程によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする請求項７に記載のプロセス検証支援方法。
【請求項１０】
前記取得工程では、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする請求項７に記載のプロセス検証支援方法。
【請求項１１】
前記出力工程では、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする請求項８に記載のプロセス検証支援方法。
【請求項１２】
前記出力工程では、前記問い合わせ工程によって前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索工程によって検索された情報を所定のアドレスに宛てに送信することを特徴とする請求項８に記載のプロセス検証支援方法。
【請求項１３】
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援プログラムであって、
前記コンピュータを、
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出する検出手段、
前記プロセスのうち、前記検出手段による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得手段、
前記取得手段によって取得された情報をメモリに蓄積する蓄積手段、
として機能させることを特徴とするプロセス検証支援プログラム。
【請求項１４】
前記コンピュータを、
前記強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ手段、
前記問い合わせ手段によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索手段、
前記検索手段によって検索された情報を出力する出力手段、
として機能させることを特徴とする請求項１３に記載のプロセス検証支援プログラム。
【請求項１５】
前記コンピュータを、
前記検出手段によって、強制終了シグナルが検出されると、前記強制終了シグナル検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成手段として機能させ、
前記生成手段は、前記取得手段によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする請求項１３に記載のプロセス検証支援プログラム。
【請求項１６】
前記取得手段は、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする請求項１３に記載のプロセス検証支援プログラム。
【請求項１７】
前記出力手段は、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする請求項１４に記載のプロセス検証支援プログラム。
【請求項１８】
前記出力手段は、前記問い合わせ手段が、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索手段によって検索された情報を所定のアドレスに宛てに送信することを特徴とする請求項１４に記載のプロセス検証支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスの強制終了機能を備えたカーネルが搭載された情報処理装置と、プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援方法およびプロセス検証支援プログラムに関するものである。
【背景技術】
【０００２】
従来より、情報処理装置によってユーザの用意したアプリケーション（以下、「ユーザアプリケーション」という）を実行させるには、カーネルなど基本的なＯＳ（オペレーティングシステム）の処理機能を含んだソフトウェアを搭載しなければならない。カーネルには、主たる機能として、ユーザアプリケーションや周辺機器の監視、ディスクやメモリなどの資源の管理、割り込み処理、プロセス間通信などの各種機能を備えている。【０００３】
一般的に上述のような情報処理装置において実行させる所定の処理群をプロセスといい、カーネルからの制御によって複数のプロセスを連続して実行させたり、並列に実行させる。また、プロセス実行時には、カーネルによって常に処理内容が監視されており、割り込み処理やエラー発生など、所定の事象が発生すると、カーネルによって実行中のプロセスが強制終了させられることがある。【０００４】
ここで、図１０および図１１を用いて強制終了について説明する。図１０は、カーネルによる強制終了シグナルの送信プロセスの手順を示すフローチャートである。また、図１１は、アプリケーションによる強制終了シグナルの受信プロセスの手順を示すフローチャートである。【０００５】
図１０のフローチャートにおいて、まず、カーネルは、強制終了の原因となる事象が発生したか否かを判断する（ステップＳ１００１）。ここで、強制終了の原因となる事象が発生するまで待ち（ステップＳ１００１：Ｎｏのループ）、原因となる事象が発生すると（ステップＳ１００１：Ｙｅｓ）、強制終了シグナルの送信プロセスを実行し（ステップＳ１００２）、シグナル送信処理が実行され（ステップＳ１００３）、カーネルの処理は終了する。【０００６】
一方、アプリケーションでは、カーネルからのシグナルが配達されたか否かを判断する（ステップＳ１１０１）。ここでも、シグナルが配達されるまで待ち（ステップＳ１１０１：Ｎｏのループ）、シグナルが配達されると（ステップＳ１１０１：Ｙｅｓ）、シグナル受信処理が実行され（ステップＳ１１０２）、受信プロセスを実行する（ステップＳ１１０３）。なお、ステップＳ１１０３によって実行される受信プロセスは、強制終了に関するプロセスとなる。以上のような手順を経て、アプリケーションの処理は終了する（たとえば、下記特許文献１参照。）。【０００７】
【特許文献１】特許第２８３６６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図１０および図１１にて説明したように、強制終了シグナルの送信はカーネルを経由しておこなわれるが、シグナル送信者（ここでは、カーネル）の情報は、シグナル受信者（ここでは、アプリケーション）のプロセスには伝わらない。また、シグナルを受信したプロセスの実行者（ここでは、情報処理装置のユーザ）は、受信したシグナルの送信者の情報を探し出す手段を備えていない。【０００９】
たとえば、ＵＮＩＸ系の代表的なＯＳであるＳｏｌａｒｉｓ（ソラリス）の場合、シグナル送信処理の際に、シグナル受信処理へ渡されるのは、受信するプロセスのポインタ情報、受信するカーネル・スレッドのポインタ情報、シグナル番号情報およびシグナルの発生源がユーザかカーネルかを示すフラグ情報の以上４つの情報のみである。【００１０】
Ｓｏｌａｒｉｓでは、シグナルの送信者の情報を採取する手段として、上述した図１０のシグナル送信プロセス（ステップＳ１００３）において、Ａｕｄｉｔ（監査）、ＤＴｒａｃｅ（動的トレース）を搭載することができる。しかしながら、上記の２つの機能は、問題が発生した後に、同じ問題が再現することを期待して仕掛けておく機能である。したがって、同じ問題が再現されなければ調査のための情報を採取することはできず、また、仕掛ける作業にもスキルが要求されるという問題があった。【００１１】
さらに、Ａｕｄｉｔ、ＤＴｒａｃｅを搭載する場合、システムのパフォーマンスへの影響を考慮しなければならない。特に、Ａｕｄｉｔは指定されたポインタのあらゆる情報を取得するため、システムへの負荷が大きくなる可能性が高い。また、Ａｕｄｉｔ、ＤＴｒａｃｅによって採取できる情報は、システム全体の情報として管理者の手によって採取される情報であり、強制終了させられたプロセスの実行者である一ユーザが取得したとしても容易に強制終了の原因を調査できるような情報ではなく、通常のユーザには強制終了の原因を特定することは困難であった。【００１２】
上述のような実情に反して、受信プロセスが予期しないシグナルを受信して強制終了させられたためその原因であるシグナルの送信元を調べたいという事例は多い。しかしながら、シグナルの送信者の情報がないために原因の調査ができない。現状のところ、ユーザが取り得る対策としては、Ａｕｄｉｔの設定をして問題が再現するのを待つのみであり、結果として、原因不明となることがほとんどであるという問題があった。【００１３】
この発明は、上述した従来技術による問題点を解消するため、強制終了が発生した場合に、ユーザのスキルを問わずに効率的に強制終了の原因を特定することのできる情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出し、前記プロセスのうち、強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得し、当該取得された情報をメモリに蓄積することを要件とする。【００１５】
この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムによれば、カーネルからの強制終了シグナルが検出された際にカーネルが参照したプロセスの動作内容に関する情報を取得し、メモリに蓄積される。ここで蓄積された情報は、カーネルによる強制終了シグナル出力の原因となったプロセスの動作内容に関する情報である。したがって、メモリに蓄積された情報からプロセス検証が可能となる。【００１６】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する機能を備え、このとき、前記取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成してもよい。【００１７】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにコアファイルを生成する機能が備わっているような場合には、この生成されたコアファイルにプロセス検証に利用するプロセスの動作に関する情報を含ませることができる。【００１８】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにおいて、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得してもよい。【００１９】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、強制終了シグナルの検出をトリガに、プロセス検証に利用する情報を効率的に取得することができる。【００２０】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、さらに、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索し、当該検索された情報を出力することを要件としてもよい。【００２１】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、特定のプロセスの実行時に発生した強制終了の原因を特定するための情報をメモリから出力し、ユーザに提供することができる。【００２２】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにおいて、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力するようにしてもよい。【００２３】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、メモリに蓄積された情報を形式のファイルに加工するため、強制終了の原因を特定するためのプロセス検証をおこないやすい情報をユーザに提供することができる。【００２４】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにおいて、強制終了されたプロセスに対する問い合わせを受け付けると、前記検索された情報を所定のアドレスに宛てに送信するようにしてもよい。【００２５】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、問い合わせを受けて検出された情報を、所望の機器や端末に出力することができる。
【発明の効果】
【００２６】
この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムによれば、強制終了が発生した場合に、ユーザのスキルを問わずに効率的に強制終了の原因を特定することができるという効果を奏する。
【図面の簡単な説明】
【００２７】
【図１】図１は、本実施の形態にかかるプロセス検証支援の概要を示す説明図である。
【図２】図２は、本実施の形態にかかる情報処理装置のハードウェア構成の一例を示す説明図である。
【図３】図３は、情報処理装置においてプロセス検証支援をおこなうための機能的構成を示すブロック図である。
【図４】図４は、実施の形態１におけるプロセス検証支援処理の手順を示す説明図である。
【図５】図５は、プロセス情報の構成を示す説明図である。
【図６】図６は、仮想メモリ空間の構成例を示す図表である。
【図７】図７は、シグナル送信履歴保存部の構成を示す説明図である。
【図８】図８は、シグナル送信者情報の出力例を示す説明図である。
【図９】図９は、実施の形態２におけるプロセス検証支援処理の手順を示す説明図である。
【図１０】図１０は、カーネルによる強制終了シグナルの送信プロセスの手順を示すフローチャートである。
【図１１】図１１は、アプリケーションによる強制終了シグナルの受信プロセスの手順を示すフローチャートである。
【符号の説明】
【００２８】
１００、２００  情報処理装置
２１０  コンピュータ本体
２２０  入力装置
２３０  出力装置
３００  プロセス検証支援部
３０１  検出部
３０２  取得部
３０３  蓄積部
３０４  メモリ
３０５  問い合わせ部
３０６  検索部
３０７  出力部
【発明を実施するための最良の形態】
【００２９】
以下に添付図面を参照して、この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムの好適な実施の形態を詳細に説明する。【００３０】
（プロセス検証支援の概要）
まず、本実施の形態にかかるプロセス検証支援の概要について説明する。図１は、本実施の形態にかかるプロセス検証支援の概要を示す説明図である。図１は、情報処理装置１００におけるプロセス実行の一例をあらわしている。情報処理装置１００によってユーザが所望のアプリケーションを実行するには、装置全体を制御するＯＳが必要となる。したがって情報処理装置１００には、ＯＳの機能を担うソフトウェアとしてカーネル１１０が搭載されており、このカーネル１１０によって情報処理装置１００全体が制御され、ユーザが所望するアプリケーション、“ユーザプログラム１２０”を実行させることができる。【００３１】
そして、図１では、ユーザプログラム１２０において、プロセス実行が開始され（ステップＳ１２１）、このプロセスの実行中に強制終了の原因となる事象が発生する（ステップＳ１２２）ものとする。カーネル１１０は、ユーザプログラム１２０によって実行中のプロセスを常に監視している。したがって、実行中のプロセスにおいて強制終了の原因が発生すると（Ｓ１２２）、原因発生を検出することができる。【００３２】
カーネル１１０は、原因発生（Ｓ１２２）の検出をトリガに、実行中のプロセスの強制終了判断を下し（Ｓ１１１）、ユーザプログラム１２０に対して強制終了シグナルを送信する（Ｓ１１２）。【００３３】
一方、ユーザプログラム１２０では、カーネル１１０から送信された強制終了シグナルを受信すると（Ｓ１２３）、実行中のプロセスを強制終了する（Ｓ１２４）。ここまでの処理は、従来の強制終了発生時のカーネル１１０およびユーザプログラム１２０においても同様におこなわれていた。本実施の形態の場合、プロセスの強制終了後、さらに、この強制終了の原因となったプロセスを、ユーザが検証可能となるように支援するための処理に移行する。【００３４】
まず、カーネル１１０は、ステップＳ１１２の強制終了シグナル送信後に、シグナル送信に関する情報（シグナル送信者情報）を記憶するため、メモリ１３０にシグナル送信者情報１３１を保存する（Ｓ１１３）。ユーザプログラム１２０では、強制終了後、ユーザによる強制終了の原因となるプロセスの検証が開始されると、メモリ１３０に保存されているシグナル送信者情報を参照する（Ｓ１２５）。【００３５】
このように、本実施の形態の情報処理装置１００であれば、プロセス実行時に予期しない強制終了シグナルを受信して強制終了させられたような場合であっても、メモリ１３０に保存されたシグナル送信者情報を参照することによって、プロセスの内容を検証することができる。そして、このプロセス検証結果から強制終了の原因を特定することができる。【００３６】
以下、上述した強制終了の原因を特定可能にするための情報処理装置１００の構成と強制終了発生時の動作内容について具体的に説明する。【００３７】
（情報処理装置のハードウェア構成）
まず、本実施の形態にかかる情報処理装置のハードウェア構成について説明する。図２は、本実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。【００３８】
図２において、情報処理装置２００は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ、ＷＡＮやインターネットなどのネットワーク２４０に接続可能である。【００３９】
コンピュータ本体２１０は、ＣＰＵ、メモリ、インターフェースを有する。ＣＰＵは、情報装置２００の全体の制御を司る。メモリは、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク２１１、フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。【００４０】
また、メモリにはカーネルや、アプリケーションなど各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリはコンピュータ本体２１０に対し着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、ネットワーク２４０に対する送受信の制御をおこなう。【００４１】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。なお、スキャナ２２３にＯＣＲ機能を持たせてもよい。【００４２】
また、出力装置２３０としては、ディスプレイ２３１、スピーカ２３２、プリンタ２３３などがある。ディスプレイ２３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。またスピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。【００４３】
（情報処理装置の機能的構成）
つぎに、情報処理装置２００におけるプロセス検証支援処理実行のための機能的構成について説明する。図３は、情報処理装置においてプロセス検証支援をおこなうための機能的構成を示すブロック図である。図３において、情報処理装置２００は、検出部３０１と、取得部３０２と、蓄積部３０３と、メモリ３０４と、問い合わせ部３０５と、検索部３０６と、出力部３０７と、生成部３０８と、を備えている。【００４４】
上述した各機能３０１〜３０８は、カーネル３１０の拡張機能とカーネル３１０に含まれていてもよいし、独立したプログラムとして情報処理装置２００に格納されており、情報処理装置２００によってＯＳとして機能するソフトウェアに適用させてもよい。また、情報処理装置２００の記憶部に記憶された当該機能３０１〜３０７に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。【００４５】
各機能部の説明をすると、まず、検出部３０１は、プロセスの動作内容を参照してプロセスの動作状況を監視するカーネル３１０からのシグナルのうち、強制終了シグナルを検出する。【００４６】
取得部３０２は、実行中のプロセス３２０のうち、検出部３０１による強制終了シグナル検出時にカーネル３１０が参照したプロセス３２０の動作内容に関する情報を取得する。ここで取得される、プロセス３２０の動作内容に関する情報とは、たとえば、プロセス３２０のプロセス番号や送信者情報など複数種類の情報から構成されている。このとき、取得部３０２は、強制終了シグナル検出時にカーネル３１０が参照したプロセス３２０の動作内容に関する情報の中からあらかじめ指定された情報を取得してもよい。取得する情報の種類を限定することにより、メモリ３０４への負荷を軽減するとともに、プロセス検証時に必要な情報を効率よく取得することができる。【００４７】
蓄積部３０３は、取得部３０２によって取得された情報をメモリ３０４に蓄積する。ここで、メモリ３０４は、情報処理装置２００の記録部を利用する。一般的に情報処理装置２００のようにカーネル３１０が搭載されていれば、記録部に専用のカーネルメモリが設定されるため、このカーネルメモリをメモリ３０４として利用してもよい。【００４８】
問い合わせ部３０５は、強制終了されたプロセスに対する問い合わせを受け付ける。このとき、情報処理装置２００によってプロセス３２０を実行させたユーザから直接、入力装置２１０（図２参照）から問い合わせを受け付けてもよいし、情報処理装置２００によって、強制終了されたプロセス検証をおこなうアプリケーションを実行させ、このアプリケーションからの問い合わせを受け付けてもよい。【００４９】
検索部３０６は、問い合わせ部３０５によって問い合わせを受け付けたプロセス３２０の動作内容に関する情報をメモリ３０４から検索する。【００５０】
出力部３０７は、検索部３０６によって検索された情報を出力する。このとき出力部３０７は、メモリ３０４に蓄積された情報をそのまま出力してもよいが、所定の形式のファイルに加工して出力してもよい。また、出力部３０７は、問い合わせ部３０５が、強制終了されたプロセス３２０に対する問い合わせを受け付けると、検索部３０６によって検索された情報を情報処理装置２００のユーザに限らず、ユーザが指定した所定のアドレスに宛てに送信してもよい。【００５１】
生成部３０８は、検出部３０１によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する。具体的には、たとえば、メモリやレジスタの内容を記録した「ｃｏｒｅ」という名称のファイルが生成される。生成部３０８は、このコアファイル生成時に、取得部３０２によって取得されたプロセスの動作内容に関する情報を含んだコアファイルを生成する。【００５２】
なお、この生成部３０８の機能はカーネル３１０にあらかじめ含まれている場合もある。そのような場合には、生成部３０８は、カーネル３１０によって生成されたコアファイルを、プロセスの動作内容に関する情報を含んだコアファイルとして改訂するように動作してもよい。【００５３】
つぎに、上述した構成を備えた情報処理装置２００によってユーザが所望のアプリケーションを実行させ、なんらかの原因によって強制終了されてしまった場合を例に挙げ、強制終了が発生した場合の動作の２つの実施の形態について説明する。実施の形態１では、生成部３０８の機能部を備えていない、もしくは生成部３０８が機能せず、コアファイルが生成されなかった場合の情報処理装置２００の動作を説明する。そして、実施の形態２では、生成部３０８の機能部を備え、コアファイルが生成された場合の情報処理装置２００の動作について説明する。【００５４】
（実施の形態１）
まず、実施の形態１では、強制終了が発生した際に、強制終了シグナル送信者の情報を蓄積することによって、強制終了されたプロセスの実行者が強制終了の原因となったプロセスの検証を可能にする。なお、以下の説明では、情報処理装置２００において強制終了シグナルを送信する送信側プロセスの処理と、強制終了シグナルを受信して強制終了される受信側プロセスの処理として、それぞれ説明する。【００５５】
図４は、実施の形態１におけるプロセス検証支援処理の手順を示す説明図である。図４のように、送信側プロセス４１０は、実行中のプロセスに対して強制終了を指示するシグナル（たとえば、シグナル「ｋｉｌｌ」）を送信する機能部の動作手順を示すフローチャートである。また、受信側プロセス４２０は、強制終了の指示を受信し、実行中のプロセスを終了させられた機能部の動作手順を示すフローチャートである。【００５６】
また、本実施の形態では、強制終了に関する情報を蓄積する手順を必要とするため、カーネルメモリ４３０には、従来から用意されていたプロセス情報保存部４３１に加え、あらたに、シグナル送信履歴保存部４３２と、シグナル情報者情報保存部４３３が用意される。【００５７】
図４において、強制終了が発生すると、まず、送信側プロセス４１０では、シグナル送信をおこなう（ステップＳ４１１）。シグナル送信がおこなわれると、このシグナルに関してシグナル送信者情報を収集する（ステップＳ４１２）。【００５８】
このとき、送信側プロセス４１０は、プロセス情報保存部４３１から、シグナル送信プロセスに関する情報を取得する。図５は、プロセス情報の構成を示す説明図である。図５のように、プロセス情報保存部４３１には、プロセス情報が、プロセス構造体５００として保存されている。【００５９】
図５のプロセス構造体５００は、ｖノードの構造体をあらわすｅｘｅｃ５０１、親のプロセス構造体をあらわすｐａｒｅｎｔ５０２、プロセスＩＤ構造体をあらわすｐｉｄ５０３、ユーザ構造体をあらわすｕｓｅｒ５０４などが含まれている。これらの構造体から、それぞれ強制終了時にシグナル送信者のプロセスの内容を検証するための情報を取得する。【００６０】
たとえば、ｅｘｅｃ５０１からは、さらに、ｉノードをあらわすｉ−ｎｏｄｅ５１０からさらに、ディスク上の実行ファイル５１１が取得される。また、ｐａｒｅｎｔ５０２からは、親のプロセス構造体５２０に含まれているｐａｒｅｎｔから、さらに、親の親のプロセス構造体５２１を取得することができる。また、ｐｉｄ５０３からは、送信者の身元をあらわすｐｉｄ５３０（たとえば、送信者ＩＤをあらわす文字列など）が取得される。また、ｕｓｅｒ５０４からは、送信者が送信させたシグナル内容として、ｅｘｅｃ５４０が取得される。このｅｘｅｃ５４０には、コマンド名（たとえば「ｋｉｌｌ」など）、引数が含まれている。【００６１】
また、送信側プロセス４１０のステップＳ４１２では、シグナル送信履歴として、送信側プロセス４１０自身から送信時刻、スタック情報、シグナル種別および受信者の身元に関する情報を取得する。【００６２】
送信時刻は、情報処理装置２００に含まれているＴＯＤ（Ｔｉｍｅ−Ｏｆ−Ｄａｙ：１９７０年１月１日からの秒数を保持するハードウェア）から取得する。このとき、取得した情報は、後で年月日時分秒の形式に変換することもできる。【００６３】
スタック情報は、ユーザプロセス自身の仮想メモリ空間で特定の場所に置かれている。図６は、仮想メモリ空間の構成例を示す図表である。図６のアドレス空間６００のように、スタック情報は、関数の呼び出しごとに、アドレス（メモリ上のどの命令を実行していたか）と引数（パラメータ）とが保存してある。【００６４】
以上説明したように、ステップＳ４１２では、プロセス情報保存部４３０から取得した情報と、送信側プロセス４１０自身から取得した情報をシグナル送信者情報として取得し、シグナル送信履歴保存部４３２に保存する（ステップＳ４１３）。【００６５】
図７は、シグナル送信履歴保存部の構成を示す説明図である。図７のシグナル送信履歴保存部４３２には、シグナル情報から取得したシグナル送信者情報（たとえばシグナルＸＸＸ１〜シグナルＸＸＸＦ）が、サイクリックに記録されている。【００６６】
個々のシグナル送信者情報は、テーブル７００のような構成になっている。これは、シグナル送信時に受信側プロセス４２０においてどのようなプロセスが実行されていたかを検証するための情報によって構成されており、具体的には、下記のような情報を得るためのデータ列によって構成されている。【００６７】
・送信時刻：ＴＯＤ（システム起動からの経過時間）から検証する。
・シグナル種別：シグナル番号から検証する。
・送信者の身元：ＰＩＤ、ｅｘｅｃ文字列から検証する。特に、ＰＩＤは、シグナルを送信したプロセスのプロセス番号であり、ｅｘｅｃ文字列は、“ｋｉｌｌ  ２９９９９”といった、コマンド名＋オプションをあらわす文字列である。
・送信時の状態：スタック情報、プロセスツリー情報から検証する。スタック情報は、ＵＮＩＸのｐｓｔａｃｋコマンドの出力に相当し、具体的には、関数のアドレス＋関数名＋引数＋関数内のオフセットを含む、シグナルを送信したプロセスの処理の流れを知るための情報である。また、プロセスツリー情報は、ＵＮＩＸのｐｔｒｅｅコマンドの出力に相当し、プロセス番号とコマンド名＋オプションの文字列を含む、シグナルを送信したプロセスの親プロセスやさらにその上のプロセスを知るための情報である。
・受信者の身元：ＰＩＤシグナルを受け取るプロセスのプロセス番号から検証する。【００６８】
図４の説明に戻り、上述したような送信者情報からなるシグナル送信履歴を保存すると、シグナル受信者へ通知し（ステップＳ４１４）、一連の処理を終了する。なお、ステップＳ４１４の通知処理も送信側プロセス４１０の一部としてプロセス情報保持部４３１に保存される。【００６９】
一方、受信側プロセス４２０では、まず、プロセス情報保存部４３１を参照して受信シグナルを確認する（ステップＳ４２１）。ここで確認したシグナルから、強制終了指示を受けたか否かを判断する（ステップＳ４２２）。そして、強制終了指示を受け付けた場合には（ステップＳ４２２：Ｙｅｓ）、シグナルに該当するシグナル送信者情報をシグナル送信履歴４３２から検索して取り出す（ステップＳ４２３）。【００７０】
ステップＳ４２３によって、ステップＳ４２１によって確認したシグナルに該当するシグナル送信者情報を取り出すと、このシグナル送信者情報を利用して、ユーザに利用しやすい形式のファイルを作成する（ステップＳ４２４）。ここで作成されたファイルは、プロセス検証の際に参照されるため、シグナル送信者情報保存部４３３に格納される。受信側プロセス４２０では、その後シグナル処理実行し（ステップＳ４２５）、一連の処理を終了する。当然のことながら、このステップＳ４２５の処理も受信側プロセス４２０の一部としてプロセス情報保持部４３１に保存される。【００７１】
図８は、シグナル送信者情報の出力例を示す説明図である。図８のテキストデータ８００は、ステップＳ４２４によって作成されたファイルの一例であり、シグナル送信者情報をユーザに検証可能なテキストベースによって出力したものである。テキストデータ８００を構成する各情報はそれぞれ下記のような意味をあらわしている。【００７２】
・Ｔｉｍｅ：送信時刻
・Ｓｉｇｎａｌ：シグナル種別（シグナル番号）
・Ｓｅｎｄｅｒ：送信者の身元（ＰＩＤ）
・Ｃｏｍｍａｎｄ：送信者の身元（ｅｘｅｃ文字列）
・Ｓｔａｃｋ  Ｔｒａｃｅ：送信時の状態（スタック情報）
・Ｐｒｏｃｅｓｓ  Ｔｒｅｅ：送信時の状態（プロセスツリー情報）
・Ｒｅｃｅｉｖｅｒ：  受信者の身元（ＰＩＤ）【００７３】
具体的に説明すると、Ｃｏｍｍａｎｄでは、プロセス１８９０に対してＫｉｌｌコマンドを実行しており、−ＡＢＲＴはシグナル番号６を指定していることをあらわしている。また、Ｓｔａｃｋ  Ｔｒａｃｅは、「ｓｔａｒｔ（）⇒ｍａｉｎ（）⇒…⇒ｋｉｌｌ（）」の順に関数を呼び出していることをあらわしている。さらに、Ｐｒｏｃｅｓｓ  Ｔｒｅｅは、プロセス２１７からプロセス１８０７０を起動、プロセス１８０７０からプロセス１８０８０を起動、プロセス１８０８０のｃｓｈ（ＤＯＳプロンプトのようなもの）でｋｉｌｌコマンドを実行したことをそれぞれあらわしている。【００７４】
以上説明したように、実施の形態１では、実行中のプロセスが強制終了された場合に、シグナル送信者情報を取得し保存する。さらに、プロセス検証に必要なシグナル送信者情報をユーザに利用しやすい形式のファイルとして保存することによって、ユーザにとって必要な情報を即座に参照させることができる。【００７５】
（実施の形態２）
つぎに、実施の形態２について説明する。上述したように、実施の形態２は、コアファイルの生成機能を備えた情報処理装置２００において、強制終了シグナルが検出された場合のプロセス検証支援をおこなう形態である。【００７６】
図９は、実施の形態２におけるプロセス検証支援処理の手順を示す説明図である。図９は、図４にて説明した手順と比較して、受信側プロセス４２０の手順が一部変更され、カーネルメモリ９３０には、シグナル送信者情報保存部４３３に替わって、コアファイルを含むシグナル送信者情報保存部９００が用意される。したがって、他の処理手順については、実施の形態１と同様であるため、説明を省略する。【００７７】
実施の形態２の場合、受信側プロセス４２０は、強制終了された場合に、まず、シグナル処理を実行し（ステップＳ９０１）、その後、シグナル送信者情報からユーザに利用しやすい形式のファイルを作成し（ステップＳ９０２）、コアファイルに入れてシグナル送信者情報保存部９００に保存する。【００７８】
このように、プロセスが強制終了された場合にコアファイルが生成された場合には、従来のコアファイルを作成する処理に、シグナル送信者の情報を取り込むことによって、ユーザは、従来のコアファイルの情報と、シグナル送信者情報との双方を参照してプロセス検証をおこなうことができる。【００７９】
以上説明したように、本実施の形態によれば、カーネルからの強制終了シグナルが検出された際にカーネルが参照したプロセスの動作内容に関する情報を取得し、メモリに蓄積される。ここで蓄積された、情報は、カーネルによる強制終了シグナル出力の原因となったプロセスの動作内容に関する情報である。したがって、メモリに蓄積された情報からプロセス検証が可能となり、強制終了の原因を特定することができる。また、カーネルからの強制終了シグナルが検出された際にカーネルが参照したプロセスの動作内容に関する情報を取得し、メモリに蓄積される。ここで蓄積された、情報は、カーネルによる強制終了シグナル出力の原因となったプロセスの動作内容に関する情報である。したがって、メモリに蓄積された情報からプロセス検証が可能となり、強制終了の原因を特定することができる。【００８０】
なお、本実施の形態で説明したプロセス検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。【００８１】
また、本実施の形態で説明した情報処理装置２００のプロセス検証支援処理実行のための機能部は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した情報処理装置２００の機能（機能ブロックの各符号を入れる）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、上述したプロセス検証支援プログラムのインストール以外の手法によって情報処理装置２００を製造することができる。
【図１】
2009104274.tif 000003
【図２】
2009104274.tif 000004
【図３】
2009104274.tif 000005
【図４】
2009104274.tif 000006
【図５】
2009104274.tif 000007
【図６】
2009104274.tif 000008
【図７】
2009104274.tif 000009
【図８】
2009104274.tif 000010
【図９】
2009104274.tif 000011
【図１０】
2009104274.tif 000012
【図１１】
2009104274.tif 000013
【手続補正書】
【提出日】平成22年7月21日(2010.7.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出する検出手段と、
前記プロセスのうち、前記検出手段による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得手段と、
前記取得手段によって取得された情報をメモリに蓄積する蓄積手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ手段と、
前記問い合わせ手段によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索手段と、
前記検索手段によって検索された情報を出力する出力手段と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検出手段によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成手段を備え、
前記生成手段は、前記取得手段によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記取得手段は、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記出力手段は、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記出力手段は、前記問い合わせ手段が、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索手段によって検索された情報を所定のアドレスに宛てに送信することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援方法であって、
前記強制終了シグナルを検出する検出工程と、
前記プロセスのうち、前記検出工程による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得工程と、
前記取得工程によって取得された情報をメモリに蓄積する蓄積工程と、
を含むことを特徴とするプロセス検証支援方法。
【請求項８】
前記強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ工程と、
前記問い合わせ工程によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索工程と、
前記検索工程によって検索された情報を出力する出力工程と、
をさらに含むことを特徴とする請求項７に記載のプロセス検証支援方法。
【請求項９】
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援プログラムであって、
前記コンピュータを、
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出する検出手段、
前記プロセスのうち、前記検出手段による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得手段、
前記取得手段によって取得された情報をメモリに蓄積する蓄積手段、
として機能させることを特徴とするプロセス検証支援プログラム。
【請求項１０】
前記コンピュータを、
前記強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ手段、
前記問い合わせ手段によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索手段、
前記検索手段によって検索された情報を出力する出力手段、
として機能させることを特徴とする請求項９に記載のプロセス検証支援プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスの強制終了機能を備えたカーネルが搭載された情報処理装置と、プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援方法およびプロセス検証支援プログラムに関するものである。
【背景技術】
【０００２】
従来より、情報処理装置によってユーザの用意したアプリケーション（以下、「ユーザアプリケーション」という）を実行させるには、カーネルなど基本的なＯＳ（オペレーティングシステム）の処理機能を含んだソフトウェアを搭載しなければならない。カーネルには、主たる機能として、ユーザアプリケーションや周辺機器の監視、ディスクやメモリなどの資源の管理、割り込み処理、プロセス間通信などの各種機能を備えている。
【０００３】
一般的に上述のような情報処理装置において実行させる所定の処理群をプロセスといい、カーネルからの制御によって複数のプロセスを連続して実行させたり、並列に実行させる。また、プロセス実行時には、カーネルによって常に処理内容が監視されており、割り込み処理やエラー発生など、所定の事象が発生すると、カーネルによって実行中のプロセスが強制終了させられることがある。
【０００４】
ここで、図１０および図１１を用いて強制終了について説明する。図１０は、カーネルによる強制終了シグナルの送信プロセスの手順を示すフローチャートである。また、図１１は、アプリケーションによる強制終了シグナルの受信プロセスの手順を示すフローチャートである。
【０００５】
図１０のフローチャートにおいて、まず、カーネルは、強制終了の原因となる事象が発生したか否かを判断する（ステップＳ１００１）。ここで、強制終了の原因となる事象が発生するまで待ち（ステップＳ１００１：Ｎｏのループ）、原因となる事象が発生すると（ステップＳ１００１：Ｙｅｓ）、強制終了シグナルの送信プロセスを実行し（ステップＳ１００２）、シグナル送信処理が実行され（ステップＳ１００３）、カーネルの処理は終了する。
【０００６】
一方、アプリケーションでは、カーネルからのシグナルが配達されたか否かを判断する（ステップＳ１１０１）。ここでも、シグナルが配達されるまで待ち（ステップＳ１１０１：Ｎｏのループ）、シグナルが配達されると（ステップＳ１１０１：Ｙｅｓ）、シグナル受信処理が実行され（ステップＳ１１０２）、受信プロセスを実行する（ステップＳ１１０３）。なお、ステップＳ１１０３によって実行される受信プロセスは、強制終了に関するプロセスとなる。以上のような手順を経て、アプリケーションの処理は終了する（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第２８３６６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、図１０および図１１にて説明したように、強制終了シグナルの送信はカーネルを経由しておこなわれるが、シグナル送信者（ここでは、カーネル）の情報は、シグナル受信者（ここでは、アプリケーション）のプロセスには伝わらない。また、シグナルを受信したプロセスの実行者（ここでは、情報処理装置のユーザ）は、受信したシグナルの送信者の情報を探し出す手段を備えていない。
【０００９】
たとえば、ＵＮＩＸ（登録商標）系の代表的なＯＳであるＳｏｌａｒｉｓ（ソラリス：登録商標）の場合、シグナル送信処理の際に、シグナル受信処理へ渡されるのは、受信するプロセスのポインタ情報、受信するカーネル・スレッドのポインタ情報、シグナル番号情報およびシグナルの発生源がユーザかカーネルかを示すフラグ情報の以上４つの情報のみである。
【００１０】
Ｓｏｌａｒｉｓでは、シグナルの送信者の情報を採取する手段として、上述した図１０のシグナル送信プロセス（ステップＳ１００３）において、Ａｕｄｉｔ（監査）、ＤＴｒａｃｅ（動的トレース）を搭載することができる。しかしながら、上記の２つの機能は、問題が発生した後に、同じ問題が再現することを期待して仕掛けておく機能である。したがって、同じ問題が再現されなければ調査のための情報を採取することはできず、また、仕掛ける作業にもスキルが要求されるという問題があった。
【００１１】
さらに、Ａｕｄｉｔ、ＤＴｒａｃｅを搭載する場合、システムのパフォーマンスへの影響を考慮しなければならない。特に、Ａｕｄｉｔは指定されたポインタのあらゆる情報を取得するため、システムへの負荷が大きくなる可能性が高い。また、Ａｕｄｉｔ、ＤＴｒａｃｅによって採取できる情報は、システム全体の情報として管理者の手によって採取される情報であり、強制終了させられたプロセスの実行者である一ユーザが取得したとしても容易に強制終了の原因を調査できるような情報ではなく、通常のユーザには強制終了の原因を特定することは困難であった。
【００１２】
上述のような実情に反して、受信プロセスが予期しないシグナルを受信して強制終了させられたためその原因であるシグナルの送信元を調べたいという事例は多い。しかしながら、シグナルの送信者の情報がないために原因の調査ができない。現状のところ、ユーザが取り得る対策としては、Ａｕｄｉｔの設定をして問題が再現するのを待つのみであり、結果として、原因不明となることがほとんどであるという問題があった。
【００１３】
この発明は、上述した従来技術による問題点を解消するため、強制終了が発生した場合に、ユーザのスキルを問わずに効率的に強制終了の原因を特定することのできる情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出し、前記プロセスのうち、強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得し、当該取得された情報をメモリに蓄積することを要件とする。
【００１５】
この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムによれば、カーネルからの強制終了シグナルが検出された際にカーネルが参照したプロセスの動作内容に関する情報を取得し、メモリに蓄積される。ここで蓄積された情報は、カーネルによる強制終了シグナル出力の原因となったプロセスの動作内容に関する情報である。したがって、メモリに蓄積された情報からプロセス検証が可能となる。
【００１６】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する機能を備え、このとき、前記取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成してもよい。
【００１７】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにコアファイルを生成する機能が備わっているような場合には、この生成されたコアファイルにプロセス検証に利用するプロセスの動作に関する情報を含ませることができる。
【００１８】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにおいて、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得してもよい。
【００１９】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、強制終了シグナルの検出をトリガに、プロセス検証に利用する情報を効率的に取得することができる。
【００２０】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、さらに、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索し、当該検索された情報を出力することを要件としてもよい。
【００２１】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、特定のプロセスの実行時に発生した強制終了の原因を特定するための情報をメモリから出力し、ユーザに提供することができる。
【００２２】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにおいて、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力するようにしてもよい。
【００２３】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、メモリに蓄積された情報を形式のファイルに加工するため、強制終了の原因を特定するためのプロセス検証をおこないやすい情報をユーザに提供することができる。
【００２４】
また、上記の情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムにおいて、強制終了されたプロセスに対する問い合わせを受け付けると、前記検索された情報を所定のアドレス宛てに送信するようにしてもよい。
【００２５】
上述の構成により、情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムは、問い合わせを受けて検出された情報を、所望の機器や端末に出力することができる。
【発明の効果】
【００２６】
この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムによれば、強制終了が発生した場合に、ユーザのスキルを問わずに効率的に強制終了の原因を特定することができるという効果を奏する。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態にかかるプロセス検証支援の概要を示す説明図である。
【図２】本実施の形態にかかる情報処理装置のハードウェア構成の一例を示す説明図である。
【図３】情報処理装置においてプロセス検証支援をおこなうための機能的構成を示すブロック図である。
【図４】実施の形態１におけるプロセス検証支援処理の手順を示す説明図である。
【図５】プロセス情報の構成を示す説明図である。
【図６】仮想メモリ空間の構成例を示す図表である。
【図７】シグナル送信履歴保存部の構成を示す説明図である。
【図８】シグナル送信者情報の出力例を示す説明図である。
【図９】実施の形態２におけるプロセス検証支援処理の手順を示す説明図である。
【図１０】カーネルによる強制終了シグナルの送信プロセスの手順を示すフローチャートである。
【図１１】アプリケーションによる強制終了シグナルの受信プロセスの手順を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下に添付図面を参照して、この情報処理装置、プロセス検証支援方法およびプロセス検証支援プログラムの好適な実施の形態を詳細に説明する。
【００２９】
（プロセス検証支援の概要）
まず、本実施の形態にかかるプロセス検証支援の概要について説明する。図１は、本実施の形態にかかるプロセス検証支援の概要を示す説明図である。図１は、情報処理装置１００におけるプロセス実行の一例をあらわしている。情報処理装置１００によってユーザが所望のアプリケーションを実行するには、装置全体を制御するＯＳが必要となる。したがって情報処理装置１００には、ＯＳの機能を担うソフトウェアとしてカーネル１１０が搭載されており、このカーネル１１０によって情報処理装置１００全体が制御され、ユーザが所望するアプリケーション、“ユーザプログラム１２０”を実行させることができる。
【００３０】
そして、図１では、ユーザプログラム１２０において、プロセス実行が開始され（ステップＳ１２１）、このプロセスの実行中に強制終了の原因となる事象が発生する（ステップＳ１２２）ものとする。カーネル１１０は、ユーザプログラム１２０によって実行中のプロセスを常に監視している。したがって、実行中のプロセスにおいて強制終了の原因が発生すると（Ｓ１２２）、原因発生を検出することができる。
【００３１】
カーネル１１０は、原因発生（Ｓ１２２）の検出をトリガに、実行中のプロセスの強制終了判断を下し（Ｓ１１１）、ユーザプログラム１２０に対して強制終了シグナルを送信する（Ｓ１１２）。
【００３２】
一方、ユーザプログラム１２０では、カーネル１１０から送信された強制終了シグナルを受信すると（Ｓ１２３）、実行中のプロセスを強制終了する（Ｓ１２４）。ここまでの処理は、従来の強制終了発生時のカーネル１１０およびユーザプログラム１２０においても同様におこなわれていた。本実施の形態の場合、プロセスの強制終了後、さらに、この強制終了の原因となったプロセスを、ユーザが検証可能となるように支援するための処理に移行する。
【００３３】
まず、カーネル１１０は、ステップＳ１１２の強制終了シグナル送信後に、シグナル送信に関する情報（シグナル送信者情報）を記憶するため、メモリ１３０にシグナル送信者情報１３１を保存する（Ｓ１１３）。ユーザプログラム１２０では、強制終了後、ユーザによる強制終了の原因となるプロセスの検証が開始されると、メモリ１３０に保存されているシグナル送信者情報を参照する（Ｓ１２５）。
【００３４】
このように、本実施の形態の情報処理装置１００であれば、プロセス実行時に予期しない強制終了シグナルを受信して強制終了させられたような場合であっても、メモリ１３０に保存されたシグナル送信者情報を参照することによって、プロセスの内容を検証することができる。そして、このプロセス検証結果から強制終了の原因を特定することができる。
【００３５】
以下、上述した強制終了の原因を特定可能にするための情報処理装置１００の構成と強制終了発生時の動作内容について具体的に説明する。
【００３６】
（情報処理装置のハードウェア構成）
まず、本実施の形態にかかる情報処理装置のハードウェア構成について説明する。図２は、本実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【００３７】
図２において、情報処理装置２００は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ、ＷＡＮやインターネットなどのネットワーク２４０に接続可能である。
【００３８】
コンピュータ本体２１０は、ＣＰＵ、メモリ、インターフェースを有する。ＣＰＵは、情報装置２００の全体の制御を司る。メモリは、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク２１１、フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００３９】
また、メモリにはカーネルや、アプリケーションなど各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリはコンピュータ本体２１０に対し着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０への出力、ネットワーク２４０に対する送受信の制御をおこなう。
【００４０】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。なお、スキャナ２２３にＯＣＲ機能を持たせてもよい。
【００４１】
また、出力装置２３０としては、ディスプレイ２３１、スピーカ２３２、プリンタ２３３などがある。ディスプレイ２３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。またスピーカ２３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ２３３は、画像データや文書データを印刷する。
【００４２】
（情報処理装置の機能的構成）
つぎに、情報処理装置２００におけるプロセス検証支援処理実行のための機能的構成について説明する。図３は、情報処理装置においてプロセス検証支援をおこなうための機能的構成を示すブロック図である。図３において、情報処理装置２００は、検出部３０１と、取得部３０２と、蓄積部３０３と、メモリ３０４と、問い合わせ部３０５と、検索部３０６と、出力部３０７と、生成部３０８と、を備えている。
【００４３】
上述した各機能３０１〜３０８は、カーネル３１０の拡張機能とカーネル３１０に含まれていてもよいし、独立したプログラムとして情報処理装置２００に格納されており、情報処理装置２００によってＯＳとして機能するソフトウェアに適用させてもよい。また、情報処理装置２００の記憶部に記憶された当該機能３０１〜３０７に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。
【００４４】
各機能部の説明をすると、まず、検出部３０１は、プロセスの動作内容を参照してプロセスの動作状況を監視するカーネル３１０からのシグナルのうち、強制終了シグナルを検出する。
【００４５】
取得部３０２は、実行中のプロセス３２０のうち、検出部３０１による強制終了シグナル検出時にカーネル３１０が参照したプロセス３２０の動作内容に関する情報を取得する。ここで取得される、プロセス３２０の動作内容に関する情報とは、たとえば、プロセス３２０のプロセス番号や送信者情報など複数種類の情報から構成されている。このとき、取得部３０２は、強制終了シグナル検出時にカーネル３１０が参照したプロセス３２０の動作内容に関する情報の中からあらかじめ指定された情報を取得してもよい。取得する情報の種類を限定することにより、メモリ３０４への負荷を軽減するとともに、プロセス検証時に必要な情報を効率よく取得することができる。
【００４６】
蓄積部３０３は、取得部３０２によって取得された情報をメモリ３０４に蓄積する。ここで、メモリ３０４は、情報処理装置２００の記録部を利用する。一般的に情報処理装置２００のようにカーネル３１０が搭載されていれば、記録部に専用のカーネルメモリが設定されるため、このカーネルメモリをメモリ３０４として利用してもよい。
【００４７】
問い合わせ部３０５は、強制終了されたプロセスに対する問い合わせを受け付ける。このとき、情報処理装置２００によってプロセス３２０を実行させたユーザから直接、入力装置２１０（図２参照）から問い合わせを受け付けてもよいし、情報処理装置２００によって、強制終了されたプロセス検証をおこなうアプリケーションを実行させ、このアプリケーションからの問い合わせを受け付けてもよい。
【００４８】
検索部３０６は、問い合わせ部３０５によって問い合わせを受け付けたプロセス３２０の動作内容に関する情報をメモリ３０４から検索する。
【００４９】
出力部３０７は、検索部３０６によって検索された情報を出力する。このとき出力部３０７は、メモリ３０４に蓄積された情報をそのまま出力してもよいが、所定の形式のファイルに加工して出力してもよい。また、出力部３０７は、問い合わせ部３０５が、強制終了されたプロセス３２０に対する問い合わせを受け付けると、検索部３０６によって検索された情報を情報処理装置２００のユーザに限らず、ユーザが指定した所定のアドレス宛てに送信してもよい。
【００５０】
生成部３０８は、検出部３０１によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する。具体的には、たとえば、メモリやレジスタの内容を記録した「ｃｏｒｅ」という名称のファイルが生成される。生成部３０８は、このコアファイル生成時に、取得部３０２によって取得されたプロセスの動作内容に関する情報を含んだコアファイルを生成する。
【００５１】
なお、この生成部３０８の機能はカーネル３１０にあらかじめ含まれている場合もある。そのような場合には、生成部３０８は、カーネル３１０によって生成されたコアファイルを、プロセスの動作内容に関する情報を含んだコアファイルとして改訂するように動作してもよい。
【００５２】
つぎに、上述した構成を備えた情報処理装置２００によってユーザが所望のアプリケーションを実行させ、なんらかの原因によって強制終了されてしまった場合を例に挙げ、強制終了が発生した場合の動作の２つの実施の形態について説明する。実施の形態１では、生成部３０８の機能部を備えていない、もしくは生成部３０８が機能せず、コアファイルが生成されなかった場合の情報処理装置２００の動作を説明する。そして、実施の形態２では、生成部３０８の機能部を備え、コアファイルが生成された場合の情報処理装置２００の動作について説明する。
【００５３】
（実施の形態１）
まず、実施の形態１では、強制終了が発生した際に、強制終了シグナル送信者の情報を蓄積することによって、強制終了されたプロセスの実行者が強制終了の原因となったプロセスの検証を可能にする。なお、以下の説明では、情報処理装置２００において強制終了シグナルを送信する送信側プロセスの処理と、強制終了シグナルを受信して強制終了される受信側プロセスの処理として、それぞれ説明する。
【００５４】
図４は、実施の形態１におけるプロセス検証支援処理の手順を示す説明図である。図４のように、送信側プロセス４１０は、実行中のプロセスに対して強制終了を指示するシグナル（たとえば、シグナル「ｋｉｌｌ」）を送信する機能部の動作手順を示すフローチャートである。また、受信側プロセス４２０は、強制終了の指示を受信し、実行中のプロセスを終了させられた機能部の動作手順を示すフローチャートである。
【００５５】
また、本実施の形態では、強制終了に関する情報を蓄積する手順を必要とするため、カーネルメモリ４３０には、従来から用意されていたプロセス情報保存部４３１に加え、あらたに、シグナル送信履歴保存部４３２と、シグナル情報者情報保存部４３３が用意される。
【００５６】
図４において、強制終了が発生すると、まず、送信側プロセス４１０では、シグナル送信をおこなう（ステップＳ４１１）。シグナル送信がおこなわれると、このシグナルに関してシグナル送信者情報を収集する（ステップＳ４１２）。
【００５７】
このとき、送信側プロセス４１０は、プロセス情報保存部４３１から、シグナル送信プロセスに関する情報を取得する。図５は、プロセス情報の構成を示す説明図である。図５のように、プロセス情報保存部４３１には、プロセス情報が、プロセス構造体５００として保存されている。
【００５８】
図５のプロセス構造体５００は、ｖノードの構造体をあらわすｅｘｅｃ５０１、親のプロセス構造体をあらわすｐａｒｅｎｔ５０２、プロセスＩＤ構造体をあらわすｐｉｄ５０３、ユーザ構造体をあらわすｕｓｅｒ５０４などが含まれている。これらの構造体から、それぞれ強制終了時にシグナル送信者のプロセスの内容を検証するための情報を取得する。
【００５９】
たとえば、ｅｘｅｃ５０１からは、さらに、ｉノードをあらわすｉ−ｎｏｄｅ５１０から、ディスク上の実行ファイル５１１が取得される。また、ｐａｒｅｎｔ５０２からは、親のプロセス構造体５２０に含まれているｐａｒｅｎｔから、さらに、親の親のプロセス構造体５２１を取得することができる。また、ｐｉｄ５０３からは、送信者の身元をあらわすｐｉｄ５３０（たとえば、送信者ＩＤをあらわす文字列など）が取得される。また、ｕｓｅｒ５０４からは、送信者が送信させたシグナル内容として、ｅｘｅｃ５４０が取得される。このｅｘｅｃ５４０には、コマンド名（たとえば「ｋｉｌｌ」など）、引数が含まれている。
【００６０】
また、送信側プロセス４１０のステップＳ４１２では、シグナル送信履歴として、送信側プロセス４１０自身から送信時刻、スタック情報、シグナル種別および受信者の身元に関する情報を取得する。
【００６１】
送信時刻は、情報処理装置２００に含まれているＴＯＤ（Ｔｉｍｅ−Ｏｆ−Ｄａｙ：１９７０年１月１日からの秒数を保持するハードウェア）から取得する。このとき、取得した情報は、後で年月日時分秒の形式に変換することもできる。
【００６２】
スタック情報は、ユーザプロセス自身の仮想メモリ空間で特定の場所に置かれている。図６は、仮想メモリ空間の構成例を示す図表である。図６のアドレス空間６００のように、スタック情報は、関数の呼び出しごとに、アドレス（メモリ上のどの命令を実行していたか）と引数（パラメータ）とが保存してある。
【００６３】
以上説明したように、ステップＳ４１２では、プロセス情報保存部４３０から取得した情報と、送信側プロセス４１０自身から取得した情報をシグナル送信者情報として取得し、シグナル送信履歴保存部４３２に保存する（ステップＳ４１３）。
【００６４】
図７は、シグナル送信履歴保存部の構成を示す説明図である。図７のシグナル送信履歴保存部４３２には、シグナル情報から取得したシグナル送信者情報（たとえばシグナルＸＸＸ１〜シグナルＸＸＸＦ）が、サイクリックに記録されている。
【００６５】
個々のシグナル送信者情報は、テーブル７００のような構成になっている。これは、シグナル送信時に受信側プロセス４２０においてどのようなプロセスが実行されていたかを検証するための情報によって構成されており、具体的には、下記のような情報を得るためのデータ列によって構成されている。
【００６６】
・送信時刻：ＴＯＤ（システム起動からの経過時間）から検証する。
・シグナル種別：シグナル番号から検証する。
・送信者の身元：ＰＩＤ、ｅｘｅｃ文字列から検証する。特に、ＰＩＤは、シグナルを送信したプロセスのプロセス番号であり、ｅｘｅｃ文字列は、“ｋｉｌｌ  ２９９９９”といった、コマンド名＋オプションをあらわす文字列である。
・送信時の状態：スタック情報、プロセスツリー情報から検証する。スタック情報は、ＵＮＩＸのｐｓｔａｃｋコマンドの出力に相当し、具体的には、関数のアドレス＋関数名＋引数＋関数内のオフセットを含む、シグナルを送信したプロセスの処理の流れを知るための情報である。また、プロセスツリー情報は、ＵＮＩＸのｐｔｒｅｅコマンドの出力に相当し、プロセス番号とコマンド名＋オプションの文字列を含む、シグナルを送信したプロセスの親プロセスやさらにその上のプロセスを知るための情報である。
・受信者の身元：ＰＩＤシグナルを受け取るプロセスのプロセス番号から検証する。
【００６７】
図４の説明に戻り、上述したような送信者情報からなるシグナル送信履歴を保存すると、シグナル受信者へ通知し（ステップＳ４１４）、一連の処理を終了する。なお、ステップＳ４１４の通知処理も送信側プロセス４１０の一部としてプロセス情報保持部４３１に保存される。
【００６８】
一方、受信側プロセス４２０では、まず、プロセス情報保存部４３１を参照して受信シグナルを確認する（ステップＳ４２１）。ここで確認したシグナルから、強制終了指示を受けたか否かを判断する（ステップＳ４２２）。そして、強制終了指示を受け付けた場合には（ステップＳ４２２：Ｙｅｓ）、シグナルに該当するシグナル送信者情報をシグナル送信履歴４３２から検索して取り出す（ステップＳ４２３）。
【００６９】
ステップＳ４２３によって、ステップＳ４２１によって確認したシグナルに該当するシグナル送信者情報を取り出すと、このシグナル送信者情報を利用して、ユーザに利用しやすい形式のファイルを作成する（ステップＳ４２４）。ここで作成されたファイルは、プロセス検証の際に参照されるため、シグナル送信者情報保存部４３３に格納される。受信側プロセス４２０では、その後シグナル処理実行し（ステップＳ４２５）、一連の処理を終了する。当然のことながら、このステップＳ４２５の処理も受信側プロセス４２０の一部としてプロセス情報保持部４３１に保存される。
【００７０】
図８は、シグナル送信者情報の出力例を示す説明図である。図８のテキストデータ８００は、ステップＳ４２４によって作成されたファイルの一例であり、シグナル送信者情報をユーザに検証可能なテキストベースによって出力したものである。テキストデータ８００を構成する各情報はそれぞれ下記のような意味をあらわしている。
【００７１】
・Ｔｉｍｅ：送信時刻
・Ｓｉｇｎａｌ：シグナル種別（シグナル番号）
・Ｓｅｎｄｅｒ：送信者の身元（ＰＩＤ）
・Ｃｏｍｍａｎｄ：送信者の身元（ｅｘｅｃ文字列）
・Ｓｔａｃｋ  Ｔｒａｃｅ：送信時の状態（スタック情報）
・Ｐｒｏｃｅｓｓ  Ｔｒｅｅ：送信時の状態（プロセスツリー情報）
・Ｒｅｃｅｉｖｅｒ：  受信者の身元（ＰＩＤ）
【００７２】
具体的に説明すると、Ｃｏｍｍａｎｄでは、プロセス１８９０に対してＫｉｌｌコマンドを実行しており、−ＡＢＲＴはシグナル番号６を指定していることをあらわしている。また、Ｓｔａｃｋ  Ｔｒａｃｅは、「ｓｔａｒｔ（）⇒ｍａｉｎ（）⇒…⇒ｋｉｌｌ（）」の順に関数を呼び出していることをあらわしている。さらに、Ｐｒｏｃｅｓｓ  Ｔｒｅｅは、プロセス２１７からプロセス１８０７０を起動、プロセス１８０７０からプロセス１８０８０を起動、プロセス１８０８０のｃｓｈ（ＤＯＳプロンプトのようなもの）でｋｉｌｌコマンドを実行したことをそれぞれあらわしている。
【００７３】
以上説明したように、実施の形態１では、実行中のプロセスが強制終了された場合に、シグナル送信者情報を取得し保存する。さらに、プロセス検証に必要なシグナル送信者情報をユーザに利用しやすい形式のファイルとして保存することによって、ユーザにとって必要な情報を即座に参照させることができる。
【００７４】
（実施の形態２）
つぎに、実施の形態２について説明する。上述したように、実施の形態２は、コアファイルの生成機能を備えた情報処理装置２００において、強制終了シグナルが検出された場合のプロセス検証支援をおこなう形態である。
【００７５】
図９は、実施の形態２におけるプロセス検証支援処理の手順を示す説明図である。図９は、図４にて説明した手順と比較して、受信側プロセス４２０の手順が一部変更され、カーネルメモリ９３０には、シグナル送信者情報保存部４３３に替わって、コアファイルを含むシグナル送信者情報保存部９００が用意される。したがって、他の処理手順については、実施の形態１と同様であるため、説明を省略する。
【００７６】
実施の形態２の場合、受信側プロセス４２０は、強制終了された場合に、まず、シグナル処理を実行し（ステップＳ９０１）、その後、シグナル送信者情報からユーザに利用しやすい形式のファイルを作成し（ステップＳ９０２）、コアファイルに入れてシグナル送信者情報保存部９００に保存する。
【００７７】
このように、プロセスが強制終了された場合にコアファイルが生成された場合には、従来のコアファイルを作成する処理に、シグナル送信者の情報を取り込むことによって、ユーザは、従来のコアファイルの情報と、シグナル送信者情報との双方を参照してプロセス検証をおこなうことができる。
【００７８】
以上説明したように、本実施の形態によれば、カーネルからの強制終了シグナルが検出された際にカーネルが参照したプロセスの動作内容に関する情報を取得し、メモリに蓄積される。ここで蓄積された情報は、カーネルによる強制終了シグナル出力の原因となったプロセスの動作内容に関する情報である。したがって、メモリに蓄積された情報からプロセス検証が可能となり、強制終了の原因を特定することができる。また、カーネルからの強制終了シグナルが検出された際にカーネルが参照したプロセスの動作内容に関する情報を取得し、メモリに蓄積される。ここで蓄積された情報は、カーネルによる強制終了シグナル出力の原因となったプロセスの動作内容に関する情報である。したがって、メモリに蓄積された情報からプロセス検証が可能となり、強制終了の原因を特定することができる。
【００７９】
なお、本実施の形態で説明したプロセス検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００８０】
また、本実施の形態で説明した情報処理装置２００のプロセス検証支援処理実行のための機能部は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した情報処理装置２００の機能（機能ブロックの各符号を入れる）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、上述したプロセス検証支援プログラムのインストール以外の手法によって情報処理装置２００を製造することができる。
【００８１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００８２】
（付記１）プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出する検出手段と、
前記プロセスのうち、前記検出手段による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得手段と、
前記取得手段によって取得された情報をメモリに蓄積する蓄積手段と、
を備えることを特徴とする情報処理装置。
【００８３】
（付記２）強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ手段と、
前記問い合わせ手段によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索手段と、
前記検索手段によって検索された情報を出力する出力手段と、
を備えることを特徴とする付記１に記載の情報処理装置。
【００８４】
（付記３）前記検出手段によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成手段を備え、
前記生成手段は、前記取得手段によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする付記１に記載の情報処理装置。
【００８５】
（付記４）前記取得手段は、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする付記１に記載の情報処理装置。
【００８６】
（付記５）前記出力手段は、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする付記２に記載の情報処理装置。
【００８７】
（付記６）前記出力手段は、前記問い合わせ手段が、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索手段によって検索された情報を所定のアドレスに宛てに送信することを特徴とする付記２に記載の情報処理装置。
【００８８】
（付記７）プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援方法であって、
前記強制終了シグナルを検出する検出工程と、
前記プロセスのうち、前記検出工程による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得工程と、
前記取得工程によって取得された情報をメモリに蓄積する蓄積工程と、
を含むことを特徴とするプロセス検証支援方法。
【００８９】
（付記８）前記強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ工程と、
前記問い合わせ工程によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索工程と、
前記検索工程によって検索された情報を出力する出力工程と、
をさらに含むことを特徴とする付記７に記載のプロセス検証支援方法。
【００９０】
（付記９）前記検出工程によって、強制終了シグナルが検出されると、当該検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成工程を含み、
前記生成工程では、前記取得工程によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする付記７に記載のプロセス検証支援方法。
【００９１】
（付記１０）前記取得工程では、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする付記７に記載のプロセス検証支援方法。
【００９２】
（付記１１）前記出力工程では、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする付記８に記載のプロセス検証支援方法。
【００９３】
（付記１２）前記出力工程では、前記問い合わせ工程によって前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索工程によって検索された情報を所定のアドレスに宛てに送信することを特徴とする付記８に記載のプロセス検証支援方法。
【００９４】
（付記１３）プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルが搭載されたコンピュータにおいて、前記カーネルによって強制終了されたプロセスの動作内容を検証するためのプロセス検証支援プログラムであって、
前記コンピュータを、
プロセスの動作内容を参照して前記プロセスの動作状況を監視するカーネルからのシグナルのうち、強制終了シグナルを検出する検出手段、
前記プロセスのうち、前記検出手段による強制終了シグナル検出時に前記カーネルが参照したプロセスの動作内容に関する情報を取得する取得手段、
前記取得手段によって取得された情報をメモリに蓄積する蓄積手段、
として機能させることを特徴とするプロセス検証支援プログラム。
【００９５】
（付記１４）前記コンピュータを、
前記強制終了されたプロセスに対する問い合わせを受け付ける問い合わせ手段、
前記問い合わせ手段によって問い合わせを受け付けた前記プロセスの動作内容に関する情報を前記メモリから検索する検索手段、
前記検索手段によって検索された情報を出力する出力手段、
として機能させることを特徴とする付記１３に記載のプロセス検証支援プログラム。
【００９６】
（付記１５）前記コンピュータを、
前記検出手段によって、強制終了シグナルが検出されると、前記強制終了シグナル検出時に所定記録領域に記録されていた内容を保存してコアファイルを生成する生成手段として機能させ、
前記生成手段は、前記取得手段によって取得された前記プロセスの動作内容に関する情報を含んだコアファイルを生成することを特徴とする付記１３に記載のプロセス検証支援プログラム。
【００９７】
（付記１６）前記取得手段は、前記強制終了シグナル検出時に前記カーネルが参照した前記プロセスの動作内容に関する情報の中からあらかじめ指定された情報を取得することを特徴とする付記１３に記載のプロセス検証支援プログラム。
【００９８】
（付記１７）前記出力手段は、前記メモリに蓄積された情報を所定の形式のファイルに加工して出力することを特徴とする付記１４に記載のプロセス検証支援プログラム。
【００９９】
（付記１８）前記出力手段は、前記問い合わせ手段が、前記強制終了されたプロセスに対する問い合わせを受け付けると、前記検索手段によって検索された情報を所定のアドレスに宛てに送信することを特徴とする付記１４に記載のプロセス検証支援プログラム。
【符号の説明】
【０１００】
１００、２００  情報処理装置
２１０  コンピュータ本体
２２０  入力装置
２３０  出力装置
３００  プロセス検証支援部
３０１  検出部
３０２  取得部
３０３  蓄積部
３０４  メモリ
３０５  問い合わせ部
３０６  検索部
３０７  出力部
【国際調査報告】
2009104274.tif 000014
2009104274.tif 000015
2009104274.tif 000016
2009104274.tif 000017