(57)【要約】【課題】複数プロセス実行環境下におけるプロセストレースにてトレース結果の確認を容易にする。【解決手段】計算機装置１０には、プロセス実行環境Ａ２０が存在し、プロセス実行環境Ａ２０内にプロセス実行環境Ｂ３０が存在する。トレース部４０は、プロセスごとに、プロセスの挙動をトレースする。プロセス実行環境判断部４３は、プロセスごとに、プロセスが実行される実行環境がプロセス実行環境Ａ２０及びプロセス実行環境Ｂ３０のいずれであるかを判断する。トレース部４０は、同一のプロセスに対するトレース結果とプロセス実行環境判断部４３の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述される情報を生成する。【選択図】図１
2015170084.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセス実行環境が存在し、前記第１のプロセス実行環境内に第２のプロセス実行環境が存在する計算機装置であって、
プロセスごとに、プロセスの挙動をトレースするトレース部と、
プロセスごとに、プロセスが実行される実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断部と、
同一のプロセスに対する前記トレース部のトレース結果と前記プロセス実行環境判断部の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成部とを有することを特徴とする計算機装置。
【請求項２】
前記プロセス実行環境判断部は、
判断対象のプロセスである判断対象プロセスが、最初に起動され、他のプロセスを起動する始点プロセスであるか否かを判別し、
前記判断対象プロセスが始点プロセスである場合に、当該始点プロセスが実行される実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断し、
前記判断対象プロセスが始点プロセスでない場合に、前記判断対象プロセスの始点プロセスを特定し、当該始点プロセスに対して判断した実行環境が、前記判断対象プロセスが実行される実行環境であると判断することを特徴とする請求項１に記載の計算機装置。
【請求項３】
前記トレース情報生成部は、
前記トレース部のトレース結果に含まれるプロセス識別子と時刻情報と、前記プロセス実行環境判断部の判断結果に含まれるプロセス識別子と時刻情報とに基づいて、同一のプロセスに対する前記トレース部のトレース結果と前記プロセス実行環境判断部の判断結果とを判別し、
判別したトレース結果と判断結果とを組み合わせて前記トレース情報を生成することを特徴とする請求項１に記載の計算機装置。
【請求項４】
前記トレース情報生成部は、
トレース対象のプロセスの全てに対して前記トレース部によるトレースが完了し、判断対象のプロセスの全てに対して前記プログラム実行環境判断部による実行環境の判断が完了した後に、前記トレース情報を生成することを特徴とする請求項１に記載の計算機装置。
【請求項５】
前記トレース情報生成部は、
いずれかのプロセスに対して前記トレース部によるトレースが完了し、前記プロセスに対して前記プログラム実行環境判断部による実行環境の判断が完了した場合に、前記トレース情報を生成することを特徴とする請求項１に記載の計算機装置。
【請求項６】
前記プロセス実行環境判断部は、
実行環境の判断が未実施であるプロセスを検出し、検出したプロセスの実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断することを特徴とする請求項１に記載の計算機装置。
【請求項７】
前記プロセス実行環境判断部は、
プロセスが生成された際に、生成されたプロセスを通知するメッセージを受信し、前記メッセージで通知されたプロセスの実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断することを特徴とする請求項１に記載の計算機装置。
【請求項８】
第１のプロセス実行環境が存在し、前記第１のプロセス実行環境内に第２のプロセス実行環境が存在する計算機装置が行うプロセス解析方法であって、
前記計算機装置が、プロセスごとに、プロセスの挙動をトレースするトレース処理と、
前記計算機装置が、プロセスごとに、プロセスが実行される実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断処理と、
前記計算機装置が、同一のプロセスに対する前記トレース処理のトレース結果と前記プロセス実行環境判断処理の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成処理とを有することを特徴とするプロセス解析方法。
【請求項９】
第１のプロセス実行環境が存在し、前記第１のプロセス実行環境内に第２のプロセス実行環境が存在する計算機装置に、
プロセスごとに、プロセスの挙動をトレースするトレース処理と、
プロセスごとに、プロセスが実行される実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断処理と、
同一のプロセスに対する前記トレース処理のトレース結果と前記プロセス実行環境判断処理の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセストレースに関する。
【背景技術】
【０００２】
従来のプロセストレース装置では、トレース対象のプロセスのＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）とそのプロセス挙動を監視することによりプロセスＩＤによるトレース情報の管理を行い、トレース結果の表示を行っている。
これに対し、トレース情報に実行ユーザ名を追加することでプロセスのトレース結果の確認を容易にしようとすることが行われていた（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１０２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来のプロセストレース装置では、複数プロセス実行環境下でのプロセストレースにてプロセスがどのプロセス実行環境下で実行されたものか、プロセスのＩＤやユーザ名だけでは判断することが難しくトレース結果の確認が容易ではないという課題があった。
【０００５】
この発明は、上記のような課題を解決することを主な目的とし、複数プロセス実行環境下におけるプロセストレースにてトレース結果の確認を容易にすることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る計算機装置は、
第１のプロセス実行環境が存在し、前記第１のプロセス実行環境内に第２のプロセス実行環境が存在する計算機装置であって、
プロセスごとに、プロセスの挙動をトレースするトレース部と、
プロセスごとに、プロセスが実行される実行環境が前記第１のプロセス実行環境及び前記第２のプロセス実行環境のいずれであるかを判断するプロセス実行環境判断部と、
同一のプロセスに対する前記トレース部のトレース結果と前記プロセス実行環境判断部の判断結果とを組み合わせて、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するトレース情報生成部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、プロセスごとにトレース結果と実行環境とが記述されるトレース情報を生成するため、複数プロセス実行環境下におけるプロセストレースにてトレース結果を容易に確認することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る計算機装置の構成例を示す図。
【図２】実施の形態１に係る計算機装置のレイヤ構造の例を示す図。
【図３】実施の形態１に係るプロセス実行環境管理テーブルの例を示す図。
【図４】実施の形態１に係るプロセス実行環境判断部の処理フローを示すフローチャート図。
【図５】実施の形態１に係るトレース結果の例を示す図。
【図６】実施の形態１に係るトレース結果の例を示す図。
【図７】実施の形態１に係るトレース部の処理フローを示すフローチャート図。
【図８】実施の形態１に係るトレースログ記録時間とプロセス実行環境管理テーブルの登録時間との関係を示す図。
【図９】実施の形態１に係る実行環境が考慮されないプロセスの動作状況を示す図。
【図１０】実施の形態１に係る実行環境を考慮したプロセスの動作状況を示す図。
【図１１】実施の形態１に係る実行環境を考慮したプロセスの動作状況を示す図。
【図１２】実施の形態２に係るトレース部の処理フローを示すフローチャート図。
【図１３】実施の形態３に係る計算機装置の構成例を示す図。
【図１４】実施の形態３に係る計算機装置のレイヤ構造の例を示す図。
【図１５】実施の形態３に係るプロセス実行環境判断部の処理フローを示すフローチャート図。
【図１６】実施の形態１〜４に係る計算機装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、本実施の形態に係るプログラムトレースを行う計算機装置１０を示す構成図である。
【００１０】
図１において、計算機装置１０はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、入力部などを備えたプロセス実行環境を実行するための装置である。
【００１１】
プロセス実行環境Ａ２０は、Ｌｉｎｕｘ（登録商標）のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）である。
プロセス実行環境Ａ２０は、第１のプロセス実行環境の例に相当する。
【００１２】
プロセスＡＡ２１とプロセスＡＢ２２は、プロセス実行環境Ａ２０上で実行するアプリケーションに代表されるプロセスである。
【００１３】
プロセス実行環境Ｂ３０は、プロセス実行環境Ａ２０上で動作するプロセス実行環境Ａ２０とは分離されたプロセス実行環境である。
プロセス実行環境Ｂ３０は、第２のプロセス実行環境の例に相当する。
【００１４】
プロセスＢＡ３１とプロセスＢＢ３２は、プロセス実行環境Ｂ３０上で実行するアプリケーションに代表されるプロセスである。
【００１５】
トレース部４０は、プロセスＡＡ２１、プロセスＡＢ２２、プロセスＢＡ３１、プロセスＢＢ３２の挙動をトレースするプロセス実行環境Ａ２０上で動作する。
トレース部４０は、トレース情報生成部の例でもある。
【００１６】
トレース記憶部４１は、トレース部４０にてトレースした挙動情報を記憶する。
【００１７】
プロセス管理部４２は、プロセス実行環境Ｂ３０上で動作する各プロセスを含むプロセス実行環境Ａ２０上で動作する各プロセスの起動終了等を管理する。
【００１８】
プロセス実行環境判断部４３は、プロセス管理部４２の情報を解析し、トレース情報に付加するためのプロセス実行環境情報を算出する。
【００１９】
プロセス実行環境管理テーブル４４は、プロセス実行環境判断部４３にて処理した情報を管理するテーブルである。
【００２０】
図２は、図１のプロセス実行環境Ａ２０についてレイヤ構造を示したものである。
【００２１】
図２において、計算機装置１０からプロセスＡＢ２２までは図１と同一である。
プロセス実行環境Ａ２０は、カーネル２４とユーザランドＡ２３を用いてプロセスＡＡ２１及びプロセスＡＢ２２を制御する。
プロセス実行環境Ｂ３０は、プロセス実行環境Ａ２０内のカーネル２４を共用し、ユーザランドＡ２３の一部機能とユーザランドＢ３３を用いてプロセスＢＡ３１及びプロセスＢＢ３２を制御する。
この構成はＬｉｎｕｘ（登録商標）ではコンテナと呼ばれるものである。
【００２２】
図３はプロセス実行環境管理テーブル４４の例である。
【００２３】
図３において、プロセスＩＤ１０１は、プロセス管理部４２で管理している各プロセスに一意に決定されるプロセス番号を格納している。
タイムスタンプ１０２は、当該レコードをプロセス実行環境管理テーブル４４に登録した時間を格納している。
プロセス名１０３は、プロセス管理部４２で管理している各プロセスの実行名を格納している。
実行環境名１０４は、プロセス管理部４２の情報を取得しプロセス実行環境判断部４３にてプロセス実行環境を解析した結果を格納している。
【００２４】
図４はプロセス実行環境判断部４３の処理フローである。
【００２５】
図４において処理２０１のトレース終了判断を行うまで、プロセス実行環境判断部４３はプロセス実行環境Ａ２０にて実行されているプロセスＩＤの確認とプロセス実行環境管理テーブル４４への登録を継続する。
【００２６】
処理２０２にて、プロセス実行環境判断部４３は、プロセス実行環境管理テーブル４４未登録プロセスの有無を確認し、未登録プロセスが存在した場合は処理２０３にて未登録プロセスのプロセス名とＩＤを取得する処理を実施する。
処理２０４にて、プロセス実行環境判断部４３は、プロセス名がｉｎｉｔかどうかの判定を行い、ｉｎｉｔであれば処理２０５にてプロセスＩＤが１か否かを確認し、１であれば処理２０６にてプロセス実行環境管理テーブル４４に実行環境Ａのプロセス（プロセス名ｉｎｉｔ）として登録する。
プロセスＩＤが１でなければ処理２０７にて、プロセス実行環境判断部４３は、プロセス実行環境管理テーブル４４に実行環境Ｂのプロセス（プロセス名ｉｎｉｔ）として登録する。
なお、プロセス名がｉｎｉｔのプロセスは、最初に起動され、他のプロセスを起動する始点プロセスである。
【００２７】
処理２０４にてプロセスがｉｎｉｔプロセスでは無いと判断した場合は、プロセス実行環境判断部４３は、処理２０８にてプロセスの親プロセスを確認する。
確認の結果処理２０９にて親プロセスが実行環境Ａのｉｎｉｔプロセスの場合は、プロセス実行環境判断部４３は、処理２１０にてプロセス実行環境管理テーブル４４に実行環境Ａのプロセス（プロセス名：モジュール名）を登録し、処理２１１にて親プロセスが実行環境Ｂのｉｎｉｔプロセスの場合は処理２１２にてプロセス実行環境管理テーブル４４に実行環境Ｂのプロセス（プロセス名：モジュール名）を登録する。
処理２０９及び処理２１１にて親プロセスが実行環境Ａのｉｎｉｔプロセス、実行環境Ｂのｉｎｉｔプロセスで無かった場合は、プロセス実行環境判断部４３は、処理２０８にて確認した親プロセスについて更に処理２０８から処理２１３を実施してどちらのｉｎｉｔプロセスの属性なのかの調査を実施し、結果をプロセス実行環境管理テーブル４４に登録する。
【００２８】
図５は、トレース記憶部４１にて記憶されるトレース結果の例である。
【００２９】
図５において、ＩＤ３０１はトレース結果のシーケンス番号、タイムスタンプ３０２はトレースした時間、プロセスＩＤ３０３はトレースしたプロセスＩＤ、イベント３０４はトレースしたプロセスＩＤが実行したイベントである。
【００３０】
図６は、トレース記憶部４１にて記憶されるトレース結果の例である。
【００３１】
図６において、ＩＤ４０１はトレース結果のシーケンス番号、タイムスタンプ４０２はトレースした時間、プロセスＩＤ４０３はトレースしたプロセスＩＤ、イベント４０４はトレースしたプロセスＩＤが実行したイベント、実行環境４０５は図３に示すプロセス実行環境管理テーブル４４を用いて確認可能なプロセスＩＤ４０３が動作している実行環境である。
図６に示すトレース結果は、トレース情報の例に相当する。
【００３２】
図７はトレース部４０の処理フローである。
【００３３】
図７において処理開始時、トレース部４０は、処理５０１にて、プロセス実行環境判断部４３を実行し、図４に示した処理をプロセス実行環境判断部４３にて行う。
処理５０２にて、トレース部４０は、ｆｔｒａｃｅやｓｔｒａｃｅ等のＬｉｎｕｘ（登録商標）で使用する任意のトレースプログラムを実行する。
これらのトレースプログラムは少なくとも図５で示す情報を持っている。
処理５０３でトレースを終了するまで、プロセス実行環境判断部４３とトレースプログラムは動作し、終了操作が行われると処理５０４にてｆｔｒａｃｅ等の任意のトレースプログラムを終了し、処理５０５にてプロセス実行環境判断部４３を終了する。
その後、トレース部４０は、処理５０６にてプロセス実行環境管理テーブル４４とトレース結果３００をマージし、図６に示したトレース結果を出力する。
【００３４】
次に動作について説明する。
【００３５】
計算機装置１０はＬｉｎｕｘ（登録商標）が動作しており、Ｌｉｎｕｘ（登録商標）のコンテナ機能によりプロセス実行環境Ａ２０上でプロセス実行環境Ｂ３０が動作している。
図２ではプロセス実行環境Ａ上でプロセスＡＡ２１とプロセスＡＢ２２が、プロセス実行環境ＢでプロセスＢＡ３１とプロセスＢＢ３２が動作していることを示しているが、これは動作を説明するための例であり、プロセス数は２に限定しない。
操作者がトレースを開始した際、図７に示す処理が実行され、処理５０１にてプロセス実行環境判断部４３を実行し図４に示した処理がプロセス実行環境判断部４３にて開始される。
プロセス実行環境ＡのｉｎｉｔプロセスのプロセスＩＤは１であるため、先ずに実行環境Ａのｉｎｉｔプロセスがプロセス実行環境管理テーブル４４に登録され、引き続き、プロセス実行環境Ａ２０の起動時に生成されたプロセスがプロセス実行環境管理テーブル４４に登録される。
続いて、プロセス実行環境Ｂ３０のｉｎｉｔが登録される。
プロセス実行環境Ｂ３０のｉｎｉｔのプロセスＩＤは、プロセス実行環境Ａ２０から参照すると１ではないため、プロセス実行環境Ａ２０のｉｎｉｔプロセスとプロセス実行環境Ｂ３０のｉｎｉｔプロセスが区別できることになる。
引き続き、プロセス実行環境Ａ２０またはプロセス実行環境Ｂ３０上のプロセスがプロセス実行環境管理テーブル４４に登録される。
次に、処理５０２にてｆｔｒａｃｅやｓｔｒａｃｅ等のＬｉｎｕｘ（登録商標）で使用する任意のトレースプログラムを実行する。
ｆｔｒａｃｅやｓｔｒａｃｅ等のＬｉｎｕｘ（登録商標）で使用する任意のトレースプログラムは既知のものであり、詳細の動作について説明は省略するが、少なくとも、図５に示すＩＤ３０１、タイムスタンプ３０２、プロセスＩＤ３０３、イベント３０４を出力する。
【００３６】
トレース終了後は処理５０４にて先ず任意のトレースプログラムを終了し、処理５０５にてプロセス実行環境判断部４３を終了する。
次に処理５０６にてプロセス実行環境管理テーブル４４とトレース結果３００を用いてマージする。
マージする際、プロセス実行環境管理テーブル４４のレコードにあるプロセスＩＤ１０１の番号とトレース結果３００のレコードにあるプロセスＩＤ３０３の情報だけではなく、プロセス実行環境管理テーブル４４のレコードにあるタイムスタンプ１０２の時間情報とトレース結果３００のレコードにあるタイムスタンプ４０２の時間情報の情報を用い、プロセス実行環境管理テーブル４４のプロセスＩＤが一致し、なおかつ、時間情報の差分が最小となるレコードに存在する実行環境名１０４をマージする。
これは、プロセスＩＤは再利用される場合があり、なおかつ、図８に示すとおりトレースログ記録の時間情報とプロセス実行環境管理テーブルの時間情報が前後する可能性を考慮するためである。
【００３７】
以上より、図６に示す既に説明した実行環境を含めたトレース結果を得ることができる。
従来の構成では図９に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図６のトレース結果を用いることにより、図９のみならず、図１０や図１１に示すようにプロセス実行環境を考慮したプロセスの動作状況を確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握が非常に容易となる効果が得られる。
【００３８】
実施の形態２．
以上の実施の形態１では、図６に示すトレース結果をトレース後にマージすることにより実現可能とするようにしたものであるが、次に図６に示すトレース結果を都度マージする場合の実施形態を示す。
図１２はこのような場合のトレース部４０の処理フローである。
【００３９】
図１２において処理開始時、処理６０１にてプロセス実行環境判断部４３を実行し、図４に示した処理をプロセス実行環境判断部４３にて行う。
次に、処理６０２にてｆｔｒａｃｅやｓｔｒａｃｅ等のＬｉｎｕｘ（登録商標）で使用する任意のトレースプログラムを実行する。
これらのトレースプログラムは少なくとも図５で示す情報を持っている。
処理６０３でトレース結果３００のレコードにトレース結果４００に存在しないレコードを検出した場合は、処理６０４にて該当レコードのプロセスＩＤがプロセス実行環境管理テーブルに登録されているかを確認し、登録がある場合は処理６０５にて当該レコードをマージしてトレース結果４００のレコードに登録を行う。
処理６０４は、図８に示すとおりトレースログ記録の時間情報とプロセス実行環境管理テーブルの時間情報が前後する可能性を考慮したものである。
【００４０】
以上より、図６に示す既に説明した実行環境を含めたトレース結果を得ることができる。
従来の構成では図９に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図６のトレース結果を用いることにより、図９のみならず、図１０や図１１に示すようにプロセス実行環境を考慮したプロセスの動作状況をリアルタイムで確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握がリアルタイムで容易となる効果が得られる。
【００４１】
実施の形態３．
以上の実施の形態１では、プロセス実行環境判断部をポーリングにより動作させるものであるが、次に図１３に示すプロセス実行環境判断部をイベントにより動作させる場合について説明する。
図１３は、本実施の形態に係るプログラムトレースを行う計算機装置７１０を示す構成図である。
【００４２】
図１３において、計算機装置７１０はＣＰＵやメモリ、ＨＤＤ、入力部などを備えたプロセス実行環境を実行するための装置である。
【００４３】
プロセス実行環境Ａ７２０は、Ｌｉｎｕｘ（登録商標）のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）である。
プロセス実行環境Ａ７２０は、第１のプロセス実行環境の例に相当する。
【００４４】
プロセスＡＡ７２１とプロセスＡＢ７２２は、プロセス実行環境Ａ７２０上で実行するアプリケーションに代表されるプロセスである。
【００４５】
プロセス実行環境Ｂ７３０は、プロセス実行環境Ａ７２０上で動作するプロセス実行環境Ａ７２０とは分離されたプロセス実行環境である。
プロセス実行環境Ｂ７３０は、第２のプロセス実行環境の例に相当する。
【００４６】
プロセスＢＡ７３１とプロセスＢＢ７３２は、プロセス実行環境Ｂ７３０上で実行するアプリケーションに代表されるプロセスである。
【００４７】
トレース部７４０は、プロセスＡＡ７２１、プロセスＡＢ７２２、プロセスＢＡ７３１、プロセスＢＢ７３２の挙動をトレースするプロセス実行環境Ａ７２０上で動作する。
トレース部７４０は、トレース情報生成部の例でもある。
【００４８】
トレース記憶部７４１は、トレース部７４０にてトレースした挙動情報を記憶する。
【００４９】
プロセス管理部７４２は、プロセス実行環境Ｂ７３０上で動作する各プロセスを含むプロセス実行環境Ａ７２０上で動作する各プロセスの起動終了等を管理する。
【００５０】
プロセス実行環境判断部７４３は、プロセス管理部７４２の情報を解析し、トレース情報に付加するためのプロセス実行環境情報を算出する。
【００５１】
プロセス実行環境管理テーブル７４４は、プロセス実行環境判断部７４３にて処理した情報を管理するテーブルである。
【００５２】
図１４は、図１のプロセス実行環境Ａ７２０についてレイヤ構造を示したものである。
【００５３】
図１４において、計算機装置７１０からプロセスＡＢ７２２までは図１と同一である。
プロセス実行環境Ａ７２０は、カーネル７２４とユーザランドＡ７２３を用いてプロセスＡＡ７２１及びプロセスＡＢ７２２を制御する。
プロセス実行環境Ｂ７３０は、プロセス実行環境Ａ７２０内のカーネル７２４を共用し、ユーザランドＡ７２３の一部機能とユーザランドＢ７３３を用いてプロセスＢＡ７３１及びプロセスＢＢ７３２を制御する。
この構成はＬｉｎｕｘ（登録商標）ではコンテナと呼ばれるものである。
【００５４】
図１５はプロセス実行環境判断部７４３の処理フローである。
【００５５】
図１５において処理８０１のトレース終了判断を行うまで、プロセス実行環境判断部７４３はプロセス実行環境Ａ７２０にて実行されているプロセスＩＤの確認とプロセス実行環境管理テーブル７４４への登録を継続する。
【００５６】
処理８０２にて、プロセス管理部７４２よりプロセス起動を通知するメッセージを受けた場合に、プロセス実行環境判断部７４３は、処理８０３にて起動プロセスのプロセス名とＩＤを取得する処理を実施する。
処理８０４にて、プロセス実行環境判断部７４３は、プロセス名がｉｎｉｔかどうかの判定をおこない、ｉｎｉｔであれば処理８０５にてプロセスＩＤが１か否かを確認し、１であれば処理８０６にてプロセス実行環境管理テーブル７４４に実行環境Ａのプロセス（プロセス名ｉｎｉｔ）として登録する。
プロセスＩＤが１でなければ処理８０７にて、プロセス実行環境判断部７４３は、プロセス実行環境管理テーブル７４４に実行環境Ｂのプロセス（プロセス名ｉｎｉｔ）として登録する。
なお、プロセス名がｉｎｉｔのプロセスは、最初に起動され、他のプロセスを起動する始点プロセスである。
【００５７】
処理８０４にてプロセスがｉｎｉｔプロセスでは無いと判断した場合は、プロセス実行環境判断部７４３は、処理８０８にてプロセスの親プロセスを確認する。
確認の結果処理８０９にて親プロセスが実行環境Ａのｉｎｉｔプロセスの場合は、プロセス実行環境判断部７４３は、処理８１０にてプロセス実行環境管理テーブル７４４に実行環境Ａのプロセス（プロセス名：モジュール名）を登録し、処理８１１にて親プロセスが実行環境Ｂのｉｎｉｔプロセスの場合は処理８１２にてプロセス実行環境管理テーブル７４４に実行環境Ｂのプロセス（プロセス名：モジュール名）を登録する。
処理８０９及び処理８１１にて親プロセスが実行環境Ａのｉｎｉｔプロセス、実行環境Ｂのｉｎｉｔプロセスで無かった場合は、プロセス実行環境判断部７４３は、処理８０８にて確認した親プロセスについて更に処理８０８から処理８１３を実施してどちらのｉｎｉｔプロセスの属性なのかの調査を実施し、結果をプロセス実行環境管理テーブル７４４に登録する。
【００５８】
以降は実施の形態１で説明した処理を行うことにより、実施の形態１で説明した図６に示す既に説明した実行環境を含めたトレース結果を得ることができ、なおかつ、ポーリングと比較しイベント待ちの場合は計算機装置７１０のＣＰＵリソース負荷減少の効果が得られる。
従来の構成では図９に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図６のトレース結果を用いることにより、図９のみならず、図１０や図１１に示すようにプロセス実行環境を考慮したプロセスの動作状況を確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握が非常に容易となる効果が得られる。
【００５９】
実施の形態４．
以上の実施の形態３では、トレース中のＣＰＵ負荷を減少させ図６に示すトレース結果をトレース後にマージすることにより実現可能ものであるが、次に図６に示すトレース結果を都度マージする場合の実施形態を示す。
【００６０】
図１２はこのような場合のトレース部の処理フローである。
【００６１】
図１２において処理開始時、処理６０１にてプロセス実行環境判断部７４３を実行し図１５に示した処理をプロセス実行環境判断部７４３にて行う。
次に、処理６０２にてｆｔｒａｃｅやｓｔｒａｃｅ等のＬｉｎｕｘ（登録商標）で使用する任意のトレースプログラムを実行する。
これらのトレースプログラムは少なくとも図５で示す情報を持っている。
処理６０３でトレース結果３００のレコードにトレース結果４００に存在しないレコードを検出した場合は、処理６０４にて該当レコードのプロセスＩＤがプロセス実行環境管理テーブルに登録されているかを確認し、登録がある場合は処理６０５にて当該レコードをマージしてトレース結果４００のレコードに登録を行う。
処理６０４は、図８に示すとおりトレースログ記録の時間情報とプロセス実行環境管理テーブルの時間情報が前後する可能性を考慮したものである。
【００６２】
以上より、図６に示す既に説明した実行環境を含めたトレース結果を得ることができる。
従来の構成では図９に示す実行環境が考慮されないプロセスの動作状況のみが確認可能であったが、本実施の形態では、図６のトレース結果を用いることにより、図９のみならず、図１０や図１１に示すようにプロセス実行環境を考慮したプロセスの動作状況をリアルタイムで確認することができる。
このため、各実行環境の動作状況が他の実行環境に影響されているかどうかの確認や、実行環境を跨った処理についての問題点把握がリアルタイムで容易となる効果が得られる。
【００６３】
最後に、実施の形態１〜４に示した計算機装置１０、７１０のハードウェア構成例を図１６を参照して説明する。
計算機装置１０、７１０はコンピュータであり、計算機装置１０、７１０の各要素をプログラムで実現することができる。
計算機装置１０、７１０のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００６４】
演算装置９０１は、プログラムを実行するＣＰＵである。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００６５】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図１及び図１３に示す「〜部」（トレース記憶部４１、７４１を除く、以下も同様）として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図１及び図１３に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態１〜４の説明において、「〜の判断」、「〜の判定」、「〜の確認」、「〜の抽出」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【００６６】
なお、図１６の構成は、あくまでも計算機装置１０、７１０のハードウェア構成の一例を示すものであり、計算機装置１０、７１０のハードウェア構成は図１６に記載の構成に限らず、他の構成であってもよい。
【００６７】
また、実施の形態１〜４に示す手順により、本発明に係るプロセス解析方法を実現可能である。
【００６８】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００６９】
１０  計算機装置、２０  プロセス実行環境Ａ、２１  プロセスＡＡ、２２  プロセスＡＢ、３０  プロセス実行環境Ｂ、３１  プロセスＢＡ、３２  プロセスＢＢ、４０  トレース部、４１  トレース記憶部、４２  プロセス管理部、４３  プロセス実行環境判断部、４４  プロセス実行環境管理テーブル、７１０  計算機装置、７２０  プロセス実行環境Ａ、７２１  プロセスＡＡ、７２２  プロセスＡＢ、７３０  プロセス実行環境Ｂ、７３１  プロセスＢＡ、７３２  プロセスＢＢ、７４０  トレース部、７４１  トレース記憶部、７４２  プロセス管理部、７４３  プロセス実行環境判断部、７４４  プロセス実行環境管理テーブル。
【図１】
2015170084.tif 000003
【図２】
2015170084.tif 000004
【図３】
2015170084.tif 000005
【図４】
2015170084.tif 000006
【図５】
2015170084.tif 000007
【図６】
2015170084.tif 000008
【図７】
2015170084.tif 000009
【図８】
2015170084.tif 000010
【図９】
2015170084.tif 000011
【図１０】
2015170084.tif 000012
【図１１】
2015170084.tif 000013
【図１２】
2015170084.tif 000014
【図１３】
2015170084.tif 000015
【図１４】
2015170084.tif 000016
【図１５】
2015170084.tif 000017
【図１６】
2015170084.tif 000018