JP2007536661A - 二次的に実行されるプロセスにおけるデッドロックを検出する方法 - Google Patents
二次的に実行されるプロセスにおけるデッドロックを検出する方法 Download PDFInfo
- Publication number
- JP2007536661A JP2007536661A JP2007512180A JP2007512180A JP2007536661A JP 2007536661 A JP2007536661 A JP 2007536661A JP 2007512180 A JP2007512180 A JP 2007512180A JP 2007512180 A JP2007512180 A JP 2007512180A JP 2007536661 A JP2007536661 A JP 2007536661A
- Authority
- JP
- Japan
- Prior art keywords
- state
- system model
- deadlock
- active
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
a)オブジェクト指向のシステムモデルの全てのアクティブなオブジェクトを抽出する。
b)アクティブなオブジェクトによって消費されるイベントおよび/または生成されるイベント、オブジェクトの間の遷移、およびオブジェクトの状態振る舞いを記述するシステムモデルを記述するためのUMLシステムモデルの状態マシンのガード条件を少なくとも識別する。
c)所定の状態にある別のオブジェクトを所定の状態において待機するオブジェクトのリストとして、イベントからアクティブなオブジェクト間の状態・待機関係を形成する。
d)相互に待機している2つまたは複数の異なるオブジェクトのインスタンスの周期としての考えられるデッドロック状況を求める。ここで各デッドロック状況に関して、この周期においては1つ以上の状態を持つオブジェクトは包含されておらず、また、この周期のいずれのオブジェクトも周期外のオブジェクトを待機しない。
e)求められた考えられるデッドロック状況の到達可能性を分析するために、求められたデッドロック状況に繋がり且つUMLシステムモデルの状態マシンから導出される全ての考えられるパスを、イベントおよびアクティブな遷移を考慮して、UMLシステムモデルをシミュレーション的に実施することによって検査する。
図1はデッドロックを検出する本発明による方法のフローチャートを示し、
図2は例示的な測定システムモデルの静的なシステム構造(クラス図)を示し、
図3は図2による例示的な測定システムモデルの動的なシステム構造を示し、
図4は例示的な測定システムモデルのコントローラの振る舞いの詳細図を示し、
図5は例示的な測定システムモデルの第1のセンサの振る舞いの詳細図を示し、
図6は例示的な測定システムモデルの第2のセンサの振る舞いの詳細図を示し、
図7は例示的な測定システムモデルのクロックの振る舞いの詳細図を示し、
図8は例示的な測定システムのユーザの振る舞いの詳細図を示し、
図9は潜在的なデッドロックを識別するための例示的な実行の状態待ちグラフを示し、
図10は測定システムモデルを例とした本発明による方法の分析結果を表すシーケンス図を示す。
ガード条件、イベントパラメータ値および属性値。
初期化後に状態「Start」において命令「Controller.Start」によって制御ユニットが始動され、イベント「Give_Measured Value」が制御ユニットから要求されることによって状態「Observer」が呼び出される。続く状態「Observer2」においては制御ユニットによって測定値が待機され、またループにおいては制御ユニットからのリクエスト「Give_Measured Value」によってさらなる測定が要求される。状態は制御ユニットへの命令「Controller.Stop」によって終了される。
Object Action
Object 1 {[state, target object, target event],...}
ここでアクションテーブルにおいては、エントリObjectの下にオブジェクト名を発見することができ、またエントリActionの下に0〜m個の複数のアクションを発見することができ、これらのアクションはそれぞれコンポーネントstate,target object,target eventから構成されている。個数mは遷移によってトリガすることができるアクションの数である。stateは、所属の遷移が切り替えられたときにオブジェクトがアクションを生じさせることができる状態マシンの状態である。target objectは呼出アクションがアドレッシングするオブジェクトである。target eventは、イベントの際に生じ、且つ入力待ち行列に置かれるtarget objectのイベントである。
Object Wait set
Object 1 [State 1, (Object 2. State 1, Object 2. State 2)], [State 2, (Object 3. State 2)]...
ここではアクションテーブルと同様にエントリObjectの下にオブジェクト名が記されている。待機セットは、オブジェクトの状態マシンの各状態に関して、複数のオブジェクト・状態組み合わせを記憶することができるように構成されている。オブジェクト・状態組み合わせは「Object.State」の形式を取り、ここで「Object」は待機されるオブジェクトを表し、「State」は待機される状態を表す。
クラス数=5
オブジェクトリスト = [User -> Object, Con -> Object, Sn1 -> Object, Sn2 -> Object, U -> Object]
クラスリスト = [User -> Class, Controller -> Class, Sensor1 -> Class, Sensor -> Class, Clock -> Class]
アクションテーブル
Object Action
User ([Start, Con, Start])
Con ([Parameterizing, U, Start], [Measurement1, Sn2, Request_Measured Value], [Measurement2, User, Give_Measured Value], [Measurement2, Sn1, Request_Measured Value], [Measurement2, Clock, Stop], [Measurement2, Sn1, Stop], [Measurement2, Sn2, Stop])
Sn1 ([Measure, U, Request_Time Stamp_Sensor1], [Fetch_Time, Con, Give_Measured Value_Sensor1])
Sn2 ([Measure, U, Request_Time Stamp_Sensor2], [Fetch Time, Con, Give_Measured Value_Sensor2])
U ([current, Sn1, Give_Time Starnp], [Request_One, Sn2, Give_Time Stamp])
待機セットテーブル:
Object Wait set
User [Observe, (Con.Measurement2)], [Observe2, (Con.Measurement 2)]
Con [Parameterizing, (User.Start)], [Measurement1, (Sn1.Fetch_Time)], [Measurement2, (User.Observe2)]
Sn1 [Measure, (Con.Measurement2)], [Fetch_Time (U.Current)]
Sn2 [Measure, (Con.Measurement1)], [Fetch_Time, (U.Request_One)]
U [Parameterizing, (Con.Perametering)], [Current, (Sn2.Measure)], [Request_One, (Sn2.Measure, Con.Measurement2)]
a)1つのオブジェクトが複数の状態を有し、デッドロックに関与している。
b)デッドロックに関与しないオブジェクトについてのエッジが存在する。
c)ただ1つのオブジェクトのみがデッドロックに関与している。
((User.Observe2, Con.Measurement2), (Con.Measurement1, Sn1.Fetch_Time, U.Current, Sn2.Measure))
((Con.Measurement1, Sn1.Fetch_Time, U.Current, Sn2.Measure))
パスリスト = {[(Z1, Z2),...,(Zi, Zj)],...},
ここで(Z1,Z2)は対応付けられた組であり、Z1は遷移の起源状態であり、Z2は遷移の目標状態を表し、Zjは潜在的なデッドロック状況のセットにある。
<O_1.Z,...,O_n.Z, O_1.A_1,...,O_n.A_m, ES_1,... ES_n>
によって与えられており、ここでO_i, 1< i <n, m >= nはそれぞれのオブジェクトを表し、またZはオブジェクトのその都度の目下の状態を表す。
A_j, 1 <= j <= mは該当するオブジェクトのその都度の属性の目下の値であり、また
ES_iはO_iの入力待ち行列である。
{[M_a, (O.Z_a, O.Z_b), M_z]},
ここでM_aはモデルの初期状態であり、M_zはシミュレーションの中断前の最後の状態であり、(O.Z_a, O.Z_b)はオブジェクトのZ_a,からZ_bへの遷移を表す。
入力:
選別後の潜在的なデッドロック状況のセット = {{Con.Measurement1, Sn1.Fetch_Time, U.Current, Sn2.Measure}}
出力:
Path List_User = {(Start, Observe)}
Path List_Con = ({Parameterizing, Measurement1)}
Path List_Sn1 = {(Measure,Fetch_Time)}
Path List_Sn2 = {}
Path list_U = {(Parameterizing, Current)}
Trace_Set = {<User.Start, Con.Parameterizing, Sn1.Measure, Sn2.Measure, U.Parameterizing, Con.A.Measured value1 = 99.9, Con.A.Measured value2 = 99.9, Sn1.A.Current = 999, U.A.Time stamp = 999, User.ES = [], Con.ES = [], Sn1.ES = [], Sn2. ES = [], U.ES = []>, (User.Start, User.Observe), <User.Observe, Con.Parameterizing, Sn1.Measure, Sn2.Measure.U.Parameterizing, Con.A.Measured value1 = 99.9, Con.A.Measured value2 = 99.9, Sn1.A.Current = 999, U.A.Time stamp = 999, User.ES = [], Con.ES = [Start], Sn1.ES = [], Sn2.ES = [], U.ES = []>, (Con.Parameterizing, Con.Measurement1), > User.Observe, Con.Measurement1, Sn1.Measure, Sn2.Measure, U.Parameterizing, Con. A.Measured value1 = 99.9, Con.A.Measured value2 = 99.9, Sn1.A.Current = 999, U.A Time stamp = 999, User.ES =[], Con.ES = [], Sn1.ES = [Request_Measure Value], Sn2.ES = [], U.ES = [Start] >, (U.Parameterizing.U.Current), <User.Observe, Con.Measurement1, Sn1.Measure, Sn2.Measure, U.Current, Con.A.Measured value1 = 99.9, Con.A.Measured value2 = 99.9, Sn1.A.Current = 999, U.A.Time stamp = 999, User.ES = [], Con.ES = [], Sn1.ES = [Request_Measured Value], Sn2.ES = [], U.ES = [] >, (SN1.Measure, Sn1.Fetch_Time), <User.Observe, Con.Measurement1, Sn1.Fetch_Time, Sn2.Measure, U.Current, Con.A.Measured value1 = 99.9, Con.A.Measured value 2 = 99.9, Sn1.A.Current = 999, U.A.Time stamp = 999, User.ES = [], Con.ES = [], Sn1.ES = [], Sn2.ES = [], U.ES = [Request_Time Stamp_Sensor1]>}
Claims (9)
- リアクティブシステムのオブジェクト指向で記述されたシステムモデルに関して、或る状態にある少なくとも1つのオブジェクトが所定の状態にある異なるオブジェクトを待機する、二次的に実行されるプロセスにおけるデッドロックを検出する方法において、
a)オブジェクト指向の前記システムモデルの全てのアクティブなオブジェクトを抽出するステップを有し、
b)アクティブな前記オブジェクトによって消費されるイベントおよび/または生成されるイベント、前記オブジェクトの間の遷移、および前記オブジェクトの状態振る舞いを記述する前記システムモデルの状態マシンのガード条件を少なくとも識別するステップを有し、
c)所定の状態にある別のオブジェクトを所定の状態において待機するオブジェクトのリストとして、イベントから前記アクティブなオブジェクト間の状態・待機関係を形成するステップを有し、
d)相互に待機している2つまたは複数の異なるオブジェクトのインスタンスの周期としての考えられるデッドロック状況を求めるステップを有し、この際、前記周期においては1つ以上の状態を有するオブジェクトは包含されておらず、且つ前記周期のいずれのオブジェクトも前記周期外のオブジェクトを待機せず、
各デッドロック状況に関して、
e)求められた前記考えられるデッドロック状況の到達可能性を分析するために、求められたデッドロック状況に繋がり且つ前記システムモデルの前記状態マシンから導出される全ての考えられるパスを、前記イベントおよびアクティブな前期遷移を考慮して、前記システムモデルをシミュレーションすることによって検査するステップを有することを特徴とする、二次的に実行されるプロセスにおけるデッドロックを検出する方法。 - 全てのアクティブなオブジェクトを抽出する前記ステップa)において、前記アクティブなオブジェクトを前記システムモデルの静的および動的な構造態様から抽出し、オブジェクトリストに記憶する、請求項1記載の方法。
- 各アクティブなオブジェクトに対して、対応付けられているクラスをクラスリストに記憶し、前記クラスリストにおける各クラスに対して、状態マシンを特定するために所属の状態図を評価し、特定された前記状態マシンを状態マシンリストに記憶する、請求項1または2記載の方法。
- 公知の深さ優先探索方式を用いて、前記考えられるデッドロック状況を求める、請求項1から3までのいずれか1項記載の方法。
- 求められた前記考えられるデッドロック状況の到達可能性の検査を、前記システムモデルの初期状態に基づいて、その都度のアクティブな遷移を求め、且つ前記システムモデルを前記デッドロックイベントに近付けるアクティブな遷移を選択することによって発見的に行う、請求項1から4までのいずれか1項記載の方法。
- 前記所属のオブジェクトに関する前記ガード条件が真であり、且つ前記オブジェクトの前記イベントが入力待ち行列にある場合にアクティブな遷移が存在する、請求項5記載の方法。
- 各デッドロック状況に関して考えられる全てのパスを検査する前記ステップe)を、デッドロック状況に到達するか、全てのパスが所定数(n)実行されるまで反復的に実施する、請求項1から6までのいずれか1項記載の方法。
- 前記システムモデルは統一モデリング言語で記述されている、請求項1から7までのいずれか1項記載の方法。
- コンピュータプログラムが計算機上で実施される場合に、請求項1から8までのいずれか1項記載の方法を実施するプログラムコード手段を備えたコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102004021975A DE102004021975A1 (de) | 2004-05-04 | 2004-05-04 | Verfahren zur Bestimmung von Verklemmungen in nebenläufigen Prozessen |
PCT/EP2005/051986 WO2005109196A1 (de) | 2004-05-04 | 2005-05-02 | Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007536661A true JP2007536661A (ja) | 2007-12-13 |
JP4637175B2 JP4637175B2 (ja) | 2011-02-23 |
Family
ID=34967422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007512180A Expired - Fee Related JP4637175B2 (ja) | 2004-05-04 | 2005-05-02 | 二次的に実行されるプロセスにおけるデッドロックを検出する方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080092147A1 (ja) |
EP (1) | EP1745375A1 (ja) |
JP (1) | JP4637175B2 (ja) |
DE (1) | DE102004021975A1 (ja) |
WO (1) | WO2005109196A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282165A (ja) * | 2007-05-09 | 2008-11-20 | Toshiba Mitsubishi-Electric Industrial System Corp | バッチ制御装置及びバッチ制御方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070101338A1 (en) * | 2005-10-31 | 2007-05-03 | Microsoft Corporation | Detection, diagnosis and resolution of deadlocks and hangs |
US7958512B2 (en) * | 2005-10-31 | 2011-06-07 | Microsoft Corporation | Instrumentation to find the thread or process responsible for an application failure |
US10283978B2 (en) * | 2016-06-27 | 2019-05-07 | Lg Chem, Ltd. | Diagnostic system for a battery system |
US10108767B1 (en) * | 2016-09-30 | 2018-10-23 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing deadlock detection with formal verification techniques in an electronic design |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03201047A (ja) * | 1989-12-22 | 1991-09-02 | Internatl Business Mach Corp <Ibm> | デツドロツクを検出して解決する方法及びフアイルを共有するデータ処理装置 |
US5734837A (en) * | 1994-01-14 | 1998-03-31 | Action Technologies, Inc. | Method and apparatus for building business process applications in terms of its workflows |
WO2003075157A2 (de) * | 2002-03-07 | 2003-09-12 | Infix Software-Systeme Gmbh | Verfahren, software-produkt und system zur universellen computergestützten informationsverarbeitung |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832484A (en) * | 1996-07-02 | 1998-11-03 | Sybase, Inc. | Database system with methods for parallel lock management |
KR20010020250A (ko) * | 1997-05-08 | 2001-03-15 | 코야마 리오 | 객체 지향의 프로그래밍 언어를 위한 하드웨어 가속기 |
EP0938045A1 (en) * | 1998-02-19 | 1999-08-25 | IMEC vzw | Method and apparatus for efficient verification using a generalised partial order analysis |
US20050237949A1 (en) * | 2000-12-21 | 2005-10-27 | Addessi Vincent M | Dynamic connection structure for file transfer |
US7715819B2 (en) * | 2001-08-03 | 2010-05-11 | The Boeing Company | Airborne security manager |
US7337290B2 (en) * | 2003-04-03 | 2008-02-26 | Oracle International Corporation | Deadlock resolution through lock requeing |
-
2004
- 2004-05-04 DE DE102004021975A patent/DE102004021975A1/de not_active Withdrawn
-
2005
- 2005-05-02 US US11/579,554 patent/US20080092147A1/en not_active Abandoned
- 2005-05-02 JP JP2007512180A patent/JP4637175B2/ja not_active Expired - Fee Related
- 2005-05-02 EP EP05742661A patent/EP1745375A1/de not_active Withdrawn
- 2005-05-02 WO PCT/EP2005/051986 patent/WO2005109196A1/de not_active Application Discontinuation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03201047A (ja) * | 1989-12-22 | 1991-09-02 | Internatl Business Mach Corp <Ibm> | デツドロツクを検出して解決する方法及びフアイルを共有するデータ処理装置 |
US5734837A (en) * | 1994-01-14 | 1998-03-31 | Action Technologies, Inc. | Method and apparatus for building business process applications in terms of its workflows |
WO2003075157A2 (de) * | 2002-03-07 | 2003-09-12 | Infix Software-Systeme Gmbh | Verfahren, software-produkt und system zur universellen computergestützten informationsverarbeitung |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282165A (ja) * | 2007-05-09 | 2008-11-20 | Toshiba Mitsubishi-Electric Industrial System Corp | バッチ制御装置及びバッチ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102004021975A1 (de) | 2005-12-01 |
WO2005109196A1 (de) | 2005-11-17 |
EP1745375A1 (de) | 2007-01-24 |
JP4637175B2 (ja) | 2011-02-23 |
US20080092147A1 (en) | 2008-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aichernig et al. | Killing strategies for model‐based mutation testing | |
CN101286132B (zh) | 一种基于软件缺陷模式的测试方法及*** | |
Lima et al. | Formal verification and validation of UML 2.0 sequence diagrams using source and destination of messages | |
US20110016452A1 (en) | Method and system for identifying regression test cases for a software | |
Calinescu et al. | Compositional reverification of probabilistic safety properties for large-scale complex IT systems | |
CN105074656B (zh) | 管理并发谓词表达式的方法和装置 | |
Jungmayr | Testability measurement and software dependencies | |
JP4637175B2 (ja) | 二次的に実行されるプロセスにおけるデッドロックを検出する方法 | |
Delahaye et al. | Probabilistic contracts: A compositional reasoning methodology for the design of stochastic systems | |
Apvrille et al. | Prototyping an embedded automotive system from its UML/SysML models | |
Suman et al. | Extracting State Models for Black-Box Software Components. | |
Moreno-Delgado et al. | Modular DSLs for flexible analysis: An e-Motions reimplementation of Palladio | |
Iftikhar et al. | A model interpreter for timed automata | |
CN105027089B (zh) | 内核功能性检查器 | |
Beringer et al. | Consistency Analysis of AUTOSAR Timing Requirements. | |
Omri et al. | An enhanced fault prediction model for embedded software based on code churn, complexity metrics, and static analysis results | |
Klein et al. | Verifying Opacity of Discrete-Timed Automata | |
Khalili et al. | PDETool: A multi-formalism modeling tool for discrete-event systems based on SDES description | |
Gougam et al. | Discriminability analysis of supervision patterns by net unfoldings | |
Hunter et al. | Systematically deriving partial oracles for testing concurrent programs | |
Drusinsky et al. | Validating quality attribute requirements via execution‐based model checking | |
Ding | Static analysis of concurrent programs using ordinary differential equations | |
Damasceno et al. | Testing real-time systems from compositional symbolic specifications | |
Almasri et al. | Maintenance-Oriented Classifications of EFSM Transitions. | |
Andersson et al. | A framework for analysis of timing and resource utilization targeting complex embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091030 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100128 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100204 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100301 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100308 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100326 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100402 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101022 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101122 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |