JPH07191872A - システム解析装置 - Google Patents
システム解析装置Info
- Publication number
- JPH07191872A JPH07191872A JP6308467A JP30846794A JPH07191872A JP H07191872 A JPH07191872 A JP H07191872A JP 6308467 A JP6308467 A JP 6308467A JP 30846794 A JP30846794 A JP 30846794A JP H07191872 A JPH07191872 A JP H07191872A
- Authority
- JP
- Japan
- Prior art keywords
- message
- routine
- processes
- graph
- mask
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3612—Analysis of software for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Digital Computer Display Output (AREA)
Abstract
(57)【要約】
【目的】 共同プロセスのシステムの動作を解析・制御
する方法を提供する。 【構成】 このプログラムにより使用されるシステム呼
出のライブラリは、システム呼出を実行し、システム呼
出が実行されたことを示すメッセージを送信する動的リ
ンクライブラリにより置換される。メッセージは表示シ
ステムにより受信される。表示システムは、プロセスの
システムの現行状態を示す画像表示を生成することによ
りこのメッセージに応答する。画像表示はプロセスのシ
ステムをツリー状に表示する。ツリー内のノードはシス
テム内のプロセスと、このプロセスにより使用されるフ
ァイルのような資源を示す。ツリー内のエッジはプロセ
スと他のプロセス又は資源との間の関係を示す。ユーザ
はどのシステム呼出がメッセージを生成するか制御で
き、表示システムがメッセージに応答する速度を制御で
き、プロセスの実行を制御できる。
する方法を提供する。 【構成】 このプログラムにより使用されるシステム呼
出のライブラリは、システム呼出を実行し、システム呼
出が実行されたことを示すメッセージを送信する動的リ
ンクライブラリにより置換される。メッセージは表示シ
ステムにより受信される。表示システムは、プロセスの
システムの現行状態を示す画像表示を生成することによ
りこのメッセージに応答する。画像表示はプロセスのシ
ステムをツリー状に表示する。ツリー内のノードはシス
テム内のプロセスと、このプロセスにより使用されるフ
ァイルのような資源を示す。ツリー内のエッジはプロセ
スと他のプロセス又は資源との間の関係を示す。ユーザ
はどのシステム呼出がメッセージを生成するか制御で
き、表示システムがメッセージに応答する速度を制御で
き、プロセスの実行を制御できる。
Description
【0001】
【産業上の利用分野】本発明はシステムの解析及び制御
に関する。更に詳細には、本発明はコンピュータで実行
するプロセスを構成するシステムの解析及び制御に関す
る。
に関する。更に詳細には、本発明はコンピュータで実行
するプロセスを構成するシステムの解析及び制御に関す
る。
【0002】
【従来の技術】巨大なシステムを構築する際の重要な事
項はデバッグである。すなわち、システムの実現におい
てエラーを検出し、解析し、そして訂正することであ
る。システムがコンピュータで実行されるプログラムに
より実現される場合、プログラムをデバッグするのに利
用可能な様々なツールが存在する。ciaのようなディ
スカバリプログラムが存在する。
項はデバッグである。すなわち、システムの実現におい
てエラーを検出し、解析し、そして訂正することであ
る。システムがコンピュータで実行されるプログラムに
より実現される場合、プログラムをデバッグするのに利
用可能な様々なツールが存在する。ciaのようなディ
スカバリプログラムが存在する。
【0003】このプログラムは、プログラマが、プログ
ラムがどのように構成されているか理解するのを助け
る。このプログラムはデバッガと呼ばれる。このデバッ
ガは、デバッグされているプログラムが実行されるとき
に起こる事象の内容をプログラマに見せることができ
る。最近のデバッガは、プログラマが、デバッグされて
いるプログラムの実行を対話型で制御できるようになっ
ている。
ラムがどのように構成されているか理解するのを助け
る。このプログラムはデバッガと呼ばれる。このデバッ
ガは、デバッグされているプログラムが実行されるとき
に起こる事象の内容をプログラマに見せることができ
る。最近のデバッガは、プログラマが、デバッグされて
いるプログラムの実行を対話型で制御できるようになっ
ている。
【0004】このようなデバッガの一例は、フリーソフ
トウエア財団から入手できる、GDBデバッガである。
プログラムの呼出履歴,分散メモリの並列プログラムに
より発生されたイベント又はプログラムの並列実行のト
レースなどのような情報を示すために、デバッガは更に
グラフィック・インターフェースの使用を開始した。
トウエア財団から入手できる、GDBデバッガである。
プログラムの呼出履歴,分散メモリの並列プログラムに
より発生されたイベント又はプログラムの並列実行のト
レースなどのような情報を示すために、デバッガは更に
グラフィック・インターフェースの使用を開始した。
【0005】このようなグラフィック・インターフェー
スの一例は、IEEEコンピュータ,1993年6月発
行,88−95頁に掲載された、アダム・ベグエリン(A
damBeguelin)らの、“複合環境におけるビジュアリゼー
ション及びデバッギング(Visualization and Debugging
in a Heterogeneous Environment)”と題する論文中に
開示されている。
スの一例は、IEEEコンピュータ,1993年6月発
行,88−95頁に掲載された、アダム・ベグエリン(A
damBeguelin)らの、“複合環境におけるビジュアリゼー
ション及びデバッギング(Visualization and Debugging
in a Heterogeneous Environment)”と題する論文中に
開示されている。
【0006】ここで述べられているディスカバリプログ
ラム及びデバッガはその本来の用途には完全に適合す
る。しかし、最近のシステムは一般的に、一連の共同サ
ブルーチンとして実現されるのではなく、むしろ、一連
の共同プロセスとして実現される。ここで、説明の便宜
上、“プロセス”とは、ユーザ用のプログラムを実際に
実行するコンピュータシステムにおける実体(エンティ
ティ)として定義する。
ラム及びデバッガはその本来の用途には完全に適合す
る。しかし、最近のシステムは一般的に、一連の共同サ
ブルーチンとして実現されるのではなく、むしろ、一連
の共同プロセスとして実現される。ここで、説明の便宜
上、“プロセス”とは、ユーザ用のプログラムを実際に
実行するコンピュータシステムにおける実体(エンティ
ティ)として定義する。
【0007】多くのシステムでは、共同プロセスは異な
るコンピュータで実行する。システムが一連の共同プロ
セスとして実現される場合、システムのデバッギング
は、このプロセスにより実行されている個々のプログラ
ムの理解とデバッギングだけでなく、プロセスの共同動
作の理解とデバッギングも含む。このプロセスの共同動
作の理解とデバッギングは、ここに述べたプログラムデ
ィスカバリツール及びデバッガによっては行うことがで
きない。
るコンピュータで実行する。システムが一連の共同プロ
セスとして実現される場合、システムのデバッギング
は、このプロセスにより実行されている個々のプログラ
ムの理解とデバッギングだけでなく、プロセスの共同動
作の理解とデバッギングも含む。このプロセスの共同動
作の理解とデバッギングは、ここに述べたプログラムデ
ィスカバリツール及びデバッガによっては行うことがで
きない。
【0008】現今のコンピュータシステムは、共同プロ
セスを構成するデバッギングシステムのために貧弱な資
源しか提供しない。例えば、UNIXオペレーティング
・システム(UNIXはユニックス・システム・ラボラ
トリース社の登録商標である。)を使用するコンピュー
タシステムでは、オペレーティング・システムに対して
プロセスにより為された呼出のリストを出力する“トレ
ース”ユーティリティが存在する。
セスを構成するデバッギングシステムのために貧弱な資
源しか提供しない。例えば、UNIXオペレーティング
・システム(UNIXはユニックス・システム・ラボラ
トリース社の登録商標である。)を使用するコンピュー
タシステムでは、オペレーティング・システムに対して
プロセスにより為された呼出のリストを出力する“トレ
ース”ユーティリティが存在する。
【0009】また、どんなファイルが所定のプロセスを
オープンするかユーザに伝える“オーファイル(ofil
e)”ユーティリティ及びどんなプロセスが所定のファイ
ルを使用しているか識別する“エフユーザ(fuser)”ユ
ーティリティも存在する。これらの貧弱なデバッギング
ツールの欠点は、単一のプロセッサで実行するプロセス
に関する情報しか提供しないことであり、従って、共同
プロセスを異なるプロセッサで実行する理解及びデバッ
ギングシステムでは有用性が殆ど無い。
オープンするかユーザに伝える“オーファイル(ofil
e)”ユーティリティ及びどんなプロセスが所定のファイ
ルを使用しているか識別する“エフユーザ(fuser)”ユ
ーティリティも存在する。これらの貧弱なデバッギング
ツールの欠点は、単一のプロセッサで実行するプロセス
に関する情報しか提供しないことであり、従って、共同
プロセスを異なるプロセッサで実行する理解及びデバッ
ギングシステムでは有用性が殆ど無い。
【0010】
【発明が解決しようとする課題】従って、本発明の目的
は前記のようなシステムの精密な解析と制御を可能にす
る方法を提供することにより、共同プロセスを構成する
デバッギングシステムに伴う前記の問題点を解決するこ
とである。
は前記のようなシステムの精密な解析と制御を可能にす
る方法を提供することにより、共同プロセスを構成する
デバッギングシステムに伴う前記の問題点を解決するこ
とである。
【0011】
【課題を解決するための手段】本発明の方法は、ビジュ
アルプロセスマネージャで体現される。ビジュアルプロ
セスマネージャはモニタとグラフィカル・ディスプレイ
・ジェネレータ(画像表示発生器)を有する。モニタ
は、システム内のプロセスが子プロセスを作成するか、
又はファイルのような資源にアクセスするような操作に
関するオペレーティング・システム呼出を実行する場合
に、メッセージを送信する。
アルプロセスマネージャで体現される。ビジュアルプロ
セスマネージャはモニタとグラフィカル・ディスプレイ
・ジェネレータ(画像表示発生器)を有する。モニタ
は、システム内のプロセスが子プロセスを作成するか、
又はファイルのような資源にアクセスするような操作に
関するオペレーティング・システム呼出を実行する場合
に、メッセージを送信する。
【0012】グラフィカル・ディスプレイ・ジェネレー
タはこのメッセージに応答して表示を生成する。この表
示は、プロセスのシステムの状態及びメッセージにより
必要とされるような変更を示す。従って、ユーザはプロ
セスのシステム内で起こっている事象を、この表示から
決定できる。更に、ユーザは、この表示及びプロセスの
システムさえも制御するために、マウスのようなポイン
ティング・デバイスを使用することもできる。
タはこのメッセージに応答して表示を生成する。この表
示は、プロセスのシステムの状態及びメッセージにより
必要とされるような変更を示す。従って、ユーザはプロ
セスのシステム内で起こっている事象を、この表示から
決定できる。更に、ユーザは、この表示及びプロセスの
システムさえも制御するために、マウスのようなポイン
ティング・デバイスを使用することもできる。
【0013】好ましい実施例では、この表示はノード及
びエッジの有向非巡回グラフである。アクセスするプロ
セス及び資源はグラフ内のノードであり、ノードを接続
するエッジはノード間の関係を示す。例えば、プロセス
を示すノードはエッジによりその親用のノードに接続さ
れ、プロセスによりアクセスされるファイルに関するノ
ードは別のエッジによりプロセス用のノードに接続され
る。
びエッジの有向非巡回グラフである。アクセスするプロ
セス及び資源はグラフ内のノードであり、ノードを接続
するエッジはノード間の関係を示す。例えば、プロセス
を示すノードはエッジによりその親用のノードに接続さ
れ、プロセスによりアクセスされるファイルに関するノ
ードは別のエッジによりプロセス用のノードに接続され
る。
【0014】ビジュアルプロセスマネージャの重要な利
点は、プロセスにより実行されるコードの変更が不要な
ことである。モニタは動的リンク・ライブラリにより実
現される。動的リンク・ライブラリは、コンピュータシ
ステムにより提供されたオペレーティング・システム呼
出のライブラリを、システム呼出を行うだけでなく、メ
ッセージも生成する新たなライブラリに置換する。
点は、プロセスにより実行されるコードの変更が不要な
ことである。モニタは動的リンク・ライブラリにより実
現される。動的リンク・ライブラリは、コンピュータシ
ステムにより提供されたオペレーティング・システム呼
出のライブラリを、システム呼出を行うだけでなく、メ
ッセージも生成する新たなライブラリに置換する。
【0015】モニタ内のプロセス毎のマスクにより、ユ
ーザは、どのシステム呼出がメッセージを生じるか、メ
ッセージのフォームはどのようなものであるべきか、及
びシステム呼出用のライブラリルーチンは継続前にユー
ザからの肯定応答を待つべきか否かを指示することがで
きる。
ーザは、どのシステム呼出がメッセージを生じるか、メ
ッセージのフォームはどのようなものであるべきか、及
びシステム呼出用のライブラリルーチンは継続前にユー
ザからの肯定応答を待つべきか否かを指示することがで
きる。
【0016】好ましい実施例は、プロセスのシステムを
解析するために本発明の方法を使用するが、本発明の方
法は、一般的に適用可能であり、ルーチンのライブラリ
が、同じ機能を果たすが副作用としてメッセージも送信
する動的リンク・ライブラリにより置換され得るような
全ての状況において使用することができる。本発明の特
別な利点は、システムを、システムのアプリケーション
レベルコードの変更又はリコンパイルすること無しに解
析できることである。
解析するために本発明の方法を使用するが、本発明の方
法は、一般的に適用可能であり、ルーチンのライブラリ
が、同じ機能を果たすが副作用としてメッセージも送信
する動的リンク・ライブラリにより置換され得るような
全ての状況において使用することができる。本発明の特
別な利点は、システムを、システムのアプリケーション
レベルコードの変更又はリコンパイルすること無しに解
析できることである。
【0017】
【実施例】以下、図面を参照しながら本発明を具体的に
説明する。
説明する。
【0018】先ず、本発明を実現するシステムについて
説明し、次いで、システムの好ましい実施例について説
明し、最後に好ましい実施例の内容を具体的に説明す
る。
説明し、次いで、システムの好ましい実施例について説
明し、最後に好ましい実施例の内容を具体的に説明す
る。
【0019】ビジュアルプロセスマネージャを有するシ
ステム:図1 図1は常用の最新型分散コンピュータシステムの模式的
構成図である。数台のプロセッサ103は通信システム
111を介して相互に通信する。通信システム111
は、メッセージをプロセッサ103間で送信できるもの
であればどのようなシステムであってもかまわない。各
プロセッサの実行プログラムは多数のプロセス105で
ある。
ステム:図1 図1は常用の最新型分散コンピュータシステムの模式的
構成図である。数台のプロセッサ103は通信システム
111を介して相互に通信する。通信システム111
は、メッセージをプロセッサ103間で送信できるもの
であればどのようなシステムであってもかまわない。各
プロセッサの実行プログラムは多数のプロセス105で
ある。
【0020】プロセス105はメッセージを、同一の又
は他のプロセッサ103で実行する他のプロセスに送信
できる。プロセス105は固定記憶装置107内のファ
イル109ともアクセスできる。ファイルは、プロセス
105を実行するプロセッサ103に属する固定記憶装
置107に属するか又は別のプロセッサ103に属する
固定記憶装置107に属することができる。
は他のプロセッサ103で実行する他のプロセスに送信
できる。プロセス105は固定記憶装置107内のファ
イル109ともアクセスできる。ファイルは、プロセス
105を実行するプロセッサ103に属する固定記憶装
置107に属するか又は別のプロセッサ103に属する
固定記憶装置107に属することができる。
【0021】ビジュアルプロセスマネージャのユーザ
は、表示装置112と、何れかのプロセッサ103(こ
の場合は、プロセッサ103(a))に接続されたキー
ボード117及びマウス119のような入力装置を有す
る。キーボード117又はマウス119により、ユーザ
は表示装置112のディスプレイ上の表示に応答してプ
ロセッサ103(a)に入力を送ることができる。更に
詳細には、ユーザはマウス119を用いてディスプレイ
113内のポインタ115を移動させることができ、ま
た、マウス119のボタンを使用してコマンド入力を行
うことができる。
は、表示装置112と、何れかのプロセッサ103(こ
の場合は、プロセッサ103(a))に接続されたキー
ボード117及びマウス119のような入力装置を有す
る。キーボード117又はマウス119により、ユーザ
は表示装置112のディスプレイ上の表示に応答してプ
ロセッサ103(a)に入力を送ることができる。更に
詳細には、ユーザはマウス119を用いてディスプレイ
113内のポインタ115を移動させることができ、ま
た、マウス119のボタンを使用してコマンド入力を行
うことができる。
【0022】ビジュアルプロセスマネージャのユーザビ
ュー:図2,図3及び図5 ビジュアルプロセスマネージャのユーザは一般的に、図
2に示されるようなディスプレイにより作業する。グラ
フ201は表示装置112上に現れる。大抵の場合、プ
ロセッサ103はウインドウシステムを実行し、グラフ
201はディスプレイ113内のウインドウ内に現れ
る。グラフ201は有向非巡回グラフである。
ュー:図2,図3及び図5 ビジュアルプロセスマネージャのユーザは一般的に、図
2に示されるようなディスプレイにより作業する。グラ
フ201は表示装置112上に現れる。大抵の場合、プ
ロセッサ103はウインドウシステムを実行し、グラフ
201はディスプレイ113内のウインドウ内に現れ
る。グラフ201は有向非巡回グラフである。
【0023】このグラフは4台のコンピュータで実行す
る共同プロセスのシステムを示す。各コンピュータは、
コンピュータの名称(例えば、キーウィ(kiwi))を有す
るクラスタ203で示される。各クラスタの内部は一群
のプロセスボックス205である。各プロセスボックス
205は、クラスタにより示されるコンピュータで実行
するプロセス105を示す。プロセスボックス内の番号
は、このプロセスに関するプロセス識別子(pid)で
ある。
る共同プロセスのシステムを示す。各コンピュータは、
コンピュータの名称(例えば、キーウィ(kiwi))を有す
るクラスタ203で示される。各クラスタの内部は一群
のプロセスボックス205である。各プロセスボックス
205は、クラスタにより示されるコンピュータで実行
するプロセス105を示す。プロセスボックス内の番号
は、このプロセスに関するプロセス識別子(pid)で
ある。
【0024】プロセス識別子は、プロセスを識別するた
めにコンピュータ203のオペレーティング・システム
により使用される番号である。文字列はプロセスにより
現に実行されているプログラムの名称である。従って、
pid23087を有するプロセス105はgccプロ
グラムを実行する。?を有するプロセスボックス205
のプロセス105はプロセス初期化プログラムを実行す
る。点線207は、プロセス105間の親子関係を示
す。
めにコンピュータ203のオペレーティング・システム
により使用される番号である。文字列はプロセスにより
現に実行されているプログラムの名称である。従って、
pid23087を有するプロセス105はgccプロ
グラムを実行する。?を有するプロセスボックス205
のプロセス105はプロセス初期化プログラムを実行す
る。点線207は、プロセス105間の親子関係を示
す。
【0025】親プロセスが他のプロセス105を生成す
るオペレーティング・システムコマンドを実行する場
合、プロセス105は別のプロセス105の親である。
従って、プロセス23086はプロセス23088の親
である。
るオペレーティング・システムコマンドを実行する場
合、プロセス105は別のプロセス105の親である。
従って、プロセス23086はプロセス23088の親
である。
【0026】言うまでもなく、プロセス105はファイ
ル109にアクセスできる。ファイルはファイル長円2
09としてグラフ201に現れる。各ファイル長円20
9は、ファイル長円209により示されるファイルの名
称である文字列を有する。プロセス105がファイル1
09をオープンした場合、このプロセスのプロセスボッ
クス205とこのファイルのファイル長円209を接続
する実線のエッジ213が存在する。
ル109にアクセスできる。ファイルはファイル長円2
09としてグラフ201に現れる。各ファイル長円20
9は、ファイル長円209により示されるファイルの名
称である文字列を有する。プロセス105がファイル1
09をオープンした場合、このプロセスのプロセスボッ
クス205とこのファイルのファイル長円209を接続
する実線のエッジ213が存在する。
【0027】プロセス105が読出用のファイルをオー
プンした場合、矢線の先頭はプロセスボックス205に
存在する。プロセス105が書込用のファイルをオープ
ンした場合、矢線の先頭はファイル長円209に存在す
る。読出用及び書込用の両方のファイルがオープンされ
た場合、矢線の先頭はエッジ213の両端に存在する。
プンした場合、矢線の先頭はプロセスボックス205に
存在する。プロセス105が書込用のファイルをオープ
ンした場合、矢線の先頭はファイル長円209に存在す
る。読出用及び書込用の両方のファイルがオープンされ
た場合、矢線の先頭はエッジ213の両端に存在する。
【0028】プロセス105は、本発明が使用されるシ
ステム内で、UNIXオペレーティング・システムによ
り提供されるパイプ及びソケットにより通信する。パイ
プは、同じコンピュータ103で実行するプロセス間の
通信にのみ使用され、ソケットは、異なるコンピュータ
103で実行するプロセス間の通信に使用される。ソケ
ットの場合、通信は実際に通信システム111を介して
伝わる。パイプ及びソケットは、パイプ環215及びソ
ケット環211としてグラフ201に現れる。
ステム内で、UNIXオペレーティング・システムによ
り提供されるパイプ及びソケットにより通信する。パイ
プは、同じコンピュータ103で実行するプロセス間の
通信にのみ使用され、ソケットは、異なるコンピュータ
103で実行するプロセス間の通信に使用される。ソケ
ットの場合、通信は実際に通信システム111を介して
伝わる。パイプ及びソケットは、パイプ環215及びソ
ケット環211としてグラフ201に現れる。
【0029】ソケット環211は、ソケットが生成され
た時のソケットの受け手であったコンピュータの名称及
び受け手コンピュータにおけるポートの番号を有する。
ファイル長円209の場合と同じ方法で、エッジ213
はパイプ環215及びソケット環211と一緒に使用さ
れる。すなわち、パイプ又はソケットが書込のためにオ
ープンされる場合、矢線の先頭は環211又は215に
存在し,パイプ又はソケットが読出のためにオープンさ
れる場合、矢線の先頭はプロセスボックス205に存在
する。
た時のソケットの受け手であったコンピュータの名称及
び受け手コンピュータにおけるポートの番号を有する。
ファイル長円209の場合と同じ方法で、エッジ213
はパイプ環215及びソケット環211と一緒に使用さ
れる。すなわち、パイプ又はソケットが書込のためにオ
ープンされる場合、矢線の先頭は環211又は215に
存在し,パイプ又はソケットが読出のためにオープンさ
れる場合、矢線の先頭はプロセスボックス205に存在
する。
【0030】好ましい実施例が実現されるUNIXオペ
レーティング・システムのバージョンでは、パイプは片
方向であり、或るプロセスはパイプに書込み、他のプロ
セスはパイプから読出す。これに対して、ソケットは双
方向である。
レーティング・システムのバージョンでは、パイプは片
方向であり、或るプロセスはパイプに書込み、他のプロ
セスはパイプから読出す。これに対して、ソケットは双
方向である。
【0031】ビジュアルプロセスマネージャの動作:図
3及び図5 好ましい実施例では、ビジュアルプロセスマネージャは
2つの主要構成要素からなる。一つは、プロセスの実行
に応じて、システム内のプロセスをモニタする構成要素
であり、もう一つは、モニタ用構成要素からメッセージ
を受信し、このメッセージに応じてグラフ201を生成
する構成要素である。
3及び図5 好ましい実施例では、ビジュアルプロセスマネージャは
2つの主要構成要素からなる。一つは、プロセスの実行
に応じて、システム内のプロセスをモニタする構成要素
であり、もう一つは、モニタ用構成要素からメッセージ
を受信し、このメッセージに応じてグラフ201を生成
する構成要素である。
【0032】好ましい実施例における構成要素は、19
93年に米国のシンシナティで開催されたUSENIX
夏季会議講演集の279〜290頁に掲載された、グレ
ン・フォウラー(Glenn Fowler)らの“ユーザレベル複製
ファイルシステム(A user-level replicated file syst
em)”と題する論文に記載された、n次元ファイルシス
テム(nDFS)に基づくモニタと、プログラムdot
(IEEEトランザクションズ・オン・ソフトウエア・
エンジニアリング、Vol.19,No.3(1993
年3月)に掲載されたエムデン(Emden)らの“有向グラ
フの作図方法(ATechnique for Drawing Directed Graph
s)”と題する論文に説明されている)及びlefty
(カナダ,アルバータ州のカルガリにおける91年度グ
ラフィックス・インターフェース(Graphics Interfac
e),68〜76頁(1991年)に掲載された、エレフ
シェリオス・コウトソフィオス(Eleftherios Koutsofio
s)らの“Lefty:テクニカルピクチャ用の2ビュー
エディタ(a two-view editor for technical picture
s)”と題する論文中に開示されている)に基づくディス
プレイジェネレータである。
93年に米国のシンシナティで開催されたUSENIX
夏季会議講演集の279〜290頁に掲載された、グレ
ン・フォウラー(Glenn Fowler)らの“ユーザレベル複製
ファイルシステム(A user-level replicated file syst
em)”と題する論文に記載された、n次元ファイルシス
テム(nDFS)に基づくモニタと、プログラムdot
(IEEEトランザクションズ・オン・ソフトウエア・
エンジニアリング、Vol.19,No.3(1993
年3月)に掲載されたエムデン(Emden)らの“有向グラ
フの作図方法(ATechnique for Drawing Directed Graph
s)”と題する論文に説明されている)及びlefty
(カナダ,アルバータ州のカルガリにおける91年度グ
ラフィックス・インターフェース(Graphics Interfac
e),68〜76頁(1991年)に掲載された、エレフ
シェリオス・コウトソフィオス(Eleftherios Koutsofio
s)らの“Lefty:テクニカルピクチャ用の2ビュー
エディタ(a two-view editor for technical picture
s)”と題する論文中に開示されている)に基づくディス
プレイジェネレータである。
【0033】好ましい実施例において、ビジュアルプロ
セスマネージャの動作を開始するために、ユーザはディ
スプレイジェネレータを実行する第1のプロセスと、モ
ニタを実行する第2のプロセスをスタートさせる。各プ
ロセスは表示装置112内にそれ自身のウインドウを有
する。第2のプロセスが実行されると、ユーザは、ログ
ファイルを指定する、第2のプロセスのシェル内のセッ
トアップコマンドを実行する。
セスマネージャの動作を開始するために、ユーザはディ
スプレイジェネレータを実行する第1のプロセスと、モ
ニタを実行する第2のプロセスをスタートさせる。各プ
ロセスは表示装置112内にそれ自身のウインドウを有
する。第2のプロセスが実行されると、ユーザは、ログ
ファイルを指定する、第2のプロセスのシェル内のセッ
トアップコマンドを実行する。
【0034】モニタはこのログファイルにメッセージを
送り、また、ディスプレイジェネレータはこのログファ
イルからその入力と、モニタにより監視されるべきオペ
レーティング・システムのシステム呼出を獲得する。好
ましい実施例では、ユーザは、プロセス関連オペレーテ
ィング・システム呼出と、プロセス関連オペレーティン
グ・システム呼出及びファイルアクセス関連オペレーテ
ィング・システム呼出、及び前記の二つと共にI/Oシ
ステム呼出だけを指定できる。
送り、また、ディスプレイジェネレータはこのログファ
イルからその入力と、モニタにより監視されるべきオペ
レーティング・システムのシステム呼出を獲得する。好
ましい実施例では、ユーザは、プロセス関連オペレーテ
ィング・システム呼出と、プロセス関連オペレーティン
グ・システム呼出及びファイルアクセス関連オペレーテ
ィング・システム呼出、及び前記の二つと共にI/Oシ
ステム呼出だけを指定できる。
【0035】好ましい実施例では、プロセス関連オペレ
ーティング・システム呼出はUNIXフォーク(for
k),実行(exec)及びエグジット(exit)呼
出であり、ファイルアクセス関連呼出はオープン(op
en),クローズ(close),ダップ(dup)及
びパイプ(pipe)であり、I/O呼出は読出(re
ad)と書込(write)である。
ーティング・システム呼出はUNIXフォーク(for
k),実行(exec)及びエグジット(exit)呼
出であり、ファイルアクセス関連呼出はオープン(op
en),クローズ(close),ダップ(dup)及
びパイプ(pipe)であり、I/O呼出は読出(re
ad)と書込(write)である。
【0036】前記のセットアップコマンドが実行される
と、ディスプレイジェネレータ及びセットアップコマン
ドを実行するプロセスの現行状態により、モニタはログ
ファイル読出へのメッセージ送信を開始し、そしてプロ
セスの子孫がグラフ201に表示される。従って、プロ
セスの所定のシステムをモニタするのに必要なことは、
セットアップコマンドが実行されるプロセスの子として
システムの第1のプロセスをスタートさせることだけで
ある。
と、ディスプレイジェネレータ及びセットアップコマン
ドを実行するプロセスの現行状態により、モニタはログ
ファイル読出へのメッセージ送信を開始し、そしてプロ
セスの子孫がグラフ201に表示される。従って、プロ
セスの所定のシステムをモニタするのに必要なことは、
セットアップコマンドが実行されるプロセスの子として
システムの第1のプロセスをスタートさせることだけで
ある。
【0037】ディスプレイジェネレータはリアルタイム
モードとシングルステップモードの2つのモードで動作
する。リアルタイムモードでは、ディスプレイジェネレ
ータは、モニタがメッセージをログファイル内に配置す
るのに応じて、ログファイル内のメッセージを読出す。
シングルステップモードでは、モニタされるシステム
は、モニタが終了するまで実行される。この場合、モニ
タからの全てのメッセージはログファイル内に配置され
る。
モードとシングルステップモードの2つのモードで動作
する。リアルタイムモードでは、ディスプレイジェネレ
ータは、モニタがメッセージをログファイル内に配置す
るのに応じて、ログファイル内のメッセージを読出す。
シングルステップモードでは、モニタされるシステム
は、モニタが終了するまで実行される。この場合、モニ
タからの全てのメッセージはログファイル内に配置され
る。
【0038】その後、ディスプレイジェネレータはログ
ファイル内のメッセージを読出す。好ましい実施例で
は、モードは、ディスプレイジェネレータの実行を開始
するコマンドのオプションにより指定される。いずれの
場合も、グラフ201は、メッセージがログファイルか
ら読出されるのに応じて、動的に更新される。
ファイル内のメッセージを読出す。好ましい実施例で
は、モードは、ディスプレイジェネレータの実行を開始
するコマンドのオプションにより指定される。いずれの
場合も、グラフ201は、メッセージがログファイルか
ら読出されるのに応じて、動的に更新される。
【0039】何れかのモードにおけるディスプレイジェ
ネレータの動作は、ポインタ115がグラフ201のノ
ード上に配置されず、マウスの右ボタンがクリックされ
た場合に、グラフ201に現われるグローバルメニュー
により制御される。図3はリアルタイムモードに関する
グローバルメニューを示す。メニューオプションは次の
通りである。
ネレータの動作は、ポインタ115がグラフ201のノ
ード上に配置されず、マウスの右ボタンがクリックされ
た場合に、グラフ201に現われるグローバルメニュー
により制御される。図3はリアルタイムモードに関する
グローバルメニューを示す。メニューオプションは次の
通りである。
【0040】●ドゥ・レイアウト(do layout):グラフ2
01のレイアウトをやり直す, ●リドロー(redraw):グラフをリフレッシュする, ●セーブ・グラフ(save graph):グラフをファイルにセ
ーブする, ●ズームイン(zoom in):グラフを拡大する, ●ズームアウト(zoom out):グラフを縮小する, ●クリーンアップ(cleanup):デッドプロセスを示すノ
ードをグラフ201から削除する, ●ファインド・ノード(find node):ディスプレイをス
クロールし、pid又は名称により指定されるノードを
グラフ201のディスプレイの中央に配置させる, ●スタート/ストップ(start/stop):アイテムが再び選
択されるまで、グラフの更新を停止する, ●テキストビュー(textview):ディスプレイジェネレー
タにより現に解読されているプログラムを調べる,及び ●エグジット(exit):ディスプレイジェネレータの実行
終了。
01のレイアウトをやり直す, ●リドロー(redraw):グラフをリフレッシュする, ●セーブ・グラフ(save graph):グラフをファイルにセ
ーブする, ●ズームイン(zoom in):グラフを拡大する, ●ズームアウト(zoom out):グラフを縮小する, ●クリーンアップ(cleanup):デッドプロセスを示すノ
ードをグラフ201から削除する, ●ファインド・ノード(find node):ディスプレイをス
クロールし、pid又は名称により指定されるノードを
グラフ201のディスプレイの中央に配置させる, ●スタート/ストップ(start/stop):アイテムが再び選
択されるまで、グラフの更新を停止する, ●テキストビュー(textview):ディスプレイジェネレー
タにより現に解読されているプログラムを調べる,及び ●エグジット(exit):ディスプレイジェネレータの実行
終了。
【0041】オプションはマウスを使用することにより
選択される。すなわち、マウスでポインタ115をメニ
ュー内の所望のエントリに移動させ、そしてマウスの左
ボタンをクリックすることにより、オプションを選択で
きる。グラフ201が、グラフ201の表示されている
ウインドウよりも大きい場合、ユーザはウインドウ上の
スクロールバーを使用し、グラフの非表示部分をウイン
ドウ内に持ってくることができる。
選択される。すなわち、マウスでポインタ115をメニ
ュー内の所望のエントリに移動させ、そしてマウスの左
ボタンをクリックすることにより、オプションを選択で
きる。グラフ201が、グラフ201の表示されている
ウインドウよりも大きい場合、ユーザはウインドウ上の
スクロールバーを使用し、グラフの非表示部分をウイン
ドウ内に持ってくることができる。
【0042】シングルステップモードのグローバルメニ
ューは、スタート/ストップ及びクリーンアップが次の
二つの選択肢により置換される点で、リアルタイムモー
ドと異なる。
ューは、スタート/ストップ及びクリーンアップが次の
二つの選択肢により置換される点で、リアルタイムモー
ドと異なる。
【0043】●プレイ・ノンストップ(play non-sto
p):ディスプレイジェネレータは停止することなくログ
ファイル内のメッセージに応答する, ●プレイ・アンティル(paly until):ユーザはシステム
呼出名称又はメッセージ一連番号を指定する,ディスプ
レイジェネレータは指定されたシステム呼出名称又はメ
ッセージ一連番号が到着するまでログファイル内のメッ
セージに応答する。
p):ディスプレイジェネレータは停止することなくログ
ファイル内のメッセージに応答する, ●プレイ・アンティル(paly until):ユーザはシステム
呼出名称又はメッセージ一連番号を指定する,ディスプ
レイジェネレータは指定されたシステム呼出名称又はメ
ッセージ一連番号が到着するまでログファイル内のメッ
セージに応答する。
【0044】プレイ・ノンストップ又はプレイ・アンテ
ィルのどちらも選択されない場合、ユーザはメッセージ
がマウスにより読出される速度を制御する。ユーザがマ
ウスの左ボタンをクリックすると、次のメッセージが読
出され、グラフ201にそのメッセージに従って変更さ
れる。従って、シングルステップモードは、ユーザに、
ユーザの関心のあるプロセスのシステムの動作部分だけ
を見せるオプションを与える。
ィルのどちらも選択されない場合、ユーザはメッセージ
がマウスにより読出される速度を制御する。ユーザがマ
ウスの左ボタンをクリックすると、次のメッセージが読
出され、グラフ201にそのメッセージに従って変更さ
れる。従って、シングルステップモードは、ユーザに、
ユーザの関心のあるプロセスのシステムの動作部分だけ
を見せるオプションを与える。
【0045】グラフ201のノードに関するメニューに
より、ユーザは、個々のノードに関する情報を発見する
ことができ、また、プロセスボックス205の場合に
は、プロセスを操縦することができる。ノードメニュー
を得るために、ユーザはポインタ115を所望のノード
に移動し、そしてマウスの右ボタンをクリックする。ノ
ードメニューの内容はノードの種類及びディスプレイジ
ェネレータがリアルタイムモード又はシングルステップ
モードで動作されているか否かに応じて変化する。
より、ユーザは、個々のノードに関する情報を発見する
ことができ、また、プロセスボックス205の場合に
は、プロセスを操縦することができる。ノードメニュー
を得るために、ユーザはポインタ115を所望のノード
に移動し、そしてマウスの右ボタンをクリックする。ノ
ードメニューの内容はノードの種類及びディスプレイジ
ェネレータがリアルタイムモード又はシングルステップ
モードで動作されているか否かに応じて変化する。
【0046】図5は、リアルタイムモードにおけるプロ
セスボックス6678に関するノードメニュー501を
示す。可能なメニュー選択は次の通りである。
セスボックス6678に関するノードメニュー501を
示す。可能なメニュー選択は次の通りである。
【0047】●プリント・エントリ(print entry):ノ
ードにより示される実体に関する情報を印刷する,プロ
セスノードでは、この情報はノード種類,プロセスが実
行されるマシンの識別名(id),マシンの名称,プロセス
のpid,プロセスにより現に実行されているプロセス
のパス名などである, ●プリント・アトリビュート(print attribute):色,
形状,フォント名及びフォントサイズなどのノードに関
するディスプレイ属性を印刷する, ●キル(kill):プロセスに対するUNIXオペレーティ
ング・システムのキルコマンドを実行し、これを停止さ
せる,プロセスはこのコマンドを無視することもでき
る, ●キル−9(kill-9):プロセスを停止させるのに必要な
形でキルを実行する, ●ランdbx(run dbx):プロセスにより実行されてい
るプログラム上でデバッガを実行させる。
ードにより示される実体に関する情報を印刷する,プロ
セスノードでは、この情報はノード種類,プロセスが実
行されるマシンの識別名(id),マシンの名称,プロセス
のpid,プロセスにより現に実行されているプロセス
のパス名などである, ●プリント・アトリビュート(print attribute):色,
形状,フォント名及びフォントサイズなどのノードに関
するディスプレイ属性を印刷する, ●キル(kill):プロセスに対するUNIXオペレーティ
ング・システムのキルコマンドを実行し、これを停止さ
せる,プロセスはこのコマンドを無視することもでき
る, ●キル−9(kill-9):プロセスを停止させるのに必要な
形でキルを実行する, ●ランdbx(run dbx):プロセスにより実行されてい
るプログラム上でデバッガを実行させる。
【0048】シングルステップモードでは、プリント・
エントリ(print entry)及びプリント・アトリビュート
(print attr)の選択肢だけが利用できる。
エントリ(print entry)及びプリント・アトリビュート
(print attr)の選択肢だけが利用できる。
【0049】ファイル長円209に関するメニューは、
両方のモードにおいて、プリント・エントリ(print ent
ry)及びプリント・アトリビュート(print attr)の選択
肢だけを有する。プリント・エントリされる場合、ファ
イル名,デバイス名及びノード名が表示される。パイプ
及びソケット環211に関するメニューはこれらの選択
肢の他に、ショー・メッセージ(show message)選択肢も
含む。
両方のモードにおいて、プリント・エントリ(print ent
ry)及びプリント・アトリビュート(print attr)の選択
肢だけを有する。プリント・エントリされる場合、ファ
イル名,デバイス名及びノード名が表示される。パイプ
及びソケット環211に関するメニューはこれらの選択
肢の他に、ショー・メッセージ(show message)選択肢も
含む。
【0050】このショー・メッセージ(show message)選
択肢は、モニタがI/Oシステム呼出を監視している時
に、選択されたパイプ又はソケットを通過するメッセー
ジを示す。パイプに関するプリント・エントリの場合、
識別子が表示され、これにより、パイプを使用する各プ
ロセスはそのパイプを知る。ソケットの場合、ソケット
の名称,送信元マシーン名,受信元マシーン名及びポー
トが表示される。
択肢は、モニタがI/Oシステム呼出を監視している時
に、選択されたパイプ又はソケットを通過するメッセー
ジを示す。パイプに関するプリント・エントリの場合、
識別子が表示され、これにより、パイプを使用する各プ
ロセスはそのパイプを知る。ソケットの場合、ソケット
の名称,送信元マシーン名,受信元マシーン名及びポー
トが表示される。
【0051】実施例の具体的内容:図4,図6及び図7 図4は、ビジュアルプロセスマネージャの好ましい実施
例の具体的構成を示す概要ブロック図である。ビジュア
ルプロセスマネージャ401は前記のようなモニタ41
8とディスプレイジェネレータ419の2つの主要構成
要素を有する。モニタ418は、検査されているシステ
ムに属するプロセス105の挙動を監視する。
例の具体的構成を示す概要ブロック図である。ビジュア
ルプロセスマネージャ401は前記のようなモニタ41
8とディスプレイジェネレータ419の2つの主要構成
要素を有する。モニタ418は、検査されているシステ
ムに属するプロセス105の挙動を監視する。
【0052】ディスプレイジェネレータ419は、表示
装置113上にディスプレイ201を生成し、キーボー
ド117及びマウス119からの入力に応答する。構成
要素間の通信はログファイル411を介して行われる。
モニタ418は監視されているプロセス105から受信
したメッセージをログファイル内に書込み、ディスプレ
イジェネレータ419はログファイルからメッセージを
読出す。
装置113上にディスプレイ201を生成し、キーボー
ド117及びマウス119からの入力に応答する。構成
要素間の通信はログファイル411を介して行われる。
モニタ418は監視されているプロセス105から受信
したメッセージをログファイル内に書込み、ディスプレ
イジェネレータ419はログファイルからメッセージを
読出す。
【0053】モニタ418 モニタ418について更に詳細に説明する。モニタ41
8の構成要素は、検査されているシステムに属する各プ
ロセス105用のメッセージ・ジェネレータ403と後
置型サーバプロセス409からなる。プロセス105
が、監視されているシステム呼出を実行する場合、メッ
セージ・ジェネレータ403はメッセージを生成する。
8の構成要素は、検査されているシステムに属する各プ
ロセス105用のメッセージ・ジェネレータ403と後
置型サーバプロセス409からなる。プロセス105
が、監視されているシステム呼出を実行する場合、メッ
セージ・ジェネレータ403はメッセージを生成する。
【0054】後置型サーバプロセス409はプロセス1
05からメッセージを受信し、ログファイル411にこ
のメッセージを書込む。プロセス105と後置型サーバ
409との間の通信は、UNIXオペレーティング・シ
ステムにより提供されるソケットによる。
05からメッセージを受信し、ログファイル411にこ
のメッセージを書込む。プロセス105と後置型サーバ
409との間の通信は、UNIXオペレーティング・シ
ステムにより提供されるソケットによる。
【0055】フォウラーらの前掲書及び米国特許出願第
08/0037号明細書に詳細に説明されているよう
に、メッセージ・ジェネレータ403は、一連のライブ
ラリルーチンに関する実行可能コードに各プロセス10
5を動的にリンクさせることにより実現される。監視さ
れているプロセス105は、UNIXオペレーティング
・システムにより提供される標準的なシステムに関する
コードの代わりに、動的にリンクされたコードを実行す
る。
08/0037号明細書に詳細に説明されているよう
に、メッセージ・ジェネレータ403は、一連のライブ
ラリルーチンに関する実行可能コードに各プロセス10
5を動的にリンクさせることにより実現される。監視さ
れているプロセス105は、UNIXオペレーティング
・システムにより提供される標準的なシステムに関する
コードの代わりに、動的にリンクされたコードを実行す
る。
【0056】動的リンクはプロセスが初期化された時に
起こる。実行可能コードはプロセス初期化時に動的リン
クされるので、このプロセスにより実行されているアプ
リケーションコードを変更又は再リンクする必要が無
い。動的リンクは、米国,カリフォルニア州のマウンテ
ンビューに所在するサン・マイクロシステムズ(Sun Mic
rosystems)社から1933に発行された“共用ライブラ
リ(Shared Libraries)”と題する文献中に詳細に説明さ
れている。
起こる。実行可能コードはプロセス初期化時に動的リン
クされるので、このプロセスにより実行されているアプ
リケーションコードを変更又は再リンクする必要が無
い。動的リンクは、米国,カリフォルニア州のマウンテ
ンビューに所在するサン・マイクロシステムズ(Sun Mic
rosystems)社から1933に発行された“共用ライブラ
リ(Shared Libraries)”と題する文献中に詳細に説明さ
れている。
【0057】所定のUNIXシステム呼出に関するライ
ブラリルーチンにおけるコードはシステム呼出を呼出
す。しかし、この他に、これは副作用も発生する。ビジ
ュアルプロセスマネージャにおいて、この副作用はメッ
セージ406を包含する。図6はメッセージ406の詳
細な内容を示す。このメッセージは次のような項目を含
む。
ブラリルーチンにおけるコードはシステム呼出を呼出
す。しかし、この他に、これは副作用も発生する。ビジ
ュアルプロセスマネージャにおいて、この副作用はメッ
セージ406を包含する。図6はメッセージ406の詳
細な内容を示す。このメッセージは次のような項目を含
む。
【0058】●ソースpid(SPID)601:メッセージ
を生成したシステム呼出を行ったプロセス105のpi
d, ●ソースマシーン(SMACH)603:プロセス105を実
行するコンピュータの識別子, ●システム呼出名(Syscall name)605:プロセス10
5により行われたシステム呼出の名称, ●システム呼出引数(Syscall Args)607:プロセス1
05により行われたシステム呼出の引数, ●システム呼出結果(Syscall result)609:プロセス
105により行われたシステム呼出の結果。
を生成したシステム呼出を行ったプロセス105のpi
d, ●ソースマシーン(SMACH)603:プロセス105を実
行するコンピュータの識別子, ●システム呼出名(Syscall name)605:プロセス10
5により行われたシステム呼出の名称, ●システム呼出引数(Syscall Args)607:プロセス1
05により行われたシステム呼出の引数, ●システム呼出結果(Syscall result)609:プロセス
105により行われたシステム呼出の結果。
【0059】例えば、オープンシステム呼出に関するメ
ッセージ406では、引数607は、オープンすべきフ
ァイルのパス名及びファイルがオープンされる際のモー
ドを含む。結果609は、新たにオープンされたファイ
ルのデバイス番号及びノード番号を含む。
ッセージ406では、引数607は、オープンすべきフ
ァイルのパス名及びファイルがオープンされる際のモー
ドを含む。結果609は、新たにオープンされたファイ
ルのデバイス番号及びノード番号を含む。
【0060】ビジュアルプロセスマネージャのユーザビ
ューの説明において指摘されるように、ユーザは、セッ
トアップコマンドにおいて、どのタイプのシステム呼出
を監視すべきか指定する。この情報は各プロセス105
用のマスク405に記憶される。動的にリンクされたラ
イブラリにおけるルーチンは、メッセージを送信する前
にプロセス105用のマスク405をチェックし、マス
ク405が、メッセージ406をこの種のシステム呼出
について送信すべきことを示す場合にのみ、メッセージ
406を送信する。
ューの説明において指摘されるように、ユーザは、セッ
トアップコマンドにおいて、どのタイプのシステム呼出
を監視すべきか指定する。この情報は各プロセス105
用のマスク405に記憶される。動的にリンクされたラ
イブラリにおけるルーチンは、メッセージを送信する前
にプロセス105用のマスク405をチェックし、マス
ク405が、メッセージ406をこの種のシステム呼出
について送信すべきことを示す場合にのみ、メッセージ
406を送信する。
【0061】好ましい実施例では、マスクはセットアッ
プコマンドで設定され、システム呼出の種類について設
定される。その後、マスクは監視されているプロセスの
全てにより継承される。その他の実施例では、ユーザ
は、個々のプロセス及びシステム呼出についてマスクを
設定するために、メニューを使用できる。好ましい実施
例では、更に“簡潔(terse)”マスクを包含する。この
マスクは、文字列をリターンするシステム呼出で指定で
きる。
プコマンドで設定され、システム呼出の種類について設
定される。その後、マスクは監視されているプロセスの
全てにより継承される。その他の実施例では、ユーザ
は、個々のプロセス及びシステム呼出についてマスクを
設定するために、メニューを使用できる。好ましい実施
例では、更に“簡潔(terse)”マスクを包含する。この
マスクは、文字列をリターンするシステム呼出で指定で
きる。
【0062】簡潔マスクがシステム呼出について設定さ
れない場合、システム呼出は文字列をメッセージ406
にリターンする。簡潔マスクが設定される場合、システ
ム呼出はポインタ115を文字列にリターンする。プロ
セスのマスクが設定されると、セットアップコマンドを
介すか又は対話型で、プロセスの子孫により継承され
る。
れない場合、システム呼出は文字列をメッセージ406
にリターンする。簡潔マスクが設定される場合、システ
ム呼出はポインタ115を文字列にリターンする。プロ
セスのマスクが設定されると、セットアップコマンドを
介すか又は対話型で、プロセスの子孫により継承され
る。
【0063】ディスプレイジェネレータ419 ディスプレイジェネレータ419は、メッセージ解釈プ
ロセス415とグラフ発生プロセス417の2つのプロ
セスとして実現される。好ましい実施例では、メッセー
ジ解釈プロセス415は、コウトソフィオスらの前掲書
に記載されたleftyプログラムを実行し、エムデン
らの前掲書に記載されたdotプログラムを実行する。
ロセス415とグラフ発生プロセス417の2つのプロ
セスとして実現される。好ましい実施例では、メッセー
ジ解釈プロセス415は、コウトソフィオスらの前掲書
に記載されたleftyプログラムを実行し、エムデン
らの前掲書に記載されたdotプログラムを実行する。
【0064】メッセージ・インタープリータ415はロ
グファイル411からメッセージ406を読出す。リア
ルタイムモードでは、メッセージ・インタープリータ4
15は、後置型サーバ409がメッセージ406をログ
ファイル411に書込むのに応じて、メッセージ406
を読出す。シングルステップモードでは、メッセージ・
インタープリータ415は、監視されているシステム内
のプロセス105が全て終了した後だけ、ログファイル
411からメッセージ406を読出し始める。
グファイル411からメッセージ406を読出す。リア
ルタイムモードでは、メッセージ・インタープリータ4
15は、後置型サーバ409がメッセージ406をログ
ファイル411に書込むのに応じて、メッセージ406
を読出す。シングルステップモードでは、メッセージ・
インタープリータ415は、監視されているシステム内
のプロセス105が全て終了した後だけ、ログファイル
411からメッセージ406を読出し始める。
【0065】各メッセージについて、メッセージ・イン
タープリータ415はメッセージ406からシステム呼
出のタイプを決定し、グラフデータストラクチャ421
(グラフ201を示す)で必要な変更をメッセージによ
り行う。メッセージ406がもはや存在しない場合、ま
たは最後のリドローの時から所定の数のメッセージ40
6が処理された場合、ディスプレイ201はリドローさ
れる。グラフ201がリドローされる場合に起こる事象
は、メッセージ406により必要とされる変更の種類に
より左右される。
タープリータ415はメッセージ406からシステム呼
出のタイプを決定し、グラフデータストラクチャ421
(グラフ201を示す)で必要な変更をメッセージによ
り行う。メッセージ406がもはや存在しない場合、ま
たは最後のリドローの時から所定の数のメッセージ40
6が処理された場合、ディスプレイ201はリドローさ
れる。グラフ201がリドローされる場合に起こる事象
は、メッセージ406により必要とされる変更の種類に
より左右される。
【0066】変更がグラフ201の新たなレイアウトを
必要としない場合、メッセージ・インタープリータ41
5はグラフデータストラクチャ421から情報を単に獲
得し、この情報をウインドウシステム427に供給す
る。ウインドウシステム427はこの情報を使用し、表
示装置112にグラフ201を実際に表示する。変更が
新たなレイアウトを必要とする場合、メッセージ・イン
タープリータ415は新たなレイアウトに必要な情報を
グラフデータストラクチャ421から獲得し、この情報
を論理グラフ記述423として、グラフジェネレータ4
17に供給する。
必要としない場合、メッセージ・インタープリータ41
5はグラフデータストラクチャ421から情報を単に獲
得し、この情報をウインドウシステム427に供給す
る。ウインドウシステム427はこの情報を使用し、表
示装置112にグラフ201を実際に表示する。変更が
新たなレイアウトを必要とする場合、メッセージ・イン
タープリータ415は新たなレイアウトに必要な情報を
グラフデータストラクチャ421から獲得し、この情報
を論理グラフ記述423として、グラフジェネレータ4
17に供給する。
【0067】グラフジェネレータ417は、論理グラフ
記述に基づき物理グラフ記述425をメッセージ・イン
タープリータ415にリターンする。その後、メッセー
ジ・インタープリータ415は、新たな物理グラフ記述
をグラフデータストラクチャ421に組込み、更新され
たグラフデータストラクチャ421からの情報を前記の
ようにウインドウシステム427に供給する。
記述に基づき物理グラフ記述425をメッセージ・イン
タープリータ415にリターンする。その後、メッセー
ジ・インタープリータ415は、新たな物理グラフ記述
をグラフデータストラクチャ421に組込み、更新され
たグラフデータストラクチャ421からの情報を前記の
ようにウインドウシステム427に供給する。
【0068】図7は、グラフデータストラクチャ421
の詳細な構成図である。グラフデータストラクチャ42
1はノードアレイ701とエッジアレイ713の2つの
主要構成要素を有する。ノードアレイ701はグラフ2
01内の各ノードに関するノードエントリ703を包含
する。エッジアレイ713はグラフ201内の各エッジ
に関するエッジエントリ715を包含する。各ノードエ
ントリ703は、下記の4種類の情報を包含する。
の詳細な構成図である。グラフデータストラクチャ42
1はノードアレイ701とエッジアレイ713の2つの
主要構成要素を有する。ノードアレイ701はグラフ2
01内の各ノードに関するノードエントリ703を包含
する。エッジアレイ713はグラフ201内の各エッジ
に関するエッジエントリ715を包含する。各ノードエ
ントリ703は、下記の4種類の情報を包含する。
【0069】●論理ノード情報,メッセージ・インター
プリータ415はこの情報を論理グラフデータ423と
してグラフジェネレータ417に供給する, ●ノードディスプレイ情報707,グラフジェネレータ
417はこの情報を、論理グラフデータ423に応答し
て物理グラフデータ425としてメッセージ・インター
プリータ415に供給する, ●ビジュアルプロセスマネージャ情報709,及び ●エッジポインタリスト711。
プリータ415はこの情報を論理グラフデータ423と
してグラフジェネレータ417に供給する, ●ノードディスプレイ情報707,グラフジェネレータ
417はこの情報を、論理グラフデータ423に応答し
て物理グラフデータ425としてメッセージ・インター
プリータ415に供給する, ●ビジュアルプロセスマネージャ情報709,及び ●エッジポインタリスト711。
【0070】ビジュアルプロセスマネージャ情報709
は、ディスプレイ201内のノード、及びノードエント
リ703により示されるノードに付随するメニューに現
れる情報である。エッジポインタリスト711は、ノー
ドエントリ703により示されるノードで開始又は停止
するエッジに関する各エッジエントリ715に対するポ
インタを包含する。
は、ディスプレイ201内のノード、及びノードエント
リ703により示されるノードに付随するメニューに現
れる情報である。エッジポインタリスト711は、ノー
ドエントリ703により示されるノードで開始又は停止
するエッジに関する各エッジエントリ715に対するポ
インタを包含する。
【0071】エッジエントリ715は各エッジに関する
同じ種類の情報を包含する。論理エッジ情報717は、
メッセージ・インタープリータ415がグラフジェネレ
ータ417に供給したエッジに関する情報を包含する。
エッジディスプレイ情報719は、グラフジェネレータ
417によりメッセージ・インタープリータ415にリ
ターンされる情報を包含する。VPM情報721は、エ
ッジに付随するメニューに現れる情報である。
同じ種類の情報を包含する。論理エッジ情報717は、
メッセージ・インタープリータ415がグラフジェネレ
ータ417に供給したエッジに関する情報を包含する。
エッジディスプレイ情報719は、グラフジェネレータ
417によりメッセージ・インタープリータ415にリ
ターンされる情報を包含する。VPM情報721は、エ
ッジに付随するメニューに現れる情報である。
【0072】ポインタ723から(from ptr 723)は、エ
ッジの送り手であるノードアレイ701内のノードエン
トリ703に対するポインタである。ポインタ725へ
(toptr 725)は、エッジの受け手であるノードアレイ7
01内のノードエントリに対するポインタである。
ッジの送り手であるノードアレイ701内のノードエン
トリ703に対するポインタである。ポインタ725へ
(toptr 725)は、エッジの受け手であるノードアレイ7
01内のノードエントリに対するポインタである。
【0073】好ましい実施例で実現されるようなモニタ
418の限界は、メッセージ・インタープリータ415
が、プロセス105が停止したか否かメッセージ406
から常に予測できるとは限らないことである。好ましい
実施例では、この問題は、メッセージ・インタープリー
タ415に、所定のプロセス105から最後のメッセー
ジ以来の時間を追跡させることにより処理される。
418の限界は、メッセージ・インタープリータ415
が、プロセス105が停止したか否かメッセージ406
から常に予測できるとは限らないことである。好ましい
実施例では、この問題は、メッセージ・インタープリー
タ415に、所定のプロセス105から最後のメッセー
ジ以来の時間を追跡させることにより処理される。
【0074】或る一定の制限時間を超えた場合、メッセ
ージ・インタープリータ415は、所定のプロセスが実
行されるコンピュータについてpidサーバ429に照
会し、プロセス105が依然として活動中であるか否か
決定する。プロセス105が活動中でない場合、メッセ
ージ・インタープリータ415は、プロセス105に関
する情報をグラフデータストラクチャ421から削除す
る。そして、グラフ201の次のリドローの時に、プロ
セス105に関するノード及びプロセスにより単独でア
クセスされるファイル又はパイプに関するノードが消失
する。
ージ・インタープリータ415は、所定のプロセスが実
行されるコンピュータについてpidサーバ429に照
会し、プロセス105が依然として活動中であるか否か
決定する。プロセス105が活動中でない場合、メッセ
ージ・インタープリータ415は、プロセス105に関
する情報をグラフデータストラクチャ421から削除す
る。そして、グラフ201の次のリドローの時に、プロ
セス105に関するノード及びプロセスにより単独でア
クセスされるファイル又はパイプに関するノードが消失
する。
【0075】更に、メッセージ・インタープリータ41
5は、ウインドウシステム427により供給されるよう
な、キーボード117及びマウス119からの入力を処
理する。例えば、ユーザがマウスの右ボタンをクリック
し、グローバルメニュー又はノードメニュウを要求する
と、メッセージ・インタープリータ415は、要求され
ているメニューのタイプを決定し、このメニューに関す
る情報を、ウインドウを表示するウインドウシステム4
27に供給する。
5は、ウインドウシステム427により供給されるよう
な、キーボード117及びマウス119からの入力を処
理する。例えば、ユーザがマウスの右ボタンをクリック
し、グローバルメニュー又はノードメニュウを要求する
と、メッセージ・インタープリータ415は、要求され
ているメニューのタイプを決定し、このメニューに関す
る情報を、ウインドウを表示するウインドウシステム4
27に供給する。
【0076】同様に、ユーザが、情報の表示を必要とす
るメニューエントリを選択する場合、ウインドウシステ
ム427は、この選択が行われたことを示し、メッセー
ジ・インタープリータ415は、グラフデータストラク
チャ421からこの情報を取得し、この情報を表示する
ためにウインドウシステム427に供給する。ユーザが
特定のプロセスに関するノードメニューについてキルエ
ントリを選択する場合、メッセージ・インタープリータ
415は、プロセス105を削除するシステムコマンド
を実行する。
るメニューエントリを選択する場合、ウインドウシステ
ム427は、この選択が行われたことを示し、メッセー
ジ・インタープリータ415は、グラフデータストラク
チャ421からこの情報を取得し、この情報を表示する
ためにウインドウシステム427に供給する。ユーザが
特定のプロセスに関するノードメニューについてキルエ
ントリを選択する場合、メッセージ・インタープリータ
415は、プロセス105を削除するシステムコマンド
を実行する。
【0077】ビジュアルプロセスマネージャ401の対
話型バージョン 好ましい実施例では、端末におけるユーザはログファイ
ル411内のメッセージがメッセージ・インタープリー
タ415により読出される速度を決定することだけがで
きる。ユーザはビジュアルプロセスマネージャ401に
よりシステム内のプロセスの実行を制御できない。
話型バージョン 好ましい実施例では、端末におけるユーザはログファイ
ル411内のメッセージがメッセージ・インタープリー
タ415により読出される速度を決定することだけがで
きる。ユーザはビジュアルプロセスマネージャ401に
よりシステム内のプロセスの実行を制御できない。
【0078】別の実施例では、ユーザはプロセスのシス
テムの実行を実際に制御するために、ビジュアルプロセ
スマネージャ401を使用できる。この実施例では、ロ
グファイル411はソケット420により置換される。
ソケット420は後置型サーバ409をメッセージ・イ
ンタープリータ415へ直接接続する。更に、双方向性
ソケット416は、監視されているプロセス105用の
メッセージ・ジェネレータ403と後置型サーバ409
とを接続する。
テムの実行を実際に制御するために、ビジュアルプロセ
スマネージャ401を使用できる。この実施例では、ロ
グファイル411はソケット420により置換される。
ソケット420は後置型サーバ409をメッセージ・イ
ンタープリータ415へ直接接続する。更に、双方向性
ソケット416は、監視されているプロセス105用の
メッセージ・ジェネレータ403と後置型サーバ409
とを接続する。
【0079】メッセージ406、マスク405及び動的
リンクライブラリ用のコードでも変更が必要である。メ
ッセージ406は追加フィールドのACK(肯定応答)
フィールド611を帯びる。このACKフィールド61
1は、メッセージ・インタープリータ415が後置型サ
ーバ409から受信されたメッセージを肯定応答しなけ
ればならないか否か示す。マスク405は肯定応答マス
クを包含する。肯定応答マスクは、システム毎の呼出ベ
ースで、どのシステム呼出が肯定応答を必要とするか示
す。
リンクライブラリ用のコードでも変更が必要である。メ
ッセージ406は追加フィールドのACK(肯定応答)
フィールド611を帯びる。このACKフィールド61
1は、メッセージ・インタープリータ415が後置型サ
ーバ409から受信されたメッセージを肯定応答しなけ
ればならないか否か示す。マスク405は肯定応答マス
クを包含する。肯定応答マスクは、システム毎の呼出ベ
ースで、どのシステム呼出が肯定応答を必要とするか示
す。
【0080】最後に、動的リンクライブラリルーチン
は、メッセージの送信前に肯定応答マスクを検査するコ
ードを含むように変更される。マスクが、システム呼出
が肯定応答を必要とすることを示す場合、システム呼出
を置換するライブラリルーチンはメッセージ内の肯定応
答フィールド611をセットし、そして、後置型サーバ
409からの肯定応答メッセージを待機する。メッセー
ジが到着した後にだけ、ライブラリルーチンはその実行
を完了する。
は、メッセージの送信前に肯定応答マスクを検査するコ
ードを含むように変更される。マスクが、システム呼出
が肯定応答を必要とすることを示す場合、システム呼出
を置換するライブラリルーチンはメッセージ内の肯定応
答フィールド611をセットし、そして、後置型サーバ
409からの肯定応答メッセージを待機する。メッセー
ジが到着した後にだけ、ライブラリルーチンはその実行
を完了する。
【0081】対話型モードの動作について説明する。プ
ロセス105を対話型モードにするために、ユーザは前
記のようなマウスを使用しプロセスのメニューを取得す
る。メニュー501は対話型モードを指定する追加エン
トリを有する。ユーザがこのエントリを選択すると、別
のメニューが現れる。この別のメニューにより、ユーザ
は、どのシステム呼出をこのプロセスについて肯定応答
すべきか指定できる。メッセージ・インタープリータ4
15はメニューから入力を獲得し、どのシステム呼出は
現に肯定応答されているか示すノードのためのフィール
ドを設定する。
ロセス105を対話型モードにするために、ユーザは前
記のようなマウスを使用しプロセスのメニューを取得す
る。メニュー501は対話型モードを指定する追加エン
トリを有する。ユーザがこのエントリを選択すると、別
のメニューが現れる。この別のメニューにより、ユーザ
は、どのシステム呼出をこのプロセスについて肯定応答
すべきか指定できる。メッセージ・インタープリータ4
15はメニューから入力を獲得し、どのシステム呼出は
現に肯定応答されているか示すノードのためのフィール
ドを設定する。
【0082】メッセージ・インタープリータ415はま
た、ソケット420を介してメッセージを後置型サーバ
409に送信する。このメッセージはシステム呼出が肯
定応答されるべきプロセス105及び肯定応答されるべ
きシステム呼出を指定する。その後、後置型サーバ40
9はソケット416を介して、メッセージを指定プロセ
ス105に送信し、メッセージ・ジェネレータ403内
のコードは、メッセージにより必要とされるような肯定
応答マスクを設定することによりコードに応答する。
た、ソケット420を介してメッセージを後置型サーバ
409に送信する。このメッセージはシステム呼出が肯
定応答されるべきプロセス105及び肯定応答されるべ
きシステム呼出を指定する。その後、後置型サーバ40
9はソケット416を介して、メッセージを指定プロセ
ス105に送信し、メッセージ・ジェネレータ403内
のコードは、メッセージにより必要とされるような肯定
応答マスクを設定することによりコードに応答する。
【0083】肯定応答マスクが設定された時点から、シ
ステム401は次のように動作する。プロセス105が
システム呼出を実行すると、このシステム呼出用のライ
ブラリルーチンはシステム呼出用の肯定応答マスク40
5をチェックする。マスクが設定されていれば、メッセ
ージ406はその肯定応答フィールド611設定を有
し、ライブラリルーチンはシステム呼出の実行及びメッ
セー406の送信後、休止する。
ステム401は次のように動作する。プロセス105が
システム呼出を実行すると、このシステム呼出用のライ
ブラリルーチンはシステム呼出用の肯定応答マスク40
5をチェックする。マスクが設定されていれば、メッセ
ージ406はその肯定応答フィールド611設定を有
し、ライブラリルーチンはシステム呼出の実行及びメッ
セー406の送信後、休止する。
【0084】メッセージがソケット416、後置型サー
バ409及び及びメッセージ・インタープリータ415
内のソケット420から到着すると、メッセージ・イン
タープリータ415は、メッセージ406により必要と
されるようなグラフ201の変更及びディスプレイ内の
プロセス用のプロセスボックス205の外観の変更によ
り、設定肯定応答フィールド611に応答し、プロセス
ボックス205により示されるプロセス105は肯定応
答を待機中であることを示す。
バ409及び及びメッセージ・インタープリータ415
内のソケット420から到着すると、メッセージ・イン
タープリータ415は、メッセージ406により必要と
されるようなグラフ201の変更及びディスプレイ内の
プロセス用のプロセスボックス205の外観の変更によ
り、設定肯定応答フィールド611に応答し、プロセス
ボックス205により示されるプロセス105は肯定応
答を待機中であることを示す。
【0085】ユーザはポインタ115をプロセスボック
ス205に移動させ、マウスの左ボタンをクリックする
ことにより、肯定応答を与える。ポインタ115の位置
及びマウス左ボタンのクリックに応答して、メッセージ
・インタープリータ415はソケット420,後置型サ
ーバ409及びソケット416を介して肯定応答メッセ
ージをこのプロセス用のメッセージ・ジェネレータ40
3に送信する。このメッセージに応答して、ライブラリ
ルーチンはその実行を終了する。これが行われている最
中に、メッセージ・インタープリータ415は更にグラ
フ201の外観を変更し、プロセスはもはや肯定応答を
待機していないことを示す。
ス205に移動させ、マウスの左ボタンをクリックする
ことにより、肯定応答を与える。ポインタ115の位置
及びマウス左ボタンのクリックに応答して、メッセージ
・インタープリータ415はソケット420,後置型サ
ーバ409及びソケット416を介して肯定応答メッセ
ージをこのプロセス用のメッセージ・ジェネレータ40
3に送信する。このメッセージに応答して、ライブラリ
ルーチンはその実行を終了する。これが行われている最
中に、メッセージ・インタープリータ415は更にグラ
フ201の外観を変更し、プロセスはもはや肯定応答を
待機していないことを示す。
【0086】前記の説明から明らかなように、システム
401のユーザは、プロセス401の実行を任意の所望
の粒度にまで制御することができる。その他の実施例
も、肯定応答マスクのグローバル設定を可能にするグロ
ーバルメニュー301内にエントリを有することができ
る。
401のユーザは、プロセス401の実行を任意の所望
の粒度にまで制御することができる。その他の実施例
も、肯定応答マスクのグローバル設定を可能にするグロ
ーバルメニュー301内にエントリを有することができ
る。
【0087】結論 以上、本発明のビジュアルプロセスマネージャの実現に
関する好ましい実施例について説明した。しかし、前記
のように、ビジュアルプロセスマネージャの実現に使用
される技法は、プロセスのシステム解析に限定される手
段ではなく、システムにより使用されるライブラリが別
のライブラリにより動的に置換される全てのシステムで
使用することもできる。
関する好ましい実施例について説明した。しかし、前記
のように、ビジュアルプロセスマネージャの実現に使用
される技法は、プロセスのシステム解析に限定される手
段ではなく、システムにより使用されるライブラリが別
のライブラリにより動的に置換される全てのシステムで
使用することもできる。
【0088】当業者には明らかなように、前記のビジュ
アルプロセスマネージャを実現する方法は他にも多数存
在する。例えば、前記に説明した動的リンク技法及びグ
ラフ作図技法は本発明の実現に特に有用であるが、モニ
タ418内のライブラリルーチンは、ディスプレイジェ
ネレータ419を実現するのに使用できるlefty及
びdotプログラム以外のプロセス及びグラフ作図プロ
グラムにより実行されるコードに静的にリンクさせるこ
ともできる。
アルプロセスマネージャを実現する方法は他にも多数存
在する。例えば、前記に説明した動的リンク技法及びグ
ラフ作図技法は本発明の実現に特に有用であるが、モニ
タ418内のライブラリルーチンは、ディスプレイジェ
ネレータ419を実現するのに使用できるlefty及
びdotプログラム以外のプロセス及びグラフ作図プロ
グラムにより実行されるコードに静的にリンクさせるこ
ともできる。
【0089】監視すべきオペレーティング・システム呼
出の選択は、オペレーティング・システム毎に変化し、
また、ビジュアルプロセスマネージャの企図される用途
に応じても変化する。同様に、利用可能なマスキングの
種類は実現される対象毎に異なる。
出の選択は、オペレーティング・システム毎に変化し、
また、ビジュアルプロセスマネージャの企図される用途
に応じても変化する。同様に、利用可能なマスキングの
種類は実現される対象毎に異なる。
【0090】同一の系統では、好ましい実施例における
グラフ201で使用される形状,ラベル及び色彩が特に
有用であるが、他の実施例では、他の形状及び他の色彩
も使用でき、更に、どのような情報をノードに直接示す
か、及び何がメニューによりアクセス可能かなどに関し
て異なる決定を行うこともできる。また、他の実施例で
は、ユーザに、ディスプレイ201の制御又はプロセス
のシステムの操作の制御を多少は提供することもでき、
システムの実行を開始させるために異なる方法を使用す
ることもできる。
グラフ201で使用される形状,ラベル及び色彩が特に
有用であるが、他の実施例では、他の形状及び他の色彩
も使用でき、更に、どのような情報をノードに直接示す
か、及び何がメニューによりアクセス可能かなどに関し
て異なる決定を行うこともできる。また、他の実施例で
は、ユーザに、ディスプレイ201の制御又はプロセス
のシステムの操作の制御を多少は提供することもでき、
システムの実行を開始させるために異なる方法を使用す
ることもできる。
【0091】
【発明の効果】以上説明したように、本発明の方法によ
れば、コンピュータで実行するプロセスを構成するシス
テムの精密な解析と制御が可能になる。また、共同プロ
セスを構成するデバッキングシステムにおいて資源を有
効に活用することができる。また、本発明の方法はシス
テム解析の他に、ルーチンのライブラリが、同じ機能を
果たすが副作用としてメッセージも送信する動的リンク
ライブラリにより置換され得るような全ての状況におい
て使用することができる。本発明の方法の特別な効果
は、システムのアプリケーションレベルコードの変更又
はリコンパイルすること無しに、システムを解析するこ
とができることである。
れば、コンピュータで実行するプロセスを構成するシス
テムの精密な解析と制御が可能になる。また、共同プロ
セスを構成するデバッキングシステムにおいて資源を有
効に活用することができる。また、本発明の方法はシス
テム解析の他に、ルーチンのライブラリが、同じ機能を
果たすが副作用としてメッセージも送信する動的リンク
ライブラリにより置換され得るような全ての状況におい
て使用することができる。本発明の方法の特別な効果
は、システムのアプリケーションレベルコードの変更又
はリコンパイルすること無しに、システムを解析するこ
とができることである。
【図1】本発明を実現することができる分散型コンピュ
ータシステムの一例の模式的構成図である。
ータシステムの一例の模式的構成図である。
【図2】本発明により生成された表示の一例の模式図で
ある。
ある。
【図3】本発明により生成された表示の別の例の模式図
である。
である。
【図4】ビジュアルプロセスマネージャの好ましい実施
例の構成を示す概要ブロック図である。
例の構成を示す概要ブロック図である。
【図5】本発明により生成された表示の更に別の例の模
式図である。
式図である。
【図6】本発明で使用されるメッセージのブロック図で
ある。
ある。
【図7】本発明で使用されるグラフデータストラクチャ
のブロック図である。
のブロック図である。
103 プロセッサ 105 プロセス 107 固定記憶装置 109 ファイル 111 通信システム 112 表示装置 113 ディスプレイ 115 ポインタ 117 キーボード 119 マウス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デビッド ジェラード コーン アメリカ合衆国、10003 ニューヨーク、 ニューヨーク、エー 107、マーサー ス トリート 303 (72)発明者 エレフテリオス コウツオフィオス アメリカ合衆国、07928 ニュージャージ ー、チャタム、アプト.イー4、リバー ロード 420 (72)発明者 ステファン シー.ノース アメリカ合衆国、07830 ニュージャージ ー、カリフォン、フィルハウアー アベニ ュー 127
Claims (27)
- 【請求項1】 プロセスにより実行されるオペレーティ
ング・システム呼出した結果としてのメッセージを、少
なくとも一つのプロセスに送信させるモニタ手段と,プ
ロセスのシステムの状態を示す画像表示を生成する手段
と,からなることを特徴とするプロセスのシステム解析
装置。 - 【請求項2】 前記画像表示は、プロセスのシステムを
有向非巡回グラフとして表示し、プロセス及びプロセス
により使用される資源はグラフ内のノードである請求項
1の装置。 - 【請求項3】 モニタ手段は、オペレーティング・シス
テム呼出を行い、かつ、メッセージを送信するルーチン
を更に含む請求項1の装置。 - 【請求項4】 ルーチンは、プロセスにより実行される
プログラムと動的にリンクされる請求項3の装置。 - 【請求項5】 モニタ手段は、ルーチンがメッセージを
どのように処理するか決定するマスク手段を更に含み、 オペレーティング・システム呼出を行うルーチンは、マ
スク手段により指示されるように、メッセージを更に処
理する請求項3の装置。 - 【請求項6】 マスク手段は、メッセージを送信すべき
か否か示す第1のマスク手段を有する請求項5の装置。 - 【請求項7】 マスク手段は、メッセージに関するフォ
ームを示す第2のマスク手段を含む請求項5の装置。 - 【請求項8】 モニタ手段は肯定応答メッセージを受信
することができ,マスク手段は、送信されたメッセージ
を肯定応答すべきか否か示す第3のマスク手段を有し,
オペレーティング・システム呼出を行うルーチンは、送
信されたメッセージが肯定応答されるべき場合、送信さ
れたメッセージは肯定応答されるべきであり、該肯定応
答メッセージを待機中であることを示すことにより第3
のマスク手段に応答する請求項5の装置。 - 【請求項9】 各プロセスに対応するマスク手段が存在
する請求項5の装置。 - 【請求項10】 子プロセスはその親プロセスに対応す
るマスク手段のコピーを受信する請求項9の装置。 - 【請求項11】 モニタ手段はマスクメッセージを受信
することができ,かつ、送信されたメッセージをルーチ
ンがどのように処理するか、マスクメッセージに応じ
て、マスク手段に決定させることによりマスクメッセー
ジに応答することができる請求項9の装置。 - 【請求項12】 メッセージに応答する手段がメッセー
ジに応答する方法を制御する手段を更に含む請求項1の
装置。 - 【請求項13】 モニタ手段からメッセージを受信する
手段を更に有し、 メッセージに応答する手段はメッセージ受信手段からの
メッセージを読出し、 メッセージ応答手段がメッセージに応答する方法を制御
する手段は、メッセージ応答手段がメッセージを読出す
方法を制御することにより制御を行う請求項12の装
置。 - 【請求項14】 装置のユーザに応答して、制御メッセ
ージを送信する手段を更に有し、 モニタ手段は、制御メッセージにより必要とされるよう
な挙動をプロセスにとらせることにより、制御メッセー
ジに更に応答する請求項1の装置。 - 【請求項15】 モニタ手段は、オペレーティング・シ
ステム呼出を行い、メッセージを送信するルーチンを更
に含み、 ルーチンは実行を終了するために制御メッセージを待機
している請求項14の装置。 - 【請求項16】 モニタ手段は、送信されたメッセージ
を肯定応答すべきか否か示すマスク手段を有し、 オペレーティング・システム呼出を行うルーチンは、送
信されたメッセージが肯定応答すべきものである場合
に、該送信メッセージは肯定応答すべきものであること
を該メッセージ内に示すことによりマスク手段に応答
し、 送信メッセージに応答する手段は、送信メッセージが肯
定応答すべきものである場合に、その指示をユーザに供
給することにより送信メッセージに応答し、 ユーザはこの指示に応答して制御メッセージを送信する
請求項15の装置。 - 【請求項17】 子プロセスを生成する場合又は資源に
アクセスする場合、少なくとも一つのプロセスにメッセ
ージを送信させる手段、及びこのメッセージに応答し
て、画像表示を発生させる手段からなり、 前記画像表示は有向非巡回グラフとしてプロセスのシス
テムを表示し、 プロセス及びプロセスにより使用される資源はグラフ内
のノードであることを特徴とするプロセスのシステム解
析装置。 - 【請求項18】 グラフ内の第1のエッジは或る一つの
プロセスと或る一つの資源との間の関係を示す請求項2
又は17の装置。 - 【請求項19】 グラフ内の第2のエッジは、最初の或
る一つのプロセスと、この最初の或る一つのプロセスの
子孫である次の或る一つのプロセスとの間の関係を示す
請求項2又は17の装置。 - 【請求項20】 システム内のプロセスは1個以上のプ
ロセッサで実行し、 所定の或る一つのプロセッサで実行するプロセス用のノ
ードは所定のプロセッサを示すクラスタに属する請求項
2又は17の装置。 - 【請求項21】 ノードの形状は、ノードが或る一つの
プロセス又は或る一つの資源を示すか否か指摘する請求
項2又は17の装置。 - 【請求項22】 資源はファイル資源と通信資源を含
み、 ファイル資源用のノードは第1の形状を有し、通信資源
用のノードは第1の形状と異なる第2の形状を有する請
求項21の装置。 - 【請求項23】 メッセージは一連のメッセージのうち
の一つであり、 画像表示発生手段は、メッセージにより必要とされるよ
うに画像表示を変更する請求項2又は17の装置。 - 【請求項24】 コンピュータ内で実現され、かつ、第
1のルーチンの第1のライブラリを使用するシステムの
動作を解析するための解析装置であり、 第1のルーチンと同じ機能を果たし、更に、システムの
変更を指示するメッセージを生成する第2のルーチンの
第2のライブラリ,第1のライブラリ用の実行可能ノー
ドを第2のライブラリ用の実行可能ノードと動的に置換
する手段,第2のルーチンがメッセージをどのように生
成するか指示する、第2のルーチンにアクセス可能なマ
スク手段、第2のルーチンは、該ルーチン内に指示され
たようにメッセージを生成することによりマスク手段に
応答する,メッセージに応答して、システムの状態を出
力する手段,からなることを特徴とする解析装置。 - 【請求項25】 システムの状態はシステムの画像表示
として出力される請求項24の解析装置。 - 【請求項26】 システムの画像表示は、有向非巡回グ
ラフとしてシステムを表示し、システム内のエンティテ
ィは、グラフにノードとして現れ、エンティティ間の関
係はグラフにエッジとして現れる請求項25の解析装
置。 - 【請求項27】 解析装置のユーザが該装置用の制御メ
ッセージを供給する手段を更に有し、 第2のライブラリはルーチンを受信する制御メッセージ
を含み、 第2のルーチンは制御メッセージに応答する請求項24
の解析装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/154,771 US5551037A (en) | 1993-11-19 | 1993-11-19 | Apparatus and methods for visualizing operation of a system of processes |
| US154771 | 1993-11-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07191872A true JPH07191872A (ja) | 1995-07-28 |
| JP2883826B2 JP2883826B2 (ja) | 1999-04-19 |
Family
ID=22552708
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6308467A Expired - Fee Related JP2883826B2 (ja) | 1993-11-19 | 1994-11-18 | システム解析装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5551037A (ja) |
| EP (1) | EP0654735B1 (ja) |
| JP (1) | JP2883826B2 (ja) |
| CA (1) | CA2118158C (ja) |
| DE (1) | DE69410753T2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7003761B2 (en) | 2000-05-18 | 2006-02-21 | Hitachi, Ltd. | Multi-process display method in debugger system |
| JP2006146788A (ja) * | 2004-11-24 | 2006-06-08 | Hitachi Software Eng Co Ltd | アクセス制御設定システム |
| WO2015141220A1 (ja) * | 2014-03-20 | 2015-09-24 | 日本電気株式会社 | 情報処理装置及び監視方法 |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100206461B1 (ko) * | 1995-11-24 | 1999-07-01 | 윤종용 | 프로세스 관리의 구현 및 가시화 방법 |
| WO1997034388A2 (en) * | 1996-03-12 | 1997-09-18 | Compuserve Incorporated | System for developing user interface themes |
| US6041363A (en) * | 1996-03-29 | 2000-03-21 | Sun Microsystems, Inc, | Imbedding virtual device driver (VxD) calls in a dynamic link library (DLL) |
| EP0801348A1 (en) * | 1996-04-10 | 1997-10-15 | Hewlett-Packard Company | Method of monitoring the operation of a computer |
| US5995113A (en) * | 1996-08-02 | 1999-11-30 | Hewlett-Packard Company | Coloring events in event streams in order to provide information about operation of a software library |
| US6282701B1 (en) * | 1997-07-31 | 2001-08-28 | Mutek Solutions, Ltd. | System and method for monitoring and analyzing the execution of computer programs |
| US5996090A (en) * | 1997-10-29 | 1999-11-30 | International Business Machines Corporation | Method and apparatus for quantitative diagnosis of performance problems using external representations |
| US6111579A (en) * | 1998-03-31 | 2000-08-29 | International Business Machines Corporation | Data processor controlled display system with a tree hierarchy of elements view having virtual nodes |
| US6232968B1 (en) * | 1998-03-31 | 2001-05-15 | International Business Machines Corporation | Data processor controlled display system with a plurality of switchable customized basic function interfaces for the control of varying types of operations |
| US6173246B1 (en) | 1998-07-21 | 2001-01-09 | Billups, Iii James T. | Method and system for a unified process automation software system |
| US7328405B1 (en) | 1998-12-09 | 2008-02-05 | Netscape Communications Corporation | Smart browsing providers |
| US7353234B2 (en) | 1998-12-30 | 2008-04-01 | Aol Llc, A Delaware Limited Liability Company | Customized user interface based on user record information |
| US7555721B2 (en) | 1998-12-30 | 2009-06-30 | Aol Llc, A Delaware Limited Liability Company | Customized user interface |
| US7007096B1 (en) | 1999-05-12 | 2006-02-28 | Microsoft Corporation | Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules |
| US6748440B1 (en) * | 1999-05-12 | 2004-06-08 | Microsoft Corporation | Flow of streaming data through multiple processing modules |
| US6704806B1 (en) * | 1999-05-27 | 2004-03-09 | Computer Associates Think, Inc. | Method and device for monitoring the creation and destruction of child processes within an application executing in a computer system |
| US7058928B2 (en) | 1999-12-23 | 2006-06-06 | Identify Software Ltd. | System and method for conditional tracing of computer programs |
| US20020087949A1 (en) * | 2000-03-03 | 2002-07-04 | Valery Golender | System and method for software diagnostics using a combination of visual and dynamic tracing |
| US6874139B2 (en) * | 2000-05-15 | 2005-03-29 | Interfuse Technology Corporation | Method and system for seamless integration of preprocessing and postprocessing functions with an existing application program |
| US6854119B1 (en) | 2000-09-29 | 2005-02-08 | International Business Machines Corporation | Method, apparatus and article of manufacture for tracking processes |
| US8312435B2 (en) * | 2000-12-26 | 2012-11-13 | Identify Software Ltd. (IL) | System and method for conditional tracing of computer programs |
| US20030005168A1 (en) * | 2001-06-29 | 2003-01-02 | Leerssen Scott Alan | System and method for auditing system call events with system call wrappers |
| US20030093164A1 (en) * | 2001-11-02 | 2003-05-15 | Martin Ebert | System for providing communication between a GUI and metrology control software |
| US7386839B1 (en) | 2002-11-06 | 2008-06-10 | Valery Golender | System and method for troubleshooting software configuration problems using application tracing |
| US8032866B1 (en) | 2003-03-27 | 2011-10-04 | Identify Software Ltd. | System and method for troubleshooting runtime software problems using application learning |
| US7827539B1 (en) | 2004-06-25 | 2010-11-02 | Identify Software Ltd. | System and method for automated tuning of program execution tracing |
| JP2006053788A (ja) * | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | ソフトウェア動作監視装置及びソフトウェア動作監視方法 |
| US8832156B2 (en) * | 2009-06-15 | 2014-09-09 | Microsoft Corporation | Distributed computing management |
| US9268615B2 (en) * | 2010-05-28 | 2016-02-23 | Microsoft Technology Licensing, Llc | Distributed computing using communities |
| US8572229B2 (en) | 2010-05-28 | 2013-10-29 | Microsoft Corporation | Distributed computing |
| CN111488967A (zh) * | 2020-02-26 | 2020-08-04 | 浙江工业大学 | 一种梯度下降算法的差异可视分析方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5291587A (en) * | 1986-04-14 | 1994-03-01 | National Instruments, Inc. | Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs |
| US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
| US5450586A (en) * | 1991-08-14 | 1995-09-12 | Hewlett-Packard Company | System for analyzing and debugging embedded software through dynamic and interactive use of code markers |
| US5265254A (en) * | 1991-08-14 | 1993-11-23 | Hewlett-Packard Company | System of debugging software through use of code markers inserted into spaces in the source code during and after compilation |
| EP0568717A1 (de) * | 1992-05-07 | 1993-11-10 | International Business Machines Corporation | Computerprogrammgesteuertes Verfahren (Tracing) zur schrittweisen Protokollierung der Ausführung eines Zielprogrammes bezüglich der Aufrufe des Zielprogrammes durch andere Programme |
-
1993
- 1993-11-19 US US08/154,771 patent/US5551037A/en not_active Expired - Fee Related
-
1994
- 1994-10-14 CA CA002118158A patent/CA2118158C/en not_active Expired - Fee Related
- 1994-11-09 EP EP94308275A patent/EP0654735B1/en not_active Expired - Lifetime
- 1994-11-09 DE DE69410753T patent/DE69410753T2/de not_active Expired - Fee Related
- 1994-11-18 JP JP6308467A patent/JP2883826B2/ja not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7003761B2 (en) | 2000-05-18 | 2006-02-21 | Hitachi, Ltd. | Multi-process display method in debugger system |
| JP2006146788A (ja) * | 2004-11-24 | 2006-06-08 | Hitachi Software Eng Co Ltd | アクセス制御設定システム |
| WO2015141220A1 (ja) * | 2014-03-20 | 2015-09-24 | 日本電気株式会社 | 情報処理装置及び監視方法 |
| WO2015140842A1 (ja) * | 2014-03-20 | 2015-09-24 | 日本電気株式会社 | システムを監視する情報処理装置及び監視方法 |
| JPWO2015141220A1 (ja) * | 2014-03-20 | 2017-04-06 | 日本電気株式会社 | 情報処理装置及び監視方法 |
| US10860406B2 (en) | 2014-03-20 | 2020-12-08 | Nec Corporation | Information processing device and monitoring method |
Also Published As
| Publication number | Publication date |
|---|---|
| US5551037A (en) | 1996-08-27 |
| CA2118158A1 (en) | 1995-05-12 |
| EP0654735B1 (en) | 1998-06-03 |
| DE69410753T2 (de) | 1998-12-24 |
| CA2118158C (en) | 1999-02-02 |
| DE69410753D1 (de) | 1998-07-09 |
| JP2883826B2 (ja) | 1999-04-19 |
| EP0654735A1 (en) | 1995-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2883826B2 (ja) | システム解析装置 | |
| US5802371A (en) | Method of walking-up a call stack for a client/server program that uses remote procedure call | |
| US6810522B2 (en) | Method and system for associating parameters of containers and contained objects | |
| US8640104B2 (en) | Computer method and apparatus for debugging in a dynamic computer language | |
| US6042614A (en) | System and method for a distributed debugger for debugging distributed application programs | |
| Kacsuk et al. | A graphical development and debugging environment for parallel programs | |
| JP4420968B2 (ja) | コマンディングのために方法及びコンピュータ可読媒体 | |
| JP5520446B2 (ja) | 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張 | |
| Kunz et al. | Poet: Target-system independent visualizations of complex distributed-application executions | |
| Cargill | Pi: A case study in object-oriented programming | |
| US20020147963A1 (en) | Method and apparatus for generating machine control instructions | |
| Chan et al. | Design recovery of interactive graphical applications | |
| Laffra et al. | HotWire-A Visual Debugger for C++. | |
| Geist et al. | Visualization, debugging, and performance in PVM | |
| Hao et al. | VIZIR: an integrated environment for distributed program visualization | |
| JPH06332689A (ja) | プログラムの表示方法およびプログラムの編集受付け方法 | |
| EP0352908A2 (en) | Computing system and method used to provide instruction to a user for a plurality of computer applications | |
| Satoh et al. | Correlating Program Code to Output for Supporting Program Understanding | |
| Gillis | MADCAPP: Measurement and analysis of high-level communications of asynchronous distributed algorithms on parallel processors | |
| Mascarenhas et al. | An architecture for visualization and user interaction in parallel environments | |
| KFKI-MSZKI et al. | Visual Programming | |
| Jeffery | Execution Monitoring in MT Icon | |
| Jameson | Auditory Characteristics of Algorithms and Data | |
| Pages | Friendly Integrated Environment for Learning and Development | |
| Reiss | The FIELD Debugger |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |