JPH08147189A - 並列計算機のオペレーティングシステムのデバッグ方法 - Google Patents
並列計算機のオペレーティングシステムのデバッグ方法Info
- Publication number
- JPH08147189A JPH08147189A JP6290934A JP29093494A JPH08147189A JP H08147189 A JPH08147189 A JP H08147189A JP 6290934 A JP6290934 A JP 6290934A JP 29093494 A JP29093494 A JP 29093494A JP H08147189 A JPH08147189 A JP H08147189A
- Authority
- JP
- Japan
- Prior art keywords
- debugger
- agent
- request
- processor
- master
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】並列計算機のオペレーティングシステムのデバ
ッグにおいての一つのプロセッサが外部の計算機と接続
されているだけで、全てのプロセッサ上で動作するオペ
レーティングシステムのデバッグを可能とする。 【構成】デバッグ対象となる並列計算機108と通信路
122により接続された計算機100の上で動作するデ
バッガ102と、並列計算機のプロセッサ110の上で
動作するマスタデバッガエージェント118とそれ以外
のプロセッサ112の上で動作するデバッガエージェン
ト120により構成さる。デバッガ102はマスタデバ
ッガエージェント118とデバッグインタラクションを
行い、マスタデバッガエージェント118は必要ならデ
バッガエージェント120に要求を伝送する。
ッグにおいての一つのプロセッサが外部の計算機と接続
されているだけで、全てのプロセッサ上で動作するオペ
レーティングシステムのデバッグを可能とする。 【構成】デバッグ対象となる並列計算機108と通信路
122により接続された計算機100の上で動作するデ
バッガ102と、並列計算機のプロセッサ110の上で
動作するマスタデバッガエージェント118とそれ以外
のプロセッサ112の上で動作するデバッガエージェン
ト120により構成さる。デバッガ102はマスタデバ
ッガエージェント118とデバッグインタラクションを
行い、マスタデバッガエージェント118は必要ならデ
バッガエージェント120に要求を伝送する。
Description
【0001】
【産業上の利用分野】本発明は、高速なネットワークに
て結合された複数のプロセッサからなる並列計算機上で
動作するオペレーティングシステムのデバッグ方法に関
する。
て結合された複数のプロセッサからなる並列計算機上で
動作するオペレーティングシステムのデバッグ方法に関
する。
【0002】
【従来の技術】並列計算機は、複数のプロセッサがロー
カルなメモリを持ち、お互いに相互結合網にて結合され
たものである。各々のプロセッサからのみアクセスされ
るローカルメモリの他に、全てのプロセッサから統一的
にアクセスされるグローバルメモリを備えているものも
ある("並列オペレーティング・システム" 情報処理 Vo
l.34 No.9 pp1139-1149)。
カルなメモリを持ち、お互いに相互結合網にて結合され
たものである。各々のプロセッサからのみアクセスされ
るローカルメモリの他に、全てのプロセッサから統一的
にアクセスされるグローバルメモリを備えているものも
ある("並列オペレーティング・システム" 情報処理 Vo
l.34 No.9 pp1139-1149)。
【0003】一般にこのような並列計算機上で動作する
プログラムのデバッグ、つまり、オペレーティングシス
テム(以下、OSと記述)の管理化で動作する並列プロ
グラムのデバッグは、ACM Computing Surveys Vol.21 N
o.4 pp.593-622 で示されるように、逐次プログラム用
のデバッガを並列プログラムを構成する各逐次プログラ
ムに適用し、これらのデバッガを一つの集合とみなすも
のが主流である。
プログラムのデバッグ、つまり、オペレーティングシス
テム(以下、OSと記述)の管理化で動作する並列プロ
グラムのデバッグは、ACM Computing Surveys Vol.21 N
o.4 pp.593-622 で示されるように、逐次プログラム用
のデバッガを並列プログラムを構成する各逐次プログラ
ムに適用し、これらのデバッガを一つの集合とみなすも
のが主流である。
【0004】一方、シングルプロセッサおよび共用メモ
リ型マルチプロセッサシステムOSのデバッグとして
は、リモートデバッガを用いた方法が知られている("R
emoteDebbuger",Hewlett-Packard journal Aug. 1986.
pp 43 や "マルチプロセッサ対応のリモート・シンボリ
ック・カーネルデバッガ" 情報処理学会第44回全国大会
講演集pp 4-31 - 4-32)。リモートデバッガは、動作の
安定した計算機(ホスト)から、デバッグ対象となる計
算機(ターゲット)上のOSをリモートにデバッグする
ものである。ホスト上にはシンボルテーブル等を使用し
て高機能で高級なインタフェースを提供するデバッガを
動作させ、また、ターゲット上にはデバッグを行なうた
めに必要な低機能、たとえば、メモリ参照/更新、レジ
スタ参照、ブレークポイント設定等を提供するデバッガ
エージェントを動作させ、デバッガとデバッガエージェ
ントがインタラクションしながらデバッグ動作を行なう
ものである。
リ型マルチプロセッサシステムOSのデバッグとして
は、リモートデバッガを用いた方法が知られている("R
emoteDebbuger",Hewlett-Packard journal Aug. 1986.
pp 43 や "マルチプロセッサ対応のリモート・シンボリ
ック・カーネルデバッガ" 情報処理学会第44回全国大会
講演集pp 4-31 - 4-32)。リモートデバッガは、動作の
安定した計算機(ホスト)から、デバッグ対象となる計
算機(ターゲット)上のOSをリモートにデバッグする
ものである。ホスト上にはシンボルテーブル等を使用し
て高機能で高級なインタフェースを提供するデバッガを
動作させ、また、ターゲット上にはデバッグを行なうた
めに必要な低機能、たとえば、メモリ参照/更新、レジ
スタ参照、ブレークポイント設定等を提供するデバッガ
エージェントを動作させ、デバッガとデバッガエージェ
ントがインタラクションしながらデバッグ動作を行なう
ものである。
【0005】並列計算機のOSのデバッガとしては、上
記シングルプロセッサのデバッガエージェントを並列計
算機の各プロセッサで動作させ、これらの複数のデバッ
ガエージェントを一つのデバッガがインタラクションす
るリモートデバッガが考えられる。
記シングルプロセッサのデバッガエージェントを並列計
算機の各プロセッサで動作させ、これらの複数のデバッ
ガエージェントを一つのデバッガがインタラクションす
るリモートデバッガが考えられる。
【0006】
【発明が解決しようとする課題】各プロセッサにシング
ルプロセッサのデバッガエージェントを動作させる場
合、すべてのプロセッサに外部の計算機と接続するため
の通信路が装着されていることが必要である。しかし、
通常、並列計算機では全てのプロセッサには内部的に結
合するための通信路が装着されているが、外部の計算機
と接続される通信路が装着されるプロセッサは限られ
る。本発明の目的は、一つのプロセッサに外部の計算機
と接続するための通信路が装着されていれば、全てのプ
ロセッサ上のOSのデバッグを可能とすることにある。
また、デバッガが複数のプロセッサに対して同一のデバ
ッグ要求を行う場合に、対象となるプロセッサ群のすべ
てのデバッガエージェントにデバッグ要求を発行するこ
となく、デバッガと唯一インタラクションする一つのマ
スタデバッガエージェントに対して一回の要求を行うだ
けで、複数のプロセッサへのデバッグ要求が行えるよう
にすることにある。
ルプロセッサのデバッガエージェントを動作させる場
合、すべてのプロセッサに外部の計算機と接続するため
の通信路が装着されていることが必要である。しかし、
通常、並列計算機では全てのプロセッサには内部的に結
合するための通信路が装着されているが、外部の計算機
と接続される通信路が装着されるプロセッサは限られ
る。本発明の目的は、一つのプロセッサに外部の計算機
と接続するための通信路が装着されていれば、全てのプ
ロセッサ上のOSのデバッグを可能とすることにある。
また、デバッガが複数のプロセッサに対して同一のデバ
ッグ要求を行う場合に、対象となるプロセッサ群のすべ
てのデバッガエージェントにデバッグ要求を発行するこ
となく、デバッガと唯一インタラクションする一つのマ
スタデバッガエージェントに対して一回の要求を行うだ
けで、複数のプロセッサへのデバッグ要求が行えるよう
にすることにある。
【0007】また、OSのデバッグに特徴的な関連テー
ブルを参照して最終的に目的とするデータを参照すると
いったデバッグ操作においては、一般にテーブル群はメ
モリ不連続であるため、デバッガエージェントに対して
関連するテーブルのメモリ参照要求を複数回発行して目
的とするデータを参照しなければならなかった。このた
め、デバッガとデバッガエージェントとのインタラクシ
ョン回数が増加し、デバッグ動作に時間が掛かるといっ
た問題があった。本発明では、デバッガエージェントへ
の1回の要求で複数のテーブルに関連したデータを参照
とすることを可能として、デバッガとデバッガエージェ
ントとのインタラクション回数を減らすことにある。
ブルを参照して最終的に目的とするデータを参照すると
いったデバッグ操作においては、一般にテーブル群はメ
モリ不連続であるため、デバッガエージェントに対して
関連するテーブルのメモリ参照要求を複数回発行して目
的とするデータを参照しなければならなかった。このた
め、デバッガとデバッガエージェントとのインタラクシ
ョン回数が増加し、デバッグ動作に時間が掛かるといっ
た問題があった。本発明では、デバッガエージェントへ
の1回の要求で複数のテーブルに関連したデータを参照
とすることを可能として、デバッガとデバッガエージェ
ントとのインタラクション回数を減らすことにある。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、デバッガは並列計算機の一つのプロセッサ上で動作
するマスタデバッガエージェントに対してのみデバッグ
要求を行い、マスタデバッガエージェントは各プロセッ
サのデバッガエージェントにデバッグ要求を伝送する。
また、マスタデバッガエージェントは複数プロセッサに
対する要求を受け付けたらなら、対象となるプロセッサ
のすべてのデバッガエージェントに対して要求を伝送す
る。
め、デバッガは並列計算機の一つのプロセッサ上で動作
するマスタデバッガエージェントに対してのみデバッグ
要求を行い、マスタデバッガエージェントは各プロセッ
サのデバッガエージェントにデバッグ要求を伝送する。
また、マスタデバッガエージェントは複数プロセッサに
対する要求を受け付けたらなら、対象となるプロセッサ
のすべてのデバッガエージェントに対して要求を伝送す
る。
【0009】また、デバッガエージェントが複数のテー
ブルに関連するデータの参照機能を提供し、デバッガと
デバッガエージェントとのインタラクションを削減可能
にとする。
ブルに関連するデータの参照機能を提供し、デバッガと
デバッガエージェントとのインタラクションを削減可能
にとする。
【0010】
【作用】デバッガはマスタデバッガエージェントとのみ
デバッグインタラクションを行う。マスタデバッガエー
ジェントはデバッガからの要求がどのプロセッサに対し
て行われたものかを判定し、要求されたプロセッサ上の
デバッガエージェントに要求を伝送する。マスタデバッ
ガエージェントから伝送された要求を受け付けたデバッ
ガエージェントでは、要求されたデバッグ動作を実行
し、これに対する応答をマスタデバッガエージェントに
対して返答する。マスタデバッガエージェントは受け取
った応答をデバッガに送る。このようにすることで、デ
バッガはマスタデバッガエージェントとのインタラクシ
ョンを行なうだけで並列計算機の全てのプロセッサ上の
デバッガエージェントに対してデバッグ要求を行なえる
ようになる。
デバッグインタラクションを行う。マスタデバッガエー
ジェントはデバッガからの要求がどのプロセッサに対し
て行われたものかを判定し、要求されたプロセッサ上の
デバッガエージェントに要求を伝送する。マスタデバッ
ガエージェントから伝送された要求を受け付けたデバッ
ガエージェントでは、要求されたデバッグ動作を実行
し、これに対する応答をマスタデバッガエージェントに
対して返答する。マスタデバッガエージェントは受け取
った応答をデバッガに送る。このようにすることで、デ
バッガはマスタデバッガエージェントとのインタラクシ
ョンを行なうだけで並列計算機の全てのプロセッサ上の
デバッガエージェントに対してデバッグ要求を行なえる
ようになる。
【0011】並列計算機のデバッグに特徴的な複数のプ
ロセッサに対する同一デバッグ要求の場合は、デバッガ
はマスタデバッガエージェントに対して処理の対象とな
る複数プロセッサを指定してデバッグ要求を発行する。
要求を受け取ったマスタデバッガエージェントは、指定
されたプロセッサ群の全てのデバッガエージェントに要
求を伝達する。要求を受け取ったデバッガエージェント
はデバッグ動作を行ない、その応答をマスタデバッガエ
ージェントに返す。対象プロセッサのすべてのデバッガ
エージェントからの応答が返ってきたら、マスタデバッ
ガエージェントはデバッガに対して当該要求に対する応
答を返す。このようにすることで、デバッガがマスタデ
バッガエージェントに複数の要求を発行する必要がなく
なり、処理が高速化する。
ロセッサに対する同一デバッグ要求の場合は、デバッガ
はマスタデバッガエージェントに対して処理の対象とな
る複数プロセッサを指定してデバッグ要求を発行する。
要求を受け取ったマスタデバッガエージェントは、指定
されたプロセッサ群の全てのデバッガエージェントに要
求を伝達する。要求を受け取ったデバッガエージェント
はデバッグ動作を行ない、その応答をマスタデバッガエ
ージェントに返す。対象プロセッサのすべてのデバッガ
エージェントからの応答が返ってきたら、マスタデバッ
ガエージェントはデバッガに対して当該要求に対する応
答を返す。このようにすることで、デバッガがマスタデ
バッガエージェントに複数の要求を発行する必要がなく
なり、処理が高速化する。
【0012】デバッガエージェントに、指定された領域
のデータの参照機能の他に、目的のデータを参照する手
順を指定して最終的に見つかったデータを返すような、
複数のテーブルに関連するデータの参照機能を設けるこ
とにより、デバッガはデバッガエージェントに対して1
回の要求を発行するだけで目的のデータが参照可能とな
る。例えば、テーブルAのフィールドa1はテーブルB
を示し、テーブルBのフィールドb1はテーブルCを示
すようなテーブル関連があり、テーブルCのフィールド
c1のデータを参照したいとする。デバッガエージェン
トに、指定された領域のデータの参照機能しか無い場合
は、デバッガはデバッガエージェントに対し、テーブル
Aのフィールドa1のデータを参照する要求を出してテ
ーブルBの領域を知り、次に、テーブルBのフィールド
b1のデータを参照する要求を出してテーブルCの領域
を知り、最後にテーブルC1のフィールドc1のデータ
を参照する要求を出す。このように、テーブル関連があ
るデータを参照する場合、デバッガエージェントに対し
複数回の要求を発行する必要があった。これに対し、デ
バッガエージェントが複数のテーブルに関連するデータ
の参照機能を提供した場合、デバッガは要求を1回だけ
デバッガエージェントに対して発行するだけで、テーブ
ルCのフィールドc1のデータを得ることが可能にな
る。つまり、デバッガエージェント側でテーブルAから
テーブルCのフィールドc1のデータ検索を行うのであ
る。一般にOSのデバッグでは複数のテーブルを参照し
て最終的なデータを参照するデバッグ操作を頻繁に行う
ため、このような機能を設けることで、デバッガとデバ
ッガエージェントのインタラクションが減少して、デバ
ッグ動作が高速化する。
のデータの参照機能の他に、目的のデータを参照する手
順を指定して最終的に見つかったデータを返すような、
複数のテーブルに関連するデータの参照機能を設けるこ
とにより、デバッガはデバッガエージェントに対して1
回の要求を発行するだけで目的のデータが参照可能とな
る。例えば、テーブルAのフィールドa1はテーブルB
を示し、テーブルBのフィールドb1はテーブルCを示
すようなテーブル関連があり、テーブルCのフィールド
c1のデータを参照したいとする。デバッガエージェン
トに、指定された領域のデータの参照機能しか無い場合
は、デバッガはデバッガエージェントに対し、テーブル
Aのフィールドa1のデータを参照する要求を出してテ
ーブルBの領域を知り、次に、テーブルBのフィールド
b1のデータを参照する要求を出してテーブルCの領域
を知り、最後にテーブルC1のフィールドc1のデータ
を参照する要求を出す。このように、テーブル関連があ
るデータを参照する場合、デバッガエージェントに対し
複数回の要求を発行する必要があった。これに対し、デ
バッガエージェントが複数のテーブルに関連するデータ
の参照機能を提供した場合、デバッガは要求を1回だけ
デバッガエージェントに対して発行するだけで、テーブ
ルCのフィールドc1のデータを得ることが可能にな
る。つまり、デバッガエージェント側でテーブルAから
テーブルCのフィールドc1のデータ検索を行うのであ
る。一般にOSのデバッグでは複数のテーブルを参照し
て最終的なデータを参照するデバッグ操作を頻繁に行う
ため、このような機能を設けることで、デバッガとデバ
ッガエージェントのインタラクションが減少して、デバ
ッグ動作が高速化する。
【0013】
(実施例1)以下、図1、図2および図3を用いて本発
明の実施例を説明する。図1は本発明のデバッガの構成
を示すブロック図である。図1において100はUNI
Xワークステーション、108はデバッグ対象となるO
Sが動作する並列計算機、122はUNIXワークステ
ーション(100)と並列計算機(108)を接続する
イーサネットである。UNIXワークステーション上で
はUNIXオペレーティングシステム(104)上のア
プリケーションとしてデバッガ(102)が動作してい
る。並列計算機にはイーサネットの接続されたプロセッ
サ(110)とそれ以外のプロセッサ群(112)から
構成され、これらのプロセッサはお互いに内部ネットワ
ーク(124)で結合されている。110で示されるプ
ロセッサにはマスタデバッガエージェント(118)が
動作しており、112で示されるプロセッサ群にはデバ
ッガエージェントが動作している。マスタデバッガエー
ジェント(118)とデバッガエージェント(120)
はそれぞれ自プロセッサ上で動作するOS(114)に
対してデバッグ操作(136)を行う。
明の実施例を説明する。図1は本発明のデバッガの構成
を示すブロック図である。図1において100はUNI
Xワークステーション、108はデバッグ対象となるO
Sが動作する並列計算機、122はUNIXワークステ
ーション(100)と並列計算機(108)を接続する
イーサネットである。UNIXワークステーション上で
はUNIXオペレーティングシステム(104)上のア
プリケーションとしてデバッガ(102)が動作してい
る。並列計算機にはイーサネットの接続されたプロセッ
サ(110)とそれ以外のプロセッサ群(112)から
構成され、これらのプロセッサはお互いに内部ネットワ
ーク(124)で結合されている。110で示されるプ
ロセッサにはマスタデバッガエージェント(118)が
動作しており、112で示されるプロセッサ群にはデバ
ッガエージェントが動作している。マスタデバッガエー
ジェント(118)とデバッガエージェント(120)
はそれぞれ自プロセッサ上で動作するOS(114)に
対してデバッグ操作(136)を行う。
【0014】デバッガ(102)はUNIXのアプリケ
ーションで、シンボルテーブルを参照した高度なデバッ
グ処理や、ウインドウシステムを使用した高機能インタ
フェースを提供する。一方、マスタデバッガエージェン
ト(118)およびデバッガエージェント(120)
は、デバッガ(102)に基本的なデバッガプリミティ
ブを提供するプログラムで、デバッガ(102)からの
要求を受け取り、プロセッサ上で動作するオペレーティ
ングシステム(114)に対してデバッグ動作(13
6)を行う。デバッガ(102)はマスタデバッガエー
ジェント(118)とイーサネット(122)を介し
て、デバッグインタラクション(130)を行なう。
ーションで、シンボルテーブルを参照した高度なデバッ
グ処理や、ウインドウシステムを使用した高機能インタ
フェースを提供する。一方、マスタデバッガエージェン
ト(118)およびデバッガエージェント(120)
は、デバッガ(102)に基本的なデバッガプリミティ
ブを提供するプログラムで、デバッガ(102)からの
要求を受け取り、プロセッサ上で動作するオペレーティ
ングシステム(114)に対してデバッグ動作(13
6)を行う。デバッガ(102)はマスタデバッガエー
ジェント(118)とイーサネット(122)を介し
て、デバッグインタラクション(130)を行なう。
【0015】マスタデバッガエージェント(118)は
プロセッサ群(110、112)が結合された内部ネッ
トワーク(124)を介して各プロセッサ(112)上
のデバッガエージェント(120)と通信する(13
2)。
プロセッサ群(110、112)が結合された内部ネッ
トワーク(124)を介して各プロセッサ(112)上
のデバッガエージェント(120)と通信する(13
2)。
【0016】マスタデバッガエージェント(118)
は、デバッガエージェントの機能の他に、UNIXのア
プリケーションとして動作するデバッガ(102)との
通信を行なうイーサネットドライバ+TCP/IPプロ
トコルの機能を持ち、デバッガ(102)からの要求が
自プロセッサ(110)のものならデバッグ要求を処理
して応答をイーサネット(122)を介してデバッガ
(102)に転送する。デバッガ(102)からの要求
が自プロセッサ(110)以外へのものなら、内部ネッ
トワーク(124)を介して該当プロセッサ(112)
のデバッガエージェント(118)に要求を伝送する
(132)。
は、デバッガエージェントの機能の他に、UNIXのア
プリケーションとして動作するデバッガ(102)との
通信を行なうイーサネットドライバ+TCP/IPプロ
トコルの機能を持ち、デバッガ(102)からの要求が
自プロセッサ(110)のものならデバッグ要求を処理
して応答をイーサネット(122)を介してデバッガ
(102)に転送する。デバッガ(102)からの要求
が自プロセッサ(110)以外へのものなら、内部ネッ
トワーク(124)を介して該当プロセッサ(112)
のデバッガエージェント(118)に要求を伝送する
(132)。
【0017】図2の350はマスタデバッガエージェン
ト(118)およびデバッガエージェント(120)が
提供するデバッガプリミティブの一部を示したものであ
る。また、310はデバッガ(102)がマスタデバッ
ガエージェント(118)に対して発行するデバッガプ
リミティブ機能を要求するための要求フォーマット(3
10)を示し、330はその要求に対する応答の応答フ
ォーマットを示す。
ト(118)およびデバッガエージェント(120)が
提供するデバッガプリミティブの一部を示したものであ
る。また、310はデバッガ(102)がマスタデバッ
ガエージェント(118)に対して発行するデバッガプ
リミティブ機能を要求するための要求フォーマット(3
10)を示し、330はその要求に対する応答の応答フ
ォーマットを示す。
【0018】要求フォーマット(310)は、要求の処
理対象となるプロセッサ数(310)、要求の処理対象
となるプロセッサを示すプロセッサ番号(314)、要
求のタイプ(316)、要求のパラメタ(318)のフ
ィールドから構成される。応答フォーマット(330)
は応答のプロセッサ数(332)、応答を返答したプロ
セッサを示すプロセッサ番号(334)、応答のタイプ
(336)、応答のパラメタ(338)のフィールドか
ら構成される。
理対象となるプロセッサ数(310)、要求の処理対象
となるプロセッサを示すプロセッサ番号(314)、要
求のタイプ(316)、要求のパラメタ(318)のフ
ィールドから構成される。応答フォーマット(330)
は応答のプロセッサ数(332)、応答を返答したプロ
セッサを示すプロセッサ番号(334)、応答のタイプ
(336)、応答のパラメタ(338)のフィールドか
ら構成される。
【0019】デバッガエージェント(118、120)
がデバッガ(102)に提供する機能は、メモリ参照
(352)、メモリ書き込み(354)、レジスタ参照
(356)、ブレークポイント設定(358)、シング
ルステップ実行(360)、実行中断(362)、実行
再開(364)が存在しする。
がデバッガ(102)に提供する機能は、メモリ参照
(352)、メモリ書き込み(354)、レジスタ参照
(356)、ブレークポイント設定(358)、シング
ルステップ実行(360)、実行中断(362)、実行
再開(364)が存在しする。
【0020】図3はデバッガ(102)からマスタデバ
ッガエージェント(118)に対して要求が発行された
時の、マスタデバッガエージェント(118)の処理を
示すフローチャートである。デバッガ(102)から3
10で示される要求フォーマットに従って要求が発行さ
れたなら、マスタデバッガエージェント(118)は要
求フォーマット中のプロセッサ番号(314)を抽出
(ステップ200)し、抽出したプロセッサ番号(31
4)が自プロセッサ番号かどうかをチェックする(ステ
ップ220)。自プロセッサ番号であれば要求された処
理を行う(ステップ240)。自プロセッサ番号でなけ
ればプロセッサ番号で示されるプロセッサのデバッガエ
ージェント(120)に要求を伝送する(ステップ26
0)。さらに次のプロセッサ番号があるかどうかをチェ
ックし、あればステップ200からの動作を繰り返し
て、なければ処理を終了する(ステップ280)。
ッガエージェント(118)に対して要求が発行された
時の、マスタデバッガエージェント(118)の処理を
示すフローチャートである。デバッガ(102)から3
10で示される要求フォーマットに従って要求が発行さ
れたなら、マスタデバッガエージェント(118)は要
求フォーマット中のプロセッサ番号(314)を抽出
(ステップ200)し、抽出したプロセッサ番号(31
4)が自プロセッサ番号かどうかをチェックする(ステ
ップ220)。自プロセッサ番号であれば要求された処
理を行う(ステップ240)。自プロセッサ番号でなけ
ればプロセッサ番号で示されるプロセッサのデバッガエ
ージェント(120)に要求を伝送する(ステップ26
0)。さらに次のプロセッサ番号があるかどうかをチェ
ックし、あればステップ200からの動作を繰り返し
て、なければ処理を終了する(ステップ280)。
【0021】マスタデバッガエージェント(118)か
らのデバッグ要求を受け取ったデバッガエージェント
(120)はデバッグ要求を処理してマスタデバッガエ
ージェント(118)に応答を返す。応答を受け取った
マスタデバッガエージェント(118)はこの応答をデ
バッガ(102)に返す。
らのデバッグ要求を受け取ったデバッガエージェント
(120)はデバッグ要求を処理してマスタデバッガエ
ージェント(118)に応答を返す。応答を受け取った
マスタデバッガエージェント(118)はこの応答をデ
バッガ(102)に返す。
【0022】このようにすることで、デバッガ(10
2)はマスタデバッガエージェント(118)とのイン
タラクションを行うだけで、並列計算機の全てのプロセ
ッサ上のOS(114)のデバッグを行うことが可能と
なる。
2)はマスタデバッガエージェント(118)とのイン
タラクションを行うだけで、並列計算機の全てのプロセ
ッサ上のOS(114)のデバッグを行うことが可能と
なる。
【0023】また、並列計算機のOSをデバッグする場
合は、同時に複数のプロセッサに対して、同一の操作を
行う場合がある。これに対処するため、デバッガ(10
2)からの要求フォーマット(310)には操作対象の
複数プロセッサ番号を記述するフィールド(314)を
含んでいる。このフィールドが全てプロセッサ対象であ
る場合、や、あるプロセッサ群が示された場合は、マス
タデバッガエージェント(118)が対応するプロセッ
サ上のデバッガエージェント(120)全てに要求を伝
送する。要求が送られてきたデバッガエージェント(1
20)は要求の処理を行ない応答をマスタデバッガエー
ジェント(118)に返す。マスタデバッガエージェン
ト(118)では要求を伝送した全てのデバッガエージ
ェント(120)から応答が返ってきたなら、これをデ
バッガ(102)に返す。このように、デバッガ(10
2)はマスタデバッガエージェント(118)に対し
て、デバッグ対象となる複数のプロセッサ群に対する要
求を1回の要求で発行可能であるため、複数プロセッサ
に対して同一の要求を複数回発行する必要が無くなり、
デバッガ(102)とマスタデバッガエージェント(1
18)のインタラクション回数を削減し、デバッグ処理
を高速化している。
合は、同時に複数のプロセッサに対して、同一の操作を
行う場合がある。これに対処するため、デバッガ(10
2)からの要求フォーマット(310)には操作対象の
複数プロセッサ番号を記述するフィールド(314)を
含んでいる。このフィールドが全てプロセッサ対象であ
る場合、や、あるプロセッサ群が示された場合は、マス
タデバッガエージェント(118)が対応するプロセッ
サ上のデバッガエージェント(120)全てに要求を伝
送する。要求が送られてきたデバッガエージェント(1
20)は要求の処理を行ない応答をマスタデバッガエー
ジェント(118)に返す。マスタデバッガエージェン
ト(118)では要求を伝送した全てのデバッガエージ
ェント(120)から応答が返ってきたなら、これをデ
バッガ(102)に返す。このように、デバッガ(10
2)はマスタデバッガエージェント(118)に対し
て、デバッグ対象となる複数のプロセッサ群に対する要
求を1回の要求で発行可能であるため、複数プロセッサ
に対して同一の要求を複数回発行する必要が無くなり、
デバッガ(102)とマスタデバッガエージェント(1
18)のインタラクション回数を削減し、デバッグ処理
を高速化している。
【0024】(実施例2)以下、図1、図4、図5およ
び図6を用いて本発明の実施例を説明する。図4の40
0で示されるデータフォーマットは、デバッガ(10
2)がデバッガエージェント(118、120)に対し
て、複数のテーブルに関連するデータ参照機能を要求す
るためのフォーマットである。このフォーマットは参照
するテーブルの数(402)、先頭テーブルのポインタ
(404)、参照テーブルのポインタが格納されたフィ
ールドオフセット(406)、最終的に参照するデータ
のバイト数(408)から構成される。
び図6を用いて本発明の実施例を説明する。図4の40
0で示されるデータフォーマットは、デバッガ(10
2)がデバッガエージェント(118、120)に対し
て、複数のテーブルに関連するデータ参照機能を要求す
るためのフォーマットである。このフォーマットは参照
するテーブルの数(402)、先頭テーブルのポインタ
(404)、参照テーブルのポインタが格納されたフィ
ールドオフセット(406)、最終的に参照するデータ
のバイト数(408)から構成される。
【0025】図5はデバッガエージェントの複数のテー
ブルに関連するデータ参照機能の処理を示したフローチ
ャートである。図5を使用してデバッガエージェントの
複数のテーブルに関連するデータ参照処理を説明する。
まず、要求フォーマットの先頭テーブルポインタ(40
4)を内部変数tptrに設定する(ステップ50
0)。次に、参照するテーブル数をカウントする内部変
数nを1に初期化する(ステップ510)。次に、内部
変数tptrに要求フォーマットのフィールドn(40
6)の値を加えた領域が示す内容を内部変数tptrに
設定する(ステップ520)。そして、変数nを1だけ
インクリメントする(ステップ540)。ここで変数n
が要求フォーマットのテーブル数より大きいかどうかチ
ェックし(ステップ540)、大きい場合は最終的に参
照するデータを内部変数tptrが示す領域から要求フ
ォーマットの参照データバイト(408)だけ読み出す
(ステップ550)。大きくない場合は、つまり、次の
テーブルを参照する場合はステップ520からの処理を
繰り返す。
ブルに関連するデータ参照機能の処理を示したフローチ
ャートである。図5を使用してデバッガエージェントの
複数のテーブルに関連するデータ参照処理を説明する。
まず、要求フォーマットの先頭テーブルポインタ(40
4)を内部変数tptrに設定する(ステップ50
0)。次に、参照するテーブル数をカウントする内部変
数nを1に初期化する(ステップ510)。次に、内部
変数tptrに要求フォーマットのフィールドn(40
6)の値を加えた領域が示す内容を内部変数tptrに
設定する(ステップ520)。そして、変数nを1だけ
インクリメントする(ステップ540)。ここで変数n
が要求フォーマットのテーブル数より大きいかどうかチ
ェックし(ステップ540)、大きい場合は最終的に参
照するデータを内部変数tptrが示す領域から要求フ
ォーマットの参照データバイト(408)だけ読み出す
(ステップ550)。大きくない場合は、つまり、次の
テーブルを参照する場合はステップ520からの処理を
繰り返す。
【0026】図6に具体的な複数のテーブルに関連する
データ参照要求を示す。メモリ番地10604に存在す
るテーブルA(650)のオフセット20(652)に
テーブルB(654)のポインタが存在し、テーブルB
(654)のオフセット28(656)にテーブルC
(658)のポインタが存在し、テーブルC(658)
のオフセット16(660)が示す領域のデータの20
バイト(662)を参照したい場合の要求フォーマット
次のようになる(600)。
データ参照要求を示す。メモリ番地10604に存在す
るテーブルA(650)のオフセット20(652)に
テーブルB(654)のポインタが存在し、テーブルB
(654)のオフセット28(656)にテーブルC
(658)のポインタが存在し、テーブルC(658)
のオフセット16(660)が示す領域のデータの20
バイト(662)を参照したい場合の要求フォーマット
次のようになる(600)。
【0027】要求フォーマットのテーブル数はテーブル
A、テーブルB、テーブルCの3つであるので3を設定
し(602)、先頭ポインタにはテーブルAの先頭メモ
リ番地10604を設定する(604)。テーブルAの
オフセット20にテーブルBの先頭メモリ番地が設定さ
れているので、フィールド1には20を設定する(60
6)。テーブルBのオフセット28にテーブルCの先頭
メモリ番地が設定されているので、フィールド2には2
8を設定する(608)。さらに、テーブルCのオフセ
ット16に参照データの先頭メモリ番地が設定されてい
るのでフィールド3に16を設定する(610)。最後
に参照するデータは20バイトであるので、参照データ
バイトフィールドには20を設定する。
A、テーブルB、テーブルCの3つであるので3を設定
し(602)、先頭ポインタにはテーブルAの先頭メモ
リ番地10604を設定する(604)。テーブルAの
オフセット20にテーブルBの先頭メモリ番地が設定さ
れているので、フィールド1には20を設定する(60
6)。テーブルBのオフセット28にテーブルCの先頭
メモリ番地が設定されているので、フィールド2には2
8を設定する(608)。さらに、テーブルCのオフセ
ット16に参照データの先頭メモリ番地が設定されてい
るのでフィールド3に16を設定する(610)。最後
に参照するデータは20バイトであるので、参照データ
バイトフィールドには20を設定する。
【0028】以上のような要求フォーマットをデバッガ
エージェントが受け取ると、図5で示されるフローチャ
ートに従って処理がなされ、目的の20バイトの参照デ
ータがデバッガ(102)に返される。
エージェントが受け取ると、図5で示されるフローチャ
ートに従って処理がなされ、目的の20バイトの参照デ
ータがデバッガ(102)に返される。
【0029】ここで、複数のテーブルに関連するデータ
参照機能が存在しない場合はデバッガ(102)はデバ
ッガエージェント(118、120)に対して、テーブ
ルAのオフセット20のデータの参照、テーブルBのオ
フセット28のデータの参照、テーブルCのオフセット
16のデータの参照、目的のデータの参照と4回のメモ
リ参照要求を行う必要があるが、複数のテーブルに関連
するデータ参照要求が存在する場合は、1回の要求で済
むことになり、デバッガとデバッガエージェントのイン
タラクション回数が1/4に減少してデバッグ動作を高
速化することが可能になる。
参照機能が存在しない場合はデバッガ(102)はデバ
ッガエージェント(118、120)に対して、テーブ
ルAのオフセット20のデータの参照、テーブルBのオ
フセット28のデータの参照、テーブルCのオフセット
16のデータの参照、目的のデータの参照と4回のメモ
リ参照要求を行う必要があるが、複数のテーブルに関連
するデータ参照要求が存在する場合は、1回の要求で済
むことになり、デバッガとデバッガエージェントのイン
タラクション回数が1/4に減少してデバッグ動作を高
速化することが可能になる。
【0030】一般にOSのデバッグではタスク、装置と
いった資源管理のための複数のテーブルをサーチしてデ
バッグ情報を表示することが必要であり、かつ、一般に
テーブルは不連続なメモリに配置されるため、このよう
な参照機能が有効となる。本機能により、デバッガ(1
02)とデバッガエージェント(118、120)のイ
ンタラクション回数が減少すると共に、デバッガ(10
2)の構造も簡略化することが可能になる。
いった資源管理のための複数のテーブルをサーチしてデ
バッグ情報を表示することが必要であり、かつ、一般に
テーブルは不連続なメモリに配置されるため、このよう
な参照機能が有効となる。本機能により、デバッガ(1
02)とデバッガエージェント(118、120)のイ
ンタラクション回数が減少すると共に、デバッガ(10
2)の構造も簡略化することが可能になる。
【0031】
【発明の効果】本発明では、並列計算機の1つのプロセ
ッサが外部の計算機と接続されていれば、全てのプロセ
ッサ上のOSのデバッグを行うことが可能となる。ま
た、デバッガはマスタデバッガエージェントとのみイン
タラクションを行うだけでよく、デバッガの構造が簡略
化する。さらに、並列計算機のデバッグに特徴的な複数
のプロセッサに対する要求も、マスタデバッガエージェ
ントに対する1回の要求で達成されるため、デバッガと
マスタデバッガエージェントのインタラクション回数を
削減できる。また、OSのデバッグに特徴的なテーブル
間をまたがるデータの参照も1回の要求で達成されるた
め、デバッグの高速化が達成できる。
ッサが外部の計算機と接続されていれば、全てのプロセ
ッサ上のOSのデバッグを行うことが可能となる。ま
た、デバッガはマスタデバッガエージェントとのみイン
タラクションを行うだけでよく、デバッガの構造が簡略
化する。さらに、並列計算機のデバッグに特徴的な複数
のプロセッサに対する要求も、マスタデバッガエージェ
ントに対する1回の要求で達成されるため、デバッガと
マスタデバッガエージェントのインタラクション回数を
削減できる。また、OSのデバッグに特徴的なテーブル
間をまたがるデータの参照も1回の要求で達成されるた
め、デバッグの高速化が達成できる。
【図1】本発明のデバッガの構成を示すブロック図。
【図2】デバッガとマスタデバッガエージェントの通信
データを示す図。
データを示す図。
【図3】デバッガから発行された要求をマスタデバッガ
エージェントがどのように処理するかを示すフローチャ
ートである。
エージェントがどのように処理するかを示すフローチャ
ートである。
【図4】複数のテーブルに関連するデータ参照機能の要
求データフォーマットを示す図。
求データフォーマットを示す図。
【図5】デバッガエージェントが複数のテーブルに関連
するデータ参照機能の要求の処理を示すフローチャート
である。
するデータ参照機能の要求の処理を示すフローチャート
である。
【図6】複数のテーブルに関連するデータ参照の要求例
を示した図。
を示した図。
100…並列計算機、 102…デバッガ、104…
UNIXオペレーティングシステム、 108…並列
計算機、110…プロセッサ、 112…プロセッ
サ、114…オペレーティングシステム、118…マス
タデバッガエージェント、 120…デバッガエージェ
ント。
UNIXオペレーティングシステム、 108…並列
計算機、110…プロセッサ、 112…プロセッ
サ、114…オペレーティングシステム、118…マス
タデバッガエージェント、 120…デバッガエージェ
ント。
Claims (3)
- 【請求項1】デバッグ対象となるオペレーティングシス
テムが動作する並列計算機(ターゲット)の各プロセッ
サ上にデバッグの基本制御を行なうデバッガエージェン
トを動作させ、また、当該並列計算機と何らかの通信手
段にて接続された一つの計算機上に当該デバッガエージ
ェントに対してデバッグ要求を行なうデバッガを動作さ
せ、デバッガとデバッガエージェントがインタラクショ
ンを行ないながら各プロセッサ上のオペレーティングシ
ステムのデバッグを行なうリモートデバッガにおいて、
デバッガは外部と接続されたプロセッサ上で動作するマ
スタデバッガエージェントに対してのみデバッグ要求を
行い、マスタデバッガエージェントは各プロセッサのデ
バッガエージェントにデバッグ要求を伝送することを特
徴とした並列計算機のオペレーティングシステムのデバ
ッグ方法。 - 【請求項2】特許請求の範囲第1項のデバッグ方法にお
いて、デバッガは複数のプロセッサに対する同一のデバ
ッグ要求を一つの要求としてマスタデバッガエージェン
トに発行し、マスタデバッガエージェントがデバッグ対
象となる各プロセッサ上のデバッガエージェントへ当該
デバッグ要求を伝送することを特徴としたデバッグ方
法。 - 【請求項3】特許請求の範囲第1項のデバッグ方法にお
いて、デバッガエージェントが、複数のテーブルをたど
って最終的に必要なデータを見つけるといったデバッグ
動作に最適な複数のテーブルに関連するデータの参照機
能を提供し、デバッガが指定したテーブル関連情報をデ
バッガエージェントが解析して、最終的に必要なデータ
を見つけることにより、デバッガとデバッガエージェン
トとのインタラクションを削減可能にしたことを特徴と
するデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6290934A JPH08147189A (ja) | 1994-11-25 | 1994-11-25 | 並列計算機のオペレーティングシステムのデバッグ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6290934A JPH08147189A (ja) | 1994-11-25 | 1994-11-25 | 並列計算機のオペレーティングシステムのデバッグ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08147189A true JPH08147189A (ja) | 1996-06-07 |
Family
ID=17762399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6290934A Pending JPH08147189A (ja) | 1994-11-25 | 1994-11-25 | 並列計算機のオペレーティングシステムのデバッグ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08147189A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302162A (ja) * | 2005-04-25 | 2006-11-02 | Fujitsu Ltd | マルチプロセッサシステム |
JP2007004364A (ja) * | 2005-06-22 | 2007-01-11 | Nec Electronics Corp | デバッグシステム、デバッグ方法およびプログラム |
JP2018088048A (ja) * | 2016-11-28 | 2018-06-07 | ルネサスエレクトロニクス株式会社 | マルチプロセッサ及びマルチプロセッサシステム |
-
1994
- 1994-11-25 JP JP6290934A patent/JPH08147189A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302162A (ja) * | 2005-04-25 | 2006-11-02 | Fujitsu Ltd | マルチプロセッサシステム |
JP4600134B2 (ja) * | 2005-04-25 | 2010-12-15 | 富士通セミコンダクター株式会社 | マルチプロセッサシステム |
JP2007004364A (ja) * | 2005-06-22 | 2007-01-11 | Nec Electronics Corp | デバッグシステム、デバッグ方法およびプログラム |
JP4633553B2 (ja) * | 2005-06-22 | 2011-02-16 | ルネサスエレクトロニクス株式会社 | デバッグシステム、デバッグ方法およびプログラム |
JP2018088048A (ja) * | 2016-11-28 | 2018-06-07 | ルネサスエレクトロニクス株式会社 | マルチプロセッサ及びマルチプロセッサシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6011920A (en) | Method and apparatus for debugging applications on a personality neutral debugger | |
Miller et al. | A distributed programs monitor for Berkeley UNIX | |
JPH09120366A (ja) | 分散アプリケーション・プログラムをデバッグする分散デバッグのためのシステムおよび方法 | |
JPH06110845A (ja) | プロセッサ間データ通信方法 | |
CN111431757A (zh) | 虚拟网络的流量采集方法及装置 | |
US20070089107A1 (en) | Database communication method | |
Rayfield et al. | System and application software for the Armstrong multiprocessor | |
CN113625998A (zh) | 一种请求处理方法和装置 | |
JPH08147189A (ja) | 並列計算機のオペレーティングシステムのデバッグ方法 | |
JP3085730B2 (ja) | 複合cpuシステムの並列シミュレーション方式 | |
JPH08272644A (ja) | 分散処理装置で実行されるプログラムのデバッグ方法 | |
JP2001318805A (ja) | 組み込みシステムのテスト方法及びテストシステム | |
Karl et al. | Multilayer Online-Monitoring for Hybrid DSM systems on top of PC clusters with a SMiLE | |
JP3641837B2 (ja) | 分散メモリ型並列計算機のデータ転送方法 | |
Marques et al. | The distributed operating system of the SMD project | |
JPH05324574A (ja) | プロセッサ間通信方式 | |
CN117648210A (zh) | 一种远程访问图形处理器的方法和装置 | |
KR100194800B1 (ko) | 접속 관리자를 이용한 다수의 칠 프로그램 교차 디버깅방법 | |
KR100406953B1 (ko) | 실시간 운영체제의 런타임 디버깅 방법 | |
Macrander | Development of a control process for the Berkeley UNIX distributed programs monitor | |
KR100277714B1 (ko) | 운영체계상에서의 칠 이벤트 구현 방법 | |
KR100310289B1 (ko) | 디버거 마스터를 이용한 칠 프로그램 공동 교차 디버깅 방법 | |
Cholvi et al. | A methodological construction of an efficient sequential consistency protocol | |
JP3457535B2 (ja) | プロセッサ間通信装置 | |
KR0170197B1 (ko) | 고속 병렬 컴퓨터에서 데스크의 병렬처리를 위한 가상 시스템 |