JPH06318158A - チャネルのキュー発散検証方法 - Google Patents

チャネルのキュー発散検証方法

Info

Publication number
JPH06318158A
JPH06318158A JP5106743A JP10674393A JPH06318158A JP H06318158 A JPH06318158 A JP H06318158A JP 5106743 A JP5106743 A JP 5106743A JP 10674393 A JP10674393 A JP 10674393A JP H06318158 A JPH06318158 A JP H06318158A
Authority
JP
Japan
Prior art keywords
node
group
queue
branch
divergence
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
Application number
JP5106743A
Other languages
English (en)
Inventor
Keisuke Hata
恵介 畑
Yutaka Hirakawa
豊 平川
Atsushi Kanai
敦 金井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP5106743A priority Critical patent/JPH06318158A/ja
Publication of JPH06318158A publication Critical patent/JPH06318158A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】複数のプロセスとこれらプロセス間に付随する
通信チャネルからなるシステムにおいて、輻網羅的な解
析手法を用いることなく、チャネルのキューが発散する
可能性の有無を高速で検証できる方法を提供する。 【構成】プロセス間の接続関係を有向グラフに表わし
(ステップ21)、サイクルを検出して群を抽出し(ス
テップ22)、支配時間グラフを作成する(ステップ2
3)。群ごとに平均安定周期を求め(ステップ24)、
送信側の群の平均安定周期と受信側の群の平均安定周期
とを比較して(ステップ26)、キューの発散の可能性
を判断する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータネットワ
ークにおける通信プロトコルの検証方法に関し、特に、
プロセス間通信チャネルのキューが発散する可能性の有
無を判定するチャネルのキュー発散検証方法に関する。
【0002】
【従来の技術】多数のノードから構成される現実のネッ
トワークでは、輻輳や長時間保留などの時間的な要因
で、設計時には予想できなかったような障害が発生して
いる。このため、時間的要因を考慮してプロトコル仕様
の検証を行なう必要がある。これまでに提案された時間
的要因を考慮したプロトコル検証法としては、到達可能
解析を用いた網羅的なものが代表的である(例えば、文
献"On the Verification of Time-Dependent Protocols
Using Timed Reachability Analysis", F. J. Lin, et
al., Proc. Hawaii Int. Conf. on Sys. Sci. 22nd,
z, pp.285-294(1989))。網羅的な解析手法は、あらゆ
る可能性の全てについて検索を行なうため、キューの発
散をはじめ、未定義受信、デッドロック、誤動作などさ
まざまな検証が可能である。ここでキューの発散とは、
複数のプロセスからなるシステムにおいて各プロセス間
対ごとに通信チャネル(以下、単にチャネルという)が
付随する場合に、チャネルのキューが無限に増え続ける
ことをいう。
【0003】
【発明が解決しようとする課題】上述したような網羅的
な解析手法には、展開する状態の数が極めて多くなる
(状態爆発)可能性があり、現実には実行困難となる場
合が存在するという問題点がある。
【0004】本発明の目的は、輻輳の原因となるチャネ
ルのキューの発散のみに検出対象を絞り込み、網羅的な
解析手法を用いることなく、チャネルのキューが発散す
る可能性があるかどうかを高速で検証できる方法を提供
することにある。
【0005】
【課題を解決するための手段】本発明のチャネルのキュ
ー発散検証方法は、複数のプロセスの集合からなり、各
プロセス間には無限のキュー長を持つ通信チャネルが付
随し、メッセージをプロセス間で通信するシステムでの
通信チャネルのキューが無限に増加し続けて発散するか
どうかの可能性を検証する方法において、当該システム
内の各プロセス間のメッセージの送受信動作を記述した
メッセージシーケンスに、送受信イベントから次の送受
信イベントまでの処理時間および前記通信チャネルにお
ける伝送遅延時間を固定値として与える前処理工程と、
前記メッセージシーケンスを入力して、各プロセスをノ
ードとし、メッセージの送受信を行うプロセスに対応す
るノード間に送信方向に矢印を張って枝とし、各プロセ
スで自身から出て入る枝を張って、有向グラフに変換す
る有向グラフ作成工程と、前記有向グラフ中で自ノード
から出て再び戻る最少の枝を持つ経路をサイクルとし
て、当該サイクルを最大数連結した部分を群としてまと
めるサイクル検出工程と、前記群と群の間で送信される
メッセージについて、メッセージシーケンス上に当該メ
ッセージの送信点と受信点を前記各群内に着目点として
設定し、前記着目点を前記有向グラフ上においてノード
として対応する群内に追加し、各群内のノードから前記
着目点に到達可能であれば当該ノードと前記着目点に対
応するノードに枝を張り、前記各プロセスごとに前記メ
ッセージシーケンス上で当該プロセスの先頭から前記着
目点ヘ到達する経路の所要時間のうち最大のものを枝の
重みとして当該経路の枝に付加し、前記各プロセスごと
に前記メッセージシーケンス上で当該プロセスの先頭か
ら同一もしくは他のプロセスの終点ヘ到達する経路の所
要時間のうち最大のものを枝の重みとして当該経路の枝
に付加して支配時間グラフを作成する支配時間グラフ作
成工程と、前記支配時間グラフを参照し、前記各群ごと
に、当該群内の前記サイクルのうち当該サイクルにおけ
る枝の重みの合計を当該枝の数で除した平均の重みが最
大のものを当該群の平均周期として選ぶ安定周期計算工
程と、各群の前記平均周期を相互に比較することでキュ
ー発散の可能性の有無を判定する検証工程とを有する。
【0006】
【作用】本発明では、支配時間グラフを用いて計算を行
なうので、状態爆発を回避することができる。
【0007】以下、本発明について詳細に説明する。な
お、本発明においてグラフというのは、数学あるいは数
理工学上のグラフ理論においてグラフと扱われるものお
よびこれと均等のものを指す。すなわち、ノードとノー
ド対間を結ぶ枝とこれらの接続関係を表わす写像とによ
って構成される抽象的なものである。したがって、実在
の2次元平面上に描かれた線図に限定されるわけではな
く、上述したような抽象的関係を表現し得るものであれ
ばどのようなデータ形態のものであってもよい。
【0008】本発明の検証方法が対象とするシステム
は、複数のプロセスの集合によって構成されている。こ
こでは4つのプロセスP1〜P4によって構成されたシス
テムを例として説明を行なう。図4は、このシステムを
説明するメッセーシーケンスチャートであり、各プロセ
スP1〜P4は縦線で表わされている。また、図示下方に
向かって時間が経過する。このシステム全体は、無限ル
ープで構成されており、各プロセスは処理が終点までく
ると、また始めに戻って処理を繰り返す。各プロセス間
には、無限のキュー長を持つすなわち無限のバッファ容
量のFIFO(First In First Out;先入れ先出し)チ
ャネルが付随する。図1において、m1,m 2など各プロ
セス間に引かれた矢印は、プロセス間で送受されるメッ
セージを表わしている。例えば、m1はプロセスP1が送
信し、プロセスP2が受信するメッセージである。
【0009】ここで、プロセスが受信可能状態にない場
合、着信すべきメッセージは、受信可能状態となるまで
キュー内で待機するものとする。例えば、メッセージm
1が着信しているのにプロセスP2が受信可能状態にない
場合には、m1はP2が受信可能状態になってから受信さ
れ、受信されるまでの間、m1はキューで待たされる。
一方、プロセスが受信可能状態であるがメッセージが着
信していない場合には、プロセスはそのメッセージの着
信があるまで次のイベントを行なわないものとする。例
えばプロセスP2は、メッセージm1を受信しないかぎり
次のm5の送信を行なうことはできない。
【0010】各プロセスでは、送受信イベントに伴う処
理や、次のイベントを実行するまでの処理時間が必要で
ある。このような各イベントの実行から次のイベントが
実行可能になるまでに必要な処理時間は、本発明の検証
方法においては、予め固定値として与えられる。また、
各チャネルの伝送遅延時間も予め固定値として与えられ
る。図4では、各プロセスP1〜P4を表わす縦線や各メ
ッセージm1〜m5を表わす矢印線に数字が付記されてい
るが、これは与えられた固定値を示している。すなわ
ち、P2では、m1の受信後、m5を送信するまでに1の
処理時間が必要であり、m1の伝送に2の時間が必要で
あることが示されている。
【0011】このようなメッセージシーケンスをもと
に、まず、プロセス間の接続関係を表わす有向グラフを
構成する。このグラフの各ノードは、それぞれメッセー
ジシーケンスにおけるおけるプロセスにそれぞれ対応す
る。また、メッセージシーケンス上でプロセスPiから
プロセスPjにメッセージの送信がある場合には、グラ
フ上でPiからPjへ枝を張る。ただし、重複して枝を張
ることはない。すなわち、プロセスPiからプロセスPj
に複数のメッセージが送信される場合でも、PiからPj
に張られる枝は1本だけである。そして、各ノードで自
己サイクルとなるように、自分自身で出入りする枝、す
なわちプロセスPiからPiへの枝を張る。図4のメッセ
ージシーケンスチャートからグラフを構成した場合に
は、図5に示す有向グラフが得られる。
【0012】このように構成された有向グラフを考察す
ると、一般に、サイクルを構成している部分とそうでな
い部分の両方が存在する。サイクルで構成されているノ
ード間のチャネルについては、キューが発散しないこと
がすでに証明されている(文献"並列処理の監視性と通
信プロトコル実現への適用",市川他,電子情報通信学会
誌B,Vol. J70-B, No. 5, pp.656-675(1987))。したが
って、サイクルで構成されている以外の枝に対応するチ
ャネルにおいてキューの発散の可能性があることにな
る。
【0013】ここで、サイクルを構成している部分の枝
のみの有向グラフを考える。この状態で、枝で連結され
ている一連のノードの集合をそれぞれ群と呼ぶことにす
る。メッセージシーケンスから作成されたこのような有
向グラフは、一般に、群の集合になる。群が1つしかな
い場合には、上述したように、チャネルにおいてキュー
が発散しないことがすでに証明されている。そして複数
の群が存在する場合には、群間のチャネルにおいて、キ
ューの発散の可能性があることになる。図6は、図5の
有向グラフから抽出された群を示すグラフであり、2つ
の群A,Bが取り出されたことを示している。群AはP1
とP2によって構成され、群BはP3とP4によって構成
されている。この例では、メッセージシーケンスの処理
が1回行なわれるごとに、群Aから群Bにメッセージm
5が1つ送信される。群Aと群Bとの間のこのm5が送信
されるチャネルでは、キューの発散の可能性がある。
【0014】次に、群間のチャネルでのキューの発散の
可能性の検証方法について説明する。各群において、
「プロセスP2におけるメッセージm5が送信されるとこ
ろ」のようにメッセージシーケンス上で着目しているチ
ャネルの送受信が行なわれるところに、着目点を指定す
る。そしてこの着目点をグラフ上にノードとして書き加
える。この例では、群Aの着目点はX、群Bの着目点は
Yであり、これら着目点X,Yを書き加えた結果が図7
に示されている。
【0015】それぞれの群において、各プロセスPi
先頭からメッセージの送信方向をたどってその群の着目
点Xに到達できる場合、グラフ上でPiに対応するノー
ドから着目点Xに対応するノードに枝を張る。また、P
iの先頭から着目点Xに至る経路の所要時間のうち最大
になるものを、ノードPiからノードXへの枝の重みと
し、この重みを該当する枝に付加する。また、任意のプ
ロセスPiの先頭から任意のプロセスPjの終点へと行き
着く経路の所要時間のうち最大になる値をプロセスPi
からプロセスPjへの支配処理時間と呼ぶ。グラフ上に
おいて、Piに対応するノードからPjに対応するノード
への枝に、プロセスPiからプロセスP jへの支配処理時
間をその枝の重みとして付加する。このように枝の重み
を付加することにより作成されたグラフを支配時間グラ
フと呼ぶことにする。図7に示したグラフから作成され
た支配時間グラフが図8に示されている。
【0016】次に、このようにして求められた支配時間
グラフから、メッセージシーケンスの処理を繰り返す時
にある着目した点を通過してから次にこの点を通過する
までの平均周期を計算する。この平均周期は、メッセー
ジシーケンスの処理の繰り返し回数が多くなると、安定
した周期を示すようになる。この安定した周期は、グラ
フ内のサイクルのうち、サイクル1周あたりの枝の平均
の重みが最も重いサイクルについての平均重みである。
ここで平均重みとは、通過した枝の重みの合計を通過し
た枝の数で除した値である。安定した周期を示す状態で
の着目点からその着目点までの周期は、同じ群内であれ
ば、全てのプロセスの任意の着目点において同じ値であ
る、ここでこの安定した周期をその群の安定平均周期と
呼ぶ。
【0017】この平均周期が安定することは、次のよう
なことから説明できる。
【0018】メッセージシーケンスの処理がh回繰り返
されるときに、任意の指定された着目点をh回通過する
までにかかる時間が、その着目点に着目した支配時間グ
ラフから計算できる。この時間は、h本の枝を使用し着
目する着目点に対応するノードに最後にたどり着く経路
のうち、その経路における枝の重みを加算したものが最
大になる経路のときの値である。ここで、十分大きな枝
数xのとき、すなわち、メッセージシーケンスの処理が
x回繰り返されたときの処理時間を考える。グラフにお
ける枝数は有限であるから、この中で十分大きな枝数x
をとる経路を考えると、サイクルを複数回回ることにな
る。また、全体の重みが最大になるように経路をとるの
で、平均重みが最も重いサイクルを数多く回ることにな
る。この平均重みが最も重いサイクルの枝数をtとす
る。枝数x+tのときに全体の重みが最大になるよう経
路を選ぼうとすると、平均重みが最も重いサイクルをも
う一回回れば全体の重みが最も大きくなる。すなわち、
枝数が十分多くなると、この平均重みが最も重いサイク
ルを回り続けて枝数が増えることになる。このことは十
分大きな任意の枝数xについて全ていえることであり、
この結果、平均周期が安定することになる。
【0019】次に、群が2つしか存在しない場合におけ
るチャネルのキューが発散するかどうかの判定条件につ
いて説明する。この判定条件は、「安定状態における送
信側の群の安定平均周期をTS、受信側の群の安定平均
周期をTRとするとき、TS≧TRの関係が成り立てば、
このチャネルのキューは発散することはない。」という
ものである。このことは、以下のことより証明できる。
【0020】TS<TRのときは、送信側の群のメッセ
ージの送信間隔が受信側の群の受信間隔より短い。その
結果、メッセージシーケンスの処理が無限回繰り返され
たときに、キューは無限に増加し発散する。
【0021】TS>TRのときは、送信側の群のメッセ
ージ送信間隔の方が受信側の群の受信間隔よりも長いた
め、キューの数は次第に減少してゆく。キューの数が0
になった場合、受信側の群でのメッセージの受信タイミ
ングが不安定になりキューの数が再び増加することも考
えれるが、ある程度増加し受信側の群の平均周期が再び
安定すると、キューの数は減少する方向に向かう。した
がって、この場合、キューが発散することはない。
【0022】TS=TRのときは、送信側の群がメッセ
ージを送信する周期と同じ周期で受信側の群が受信する
ため、キューが発散することはない。
【0023】次に、群が3つ以上存在する場合の検証方
法について説明する。群が3つ以上存在する場合には、
群が2つだけ存在する場合の安定平均周期の比較を以下
のように拡張して実行する。
【0024】まず、プロセス間の接続関係を示す有向グ
ラフにおいて群にまとまっている部分をそれぞれ1のノ
ードに縮退させたグラフを作成する。このようにして作
成されたグラフがn個のノードを持つとする(図9参
照)。各ノードをNi(i=1,2,…,n)、各ノードの
安定平均周期すなわち対応する群の安定平均周期をT
(Ni)とし、ノードNiからノードNjへの枝をCijで表
わす。そして、そのノードに入力する枝が全てチャック
済みであるか入力する枝が存在しないノードであって、
まだチェックが行なわれていないノードに着目する。
【0025】着目したノードNiが、r個のノードNj1,
j2,…,Njrからそれぞれ枝Cj1i,Cj2i,…,Cjriを持
つとする。ここで、着目したノードNiに入る枝の出発
点であるr個のノードNj1,Nj2,…,Njrを{Njx}で
一般的に表わすこととする。r個のノードNj1,Nj2,
…,Njrの中で安定平均周期が最も長いノードの安定平
均周期をTmaxとする。そして、Tmax>T(Ni)のと
き、T(Ni)=Tmaxとし、{Njx}の全ての要素すなわ
ちr個のノードNj1,Nj2,…,Njrに対して、T(N i)と
T(Njx)との大小関係に応じて、それぞれ以下の判定を
行なう。すなわち、T(Ni)>T(Njx)の場合には、チ
ャネルCjxiにおいてキューが発散する可能性があると
する。一方、T(Ni)≦T(Njx)の場合には、チャネル
jxiにおいてキューが発散する可能性がないとする。
そして着目したノードNiをチェック済みとし、着目し
たノードNiからでる全ての枝をチャック済みとし、次
に着目すべきノードについて同様の動作を繰り返す。も
ちろん、着目したノードNiに入る枝がない場合には、
キューの発散の判定を行なうことなく、チェック済みと
する工程だけを実行すればよい。
【0026】着目すべきノードがなくなるまでこの操作
を繰り返すことにより、群の数が3以上の場合であって
もキューの発散の可能性を検証することができる。
【0027】以上、本発明の方法について、メッセージ
シーケンスの処理が1回実行されるごとに群間のチャネ
ルに対してメッセージが1つ送信される場合について説
明した。しかし、一般には、複数のメッセージが同じ群
に対して送信される場合がある。このような場合には、
その中の任意の1つのメッセージを着目点とし、上述と
同様の考察を行なえばよい。また、上述の説明ではシー
ケンスに分岐が存在しないが、分岐が存在する場合であ
っても、分岐によって発生する全てのシーケンスのパタ
ーンにおいて個別に検証を行ない、それぞれが全て安全
であることが言えれば、安全側に立った検証が可能とな
る。さらに、上述の説明では、各プロセスが同時に処理
を開始するもののとしていたが、安定平均周期の求め方
から分かるように、各プロセスの処理の開始時刻のずれ
は安定平均周期には全く影響しない。したがって、各プ
ロセスの処理の開始時刻がずれる可能性がある場合で
も、同時に開始されたと仮定して検証を行なえばよい。
【0028】
【実施例】次に、本発明の実施例について説明する。図
1は、本発明のチャネルのキュー発散検証方法の実施に
使用される発散検証装置の一例の構成を示すブロック図
である。
【0029】この発散検証装置は、入力されるメッセー
ジシーケンスチャートを格納するためのメッセージシー
ケンス格納部1と、メッセージシーケンス格納部1を参
照して与えられたメッセージシーケンスからプロセス間
の接続関係を表わす有向グラフを作成するグラフ作成部
2と、グラフ作成部2で作成された有向グラフを格納す
る有向グラフ格納部3と、有向グラフ格納部3から有向
グラフを読出しこのグラフからサイクルで構成されてい
る部分を検出して支配時間グラフを作成しサイクル接続
情報を出力するサイクル検出部4と、サイクル検出部4
で作成された支配時間グラフを格納する支配時間グラフ
格納部5と、サイクル検出部4から出力されるサイクル
接続情報を格納するサイクル接続情報格納部6と、支配
時間グラフ格納部5およびサイクル接続情報格納部6と
を参照して支配時間グラフとサイクル接続情報を読出し
支配時間グラフにおいて平均重み最大のサイクルを求め
群の安定平均周期を計算する安定平均周期計算部7と、
安定平均周期計算部7で計算された各群の安定平均周期
をもとに各チャネルにおいてキューの発散の可能性があ
るかどうかの判定を行なうキュー発散検証部8と、キュ
ー発散検証部8で求められた検証結果が格納される検証
結果格納部9とによって構成されている。ここで、サイ
クル接続情報とは、どの枝とノードがサイクルで構成さ
れているかを示すデータである。また、群は、サイクル
を構成している部分の枝のみの有向グラフを考えたとき
に、枝で連結されている一連のノードの集合のことであ
る。
【0030】次に、この発散検証装置を用いて行なうプ
ロセスのキュー発散検証方法の手順について説明する。
図2と図3は、それぞれこの手順を示すフローチャート
である。図2は、全体の処理の流れと群の数が2の場合
の検証手順とを示しており、図3は群の数が3以上の場
合に分岐して行なわれる検証手順を示している。
【0031】最初に、4つのプロセスP1〜P4からなる
システムを例に挙げて、群の数が2である場合の動作を
中心に説明する。このシステムは、上述の「作用」欄で
の説明に用いたものと同一であり、そのメッセージシー
ケンスチャートは、図4に示されている。
【0032】まず、メッセージシーケンス格納部1から
メッセージシーケンスを読出し、グラフ作成部2によっ
て、プロセス間の接続関係を表わす有向グラフを作成す
る(ステップ21)。有向グラフは、メッセージシーケ
ンスにおけるプロセスに対応するノードを書き、メッセ
ージの送信があるプロセス間に対して枝を張り、さらに
各ノードで自己サイクルになるようにも枝を張ることで
作成される。このようにして作成された有向グラフは、
有向グラフ格納部3に蓄積される。図4のメッセージシ
ーケンスからは、図5に示す有向グラフが得られる。
【0033】次に、サイクル検出部4によって、ステッ
プ21で得た有向グラフからサイクルで構成されている
部分のみを検出して取り出し、群とする(ステップ2
2)。サイクルで構成されている部分をグラフより解析
的に検出する場合、文献("アルゴリズムの設計と解
析", A.V.エイホ他)により、ノード数か枝数のうちの
大きい方の1乗のオーダーで計算できることが示されて
いる。図5の有向グラフからは、図6に示すように、P
1とP2とによって1つの群が構成され、P3とP4とによ
って別の群が構成されている。仮に前者を群A、後者を
群Bとすると、メッセージシーケンスの処理が1回行な
われるごとに、メッセージm5が1つ送信される。した
がって、群Aが送信側の群、群Bが受信側の群というこ
とになる。群が抽出されたら、群間に送受信されるメッ
セージに着目して着目点を決定し、支配時間グラフを作
成する(ステップ23)。図4に示されたメッセージシ
ーケンスでは、メッセージm5に着目し、これが送信さ
れる着目点をX、これが受信される着目点をYとする。
そしてこのような群間のチャネル(この例では着目点X
から着目点Yへのチャネル)について、そのキューが発
散するかどうかの検証を行なう。
【0034】ここで、支配時間グラフの作成方法につい
て説明する。群に分けられたグラフに対し、図7に示す
ように、着目点をノードとして書き加える。そして、そ
れぞれの群において、各プロセスPiの先頭(先頭と
は、メッセージシーケンスとしての先頭の意味)からメ
ッセージの送信方向にたどることによって着目点にたど
り着ける場合、グラフ上でPiに対応するノードから着
目点に対応するノードに枝を張る。図4に示したメッセ
ージシーケンスの場合、群Aに注目すると、プロセスP
1からはメッセージm1を経由して着目点Xにたどり着く
ことが可能であり、P2からはそのままで(着目点Xが
2にあるから)着目点Xにたどり着くことができるか
ら、P1とP2の双方から着目点Xに枝を張る。このと
き、各枝ごとに、その所要時間のうち最大になるものを
その枝の重みとして付加する。ここで示した例において
は、プロセスP1からXへは2+2+1=5、P2からX
へは3+1=4、またP4からYへは2+3+2+1=
8となる。P3からYへの経路としては、m3およびm4
を順次経由するものと、これらを経由しないものとの2
通りがある。前者の所要時間は1+2+3+2+1=9
であり、後者の所要時間は1+2+1=4である。した
がって、最大のものを選ぶので、P3からYへの枝の重
みは9となる。続いて各枝に支配処理時間を付加する。
プロセスP1からP2への支配処理時間は、2+2+1+
1+2=8となる。P1からP1への経路としては、m1
およびm2を順次経由する経路と、これらを経由しない
ものとの2通りが考えられ、前者の所要時間は2+2+
1+1+4+2=12であり、後者の所要時間は2+2
+2=6であるが、大きい方を選択するので、P1から
1への支配処理時間は12となる。
【0035】上述した処理を繰り返し、全ての枝につい
て重みすなわち支配処理時間を求め、支配時間グラフを
完成させる。図7のグラフをもとにして得られた支配時
間グラフが図8に示されている。このようにして作成さ
れた支配時間グラフは支配時間グラフ格納部5に蓄積さ
れ、支配時間グラフにおいてどの枝とノードがサイクル
で構成されているかというサイクル接続情報はサイクル
接続情報格納部6に蓄積される。
【0036】次に、安定平均周期計算部7によって、各
群ごとに支配時間グラフの中から平均重みが最も大きい
サイクルを検出し、各群の平均安定周期が計算される
(ステップ24)。ここでの例では、群A、群Bともサ
イクルがそれぞれ3つずつ存在するのでそれぞれの枝の
平均重みを比較して平均安定周期を計算する。例えば群
Aの場合、P1の自己サイクル、P1とP2を往復するサ
イクル、P2の自己サイクルの各サイクルの平均重み
は、それぞれ12、(8+11)/2=9.5、7とな
る。この中の最大値を選択して群Aに対する安定平均周
期は12となる。同様に群Bに対しては、10と(8+
9)/2=8.5と7を比較し、最大値を選択して安定
平均周期が10となる。
【0037】この平均重みが最も大きいサイクルをグラ
フから解析的に検出する手法の例を次に述べる(文
献:"アルゴリズムの設計と解析", A.V.エイホ他)。グ
ラフがn個のノードVi(ただしi=1,2,3,…,n)
で構成され、各枝には重みが付加されているものとす
る。ViからVjに至る経路であって、途中に経由するノ
ードはVl(l≦k)のみである場合の平均重み最大の
経路をCk ijとする。k=0のとき、C0 ijはいずれのノ
ードも経由しないので、ViからVjへの枝の重みに相当
する。k=1のとき、C1 ijは、ノードVi(i=1以
下)すなわちV1を経由するか、またはいずれのノード
も経由しないかの経路であって、平均重み最大のもので
ある。これは、C0 ijをもとにして、C1 ij=MAX(C
0 ij,C0 i1+C0 1j)で計算できる。以下、k=m+1の
とき、Cm+1 ij=MAX(Cm ij,Cm i(m+1)
m (m+1)j)でCm ijを利用して計算できる。これをk=
1から順にnまで求めることにより、平均重み最大のサ
イクルを検出することができる、この手法を用いること
により、プロセス数nの3乗のオーダーで、平均重み最
大のサイクルを解析的に求めることができる。
【0038】そしてキュー発散検証部8が起動し、ま
ず、グラフにおける群の数が3以上であるかどうかの判
定が行なわれる(ステップ25)。群の数が3以上のと
きはステップ31(図3)に進み、そうでないときはス
テップ26に進む。ここでは群Aと群Bの2つの群しか
存在しないから、ステップ26に進む。
【0039】ステップ26では、送信側の群の安定平均
周期TSと受信側の群の安定平均周期TRとの比較が行な
われる。そして、TS≧TRであればステップ28に進み
2つの群間のチャネルにおいてキューの発散する可能性
はないと判断して検証を終了する。また、TS<TRであ
れば、2つの群間のチャネルにおいてキューが発散する
可能性があると判断して検証を終了する。検証結果は、
検証結果格納部9に蓄積される。ここでの例では、送信
側の群Aの安定平均周期TS=12、受信側の群Bの安
定平均周期TR=10なので、TS>TRとなり、P2とP
3の間のチャネルではキューが発散する可能性がないこ
とがいえる。
【0040】次に、群が3つ以上ある場合の動作につい
て説明する。
【0041】上述の動作でステップ21から24までが
行なわれ、ステップ25で群が3以上であると判定され
ると、ステップ31に移行する。ステップ31では、有
向グラフから、群にまとまっている部分を1つのノード
に縮退させたグラフ(ただし自己ループを含まない)が
作成される。このようにして作成されたグラフがn個の
ノードを持つとする(図9参照)。各ノードをNi(i
=1,2,…,n)、各ノードの安定平均周期すなわち対
応する群の安定平均周期をT(Ni)とする。また、ノー
ドNiからノードNjへの枝をCijで表わす。
【0042】次に各変数の初期化が行なわれる(ステッ
プ32)。各ノードに対して変数Wを用意し、初期値と
してW(Ni)=φとする。また、各ノードや枝がそれぞ
れチェックされたかどうかを識別するために、各ノード
と各枝に対して、Check(Ni)=False、Check(Cij)=Fa
lseとおく。
【0043】初期化が終了したら、以下の2条件(着目
条件)をともに満たすノードがあるかどうかの判定を行
なう(ステップ33)。 ・条件1 ノードNiが未チェック。すなわち、Check
(Ni)=False。 ・条件2 ノードNiに入ってくる枝が全てチェック済
み(Check(Cij)=True)、またはノードNiに入る枝を
持たない。
【0044】着目条件を満たすノードが存在しないとき
は、全てのノードについてのチェックが済んだときであ
るので、検証を終了させる。着目条件を満たすノードが
存在するときは、着目条件を満たすノードNiを1つ選
択する(ステップ34)。そして、このノードNiに入
る枝があるかどうかの判定を行なう(ステップ35)。
ノードNiに入る枝があるときには、このノードNiが、
r個(ただしr≧1)のノードNj1,Nj2,…,Njrから
それぞれ枝Cj1i,Cj2i,…,Cjriを持つとして、W
(Ni)={(Njx,T(Njx))}(ただしx=1,2,…,
r)の要素の中に含まれるT(Njx)の中で、最大のもの
をTmaxとする。そして、Tmax>T(Ni)のとき、T(N
i)=Tmaxとし、W(Ni)の全ての要素(Njx,T
(Njx))に対して、T(Ni)とT(Njx)との大小関係に
応じて、それぞれ以下の判定を行なう。すなわち、T
(Ni)>T(Njx)の場合には、チャネルCjxiにおいてキ
ューが発散する可能性があるので、Check(Cjxi)=Over
Flowとする。一方、T(Ni)≦T(Njx)の場合には、チ
ャネルCjxiにおいてキューが発散する可能性がないの
で、Check(Cjxi)=OKとする(ステップ36)。そし
て、ステップ37に移行する。一方、ステップ35でノ
ードNiに入る枝がないと判定された場合は、ステップ
36を飛ばしてステップ37に直接移行する。
【0045】ステップ37では、「ノードNiからノー
ドNjに枝Cijがある。」という条件を満たす全てのノ
ードNjに対して、W(Nj)=W(Nj)∪(Ni,T(Ni))と
し、Check(Ni)=Trueとし、Check(Cij)=Trueとし
て、ステップ33戻る。
【0046】着目条件を満たすノードが存在しなくなる
まで以上のステップ33〜37を繰り返すことにより、
群が3以上ある場合のキューの発散の可能性があるかど
うかの判定を行なうことができる。すなわち、検証終了
後に、枝Cijに関してCheck(Cij)=OvewFlowとなって
いれば、その枝Cijに対応するチャネルでキューの発散
の可能性があることになり、Check(Cij)=OKとなって
いればキューの発散の可能性がないことになる。
【0047】ここで、図9に示した例に基づいて、群が
3以上ある場合の発散検証手順について具体的に示して
みる。図9に示したものは、すでに各群がそれぞれ1つ
のノードに縮退されており、合計8個のノードN1〜N8
が存在する。また、各ノード間の接続関係も示されてい
る。
【0048】まず、ステップ31により、各ノードの安
定平均周期を計算し、T(Ni)(i=1,2,…,8)とし
て各ノードの脇に書き加える。そしてステップ32にお
いて、各変数の初期化を行なう。すなわち、i=1,2,
…,8に対し、W(Ni)=φ、Check(Ni)=False、Check
(Cij)=Falseとする。この状態を示したのが図10で
ある。なお、図10〜13において、Check(Ni)を
i、Check(Cij)をCijと略記する。
【0049】続いて、ステップ33において、着目条件
を満たすノードを探索する。初めにこの条件を満たすノ
ードは、N1,N2,N3,N8である。ここでノードN1に着
目する。ノードN1に入る枝は存在しないからステップ
36は実行されず、ステップ37に移行する。ノードN
1は枝C14を持つから、W(N4)={(N1,T(N1))}と
する。また、Check(N1)=True、Check(C14)=Trueと
なる。そしてステップ33に戻り、今度はノードN2
注目する。同様にステップ36は飛ばされる。N2は枝
24を持つから、W(N4)={(N1,T(N1)),(N2,T
(N2))}となる。同様にしてN3が着目される。ノード
3は枝C34とC35を持つから、W(N4)={(N1,T(N
1)),(N2,T(N2)),(N3,T(N3))}、W(N5)=
{(N3,T(N3))}となる。さらに、ノードN8が着目さ
れる。ノードN8は枝C85を持つから、W(N5)=
{(N3,T(N3)),(N8,T(N8))}となる。また、この
時点で、Check(N1)=Check(N2)=Check(N3)=Check
(N8)=True、Check(C14)=Check(C24)=Check(C34)
=Check(C35)=check(C85)=Trueとなっている。この
ときの状態が図11に示されている。
【0050】図11の状態でステップ33に戻ると、今
度は、ノードN4とN5が着目条件を満たしている。ま
ず、ノードN4に着目する。ノードN4に入る枝が存在す
るので、ステップ36が実行される。このとき、W
(N4)={(N1,T(N1)),(N2,T(N2)),(N3,T
(N3))}であるから、T(N1),T(N2),T(N3)を比較
する。この中で最大はT(N3)=18であるからTmax
18となり、Tmax>T(N4)なのでT(N4)=18とす
る。次に、T(N1),T(N2),T(N3)のそれぞれとT(N
4)とを比較する。
【0051】T(N4)>T(N1)なのでCheck(C14)=Ove
rFlowとなり、T(N4)>T(N2)なのでCheck(C24)=Ov
erFlowとなり、T(N4)=T(N3)なのでCheck(C34)=O
Kとなる。
【0052】そして、ステップ37を実行する。ノード
4は枝C46,C47を持つので、W(N6)={(N4,T
(N4))}、W(N7)={(N4,T(N4))}とし、さらに、
Check(N4)=True、Check(C46)=Check(C47)=Trueと
する。
【0053】同様にノードN5に着目し、ステップ36
を実行する。このときTmax=19なのでT(N5)=19
となり、T(N5)>T(N3)となるのでCheck(C35)=Ove
rFlowとし、T(N5)=T(N8)なのでCheck(C85)=OKと
する。ステップ37に移行し、ノードN5は枝C57を持
つのでW(N7)={(N4,T(N4)),(N5),T(N5))}と
し、さらに、Check(N5)=True、Check(C57)=Trueと
する。この時点での状態が図12に示されている。
【0054】図12の状態で着目条件を満たすのはノー
ドN6とN7である。まず、ノードN 6に着目し、ステッ
プ36を実行する。N6についてW(N6)={(N4,T(N
4))}なので、Tmax=18となる。T(N6)>T(N4)な
ので、Check(C46)=OverFlowとなる。ステップ37で
は、ノードN6は枝を持たないので、Check(N6)=True
だけが実行される。同様にノードN7が着目され、Tmax
=19となるのでT(N7)=19となり、T(N7)>T
(N4)となってCheck(C47)=OverFlowとなり、T(N7)
=T(N5)なのでCheck(C57)=OKとなる。そしてステッ
プ37を実行し、ノードN7が枝を持たないことによりC
heck(N7)=Trueとなる。この時点での状態が図13に
示されている。
【0055】次にまた、ステップ33に戻る。このと
き、着目条件を満たすノードは残っていないから、検証
を終了する。結局、8個のノードN1〜N8の間の8つの
チャネルC14,C24,C34,C35,C46,C47,C57,C85
うち、3つのチャネルC34,C57,C85は発散する可能性
がなく、残りの5つのチャネルC14,C24,C35,C46,C
4 7には発散する可能性があることが分かったことにな
る。
【0056】
【発明の効果】以上説明したように本発明は、支配時間
グラフを用いて平均周期を計算し、各群ごとの平均周期
を比較することによってキュー発散の可能性の有無を検
証するので、状態爆発を回避しながら高速にキューの発
散の検証を行なうことができるようになるという効果が
ある。
【図面の簡単な説明】
【図1】本発明のプロセスのキュー発散検証方法の実施
に使用される発散検証装置の構成を示すブロック図であ
る。
【図2】本発明の一実施例のプロセスのキュー発散検証
方法の手順を示すフローチャートである。
【図3】本発明の一実施例のプロセスのキュー発散検証
方法の手順を示すフローチャートであって、群の数が3
以上の場合を説明するものである。
【図4】メッセージシーケンスチャートの一例を示す図
である。
【図5】図4のメッセージシーケンスから得られた有向
グラフを示す図である。
【図6】図5の有向グラフから抽出された群を示す図で
ある。
【図7】図6に対して着目点を付加したグラフを示す図
である。
【図8】図7のグラフから得られた支配時間グラフを示
す図である。
【図9】群を1つのノードに縮退させた場合のグラフの
一例を示す図である。
【図10】図9のグラフからキュー発散の検証を行なう
ときの過程を示す図である。
【図11】図9のグラフからキュー発散の検証を行なう
ときの過程を示す図である。
【図12】図9のグラフからキュー発散の検証を行なう
ときの過程を示す図である。
【図13】図9のグラフからキュー発散の検証を行なう
ときの過程を示す図である。
【符号の説明】
1 メッセージシーケンス格納部 2 グラフ作成部 3 有向グラフ格納部 4 サイクル検出部 5 支配時間グラフ格納部 6 サイクル接続情報格納部 7 安定平均周期計算部 8 キュー発散検証部 9 検証結果格納部 21〜28,31〜37 ステップ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセスの集合からなり、各プロ
    セス間には無限のキュー長を持つ通信チャネルが付随
    し、メッセージをプロセス間で通信するシステムでの通
    信チャネルのキューが無限に増加し続けて発散するかど
    うかの可能性を検証する方法において、 当該システム内の各プロセス間のメッセージの送受信動
    作を記述したメッセージシーケンスに、送受信イベント
    から次の送受信イベントまでの処理時間および前記通信
    チャネルにおける伝送遅延時間を固定値として与える前
    処理工程と、 前記メッセージシーケンスを入力して、各プロセスをノ
    ードとし、メッセージの送受信を行うプロセスに対応す
    るノード間に送信方向に矢印を張って枝とし、各プロセ
    スで自身から出て入る枝を張って、有向グラフに変換す
    る有向グラフ作成工程と、 前記有向グラフ中で自ノードから出て再び戻る最少の枝
    を持つ経路をサイクルとして、当該サイクルを最大数連
    結した部分を群としてまとめるサイクル検出工程と、 前記群と群の間で送信されるメッセージについて、メッ
    セージシーケンス上に当該メッセージの送信点と受信点
    を前記各群内に着目点として設定し、前記着目点を前記
    有向グラフ上においてノードとして対応する群内に追加
    し、各群内のノードから前記着目点に到達可能であれば
    当該ノードと前記着目点に対応するノードに枝を張り、
    前記各プロセスごとに前記メッセージシーケンス上で当
    該プロセスの先頭から前記着目点ヘ到達する経路の所要
    時間のうち最大のものを枝の重みとして当該経路の枝に
    付加し、前記各プロセスごとに前記メッセージシーケン
    ス上で当該プロセスの先頭から同一もしくは他のプロセ
    スの終点ヘ到達する経路の所要時間のうち最大のものを
    枝の重みとして当該経路の枝に付加して支配時間グラフ
    を作成する支配時間グラフ作成工程と、 前記支配時間グラフを参照し、前記各群ごとに、当該群
    内の前記サイクルのうち当該サイクルにおける枝の重み
    の合計を当該枝の数で除した平均の重みが最大のものを
    当該群の平均周期として選ぶ安定周期計算工程と、 各群の前記平均周期を相互に比較することでキュー発散
    の可能性の有無を判定する検証工程とを有することを特
    徴とするチャネルのキュー発散検証方法。
  2. 【請求項2】 検証工程は、送信側の群の平均周期が受
    信側の群の平均周期より短い場合に前記送信側の群と前
    記受信側の群との間のチャネルにキュー発散の可能性が
    あると判断し、それ以外の場合にはキュー発散の可能性
    がないと判断する工程である請求項1に記載のチャネル
    のキュー発散検証方法。
  3. 【請求項3】 検証工程が、 前記群をそれぞれ一つのノードに縮退し、各ノードに対
    応する平均周期を付加する縮退工程と、 前記縮退工程の終了後に実行され、当該ノードヘ入力す
    る枝が全てチェック済か当該ノードに入力する枝を持た
    ないチェック済でないノードが存在する場合には前記ノ
    ードを着目ノードとして検証を続行し、それ以外の場合
    には検証を終了させる検証終了判定工程と、 前記着目ノードが自ノードに入力する入力ノードを持つ
    場合には、前記入力ノードの前記平均周期のうちの最大
    値が当該着目ノードの前記平均周期より小さいときに当
    該入力ノードからの当該着目ノードヘの全ての枝におい
    てキューが発散すると判定し、それ以外の場合には、前
    記入力ノードの前記平均周期のうちの最大値を当該着目
    ノードの前記平均周期として置き換え、当該入力ノード
    の前記平均周期が当該着目ノードの前記平均周期より小
    さいときに当該入力ノードから当該者目ノードヘの枝に
    おいてキューが発散すると判定し、当該入力ノードの前
    記平均周期が当該着目ノードの前記平均周期と等しいと
    きに当該入力ノードから当該着目ノードヘの枝において
    キューが発散しないと判定する判定工程と、 前記判定工程の終了後、当該着目ノードから出力する枝
    が在在すれば当該枝の全部と当該着目ノードをチェック
    済とし、前記検証終了判定工程に戻って処理を実行させ
    る後処理工程とを有する請求項1に記載のチャネルのキ
    ュー発散検証方法。
