JPH10228387A - Specification verification system - Google Patents

Specification verification system

Info

Publication number
JPH10228387A
JPH10228387A JP9030061A JP3006197A JPH10228387A JP H10228387 A JPH10228387 A JP H10228387A JP 9030061 A JP9030061 A JP 9030061A JP 3006197 A JP3006197 A JP 3006197A JP H10228387 A JPH10228387 A JP H10228387A
Authority
JP
Japan
Prior art keywords
event
shared
state
deadlock
state transition
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
JP9030061A
Other languages
Japanese (ja)
Inventor
Takayasu Kasahara
孝保 笠原
Toshihiko Nakano
利彦 中野
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9030061A priority Critical patent/JPH10228387A/en
Publication of JPH10228387A publication Critical patent/JPH10228387A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To reduce calculation volume required for judging whether a program synthesized from program components generates dead lock or not even when the program is used for parallel processing. SOLUTION: In Step 1-1, the expression of a process to be analyzed at its dead lock is inputted, and in Step 1-2, syntax analysis for the process expression is executed, the process is decomposed up to kernel processes while grouping the events as a shared event to prepare a block diagram of processes. In Step 1-3, 1-4, the state transition diagram of a synthetic process is prepared from the process block diagram in a bottom up state, and in Step 1-5, dead lock is judged based on the generated state transition diagram of the synthetic process.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は仕様検証方式に関す
る。
[0001] The present invention relates to a specification verification system.

【0002】[0002]

【従来の技術】従来技術の解説は、添付した解説記事に
まとめられている(情報処理学会誌Vol.35 No.
8,pp736−741)。プロセス代数を用いた仕様
は、本解説記事の(1)式のように並列動作を論理的に
厳密に定義するためのプロセス代数の仕様記述言語(こ
の例ではプロセス代数の一つであるCCSが用いられて
いる。)で記述され、これを図2のような遷移グラフに
展開して、デッドロックのチェック等の検証を行う。こ
れを、図2の原子力や火力等のプラントの運転支援・監
視を行うシステムを仕様部品を用いて構築する際の、デ
ッドロックの有無の判定を例にとって説明する(ここで
は、仕様をプログラムも含めた広い意味で考える)。こ
こで、デッドロックとは、二つのサブシステムが相互に
信号待ちの状態になって、動作しなくなることを指す。
2. Description of the Related Art A description of the prior art is summarized in the attached commentary article (Journal of Information Processing Society of Japan Vol. 35 No.
8, pp. 736-741). The specification using the process algebra is a specification language of the process algebra for logically and strictly defining the parallel operation as shown in equation (1) of this article (in this example, CCS which is one of the process algebras) This is developed into a transition graph as shown in FIG. 2 and verification such as deadlock check is performed. This will be described by taking as an example the determination of the presence or absence of a deadlock when a system for supporting and monitoring the operation of a plant such as a nuclear power plant or a thermal power plant shown in FIG. Think in a broad sense, including). Here, deadlock means that the two subsystems are in a signal waiting state and do not operate.

【0003】構築するプラント運転支援・監視システム
は、図2に示すように、プラントからの制御信号を受け
取り、センサ信号を処理してマンマシンインターフェー
スに操作指示やセンサ値などの情報を含んだ表示データ
を送るものである。最終的には運転員はマンマシンイン
ターフェースからセンサ信号や運転操作の指示を受け取
ることになる。ここでは、このマンマシンインターフェ
ースの部分は除外した部分をプラント運転支援・監視シ
ステムと呼ぶことにする。以下の三つのプログラム部品
を組み合わせてプラント運転支援・監視システムを構築
する場合を考える。(1)センサからの信号と、他のプ
ログラム部品から受け取った操作指示のデータを加工し
て表示データとし、マンマシンインターフェースに送る
とともに、前処理したセンサ信号を他のプログラム部品
に送る運転支援・監視情報制御部のプログラム部品。
(2)前処理されたセンサ信号を用いて運転状況を判定
する運転状況判定部品、(3)運転状況判定結果を受け
取って対応する操作指示を出す対応操作推論部品。これ
ら三つのプログラム部品の仕様は列処理システムを記述
するのにもっとも一般的な記述方法の一つであるCSP
の記法により記述されている。それらを数1,数2,数
3に示す。これらは各々上記(1),(2),(3)の部品に
対応する。また、数4は、プログラム部品(2),(3)
を組み合わせて作成した状況判定・対応操作決定部に対
応する仕様であり、数5は仕様部品(1),(2),(3)を
組み合わせてできるプラント運転支援・監視システムの
仕様である。
As shown in FIG. 2, a plant operation support / monitoring system to be constructed receives a control signal from a plant, processes a sensor signal, and displays a man-machine interface including information such as operation instructions and sensor values on a man-machine interface. It sends data. Ultimately, the operator receives a sensor signal and a driving operation instruction from the man-machine interface. Here, the part excluding the man-machine interface is referred to as a plant operation support / monitoring system. Consider a case where a plant operation support / monitoring system is constructed by combining the following three program components. (1) Driving support and processing of processing a signal from a sensor and data of an operation instruction received from another program part as display data, sending the processed data to a man-machine interface, and sending a pre-processed sensor signal to another program part. Program part of monitoring information control unit.
(2) A driving condition determining component for determining a driving condition using a preprocessed sensor signal, and (3) a corresponding operation inference component for receiving a driving condition determination result and issuing a corresponding operation instruction. The specification of these three program parts is one of the most common description methods for describing a column processing system.
It is described by the following notation. These are shown in Equations 1, 2, and 3. These correspond to the components (1), (2) and (3), respectively. Equation 4 represents the program components (2) and (3)
Is a specification corresponding to the situation determination / corresponding operation determining unit created by combining the above. Equation 5 is a specification of the plant operation support / monitoring system which can be formed by combining the specification components (1), (2), and (3).

