JPH0250231A - デツドロツク検出装置 - Google Patents

デツドロツク検出装置

Info

Publication number
JPH0250231A
JPH0250231A JP63200166A JP20016688A JPH0250231A JP H0250231 A JPH0250231 A JP H0250231A JP 63200166 A JP63200166 A JP 63200166A JP 20016688 A JP20016688 A JP 20016688A JP H0250231 A JPH0250231 A JP H0250231A
Authority
JP
Japan
Prior art keywords
control
state
deadlock
transition
file
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
JP63200166A
Other languages
English (en)
Inventor
Yoichi Iwabuchi
洋一 岩渕
Kazunari Kikuchi
菊地 一成
Hiroyasu Watanabe
浩康 渡辺
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP63200166A priority Critical patent/JPH0250231A/ja
Publication of JPH0250231A publication Critical patent/JPH0250231A/ja
Priority to US08/193,645 priority patent/US5584019A/en
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、例λば複写機やレーザビームプリンタ等のよ
うに並行した制御が行われる装置のデッドロックを自動
的に検出するデッドロック検出装置に関するものである
[従来の技術] 複写機やレーザビームプリンタなどのように並列制御が
必要なシステムでは、各種の制御が並行して実施される
ため、それら各制御の処理順序等が誤ると各制御相互の
時間的な流れ等によりシステムにデッドロック(装置が
動作不能になる)状態が発生することがある。このよう
なデッドロック状態に陥るのを防止するために、システ
ムの設計段階で十分な仕様の吟味が行われなければなら
ないが、設計段階でこれらを完全に予測することはむず
かしく、装置が複雑な場合は特に困難である。
一般に、これらデッドロックを予測する方法としては以
下に述べる3つの方法がある。
■仕様に基づく動作予測。
ペトリネットによる仕様記述法による数学的な動作予測
法。
■プログラムコードからの動作予測。
カバレッジテストと呼ばれる一連の静的構造テスト。
■実際の機種を用いた動作予測。
I CE (In C1rcuit Emulator
)等を用いて実際にシステムを制御し、実際の動作に近
い状態でシステムを動作させて予測する。
[発明が解決しようとする課題] しかしながら、上述した従来の検査方法には、以下に示
すような問題がある。
■仕様に対する動作予測。
ペトリネットに基づく記述では、システムを構成する各
ユニットの制御状態とそれらの順序及び各ユニット間の
時間的な制約が、トランジションとアークという同一の
定義要素で表現されている。このため、制御対象である
システム内の各ユニットに固有の制御手順が把握しにく
い、このため、システム構造と仕様との関係が直感的に
とらえにくくなっている。また、この記述法によればシ
ステム仕様が記述しにくいだけでなく、記述された仕様
の理解や保守等の面でも多くの問題を含んでいるため、
システム動作の予測には使用されていないのが現状であ
る。
また通常の実時間システムの仕様記述法としては、まず
個々のユニットに対して独立した状態遷移図を記述する
ことによって、ユニット毎の各制御状態とそれらの間の
順序の制約を示し、更にそれらがシステムとして協調し
て動作できるように、ユニット間の制御状態の前後関係
を別途タイミングチャートや文書等により補足している
。しかし、これによってもシステムのデッドロックの検
出は困難で、その方法も存在していないのが現状である
■プログラムコードからの動作予測。
従来のソースコードに対するカバレッジテストでは、プ
ログラムの静的な構造のほぼ全体に亙ってテストするこ
とができる。しかし、システムの動作時に起りつる全て
のプログラムの実行順を追2ているものではないため、
システムの動作の予測・やデッドロックの検出等を行う
ことはできない。
■実際の機器を用いた動作予測。
ICE等による実際の機器を用いた動作予測では、予め
システムのおかれる環境を予測し、その環境下で発生す
ると考えられる動作を実行しながら予測することができ
る。しかしながら、システムのおかれる環境を全て予測
することは困難であり、またその環境下における全ての
動作を予測することも困難である。また、一般にこのよ
うな制御システムの開発においては、開発工程の初期の
段階はどプログラム等の修正に要するコストが低くて済
むため、システムの仕様を作成する段階でデッドロック
になる状態を検出することが重要と考えられている。そ
れに反しこのICE等による動作予測は、開発の終了工
程ちかくで行われるものであり、この点でも実際の機器
による測定法には問題がある。
本発明は上記従来例に鑑みてなされたもので、システム
の開発段階において、システムの取り得る状態のうち、
デッドロックが発生するシステム状態を含めたシステム
状態を抽出することにより、開発の初期段階でデッドロ
ックの発生を予知できるようにしたデッドロック検出装
置を提供することを目的とする。
[課題を解決するための手段] 上記目的を達成するために本発明のデッドロック検出装
置は以下の様な構成からなる。即ち、システムを構成す
る各ユニットの制御状態及び制御シーケンスを記憶する
記憶手段と、前記制御状態のうちシステムがデッドロッ
クとなる制御状態を識別する識別手段と、前記記憶手段
に記憶されている制御状態と制御シーケンスを基に前記
制御状態の流れを表す本構造チャートを作成して表示す
る作成手段と、前記チャート上で前記デッドロックとな
る制御状態を認識可能に表示する手段とを備える。
また他の請求項の構成は、識別手段は前記システムの各
ユニットが同時に取り得る制御状態のうち、前記各ユニ
ットの制御状態全てが遷移するための条件を有している
ときに、その制御状態をデッドロックと判定するように
なっている。
[作用] 以上の構成において、記憶手段にシステムを構成する各
ユニットの制御状態及び制御シーケンスを記憶し、それ
ら制御状態のうちシステムがデッドロックとなる制御状
態を識別する。その記憶手段に記憶されている制御状態
と制御シーケンスを基に、制御状態の流れを−表す本構
造チャートを作成して表示し、そのチャート上でデッド
ロックとなる制御状態を認識可能に表示するようにして
いる。
[実施例] 以下、添付図面を参照して本発明の好適な実施例を詳細
に説明する。
[全体構成の説明 (第1図)] 第1図は本発明の一実施例を示す全体構成図である。
図において、10はキーボード等からなるデータ入力部
と、CRT等からなるデータ出力部とを備えた入出力装
置であり、オペレータはこの入出力装置10により会話
形式でデータの入出力が行えるようになっている。io
oは仕様編集部で、入出力装置10より入力される、後
述する実時間システムの仕様をデータベース上のファイ
ル1000に仕様チャートとして格納する。200はフ
アイル1000に格納されたシステム仕様に基づき、デ
ータベース110上に設けられた後述するファイル11
10〜1130を作成するコード変換部である。
これらファイル1110〜1130について説明すると
、1110はシステムにおける各ユニット毎の制御状態
と、その制御状態間の順序関係を記憶するUSTファイ
ル(Unit 5equence Table以下US
Tと呼ぶ)、1120はシステムの初期状態を記憶して
いるISTファイル(In1tialState Ta
ble以下ISTと呼ぶ)、1130は各ユニット間に
存在する時間的制約を記憶するSRTファイル(Sys
tem Re5tralt table 、以下SRT
と呼ぶ)である。
300はUSTファイル1110.ISTファイル11
20及びワーキングメモリ20の内容に基づいて、次に
取り得る次状態候補を選出してワーキングメそり20上
に記憶する次状態候補選出部である。400はSRTフ
ァイル1130の遷移制限情報を基に、次状態候補選出
部300により選出されたワーキングメ干す20上の次
状態候補が遷移可能かどうかを判断し、遷移可能であれ
ばシステム状態の順序関係を記憶しているSSTファイ
ル1200 (System 5equence Ta
ble以下SSTと呼ぶ)に出力する遷移可能状態識別
部である。
500はデッドロックを検出し、デッドロックが発生す
るとそれをSSTファイル1200に出力するデッドロ
ック検出部である。600はSSTファイル1200の
内容を参照してSSTファイル1200の作成が終了し
たかを判断するSST作成終了識別部である。
700はSSTファイル1200の内容を基に木構造チ
ャートの作図に必要な座標情報を作成する木構造チャー
ト作成部である。800はTT(Tree Table
)ファイル1300よりの作図情報を基に木構造のチャ
ートを入出力装置10に表示する木構造チャート表示部
である。なお、上述した100〜800の各部は計算機
(当然ながら演算処理部、処理用のメモリ、後述するフ
ローチャートに代表される処理手順を記憶する制御メモ
リ、及び情報の受渡しなどを行うインターフェースなど
を有する)で支援されるものとし、ワーキングメモリ2
0は上述した100〜800の各部によりアクセスでき
るように構成されている。なお、ワーキングメモリ20
のデータ構成については後述する。
[仕様記述方式の説明(第2図〜第12図)]第1図に
示したシステムの動作の説明を行う前に、この実施例の
実時間システムの仕様記憶部に記憶する仕様を定義する
実時間システムの仕様記述方式について説明する。
第2図はこの実施例の実時間システムの仕様記述方式を
用いた図式仕様の記述例を示す図である。
図中、各ユニットの制御順序を示すための仕様記述要素
として、1で示した円形部分は制御状態を表し、2は制
御状態から次の制御状態への遷移を示している。また、
各ユニット間の時間制約を示すための仕様記述要素とし
て、3はフラグ、4はトリガを示している。以下、これ
らの記述要素について、以下に詳細に説明する。
1で示された制御状態は、システムを構成する各々のユ
ニットが実行する複数の動作のうちある時間に実行する
動作を示す記述要素で、動作の種類に対応してそれぞれ
異なる記号で示される。ここでは、制御状態をすべて円
で記述し、更にその動作が特定できるように各制御動作
に名前を付けている。これら制御状態は、第3図のよう
にユニットが現在の制御状態を他ユニットに知らせるた
めのフラグ3を接続することが出来る。
また、2で示された遷移は、各ユニットの動作順序を示
す記述要素で、ここではある制御状態からその次の制御
状態に向かう実線の有向アークとして記述されている。
これ以降、簡単のためある遷移で接続された2つの制御
状態のうち、時間的により以前に実行される制御状態を
前制御状態と呼び、後続する制御状態を後制御状態と呼
ぶことにする。また、ある遷移の前制御状態から後制御
状態に移ることを遷移の実行と呼び、この遷移の実行は
この仕様記述方式で記述されたシステムの動作に影響を
及ぼさない時間内で終了するものとする。
更に、遷移の実行を開始するタイミングを規定するもの
として、遷移にはN4図のようにフラグとトリガを接続
することが出来る。フラグとトリガを接続されていない
場合は、その前制御状態の実行が終了した時で遷移の実
行が行われる。フラグ3とトリガ4が接続されている場
合の遷移については後述する。また、遷移はそれが実行
された時点を他のユニットに知らせるため、第4図のよ
うにトリガ4を接続することができる。
次に、フラグによる状態の遷移について説明する。
フラグ3は制御状態の実行状況によって、遷移の実行を
開始する時間を規定する記述要素であり、規定される遷
移と少なくとも1つの制御状態とを関係付る記号で表現
される。ここでは、第2図の3で示すようにある制御状
態PAから実行時点を規定したい遷移2に向かう破線の
有向アークとして記述されている。
このときのタイミング規定を第5図に示す。
制御フラグ3は制御状態PA、が実行中の時間帯に発生
され、制御状態PA、の終了後に遷移の実行が許可され
てPA、が開始される。−また、ユニットbではPA、
の実行終了を待ってPAbが開始される。
第6図にフラグによる遷移の実行条件をまとめて示す。
第6図に示すように、フラグがオンになっても制御状態
が処理中であればすぐには遷移は実行されず、主処理の
終了を待って遷移が実行される。
次に、トリガによる状態の遷移について説明する。
トリガも前述したフラグと同様に、制御状態の実行の状
況によって特定の遷移の実行タイミングを規定するため
の記述要素であり、特定の遷移と少なくとも他の一つの
遷移を関係付ける記号として表わされる。このトリガは
ある遷移が実行される時点で、強制的に他の特定の遷移
を実行させるもので、強制された遷移の実行は、トリガ
の発生元の遷移の実行と同時か、またはシステムの動作
順序に影響を及ぼさない範囲の時間内で終了するものと
する。
このトリガは、第2図のようにある遷8 (PAI→P
A2 )から実行時点を規定したい遷移(PA、−PA
b )に向かう破線の二重矢印の有向アーク4のように
記述される。この場合のタイミングを第7図に示す。こ
こでは、トリガ4で接続されている制御状態PA、から
PA、への遷移が実行される時点で、PA、からPAb
への遷移の実行が開始される。第8図はトリガによる遷
移の実行条件をまとめて示した図である。第8図から明
らかなように、トリガが入力されるとその制御状態に関
係なく直ちに遷りが実行される。
次に、これらのフラグとトリガの混用することによって
、より複雑な遷移のタイミングを規定できる点について
説明する。
〈複数のフラグの積〉 第9図(A)(B)は複数のフラグを結合させて、特定
の遷移の実行時点を規定した例を示す図で、ここではフ
ラグの積の結合関係を示すための記号として○を使用し
ている。
この結合関係は、これらのフラグF1〜Fnの発生元で
ある全ての制御状態が実行中においてのみ、これらのフ
ラグと関係付けられている遷移の実行(PA+−P、A
z )が許可されることを示しており、第6図で前述し
たフラグによる遷移の実行タイミングの規定に準じてい
る。従って、この結合後フラグを・合成フラグF′と呼
び、前述したフラグと同様に扱うものとする。
く複数のトリガの積〉 第10図(A)CB)は複数のトリガ(T1〜Tn)の
結合によって、特定の遷移の実行(PA+=PA、)時
点を規定した例を示す図で、ここではトリガの積の結合
関係を示すための記号としてOを用いている。この結合
関係は−、トリガの発生元である全ての遷移が同時に発
生した時点で、これらのトリガが入力されている特定遷
移(PAI→PA2)の実行が強制されることを示し、
第8図を基に前述したトリガによる遷移の実行の時間的
規定に準じている。従って、この結合後のトリガT′を
合成トリガと呼び、前述したトリガと同様に扱う。
〈複数のトリガとフラグの積〉 第11図は1つのトリガTと複数のフラグF1〜Fnの
結合によって特定の遷u (FA I−Plh)の実行
時点を規定した例を示す図で、ここではトリガとフラグ
の積の結合を示す記号としてOを使用している。
この結合関係は、これらのフラグF1〜Fnの発生元で
ある全ての制御状態が実行中において、これらのトリガ
Tの発生元である遷移(PA、 −PA、)が発生した
時点でのみ、これらのフラグと関係付けられている遷移
の実行(PA5=PAi)が許可されることを示してい
る。
く任意側のフラグとトリガの和〉 第12図は特定の遷移の実行タイミングを規定するため
、同一の遷移に任意側のフラグ・合成フラグ・トリガ・
合成トリガ等を用いた例を示す図で、ここではこれら各
条件のうち最も速く遷移の実行が行われる時点で遷移の
実行が発生する。この様な結合関係をフラグやトリガの
和と呼ぶ。この結合関係を示すための記号として、ここ
では時間的規定を与える遷移に、フラグ・合成フラグ・
トリガ・合成トリガを、必要なだけ並列に接続すること
で表現する。
第13図はこの実施例におけるシステム仕様記憶部12
0のファイル作成及びRTSURTファイルの作成処理
を示すフローチャートで、このフローチャートの説明は
後述する。
[仕様定義の具体例の説明 (第13図〜第18図)] 第14図は前述の実時間システムの仕様記述方式に基づ
いて、システムの仕様を定義した一例を示す図で、ここ
では3つのユニット(シーケンス1〜3)からなる実時
間システムの使用を定義した図の例で示している。
である。以下第14図で定義された動作をもとに第13
図のフローチャートを説明する。
まず、ステップS1でオペレータは入出力装置10によ
り、仕様チャート編集部100を用いて第14図のよう
にシステムの仕様を定義する。ステップS2では定義し
た仕様を基に、コード変換部200によりUST、IS
T、SRTファイルを作成する。第15図(A)、(B
)、  (C)はそれぞれ第14図を基に作成したUS
T、IsT、SRTファイルの内容例を示す図である。
第15図(A)は前制御状態と後制御状態とを表したU
STファイルの内容例を示す図で、第15図(B)はシ
ーケンスの制約テーブル(SRTファイル)、そして第
15図(C)は初期状態テーブル(I STファイル)
1120の内容例を示す図である。
次にステップS3に進み、ワーキングメモリ20上に記
憶されている現システム状態を基に、この現システム状
態から遷移できる可能性のある次システム状態候補を、
USTファイル1120の情報を基に選び出す。仮に、
現システム状態が(A、Y、りであれば、第15図(A
)に示したUSTより、AからA5またYからZ更には
1からJへの遷移が可能なので、(B、Y、I)、(A
、Z、I)、(A、Y、J)等が次システム状態候補と
して挙げられる。ステップS4ではステップS3で列挙
された次システム状態候補が、本当に現システム状態か
ら遷移可能であるかを、第15図(B)に示すSRTフ
ァイルの情報を基に判断し、遷B可能であればシステム
状態の順序関係記憶部であるSSTファイル1200に
システム状態の順序関係として追加する。
これにより上述した例に基づき、(A、Y。
■)から(B、Y、I)や(A、Y、J)へは、5RT
1130で特に制約されていないので遷移できるため、
SSTファイル1200に、例えば’(A、Y、I)と
(B、 Y、 I)や(A、 Y。
■)と(A、Y、J)の組等を、それぞれ(A。
Y、I)を前システム状態、(B、Y、I)を後システ
ム状態として登録する。なお、YからZへの遷移は第1
5図(B)に示すように制約されているため、ここでは
登録しない。
ステップS5ではステップS3で得られた、現システム
の次システム状態の3つのシーケンスの全てがステップ
S4で遷移不可能と判定されたときは、次に遷移できる
システム状態が存在しないことになるため、それをデッ
ドロック状態としてSSTファイル1200に登録する
。この例では、システム状態が(B、W、H)である場
合、B、W、H(7)全テノ遷移B −c、w −X、
W −Y、H−■には制約が設けられているため、シス
テム状態(B、W、H)はデッドロックを示す”D、L
″とともにSSTに登録される。
第16図はこのようにして作成したSSTファイルの一
例を示す図であり、第16図(A)は初期システム状態
からの到達可能なシステム状態を示している。第16図
(B)はこうして作成されたSSTファイル1200の
一部を示す図である。
ステップS6ではシステムにおけ、る到達可能なシステ
ム状態の全てをチエツクしたかを調べ、全てチエツクし
ていればステップS7に進むが、まだ調べていないシス
テム状態があれば、それを現システム状態としてステッ
プS3以降の処理を繰返し実行する。
ステップSフでSSTファイル1130の情報を基に、
ステップS1で定義した仕様に基づく木構造チャートを
作成するのに必要な座標情報を作成する。第17図はこ
うして作成された木構造チャートの作図情報の一例を示
す図である。なお、この第17図におけるパラメータ″
′D″はデッドロック状態を示している。ステップS8
ではステップS7で作成した座標情報からTTファイル
1300に格納されている座標情報をもとに、第18図
(B)に示すような木構造チャートを入出力部10のC
RTに表示する。
[処理A−Cの説明(第19図〜第25図)]第19図
は第13図のフローチャートにおける処理A及び処理B
の実行時におけるワーキングメモリ20のメモリ構成例
を示す図で、このワーキングメモリ20には第19図(
A)に示すデータエリアと、第19図(B)に示すスタ
ックエリアとの2つの部分に大別される。
データエリアには、ポインタ格納領域A[]、ポインタ
ー時格納領域A’[]、ユニット状態格納領域D[]、
現システム状態格納領域X[]、後クシステム状の候補
状態を記憶する時システム状態候補格納領域Y[]、カ
ウンタi、カウンタj及びデッドロックフラグdfが設
けられている。
次に、第13図のフローチャートにおける処理A、lA
理B、処理Cの部分に関する詳細な説明を第14図のサ
ーモスタットの場合で行う。
[処理Aの説明 (第20図)] 第20図(A)(B)は処理Aの一例を示すフローチャ
ートである。この処理Aは、現在のシステム状態とUS
Tファイル1110から、次のシステム状態候補を全て
抽出し、その白衣のシステム状態として実際に取得るも
のをSRTファイル1130を参照して選択し、SST
ファイル1200に登録するものである。この処理Aの
実現方法としては、 (1)すべての次システム状態候補を挙げ、その後にそ
れらすべてについて遷Bの可能性を判断する。
(2)次システム状態候補を1つ挙げ、それについての
遷移の可能性を判断するという動作を次システム状態候
補がなくなるまで繰り返す方法。
の2つの方法が考えられるが、メモリの効率を考えてこ
こでは(2)の方法について詳説する。
処理Aの開始時点では、ワーキングメモリ20のデータ
エリアの現システム状態X[]のみが初期化されており
、ワーキングメモリ20の各格納領域の最後には、デリ
ミタとしてEOD”が格納されている。また、SSTフ
ァイル1200の内容は、第16図(A)に示すような
ものとする。
第20図のフローチャートを説明すると、まずステップ
Sttにおいて、現システム状態X[]に格納されてい
る現在実行中のユニットごとの各制御状態を調べる。こ
れら各制御状態のうちには、次の制御状態に遷移するこ
となく現状態に留まる場合があるため現制御状態をユニ
ット状態格納領域D[]に格納する。また、各ユニット
の現制御状態が終了した時点で次の制御状態に遷移する
場合等があるため、USTファイル1110を基に現制
御状態を前制御状態とする後制御状態をワーキングメモ
リ20のユニット状態格納領域D[]に格納する。その
際、各ユニット毎にその先頭アドレスをポインタ格納領
域A[]に格納する。この様子を示したのが第21図で
ある。
ステップS12ではポインタ格納領域A[]の内容をポ
インター時格納領域A°[] にコピーし、ステップS
13でカウンタiをO′″に、デッドロックフラグdf
を“1″に初期化し、ステップS14ではカウンタiを
インクリメントしながらポインター時格納領域A′[]
のポインタの指す値を次システム状態候補としてY[]
にコピーする0例えば、A’[]=(D十〇、D+3.
D+8)であったとすると、第21図のメモリ状態より
、Y[]には(A。
W、I)がコピーされることになる。
ステップS15では、^°[]内のポインタをインクリ
メントして次の次システム状態候補を指すようにし、ス
テップS16でカウンタjを“0″に初期化する。ステ
ップS17ではX[]に格納されている現システム状態
の全てを調べ終るまでステップS17以降を繰り返し実
行する。現システム状態格納領域X[]より“EOD“
を検出して調べ終ったことが検知できると、X[]、 
Y[]をそれぞれSSTの前システム状態、後システム
状態に書き込む。また、デッドロックが発生しなかった
ことを表すために、デッドロックフラグdfを“0″に
する。そして、Y[]をスタックにPUSH(格納)し
てステップS21に進む。
一方、ステップS17でX[]に格納されている現シス
テム状態があるときはステップ318に進み、カウンタ
jを用いてX[]、 Y[]から対応する一体の制御状
態を選び出し、それらをそれぞれ前制御状態、後制御状
態とする遷移がSRTファイル1130に登録されてい
るかどうか調べ、登録されていなければカウンタjをイ
ンクリメントしてステップS17に戻る。
ステップS18でSRTに遷移が登録されているとステ
ップ319に進み、X[]に登録されている現制御状態
からY[]の次制御状態への制約条件が満足しているか
をみる0条件が満足されていなければjを+1してステ
ップS17に戻るが、条件が満足されていればステップ
S20でこれ以外にX[]の現制御状態を前制御状態と
し、Y[]の次制御状態を後制御状態とする遷移がSR
Tファイル1130に登録されているかをみる。
SRTにあるときはステップS19に戻るが、なければ
ステップS21に進み、デッドロックフラグdfがオン
かどうかを調べる。デッドロックフラグがオンであれば
、X[]に格納されているシステム状態を前システム状
態にし、そのシステムの後システム状態を“D、L″と
してSSTに登録する。そして、ステップS22でカウ
ンタiを用いてX[]を現システム状態とした場合の次
システム状態候補すべてを調べ終えたのかどうか判断し
、調べ終えてなければステップ313に戻る。
[IA理Bの説明 (第22図)] 第22図は、第13図の処理Bの一例を示すフローチャ
ートである。この処理BではSSTファイル1200が
作成されたかどうかを判断している。
まずステップS31で第21図(B)に示すスタックエ
リアが空かどうか判断し、空であればSSTファイル1
200の作成が終了したものと判断して処理を終える。
スタックが空でなければステップS32に進み、スタッ
クエリアのスタックポインタSPが指示しているスタッ
クから1つのデータを取り出しくpop)、現システム
状態としてX[]に格納する。そして、ステップS33
では現システム状態X[]が、SSTファイル1200
の前システム状態として既に登録されているかどうか、
つまり、それ以前に既に調べ終えているかどうか判断し
、SSTファイル1200の前システム状態に登録され
ていればステップS31に戻る。ステップS33でSS
Tファイル1200の前システム状態として登録されて
いなければ、まだSSTファイル1200の作成は終了
していないと判断して第13図の処理Aに戻る。
[処理Cの説明 (第23図〜第24図)]次に、第1
3図の処理Cについて、上記のサーモスタットの例を用
いて詳しく説明する。
第23図は処理Cの実行時におけるワーキングメモリ2
0の構成例を示す図で、ワーキングメモリ20は第23
図(A)に示されたデータエリアと第23図(B)に示
されたスタックエリアとの2つの部分に大別される。
データエリア中には、現システム状態を格納する領域P
[]、次のシステム状態を格納する領域N[]、次のシ
ステム状態の列カウンタであるカウンタx1次のシステ
ム状態の行カウンタであるカウンタy5現システム状態
の列カウンタPX%現システム状態の行カウンタPyo
制御状態の履歴を記憶しているヒストリテーブルH[]
、パラメータ格納領域Pm等が設けられている。
第24図はIA埋Cの詳細な処理を示すフローチャート
で、SSTファイル1200の内容を基に各システム状
態の座標を決定し、それを木構造チャート作図情報とし
てTTファイル130oに登録する。
ステップS41で列カウンタX8行カウンタyをそれぞ
れ0”に初期化し、現システム状態の列及び行カウンタ
P3.P、を初期化する。ステップS42ではSSTフ
ァイル1200よりentry”を前システム状態とす
る後システム状態を、次システム状態N[]に格納する
。そして、第24図(C)に示す処理を実行する。
第24図(C)の処理を説明すると、作図情報としてN
(]、P ll+P l! 、X、 yからなる作図デ
ータを作図ファイル(TTファイル1300)に書込む
もので、次システム状態がデッドロック”D、L“であ
ればパラメーターとしてD”を、そうでなければパラメ
ータとして“N″をTTファイル1300に書込むよう
にしている。
そしてステップ543に進み、次システム格納領域NI
]の内容をヒストリテーブルH[]に格納する。ステッ
プS44では現システム状態P[]、および現システム
状態の列カウンタPxおよび行カウンタP、をセットし
、これらをスタックエリアに登録(PUSH)する。ス
テップS45では列カウンタXを+1し、ステップ54
6ではSSTファイル1200に現システム状態P[]
を前システム状態とする後システム状態が存在するかを
調べ、存在するときは、それを次システム状態N[]に
書き込み、第24図(C)のフローチャートで示された
処理を実行する。
ステップS47では次システム状態N[]がヒストリテ
ーブルH[]に存在するかを調べ、存在するときはそれ
以降のツリー(木)構造が既に作成済みであるとみなし
、列カウンタXを1つ戻すとともに、行カウンタyを1
つインクリメントする。
一方、N[]がヒストリーテーブルHTに存在しなけれ
ばステップS43に戻る。ステップS48ではワーーキ
ングメモリ20のスタックエリアが空かどうかを調べ、
空でであれば処理を終了するが、空でなければスタック
エリアからP、Px、Pyの組を1つ読出(pop)t
、て、ステップ548に戻る。
第17図はこの処理の終了時における作図情報(TT)
ファイル1300の内容例を示したものである。
[IA理りの説明 (第25図)] 第25図は処理りの詳細な処理を示すフローチャートで
、ここでは処理Cで作成された作図情報ファイル130
0を基に入出力装置10に木構造を示すチャートを表示
し、例えば第18図(B)に示すように、デッドロック
状態(B、X、H)は他の制御状態とは区別して示して
いる。なお、この表示においては、入出力装置10のC
RT上に第18図(A)に示すような論理的格子を想定
し、1列1行の点180の座標を(1,1)で示す。
第25図において、まずステップSatで作図情報ファ
イル1300から、次システム状態N[]、現システム
状態の列カウンタPXと行カウンタPy1次システム状
態の列カウンタXと行カウンタyに読み込む。ステップ
S62では(Px。
py)と座標(x、y)とを結ぶ線分を描く。ただし、
このときは、<px−py)と(x、y)とが一致して
いるときは線分を引かない。
第18図(B)を参照すれば明らかな如く、現システム
状態(座標(pH,Py ) )と次のシステム状態(
座標(x、y))との間は、 (P−、Py)−((PX+ x)/2 Py)、(例
えば線分181)((P、 +x)/2.Py) −(
(Px+x)/2. y)、(例えば線分182)、そ
して(Px+x)/2. y)−(x、y)、(例えば
線分183)というように、それぞれ3本の直線で結ば
れている。そして、ステップS63では後システム状態
の座標(x、y)に、N[]の内容を表示する。このと
き、パラメータPmの値が“D″であるかどうかを判定
し、“D″が付されていればデッドロックとなる制御状
態であることを示すマークとともにN[]を表示する。
この−例を示したのが第18図(B)の二重丸で示され
たシステム状態((B、X、H)= (BXH))であ
る。なお、このデッドロックとなるシステム制御状態の
表示方法としては、輝度を高くしたり、特殊な符号を付
加すること等が考えられる。
また、パラメータPmが“N”であればその座標位置に
N[]をそのまま出力する。そしてステップS64でT
TTTイル1300の全ての情報についでチエツクされ
たかを調べ、全てチエツクされていれば処理を終了する
が、全てチエツクされていないときはステップS61に
戻り、前述の動作を実行する。
以上説明したようにして第18図(B)の木構造チャー
トにより、C2すなわちクーラがオンになるのは、シス
テム状態が(B、X、■= (B、X。
H)の場合であることがわかる。
以上説明したようにこの実施例によれば、システムの取
り得る全システム状態を確認することができ、 ■システム開発の初期段階における仕様の決定時におい
て、デッドロックの発生を予知することができるため、
最適なシステム設計ができる。
■デッドロックに陥る原因が正確に把握できるため、信
頼性の高いソフトウェアの開発・設計ができる。
[発明の効果] 以上説明したようにこの発明によれば、デッドロック状
態になるシステムの動作の流れが簡単でしかも正確に把
握でき、システムの仕様書の作成や制御用ソフトウェア
の作成が楽でしかも正確になる効果がある。
【図面の簡単な説明】
第1図は実施例のシステムの概略構成を示すブロック図
、 第2図は状態とその遷移を示す図、 第3図はフラグの出力例を示す図、 第4図は状態の遷移とフラグ及びトリガの関係を示す図
、 第5図は第2図のユニットbよりユニットaへのフラグ
の出力例を示す図、 第6図はフラグの状態と遷移の実行との関係を示す図、 第7図はユニットaよりユニットbへのトリガ出力と遷
移の状態を示す図、 第8図はトリガの状態と遷移の実行との関係を示す図、 第9図は複数のフラグの結合を示す図、第10図は複数
のトリガの結合を示す図、第11図は複数のフラグとト
リガとの結合を示す図、 第12図は複数のフラグと複数のトリガとの結合を示す
図、 第13図はこの実施例におけるファイル作成処理を示す
フローチャート、 第14図はこの実施例における仕様定義め例を示す図、 第15図(A)〜(C)はそれぞれUST%SRT、I
STファイル例を示す図、 第16図(A)(B)はSSTファイルのデータ例を示
す図、 第17図はTTファイルの一例を示す図、第18図(A
)(B)は木構造チャートを示す図、 第19図(A)(B)はワーキングメそすのメそり構成
例を示す図、 第20図は処理Aの詳細動作を示すフローチャート、 第21図(A)(B)は処理A実行後のワーキングメモ
リのメモリ状態を示す図、 第22図は処理Bの詳細を示すフローチャート、 第23図(A)(B)は処理B実行後のワーキングメモ
リの構成例を示す図、 第24図は処理Cの詳細処理を示すフローチャート、そ
して 第25図は処理りの詳細処理を示すフローチャートであ
る。 図中、1・・・制御状態、2・・・遷移、3・・・フラ
グ、4・・・トリガ、10−・・入出力装置、20・・
・ワーキングメモリ、100−・・仕様編集部、110
・・・データベース、200・・・コード変換部、30
0・・・次状態候補選出部・400・・・選好状態識別
部、500・・・デッドロック検出部、60o・・・S
ST作成終了識別部、700・・・木構造チャート作成
部、800・・・木構造チャート表示部、1000・・
・仕様チャート、1110 ・・・U S T (Ll
nit 5equence Table)  ファイル
、1120 ・−I S T (Initlal 5t
ate Table)ファイル、1130−3 RT 
(Systea+ Re5traint Table)
ファイル、1200−3 S T (Syste+aS
equence Table) ファイル、130(1
”TT(Tree Table)ファイルである。 特許出願人 キーヤノン株式会社 代理人 弁理士  大塚康徳(他1名)第2vA 第4図 第1図 第5 第6 第7図 第」0図(B) 第9図(A) 第11図 第12!1 第14図 LIST 第15図 (A) SRT 工ST 第15図 (C) ダリ (X) 第旧図 (A) 第19図 (A) 第22図 第23図 (A) 第24図 (C)

Claims (2)

    【特許請求の範囲】
  1. (1)システムを構成する各ユニットの制御状態及び制
    御シーケンスを記憶する記憶手段と、前記制御状態のう
    ちシステムがデツドロツクとなる制御状態を識別する識
    別手段と、 前記記憶手段に記憶されている制御状態と制御シーケン
    スを基に前記制御状態の流れを表す木構造チャートを作
    成して表示する作成手段と、前記チャート上で前記デツ
    ドロツクとなる制御状態を認識可能に表示する手段と を備えることを特徴とするデツドロツク検出装置。
  2. (2)前記識別手段は前記システムの各ユニットが同時
    に取り得る制御状態のうち、前記各ユニットの制御状態
    全てが遷移するための条件を有しているときに、その制
    御状態をデツドロツクと判定するようにしたことを特徴
    とする請求項第1項に記載のデツドロツク検出装置。
JP63200166A 1988-08-12 1988-08-12 デツドロツク検出装置 Pending JPH0250231A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63200166A JPH0250231A (ja) 1988-08-12 1988-08-12 デツドロツク検出装置
US08/193,645 US5584019A (en) 1988-08-12 1994-02-07 Apparatus and method for predicting the operation of a system in which a plurality of individual processing elements are operated in parallel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63200166A JPH0250231A (ja) 1988-08-12 1988-08-12 デツドロツク検出装置

Publications (1)

Publication Number Publication Date
JPH0250231A true JPH0250231A (ja) 1990-02-20

Family

ID=16419890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63200166A Pending JPH0250231A (ja) 1988-08-12 1988-08-12 デツドロツク検出装置

Country Status (1)

Country Link
JP (1) JPH0250231A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191865A (ja) * 1993-08-03 1995-07-28 Bull Sa オペレーティング・システムにおけるインタブロックの分析方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191865A (ja) * 1993-08-03 1995-07-28 Bull Sa オペレーティング・システムにおけるインタブロックの分析方法

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US5210859A (en) Program debugging support method and apparatus
US5157779A (en) User extensible testing system
EP0690378A1 (en) Tool and method for diagnosing and correcting errors in a computer programm
US6369836B1 (en) Cause effect diagram program
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
US20040093564A1 (en) Method and apparatus for visualizing changes in data
US20050015730A1 (en) Systems, methods and computer program products for identifying tab order sequence of graphically represented elements
US20010014958A1 (en) Information processing apparatus, defect analysis program, defect analysis method, and application program development assistance system
US20080244593A1 (en) Task roster
JPH10307716A (ja) 画面フローによるビジュアルプログラミング装置
US6839893B2 (en) Debugger capable of providing warnings for unreachable breakpoints
US7086033B2 (en) Software debugger having a monitor for monitoring conditional statements within a software program
JP2007304660A (ja) コマンド実行結果記録システム及びコマンド実行結果記録方法
Koskimies et al. SCED: A tool for dynamic modelling of object systems
US6370683B1 (en) Computer software for generating flowchart images of a source program
JP3535354B2 (ja) ストール検出表示装置及び方法
JPH0250231A (ja) デツドロツク検出装置
US5956511A (en) Program development support apparatus, program development support method, and storage medium therefor
JP2000353083A (ja) 要求仕様記述支援装置およびその方法、記録媒体
JPH11224211A (ja) ソフトウェア検査支援装置
JPH02275539A (ja) デバッグ処理方式
JP2009042951A (ja) プログラム中のデータ抽出方法及び装置
JP2003208333A (ja) トレース情報検索装置およびその方法
Gomes et al. Automatically checking conformance on asynchronous reactive systems