JP5106743A 1993-05-07 1993-05-07 チャネルのキュー発散検証方法 Pending JPH06318158A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5106743A JPH06318158A (ja) 1993-05-07 1993-05-07 チャネルのキュー発散検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5106743A JPH06318158A (ja) 1993-05-07 1993-05-07 チャネルのキュー発散検証方法

Publications (1)

Publication Number Publication Date
JPH06318158A true JPH06318158A (ja) 1994-11-15

Family

ID=14441410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5106743A Pending JPH06318158A (ja) 1993-05-07 1993-05-07 チャネルのキュー発散検証方法

Country Status (1)

Country Link
JP (1) JPH06318158A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013545174A (ja) * 2010-10-15 2013-12-19 アティヴィオ, インコーポレイテッド メッセージのグループの順序化された処理
US9009235B2 (en) 2008-06-17 2015-04-14 Attivio, Inc. Ordered message processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009235B2 (en) 2008-06-17 2015-04-14 Attivio, Inc. Ordered message processing
JP2013545174A (ja) * 2010-10-15 2013-12-19 アティヴィオ, インコーポレイテッド メッセージのグループの順序化された処理
US8875155B2 (en) 2010-10-15 2014-10-28 Attivio, Inc. Ordered processing of groups of messages

Similar Documents

