JPS6171750A - プロトコル検証回路 - Google Patents

プロトコル検証回路

Info

Publication number
JPS6171750A
JPS6171750A JP59192491A JP19249184A JPS6171750A JP S6171750 A JPS6171750 A JP S6171750A JP 59192491 A JP59192491 A JP 59192491A JP 19249184 A JP19249184 A JP 19249184A JP S6171750 A JPS6171750 A JP S6171750A
Authority
JP
Japan
Prior art keywords
transition
global
block
state
transitions
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
Application number
JP59192491A
Other languages
English (en)
Other versions
JPH0458743B2 (ja
Inventor
Yasushi Wakahara
若原 恭
Yoshiaki Tsunoda
良明 角田
Masamitsu Norikoshi
乗越 雅光
Toshichika Oda
稔周 小田
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.)
KDDI Corp
Original Assignee
Kokusai Denshin Denwa KK
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 Kokusai Denshin Denwa KK filed Critical Kokusai Denshin Denwa KK
Priority to JP59192491A priority Critical patent/JPS6171750A/ja
Priority to CA000476656A priority patent/CA1218464A/en
Publication of JPS6171750A publication Critical patent/JPS6171750A/ja
Priority to US07/106,030 priority patent/US4754400A/en
Publication of JPH0458743B2 publication Critical patent/JPH0458743B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、通信プロトコルの仕様を入力し、それに含ま
れる内部矛盾を仕様誤りとして検出し出力するプロトコ
ル検証方式に関する。
(従来技術) 近年の電気通信の高度化・多様化に伴い、交換機・通信
処理装置等の通信機器におけるソフトウェアは大規模化
・複雑化する一方である。このため通信ソフトウェアの
開発・保守における生産性を向上させることは益々重要
となってきた。
通信ソフトウェアの開発・保守における生産性を向上さ
せる一つの有力な方策は、通信ソフトウェアの要求仕様
を開発・保守の早い段階で正確にかつ過不足なく定義す
ることにより、それ以後の段階からのフィードバック的
な作業をなくすことである。通信ソフトウェアの中で重
要な位置を占めるものとして、通信回線を介して各種の
信号を送受するための信号形式や手順を規定するプロト
コルがある。従って、プロトコルの仕様に論理的矛盾や
あいまいさがあった場合、これを自動的に検出するプロ
トコル検証技術が重要となる。
従来、この種のプロトコル検証方式としては、与えられ
た通信プロトコル仕様に従って、通信システムがとり得
る動作および状態のすべての組合せを順次列挙し、検査
するものであった。
この従来技術を第2図、第3図を用いて説明する。
第2図は、検証しようとするプロトコルの一例であって
、プロセス1.2および3からなる通信システムのプロ
トコル仕様を図示したものである。
ここで、通信システムとは、例えばプロセス1および3
が端末装置、プロセス3が交換機であるシステムであっ
てもよいし、また、プロセス1,2.3がともにCPU
内にあってもよい。すなわち、他の機能と信号の送受信
(送信または受信だけであってもよい)を行う処理単位
をプロセスと呼び、互いに信号の受授を行う複数のプロ
セスを総称して通信システムと呼ぶ。第2図はプロセス
数3の場合のプロトコルの一例である。
第2図において、○印は状態を、矢印は遷移を表わす。
また矢印に付けられたラベルは信号の送信又は受信を示
し、一般に−aはプロセスiからプロセスjへの信号a
の送信を、+aはプロセス1」 から送信された信号aのプロセスJによる受信を表わす
。従って、プロセス1はA、を初期状態として、プロセ
ス2に対し信号1を送信して状態B1に遷移し、プロセ
ス2から信号2を受信したとき状態C3に遷移し、プロ
セス3に対して信号3を送信して初期状態A1に戻るよ
うに動作することが分かる。このように、各プロセスの
動作は比較的容易に理解できるが、プロセス1.2.3
の相互間ニ論理矛盾があるか否かを判定することは容易
でない。
前述したプロトコル検証の従来技術とは、一つの信号の
送信又は受信による実行可能な遷移を初期状態から遂−
すべて順次に実行し、到達可能な状態を全て含むような
通信システム全体の状態遷移図を作成し、その作成過程
で論理矛盾、すなわち仕様誤りを検出していた。第2図
のプロトコル例に、この従来技術を適用した結果を第3
図に示す。この第3図はシステム全体の状態遷移を示す
ことからグローバル遷移図と呼ぶ。また、状態は、口印
の中に各プロセスの状態が表示され、これをグローバル
状態と呼ぶ。
先ず、初期グローバル状態(As−A2− A3)にお
いて、即実行可能な遷移を検出すると、プロセスlにお
ける一1番とプロセス2における−21である。
プロセス3においては全て受信であり、かつ信号3もし
くは信号4はいずれのプロセスがらも送信されていない
ので実行不可能である。そこで、先スー1五の遷移につ
いてテストするとグローバル状態(Bl、A2 、A3
 )となる。この状態で再度即実行可能な遷移を検出す