【0004】 P=a−>d−>b−>d−>a−>a−>a−>P …(数1) Q=a−>c−>Q …(数2) R=c−>b−>R …(数3) S=Q[{c}]R …(数4) T=P[{a,b}]S …(数5) また、数1から数5までに用いられている記号と図2中
に記述されている“操作指示”,“運転状況判定結果”
などのデータの授受を示す事象との対応関係を図3に示
す。例えば、数1のプロセスPは、運転支援・監視情報
制御部のプログラム部品が実行するプロセスを示す。た
だし、ここでは、簡単のため、各プロセス同士のデータ
・信号の授受は同時に起き共有事象をなすとしている。
プロセスPは、センサから受け取った信号を加工して前
処理済みのセンサ信号を発生し(事象a)、表示データ
を発生し(事象d)、操作指示を受け取り(事象b)、
再びその内容を加工して、表示データを発生し(事象
d)、次にセンサから受け取った信号を3回続けて加工
して発生し(事象a)、これを繰り返すプログラム部品
である。同様に、数2のプログラム部品は運転状況判定
部のプログラム部品で、前処理されたセンサ信号を受け
取り(事象a)、これを用いて運転状況判定し、運転状
況判定結果を発信する(事象c)。以上の処理を繰り返
すプログラム部品である。また、数3のプログラム部品
は、対応操作推論部に相当し、運転状況判定結果を受け
取り(事象c)、これに基づいて推論を実行して操作指
示を発信する(事象b)。これを繰り返すプロセスであ
る。これらの仕様は事象の発生する順序を規定したもの
であり、データの内容には触れていない。以上三つのプ
ロセスはこれ以上分解できないプロセスで核プロセスと
呼ばれる。これに対して、合成プロセスとはこれらの核
プロセスを並列に動かすプロセスである。例えば、数4
のプロセスは、核プロセスQと核プロセスRとを事象c
を共有事象として並列動作する合成プロセスである。こ
こで共有事象とは、二つのプロセスで同時に発生しなけ
ればならないプロセスである。今の例では、はじめに、
プロセスQで事象“a”が発生し、次に事象“c”が発
生したらプロセスRでも同時に事象“c”が発生すると
規定したものである。この合成プロセスSは図2の状況
判定・対応操作部の動作を表わすプロセスであり、前処
理済みセンサ信号を受け取ったら、運転状況を判定し、
それに基づいて操作指示を決めて出力するサブシステム
である。一方、数5は数1から数3までのプログラム部
品を合成して図2の運転支援・監視システム全体を実現
することを意図した合成プロセスTで、(a)前処理済
みのセンサ信号を発生して(事象“a”)、そのデータ
を加工して(2)表示信号データとして発信し(事象
“d”)、一方、その信号から運転状況を判定して対応
操作を決め(事象“b”)、対応操作を表示用に加工し
て出力し(事象“d”)、そのあと、前処理済み信号を
3回発生する(事象“a”)。以上の処理を繰り返すプ
ロセスである。
[0004] P = a->d->b->d->a->a->a-> P (Equation 1) Q = a->c-> Q (Equation 2) R = c- >B-> R (Equation 3) S = Q [{c}] R (Equation 4) T = P [{a, b}] S (Equation 5) Also used for Equations 1 to 5 And the "operation instruction" and "operation status judgment result" described in FIG.
FIG. 3 shows a correspondence relationship with an event indicating transmission / reception of data such as data. For example, the process P of Formula 1 indicates a process executed by the program component of the driving support / monitoring information control unit. However, for the sake of simplicity, it is assumed here that the transmission and reception of data and signals between the processes occur simultaneously and form a shared event.
The process P processes the signal received from the sensor to generate a preprocessed sensor signal (event a), generates display data (event d), receives an operation instruction (event b),
This is a program component that processes the content again to generate display data (event d), and then processes and generates the signal received from the sensor three times in succession (event a), and repeats this. Similarly, the program component of Equation 2 is a program component of the operation status determination unit, which receives the preprocessed sensor signal (event a), determines the operation status using the sensor signal, and transmits the operation status determination result (event c). ). This is a program component that repeats the above processing. Further, the program component of Equation 3 corresponds to a corresponding operation inference unit, receives a driving situation determination result (event c), executes inference based on the result, and transmits an operation instruction (event b). This is the process of repeating this. These specifications define the order in which events occur and do not touch on the content of the data. These three processes cannot be further decomposed and are called nuclear processes. On the other hand, the synthesis process is a process in which these nuclear processes are operated in parallel. For example, Equation 4
Is a process in which a nuclear process Q and a nuclear process R
Is a synthesis process that operates in parallel as a shared event. Here, a shared event is a process that must occur simultaneously in two processes. In our example, first,
When the event "a" occurs in the process Q and then the event "c" occurs, the event "c" also occurs in the process R at the same time. This synthesis process S is a process representing the operation of the situation determination / correspondence operation unit of FIG. 2, and when a preprocessed sensor signal is received, the driving situation is determined,
It is a subsystem that determines and outputs an operation instruction based on the instruction. On the other hand, Equation 5 is a synthesis process T intended to realize the entire driving assistance / monitoring system of FIG. 2 by synthesizing the program parts of Equations 1 to 3, and (a) generating a preprocessed sensor signal. (Event "a"), the data is processed and (2) transmitted as display signal data (event "d"). On the other hand, the operation status is determined from the signal to determine a corresponding operation (event "b"). "), The corresponding operation is processed for display and output (event" d "), and then a preprocessed signal is generated three times (event" a "). This is a process of repeating the above processing.