Publication Publication Date Title
US7864707B2 (en) Determination of network topology using flow-based traffic information
US7433854B2 (en) Backward chaining with extended knowledge base network
US11055210B2 (en) Software test equipment and software testing method
US8005066B2 (en) Techniques for path finding and terrain analysis
CN113015167B (zh) 加密流量数据的检测方法、系统、电子装置和存储介质
Meyer et al. Specification and construction of performability models
KR101695278B1 (ko) 실시간성 이벤트를 탐지하는 방법 및 이를 이용한 서버
US20080052692A1 (en) System, Method and Computer Program Product for Checking a Software Entity
US20160086075A1 (en) Converting digital numeric data to spike event data
KR20190107373A (ko) 네트워크 프로토콜의 취약점을 탐지하는 퍼징 방법 및 장치
JPWO2012067210A1 (ja) 経路選択装置、プログラム及び方法
CN109873732B (zh) 用于代理服务器的测试方法和装置
CN114205147B (zh) 基于软件定义网络的链路泛洪攻击防御方法及系统
JPH06318158A (ja) チャネルのキュー発散検証方法
US6813390B2 (en) Scalable expandable system and method for optimizing a random system of algorithms for image quality
CN110958178A (zh) 一种确定系统间最短路径的方法和装置
CN110691067A (zh) 用于分析网络中非平稳数据的双端口镜像系统
KR20190120057A (ko) 로드 균형을 위한 확률 기반 적응형 라우팅 알고리즘
Fischer et al. Generating test data for black-box testing using genetic algorithms
US11281674B2 (en) Grouping data in a heap using tags
CN114422453A (zh) 一种在线规划时间敏感流的方法、装置及存储介质
CN113364652A (zh) 网卡流量测试方法、装置、网络设备、系统及可读介质
JPH09214511A (ja) セル処理装置の故障自己監視方式
JP4065159B2 (ja) パケット切換装置、切換ユニット、アービタユニットおよびパケット切換方法
CN109727135A (zh) 提升区块链信息运算和处理能力的方法、计算机可读介质