JPH0883195A - Parallel program verification device - Google Patents
Parallel program verification deviceInfo
- Publication number
- JPH0883195A JPH0883195A JP6220165A JP22016594A JPH0883195A JP H0883195 A JPH0883195 A JP H0883195A JP 6220165 A JP6220165 A JP 6220165A JP 22016594 A JP22016594 A JP 22016594A JP H0883195 A JPH0883195 A JP H0883195A
- Authority
- JP
- Japan
- Prior art keywords
- transition
- auxiliary
- global state
- state transition
- graph
- 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.)
- Withdrawn
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、例えば分散処理システ
ムや並行処理システム、単一プロセッサ上のマルチタス
クシステムにより用いられる並行プログラムの正しさを
検証する並行プログラム検証装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel program verification device for verifying the correctness of a parallel program used by, for example, a distributed processing system, a parallel processing system, or a multitasking system on a single processor.
【0002】[0002]
【従来の技術】並行プログラムをグローバルな状態遷移
グラフとして表現して解析しようというアプローチ(以
下、「グローバル状態解析」と呼ぶ。)は、非常に有効
であり、シーケンス制御システムの検証、通信プロトコ
ルの検証などに適用されている。具体的には、ある状態
への到達可能性やある動作の活性(ある動作が定常的に
生起できること)などの検証項目が満たされるか否かを
グローバル状態遷移グラフの全ての状態をトレースする
ことにより判定する。しかし、グローバル状態遷移グラ
フ解析の最大の問題点は、グローバル状態遷移グラフの
状態数が組合せにより爆発的に多くなってしまう点であ
る。2. Description of the Related Art The approach of expressing a parallel program as a global state transition graph and analyzing it (hereinafter referred to as "global state analysis") is very effective and is effective for verification of sequence control systems and communication protocols. It is applied for verification. Specifically, trace all states in the global state transition graph to see if verification items such as reachability to a certain state and activity of a certain action (that a certain action can occur steadily) are satisfied. Determined by However, the biggest problem of global state transition graph analysis is that the number of states in the global state transition graph increases explosively due to the combination.
【0003】以下では具体的な例を用いて従来のグロー
バル状態解析の技術を説明する。A conventional global state analysis technique will be described below using a specific example.
【0004】並行プログラムでは、いくつかのプロセス
(タスク)が同期通信を行いながら並行に動く。例え
ば、図9に示すように、通信路ch1 と通信路ch2 とで同
期通信を行ないながら並行に動くプロセスp1とプロセス
p2とからなる並行プログラムは、図10のように表され
る。図10において、「%」より左側はプログラムを表
し、「%」より右側の文章はこれらプログラムのコメン
トを表す。In a parallel program, several processes (tasks) move in parallel while performing synchronous communication. For example, as shown in FIG. 9, a process p1 and a process that move in parallel while performing synchronous communication on the communication channel ch1 and the communication channel ch2.
A parallel program consisting of p2 is represented as shown in FIG. In FIG. 10, the left side of “%” represents a program, and the text on the right side of “%” represents a comment of these programs.
【0005】なお、プロセス間の通信には、Ada で用い
られている同期式(send処理とreceive 処理が同時に行
われる)の通信とUNIXのパイプなどに代表される非
同期式(send処理はreceive 処理の間に時間的間隔(遅
れ)があってもよい)の通信とがあるが、ここでは同期
式通信を想定している。For communication between processes, synchronous communication used in Ada (send processing and receive processing are performed simultaneously) and asynchronous communication represented by UNIX pipes (send processing is receive processing) are used. There may be a time interval (delay) between them, but here, synchronous communication is assumed.
【0006】ところで、並行プログラムの各プロセス
は、状態遷移グラフでモデル化することができる。例え
ば、図10の並行プログラムの各プロセスは、図11に
示す状態遷移グラフで表現できる。すなわち、並行プロ
グラムの各プロセスのローカルな挙動(各プロセスの個
々の挙動)は、状態遷移グラフでモデル化することがで
きる。By the way, each process of the parallel program can be modeled by a state transition graph. For example, each process of the parallel program shown in FIG. 10 can be represented by the state transition graph shown in FIG. That is, the local behavior of each process of the concurrent program (individual behavior of each process) can be modeled by a state transition graph.
【0007】しかし、プログラムを解析/検証するため
には、並行プログラム全体としてどのように動くか、す
なわちグローバルな挙動を調べなければならない。そこ
で、グローバルな挙動をグローバル状態遷移グラフで表
現する方法が一般によく使用される。However, in order to analyze / verify a program, it is necessary to examine how the concurrent program operates as a whole, that is, the global behavior. Therefore, a method of expressing global behavior by a global state transition graph is generally used.
【0008】例えば、図10または図11に示した並行
プログラムのグローバル状態遷移グラフは、図12のよ
うになる。グローバル状態遷移グラフの各状態は、ロー
カルな状態の組で表される。例えば、グローバル状態遷
移グラフの初期状態(s11,s21)は、プロセスp1の状態は
s11 で、プロセスp2の状態はs21 であることを示してい
る。グローバル状態遷移グラフの各遷移は、ローカルな
遷移の組合せである。たとえば、状態(s11,s21)で実行
されるのは「処理11」のみであり、「処理11」が終った
時点での状態はプロセスp1だけが変化した状態(s12,s2
1)である。状態(s12,s21)においては、通信路ch1 によ
るプロセス間の同期通信が行なわれ、プロセスp1、p2が
同時に遷移して、状態(s13,s22)になる。状態(s13,s2
2)においては、プロセスp1の「処理12」が実行されるか
もしれないし、プロセスp2の「条件21」、「条件22」の
判定処理が行なわれるかもしれない。このように、挙動
が非決定的な場合は、起こりうる全ての状態(s14,s2
2),(s13,s23),(s13,s24)への遷移を分岐として表す。以
下同様に遷移が行なわれる。For example, the global state transition graph of the concurrent program shown in FIG. 10 or 11 is as shown in FIG. Each state of the global state transition graph is represented by a set of local states. For example, the initial state (s11, s21) of the global state transition graph is
At s11, it indicates that the state of process p2 is s21. Each transition in the global state transition graph is a combination of local transitions. For example, only "process 11" is executed in the state (s11, s21), and the state at the end of "process 11" is the state (s12, s2) where only process p1 has changed.
1). In the states (s12, s21), synchronous communication between processes is performed by the communication channel ch1, and the processes p1 and p2 simultaneously transit to the states (s13, s22). State (s13, s2
In 2), the "process 12" of the process p1 may be executed, and the determination process of the "condition 21" or "condition 22" of the process p2 may be performed. Thus, when the behavior is non-deterministic, all possible states (s14, s2
The transitions to 2), (s13, s23), and (s13, s24) are represented as branches. The transition is similarly performed thereafter.
【0009】このグローバル状態遷移グラフにより初期
状態から到達可能な全ての状態を調べることができる。
具体的には、デッドロック状態や危険状態が初期状態か
ら到達可能かどうかを調べることができる。これをグロ
ーバル状態解析と呼んでいる。 このようなグローバル
状態解析は、並行プログラムが正しく動くかを検証する
ための非常に有効な方法である。しかしながら、並行プ
ログラムが比較的大規模になった場合、グローバル状態
遷移グラフの状態数が爆発的に多くなり、グローバル状
態解析が現実的な計算時間で終らない事態が発生する。
原理的には、各プロセスの状態数の累乗がグローバル状
態遷移グラフの状態数になり得る。例えば、状態数10個
のプロセスが10個あれば、最大 100億個以上のグローバ
ル状態遷移グラフができる可能性がある。これは、状態
爆発問題と呼ばれている。With this global state transition graph, all states reachable from the initial state can be examined.
Specifically, it is possible to check whether a deadlock state or a dangerous state can be reached from the initial state. This is called global state analysis. Such global state analysis is a very effective method for verifying whether a concurrent program works correctly. However, when the concurrent program becomes relatively large in scale, the number of states in the global state transition graph explosively increases, and a situation occurs in which the global state analysis does not end in a realistic calculation time.
In principle, the power of the number of states of each process can be the number of states of the global state transition graph. For example, if there are 10 processes with 10 states, there is a possibility that a maximum of 10 billion global state transition graphs can be created. This is called the state explosion problem.
【0010】しかし、実際には、与えられた検証項目の
検証には、必ずしもグローバルな状態遷移グラフの全て
の状態が必要なわけではない。そこで、検証に無関係な
状態の生成を枝刈りする技術が有効である。However, in practice, verification of a given verification item does not necessarily require all the states of the global state transition graph. Therefore, the technique of pruning the generation of the state unrelated to the verification is effective.
【0011】既に、検証に無関係な状態の生成を枝刈り
することによって状態爆発を抑制する技術として、例え
ば文献「A.Valmari,Stubborn Sets for Re-duced Sta
te Space Generation,Proc.19th International Confer
ence on Application and Theory of Petri Nets(198
9)」等においていくつかの提案がされている。そして、
このような技術で生成される縮小グローバル状態遷移グ
ラフ(Reduced State Space とも呼ぶこともある)は、
通常のグローバル状態遷移グラフより小さいが、検証に
必要な情報は残っていることが要求される。すなわち、
通常のグローバル状態遷移グラフから、選択装置により
検証に不要な部分を枝刈りしたものが、縮小グローバル
状態遷移グラフである。As a technique for suppressing the state explosion by pruning the generation of the state unrelated to the verification, for example, the document “A. Valmari, Stubborn Sets for Re-duced Sta.
te Space Generation, Proc. 19th International Confer
ence on Application and Theory of Petri Nets (198
9) ”and other proposals have been made. And
The reduced global state transition graph (also called Reduced State Space) generated by such a technique is
It is smaller than the normal global state transition graph, but it is required that the information necessary for verification remains. That is,
A reduced global state transition graph is obtained by pruning a portion unnecessary for verification by a selection device from a normal global state transition graph.
【0012】そのため、上記提案の装置では、図13に
示すように、選択装置25´が並行プログラム23の情
報を基に、検証に無関係な遷移を枝刈りし、必要な遷移
だけを生成している。なお、図13において他の構成の
動作は後述する図6のものと同様である。Therefore, in the proposed device, as shown in FIG. 13, the selection device 25 'prunes transitions unrelated to verification based on the information of the parallel program 23, and generates only necessary transitions. There is. Note that the operation of other configurations in FIG. 13 is similar to that of FIG. 6 described later.
【0013】しかし、図13に示す従来の装置では、枝
刈りをする際に状態ごとに並行プログラムの情報を解析
する必要があるため、状態の枝刈りの処理に多大な時間
を要するという問題がある。However, in the conventional apparatus shown in FIG. 13, since it is necessary to analyze the information of the concurrent program for each state when pruning, there is a problem that it takes a lot of time to prun the state. is there.
【0014】[0014]
【発明が解決しようとする課題】本発明は、このような
事情に基づきなされたもので、縮小グローバル状態遷移
グラフを生成する際の状態の枝刈りの処理を短時間で行
なうことができる並行プログラム検証装置を提供するこ
とを目的としている。SUMMARY OF THE INVENTION The present invention has been made under such circumstances, and is a parallel program capable of pruning a state in a short time when generating a reduced global state transition graph. It is intended to provide a verification device.
【0015】より具体的には、本発明の目的は、並行プ
ログラムの情報の解析をすることなく枝刈りの処理を行
なうことができる並行プログラム検証装置を提供するこ
とにある。More specifically, an object of the present invention is to provide a parallel program verification device capable of performing pruning processing without analyzing information of the parallel program.
【0016】[0016]
【課題を解決するための手段】かかる課題を解決するた
め、本発明は、状態が遷移する2以上のプロセスからな
り、各プロセスが他のプロセスと同期をとる遷移により
並行に動くようにされた並行プログラムを検証する並行
プログラム検証装置において、各プロセスの同期をとる
遷移に対して、当該遷移から他方のプロセスの遷移に優
先権を譲る補助遷移を付加する補助遷移付加手段と、分
岐が生じた場合に予め定められた優先度に基づき選択さ
れる1つのプロセスの遷移だけを選択するようにして、
前記補助遷移付加手段により補助遷移が付加された各プ
ロセスから縮小グローバル状態遷移グラフを生成する縮
小グローバル状態遷移グラフ生成手段と、この縮小グロ
ーバル状態遷移グラフ生成手段により生成された縮小グ
ローバル状態遷移グラフから補助遷移を除去する補助遷
移除去手段と、この補助遷移除去手段により補助遷移が
除去された縮小グローバル状態遷移グラフを検証するグ
ローバル状態遷移グラフ検証手段とを具備する。In order to solve the above problems, the present invention comprises two or more processes whose states transit, and each process is made to move in parallel by a transition in synchronization with another process. In a parallel program verifying device that verifies a concurrent program, a branch occurs with an auxiliary transition adding unit that adds an auxiliary transition that gives priority to the transition of the other process to the transition that synchronizes each process. In this case, only one process transition selected based on a predetermined priority is selected,
From a reduced global state transition graph generation means for generating a reduced global state transition graph from each process to which an auxiliary transition is added by the auxiliary transition addition means, and a reduced global state transition graph generated by this reduced global state transition graph generation means An auxiliary transition removing means for removing the auxiliary transition and a global state transition graph verification means for verifying the reduced global state transition graph from which the auxiliary transition is removed by the auxiliary transition removing means are provided.
【0017】[0017]
【作用】本発明では、縮小グローバル状態遷移グラフを
生成する前処理として各プロセスの同期をとる遷移に対
して当該遷移から他方のプロセスの遷移に優先権を譲る
補助遷移を付加し、後処理として縮小グローバル状態遷
移グラフから補助遷移を除去しているので、縮小グロー
バル状態遷移グラフを生成する際に並行プログラムの情
報の解析をすることなく枝刈りの処理を行なうことがで
き、枝刈りの処理を短時間で行なうことができる。In the present invention, as a pre-process for generating a reduced global state transition graph, an auxiliary transition that gives priority to the transition that synchronizes each process is given to the transition of the other process, and the post-process is performed. Since auxiliary transitions are removed from the reduced global state transition graph, the pruning process can be performed without analyzing the information of the concurrent program when the reduced global state transition graph is generated. It can be done in a short time.
【0018】[0018]
【実施例】以下、本発明の実施例の詳細を図面に基づき
説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The embodiments of the present invention will be described below in detail with reference to the drawings.
【0019】図1は本発明の一実施例に係る並行プログ
ラム検証装置の構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of a parallel program verification apparatus according to an embodiment of the present invention.
【0020】同図において、1は並行プログラムを構成
する各プロセスの遷移のうち同期を行う遷移に対して前
処理として補助遷移を付加する補助遷移付加装置であ
る。ここで、補助遷移とは、同期を行う遷移が実行され
るのを明示的に「待つ」ためのものである。また、2は
補助遷移が付加されたプロセスからこの補助遷移を利用
して縮小グローバル状態遷移グラフを生成する縮小グロ
ーバル状態遷移グラフ生成装置、3は生成された縮小グ
ローバル状態遷移グラフから後処理として補助遷移を除
去する補助遷移除去装置、4は補助遷移が除去された縮
小グローバル状態遷移グラフの正しさを検証するグロー
バル状態遷移グラフ検証装置である。In FIG. 1, reference numeral 1 denotes an auxiliary transition adding device for adding an auxiliary transition as a preprocess to a transition which is synchronized among the transitions of each process constituting a parallel program. Here, the auxiliary transition is for explicitly "waiting" for execution of the transition for synchronization. Further, 2 is a reduced global state transition graph generation device that generates a reduced global state transition graph by using this auxiliary transition from a process to which an auxiliary transition is added, and 3 is a post-processing assistance from the generated reduced global state transition graph. Auxiliary transition removal devices 4 for removing transitions are global state transition graph verification devices for verifying the correctness of the reduced global state transition graph from which auxiliary transitions have been removed.
【0021】図2に、このように構成された並行プログ
ラム検証装置によって検証される並行プログラムの各プ
ロセスの一例を示す。FIG. 2 shows an example of each process of the parallel program which is verified by the parallel program verifying device thus constructed.
【0022】同図に示す並行プログラムの各プロセスP
1、P2は、ラベル付きの状態遷移グラフで表される。
各ラベルは、遷移名を表している。ここで、アルファベ
ットのラベルの遷移(a,b,c,d,k,l,m)は、プロセスの内
部遷移を表し、ギリシャ文字のラベル(α、β、γ)
は、例えばsendとreceive というように他のプロセスと
同期をとる外部遷移を表している。同じ名前の外部遷移
は、同期をとって同時に遷移が起こらなければならな
い。特に、外部遷移γは、エラー状態を表す遷移である
とする。すなわち、外部遷移γが生起した場合は、並行
プログラムがエラー状態にあることを意味する。なお、
補助遷移のラベルは、「wait」と表すこととする。Each process P of the parallel program shown in FIG.
1 and P2 are represented by a labeled state transition graph.
Each label represents a transition name. Where the alphabetic label transitions (a, b, c, d, k, l, m) represent the internal transitions of the process and the Greek letter labels (α, β, γ).
Indicates external transitions that synchronize with other processes, such as send and receive. External transitions with the same name must occur synchronously and simultaneously. In particular, the external transition γ is assumed to be a transition representing an error state. That is, when the external transition γ occurs, it means that the concurrent program is in an error state. In addition,
The label of the auxiliary transition is expressed as "wait".
【0023】図3に、並行プログラムの各プロセスP
1、P2を表により表現した例を示す。 同図に示す方
法では、並行プログラムの各プロセスP1、P2を表す
状態遷移グラフを、(始点、終点、ラベル)の三つ組の
配列で表現している。本実施例では、同図に示す方法に
より各プロセスP1、P2を表現している。グローバル
状態遷移グラフについても同様に表現する。なお、本実
施例では、図3に示す表現方法を用いているが、他の方
法、例えば「情報の構造(平成6年3月 日本評論社発
行)」に記載されている表現方法等を用いてもよい。FIG. 3 shows each process P of the parallel program.
An example in which 1 and P2 are expressed by a table will be shown. In the method shown in the figure, the state transition graph representing each process P1 and P2 of the parallel program is represented by an array of three sets (start point, end point, label). In this embodiment, the processes P1 and P2 are represented by the method shown in FIG. The same applies to the global state transition graph. In this embodiment, the expression method shown in FIG. 3 is used, but other methods such as the expression method described in “Structure of information (issued by Nihon Hyoronsha in March 1994)” are used. May be.
【0024】図4は補助遷移付加装置1の動作を示すフ
ローチャートである。FIG. 4 is a flowchart showing the operation of the auxiliary transition adding device 1.
【0025】補助遷移付加装置1は、まず図3に示した
表の(始点、終点、ラベル)の組のうちまだ読み込んで
いない組があるかを判断し(ステップ401)、読み込
んでいない組があればそれを読み込む(ステップ40
2)。なお、読み込むべき組がなければ動作を終了す
る。The auxiliary transition adding device 1 first judges whether or not there is a set (start point, end point, label) in the table shown in FIG. 3 which has not been read yet (step 401). If there is, read it (step 40)
2). If there is no set to be read, the operation ends.
【0026】次に、補助遷移付加装置1は、読み込んだ
組のラベルがギリシャ文字であるかを判断する(ステッ
プ403)。ラベルがギリシャ文字である場合は、補助
遷移のラベルを有する組を生成し(ステップ404)、
この生成した組を元の組とともに書き込む(ステップ4
05)。補助遷移のラベルを有する組には、始点に読み
込んだ元の組の始点の値、終点に補助(ダミー)状態を
示す値、ラベルにwaitがそれぞれ記載される。なお、読
み込んだ元の組の始点には、補助(ダミー)状態を示す
値が記載される。例えば、読み込んだ組が(o,1,α)の
場合は、補助遷移のラベルを有する組として(0,1',wai
t)を、読み込んだ元の組として(1',1,α)を書き込
む。ここで、1'は補助遷移を追加するための補助(ダミ
ー)状態を示す。読み込んだ組のラベルがアルファベッ
トの場合は、そのまま書き込む(ステップ406)。以
上で補助遷移付加装置1のアルゴリズムを終了する。Next, the auxiliary transition adding device 1 determines whether the label of the read set is a Greek character (step 403). If the label is a Greek letter, then generate a tuple with the label of the auxiliary transition (step 404),
This generated set is written together with the original set (step 4).
05). In the set having the label of auxiliary transition, the value of the starting point of the original set read at the starting point, the value indicating the auxiliary (dummy) state at the end point, and the wait at the label are respectively described. A value indicating the auxiliary (dummy) state is described at the starting point of the read original set. For example, if the read pair is (o, 1, α), it is (0,1 ', wai) as the pair with the auxiliary transition label.
(1 ', 1, α) is written as the original set read from t). Here, 1'indicates an auxiliary (dummy) state for adding an auxiliary transition. If the read set of labels is alphabetic, it is written as it is (step 406). This completes the algorithm of the auxiliary transition adding device 1.
【0027】図2の各プロセスの外部遷移に関してラベ
ル名「wait」の補助遷移を追加したものが図5である。
この補助遷移の追加により、後述する選択装置におい
て、本例において検証したい項目である「エラー状態へ
の到達可能性」が保存されることになる。FIG. 5 is a diagram in which an auxiliary transition with the label name "wait" is added to the external transition of each process in FIG.
By the addition of this auxiliary transition, the item “reachability to error state”, which is the item to be verified in this example, is stored in the selection device described later.
【0028】図6は縮小グローバル状態遷移グラフ生成
装置2の構成を示すブロック図である。なお、以下の説
明では、プロセスの優先順位が予め任意につけられてい
るものとする。この優先順位は便宜的なものであり、任
意の順序でかまわず、いわゆるOSなどで使われるプロ
セスの実行優先順位とは無関係に決めてよい。ここで
は、プロセスP1がプロセスP2より優先度が高いもの
とする。もちろん、逆でもかまわない。FIG. 6 is a block diagram showing the configuration of the reduced global state transition graph generation device 2. In the following description, it is assumed that process priorities are arbitrarily assigned in advance. This priority order is for convenience, and may be determined in any order, and may be determined regardless of the execution priority order of the process used in the so-called OS or the like. Here, it is assumed that the process P1 has a higher priority than the process P2. Of course, the reverse is also acceptable.
【0029】まず、縮小グローバル状態遷移グラフ生成
装置2は、未処理状態キュー20及び状態遷移データベ
ース21を初期化(空に)する。First, the reduced global state transition graph generation device 2 initializes (empties) the unprocessed state queue 20 and the state transition database 21.
【0030】次に、初期状態抽出装置22が並行プログ
ラム情報23から初期状態を抽出する。初期状態は各プ
ロセスの初期状態の組で表される。本例の場合、初期状
態は(0,0)である。この初期状態は未処理状態キュー2
0に入れられる。Next, the initial state extraction device 22 extracts the initial state from the parallel program information 23. The initial state is represented by a set of initial states of each process. In this example, the initial state is (0,0). This initial state is the unprocessed state queue 2
It can be put in 0.
【0031】次に、未処理状態キュー20から1つの未
処理状態を選択する。なお、未処理状態キュー20に未
処理状態がなければ本装置による処理を終了する。Next, one unprocessed state is selected from the unprocessed state queue 20. If there is no unprocessed state in the unprocessed state queue 20, the processing by this apparatus is terminated.
【0032】次に、発火可能遷移抽出装置24が選択さ
れた未処理状態に対して適用可能な遷移を並行プログラ
ム情報23から抽出し、適用可能な遷移集合を抽出す
る。本例の場合、初期状態(0,0)で発火可能な遷移はP
2の内部遷移kだけである。Next, the ignitable transition extraction device 24 extracts transitions applicable to the selected unprocessed state from the parallel program information 23 and extracts applicable transition sets. In this example, the transition that can be fired in the initial state (0,0) is P
There are only two internal transitions k.
【0033】次に、選択装置25が適用可能な遷移集合
に対してプロセスの優先度に基づき実際に適用する遷移
を選択し、選択された遷移可能集合とする。具体的に
は、各適用可能な遷移に対して、その遷移を行うプロセ
スより、より優先度の高いプロセスの適用可能な遷移が
存在するならば、優先度の低いプロセスの遷移は選択さ
れない。本例の場合、初期状態(0,0)からは優先度の高
いプロセスP1には適用可能な遷移がないので、プロセ
スP2の適用可能な遷移kが選択される。Next, the selecting device 25 selects a transition to be actually applied to the applicable transition set based on the priority of the process, and sets the selected transitionable set. Specifically, for each applicable transition, if there is an applicable transition of a process with a higher priority than the process that makes the transition, the transition of a process with a lower priority is not selected. In the case of this example, since there is no transition applicable to the process P1 having a high priority from the initial state (0,0), the applicable transition k of the process P2 is selected.
【0034】次に、遷移実行装置26が選択された遷移
を実行する。本例の場合、状態(0,0)から遷移kを実行
すると、遷移先の状態は(0,1)である。Next, the transition execution device 26 executes the selected transition. In the case of this example, when the transition k is executed from the state (0,0), the transition destination state is (0,1).
【0035】次に、登録装置28が生成された状態27
及び状態遷移関係(すなわち(始点、終点、ラベル)の
組)を状態データベース21に登録する。このとき、状
態が既に登録済みであれば、遷移関係のみを登録し、状
態が未登録の新しいものであれば、それを状態データベ
ース21に登録するとともに未処理状態キュー20に追
加する。その後、未処理状態キュー20から1つの未処
理状態を選択する動作に戻る。本例の場合、生成された
状態(0,1)は未処理状態キュー20に入れられ、未処理
状態キュー20から1つの未処理状態を選択する動作に
戻る。以上の動作を繰り返して本装置の動作を終了す
る。 このように本実施例の並行プログラム検証装置で
は、選択装置25の枝刈りにより、通常のグローバル状
態遷移グラフよりも状態数が小さい縮小グローバル状態
遷移グラフが生成される。すなわち、図2に示したプロ
セスを枝刈りをすることなくグローバル状態遷移グラフ
に表現すると図7に示すようになるが、検証項目が「初
期状態からエラー状態(5,4)に到達するパス(経路)が
存在するか?」である場合、いくつかの状態(例:状態
(2,0),(3,0),(2,1),(3,1)など)の生成は必ずしも必要
でない。そこで、本実施例の選択装置25の枝刈りによ
り図8に示すような状態数の小さい縮小グローバル状態
遷移グラフが生成される。Next, the state 27 in which the registration device 28 is generated is shown.
And the state transition relationship (that is, a set of (start point, end point, label)) is registered in the state database 21. At this time, if the state is already registered, only the transition relation is registered, and if the state is a new unregistered state, it is registered in the state database 21 and added to the unprocessed state queue 20. Then, the operation returns to the operation of selecting one unprocessed state from the unprocessed state queue 20. In the case of this example, the generated state (0,1) is put into the unprocessed state queue 20 and the operation returns to the operation of selecting one unprocessed state from the unprocessed state queue 20. The above operation is repeated to end the operation of the present apparatus. As described above, in the concurrent program verification device of the present embodiment, the pruning of the selection device 25 generates a reduced global state transition graph having a smaller number of states than the normal global state transition graph. That is, when the process shown in FIG. 2 is expressed in the global state transition graph without pruning, it becomes as shown in FIG. 7, but the verification item is “path (5,4) from initial state to error state (5,4) Does the path exist? ”, Some states (eg states (2,0), (3,0), (2,1), (3,1), etc.) need to be generated. Not. Therefore, the pruning of the selection device 25 of this embodiment produces a reduced global state transition graph with a small number of states as shown in FIG.
【0036】例えば、状態(2,2)から適用可能な遷移
は、プロセスP1の内部遷移bとプロセスP2の内部遷
移lである。通常のグローバル状態遷移グラフでは、図
7に示すように、状態(2,2)から状態(3,0)の遷移及び
状態(2,2)から状態(2,0)の遷移が生成されるが、本実
施例の選択装置25の枝刈りにより、優先度の高いプロ
セスP1の内部遷移bだけが選択され、プロセスP2の
内部遷移lは冗長な遷移として省略される。For example, the transitions applicable from the state (2,2) are the internal transition b of the process P1 and the internal transition 1 of the process P2. In the normal global state transition graph, as shown in FIG. 7, a transition from state (2,2) to state (3,0) and a transition from state (2,2) to state (2,0) are generated. However, the pruning of the selection device 25 of this embodiment selects only the internal transition b of the process P1 having a high priority, and the internal transition 1 of the process P2 is omitted as a redundant transition.
【0037】ここで、「冗長な遷移」とは、状態(2,2)
においては、プロセスP2の内部遷移lの実行を遅延さ
せて、プロセスP1の内部遷移b,cを先に実行させて
も、すなわちb→c→lの順に実行させても、先にプロ
セスP2の内部遷移lを実行させて後からb,cを実行
させても、すなわちl→b→cの順に実行させても、結
局は同じ状態(0,0)に到達する(これを、「パーシステ
ント性」と呼ぶ。)ので、どちらか一方は省略できる場
合をいう。Here, "redundant transition" means the state (2,2).
In the above, even if the execution of the internal transition 1 of the process P2 is delayed and the internal transitions b and c of the process P1 are executed first, that is, even if they are executed in the order of b → c → l, the process P2 is executed first. Even if the internal transition 1 is executed and then b and c are executed, that is, even if they are executed in the order of l → b → c, the same state (0,0) is eventually reached (this is called "persistent"). Since it is called "sex"), either one can be omitted.
【0038】ところで、このようなパーシステントな状
況において、優先度による選択では、1つの代表元だけ
選択し、あとの冗長な遷移は選択しないことになる。し
かし、単純に優先度だけで遷移の選択を行なうと、本来
検証に必要な遷移も消除されてしまう場合がある。そこ
で、本実施例のように補助遷移「wait」を導入すること
により、本来検証に必要な遷移を消除することなく、単
純に優先度だけで遷移の選択を行なうことができる。By the way, in such a persistent situation, in the selection based on the priority, only one representative element is selected, and the redundant transitions thereafter are not selected. However, if a transition is simply selected based on the priority, the transition originally required for verification may be deleted. Therefore, by introducing the auxiliary transition “wait” as in the present embodiment, it is possible to select the transition simply by the priority without deleting the transition originally required for the verification.
【0039】本例の場合、状態(1,2)において、補助遷
移がなければ適用可能な遷移a,lのうち優先度の高い
プロセスP1のaしか選択されない。このとき検証した
いエラー状態(5,4)へのパスは起きなくなってしまう。
しかし、本実施例のように補助遷移「wait」がある場合
は、(1,2)からプロセスP1のaおよびwaitの両方が選
択され、補助遷移「wait」を実行した場合は、遷移後の
状態(4',2)においてプロセスP1は待ちになり、プロ
セスP2のlが選択される。このように本実施例では、
補助遷移「wait」により、優先度の高いプロセスが自ら
waitすることにより優先度の低いプロセスに遷移を譲る
というような動作が行なわれ、必要なパスの保存が実現
される。In the case of this example, if there is no auxiliary transition in the state (1,2), only a of the process P1 having the highest priority is selected from the applicable transitions a and l. At this time, the path to the error state (5,4) you want to verify will not occur.
However, when there is an auxiliary transition “wait” as in the present embodiment, both a and wait of the process P1 are selected from (1,2), and when the auxiliary transition “wait” is executed, after the transition, In the state (4 ′, 2), the process P1 waits, and the process P2 1 is selected. Thus, in this embodiment,
By the auxiliary transition "wait", the high priority process itself
By waiting, an operation such as yielding a transition to a process with a low priority is performed, and the necessary path is saved.
【0040】以上のようにして生成された縮小グローバ
ル状態遷移グラフは、通常のグローバル状態遷移グラフ
の終端状態(遷移先のない状態)を必ず含むことが保証
されている。本例では、エラー状態は終端状態であり、
縮小グローバル状態遷移グラフがエラー状態を待つなら
ば、通常グローバル状態遷移グラフもエラー状態を待
つ。また、逆も真である。グローバル状態遷移グラフ検
証装置4がエラー状態を調べるには、生成された縮小グ
ローバル状態遷移グラフの全ての遷移をトレースし、エ
ラー処理を表す外部遷移γが存在すればよい。γが存在
すれば、「エラー状態への到達可能性」は「有り」であ
り、なければ「無し」である。図8の例では「有り」で
ある。なお、グローバル状態遷移グラフ検証装置4は、
その他の既存の方法を用いることもできる。The reduced global state transition graph generated as described above is guaranteed to always include the terminal state (state with no transition destination) of the normal global state transition graph. In this example, the error state is the termination state,
If the reduced global state transition graph waits for an error state, then the normal global state transition graph also waits for an error state. The reverse is also true. In order for the global state transition graph verification device 4 to check the error state, all transitions of the generated reduced global state transition graph are traced, and there is an external transition γ representing error processing. If γ is present, “reachability to error state” is “present”, and if not, “no”. In the example of FIG. 8, it is “present”. The global state transition graph verification device 4 is
Other existing methods can also be used.
【0041】このようにグローバル状態遷移グラフの状
態数はプロセス数が大きくなるにつれて指数関数的に大
きくなるが、グローバル状態遷移グラフの多くの状態は
各プロセスの内部遷移のシャッフルによって例えば図7
の(1,2)、(1,0)、(1,1) 、(2,2)、(2,0)、(2,1)、
(3,2)、(3,0)、(3,1)のように生成されるものであ
り、本質的に解析検証したいことと無関係であることが
多い。そこで、本発明のように解析検証に関係のない冗
長な状態を削減すれば、解析検証時間や消費メモリの大
幅な削減を図ることができる。例えば図7と図8とを比
較すると、状態数が24%削減され、遷移数が32%削減さ
れることになる。しかも、本発明では、グローバル状態
遷移グラフの生成前の前処理として補助遷移を付加して
いるので、グローバル状態遷移グラフの生成時には並行
プログラムの情報の解析が不要となり、処理時間の短縮
化を図ることができる。As described above, the number of states in the global state transition graph exponentially increases as the number of processes increases, but many states in the global state transition graph are shuffled by the internal transition of each process, for example, as shown in FIG.
(1,2), (1,0), (1,1), (2,2), (2,0), (2,1),
It is generated like (3,2), (3,0), (3,1), and is often irrelevant to what you want to analyze and verify. Therefore, by reducing redundant states unrelated to analysis verification as in the present invention, it is possible to significantly reduce analysis verification time and memory consumption. For example, comparing FIG. 7 and FIG. 8, the number of states is reduced by 24% and the number of transitions is reduced by 32%. Moreover, in the present invention, since auxiliary transitions are added as pre-processing before the generation of the global state transition graph, it is not necessary to analyze the information of the concurrent program when generating the global state transition graph, and the processing time is shortened. be able to.
【0042】[0042]
【発明の効果】以上説明したように、本発明によれば、
縮小グローバル状態遷移グラフを生成する際に並行プロ
グラムの情報の解析をすることなく枝刈りの処理を行な
うことができ、枝刈りの処理を短時間で行なうことがで
きる。As described above, according to the present invention,
The pruning process can be performed without analyzing the information of the parallel program when the reduced global state transition graph is generated, and the pruning process can be performed in a short time.
【図1】本発明の一実施例に係る並行プログラム検証装
置の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a concurrent program verification device according to an embodiment of the present invention.
【図2】図1の並行プログラム検証装置によって検証さ
れる並行プログラムの各プロセスの一例を示す図であ
る。FIG. 2 is a diagram showing an example of each process of a parallel program verified by the parallel program verification device of FIG.
【図3】並行プログラムの各プロセスを表により表現し
た例を示す図である。FIG. 3 is a diagram showing an example in which each process of a parallel program is represented by a table.
【図4】図1の補助遷移付加装置の動作を示すフローチ
ャートである。FIG. 4 is a flowchart showing an operation of the auxiliary transition adding device of FIG.
【図5】補助遷移が追加された各プロセスを示す図であ
る。FIG. 5 is a diagram showing each process in which an auxiliary transition is added.
【図6】図1の縮小グローバル状態遷移グラフ生成装置
の構成を示すブロック図である。6 is a block diagram showing a configuration of the reduced global state transition graph generation device of FIG. 1. FIG.
【図7】図1の装置により生成された縮小グローバル状
態遷移グラフを示す図である。7 is a diagram showing a reduced global state transition graph generated by the apparatus of FIG.
【図8】縮小されていないグローバル状態遷移グラフを
示す図である。FIG. 8 is a diagram showing an unreduced global state transition graph.
【図9】並行プログラムを使ったシステム例を示す図で
ある。FIG. 9 is a diagram showing an example of a system using a parallel program.
【図10】並行プログラムのプログラムの一例を示す図
である。FIG. 10 is a diagram showing an example of a program of a parallel program.
【図11】図10の状態遷移グラフを示す図である。11 is a diagram showing a state transition graph of FIG.
【図12】図10または図11のグローバル状態遷移グ
ラフを示す図である。12 is a diagram showing a global state transition graph of FIG. 10 or FIG.
【図13】従来の縮小グローバル状態遷移グラフ生成装
置の構成を示すブロック図である。FIG. 13 is a block diagram showing a configuration of a conventional reduced global state transition graph generation device.
1………補助遷移付加装置 2………縮小グローバル状態遷移グラフ生成装置 3………補助遷移除去装置 4………並行プログラム検証装置 1 ... Auxiliary transition addition device 2 ... Reduced global state transition graph generation device 3 ... Auxiliary transition removal device 4 ... Concurrent program verification device
Claims (4)
り、各プロセスが他のプロセスと同期をとる遷移により
並行に動くようにされた並行プログラムを検証する並行
プログラム検証装置において、 各プロセスの同期をとる遷移に対して、当該遷移から他
方のプロセスの遷移に優先権を譲る補助遷移を付加する
補助遷移付加手段と、 分岐が生じた場合に予め定められた優先度に基づき選択
される1つのプロセスの遷移だけを選択するようにし
て、前記補助遷移付加手段により補助遷移が付加された
各プロセスから縮小グローバル状態遷移グラフを生成す
る縮小グローバル状態遷移グラフ生成手段と、 この縮小グローバル状態遷移グラフ生成手段により生成
された縮小グローバル状態遷移グラフから補助遷移を除
去する補助遷移除去手段と、 この補助遷移除去手段により補助遷移が除去された縮小
グローバル状態遷移グラフを検証するグローバル状態遷
移グラフ検証手段とを具備することを特徴とする並行プ
ログラム検証装置。1. A parallel program verification device for verifying a concurrent program, which comprises two or more processes whose states transit, each process being made to run in parallel by a transition that synchronizes with other processes, in a concurrent program verification device. For a transition that takes a value, an auxiliary transition adding unit that adds an auxiliary transition that gives priority to the transition of the other process from the transition, and one selected based on a predetermined priority when a branch occurs. Reduced global state transition graph generation means for generating a reduced global state transition graph from each process to which auxiliary transition is added by the auxiliary transition addition means by selecting only process transitions, and this reduced global state transition graph generation Auxiliary transition removing means for removing auxiliary transitions from the reduced global state transition graph generated by the means, Concurrent program verification apparatus characterized by comprising a global state transition graph verifying means for verifying the reduction global state transition graph auxiliary transition has been removed by the auxiliary transition removing means.
り、各プロセスが他のプロセスと同期をとる遷移により
並行に動くようにされた並行プログラムからグローバル
状態遷移グラフを生成するグローバル状態遷移グラフ生
成装置において、 各プロセスの同期をとる遷移に対し
て、当該遷移から他方のプロセスの遷移に優先権を譲る
補助遷移を付加する補助遷移付加手段と、 分岐が生じた場合に予め定められた優先度に基づき選択
される1つのプロセスの遷移だけを選択するようにし
て、前記補助遷移付加手段により補助遷移が付加された
各プロセスから縮小グローバル状態遷移グラフを生成す
る縮小グローバル状態遷移グラフ生成手段と、 この縮小グローバル状態遷移グラフ生成手段により生成
された縮小グローバル状態遷移グラフから補助遷移を除
去する補助遷移除去手段とを具備することを特徴とする
グローバル状態遷移グラフ生成装置。2. A global state transition graph generation for generating a global state transition graph from a concurrent program, which is composed of two or more processes whose states transit and each process is made to move in parallel by a transition that synchronizes with other processes. In the device, for transitions that synchronize each process, auxiliary transition addition means that adds an auxiliary transition that gives priority to the transition of the other process from the transition, and a predetermined priority when a branch occurs Reduced global state transition graph generation means for generating a reduced global state transition graph from each process to which auxiliary transition is added by the auxiliary transition addition means by selecting only transitions of one process selected based on Supplement from the reduced global state transition graph generated by this reduced global state transition graph generation means. A global state transition graph generation device comprising: an auxiliary transition removing means for removing an auxiliary transition.
り、各プロセスが他のプロセスと同期をとる遷移により
並行に動くようにされた並行プログラムを検証する並行
プログラムの検証方法において、 各プロセスの同期をとる遷移に対して、当該遷移から他
方のプロセスの遷移に優先権を譲る補助遷移を付加する
ステップと、 分岐が生じた場合に予め定められた優先度に基づき選択
される1つのプロセスの遷移だけを選択するようにし
て、補助遷移が付加された各プロセスから縮小グローバ
ル状態遷移グラフを生成するステップと、 生成された縮小グローバル状態遷移グラフから補助遷移
を除去するステップと、 補助遷移が除去された縮小グ
ローバル状態遷移グラフを検証するステップとを具備す
ることを特徴とする並行プログラム検証方法。3. A method for verifying a concurrent program, comprising: two or more processes whose states transit, each process being verified to move in parallel by a transition that synchronizes with another process. For a transition to be synchronized, a step of adding an auxiliary transition that gives priority to the transition of the other process from the transition, and one process selected based on a predetermined priority when a branch occurs Generating a reduced global state transition graph from each process to which auxiliary transitions are added by selecting only transitions, removing auxiliary transitions from the generated reduced global state transition graphs, and removing auxiliary transitions For verifying a reduced reduced global state transition graph .
り、各プロセスが他のプロセスと同期をとる遷移により
並行に動くようにされた並行プログラムからグローバル
状態遷移グラフを生成するグローバル状態遷移グラフの
生成方法において、 各プロセスの同期をとる遷移に対して、当該遷移から他
方のプロセスの遷移に優先権を譲る補助遷移を付加する
ステップと、 分岐が生じた場合に予め定められた優先度に基づき選択
される1つのプロセスの遷移だけを選択するようにし
て、補助遷移が付加された各プロセスから縮小グローバ
ル状態遷移グラフを生成するステップと、 生成された縮小グローバル状態遷移グラフから補助遷移
を除去するステップとを具備することを特徴とするグロ
ーバル状態遷移グラフ生成方法。4. A global state transition graph for generating a global state transition graph from a concurrent program, which is composed of two or more processes whose states transit, and in which each process is made to move in parallel by a transition in synchronization with another process. In the generation method, based on the step of adding an auxiliary transition that gives priority to the transition of the other process from the transition that synchronizes each process, and the predetermined priority when a branch occurs A step of generating a reduced global state transition graph from each process to which an auxiliary transition is added so that only one transition of the selected process is selected, and an auxiliary transition is removed from the generated reduced global state transition graph. A method for generating a global state transition graph, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6220165A JPH0883195A (en) | 1994-09-14 | 1994-09-14 | Parallel program verification device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6220165A JPH0883195A (en) | 1994-09-14 | 1994-09-14 | Parallel program verification device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0883195A true JPH0883195A (en) | 1996-03-26 |
Family
ID=16746910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6220165A Withdrawn JPH0883195A (en) | 1994-09-14 | 1994-09-14 | Parallel program verification device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0883195A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675207B1 (en) | 1999-02-15 | 2004-01-06 | International Business Machines Corporation | Possibility of execution evaluating apparatus and method therefor |
JP2010118082A (en) * | 2010-03-01 | 2010-05-27 | Toshiba Corp | Information processing apparatus and program verifying method |
-
1994
- 1994-09-14 JP JP6220165A patent/JPH0883195A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675207B1 (en) | 1999-02-15 | 2004-01-06 | International Business Machines Corporation | Possibility of execution evaluating apparatus and method therefor |
JP2010118082A (en) * | 2010-03-01 | 2010-05-27 | Toshiba Corp | Information processing apparatus and program verifying method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11977977B2 (en) | Methods and systems for data analysis in a state machine | |
US9535861B2 (en) | Methods and systems for routing in a state machine | |
US8781980B2 (en) | Matching pattern of events with interval conditions | |
CN110443690A (en) | A kind of method, apparatus, server and the storage medium of variance data reconciliation | |
WO2021180243A1 (en) | Machine learning-based method for optimizing image information recognition, and device | |
JPH0883195A (en) | Parallel program verification device | |
CN112037003A (en) | File account checking processing method and device | |
CN112307751A (en) | Data desensitization method and system based on natural language processing | |
US7500210B2 (en) | Chip area optimization for multithreaded designs | |
JP2001044412A (en) | Semiconductor simulation apparatus | |
JP2000207248A (en) | Device and method for generating behavior or parallel program, and recording medium recorded with software for generating behavior or parallel program | |
CN107835158B (en) | Method and device for transmitting interactive data under SNA network system | |
JPS62217325A (en) | Optimization system for assembler code | |
US6463572B1 (en) | IC timing analysis with known false paths | |
CN118708404A (en) | Processing method and device for business scene task, storage medium and computer equipment | |
KR102449016B1 (en) | Method of reducing resources through asynchronous parallel processing without supporting events and its parallel processing apparatus | |
JP2005267036A (en) | Trace output control method and trace system | |
US11640428B2 (en) | Collation device, collation method, and collation program | |
JP3583032B2 (en) | Vector diffusion processor | |
CN114338410A (en) | Method, device and system for generating routing path file and related equipment | |
JP3191183B2 (en) | Scan test control gate insertion method | |
US20100175037A1 (en) | Method, apparatus, and program for correcting hold error | |
KR0154616B1 (en) | Method of switching in register windows for realtime parallel operation system | |
JP2003044453A (en) | System and method for preparing inspection schedule | |
CN117370026A (en) | Data extraction method, device, acceleration card and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20011120 |