【0005】このように部品の組み合わせだけで作成し
た制御プログラムが、システム全体を思いどうりに制御
できるかどうかをチェックするには、従来、個々の部品
の状態遷移図をボトムアップに合成して全体の状態遷移
図を作成することで行われてきた。例えば、デッドロッ
クの発生がないことは、システム設計の重要な用件であ
る。従来のデッドロック解析の方法を説明するために、
数5で表わされるプロセスTがデッドロックするかどう
かを判定する従来方法を説明する。図4は、デッドロッ
クを判定するための概略処理手順を示している。図中の
Step3−1では、通常の字句解析技術により、数1から
数5までの式を入力し、デッドロックの解析対象のプロ
セスがプロセスT(数5)であることを指定する。次に
入力された式を構文解析し、核プロセスにトップダウン
に分解する。トップダウンに分解するとは、プロレス
が、すでに説明した並列結合の演算子[{…}]などで
二つのプロセスから合成されたものであれば、個々のプ
ロセスに分解することを指す。また、核プロセスとは、
このような方法で、これ以上分解できないプロセスを指
す。このような分解も通常の構文解析技術により可能で
ある。分解した結果できるプロセスの構造図を図5に示
す。プロセスの構造図を木構造をしており、木の葉にあ
たるものが核プロセスで、この場合、プロセスP,Q,
Rがそれに当たる。図中の木のノードに記述したのはサ
ブツリーから合成された合成プロセスである。このよう
な木構造のデータ構造はC,Lisp など一般の高級言語
で実現可能であるので以後の説明は、木構造のレベルで
の記述にとどめる。次にStep3−3で核プロセスの状態
遷移図を作成する。図6は核プロセスP,Q,R各々の
状態遷移図を示した。状態遷移図の状態を区別するため
に適当な名称(P1,P2,…など)をつけている。出
発点の状態のない矢印の行き先になっている状態は初期
状態である。プロセスP,Q,Rの初期状態はそれぞ
れ、P0,Q0,R0である。また、矢印の上に書かれ
た文字列はその文字列の事象を発生して、状態が遷移す
ることを示す。たとえば、核プロセスPでは、初期状態
P0の次に、事象aを発生して状態P1となる。このよ
うな状態遷移図と等価なデータ構造,オペレーションも
一般の高級言語で容易に実現できる。次に、Step3−4
で各、核プロセスの状態遷移図をプロセスの合成図に基
づいてボトムアップに順次作成する。図7に合成プロセ
スの状態遷移図を作成する手順を示す。これを、図5の
なかで、核プロセスQとRから、共通事象をcとする合
成プロセスQ[{c}]Rを作成する例によって説明す
る。合成結果の状態遷移図は図8である。まず、Step6
−1では合成もとのプロセスの初期状態の組を合成プロ
セスでの初期状態とする。これが、図8の左端の状態
(Q0,R0)に相当する。この状態がStep6−2で状
態の待ち行列の先頭におかれ、次のStep6−3で取り出
され、(Qt,Rt)=(Q0,R0)と置かれる。次
にStep6−4で、Q0からの共通事象c以外の遷移はa
によるものがあり、この遷移(a,ε)によって、新た
な状態(Q1,R0)が生成される。ここで、εは何も
事象が発生しないことを示し、R0にとっては、aが発
生しても関係なく、もとの状態R0のままであることを
示す。遷移を起こす事象はこのように、事象の組になっ
ているが、これも事象aによる遷移と見なす。プロセス
の構造によっては、事象の組のいれ子はいくらでも深く
なる。Q0からの共通事象c以外の遷移はこれだけであ
り、この状態が待ち行列に追加される。一方、プロセス
R0からの共有事象c以外の遷移はない。次にStep6−
5で、共有事象cによる遷移がQ0,R0で共通におき
るかどうか調べると、R0からの遷移はあるが、Q0か
らの遷移はない。したがって、Step6−6で新たに追加
される状態はない。また、すでに(a,ε)による遷移が
見つかっているので状態(Q0,R0)はデッドロック
状態ではない。次にStep6−7で待ち行列を見ると、先
頭に(Q1,R0)が入っている。そこで、Step6−4
で、この(Q1,R0)を待ち行列から取り出しStep6
−4を実行すると、共有事象以外の遷移は状態Q1,R
0ともないので、遷移は発生しない。次にStep6−5を
実行すると、共有事象cにより、Q1は状態Q0に、R
0の状態はR1に遷移するので、事象(c,c)による
新たな状態(Q0,R1)への遷移を状態遷移図に書き
込み、状態の待ち行列に(Q0,R1)を追加する。次
にStep6−6を実行しても、すでに(Q0,R1)から
の遷移は見つかっているので(Q0,R1)はデッドロ
ック状態ではない。次にStep6−7を実行すると、状態
の待ち行列に、新たにできた状態(Q0,R1)があ
る。そこで、Step6−3で、状態(Q0,R1)を取り
出す。次にStep6−4で、Q0からの共有事象以外によ
る遷移をさがすと、aによる遷移ができる。そこで、こ
の事象(a,ε)により生成する状態(Q1,R1)は
まだ状態遷移図中にないので、状態の待ち行列に追加す
る。一方、R1からの共有事象以外による状態の遷移と
して、bによる状態遷系がある。この事象(ε,b)に
よる状態遷移により生成する状態(Q0,R0)は、す
でに状態遷移図中に存在するので矢印を状態遷系図中に
書き込むだけでよい。Step6−5では共有事象による遷
移は見つからない。すでに遷移先が見つかっているので
デッドロックは生じない。
In order to check whether a control program created only by a combination of parts can control the entire system as desired, conventionally, a state transition diagram of individual parts is synthesized bottom-up. This has been done by creating an overall state transition diagram. For example, the absence of deadlock is an important requirement in system design. To explain the conventional deadlock analysis method,
A conventional method for determining whether or not the process T represented by Equation 5 deadlocks will be described. FIG. 4 shows a schematic processing procedure for determining a deadlock. In the figure
In Step 3-1, an expression from Expression 1 to Expression 5 is input by a normal lexical analysis technique, and it is specified that the process to be analyzed for deadlock is the process T (Expression 5). It then parses the input expression and breaks it down into nuclear processes. Decomposing into a top-down means that if wrestling is synthesized from two processes by the already-described parallel connection operator [{...}] or the like, it is decomposed into individual processes. Also, the nuclear process is
It refers to a process that cannot be further decomposed in this way. Such a decomposition is also possible by ordinary parsing techniques. FIG. 5 shows a structural diagram of a process resulting from the decomposition. The structure diagram of the process has a tree structure, and the leaves corresponding to the leaves are core processes. In this case, processes P, Q,
R corresponds to that. Described in the tree node in the figure is a synthesis process synthesized from the subtree. Since such a tree-structured data structure can be realized by a general high-level language such as C or Lisp, the following description is limited to the description at the tree structure level. Next, a state transition diagram of the nuclear process is created in Step 3-3. FIG. 6 shows a state transition diagram of each of the nuclear processes P, Q, and R. Appropriate names (P1, P2,..., Etc.) are given to distinguish the states in the state transition diagram. The state where the arrow without the state of the starting point is the destination is the initial state. The initial states of the processes P, Q, and R are P0, Q0, and R0, respectively. Further, a character string written above the arrow indicates that an event of the character string occurs and the state changes. For example, in the nuclear process P, after the initial state P0, the event a is generated and the state becomes the state P1. A data structure and operation equivalent to such a state transition diagram can be easily realized in a general high-level language. Next, Step 3-4
Then, a state transition diagram of each nuclear process is sequentially created from the bottom up based on the composite diagram of the process. FIG. 7 shows a procedure for creating a state transition diagram of the synthesis process. This will be described with reference to an example in FIG. 5 in which a composite process Q [{c}] R in which a common event is c is created from the nuclear processes Q and R. FIG. 8 is a state transition diagram of the synthesis result. First, Step6
In the case of -1, the initial state set of the synthesis source process is set as the initial state in the synthesis process. This corresponds to the state (Q0, R0) at the left end in FIG. This state is placed at the head of the state queue in Step 6-2, taken out in the next Step 6-3, and set as (Qt, Rt) = (Q0, R0). Next, in Step 6-4, the transition other than the common event c from Q0 is a
The transition (a, ε) generates a new state (Q1, R0). Here, ε indicates that no event occurs, and for R0, it indicates that the original state R0 is maintained regardless of the occurrence of a. The event that causes the transition is a set of events as described above, and this is also regarded as a transition caused by the event a. Depending on the structure of the process, the set of events can be as deep as possible. This is the only transition other than the common event c from Q0, and this state is added to the queue. On the other hand, there is no transition other than the shared event c from the process R0. Next, Step 6
At 5, it is checked whether the transition by the shared event c is common to Q0 and R0, and there is a transition from R0, but no transition from Q0. Therefore, there is no state newly added in Step 6-6. Further, since the transition by (a, ε) has already been found, the state (Q0, R0) is not a deadlock state. Next, looking at the queue in Step 6-7, (Q1, R0) is at the head. Therefore, Step 6-4
Then, this (Q1, R0) is taken out of the queue and Step 6
-4, the transitions other than the shared event are state Q1, R
Since it is not 0, no transition occurs. Next, when Step 6-5 is executed, Q1 changes to the state Q0 due to the shared event c, and R
Since the state of 0 transitions to R1, the transition to the new state (Q0, R1) due to the event (c, c) is written in the state transition diagram, and (Q0, R1) is added to the state queue. Next, even if Step 6-6 is executed, (Q0, R1) is not in a deadlock state because a transition from (Q0, R1) has already been found. Next, when Step 6-7 is executed, there is a newly created state (Q0, R1) in the state queue. Then, in Step 6-3, the state (Q0, R1) is extracted. Next, in Step 6-4, when a transition other than the shared event from Q0 is found, a transition by a can be made. Therefore, the state (Q1, R1) generated by this event (a, ε) is not yet in the state transition diagram, and is added to the state queue. On the other hand, as a state transition other than the shared event from R1, there is a state transition system by b. Since the state (Q0, R0) generated by the state transition due to this event (ε, b) already exists in the state transition diagram, it is only necessary to write an arrow in the state transition diagram. In Step 6-5, no transition due to the shared event is found. No deadlock occurs because the transition destination has already been found.