ると、+1蟲と一2千とである。このうち+1′2につ
いてテストするとグローバル状態(B□、C2,A3)
となる。この状態がら即実行可能な遷移は一4xだけで
ありグローバル状態(B1.B2.A3)となる。次に
プロセス3が信号4を受信しグローバル状態は(B、、
 B2.Cs )となる。
しかしながら、この状態において、即実行可能な遷移は
ない。すなわち、プロセス1の状態(B、)においては
信号2の受信がとり得る遷移であるが、この状態前に信
号2はプロセス2から送信されていないので実行は不可
能であり、また、プロセス2の状態(B2)においては
、信号1の受信が可能であるものの、プロセス1から送
信された信号1はすでにグローバル状態(B8.A2.
A3)から(B1゜C2,ks )への遷移の過程で処
理されているし、さらにプロセス3の状態(C8)にお
いては、信号5の受信が可能なものの、グローバル状態
(Bl、B2゜C3)となる以前にいずれのプロセスか
らも信号5は送信されていないので、これも実行不可能
である。このように、グローバル状態(B、、 132
. Cs )においては実行可能な遷移を全く持たない
。このような状態をデッドロック状態といい、この状態
を検出することがプロトコル検証の1つの目的である。
また、第3図は、システムの実行可能な全ての遷移を全
て実行した結果であるから、第3図に含まれない第2図
の遷移は過剰であるといえる。この観点からプロセス3
の状態(C3)における信号受信+51が過剰な定義と
して検出される。
さらに、第3図において、グローバル状態(A1゜B2
.A3)における即実行可能な遷移は−11だけとなっ
ているが、この状態になる前に信号2がプロセス2から
プロセス1に対して送信されている。
従って、グローバル状態(AI、B2.A3 )におい
て、信号2の受信遷移+2でか可能なはずである。この
遷移は、第2図のプロトコルに不足している定義であり
、未定義受信として検出される。同様な意味で、グロー
バル遷移(AI、B2.D3)において、+6換の未定
義受信が検出される。
以上のように、初期グローバル状態(Al、A2.A3
 )から実行可能な遷移を遂−すべて順次に実行するこ
