JPS61150547A - プロトコルの論理検証方式 - Google Patents
プロトコルの論理検証方式Info
- Publication number
- JPS61150547A JPS61150547A JP59271938A JP27193884A JPS61150547A JP S61150547 A JPS61150547 A JP S61150547A JP 59271938 A JP59271938 A JP 59271938A JP 27193884 A JP27193884 A JP 27193884A JP S61150547 A JPS61150547 A JP S61150547A
- Authority
- JP
- Japan
- Prior art keywords
- state
- transition
- protocol
- expansion
- block
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、通信プロトコルの仕様を入力し、それに含ま
れる内部矛盾を仕様誤りとして検出するとともに仕様誤
りを訂正するためのデー夕を出力するプロトコルの論理
検証方式に関する。
れる内部矛盾を仕様誤りとして検出するとともに仕様誤
りを訂正するためのデー夕を出力するプロトコルの論理
検証方式に関する。
(従来の技術)
プロトコルとは、交換機、端末等の複数の各種通信装置
あるいは装置内の複数の論理モジュール間の通信規約を
いう、近年の情報通信システムの高度化・多様化に伴い
プロトコル仕様は大規模化・複雑化してきた。又、大規
模ソフトウェアの生産にあたって、プログラムをいくつ
かのモジュールに分割して作成し、これを組合せて全体
として所期の動作を達成するよう構成することが多い。
あるいは装置内の複数の論理モジュール間の通信規約を
いう、近年の情報通信システムの高度化・多様化に伴い
プロトコル仕様は大規模化・複雑化してきた。又、大規
模ソフトウェアの生産にあたって、プログラムをいくつ
かのモジュールに分割して作成し、これを組合せて全体
として所期の動作を達成するよう構成することが多い。
この場合、モジュール間のプロトコルに論理的矛盾が無
いように設計する必要がある。このように、いくつかの
装置、あるいはプロセスが各々連絡をとり合って動作し
全体として所定の目的を達成するようなシステムの設計
がますます重要となっている。
いように設計する必要がある。このように、いくつかの
装置、あるいはプロセスが各々連絡をとり合って動作し
全体として所定の目的を達成するようなシステムの設計
がますます重要となっている。
このようなシステムの設計法を確立するためには、プロ
トコル仕様の要求仕様を明確に記述し、かつ論理的矛盾
がないことを事前に検証できることが必要である。プロ
トコル仕様への非形式的要求を分析して形式的に要求仕
様を記述することにより、曖昧性を削除できるので、プ
ロトコル仕様を明確化するとともに自動的検証が可能と
なる。
トコル仕様の要求仕様を明確に記述し、かつ論理的矛盾
がないことを事前に検証できることが必要である。プロ
トコル仕様への非形式的要求を分析して形式的に要求仕
様を記述することにより、曖昧性を削除できるので、プ
ロトコル仕様を明確化するとともに自動的検証が可能と
なる。
プロトコル仕様段階でエラーを発見できれば、ソフトウ
ェアの開発保守段階から仕様設計段階へのフィードバッ
クをなくすことができるので、ソフトウェアの生産性を
向上させることができる。
ェアの開発保守段階から仕様設計段階へのフィードバッ
クをなくすことができるので、ソフトウェアの生産性を
向上させることができる。
従来、一般的に複数のプロセスをもつプロトコルに対し
、システム状態を各プロセスの状態とプロセス間の各チ
ャネルの状態で定義し、初期状態から到達可能なシステ
ム状態を全て列挙すること、あるいは、検証項目を検出
するために必要な部分集合を列挙する方式が数多く報告
されている。(例えば、C,H,West : “Ge
neral techniquefor co+smu
nications protocol valida
tion”IBMJ、Res、Devel、、July
1978)これに対し、前述のシステム状態を列挙す
る方法と異なり、各プロセスの状態でメツセージが送信
・受信可能であるための条件に従い、各プロセスの状態
遷移を木状に展開する方式が最近報告された。(例えば
、D、Brand and P、Zafiropulo
: Oncommunicating finite
−state machine、 ” IBM Res
。
、システム状態を各プロセスの状態とプロセス間の各チ
ャネルの状態で定義し、初期状態から到達可能なシステ
ム状態を全て列挙すること、あるいは、検証項目を検出
するために必要な部分集合を列挙する方式が数多く報告
されている。(例えば、C,H,West : “Ge
neral techniquefor co+smu
nications protocol valida
tion”IBMJ、Res、Devel、、July
1978)これに対し、前述のシステム状態を列挙す
る方法と異なり、各プロセスの状態でメツセージが送信
・受信可能であるための条件に従い、各プロセスの状態
遷移を木状に展開する方式が最近報告された。(例えば
、D、Brand and P、Zafiropulo
: Oncommunicating finite
−state machine、 ” IBM Res
。
Rep、RZ1053,1981)
本願は後者のプロセス単位で検証する方式に係るので、
この従来技術を第1図、第2図を用いて説明する。第1
図は、検証しようとするプロトコルの一例であって、プ
ロセス1.2および3からなる通信システムのプロトコ
ル仕様を図示したものである。ここで、通信システムと
は、例えば、プロセスlおよび3が端末装置、プロセス
3が交換機であるシステムであってもよいし、また、プ
ロセス1,2.3がともにCPU内にあってもよい、す
なわち、他の機能と信号の送受信(送信または受信だけ
であってもよい)を行う処理単位をプロセスと呼ぶ、互
いに信号の授受を行う複数のプロセスを総称して通信シ
ステムと呼ぶ、第1図ハフロセス数3の場合のプロトコ
ルの一例である。
この従来技術を第1図、第2図を用いて説明する。第1
図は、検証しようとするプロトコルの一例であって、プ
ロセス1.2および3からなる通信システムのプロトコ
ル仕様を図示したものである。ここで、通信システムと
は、例えば、プロセスlおよび3が端末装置、プロセス
3が交換機であるシステムであってもよいし、また、プ
ロセス1,2.3がともにCPU内にあってもよい、す
なわち、他の機能と信号の送受信(送信または受信だけ
であってもよい)を行う処理単位をプロセスと呼ぶ、互
いに信号の授受を行う複数のプロセスを総称して通信シ
ステムと呼ぶ、第1図ハフロセス数3の場合のプロトコ
ルの一例である。
第1図において、丸印はプロセスの状態、矢印は状態遷
移、矢印上のラベル−X及び+Xはそれぞれ信号Xの送
信及び受信を表す、各プロセスの初期状態はlとする。
移、矢印上のラベル−X及び+Xはそれぞれ信号Xの送
信及び受信を表す、各プロセスの初期状態はlとする。
従って、プロセス1はlを初期状態として、プロセス2
に対し信号lを送信すれば状態2に遷移し、プロセス3
から信号3を受信すれば状態3に遷移する等、動作して
いることがわかる。こように、各プロセスの動作は比較
的容易に理解できるが、プロセスl 、 2 、3(7
)相互間に論理矛盾があるか否かを判定することは容易
でない。
に対し信号lを送信すれば状態2に遷移し、プロセス3
から信号3を受信すれば状態3に遷移する等、動作して
いることがわかる。こように、各プロセスの動作は比較
的容易に理解できるが、プロセスl 、 2 、3(7
)相互間に論理矛盾があるか否かを判定することは容易
でない。
前述したプロトコル検証の従来技術とは、一つの信号の
送信及び受信による実行可能な状態遷移を初期状態から
実行することにより各プロセスの状態遷移を本状に展開
し、その過程で論理矛盾、すなわち仕様誤りを検出して
いた。第1図のプロトコル例に、この従来技術を適用し
た結果を第2図に示す、この第2図は各プロセスの状態
遷移を展開したものであるので状態遷移展開図と呼ぶ。
送信及び受信による実行可能な状態遷移を初期状態から
実行することにより各プロセスの状態遷移を本状に展開
し、その過程で論理矛盾、すなわち仕様誤りを検出して
いた。第1図のプロトコル例に、この従来技術を適用し
た結果を第2図に示す、この第2図は各プロセスの状態
遷移を展開したものであるので状態遷移展開図と呼ぶ。
また、システム状態はプロセスの状態にその状態に到達
するために必ず到達しているはずの他のプロセスの状態
を付けることで把握している。このプロセス対応の状態
対を各状態のL値とよぶ。
するために必ず到達しているはずの他のプロセスの状態
を付けることで把握している。このプロセス対応の状態
対を各状態のL値とよぶ。
以降、第1図のプロトコル例に対する状態遷移展開図の
描き方及び各状態のL値の計算法を説明する。先ず、各
プロセスの初期状態はlであるので、各プロセスに対し
■を描き、1のL値をそれぞれ(1,1,1)と初期設
定する0例えば、プロセス1の状態1のL値(1,1,
1)において、第1要素はプロセス1は自身のプロセス
の状態が1であることを示し、第2,3要′素はプロセ
スlはプロセス2.3の状態がそれぞれ1.1であるこ
とを知っていることを示している。この時点で実行可能
な送信遷移はプロセスlの−l、プロセス2の−3であ
る。プロセスlの送信遷移−1の実行に対し、ラベル−
1のついた矢印と■を描く、−1の送信によりプロセス
lはプロセス2,3の状態の変化を知らないのでプロセ
スlの状態2のL値を(2,1,1)とする、第1要素
2はプロセスl自身の状態が2であることを示している
。プロセスlの送信遷移−1に対応してプロセス2の受
信遷移+1を実行する。この実行に対し、ラベル+1の
ついた矢印と■を描く、+1の受信によりプロセス2は
プロセス1の状態が2であることを知ることができる。
描き方及び各状態のL値の計算法を説明する。先ず、各
プロセスの初期状態はlであるので、各プロセスに対し
■を描き、1のL値をそれぞれ(1,1,1)と初期設
定する0例えば、プロセス1の状態1のL値(1,1,
1)において、第1要素はプロセス1は自身のプロセス
の状態が1であることを示し、第2,3要′素はプロセ
スlはプロセス2.3の状態がそれぞれ1.1であるこ
とを知っていることを示している。この時点で実行可能
な送信遷移はプロセスlの−l、プロセス2の−3であ
る。プロセスlの送信遷移−1の実行に対し、ラベル−
1のついた矢印と■を描く、−1の送信によりプロセス
lはプロセス2,3の状態の変化を知らないのでプロセ
スlの状態2のL値を(2,1,1)とする、第1要素
2はプロセスl自身の状態が2であることを示している
。プロセスlの送信遷移−1に対応してプロセス2の受
信遷移+1を実行する。この実行に対し、ラベル+1の
ついた矢印と■を描く、+1の受信によりプロセス2は
プロセス1の状態が2であることを知ることができる。
しかし、3の状態の変化を知らないので、プロセス2の
状態2のL値を(2,2,1)とする、第2要素2はプ
ロセス2自身の状態が2であることを示している。
状態2のL値を(2,2,1)とする、第2要素2はプ
ロセス2自身の状態が2であることを示している。
プロセス2の送信遷移−3の実行に対し、ラベル−3の
ついた矢印と■を描く、−3の送信によりプロセス2は
プロセス1.3の状態の変化を知らないのでプロセス2
の状態3のL値を(1,3,1)とする、又、この送信
−3の実行により、プロセス2の状態3でプロセスlの
状態を1と認識しているので、プロセスlの送信遷移−
1の実行が可能であり、プロセス2には信号lの受信遷
移+1があるべきと判定できる。このため、ラベル+l
にの矢印を描こうとする。しかし、第1図のプロトコル
例ではプロセス2の状態3で受信遷移+1が定義されて
いないため、未定義実行可能遷移と判定する。これを表
現するために、便宜上、ラベル+1の点線矢印を描く、
プロセス2の送信遷移−3に対応してプロセス1の受信
遷移+3を実行する。この実行に対し、ラベル+3のつ
いた矢印と■を描く、+3の受信によりプロセスlはプ
ロセス2の状態が3であることを知ることができる。し
かし、プロセス3の状態の変化を知らないので、プロセ
ス1の状態3のL値を(3,3,1)とする。第1要素
3はプロセスl自身の状態が1であることを示している
。又、このときプロセスlの状態lから2への送信遷移
が既に存在するので、プロセスlの状態2で信号3の受
信が可能であることがわかる。このため、ラベル+3の
矢印を描こうとする。しかし、第1図のプロトコル例で
はプロセス1の状態2で受信遷移+3が定義されていな
いため、上述と同様未定義実行可能遷移と判定し、便宜
上、ラベル+3の点線矢印を描く、この時点で、実行可
能な送信遷移はプロセス1の−2,−5及びプロセス2
の−4である。プロセスlの送信遷移−5の実行に対し
ラベル−5のついた矢印と■を描く。この状態4のL値
を(4,1,1)とする、プロセス1の送信遷移−5に
対応してプロセス3の受信遷移+5を実行する。
ついた矢印と■を描く、−3の送信によりプロセス2は
プロセス1.3の状態の変化を知らないのでプロセス2
の状態3のL値を(1,3,1)とする、又、この送信
−3の実行により、プロセス2の状態3でプロセスlの
状態を1と認識しているので、プロセスlの送信遷移−
1の実行が可能であり、プロセス2には信号lの受信遷
移+1があるべきと判定できる。このため、ラベル+l
にの矢印を描こうとする。しかし、第1図のプロトコル
例ではプロセス2の状態3で受信遷移+1が定義されて
いないため、未定義実行可能遷移と判定する。これを表
現するために、便宜上、ラベル+1の点線矢印を描く、
プロセス2の送信遷移−3に対応してプロセス1の受信
遷移+3を実行する。この実行に対し、ラベル+3のつ
いた矢印と■を描く、+3の受信によりプロセスlはプ
ロセス2の状態が3であることを知ることができる。し
かし、プロセス3の状態の変化を知らないので、プロセ
ス1の状態3のL値を(3,3,1)とする。第1要素
3はプロセスl自身の状態が1であることを示している
。又、このときプロセスlの状態lから2への送信遷移
が既に存在するので、プロセスlの状態2で信号3の受
信が可能であることがわかる。このため、ラベル+3の
矢印を描こうとする。しかし、第1図のプロトコル例で
はプロセス1の状態2で受信遷移+3が定義されていな
いため、上述と同様未定義実行可能遷移と判定し、便宜
上、ラベル+3の点線矢印を描く、この時点で、実行可
能な送信遷移はプロセス1の−2,−5及びプロセス2
の−4である。プロセスlの送信遷移−5の実行に対し
ラベル−5のついた矢印と■を描く。この状態4のL値
を(4,1,1)とする、プロセス1の送信遷移−5に
対応してプロセス3の受信遷移+5を実行する。
この実行に対し、ラベル+5のついた矢印と■を描く、
この状82のL値を(4,1,2)とする、ここで、プ
ロセス3の−6が実行可能となる。この実行に対し、ラ
ベル−6のついた矢印と■を描く。
この状82のL値を(4,1,2)とする、ここで、プ
ロセス3の−6が実行可能となる。この実行に対し、ラ
ベル−6のついた矢印と■を描く。
この状態lのL値を(4,1,1)とする、プロセス3
の送信遷移−6に対応してプロセスlの受信遷移+6を
実行する。この実行に対し、ラベル+6のついた矢印と
@を描く、この状態4のL値を(4,1,1)とする、
このとき、プロセス1,2.3のそれぞれの状態4,2
.1ではチャネル上に信号が残っていす、実行可能な送
信遷移及び受信遷移が存在しない、この状態をデッドロ
ックと判定する。送信遷移−6を実行しなければ受信遷
移+6は実行できない0以上の説明のような状態遷移の
展開を行うと、プロセスlの状791からの送信遷移+
6が実行可能でない(実行されることがない)ことがわ
かる、これを実行不能状態遷移と判定する。なお、説明
の便宜上、展開されたときの状態名、信号名はプロトコ
ル例のそれと同じものを使っているが、2度以上現れる
状態名、信号名を区別するため、II 、 II以下に
、最初に現れたとき0.2度目に現れたときl、・・・
とっける0以上の規則に従って、第1図のプロトコル例
を展開したものを第2図に示している。
の送信遷移−6に対応してプロセスlの受信遷移+6を
実行する。この実行に対し、ラベル+6のついた矢印と
@を描く、この状態4のL値を(4,1,1)とする、
このとき、プロセス1,2.3のそれぞれの状態4,2
.1ではチャネル上に信号が残っていす、実行可能な送
信遷移及び受信遷移が存在しない、この状態をデッドロ
ックと判定する。送信遷移−6を実行しなければ受信遷
移+6は実行できない0以上の説明のような状態遷移の
展開を行うと、プロセスlの状791からの送信遷移+
6が実行可能でない(実行されることがない)ことがわ
かる、これを実行不能状態遷移と判定する。なお、説明
の便宜上、展開されたときの状態名、信号名はプロトコ
ル例のそれと同じものを使っているが、2度以上現れる
状態名、信号名を区別するため、II 、 II以下に
、最初に現れたとき0.2度目に現れたときl、・・・
とっける0以上の規則に従って、第1図のプロトコル例
を展開したものを第2図に示している。
次に、展開の停止法を上の例を用いて説明する、プロセ
スlの2.1で表されている状態2のL値は(2,2,
1)であり、2.4で表される状態2のL値は(2,2
,1)であるため、2.1と2.4の間の−2,1及び
÷4.2で表された状態遷移−2,÷4が2.4以降反
復される。従って、2.4で停止される。同様の理由で
、プロセス1の2.8,4.1.4.3,4.5,4.
7゜4.8プロセス2の3.4及び3.8で停止される
。プロセス1の3.4はプロセス2の3.4からの送信
すれた信号4のみ受信可能だが、プロセス2の3.4は
既に停止されているので、プロセスlの3.4は停止さ
れる。同様の理由で、プロセス2の2.4は停止される
。プロセス3の1.1は、プロセスlの4.1、プロセ
ス2の2.0、プロス3の1.1でデッドロックとなる
ため停止される。同様の理由で、プロセス3の1.2,
1.3,1.4,1.5は停止される。
スlの2.1で表されている状態2のL値は(2,2,
1)であり、2.4で表される状態2のL値は(2,2
,1)であるため、2.1と2.4の間の−2,1及び
÷4.2で表された状態遷移−2,÷4が2.4以降反
復される。従って、2.4で停止される。同様の理由で
、プロセス1の2.8,4.1.4.3,4.5,4.
7゜4.8プロセス2の3.4及び3.8で停止される
。プロセス1の3.4はプロセス2の3.4からの送信
すれた信号4のみ受信可能だが、プロセス2の3.4は
既に停止されているので、プロセスlの3.4は停止さ
れる。同様の理由で、プロセス2の2.4は停止される
。プロセス3の1.1は、プロセスlの4.1、プロセ
ス2の2.0、プロス3の1.1でデッドロックとなる
ため停止される。同様の理由で、プロセス3の1.2,
1.3,1.4,1.5は停止される。
(発明が解決しようとする問題点)
上述した従来の技術によっては、プロセス対応の状態遷
移系列を全て列挙していること及び展開を停止する条件
がゆるいことの2つの理由のため、プロトコルが大規模
化、複雑化した場合、展開された状態数や状態遷移数が
膨大となり処理量すなわち処理時間の増大となり実質的
に検証が困難となっていた。また、ハードウェア化の点
から展開図を記録するための膨大なメモリが必要となり
、今だハードウェアの実現をみていない、又、従来技術
では未定義実行可能遷移、定義済実行不能遷移、デッド
ロックの3項のみを検証項目としていたが、物理的にチ
ャネル容量、バッファ容量が制限されているのでオー/
Sフローを新たな検証項目として追加している。
移系列を全て列挙していること及び展開を停止する条件
がゆるいことの2つの理由のため、プロトコルが大規模
化、複雑化した場合、展開された状態数や状態遷移数が
膨大となり処理量すなわち処理時間の増大となり実質的
に検証が困難となっていた。また、ハードウェア化の点
から展開図を記録するための膨大なメモリが必要となり
、今だハードウェアの実現をみていない、又、従来技術
では未定義実行可能遷移、定義済実行不能遷移、デッド
ロックの3項のみを検証項目としていたが、物理的にチ
ャネル容量、バッファ容量が制限されているのでオー/
Sフローを新たな検証項目として追加している。
(問題点を解決するための手段)
本発明は、上述した従来技術の欠点に鑑みなされたもの
で、処理量の少ないプロトコル検証方式を提供すること
を目的とし、その特徴は、オーバフローを含めた仕様誤
りを検出するのに支障ない範囲で展開すべき状態数及び
状態遷移数を削減し、必要最小限の展開で検査すること
にある。
で、処理量の少ないプロトコル検証方式を提供すること
を目的とし、その特徴は、オーバフローを含めた仕様誤
りを検出するのに支障ない範囲で展開すべき状態数及び
状態遷移数を削減し、必要最小限の展開で検査すること
にある。
(作用)
本発明によっては、プロセス単位で状態の遷移を行いな
がら、到達した遷移状態が以前に出現した遷移状態と同
じであるときは、その以降の状態遷移の展開は、以前に
出現した遷移状態以降の状態遷移の展開と同一とみなし
て、展開動作を停止することにより、展開されるべき状
態数及び状態遷移数を削減しつつ、この展開過程で未定
義実行可能遷移、定義済実行不能遷移、デッドロックお
よびオーバフローを検出する。
がら、到達した遷移状態が以前に出現した遷移状態と同
じであるときは、その以降の状態遷移の展開は、以前に
出現した遷移状態以降の状態遷移の展開と同一とみなし
て、展開動作を停止することにより、展開されるべき状
態数及び状態遷移数を削減しつつ、この展開過程で未定
義実行可能遷移、定義済実行不能遷移、デッドロックお
よびオーバフローを検出する。
(実施例)
本実施例が検証の対象とするプロトコルは、従来技術と
同様第1図に示したプロトコルの例とする。
同様第1図に示したプロトコルの例とする。
ここで、プロトコル仕様と仮定および説明のための用語
について整理しておく0本実施例では検証対象とするプ
ロトコルの仕様は、以下に示す4項組P= (Q+ O
l 、M、5ucc)で表される。但し、Q=(Ql
、”” −QN )−0= (0+ 、””−O
N )。
について整理しておく0本実施例では検証対象とするプ
ロトコルの仕様は、以下に示す4項組P= (Q+ O
l 、M、5ucc)で表される。但し、Q=(Ql
、”” −QN )−0= (0+ 、””−O
N )。
M” 11 + ”” * MNN ) + 5iuc
cはQHX(MljUMj; ) →Q1 の関数であ
る。ここで、Nはプロセス数、Qlはプロセスiの状態
集合、Oi はプロセスiの初期状態、Mijはプロ
セスiからjにチャネル(i 、 j)を通して送信す
る信号の集合、5ucc (S; 、 x) = t
; はXが送信信号であれば、状m s ’+ で
Xを送信すると状態t) になることを表す、又、Xが
受信信号であれば、状$3.でXを受信すると状態t1
になることを表す、すなわち、5uCCは状態遷移
である。検証対象とするプロトコルに対し、以下の仮定
を設ける。
cはQHX(MljUMj; ) →Q1 の関数であ
る。ここで、Nはプロセス数、Qlはプロセスiの状態
集合、Oi はプロセスiの初期状態、Mijはプロ
セスiからjにチャネル(i 、 j)を通して送信す
る信号の集合、5ucc (S; 、 x) = t
; はXが送信信号であれば、状m s ’+ で
Xを送信すると状態t) になることを表す、又、Xが
受信信号であれば、状$3.でXを受信すると状態t1
になることを表す、すなわち、5uCCは状態遷移
である。検証対象とするプロトコルに対し、以下の仮定
を設ける。
■プロセス間のメツセージ伝送に要する時間は有限な非
負数値とする。
負数値とする。
■プロセス内の状態遷移は決定的であり、それに要する
時間は零とする。
時間は零とする。
■プロセス相互間で送受されるメツセージの受信順序は
送信順序と同じである。
送信順序と同じである。
プロトコルPのグローバル状態(上述したシステム状態
と同意義でありGで表す)は、次に示す2項線G= (
S 、C)とする、但し、S =(S i t ””
+ sN) t C= (ell l””CNN )で
ある、S; はプロセスiの状態、C4jはプロセス
iからjへのチャネル上の信号系列を表す、従って、前
述の各プロセスS1 のL値(St、・・・。
と同意義でありGで表す)は、次に示す2項線G= (
S 、C)とする、但し、S =(S i t ””
+ sN) t C= (ell l””CNN )で
ある、S; はプロセスiの状態、C4jはプロセス
iからjへのチャネル上の信号系列を表す、従って、前
述の各プロセスS1 のL値(St、・・・。
5N)はSに対応し、各初期状態Oj から51
までの状態遷移系列はCに対応する。つまり、各プロセ
スが独立にグローバル状態を把握している。
までの状態遷移系列はCに対応する。つまり、各プロセ
スが独立にグローバル状態を把握している。
G l−G’は信号1つの送信あるいは受信によるグロ
ーバル状態の変化を表す、Gol、!−Gは初期グロー
バル状態G、から幾つかの状態遷移の実行によりグロー
バル状態Gに到達可能であることを表す。C=(S、C
)が到達可能であり、Stの状態に送信遷移Xが定義さ
れていればXは実行可能という、G=(S、C)が到達
可能であり、Stの状態に受信遷移Xが定義されていて
、更に、その状態を含むプロセスへのC上のチャネルの
先頭に信号Xがあれば、Xは実行可能という、G=(S
、C)が到達可能であり、C上に信号が初期状態または
以前の遷移によって信号が処理されたために、全くなけ
れば、Gは安定グローバル状態であるという。
ーバル状態の変化を表す、Gol、!−Gは初期グロー
バル状態G、から幾つかの状態遷移の実行によりグロー
バル状態Gに到達可能であることを表す。C=(S、C
)が到達可能であり、Stの状態に送信遷移Xが定義さ
れていればXは実行可能という、G=(S、C)が到達
可能であり、Stの状態に受信遷移Xが定義されていて
、更に、その状態を含むプロセスへのC上のチャネルの
先頭に信号Xがあれば、Xは実行可能という、G=(S
、C)が到達可能であり、C上に信号が初期状態または
以前の遷移によって信号が処理されたために、全くなけ
れば、Gは安定グローバル状態であるという。
以上の準備に基づいて本発明が検出するプロトコル仕様
の誤りは以下の通りである。
の誤りは以下の通りである。
■未定義実行の可能遷移:プロトコル仕様で定義されて
いないが、実行可能な状態遷移。
いないが、実行可能な状態遷移。
■定義法実行不能遷移:プロトコル仕様で定義されてい
るにもかかわらず実行可能でない状態・遷移。
るにもかかわらず実行可能でない状態・遷移。
■デッドロック:全てのプロセスの状態遷移が実行可能
でなく、チャネル上に全く信号のない安定グローバル状
態。
でなく、チャネル上に全く信号のない安定グローバル状
態。
[株]オーバフロー二個々のチャネルに残っている信号
の総数が所定のチャネル容量および受信バッファ容量を
越える状態。
の総数が所定のチャネル容量および受信バッファ容量を
越える状態。
第3図は、本発明の一実施例を示すブロック図である。
第3図で、lは外部から与えられるプロトコル仕様を蓄
積するメモリ、2は検証処理に使用する各種の変数の初
期値を設定する初期設定ブロック、3は展開された状態
において実行可能な送信遷移を抽出するブロック、4は
送信遷移の実行により新たに状態及び送信遷移を展開図
に追加し、その状態のL値を計算するとともにこの状態
で展開が停止できるか否かを判定するブロック、5は4
の送信遷移に対応する受信遷移の実行により新たに状態
及び受信遷移を展開図に追加し、その状態のL値を計算
するとともにこの状態で展開が停止できるか否かを判定
するブロック、6は送信遷移の遷移先の状態で実行可能
な受信遷移系列を遷移先の状態に移し、新たな状態及び
受信遷移を展開図に追加し、それらの状態のL値を計算
するとともにこの状態で展開が停止できるか否かを判定
するブロック、7は5,6の処理中に未定義実行可能遷
移を検出するブロック、8は安定グローバル状態で実行
可能な送信遷移がないものを検出するブロック、9は展
開完了後、プロトコル仕様に定義されているのに展開図
には1度もでてこない状態遷移を検出するブロック、1
1はオーバフローを検出するブロックである。10は検
証結果である展開図等及び各種の変数を蓄積するメモリ
である。
積するメモリ、2は検証処理に使用する各種の変数の初
期値を設定する初期設定ブロック、3は展開された状態
において実行可能な送信遷移を抽出するブロック、4は
送信遷移の実行により新たに状態及び送信遷移を展開図
に追加し、その状態のL値を計算するとともにこの状態
で展開が停止できるか否かを判定するブロック、5は4
の送信遷移に対応する受信遷移の実行により新たに状態
及び受信遷移を展開図に追加し、その状態のL値を計算
するとともにこの状態で展開が停止できるか否かを判定
するブロック、6は送信遷移の遷移先の状態で実行可能
な受信遷移系列を遷移先の状態に移し、新たな状態及び
受信遷移を展開図に追加し、それらの状態のL値を計算
するとともにこの状態で展開が停止できるか否かを判定
するブロック、7は5,6の処理中に未定義実行可能遷
移を検出するブロック、8は安定グローバル状態で実行
可能な送信遷移がないものを検出するブロック、9は展
開完了後、プロトコル仕様に定義されているのに展開図
には1度もでてこない状態遷移を検出するブロック、1
1はオーバフローを検出するブロックである。10は検
証結果である展開図等及び各種の変数を蓄積するメモリ
である。
第4図はプロトコル仕様をメモリlに蓄積する場合の一
蓄積形式を示す、また、第5図は展開図および仕様誤り
を表形式でメモリlOに蓄積する場合の一蓄積形式を示
す。
蓄積形式を示す、また、第5図は展開図および仕様誤り
を表形式でメモリlOに蓄積する場合の一蓄積形式を示
す。
第6図は第1図のプロトコル例を第3図の実施例に適用
した結果得られた展開図を示す、以下、第1〜6図の例
を用いて、第3図の実施例の動作を説明するがプロトコ
ル仕様は第4図の形式で既にメモリlに蓄えられている
ものとする。第3図のブロック図では、最初に初期設定
ブロック2が動作する。初期設定ブロック2はメモリl
にアクセスし、プロトコル仕様に含まれる各プロセスの
初期状態を入力して初期状態及びそれらのL値による展
開図を作る。第6図では各プロセスごとに状態1.0と
L値(1,01,01,0)を設定する。又。
した結果得られた展開図を示す、以下、第1〜6図の例
を用いて、第3図の実施例の動作を説明するがプロトコ
ル仕様は第4図の形式で既にメモリlに蓄えられている
ものとする。第3図のブロック図では、最初に初期設定
ブロック2が動作する。初期設定ブロック2はメモリl
にアクセスし、プロトコル仕様に含まれる各プロセスの
初期状態を入力して初期状態及びそれらのL値による展
開図を作る。第6図では各プロセスごとに状態1.0と
L値(1,01,01,0)を設定する。又。
初期状態からなる安定グローバル状態を安定グローバル
状態集合Vに入れる。第6図ではV = ((1,01
,01,0)) となる、以降、ブロック3゜4.5を
反復し処理を行なう、ブロー2り4.5において、ブロ
ック6をよぶ、ブロック3,4,5゜6の状態遷移の展
開中に未定義実行可能遷移及びデッドロックを検出する
。ブロック7はブロック5.6からよばれ、ブロック8
はブロック3からよばれる。展開が完了したのちブロッ
ク9に制御が移り定義済実行不能遷移を検出する。
状態集合Vに入れる。第6図ではV = ((1,01
,01,0)) となる、以降、ブロック3゜4.5を
反復し処理を行なう、ブロー2り4.5において、ブロ
ック6をよぶ、ブロック3,4,5゜6の状態遷移の展
開中に未定義実行可能遷移及びデッドロックを検出する
。ブロック7はブロック5.6からよばれ、ブロック8
はブロック3からよばれる。展開が完了したのちブロッ
ク9に制御が移り定義済実行不能遷移を検出する。
先ず、各プロセスの初期状態で実行可能な送信遷移をブ
ロックlにアクセスして抽出する。第1図のプロトコル
例では、プロセスlの送信遷移−1とプロセス2の送信
遷移−3が抽出される。そのうち、−1が選択されたと
する0次にブロック4に移行する。ここでは、プロセス
lの状S2.Oと送信遷移−1が展開される。又、2.
0のL値を(2,01,01,0)と計算する。
ロックlにアクセスして抽出する。第1図のプロトコル
例では、プロセスlの送信遷移−1とプロセス2の送信
遷移−3が抽出される。そのうち、−1が選択されたと
する0次にブロック4に移行する。ここでは、プロセス
lの状S2.Oと送信遷移−1が展開される。又、2.
0のL値を(2,01,01,0)と計算する。
プロセスiの送信遷移による展開で新たに加わった状態
のL値の計算法は次の通りである。送信遷移先の状態を
311送信遷移先の状態をt; とする、SのL値を(
f;o、 *** 、 3 B 、 ham 5N)
とする、すると、tl のL値は(S Os ””
tf * ”” S N )と計算される。プロセス
iがtl に到達した時点では他のプロセスの必ず到
達しておかなくてはならない状態はかわらないからであ
る。
のL値の計算法は次の通りである。送信遷移先の状態を
311送信遷移先の状態をt; とする、SのL値を(
f;o、 *** 、 3 B 、 ham 5N)
とする、すると、tl のL値は(S Os ””
tf * ”” S N )と計算される。プロセス
iがtl に到達した時点では他のプロセスの必ず到
達しておかなくてはならない状態はかわらないからであ
る。
次にブロック5に移行する。ここでは、まずプロセスl
の送信遷移=1を受信可能な受信遷移を求める。
の送信遷移=1を受信可能な受信遷移を求める。
実行可能な受信遷移の求め方は次の通りである。
展開状態図においてプロセスにの状態sKでプロセスi
が状態t1 で送信信号Xを受信することができるた
めの必要十分条件は次の(1)〜(3)である。
が状態t1 で送信信号Xを受信することができるた
めの必要十分条件は次の(1)〜(3)である。
(1)プロセスiから受信したプロセスにの最後の信号
はプロセスにへ送信したプロセスiの最後の信号と同じ
である。
はプロセスにへ送信したプロセスiの最後の信号と同じ
である。
(2)送信遷移−Xの遷移後の状態をt1′とする。
状態t、+のL値で表わされる第1要素の状態と状態S
KのL値で表わされる第1要素の状態は一方から他方へ
到達可能な関係にある。但し、L値の第に要素の状態に
ついては除外する。
KのL値で表わされる第1要素の状態は一方から他方へ
到達可能な関係にある。但し、L値の第に要素の状態に
ついては除外する。
(3)状態t1 のL値の第に要素である状態から状
態SKへ到達可能である。
態SKへ到達可能である。
プロセスlの送信遷移−1に対応する受信遷移+1はプ
ロセス2の状態1.0で実行可能である。
ロセス2の状態1.0で実行可能である。
理由を示す、上述の条件のうち(1)についてはそのよ
うな信号がないので条件を満たす、(2)についてはプ
ロセスlの状態2.0のL値(2−01,01,0)と
プロセス2の状態1.0のL値(1,θ1.01.0)
をみて@1,3要素は条件を満たす、(3)については
その第2要素は条件を満たす、そして、プロセス2の状
態2.0と受信遷移+1.0が展開される。又、20の
L値を(2,02,01,0)と計算する。プロセスに
の受信遷移による展開で新たに加わった状態のL値の計
算法は次の通りである。受信遷移に対応するプロセスi
の送信遷移の遷移先の状態のL値を(Sl、・・・、s
N)とする、受信遷移の遷移先の状’flBL値を(t
l、・・・−tN)とする6以上の準備の元、受信遷移
の遷移後の状態のL値の第i要素は、2つの状8 S
; * ti のうち状態遷移のより進んだものと
する0例えば、プロセスlの2.0のLftlの第1要
素2.0はプロセス2の1.0のL値の第1要素1.0
よりも進んでいるのでプロセス2の2.0のL値のI8
1要素は2.0となっている。
うな信号がないので条件を満たす、(2)についてはプ
ロセスlの状態2.0のL値(2−01,01,0)と
プロセス2の状態1.0のL値(1,θ1.01.0)
をみて@1,3要素は条件を満たす、(3)については
その第2要素は条件を満たす、そして、プロセス2の状
態2.0と受信遷移+1.0が展開される。又、20の
L値を(2,02,01,0)と計算する。プロセスに
の受信遷移による展開で新たに加わった状態のL値の計
算法は次の通りである。受信遷移に対応するプロセスi
の送信遷移の遷移先の状態のL値を(Sl、・・・、s
N)とする、受信遷移の遷移先の状’flBL値を(t
l、・・・−tN)とする6以上の準備の元、受信遷移
の遷移後の状態のL値の第i要素は、2つの状8 S
; * ti のうち状態遷移のより進んだものと
する0例えば、プロセスlの2.0のLftlの第1要
素2.0はプロセス2の1.0のL値の第1要素1.0
よりも進んでいるのでプロセス2の2.0のL値のI8
1要素は2.0となっている。
送信遷移−1と受信遷移+1による展開終了後v= (
(1,01,01,0)、(2,02,Ot、o))と
し、再びブロック3に戻る0次に、送信遷移−3を選択
したとする0次にブロック4に移行する。ここでは、プ
ロセス2の状態3.0と送信遷移−3が展開される。又
、3.0のL値を(1,03,01,0)とする、この
とき、ブロック6がよばれる。プロセス2の送信遷移−
3,0による受信遷移+1.0の伝播、つまり状態3.
0で今1.0が実行可能となる。ところがメモリ1に蓄
積されているプロトコル仕様をアクセスして、定義され
ていることがわかり、ブロック7で未定義実行可能遷移
と検出される。第6図では太い点線で示す、その後、ブ
ロック5に移行する。
(1,01,01,0)、(2,02,Ot、o))と
し、再びブロック3に戻る0次に、送信遷移−3を選択
したとする0次にブロック4に移行する。ここでは、プ
ロセス2の状態3.0と送信遷移−3が展開される。又
、3.0のL値を(1,03,01,0)とする、この
とき、ブロック6がよばれる。プロセス2の送信遷移−
3,0による受信遷移+1.0の伝播、つまり状態3.
0で今1.0が実行可能となる。ところがメモリ1に蓄
積されているプロトコル仕様をアクセスして、定義され
ていることがわかり、ブロック7で未定義実行可能遷移
と検出される。第6図では太い点線で示す、その後、ブ
ロック5に移行する。
−3,0に対応する受信遷移+3がプロセス1の状態1
.0で実行可能であることを求め、新たに状態3.0と
受信遷移÷3.0が展開される。また、3.0のL値が
(3,03,01,0)と計算される。このL値は安定
グローバル状態集合に新たに登録されV= ((1,0
1,01,0)、(2,02,01,0)、(3,03
,01,0))とする、このとき、送信遷移−1,0に
よる受信遷移÷3.0の伝播が可能であるため、ブロッ
ク6に移行する。しかし、プロトコル仕様ではプロセス
1の2.0で受信遷移+3.0が実行可能でないため、
ブロック7で未定義実行0■能遷移と判定する。
.0で実行可能であることを求め、新たに状態3.0と
受信遷移÷3.0が展開される。また、3.0のL値が
(3,03,01,0)と計算される。このL値は安定
グローバル状態集合に新たに登録されV= ((1,0
1,01,0)、(2,02,01,0)、(3,03
,01,0))とする、このとき、送信遷移−1,0に
よる受信遷移÷3.0の伝播が可能であるため、ブロッ
ク6に移行する。しかし、プロトコル仕様ではプロセス
1の2.0で受信遷移+3.0が実行可能でないため、
ブロック7で未定義実行0■能遷移と判定する。
以上の処理を反復すると第6図のようになる。
冗長な状態遷移系列の展開を防ぐため、安定グローバル
状態集合Vを利用して次のような処理を行っている。6
図においてV= (・・・、(3,03,01,0)(
3,13,11,0)・・・)とする。3.0及び3.
1に木をつけている。これは2つの安定グローバル状態
が等しいことを表している。従って、プロセス1.2の
3.0と3tlは等しい状態と考えてよく、3.0と3
.1からの状態遷移の展開で一致するものがあればどち
らかを省略して冗長的な展開を避けている。これをアサ
イクリック展開と呼ぶ0例えば、3.1から実行可能な
受信遷移のうち細い点線で示したものは3.0から実行
可能な受信遷移+4.0と一致するので省略している。
状態集合Vを利用して次のような処理を行っている。6
図においてV= (・・・、(3,03,01,0)(
3,13,11,0)・・・)とする。3.0及び3.
1に木をつけている。これは2つの安定グローバル状態
が等しいことを表している。従って、プロセス1.2の
3.0と3tlは等しい状態と考えてよく、3.0と3
.1からの状態遷移の展開で一致するものがあればどち
らかを省略して冗長的な展開を避けている。これをアサ
イクリック展開と呼ぶ0例えば、3.1から実行可能な
受信遷移のうち細い点線で示したものは3.0から実行
可能な受信遷移+4.0と一致するので省略している。
この関係を→で示している。
最後に、展開の停止法について説明する。従来技術では
次の停止条件を与えている0次の条件(1)〜(3)を
満たすプロセスiの状態t1 か出現したときタイプ
Oで停止する。
次の停止条件を与えている0次の条件(1)〜(3)を
満たすプロセスiの状態t1 か出現したときタイプ
Oで停止する。
(1)状8遷移展開図のプロセスiにおいて状態t1
は状態Si から到達可能である。
は状態Si から到達可能である。
(2)s、 のL値はti (7)L値と11 、
It以下を除いて一致する。
It以下を除いて一致する。
(3)初期状態0.からSl の状態遷移系列上の信
号の送信及び受信後のチャネルに残っている信号初期状
態o1 からSi の状態遷移系列上の信号の送信及び
受信後のそれと一致する0例えば、第2図のプロセスl
の状態2.4は状態2.1と上述の関係があるため停止
されている。プロセス1の状態2.6は状態2.5と同
様の関係にある。
号の送信及び受信後のチャネルに残っている信号初期状
態o1 からSi の状態遷移系列上の信号の送信及び
受信後のそれと一致する0例えば、第2図のプロセスl
の状態2.4は状態2.1と上述の関係があるため停止
されている。プロセス1の状態2.6は状態2.5と同
様の関係にある。
しかし、上述の停止法では冗長の状態遷移の展開を行な
うため、以降に説明する停止条件を新たに設ける0次の
条件(4) (5)を満たすプロセスiの状態ti が
出現したときタイプ2で停止する。
うため、以降に説明する停止条件を新たに設ける0次の
条件(4) (5)を満たすプロセスiの状態ti が
出現したときタイプ2で停止する。
(4)状態遷移展開図のプロセスiにおいて状8 t。
は状態S・から到達可能である。
ξ
(5)s;を含む安定グローバル状態とt、を含む安定
グローへル状態は“、″以下を除いて一致する。
グローへル状態は“、″以下を除いて一致する。
例えば、第6図のプロセスlの2.3は2.2と上述の
関係にあるため展開を停止する。2.3を含む安定グロ
ーバル状8(2,33,31,0)と2.2を含む安定
グローバル状態(2,23,21,0)は“、″以下を
除けば一致する。
関係にあるため展開を停止する。2.3を含む安定グロ
ーバル状8(2,33,31,0)と2.2を含む安定
グローバル状態(2,23,21,0)は“、″以下を
除けば一致する。
ブロック3において実行可能送信遷移が全くない状態で
停止条件を満たさない状態があればブロック8に移行し
てデッドロックと判定する0例えば第6図の安定グロー
バル状態(4,12,01,1)及び(4,33,21
,2)はデッドロックと判定される。
停止条件を満たさない状態があればブロック8に移行し
てデッドロックと判定する0例えば第6図の安定グロー
バル状態(4,12,01,1)及び(4,33,21
,2)はデッドロックと判定される。
展開が全て完了した後、メモリlのプロトコル仕様にア
クセスし、展開図に現れなかった状態遷移をブロック9
で定義法実行不能遷移と判定する。メモリ10には展開
図及び検証結果を出力する。
クセスし、展開図に現れなかった状態遷移をブロック9
で定義法実行不能遷移と判定する。メモリ10には展開
図及び検証結果を出力する。
オーバフローの検出法について第1図のプロトコル例を
展開した第6図及び第7図を用いて説明する。特にプロ
セスlから2へのチャネルCI’lとプロセス2から1
へのチャネルC2Jのオーバフローに着目する。他のチ
ャネルのついても同様の処理を行えばよい、IC1λ1
及び1c211はそれぞれCI2及びC21の信号数を
表す、プロセスlの状態1.0及びプロセス2の状態1
.0にそれぞれlc nl= O及びlc 211=
0をつける。ブロック3で送信遷移−1,0の展・開で
プロセス1の状態2.0にlc 5zl= l tつけ
る。これは1.0のL値の第2要素1.0,2.0のL
値の第2要素1.0より、プロセス2は、信号1.0を
受信していると解釈し、チャネルc、7に信号が1つ残
っていることを表す、ブロック4で受信遷移+i、oの
展開でプロセス2の状態2.0にlcz+l=0をつけ
る。これは1.0のL値の第1要素1.0,2.0のL
値の第1要素2.0よりプロセスlから送信された信号
1.0をプロセス2が受信したにすぎずチャネルC21
に信号の送受がなかったと解釈し、チャネルC21に信
号が全くないことを表す。
展開した第6図及び第7図を用いて説明する。特にプロ
セスlから2へのチャネルCI’lとプロセス2から1
へのチャネルC2Jのオーバフローに着目する。他のチ
ャネルのついても同様の処理を行えばよい、IC1λ1
及び1c211はそれぞれCI2及びC21の信号数を
表す、プロセスlの状態1.0及びプロセス2の状態1
.0にそれぞれlc nl= O及びlc 211=
0をつける。ブロック3で送信遷移−1,0の展・開で
プロセス1の状態2.0にlc 5zl= l tつけ
る。これは1.0のL値の第2要素1.0,2.0のL
値の第2要素1.0より、プロセス2は、信号1.0を
受信していると解釈し、チャネルc、7に信号が1つ残
っていることを表す、ブロック4で受信遷移+i、oの
展開でプロセス2の状態2.0にlcz+l=0をつけ
る。これは1.0のL値の第1要素1.0,2.0のL
値の第1要素2.0よりプロセスlから送信された信号
1.0をプロセス2が受信したにすぎずチャネルC21
に信号の送受がなかったと解釈し、チャネルC21に信
号が全くないことを表す。
プロセスiの状態s1 につけるIc、71の計算法
は次の通りである。S を遷移先とする状態遷移Xの遷
移元をt、とする。tl にはlcH,l=mと計算さ
れているとする。Xがプロセスjへの送信遷移であれば
Ic ’1,11 =m+1とする。j以外の送信遷移
であればlCi、11=mとする。Xが受信遷移であれ
ば次の処理を行う、tl のL値の第j要素及びS。
は次の通りである。S を遷移先とする状態遷移Xの遷
移元をt、とする。tl にはlcH,l=mと計算さ
れているとする。Xがプロセスjへの送信遷移であれば
Ic ’1,11 =m+1とする。j以外の送信遷移
であればlCi、11=mとする。Xが受信遷移であれ
ば次の処理を行う、tl のL値の第j要素及びS。
のし値の第j要素を調査する。今、それぞれの状態をt
、s とする。このときL4からS、3 まJ での状8a移系列上にプロセスiからjへの信号の受信
遷移を実行した、つまりチャネルC7a上の信号を受信
したとしてIC1jlを計算する。
、s とする。このときL4からS、3 まJ での状8a移系列上にプロセスiからjへの信号の受信
遷移を実行した、つまりチャネルC7a上の信号を受信
したとしてIC1jlを計算する。
例えば、プロセス1の状83.3のICI2+の計算は
−2,1がプロセス2への送信遷移のため状82.2に
つけられたl c i、 1 =2に1を加えたものと
なる。又、プロセスlの状態2.3のlcl:klの計
算は次のとおりである。状態3.3のし値(3,32,
11,0)の第2要素である第2プロセスの状FJ2.
1状態2.3のし値(2,32,31,0)の第2要素
である第2プロセスの状態2.3をとりだす、状82.
1から2.3までにプロセスlからの受信遷移÷1.0
と+2.0が含まれている。従って状態3.3につけら
れたIC,,1から2つとり除いて状態2.3につける
Ic 121= 1とする。
−2,1がプロセス2への送信遷移のため状82.2に
つけられたl c i、 1 =2に1を加えたものと
なる。又、プロセスlの状態2.3のlcl:klの計
算は次のとおりである。状態3.3のし値(3,32,
11,0)の第2要素である第2プロセスの状FJ2.
1状態2.3のし値(2,32,31,0)の第2要素
である第2プロセスの状態2.3をとりだす、状82.
1から2.3までにプロセスlからの受信遷移÷1.0
と+2.0が含まれている。従って状態3.3につけら
れたIC,,1から2つとり除いて状態2.3につける
Ic 121= 1とする。
チ“ネ/L/ CI2及びC21の容量力く2であれi
fブロック11で、プロセスlの状態3.3及びプロセ
ス2の状態2.3でオーバフローと判定される。
fブロック11で、プロセスlの状態3.3及びプロセ
ス2の状態2.3でオーバフローと判定される。
以上の処理の正当性は展開の停止が状8遷移系列の反復
となる状態で行なわれていること及び送信を優先的に実
行することで保証される。
となる状態で行なわれていること及び送信を優先的に実
行することで保証される。
最後に、この状態遷移展開によるプロトコル検証がプロ
トコル設計の支援となることを図1のプロトコル例及び
図6の展開図を用いて説明する。
トコル設計の支援となることを図1のプロトコル例及び
図6の展開図を用いて説明する。
この検証で得られる状態遷移展開図はプロセス対応の状
態遷移系列を与えてくれる。そのため、プロトコル仕様
の誤りに導くプロセス対応の状態遷移系列をプロトコト
ル仕様設計者に提供することができる。
態遷移系列を与えてくれる。そのため、プロトコル仕様
の誤りに導くプロセス対応の状態遷移系列をプロトコト
ル仕様設計者に提供することができる。
例えば、図6のプロセスlの状態2.0から4.1への
状態遷移系列はデッドロックに導く、この系列はプロセ
ス3の状態1.0から1.1への状態遷移系列に対応し
ている。従って、プロトコル設計者はプロセス1とプロ
セス3のこれらの状態遷移系列のみを修正すればよい。
状態遷移系列はデッドロックに導く、この系列はプロセ
ス3の状態1.0から1.1への状態遷移系列に対応し
ている。従って、プロトコル設計者はプロセス1とプロ
セス3のこれらの状態遷移系列のみを修正すればよい。
(発明の効果)
以上詳細に説明したように本発明による方式は従来方式
に比較すると仕様誤りの検出に支障ない範囲で冗長な状
8遷移系列を削除し、状態遷移展開図を作成する。この
ため、従来方式と比較すると、展開図に含まれる状態及
び状態遷移とともに大幅に減少する0例えば、第1図の
プロトコル例に対するそれらの値の比較を第8図に示す
、このため従来方式に比較され本発明による方式は検証
処理に必要となる処理量が大幅に減少するとともに、状
態遷移展開図等を蓄積するために必要となるメモリの容
量を大幅に削減することができるという利点がある。
に比較すると仕様誤りの検出に支障ない範囲で冗長な状
8遷移系列を削除し、状態遷移展開図を作成する。この
ため、従来方式と比較すると、展開図に含まれる状態及
び状態遷移とともに大幅に減少する0例えば、第1図の
プロトコル例に対するそれらの値の比較を第8図に示す
、このため従来方式に比較され本発明による方式は検証
処理に必要となる処理量が大幅に減少するとともに、状
態遷移展開図等を蓄積するために必要となるメモリの容
量を大幅に削減することができるという利点がある。
第1図はプロトコルの1例を示す図、第2図は従来の状
態遷移展開図、第3図は本発明の1実施例のブロック図
、第4図はメモリlの蓄積形式例を示す図、第5図(a
)は状態遷移展開図、第5図(b)は未定義実行可能遷
移を示す図、第5図(C)はデッドロック及び安定状態
の出力例、第5図(d)は定義済実行不可能遷移の例、
第5図(e)はオーバフロー検出出力例、第6図は本発
明による状態遷移展開図、第7図はオーバフローの検証
を示す図、第8図は本発明の効果を示す図である。
態遷移展開図、第3図は本発明の1実施例のブロック図
、第4図はメモリlの蓄積形式例を示す図、第5図(a
)は状態遷移展開図、第5図(b)は未定義実行可能遷
移を示す図、第5図(C)はデッドロック及び安定状態
の出力例、第5図(d)は定義済実行不可能遷移の例、
第5図(e)はオーバフロー検出出力例、第6図は本発
明による状態遷移展開図、第7図はオーバフローの検証
を示す図、第8図は本発明の効果を示す図である。
Claims (1)
- 【特許請求の範囲】 電気信号により表現されたプロトコル仕様を入力として
、該プロトコル仕様の有する遷移情報に従って各プロセ
スの状態を遷移しつつ該プロトコル仕様を検証するプロ
トコルの論理検証方式において、 各プロセスごとに送信遷移と受信遷移とを対応させなが
ら状態遷移の展開を実行し、実行中にチャネル上に信号
が全くない状態が検出されたら該状態を安定状態として
判定するとともに安定状態の集合を記憶するメモリの内
容を参照しながら該安定状態が既に出現したものか新た
に出現したものであるかを判定し、既に出現した安定状
態でかつ2つの安定状態が異なる状態遷移系列上に存在
する状態であれば該2つの安定状態以降の展開は互いに
等しくなるものとして一方の安定状態についてのみ展開
を実行することとし、既に出現した安定状態で2つの安
定状態が同じ遷移系列上の状態であれば既に出現した安
定状態から該安定状態までの遷移が以降反復するものと
して該遷移系列の展開を停止し、新たに出現した安定状
態であれば前記メモリにこれを登録しながら展開を継続
して実行し、検証結果の展開された状態遷移と検出され
たプロトコル仕様誤りを出力をあらわす電気信号を出力
することを特徴とするプロトコルの論理検証方式。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59271938A JPS61150547A (ja) | 1984-12-25 | 1984-12-25 | プロトコルの論理検証方式 |
CA000484679A CA1224880A (en) | 1984-12-25 | 1985-06-20 | Protocol validation system |
US06/749,591 US4694422A (en) | 1984-12-25 | 1985-06-24 | Protocol validation system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59271938A JPS61150547A (ja) | 1984-12-25 | 1984-12-25 | プロトコルの論理検証方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61150547A true JPS61150547A (ja) | 1986-07-09 |
JPH0313779B2 JPH0313779B2 (ja) | 1991-02-25 |
Family
ID=17506927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59271938A Granted JPS61150547A (ja) | 1984-12-25 | 1984-12-25 | プロトコルの論理検証方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61150547A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9071907B2 (en) | 2012-04-02 | 2015-06-30 | Whirpool Corporation | Vacuum insulated structure tubular cabinet construction |
US9689604B2 (en) | 2014-02-24 | 2017-06-27 | Whirlpool Corporation | Multi-section core vacuum insulation panels with hybrid barrier film envelope |
-
1984
- 1984-12-25 JP JP59271938A patent/JPS61150547A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPH0313779B2 (ja) | 1991-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Devillers et al. | Verification of a leader election protocol: Formal methods applied to IEEE 1394 | |
Alur et al. | Automatic symbolic verification of embedded systems | |
US5491639A (en) | Procedure for verifying data-processing systems | |
WO2024001024A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
CN110060155A (zh) | 区块链的智能合约执行方法及装置和电子设备 | |
JP2011060267A (ja) | 設計検証プログラム、設計検証方法および設計検証装置 | |
Zhang et al. | An interactive protocol synthesis algorithm using a global state transition graph | |
Sunshine | Formal Modeling of Communication Protocols: State of the Art, October 1980 | |
CN110490742B (zh) | 一种区块链中的交易执行方法及装置 | |
US20020052726A1 (en) | Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program | |
CN115760405A (zh) | 交易执行方法、装置、计算机设备及介质 | |
JPH04246776A (ja) | タイミング情報を編成し解析する方法及び装置 | |
CN113744062B (zh) | 在区块链中执行交易的方法、区块链节点和区块链 | |
KR20010041783A (ko) | 소프트웨어의 생성장치 및 소프트웨어의 생성방법 | |
JPS61150547A (ja) | プロトコルの論理検証方式 | |
JPS6171750A (ja) | プロトコル検証回路 | |
US6505149B1 (en) | Method and system for verifying a source-synchronous communication interface of a device | |
CN112632884A (zh) | 门级网表生成方法、装置及电子设备 | |
US7472207B2 (en) | Optimized-incrementing, time-gap defect detection apparatus and method | |
CN113671924A (zh) | Dcs实时值置值方法和系统、设备及存储介质 | |
Groce et al. | Amc: An adaptive model checker | |
CN112000671A (zh) | 基于区块链的数据库表处理方法、装置及系统 | |
Kleuker | A gentle introduction to specification engineering using a case study in telecommunications | |
US5446892A (en) | Method of and apparatus for re-allocating programs in a distributed programming system | |
US6466646B1 (en) | Method for verifying the proper functioning of a system |