【0006】この段階でStep6−7の判定を行うと、待
ち行列には新たにできた状態(Q1,R1)があるので
空でない。そこで、Step6−3で状態(Q1,R1)が
取り出される。次にStep6−4でQ1からの共有事象以
外による遷移はないが、R1からの非共有事象bによる
遷移がある。ただし、(ε,b)によって生成する状態
(Q1,R0)はすでに状態遷移図中にあるので、矢印
をつけるだけでよい。次にStep6−5で共有事象による
遷移はない。Step6−6で状態(Q1,R1)からの遷
移はすでに見つかっているのでデッドロック状態ではな
い。次にStep6−7で、状態の待ち行列は空なので合成
プロセスの生成は終了する。
At this stage, if the determination in Step 6-7 is made, the queue is not empty because there is a newly created state (Q1, R1). Then, the state (Q1, R1) is extracted in Step 6-3. Next, in Step 6-4, there is no transition other than the shared event from Q1, but there is a transition due to the non-shared event b from R1. However, since the state (Q1, R0) generated by (ε, b) is already in the state transition diagram, it is only necessary to attach an arrow. Next, in Step 6-5, there is no transition due to the shared event. Since the transition from the state (Q1, R1) has already been found in Step 6-6, it is not a deadlock state. Next, in Step 6-7, since the state queue is empty, the generation of the synthesis process ends.