とによりプロトコルの検証が行われる。
(発明が解決しようとする問題点) 上述した従来技術によっては、全ての実行可能な遷移を
検査の対象とするため、プロトコルが大規模化・複雑化
した場合、状態数や遷移数が膨大となり、処理量すなわ
ち処理時間の増大となり実質的に検証が不可能となって
いた。またノ・−ド化の点からは、グローバル状態遷移
図を記憶するためなどの膨大なメモリが必要となり、今
だノ・−ドの実現をみていない。
(問題点を解決するための手段) 本発明は、上述した従来技術の欠点に鑑みなされたもの
で、処理量の少ないプロトコル検証方式を提供すること
を目的とし、その特徴は、仕様誤りを検出するのに支障
ない範囲で通信システムの動作を一括し、必要最小限の
状態と動作を列挙して検査することにある。
(作 用) 本発明によっては、(1)直ちに実行できる遷移の組合
せによるグローバル遷移候補を導出し、(2)冗長なグ
ローバル遷移候補を削除し、(3)送受信遷移一括処理
によるグローバル遷移を最終決定することにより、検査
の対象となる遷移数とグローバル状態数を削減するので
、ハードの量及び処理時間が減少し発明の目的を達成す
ることができる。
(実施例) 本実施例が検証の対象とするプロトコルは、従来技術と
同様第2図に示したプロトコルの例とする。
ここで、プロトコル仕様と仮定および説明のための用語
につ(・て整理しておく。
本実施例では、検証対象とするプロトコルの仕様は、以
下に示すQl、042MIJ、5ucc(l、J=1゜
・・・、N;N:プロセスの個数)の4項の組み合せで
与えられるものとする。
Ql:プロセ゛スlの状態集合。
01:プロセスIの初期状態。
Ml、:プロセスiからプロセス」に送る信号の集合。
ただしJ=Φ(空集合)い=1゜・・・、N)とする。
5ucc :プロセスが各状態で信号を送受信すること
により遷移した結果とる状態を表 わす関数で、5ucc (s、 x )は、状態Sにあ
るプロセスが信号Xの送信(X<Q)又は受信(X>O
)により遷移した後の状態を表わす。
また、検証対象とするプロトコルに対し、以下の仮定を
設ける。
■ 信号の送受により各プロセスが遷移する先の状態は
、その信号と元の状態に応じて一意に定まる。
■ 一旦初期状態を遷移した後再び初期状態に戻った場
合にはそれ以上遷移しないものとする。
■ 各プロセスは、容量が十分大きな信号受信用バッフ
ァを相手プロセス別に持つ。
■ プロセス相互間で送受する信号の受信順序は送信順
序と同一である。
以上の仮定の内■は、実施例の説明を単純にするための
ものであり、省略することも可能である。
次に、実施例により検出する仕様誤りを明らかにするが
、その前に準備として、いくつかの用語を定義する。
プロトコルを用いて通信するシステム全体の状態GをS
とCの2項の組み合せ、即ちa=<s、c>で定義し、
Gをグローバル状態と呼ぶ。ここで、5==(S、、・
・・”’N)+ C=(CIl+ CI2+・・・1C
NN)であり、Siはプロセス1の状態、C1Jはプロ
セス1からプロセスjに送出されたが未だ受信処理され
ていない信号受信バッファ上の信号の系列である。信号
受信バッファがすべて空のグローバル状態G=(S。
〈ε>l、J =1>を安定グローバル状態と呼ぶ。特
に各プロセスの初期状態を含む安定グローバル状態G=
<<Oi> i以1.<ε> i、jN=1>を初期グ
ローバル状態と呼びG。で表わす。 尚、誤解すること
がない場合には、グローバル状態を個々のプロセスの状
態のみで表わすこともある。
グローバル状態Gにおいて、一つの信号を送信或は受信
することにより別のグローバル状態げに遷移するどきG
とαの関係をGl−αで表わす。更に、初期グローバル
状態G。からこのような遷移をくり返すことにより到達
するG、即ちG。I−・・l−GであるGは到達可能で
あるという。
あるプロセスの状態Sと信号Xより成る順序対(s、x
)を、X<Oであれば信号送信遷移、x)Qであれば信
号受信遷移と呼ぶ。与えられたプロトコル仕様に5uc
c (s、 x)が定義されているとき、<S、X〉を
定義済遷移又は定義済送/受信と呼ぶ。
定義済送信(s、 x) (x(0)は、Sを要素とじ
て含む到達可能なグローバル状態が存在するとき実行可
能である。また定義済受信(s、 X>(x)Q )は
、Sを要素として含みかつ該当する信号受信バッファの
先頭に信号Xを蓄積している到達可能グローバル状態が
存在するとき実行可能である。
グローバル状態Gから別のグローバル状態αに移る遷移
をグローバル遷移と呼び()印で表わす。
以上の準備に基づいて、本発明が検出するプロトコル仕
様の誤りを示すと以下の通りである。
■ 信号定義の過剰:プロトコル仕様に含まれる信号の
送受信の内実性し得ないもの。
■ 信号定義の不足:プロトコル仕様に含まれないが実
行可能である未定義受信。
■ デッドロック状態:すべてのプロセスについて状態
遷移が実行不可能であり、かつすべての信号受信バッフ
ァが空である安定グローバル状態。
第1図は、本発明の一実施例を示すブロック図である。
第1図で、1は外部から与えられるプロトコル仕様を蓄
積するメモリ、2は検証処理に使用する各種変数の初期
値を設定する初期設定ブロック、3は指定されたグロー
バル状態における実行可能な未定義受信を検出する未定
義受信検出ブロック、4は指定されたグローバル状態に
おいて直ちに実行可能な遷移を抽出する即時実行可能遷
移抽出ブロック、5は指定されたグローバル状態におけ
るグローバル遷移の候補を導出するグローバル遷移候補
決定ブロック、6はグローバル遷移候補決定ブロック5
の処理結果を入力し、冗長なグローバル遷移候補を除去
する冗長グローバル遷移候補削除ブロック、7は冗長グ
ローバル遷移候補削除ブロック6の処理結果に対して送
信遷移と受信遷移を可能な範囲で一括処理することによ
りグローバル遷移を最終決定する送受信一括プロック、
8は送受信一括ブロック7で得られたグローバル遷移、
およびそれらを実行して得られるグローバル状態の内、
その時点までに得られているグローバル状態遷移図(こ
れは後述のメモリ12に蓄えられている)に含まれない
ものを追加することによりグローバル状態遷移図を更新
するグローバル状態遷移図更新ブロック、9はブロック
8で更新されたグローバル状態遷移図から未処理グロー
バル状態を検索し、未処理グローバル状態が検出できた
とき1;その一つを後述のメモIJ 12に出力し、そ
れが検出できなかったときはその旨の情報を次に示す実
行不可能送受信検出ブロックへ出力する未処理グローバ
ル状態抽出ブロック、10はプロトコル仕様に含まれる
信号の送受信とグローバル状態遷移図に含まれる信号の
送受信とを比較し、′実行不可能な定義済送受信を求め
る実行不可能送受信検出ブロック、11は指定されたグ
ローバル状態がデッドロックであるか否か判定するデッ
ドロック検出ブロック、12は検証結果であるグローバ
ル状態遷移図等および各種の変数を蓄積するメモリであ
る。
第4図は、プロトコル仕様をメモリ1に蓄積する場合の
一蓄積形式を示す。また第5図は、グローバル状態遷移
図および仕様誤りを表形式でメモリ12に蓄積する場合
の一蓄積形式を示す。
第6図は、第2図のプロトコル例を第1図の実施例に適
用した結果得られるグローバル状態遷移図を示す。以下
、第2,6図の例を用いて、第1図の実施例の動作を説
明するが、プロトコル仕様は第4図の形式で既にメモリ
1に蓄えられているものとする。第1図のブロック図で
は、最初に初期設定ブロック2が動作する。初期設定ブ
ロック2はメモリlにアクセスし、プロトコル仕様に含
まれる各プロセスの初期状態を入力して初期グローバル
状態を求め、以後の各ブロックにおいて検証処理の対象
とするグローバル状態を指定する変数Gに初期グローバ
ル状態を設定する。さらに、未定義グローバル状態の集
合を表わす変数Aを空集合に設定する。これらの情報を
メモ1月2に出力して蓄積し、未定義受信検出ブロック
3を起動する。
第7図は未定義受信検出ブロック3の動作を示すフロー
チャートである。
未定義受信検出ブロック3は、まずメモIj 12にア
クセスし、変数Gの値を入力する。次にメモリ1のプロ
トコル仕様情報を用いて、Gの示すグローバル状態にお
いて実行可能でかつ未定義の受信を、以下の方法により
検出する。即ち、■ グローバル状態Gにおける信号受
信バッファの内、空でないものについて、その先頭にあ
る信号の受信がプロトコル仕様に定義されているか否か
を調べる。そして定義されていない受信をすべて実行可
能未定義受信とし、その情報をメモリ12に出力する。
■ グローバル状態Gにおける空の信号受信バッファの
各々について次の処理を行う。その信号受信バッファが
蓄えるべき信号の送信プロセスを1、受信プロセスをj
とする。プロセス監がグローバル状態Gにおいてプロセ
スj宛の送信遷移を持つか否か検査し、送信遷移を持つ
場合にはそのような送信遷移によって送出される信号を
受信する受信遷移をプロセスlがグローバル状態Gで持
つか否か調べとし、その情報をメモIJ 12に出力す
る。
例えば第2.6図の初期グローバル状態(A1゜A2.
A3)においては、信号受信バッファはすべて空である
。そしてこのグローバル状態では、送信遷移として−1
1,と−2丁が定義されている。この内、−21に対応
する受信遷移はこのグローバル状態では定義されていな
い。。
従って、実行可能未定義受信として+2でか出力される
未定義受信検出ブロック3は、以上の動作を終えると、
即時実行可能遷移検出ブロック4を起動する。
即時実行可能遷移抽出ブロック4は、メモリ1と12に
アクセスし、以下に示す方法で、グローバル状態Gにお
いて直ちに実行可能な送受信遷移を抽出しその結果をグ
ローバル遷移候補決定ブロック5に出力する。
■ グローバル状態Gで定義されている送信はすべて直
ちに実行可能であるとする。例えば、第1図のプロトコ
ル例で初期グローバル状態: −V、 1 A2.−”
L37 +−?、゛て、−二iお;び−22、二で−で
一フーー2二2で−Iち、二興行可百巨−;送信遷移で
ある。
■ グローバル状態Gで定義されている受信の内、それ
に対応する信号受信バッファが、その受信遷移の指定す
る信号をその先頭に含んでいるものをすべて直ちに実行
可能であるとする。例えば、第1図のプロトコル例にお
いて、初期グローバル状態でプロセス遷移−1閂と−ど
を実行して得られるグローバル状態(Bl、B2 、 
A3 )では、信号受信バッファC1□。
C2Iの内容はそれぞれCl2= (l)、 C2、=
〔2〕であるので、プロセス1.2で定義されている受
信遷移+目と+21はともに直ちに実行可能である。
ブロック4は、以上の処理を終えるとグローバル遷移候
補決定ブロック5を起動する。なお直ちに実行可能な遷
移がないときはブロック11を起動する。
グローバル遷移候補決定ブロック5は、即時実行可能遷
移抽出ブロック4でつ処理結果を入力1−、イ、マCC
垣、二=′グ=−バ、−遷移侯補乞長乏一た後、その結
果を冗長グローバル遷移候補削除ブロック6に出力し、
ブロック6を起動する。
一つのグローバル状態において、直ちに実行可能なプロ
セス遷移が1個であれば、そのグローバル状態からのグ
ローバル遷移候補はそのプロセス遷移とする。直ちに実
行可能なプロセス遷移が複数個ある場合は、直ちに実行
可能なプロセス遷移の組合せの内、各プロセスで実行す
る遷移が高々1個であるような組合せすべてを、そのグ
ローバル状態からのグローバル遷移候補とする。
このようにして求められるグローバル遷移候補には、直
ちに実行可能な遷移を持つプロセスの遷移を含まないも
のもある。このようなグローバル遷移候補を実行して得
られるグローバル状態以降では、元のグローバル状態で
そのようなプロセスが直ちに実行可能だった遷移を除外
してグローバル遷移候補を求める。
例えば第2図のプロトコル例で、初期グローバル状態(
AI 、A2 、As )において直ちに実行可能な遷
移は、プロセス1での−11およびプロセス2での−2
でである。これらの組合せによるグローバル遷移候補は
、(−1黍)、 (−271,(−11,−2〒)の3
通りある。これら3つのグローバル遷移候補の内、(−
zy)は、次に述べる冗長グローバル遷移候補の削除処
理により除去され、最終的には第2図に示す通り(−1
1)と(−1よ、−脣)の2通りとなり、各々を実行す
ると、新グローバル状態として(B1.A2.A3)と
(B7.B2.A3)が得られる。
初期グローバル状態(AI、A2.A3 )からグロー
バル状態(B2.A2.A3)へのグローバル遷移(−
24)は、初期グローバル状態で直ちに実行可能な遷移
−どを持つプロセス2の遷移を含まない。従って、グロ
ーバル状態CB+、A2.A3 )からのグローバル遷
移を求める場合には、プロセス2の遷移2Fが除外され
、その結果、グローバル状態(B1゜A2− A3 )
からのグローバル遷移は、第2図に示すように(+1↓
)のみとなる。
以上の動作を終えると、ブロック5はブロック6を起動
する。
冗長グローバル遷移候補削除ブロック6は、ブロック5
のグローバル遷移候補決定処理により得られるグローバ
ル遷移候補の内、次に示す二つの条件a、bを満たすプ
ロセスの遷移を含まないような組合せのグローバル遷移
を削除し、その結果を送受信一括プロック7へ出力し、
ブロック7を起動する。
a、そのプロセスのその状態における定義済遷移がいず
れも直ちに実行できる遷移か実行し得ない受信遷移のい
ずれかであり、かつ直ちに実行可能な遷移が1個以上存
在すること。ここで、グローバル状態Gで定義された受
信は、■それを直ちに実行することができない、かつそ
れに対応する送信がグローバル状態G以降に定義されて
いない、即ちGかも初期状態まで各プロセスの定義済遷
移をその遷移方向にたどっていったときそのような信号
が存在しない場合、および、■該当する受信バッファに
別の信号が存在する場合、実行し得ないと判定する。
b、そのプロセスはその状態で他プロセスから信号を受
信することがない。或は受信することが可能でかつその
最初の信号が特定できること。ここであるプロセスに対
する送信がグローバル状態G以降全(定義されていない
場合、そのプロセスはその状態で他プロセスから信号を
受信し得ないと判定する。また、あるグローバル状態G
 ” << S i>iだ1. <cij> ij’=
1>におl、−てプロセスkが状態skでプロセス1か
ら最初に受信する信号を特定できるための条件は、■グ
ローバル状態GにおけろプロセスIのすべての定義済遷
移がプロセスにへの送信か又は実行不可能である、■プ
ロセスlがもプロセスに宛の受信バッファが空でない、
のいずれかが成立することである。
例えば、第2.6図の例で、初期グローバル状態(A1
.A2.A3)からのグローバル遷移候補は[−1;)
(−2r)、 +−1;、−脣)の3通りあった。そし
て、次に示すように、初期グローバル状態(AI 、A
2 。
A3)においてプロセス1は上記の2条件abを満〉 だすので、3つのグローバル遷移候補の内、プロセス1
の遷移を含まないグローバル遷移候補(<+を冗長なも
のとして削除することができる。実際、プロセス1の状
態A、における定義済遷移は−11のみであり、これは
直ちに実行可能である。一方、プロセス2からプロセス
1へ送る信号は2のみであり、かつプロセス2は状態A
2で信号2をプロセス1に送出することかできる。従っ
て、プロセス1が状態A1でプロセス2から最初に受信
する信号は、2と特定できる。また、プロセス3はプロ
  、セスlに対して送出する信号を持たない。従って
、プロセス1は状態A1でプロセス3から信号を受信す
ることがない。
送受信一括プロ7り7は、冗長グローバル遷移候補削除
ブロック6での処理の結果得られるグローバル状態Gか
らのグローバル遷移候補の内、送信遷移を含むものにつ
いて、 a、その送信に対応する受信が元のグローバル状態Gで
定義されており、かつその受信バッファが空であること
b、その受信プロセスはその状態で他に定義済遷移を持
たない、或は他に定義済遷移を持つ場合それらはすべて
実行し得ない受信であること。
C1その受信プロセスは、その信号を送るプロセス以外
の各プロセスからその状態で信号を受信することがない
、或は受信することが可能でかつその最初の信号が特定
できること。
03条件が成立する場合、そのような信号受信遷移をそ
のグローバル遷移に含め、これらを統合しテーラのグロ
ーバル遷移とする。このような処理を送受信遷移一括処
理と呼び、その結果を、グo −パル状態遷移図更新ブ
ロック8へ出力する。
例えば第2,6図の例で、ブロック4〜6の処理により
、安定グローバル状態(A+、D2.B3 )における
グローバル遷移は、(−暢)のみとなる。ところが、こ
の信号を受信するプロセス2は、これを受信する遷移+
62以外実行できる遷移を持たないので上記の条件a、
bを満たす。更にプロセス2が状態D2でプロセス1か
ら信号を受けることがなく、またプロセス3から最初に
受ける信号は6と特定できるので条件Cを満たす。従っ
て、グローバル状態(A、、D2.B3)カラのグロー
バル遷移(−弓)は、プロセス2の受信遷移+6:を統
合した(±68)となる。
ブロック7は以上の動作を終えると、ブロック8を起動
する。
グローバル状態遷移図更新ブロック8は、送受信一括プ
ロック7で最終決定したグローバル遷移に関する情報を
入力し、それに基づいてメモリ12内のグローバル状態
遷移図および未処理グローバル状態集合Δを更新する。
具体的には、まず、メモリ1内のプロトコル仕様を用い
て、ブロック7から得られる各グローバル遷移を実行し
た結果得られる新しいグローバル状態を決定する。次に
、このようにして得られたグローバル状態の内、メモl
) 12内のグローバル状態遷移図に含まれるグローバ
ル状態と同一のものを除き、メモリ12内の未処理グロ
ーバル状態の集合Aに追加する。さらに以上で得られた
グローバル遷移および未処理グローバル状態をメモリ1
2のグローバル状態遷移図ニ追加し、ブロック9を起動
する。
未処理グローバル状態抽出ブロック9は、メモ1) 1
2上のΔにアクセスし、その中から一つの未処理グロー
バル状態を検索する。もし未処理グローバル状態が存在
しないときは、実行不可能送受信検出ブロック10を起
動する。未処理グローバル状態が存在するときは、メモ
リ12内のGにそれを蓄積し、未定義受信検出ブロック
3を起動する。
実行不可能送受信検出ブロック10は、メモリ1内のプ
ロトコル仕様に含まれる送受信遷移と、メモIJ 12
内のグローバル状態遷移図に含まれる送受信遷移とを比
較し、前者に含まれるが後者に含まれない送受信遷移を
実行不可能送受信としてメモリ12に出力する。
デッドロック検出ブロック11は、メモリ1内のプロト
コル仕様を参照して、メモリ12内のGで指定されたグ
ローバル状態において直ちに実行可能な遷移が存在する
か否かを調べる。その結果が否のときのみ、そのグロー
バル状態をデッドロックとしてメモリ12に蓄積する。
その後、未処理グローバル状態抽出ブロック9を起動す
る。
以上述べた方法により、仕様誤りをすべて正しく検出で
きることを以下に説明する。既に述べたように、本発明
による方式が従来方式と異なるのは、即時実行可能遷移
抽出ブロック4〜送受信一括ブロック7の動作にあるの
で、これらのブロックの動作によって仕様誤りを検出し
損なうことがないことを説明する。尚、以下では、ブロ
ック4と5の処理をまとめて第1の処理、またブロック
6と7の処理をそれぞれ第2.第3の処理と呼ぶ。
まず、第2.第3の処理を実行せず、第1の処理結果を
直接ブロック、8に出力することによって仕様誤りを検
出し損なうことがないこと、即ち、第1の処理により得
られるグローバル遷移をすべて実行してグローバル状態
遷移図を作成することにより、先述した仕様誤りをすべ
て検出できることを説明する。
第1の処理は、実行可能となったプロセス遷移の各々に
ついて、実際に実行する場合と実行しない場合とに明確
に分け、前者の場合には実行する遷移をすべて直ちに実
行させてしまうものである。
従って、検出不可能となる実行可能な定義済送受信がな
いことは明らかである。一方、一般に、あるグローバル
状態に到達するための実行プロセス遷移系列において実
行するプロセス遷移の順序を入れ替えた場合、入れ替え
後の系列が実行可能でかつ各プロセス毎の系列の順序が
変わらないならば、到達するグローバル状態は変わらな
い。言い換えると、第1の処理によりすべての到達可能
なグローバル状態を列挙できる。従って、検出不可能と
なる実行可能な未定義受信やデッドロック状態はない。
以上で第1の処理、即ちグローバル遷移候補決定処理の
みによってグローバル状態遷移図を作成することにより
仕様誤りをすべて検出できることが言える。
次に、第1の処理、即ちグローバル遷移候補導出処理の
結果に第2の処理、即ち冗長グローノくル遷移候補の削
除処理を加えて得られるグローノくル遷移を用℃・てグ
ローバル状態遷移図を作成することにより、仕様誤りを
すべて検出することができることを説明する。
冗長グローバル遷移候補削除処理により実行可能な定義
済遷移が実行不可能となることはないので、実行可能な
定義済遷移を検出し損なうことがないのは明らかである
。一般にあるグローバル状態G=<<Si>シ1.<C
ij> i、j監1〉において、プロセスにの遷移を含
まないグローバル遷移を除外すると、プロセスにの状態
Skで実行可能な未定義受信を検出し損なうことがある
。しかしこの処理では、先に述べた条件すが成立するプ
ロセス、即ち他プロセスから最初に受信できる信号が特
定できるプロセスについてのみそのようなグローバル遷
移を除外するので、実行可能な未定義受信を検出し損な
うことはない。
また、一般に冗長グローバル遷移候補削除処理により(
安定)グローバル状態が一部削除される。
しかし削除されたグローバル状態は、元のグローバル状
態Gかものグローバル遷移を実行した結果得られる新し
いグローバル状態のいずれかと元のグローバル状態Gと
の途中に位置し、必ず前者のグ=−ハ・・次言、二遷移
¥るこニて一可能であつ、デ2・・°=2クニは′″:
ろ−;、。侘ってデ、・パ二7・り、大災を検出し損ね
ることはない。
以上から、第1の処理に第2の処理を追加してグローバ
ル状態遷移図を作成することにより、仕様誤りをすべて
検出できることが言える。
次に、第3の処理、即ち送受信一括処理を第1゜2の処
理に追加して得られるグローバル状態遷移図を作成する
ことにより、仕様誤りをすべて検出できることを説明す
る。この第3の処理は単に実行可能な受信処理を早く行
うものであり、他の実行可能な遷移の実行を妨げること
はない。従って、実行可能な定義済遷移を検出し損なう
ことがな〜・のは明らかである。また先に述べた条件C
かも、一括処理される受信を持つプロセスのその状態で
実行可能な受信は漏れな(検出できるので、実行可能な
未定義受信を検出し損なうことはない。さらにこの第3
の処理は受信のみを早く実行するので、この処理により
安定グローバル状態が除去されることはない。従って、
デッドロック状態を検二”−づ″:勺二二、;t、っ クニ、)っ、千−−4−二ゝ3.つ:こ埋をてへて夷行
してグローバル状態遷移図を作成することにより、プロ
トコル仕様に含まれる誤りをすべて検出できろことが分
かる。
(発明の効果) 以上詳細に説明したように、本出願による方式は、従来
方式に比較すると仕様誤りの検出に支障ない範囲で各プ
ロセスの遷移を一括してグローバル状態遷移図を作成す
る。このため、従来方式に比較するとグローバル状態遷
移図に含まれるグローバル状態およびグローバル遷移と
も大幅に減少する。例えば、第2図のプロトコル例に対
するそれらの値の比較を第8図に示す。このため、従来
方式に比較して、本出願による方式は検証処理に必要と
なる処理量が大幅に減少するとともに、グローバル状態
遷移図等を蓄積するために必要となるメモリの容量を大
幅に削減することができると℃・う利点がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図と
第3図はプロトコル検証の説明図、第4図はプロトコル
仕様のメモリへの蓄積を示す例、第5図(al〜(dl
はグローバル状態遷移及び仕様誤りをメモリに蓄積する
例を示す図、第6図は第2図のプロトコル例を第1図に
適用して得られるグローバル状態遷移図、第7図は未定
義受信検出ブロックの動作を示すフローチャート図、第
8図は第2図のプロトコル例に対する遷移数と状態数を
従来の技術と本発明について示す図である。

Claims (1)

    【特許請求の範囲】
  1. 電気的信号により表現されたプロトコル仕様を入力とし
    て、該プロトコル仕様の有する遷移情報に従ってグロー
    バル状態を遷移しつつプロトコル仕様を検証するプロト
    コル検証方式において、プロセス毎の状態とプロセス間
    の信号受信バッファ内の信号系列とから構成されるグロ
    ーバル状態を生成し、該グローバル状態で直ちに実行で
    きる遷移の組合せによるグローバル遷移候補を導出し、
    該候補のうち予め定まる条件に該当する冗長なグローバ
    ル遷移を削除してグローバル遷移を決定し、該グローバ
    ル遷移に従って前記検証動作を順次行うことを特徴とす
    るプロトコル検証方式。
JP59192491A 1984-09-17 1984-09-17 プロトコル検証回路 Granted JPS6171750A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP59192491A JPS6171750A (ja) 1984-09-17 1984-09-17 プロトコル検証回路
CA000476656A CA1218464A (en) 1984-09-17 1985-03-15 Protocol validation system
US07/106,030 US4754400A (en) 1984-09-17 1987-10-08 Protocol validation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59192491A JPS6171750A (ja) 1984-09-17 1984-09-17 プロトコル検証回路

Publications (2)

Publication Number Publication Date
JPS6171750A true JPS6171750A (ja) 1986-04-12
JPH0458743B2 JPH0458743B2 (ja) 1992-09-18

Family

ID=16292186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59192491A Granted JPS6171750A (ja) 1984-09-17 1984-09-17 プロトコル検証回路

Country Status (3)

Country Link
US (1) US4754400A (ja)
JP (1) JPS6171750A (ja)
CA (1) CA1218464A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208151B2 (en) 2011-10-25 2015-12-08 International Business Machines Corporation Method, program, and system for specification verification

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5133074A (en) * 1989-02-08 1992-07-21 Acer Incorporated Deadlock resolution with cache snooping
CA2011807C (en) * 1989-03-20 1999-02-23 Katsumi Hayashi Data base processing system using multiprocessor system
US5826017A (en) * 1992-02-10 1998-10-20 Lucent Technologies Apparatus and method for communicating data between elements of a distributed system using a general protocol
US5581793A (en) * 1993-08-24 1996-12-03 Micron Electronics, Inc. System for bypassing setup states in a bus operation
JPH07307771A (ja) * 1994-05-12 1995-11-21 Kokusai Denshin Denwa Co Ltd <Kdd> プロトコルの論理検証方法
US6487676B1 (en) * 1996-07-19 2002-11-26 Telefonaktiebolaget Lm Ericsson (Publ) Validation of procedures
FR2756070B1 (fr) * 1996-11-18 1999-01-22 Bull Sa Systeme de gestion et de traitement de transactions distribuees d'objets et procede mis en oeuvre par ledit systeme
US6178394B1 (en) * 1996-12-09 2001-01-23 Lucent Technologies Inc. Protocol checking for concurrent systems
DE19831720A1 (de) * 1998-07-15 2000-01-20 Alcatel Sa Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2472234A1 (fr) * 1979-12-21 1981-06-26 Philips Ind Commerciale Protocoles de communication geres par les modules de communication utilises dans un systeme de traitement de donnees reparti
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4539652A (en) * 1982-07-16 1985-09-03 At&T Bell Laboratories Networks for data communication
US4631666A (en) * 1982-10-25 1986-12-23 Burroughs Corporation Data transfer network for variable protocol management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208151B2 (en) 2011-10-25 2015-12-08 International Business Machines Corporation Method, program, and system for specification verification

Also Published As

Publication number Publication date
CA1218464A (en) 1987-02-24
JPH0458743B2 (ja) 1992-09-18
US4754400A (en) 1988-06-28

Similar Documents

Publication Publication Date Title
CN110135985B (zh) 一种区块链上交易的并行执行方法及***
JPS6171750A (ja) プロトコル検証回路
CN113656227A (zh) 一种芯片验证方法、装置、电子设备及存储介质
EP1517254A2 (en) Modelling and simulation method
CN109271408A (zh) 一种分布式数据连接处理方法、装置、设备及存储介质
EP3327573B1 (en) Multi-processor and multi-processor system
CN109410063B (zh) 基于区块链的交易处理方法、装置和存储介质
CN116795605B (zh) 一种***器件互联扩展设备异常自动恢复***以及方法
CN112559525A (zh) 数据检查***、方法、装置和服务器
CN112559547B (zh) 确定多存储对象副本之间一致性的方法及装置
CN112083914B (zh) 实现对象模型嵌入式操作***软总线的方法及***
US10310823B2 (en) Program development support system and program development support software
CN111753027B (zh) 一种面向多实体的隐式知识图谱表示的方法及装置
US10599552B2 (en) Model checker for finding distributed concurrency bugs
CN111143218A (zh) 适用于5G嵌入式设备的log调试方法、装置和可读存储介质
JPH0458744B2 (ja)
CN116668464B (zh) 一种多串口服务同步处理方法、装置、电子设备及介质
JPH0313779B2 (ja)
US11042356B2 (en) Tournament tree rollback for payload write exception
CN114090626A (zh) 一种获取数据库数据的方法及装置
CN115952154A (zh) 一种用于工业物联网的数据处理方法、装置及***
CN116227393A (zh) 一种验证方法、装置、电子设备及存储介质
CN118113349A (zh) 数据处理方法及装置、数据处理***、设备和介质
CN115373647A (zh) 一种动态添加异步并返回最后添加异步结果的方法及装置
CN115048220A (zh) 动态数据竞争检测方法、装置、终端及存储介质