【0007】同様にして、プロセスPとプロセスQ
[{c}]Rのa,bを共有事象とする合成プロセスの
状態遷移図を作成した結果が図9である。これで、図4
のStep3−4の対象となるプロセスの状態遷移図が完成
した。状態遷移図の中で、*印の着いた状態(P6,
(Q1,R1))は、次の状態に遷移することのできない
デッドロック状態である。次にStep3−5で、状態遷移
図中にデッドロック状態があるかどうかを判断する。こ
の場合は、状態遷移図中にデッドロック状態があるので
デッドロックありと判定される。
Similarly, process P and process Q
[{C}] FIG. 9 shows the result of creating a state transition diagram of the synthesis process in which a and b of R are shared events. Now, FIG.
The state transition diagram of the process that is the target of Step 3-4 is completed. In the state transition diagram, the state marked with * (P6,
(Q1, R1)) is a deadlock state in which transition to the next state is not possible. Next, in Step 3-5, it is determined whether or not there is a deadlock state in the state transition diagram. In this case, since there is a deadlock state in the state transition diagram, it is determined that deadlock exists.

【0008】[0008]

【発明が解決しようとする課題】従来技術では、生じる
事象の数が多くなるにつれ、最終的にできる状態遷移図
中の状態数が指数関数的に増大し、その結果、デッドロ
ックの判定のために状態遷移図を作成する際に要する計
算量も指数関数的に増大する。このため、大規模な問題
でデッドロックの判定を行うのは困難であった。また、
検証結果を人間が確認する際に、状態遷移図を見ても状
態数が多すぎて確認することが困難であるという問題が
あった。このような問題があるため、従来技術では仕様
部品を、あらかじめ入出力変数を指定し、他の変数は内
部変数として仕様に現われないようにし、部品の動作自
体は、入出力変数のタイミングや値の関係として、より
抽象的な記述をする必要があった。これにより、部品を
組み合わせる時の検証における計算量を減らしていた。
例えば、数1で、入出力変数をa,bだけと限定する
と、抽象化された仕様部品は、内部変数dを無視したプ
ロセスP′=a−>b−>a−>a−>a−>P′と記
述され、これを用いると検証はより簡単なものになる。
しかし、この従来手法では、仕様部品が利用できる範囲
が限定的なものになる。
In the prior art, as the number of events that occur increases, the number of states in the finally formed state transition diagram exponentially increases. The amount of calculation required to create a state transition diagram also increases exponentially. For this reason, it was difficult to determine deadlock due to a large-scale problem. Also,
When a person confirms the verification result, there is a problem that it is difficult to confirm the state transition diagram because the number of states is too large. Due to such a problem, in the conventional technology, specification parts are specified in advance as input / output variables, other variables are prevented from appearing in the specification as internal variables, and the operation of the parts itself is based on the timing and value of the input / output variables. As a result, it was necessary to make a more abstract description. As a result, the amount of calculation in verification when combining components is reduced.
For example, if the input / output variables are limited to only a and b in Equation 1, the abstracted specification part is a process P '= a->b->a->a-> a- > P ', which makes verification simpler.
However, in this conventional method, the range in which the specification component can be used is limited.

【0009】本発明の目的は、仕様部品の動作を入出力
変数と内部変数の区別なく記述することにより、仕様部
品の品揃えを容易化するとともに、デッドロックに要す
る計算量を減らし、検証結果を人間が確認することを容
易にすることにある。
SUMMARY OF THE INVENTION An object of the present invention is to describe the operation of specification parts without distinguishing between input / output variables and internal variables, thereby facilitating the selection of specification parts, reducing the amount of calculation required for deadlock, and verifying verification results. Is to make it easier for a human to confirm.

【0010】[0010]

【課題を解決するための手段】上記目的は、プロセスの
構造図を作成する際に非共有事象を直前に発生する共有
事象によってグループ化する処理手段、およびグループ
化された事象を一つの共有事象とみなして状態遷移図の
作成およびデッドロックのチェックを行う処理手段によ
り達成される。
SUMMARY OF THE INVENTION The object of the present invention is to provide a processing means for grouping non-shared events by a shared event that occurs immediately before creating a process structural diagram, and to group the grouped events into one shared event. This is achieved by processing means for creating a state transition diagram and checking for deadlock.

【0011】[0011]

【発明の実施の形態】以下、図1を用いて本発明の一実
施例を説明する。プロセスP[{a,b}](Q
[{c}]R)のデッドロックを判定する場合を例にと
って説明する。図1はプロセスのデットロックを本発明
の手順によって判定する手順を示しており、従来技術に
よる方法を示した図4と対応するものである。本手法に
よる検証を前提としているため、用意する仕様部品は数
1〜数3にあるように入出力変数と内部変数をあらかじ
め区別なくプロセス代数CSPにより記述しておくこと
ができる。Step1−1では、デッドロックの解析の対象
となる式(今の場合P[{a,b}](Q[{c}]
R))が入力される。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below with reference to FIG. Process P [{a, b}] (Q
[{C}] A case where the deadlock of R) is determined will be described as an example. FIG. 1 shows a procedure for determining the deadlock of a process according to the procedure of the present invention, and corresponds to FIG. 4 showing a method according to the prior art. Since the verification by this method is premised, the specification parts to be prepared can be described in advance by the process algebra CSP without distinction between the input / output variables and the internal variables as shown in Expressions 1 to 3. In Step 1-1, the expression to be analyzed for the deadlock (in this case, P [{a, b}] (Q [{c}]
R)) is input.

【0012】次にStep1−2で入力したプロセスの式を
構文解析し、共有事象に事象をグループ化しながら各プ
ロセスに分解する。図10はこの構文解析の結果生成し
た構文木を示す。この手順は以下のようになる。まず、
共有事象を格納するリストLを空リストに初期化する。
次に、もとのプロセスをプロセスPとプロセス(Q
[{c}]R)に分解する。その際、共有事象“a”と
“b”を共有事象のリストLに追加する。その結果、L
=[“a”,“b”]となる。次に分解された各プロセ
スが、核プロセスかどうか判定する。プロセスPは、核
プロセスであるので、共有事象によりグループ化したプ
ロセスに書き直す。その結果、プロセスPはP=a−>
b−>a−>d−>Pから、P=a(P1)−>b(P1)
−>a(P2)−>Pに書き変えられる。ここで、a(P
1)共有事象aのプロセスPにおける1番めの事象グル
ープであることを示す。a(P1)には事象のリスト
[a]を対応づける。同様にb(P1)は共有事象bのプ
ロセスPにおける2番めの事象グループであることを示
し、事象のリスト[b]を対応づける。a(P2)は共有
事象aのプロセスPにおける2番めの事象グループであ
ることを示し、a(P2)には事象のリスト[a,d]を
対応づける。一方、プロセスQ[{c}]Rは核プロセ
スでないので、さらに分解を続ける。まず、この合成プ
ロセスの共有事象“c”を共有事象のリストLに追加し
その結果L=[“c”,“a”,“b”]となる。分解
されたプロセスQとRは核プロセスなので、Pの場合と
同様の方法で書き直される。その結果、Q=a(Q1)−
>c(Q1)−>Q,R=c(R1)−>b(R2)−>Rと
なる。次に、Step1−3で、プロセスの構文木中の核プ
ロセスの状態遷移図を作る。この方法は従来例と同じ
で、図11のようになる。次に図1のStep1−4でもと
のプロセスの状態遷移図を図10のプロセス構造図の核
プロセスの状態遷移図からボトムアップに合成していく
ことにより作成する。その際、同じ共有事象のグループ
に属する事象は、同じ事象と見なす。最初にプロセスQ
の核プロセスとプロセスRの核プロセスから合成プロセ
スQ[{c}]Rを作成する。この合成方法も従来方法
と同じであるが、ただし、変数c(R1)と変数c(Q1)
を同一の共有事象と見なすところが異なる。その結果、
状態遷移図は図12のようになる。同様にして、プロセ
スPの状態遷移図とプロセスQ[{c}]Rの状態遷移
図からプロセスP[{a,b}]の状態遷移図を作成す
ると図13のようになり、状態(P4′,(Q1′,R
1′))に到達するとデッドロックが発生することがわか
る。この状態はもとの核プロセスでの対応を考えれば、
従来手法による合成プロセスのデッドロック状態(P
6,(Q1,R1))に対応する。また、変数の書き換え
のオーバーヘッドを無視すれば、デッドロックの判定処
理に要する計算量は、状態遷移図の状態と遷移を示す矢
印の数にほぼ比例すると考えられる。従来手法の状態遷
移図では、状態数9,矢印の数は、初期状態への矢印も
含めると、9となる。一方、本発明による状態遷移図1
3では、状態数7,矢印の数も7で計算量が減っている
ことがわかる。また、デッドロックの発生をユーザに説
明するための図は、従来手法では図9,本発明では図1
3のようになる。
Next, the process expression inputted in Step 1-2 is parsed, and the processes are decomposed into processes while grouping the events into shared events. FIG. 10 shows a syntax tree generated as a result of this syntax analysis. The procedure is as follows. First,
The list L storing the shared events is initialized to an empty list.
Next, the original process is called process P and process (Q
[{C}] R). At that time, the shared events “a” and “b” are added to the shared event list L. As a result, L
= [“A”, “b”]. Next, it is determined whether each decomposed process is a nuclear process. Since the process P is a nuclear process, it is rewritten as a process grouped by a shared event. As a result, the process P becomes P = a->
From b->a->d-> P, P = a (P1)-> b (P1)
−> A (P2) → P. Here, a (P
1) Indicates that this is the first event group in the process P of the shared event a. The event list [a] is associated with a (P1). Similarly, b (P1) indicates the second event group in the process P of the shared event b, and associates the event list [b]. a (P2) indicates the second event group in the process P of the shared event a, and a (P2) is associated with the event list [a, d]. On the other hand, since the process Q [{c}] R is not a nuclear process, it is further decomposed. First, the shared event “c” of this synthesis process is added to the list L of shared events, and as a result L = [“c”, “a”, “b”]. Since the decomposed processes Q and R are core processes, they are rewritten in the same way as for P. As a result, Q = a (Q1) −
> C (Q1)-> Q, R = c (R1)-> b (R2)-> R. Next, in Step 1-3, a state transition diagram of the core process in the syntax tree of the process is created. This method is the same as the conventional example, and is as shown in FIG. Next, the state transition diagram of the original process is created by combining the state transition diagram of the core process in the process structure diagram of FIG. At this time, events belonging to the same shared event group are regarded as the same event. First process Q
A synthesis process Q [{c}] R is created from the core process of process R and the core process of process R. This synthesizing method is the same as the conventional method, except that the variable c (R1) and the variable c (Q1)
Are regarded as the same shared event. as a result,
The state transition diagram is as shown in FIG. Similarly, a state transition diagram of the process P [{a, b}] is created from the state transition diagram of the process P and the state transition diagram of the process Q [{c}] R, as shown in FIG. ', (Q1', R
It can be seen that deadlock occurs when 1 ')) is reached. Considering the situation in the original nuclear process,
Deadlock state (P
6, (Q1, R1)). If the overhead of rewriting variables is ignored, the amount of calculation required for the deadlock determination process is considered to be substantially proportional to the number of arrows indicating states and transitions in the state transition diagram. In the state transition diagram of the conventional method, the number of states is 9 and the number of arrows is 9 including the arrow to the initial state. On the other hand, the state transition diagram 1 according to the present invention
In the case of 3, it can be seen that the number of states is 7 and the number of arrows is also 7, and the calculation amount is reduced. FIG. 9 is a diagram for explaining the occurrence of deadlock to a user according to the conventional method, and FIG.
It looks like 3.

【0013】これらの説明は、図14に示した装置構成
によって、検証を行うためのCPUとメモリの乗った演
算処理装置と演算処理装置上にプログラムされた表示の
ための表示プログラムにより、演算処理装置に接続した
表示装置により表示することができ、状態遷移図の簡単
な本発明の表示の方が理解が容易である。
[0013] These descriptions are based on an arithmetic processing unit having a CPU and a memory for verification and a display program for display programmed on the arithmetic processing unit by the apparatus configuration shown in FIG. It can be displayed by a display device connected to the device, and the display of the present invention with a simple state transition diagram is easier to understand.

【0014】[0014]

【発明の効果】本発明によれば、デッドロックの検証に
要する計算量を減らし、また、検証結果をユーザに分か
りやすく表示することができる。また、ユーザは品揃え
する部品を入出力変数と内部変数の区別なく記述した形
で用意することができる。
According to the present invention, it is possible to reduce the amount of calculation required for verifying a deadlock and to display the verification result in an easy-to-understand manner for a user. Further, the user can prepare the parts to be stocked in a form in which the input / output variables and the internal variables are described without distinction.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明によるデッドロックのフローチャート。FIG. 1 is a flowchart of a deadlock according to the present invention.

【図2】運転支援・監視システムのブロック図。FIG. 2 is a block diagram of a driving support / monitoring system.

【図3】プロセスの名称と処理内容との対応関係の説明
図。
FIG. 3 is an explanatory diagram of a correspondence between a process name and processing contents.

【図4】デッドロックを判定するための概略処理のフロ
ーチャート。
FIG. 4 is a flowchart of a schematic process for determining a deadlock.

【図5】プロセスの構造の説明図。FIG. 5 is an explanatory diagram of a structure of a process.

【図6】核プロセスP,Q,Rの状態遷移の説明図。FIG. 6 is an explanatory diagram of state transitions of nuclear processes P, Q, and R.

【図7】合成プロセスの状態遷移図作成のフローチャー
ト。
FIG. 7 is a flowchart for creating a state transition diagram of the synthesis process.

【図8】合成プロセスQ[{c}]Rの状態遷移の説明
図。
FIG. 8 is an explanatory diagram of a state transition of the synthesis process Q [{c}] R.

【図9】合成プロセスP[{a,b}](Q[{c}]
R)の状態遷移の説明図。
FIG. 9 shows a synthesis process P [{a, b}] (Q [{c}]
Explanatory drawing of the state transition of R).

【図10】本発明によるプロセス構造の説明図。FIG. 10 is an explanatory diagram of a process structure according to the present invention.

【図11】本発明による核プロセスP,Q,Rの状態遷
移の説明図。
FIG. 11 is an explanatory diagram of a state transition of the nuclear processes P, Q, and R according to the present invention.

【図12】本発明による合成プロセスQ[{c}]Rの
状態遷移の説明図。
FIG. 12 is an explanatory diagram of a state transition of the synthesis process Q [{c}] R according to the present invention.

【図13】本発明の一実施例方法を示すタイミングチャ
ート。
FIG. 13 is a timing chart showing a method according to an embodiment of the present invention.

【図14】運転・支援システムの装置の説明図。FIG. 14 is an explanatory diagram of a device of a driving / support system.

【符号の説明】[Explanation of symbols]

Step1−1…デッドロック解析対象プロセスの入力、St
ep1−3…核プロセスの状態遷移図作成。
Step1-1: Input of deadlock analysis target process, St
ep1-3: Create a state transition diagram of the nuclear process.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】複数システムが並行動作する場合に発生し
うる、システムが相互に信号待ちの状態になって動作し
なくなるデッドロック現象の発生の可能性の有無を検証
する仕様検証システムにおいて、上記複数システムが動
作するプロセスで発生する事象を上記複数システムが共
有する共通処理・動作である共有事象に基づいて、シス
テムの動作系列で直前に発生する共有事象にまとめてグ
ループ化し、グループ化された事象をそのグループを代
表する共有事象によって名付けられた一つの事象とみな
してデッドロックの有無の判定を行うことを特徴とする
仕様検証方式。
1. A specification verification system for verifying whether or not a deadlock phenomenon that may occur when a plurality of systems operate in parallel and the systems are in a signal waiting state and do not operate. Based on the shared event, which is a common process / operation shared by the multiple systems, the events occurring in the processes in which the multiple systems operate are grouped together into a shared event that occurred immediately before in the operation sequence of the system. A specification verification method, wherein an event is regarded as one event named by a shared event representing a group, and a determination is made as to whether or not there is a deadlock.
【請求項2】複数システムが並行動作する場合に発生し
うる、システムが相互に信号待ちの状態になって動作し
なくなるデッドロック現象の発生の可能性の有無を検証
する仕様検証システムにおいて、上記複数システムが動
作するプロセスで発生する事象を上記複数システムが共
有する共通処理・動作である共有事象に基づいて、シス
テムの動作系列で直前に発生する共有事象にまとめてグ
ループ化し、グループ化された事象をそのグループを代
表する共有事象によって名付けられた一つの事象とみな
して、検証結果を説明するための状態遷移図として、状
態遷移図における遷移を、事象のグループを代表する共
有事象によりラベル付けしたものを用いることを特徴と
する仕様検証方式。
2. A specification verification system for verifying the possibility of a deadlock phenomenon which may occur when a plurality of systems operate in parallel and which cannot operate due to a signal waiting state between the systems. Based on the shared event, which is a common process / operation shared by the multiple systems, the events occurring in the processes in which the multiple systems operate are grouped together into a shared event that occurred immediately before in the operation sequence of the system. Assuming that an event is a single event named by a shared event that represents the group, label the transitions in the state transition diagram with a shared event that represents the group of events as a state transition diagram to explain the verification results A specification verification method characterized by using the following.
【請求項3】あらかじめ用意された仕様部品を組み合わ
せて、複数のシステムが並行動作するシステムを構築す
る設計支援システムにおいて、用意する部品の挙動を入
出力変数と内部変数の区別なく記述することができ、デ
ッドロックの検証を行うことを特徴とする仕様検証方
式。
3. In a design support system for constructing a system in which a plurality of systems operate in parallel by combining specification parts prepared in advance, the behavior of the prepared parts can be described without distinction between input / output variables and internal variables. A specification verification method that can perform deadlock verification.
【請求項4】あらかじめ用意された仕様部品を組み合わ
せて、複数のシステムが並行動作するシステムを構築す
る設計支援システムにおいて、用意する部品の挙動を入
出力変数と内部変数の区別なく記述し、デッドロックの
検証を行うことを特徴とする仕様検証方式。
4. In a design support system for constructing a system in which a plurality of systems operate in parallel by combining previously prepared specification parts, the behavior of the prepared parts is described without distinction between input / output variables and internal variables, A specification verification method characterized by performing lock verification.
JP9030061A 1997-02-14 1997-02-14 Specification verification system Pending JPH10228387A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9030061A JPH10228387A (en) 1997-02-14 1997-02-14 Specification verification system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9030061A JPH10228387A (en) 1997-02-14 1997-02-14 Specification verification system

Publications (1)

Publication Number Publication Date
JPH10228387A true JPH10228387A (en) 1998-08-25

Family

ID=12293311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9030061A Pending JPH10228387A (en) 1997-02-14 1997-02-14 Specification verification system

Country Status (1)

Country Link
JP (1) JPH10228387A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519965B2 (en) 2003-10-17 2009-04-14 Fujitsu Limited Computer-readable medium recorded with a deadlock pre-detection program
US8103170B2 (en) 2008-03-10 2012-01-24 The Doshisha Method for optical time division multiplex and apparatus thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519965B2 (en) 2003-10-17 2009-04-14 Fujitsu Limited Computer-readable medium recorded with a deadlock pre-detection program
US8103170B2 (en) 2008-03-10 2012-01-24 The Doshisha Method for optical time division multiplex and apparatus thereof

Similar Documents

Publication Publication Date Title
TWI498757B (en) Specifying a parser using a properties file
EP3005089B1 (en) Resolution of textual code in a graphical hierarchical model of a technical computing environment
US7191395B2 (en) Method and system for stylesheet-centric editing
US6941546B2 (en) Method and apparatus for testing a software component using an abstraction matrix
JP3195839B2 (en) How to monitor the operation of power plant facilities
US5402524A (en) Case-based knowledge source for artificial intelligence software shell
US8201143B2 (en) Dynamic mating of a modified user interface with pre-modified user interface code library
JPS61103247A (en) Translation program generation system
EP2972801A2 (en) Executable guidance experiences based on implicitly generated guidance models
Pap et al. Checking general safety criteria on UML statecharts
US11593076B2 (en) Method for merging architecture data
US8321845B2 (en) Extensible markup language (XML) path (XPATH) debugging framework
US20210096830A1 (en) Incremental code generation method
Pereira et al. An IOPT-net state-space generator tool
JPH10228387A (en) Specification verification system
Ge et al. RT-MOBS: A compositional observer semantics of time Petri net for real-time property specification language based on μ-calculus
Guerrouat et al. A component-based specification approach for embedded systems using FDTs
US5628012A (en) Method and apparatus for querying a database containing disjunctive information
Dan et al. Towards a formal behavioral semantics for UML interactions
L'Her et al. Proving sequential function chart programs using timed automata
Riddle A method for the description and analysis of complex software systems
CN114357763A (en) Double-flow-graph-based Saface _ SysML error model analysis method
RU2364930C2 (en) Generation method of knowledgebases for systems of verification of distributed computer complexes software and device for its implementation
CN107818501A (en) Calculating method and device
US20020143748A1 (en) Method and system for providing a generic scalar function