JPH02211546A - 資源の相互排他制御方法及びシステム - Google Patents

資源の相互排他制御方法及びシステム

Info

Publication number
JPH02211546A
JPH02211546A JP1031146A JP3114689A JPH02211546A JP H02211546 A JPH02211546 A JP H02211546A JP 1031146 A JP1031146 A JP 1031146A JP 3114689 A JP3114689 A JP 3114689A JP H02211546 A JPH02211546 A JP H02211546A
Authority
JP
Japan
Prior art keywords
task
node
graph
nodes
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1031146A
Other languages
English (en)
Other versions
JPH0769842B2 (ja
Inventor
Masaki Hasegawa
雅樹 長谷川
Takashi Tenmyo
天明 崇
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.)
NIPPON I B M KK
IBM Japan Ltd
Original Assignee
NIPPON I B M KK
IBM Japan 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 NIPPON I B M KK, IBM Japan Ltd filed Critical NIPPON I B M KK
Priority to JP1031146A priority Critical patent/JPH0769842B2/ja
Priority to EP90301431A priority patent/EP0383506B1/en
Priority to DE69024072T priority patent/DE69024072T2/de
Priority to US07/478,818 priority patent/US5283896A/en
Publication of JPH02211546A publication Critical patent/JPH02211546A/ja
Publication of JPH0769842B2 publication Critical patent/JPH0769842B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

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)
  • Programmable Controllers (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明は、事象駆動型プロセスにおける逐次的利用可
能資源の相互排他制御方法及びシステムに関するもので
ある。ここで制御する逐次的利用可能資源の対象は、計
算機およびプログラマブル・ロジック・コントローラな
どが制御する資源である。
B、従来の技術及びその問題点 最近のコンピュータ技術では、マルチタスク。
マルチプロセス、分散処理が重要な課題になっている。
これらの技術を実現する為には、複数のタスクまたはプ
ロセスが並列実行される際に、資源を幾つかのタスクま
たはプロセスで共有しなくてはならない、この資源を共
有資源とよび、例えば種々の周辺装置、ディスク、メモ
リ、過信回線、プログラム、データ等が挙げられる。−
時に一つのタスクまたはプロセスでしか専有できない共
有資源を重要資源という。
事象駆動型プロセスにおける資源の相互排他制御の問題
は、事象駆動型プロセスが並列に実行され、それらのプ
ロセスが共有資源を使用するときに起きる。資源の相互
排他制御とは、高だか1つのプロセスしか共有資源を専
有しないための機構である。また並列実行のプロセスの
中で、共有資源を専有する部分を危険区間という、これ
は、複数のプロセスが並列実行される際の資源の共有問
題であり、プロセス間の通信及び同期化問題として提起
されている。これを解決するために、従来より多くの手
法が提案されモデルを用いて解析されてシステムの中で
用いられている。この同期化問題としては、相互排他問
題、生産者消費者問題、食事をする哲学者問題、読みだ
し書きこみ問題がある。
現在は、並列実行システム実現の際1重要な問題となる
複数のプロセス間の資源の相互排他制御はセマフォ等を
使いプログラマが注意して書く以外に方法がない、この
ように、プログラマが並列実行するプログラムを書くと
き、又はオペレータはその環境下でプログラムを実行す
るときに、常に資源割当を意識しなくてはならない、こ
れは、プログラマやオペレータにとって負担である。
以下に、セマフォを用いたプログラミングの1例を示す
、今、第2図に模式的に示す事象駆動型の3つのプロセ
スの流れGi、G、、G、があるとしよう、第1のプロ
セスの流れG1では、タスクp1とp、が連続して・実
行される。タスクpユが共有資源AとCを使いながら実
行された後、統いてタスクp2が共有資源BとCを使い
ながら実行される。
第2のプロセスの流れG2では、タスクP、が実行され
る。タスクP2は共有資源A、B、Cを使いながら実行
される。第3のプロセスの流れG3では、タスクP、と
P、が並列に実行される。タスクP、は共有資源AとC
を使いながら実行され、タスクP、は共有資源BとCを
使いながら同時に実行される。t□〜t、はタスクの始
点または終点を示している。第2図に登場する資源のう
ち1重要資源はAとBであり、かつ重要資源Aはロボッ
ト2、重要資111(Bはロボット1であるとする。
現在は、はとんどの場合において、プログラミングが各
重要資源(マニファクチャリング・プロセスに於ける生
産機器のコントローラ、ネットワーク・システムに於け
るコンピュータ)上で行なわれており、各重要資源上の
プログラムと、それらを制御するプログラムが必要にな
る。この例を第3図に示す。第3A図は全体を制御する
プログラム、第3B図はロボット1のプログラム、第3
C図はロボット2のプログラムである。
ここでは、並列実行を記述する構文は次のとおりである
cobegin Pl ; oend ここでPl、P2は並列実行されるタスクである。
また、危険区間を記述する構文は次のとおりである。
with  Rd。
begin and ここで、Rは相互排除すべき重要資源に対する一意名で
あり、Sは相互排除すべき危険区間である。
この場合Rがセマフォとなる。
第3A図において、R(p)は第3B図、第3C図で示
す、それぞれのロボットのプログラムである。Rにパラ
メタpを渡すとRのプログラムはpのタスクのみが実行
される。
危険区間を記述する構文およびそのメカニズム。
並列実行を記述する構文およびそのメカニズムは、−船
釣にプログラマに供給されておらず、その記述およびそ
のメカニズムの作成、そして相互排他制御のデバッグは
プログラマの責任となる。
さて、システムのモデリングに多く用いられてきた手法
の一つにペトリネットがある。ペトリネットの特徴は、
並列性あるいは同時進行性と非同期性であり、その実行
は離散的な事象の系列と考えることができ、いつ事象が
発生するかは非決定的である。この特徴及び実行形態を
利用して事象能動型の制御に利用しようとする試みがな
されている。また、ペトリネットの数学的解析性の良さ
とモデル化能力の高さに注目して、並列実行システム(
計算機モデル、マニファクチャリング・プロセス)のシ
ュミレーションに使われている。
ペトリネットの概略を説明する。
ペトリネットはプレース、トランジション、アーク、ト
ークンの4つから構成されており、プレースは事象を、
トランジションは条件、アークは経路、トークンは状態
を表わす。トークンはトランジションの条件に従ってプ
レース間の経路を移動し、プレースに対応した事象を引
き起こす。
第4図は、ペトリネットの実行例である。この例では、
トランジションT=(a、 b、tc)、プレースP=
(PX、Py、Pz)、ト−クンを用いて説明する。ま
ず、  aは、  Xにトークンがなければ、トークン
を発生させ、  Xp に置く(第4A図)、 bは Xにトークンがありかつ
Py、Pzにトークンがなければ、トーク、  p  
  p                  tノを 
y、  zに移す(第4B図)、 cはトークンが y
、   zあれば、Py、PzよりトークP ンを取りだして、このトークン消滅させる。なお、ペト
リネットの詳細については、例えば(1)Peters
on、J、L、著 ”Petri Net Theory and the
 Modeling ofSystems”、Pren
tice−Hall Inc、、1981を参照された
い。
最近は、プログラマがグラフィック・エディタを用いて
第2図または第4図のようなプロセスの流れを記述し、
これをコードに変換して全体を制御するプログラムを作
成し、実行時には該プログラムに基づいて、タスクの開
始を命じたり終了信号を受は取ったりしつつ、これらの
信号に応じて、トークンを自動的に移動させていくシス
テムも提案されている。例えば、 (2))Iasegatsa、 に、and  Tak
ahashi、 に1、 ″阿FG(MarkFlow
 Graph)−Based Programmabl
e Controllerand its Appli
cation to FMS、”Proceeding
s ofthe  International  C
onference  on  SystemEngi
neering、pp306−311.1984.。
を参照されたい。
しかしながら、従来のこの種の制御システムにおいて、
相互排他制御を考慮したものはない。
また、プログラミングではなくモデル化の方面において
ではあるけれども、資源の空状態にあたるプレース(空
プレース)を作成し、その資源を使うタスクのプレース
と繋ぎ、危険区間を設定することによって、相互排他制
御のモデル化が行われている。ここでは、ペトリネット
の重要な性質である保存性を利用している。その空プレ
ースには、初期マーキングとしてトークンが入っており
、資源を使用されないときは、常にトークンが入ってい
る。あるプロセスが危険区間に入っていて、資源を使用
しているとき、空プレースにはトークンがない、他のプ
ロセスが同じ資源を使おうとして、危険区間に入ろうと
すると、空プレースにはトークンがなく、発火条件が満
たされないので。
プロセスは実行できない、資源を使用しているプロセス
が終了し、資源を解放して空プレースにトークンが戻る
まで、他のプロセスの実行は待たされる。
第5図にこのようなモデル化の1例を示す。
プレースmは危険区間に入るための許可をあられす、あ
るプロセスが危険区間に入るには、PLまたはp2にト
ークンを入れて危険区間に入りたいという合図を出し、
危険区間に入ってよいという合図すなわちmのトークン
を待って危険区間にアクセスすることとなる0両方のプ
ロセスが危険区間に入りたいときには、トランジション
t、とt2は競合となり、どちらか一方しか発火できな
い。
tlの発火はt2を発火不能とし、プロセス1が危険区
間を終わってトークンをmに戻すまでプロセス2は待機
するこことなる。
では、第5図のような重要資源の空プレースを含んだグ
ラフを作成してこれをコードに変換することによって、
相互排他制御を考慮した全体の制御プログラムを作成し
、上記文献(2)に示されるシステムの如く、トークン
を自動的に移動させていけば、相互排他制御が容易に実
現されるだろうか、残念ながら、答は「否」である、そ
の理由を以下に述べる。
(1)まず、空プレースをペトリネットの中に組み込ま
なければならない、プログラマが重要資源を意識してそ
の空プレースをペトリネット中の適切な場所に組み込ん
でいくとすれば、その労力はセマフォを用いたプログラ
ミングと同等のものになるであろう、第5図のような簡
単な事例ならともかく、第6図のように事例が少し複雑
になるだけで、ペトリネットの作成は大幅に困難になる
(2)実行時において、ユーザが、まず空プレース(資
源プレース)をタスク・プレースと区別した後、空プレ
ースのすべてに初期トークンを置かなければならない、
これはユーザーに大きな負担をかけることになる。
(3)ペトリネットの表現自体に起因してデッドロック
が生じる場合がある。
第6図を例にとって説明しよう、今、第6A図のような
状態にあるとする。すなわち、タスクP8、P4が実行
中であり、資源Px、Pyは空いている。なお、資源P
xは、タスクP2、P3゜P6で使用される。資源Py
は、タスクP3、P5、P6で使用される。
第6A図の状態にあるならば、制御システムがタスクP
2、P、の実行を開始できることは明らかである。よっ
て、1..14は、トークンをそれぞれP2.P、に移
す、ここで注意すべきは、第5図、第6図のような表現
では危険区間の両端と資源の空プレースとを繋いでいる
ため、タスクP2に続いてタスクP3の実行が終了する
までPxの空きプレースにトークンが移ることはとなく
、同様に、タスクP5に続いてタスクP6の実行が終了
するまでPyの空きプレースにトークンが移ることはな
いことである。タスクp、、psの実行開始後のトーク
ンの位置を第6B図に示す、さて、タスクP2の実行が
終了しても、制御システムはタスクP3の実行を開始で
きない、Pyの空きプレースにトークンがないからであ
る。タスクP、の実行が始まらない限りはPxの空きプ
レースにトークンが戻ることもない、よってタスクP6
の実行が開始されることもない、このように、トランジ
ションし2と1sが発火できずデッドロックが起こる。
ペトリネットでは、発火できないトランジッションおよ
びその集合をデッドロックという。
数学的に表現するなら、ペトリネット構造をGとすると
、G= (P、T、O)である、ここで。
p= (p、、 p、、・・・ PM)は、プレースの
集合であってMhoである。T=(T工、T2.・・・
、T)は、トランジッションの集合であってL>1であ
る。プレースの集合とトランジッションの集合とは互い
に素であり、PnT=φである。I : P−>Tは、
プレースからトランジッションへの入力関数である。o
:’r−>pは、トランジッションからプレースへの出
力関数である。このペトリネット構造に、プレースへの
トークンを割り当てたマーキングμを加えたものをマー
クペトリネットという。
トークンはプレースのみに存在し、トランジッションの
発火が実行を制御している。トランジッションの発火は
、トークンが入力ブレースから出力ブレースへ移動する
ことである。ペトリネット構造は、グラフ理論において
は双対である。マークペトリネットにおいては双対の定
義が困難なため、双対の概念が利用されていない。
C0問題点を解決するための手段 本発明による資源の相互排他制御方法は、(a)プロセ
スの流れに含まれるタスク及び何れかのタスクによって
専有され得る重要資源がノードに対応され、逐次実行さ
れるタスクのノードは直列に配置されるとともに、並列
して実行されるタスクのノード同士は並列に配置され1
重要資源のノードは該重要資源を専有し得るすべてのタ
スクのノードと並列に配置されてなるグラフを記憶装置
上に作成し、 (b)タスクの実行開始信号を送る度に、上記グラフ中
の該タスクのノード及び該ノードに並列に配置された重
要資源のノードにトークンを発生させ、プロセスの流れ
の中で先行するタスクの実行の終了を検知したとき、上
記グラフを参照して、直接の後続タスクのノード又は該
ノードに並列に配置された重要資源のノードの何れか1
つにトークンが存在している間は、直接の後続タスクの
実行開始信号の送出を待機する ことを特徴とする。
上記ステップ(a)では、上記グラフにおいて、連続し
て実行されるタスクのノード同士を連結する位置にゲー
トのノードが設けられ、 上記ステップ(b)では、タスクの実行の終了を検知す
る度に、該タスクのノード及び該ノードに並列に配置さ
れた重要資源のノードに存在するトークンを消滅させ。
ゲート・ノードの直前に配置された何れのタスク・ノー
ドに対応するタスクについても実行の終了を検知したと
き、該ゲート・ノードにトークンを発生させ、その後、
上記グラフを参照して、該ゲート・ノードの直後に配置
された後続タスクのノード又はこれと並列に配置された
重要資源ノードの何れか1つにトークンが存在している
間は、該後続タスクの実行開始信号の送出を待機し、該
後続タスクの実行開始信号を送った後に、該ゲート・ノ
ードのトークンを消滅させることが好ましい。
本発明による好ましい資源の相互排他制御システムは、
プロセスの流れに含まれるタスク及び何れかのタスクに
よって専有され得る重要資源に対応するノードを持ち、
逐次実行されるタスクのノードは直列に配置されるとと
もに、並列して実行されるタスクのノード同士は並列に
配置され、タスクのノード同士を連結する位置にゲート
のノードが配置され1重要資源のノードは該重要資源を
専有し得るすべてのタスクのノードと並列に配置されて
なるグラフを保持する記憶装置と。
タスクの実行開始信号を送る度に、上記グラフ中の該タ
スクのノード及び該ノードに並列に配置された重要資源
のノードにトークンを発生させる手段と、 タスクの実行の終了を検知する度に、該タスクのノード
及び該ノードに並列に配置された重要資源のノードに存
在するトークンを消滅させる手段と、 ゲート・ノードの直前に配置された何れのタスク・ノー
ドに対応するタスクについても実行の終了を検知したと
き、該ゲート・ノードにトークンを発生させ、その後、
上記グラフを参照して、該ゲート・ノードの直後に配置
された後続タスクのノード又はこれと並列に配置された
重要資源ノードの何れか1つにトークンが存在している
間は、該後続タスクの実行開始信号の送出を待機し、該
後続タスクの実行開始信号を送った後に、該ゲート・ノ
ードのトークンを消滅させる手段、を具備する。
D、実施例 第1図は、この発明の実施例のシステム構成図である。
以下、この図のステップ81〜S8を順に説明する。
(a)プロセス・フロー・グラフの作成(ステップS1
) ユーザは、単位プロセスをタスクとして、事象恥動型プ
ロセスを表現するプロセス・フロー・グラフを作成する
。ここで作成されるプロセス・フロー・グラフは、安全
で且つ活性の性質を持つ制限された(多重核も自己ルー
プもない)ペリトネット・グラフと等価である。プロセ
ス・フロー・グラフの定義は、[数学的な表現]の項を
参照されたい。
このプロセス・フロー・グラフの作成法としては、グラ
フィックス・エディタを用いてグラフィカル・シンボル
で記述した後、それをテキスト表現に変換する方法と、
テキスト・エディタを用いて文字コードで直接記述する
方法がある。ここで作成されたプロセス・フロー・グラ
フをプロセス・フロー・プログラムとも呼ぶ。
本実施例では、ユーザが対話的にグラフィクス・エディ
タによって記述する。第7図は、プロセス・フロー・プ
ログラムのグラフィカルな表現である。
プロセス・フロー・グラフ上の制御単位をタスクと呼び
、プログラム・ファイルに対応している(第8図参照)
第7図を用いて、プロセス・フロー・グラフの定義に従
った実行例を説明する。トークンがコンデイション・ゲ
イトCiまたはC4に発生する。トークンがコンデイシ
ョン・ゲイトC1に発生した場合は、タスク・プレース
TいT2にトークンが移動し、タスクTユ、T2がそれ
ぞれ資源Rp、−’ Reを使いながら実行される。タ
スクT工、T2がどちらも終了すると、コンデイション
・ゲイトC2の条件により、トークンは、タスク・プレ
ースT、に移動する。タスクT3は資源R3を使いなが
ら実行される。そして、タスクT、が終了すると、トー
クンは、プレースT1からコンデイション・ゲイトC1
に移動し、消滅する6次に、トークンがコンデイション
・ゲイトC4に発生した場合は、タスク・プレースT、
にトークンが移動し、タスクT4が資源RA&使いなが
ら実行される。タスクT4が終了すると、コンデイショ
ン・ゲイトC8の条件により、トークンは、タスク・プ
レースT、に移動する。タスクT5は資源RA−Rnを
使いながら実行される。そして、タスクT5が終了する
と、トークンは、プレースT、からコンデイション・ゲ
イトC1に移動し、消滅する。この実行例では、資源の
相互排他制御は、含まれていない、ここで。
コンデイション・ゲイトとは、ペトリネット・モデルに
おけるトランジションに相当するものだが、それ自体に
トークンを置き得るという点でトランジションと決定的
に異なっている。この点については後で詳しく述べる。
プロセス・フロー・プログラムのテキスト表現を、プロ
セス・フロー・グラフの中間コードの形で作成する。こ
れは、グラフィカルな表現と等価であり、相互変換がで
きる。以後グラフのテキスト表現を単に中間コードとも
呼ぶ。
プロセス・フロー・グラフの中間コードの書式%式% : 入力ブレース(、入力ブレース・・・)/出力ブレース
(、出力ブレース・・・)第7図の実施例の中間コード
は、下記のようになる。
C1: /Tい T3 C,: T1、T l / T 3 C3: T3/ C4:/T4 C,: T、/T。
Cs : Ts/ (b)資源管理グラフの生成(ステップS2.83)こ
のプロセス・フロm−グラフとタスク・プログラムより
、資源管理グラフを生成する。タスク・プログラムの中
よりタスクに必要な重要資源の資源名を抽出し、そのリ
ストを生成する。第8図に示すようにタスク・プログラ
ムがテキストで記述された場合、その中で記述される重
要資源は、資源の論理記号、資源の論理番号、資源の論
理名などで記′述される。プロセス・フロー・グラフと
資源名を抽出したリストから資源管理グラフを生成する
。第9図が、第7図のプロセス・フロー・グラフとその
タスクで必要な重要資源の資源名リストより生成された
資源管理グラフを示す。
なお、第8図に示す如く、ユーザは、タスクのつながり
を記述するプロセス・フロー・グラフにおいても、また
、個々のタスクを記述するタスク・プログラムにおいて
も、プログラム作成時にセマフォ等を使って資源管理を
意識する必要は一切ないことに注意されたい。
本実施例では、タスク・プログラムの作成は、テキスト
・エディタを用いて対象指向型言語で記述され、その書
式は下記の通りである。
資源の論理名:コマンド タスク・プログラム中の資源の論理名から、タスクの中
で用いる重要資源名を抽出したリストを作り、このリス
トとプロセス・フロー・グラフより資源管理グラフを生
成する。
資源管理グラフの中間コードの書式を、プロセス・フロ
ー・グラフの中間コードの書式と同じにすると、第9図
の実施例の中間コードは、下記のようになる。
C工:/RA、 R8 C・: RA、 RB/RB C,: RB/ C・:/RA C・= RA / RA −Rs C・: RA、 RB/ 第10図は、資源名リストでプロセス・フロー・グラフ
からこのような中間コードを生成するためのアルゴリズ
ムを示すフロー・チャートである。
なお、すべての資源が重要である場合には、タスク・プ
ログラムに含まれるすべての資源名を自動的に抽出する
ことによって資源名リストを作成してもよい、資源名リ
ストはユーザが重要資源名を指定して作成してもよい。
(C)プロセス・リソース・グラフの生成(ステップS
4、S5.S6) プロセス・リソース・グラフの生成の過程を、フロー・
チャートとして第11図に示す。このフロー・チャート
に従って説明を行う。プロセス・フロー・グラフと資源
管理グラフをロードしくステップ111,112)、そ
れらから共通結合のグラフを生成する(ステップ113
)。
第7図のプロセス・リソース・グラフと第9図の資源管
理グラフから生成される共通結合のグラフを、第12図
に示す。
共通結合グラフの中間コードの書式を、プロセス・フロ
ー・グラフの中間コードの書式と同じにすると、第12
図の共通結合グラフの中間コード表現は、下記のように
なる。
C1:/TいT、、 RA、 RB C,: T1、T2、RA、 RB/ T 3、RBC
,: T□、RB/ C,: /T、、 RA Cs: T4. R/T、、 RA、 RBC,: T
、、 RA、 RB/ 第13図は、プロセス・フロー・グラフと資源管理グラ
フとからこのような中間コードを生成するためのアルゴ
リズムを示すフロー・チャートである。つまり、第11
図のステップ113を詳述したものである。
ところで、このようにして生成された共通結合のグラフ
を無条件でそのままプロセス・リソース・グラフと見做
すと、デッドロックが生じる場合がある。
第14図を使ってデッドロックが生じる場合を示す、初
期状態としてトークンがコンデイション・ゲイトC1に
ある。タスクT工が資源RA&使い、タスクT、が資源
RA、R8を使いながら実行しなければならないので、
デッドロックが起きるゆ本実施例では、共通結合のグラ
フのデッドロックが生じないグラフを、プロセス・リソ
ース・グラフとする。これに従って実行すると、事象即
動型プロセスの制御と資源の相互排他制御が同時に行え
る。共通結合のグラフがデッドロックを生じる場合は、
それをユーザに表示する。
本実施例では、この共通結合のグラフで起こりうるデッ
ド・ロックは、プロセス・フロー・グラフと資源管理グ
ラフから共通結合のグラフが生成された時点で、デッド
ロックのチェックを行って(ステップ114)、表示し
ている(ステップ115)。
第14図を共通結合グラフの形で表現したものが第15
図である。第15図に示すごとく、デッドロックの起こ
る場合とは、コンデイション・ゲートと資源プレースと
が重複してつながれる場合のことである。生成された共
通結合のグラフの中に1つのコンデイション・ゲートと
重複してつながれた資源があるか否かチェックし、あれ
ばそれをユーザに指摘してやればよい、デッドロックが
生じないならば、共通結合グラフはそのままプロセス・
リソース・グラフとされる(ステップ116)。
なお、ここで言うデッドロックとは、第6図に関して説
明したグラフ表現及びそれに従って制御するシステムの
責任で起こるものではない、後述するように1本発明に
よれば、第6図の如きデッド・ロックの発生は回避され
る。第11図のステップ115で表示されるデッドロッ
クは、プログラムの構造自体に起因して生じるものであ
り、ユーザの責任でこれを回避しなければならない(ス
テップ117)。
プロセス・リソース・グラフは、イベント・プレースと
コンデイション・ゲイトをノードとし入力関数と出力関
数をアークとする二部有効グラフである。マーキングは
プロセス・リソース・グラフのタスク・プレース、資源
プレース、コンデイション・ゲイトにトークンを割り当
てることをいう、また、トークンはタスク・プレース、
資源プレース、コンディジ1ン・ゲイトに高々一つ存在
できる。従来のペトリネットでは、コンディジ3ン・ゲ
イトにはトークンは割り当てられないが。
プロセス・リソース・グラフでは割り当てがおこなわれ
る。プロセス・リソース・グラフの定義は、[数学的な
表現]の項を参照されたい。
なお、第12図に示した共通結合グラフつまりプロセス
・リソース・グラフにおいては、すべてのタスク・ノー
ドについて、これと並列に資源ノードが配置されている
。しかしながら、タスクの中には重要資源にアクセスす
ることのないものもある。そういうタスクのノードには
当然資源ノードが並列に配置されない(第18図参照)
(d)プロセス・リソース・グラフの実行(ステップS
7.S8) プロセス・リソース・グラフは、逐次的利用可能資源の
相互排他制御と同時に事象駆動型の制御を行なうコント
ローラのコードに変換され、実行されるコントローラ(
計算機およびプログラマブル・ロジック・コントローラ
など)のメモリーROM等にロードされる。このグラフ
を実行すると、資源の相互排他制御と事象駆動型のプロ
セスの制御が同時に行われる0例えばプロセス・リソー
ス・グラフのノード(イベント・プレース、コンデイシ
ョン・ゲート)はメモリー中にデータ構造体として実現
され、要素間のつながりはポインタによって表現される
。トークンの存在に関する情報は、データ構造体の中に
記憶される。トークンを発生または消滅させる方法自体
は上記文献(2)のシステムと同様に行われるので、こ
こでは詳細に述べない。
本発明で提唱するトークンの移動条件は後で厳密に式(
1)、(2)の形で表現するが、その意味する所を言葉
で述べると1次の通りになる。
(1)タスクの実行開始を命じると同時に該タスクのプ
レース(ノード)及び該プレースに並列な資源のプレー
スにトークンを置く、つまり、本発明においては、従来
のペトリネット・モデルと異なって、資源プレースに置
かれたトークンは、その資源が実行中のタスクによって
専有されていることを示す。
(II)並列制御されるタスクがあるときは、そのタス
クすべての実行が終了した時点で、トークンを後続のコ
ンデイション・ゲイトに移動させる。
(III)コンデイション・ゲイトに直接続くタスク・
プレースまたは該タスク・プレースに並列な資源プレー
スのうちの少なくとも1つにトークンが置かれている間
は、トークンをコンデイション・ゲイトに置き続けるこ
とによって、後続タスクの実行開始を待機させる。
第12図のプロセス・リソース・グラフの定義に従った
実行を、実行制御の一例として第16図に示す、第12
図では、初めにトークンがコンデイション・ゲイトC工
に発生する場合とコンデイション・ゲイトC4に発生す
る場合がある0本実行倒では、初めにトークンがコンデ
イション・ゲイトC工に発生する場合を取り扱う、トー
クンがコンデイション・ゲイトC1に発生する(第16
A図)このように、タスク°T工、T2を実行させるこ
とが必要になっても、いきなリプレースT□。
T2にトークンを置くことはない、まずコンデイション
・ゲイトC工にトークンが置かれる。トークンは移動条
件式(1)によってコンデイション・ゲイトC工からタ
スク・プレースT工、T2と資源プレースRA、R8に
移動する(第16B図)、このとき、他のコンデイショ
ン・ゲイトにトークンが存在しても、資源プレースRA
、R8にトークンが存在しているため、移動条件式(1
)が満足できない、このためにトークンの移動がおこら
ず。
T工、T2以外の新しいタスクの実行はおこなわれない
、タスクT工、T2がどちらも終了すると、トークンは
移動条件式(2)によってタスク・プレースTいT2と
資源プレースR^、RBからフンディジ3ン・ゲイトC
3に移動する(第16c図)、さらにトークンは、移動
条件式(1)によってコンデイション・ゲイトC2から
タスク・プレースT3と資源プレースR8に移動する(
第16D図)。このとき、コンデイション・ゲイトC4
にトークンが発生したとしよう、タスクT4の実行は開
始できる。つまり、資源プレースRAにはトークンがな
いために、移動条件式(1)が満たされるので、タスク
・プレースT4と資源プレースRAへのトークンの移動
はおこなわれる(第16E図)。したかって資源Rを使
うタスクT、の実行と、資源RA &使うタスクT4の
実行が独立におこなわれる。T4が終了すると、トーク
ンは、移動条件式(2)によってタスク・プレースT4
と資源プレースRAからコンデイション・ゲイトC6に
移動する(第16F図)。
トークンがコンデイション・ゲイトC5に存在しても、
資源プレースRBにすでにトークンがあるにトークンが
あるために、コンデイション・ゲイトC6からタスク・
プレースTsと資源プレースRA、R8へのトークンの
移動は、移動条(1)が満たされないために、おこなわ
れない。つまりタスクTsは実行されない、タスクT、
が終了すると。
トークンは、移動条件式(2)によってタスク・プレー
スT、と資源プレースRBからコンデイション・ゲイト
C3に移動し、消滅する。したがって、タスクT、が実
行可能になる。
第12図の例でも見られるようにプロセス・リソース・
グラフは資源プレースRA、RBに対して自己ループの
あるグラフとなる。これを安全で且つ活性の性質を持つ
制限されたペトリネットと見做すと、タスクが連続して
、すぐ同じ資源を使おうとすると、デッドロックが起こ
る。例えば第12図では、タスクT、が資源RAを使う
実行を終了したのち、タスクT5と資源RA −Reを
使う実行をしようとした場合、資源RAに対して自己ル
ープのグラフとなり、後述する移動条件式(0)が常に
満たされずデッドロックがdこる。
この点について説明を補足する。まず第12図のような
グラフ表現自体が新規であることに注意されたい、(従
来のペトリネットとの相違点は、後で第6図と第18図
を対比させてさらに詳しく述べる)6次に1本発明のト
ークン移動法を採用して、資源が専有されているときに
対応する資源プレースにトークンを置くけれども、コン
デイション・ゲートにはトークンを置かない実施例を想
定してみる。この例においては、タスクT4の実行中に
、プレースT、とRAにトークンが置かれる。次に。
制御システムがタスクT、の実行を開始しようとしても
、つまり、プレースT4からプレースT、とプレースR
A、 RBにトークンを、進めようとしても、プレース
RAにトークンが既に置かれているので、トークンをプ
レースT、に進めることができない、そして、トークン
がプレースT、に進まない限りは、プレースRAのトー
クンも消滅しないのである。
もし、プロセス・リソース・グラフで定義したごとくコ
ンデイション・ゲイトにトークンを存在させれば、上述
の実行例で示したように、安全で且つ活性の性質を持つ
制限されたペトリネットで起こるデッドロックは生じな
い、つまり、上の例でいえば、タスクT4の実行が終了
した時点で。
プレースT4とRAのトークンを消滅させ、コンディシ
ョン・ゲイトC5にトークンを発生させることによって
、プレースRAにトークンが存在しない状態が出現する
ので、トークンをコンディジ1ン・ゲイトC6からプレ
ースTs、 RA、 RBに移すことができる。つまり
、タスクT5の実行を開始することが可能になる。コン
デイション・ゲイトにトークンを置くことの意義はこの
点にある。
プロセス・リソース・グラフの実行コードは実行される
コントローラのメモリー、ROM等にロードされる。こ
こで制御する逐次的利用可能資源の対象は、計算機およ
びプログラマブル・ロジック・コントローラ(PLC:
)などが制御する資源である。これらの資源は、実際に
コントローラの中に含まれる資源のみならず、通信等を
介して制御可能な資源も含む6本発明では、これらの制
御対象となる逐次的利用可能資源に対して、プロセス・
リソース・グラフの実行コードに基づいて。
事象駆動型のプロセスの制御と同時に資源の相互排他制
御が行なわれる。第17図はプロセス・リソース・グラ
フの実行コードをPLCのメモリーにロードしてかかる
制御を行うシステムのハードウェア構成の1例を示す、
この例では生産機器、1゜2.3・・・が重要資源であ
り、これらの機器を用いるタスクが第8図に示すような
タスク・プログラムの形で記述される。タスク・プログ
ラムの実行開始指示信号及び該プログラムの実行が終了
したことを知らせる終了信号は、デジタル入出力インタ
ーフェイス又は通信インターフェイスを介して。
PLCと生産機器間を転送される。タスクの実行終了は
、生産機器がPLCに対して信号を送ることによって検
知される。あるいは、PLOが生産機器の状態をモニタ
することによってその状態が終了状態に転じたことを検
知してもよい。
なお、タスク・プログラムは、生産機器側にて蓄積され
ていてよいし、PLCのメモリに蓄積しておいて、命令
を逐次PLCから生産機器へ転送してもよい。
最後に、まとめとして、第6図に示すようなプロセスの
流れを本発明に従って表現した結果であるプロセス・リ
ソース・グラフを第18図に示し、その実行例を第19
A図ないし第19D図に示す。
第18図に示す如く、連続する2つのタスク(例えばP
2.P3)によっである資源(この場合はPx)が使用
される場合でも、その各々と並列に資源プレースがつな
がれる点及び、第6図の場合には例えばプレースPxが
トランジションt1の入力側につながれていたのが第1
8図ではプレースPxがコンデイション・ゲイトC1の
出力側につながれているといった具合に、入出力の関係
が逆になる点において、両グラフは大きく異なっている
次に、本発明に従ってトークンを移動させていく実行例
を見てみる。まず、コンデイション・ゲイトC0とC4
にトークンが発生したとしよう(第19A図)、資源P
x、Pyのプレースの何れにもトークンがないならば、
制御システムは、コンデイション・ゲイトCユからプレ
ースP、、Pxにトークンを移す一方、コンデイション
・ゲイトC4からプレースp、、pyにトークンを移す
ことができる(第19B図)、つまり、タスクp、、 
psの実行が開始される6次に、タスクP2の実行が終
了したとしよう、このとき、制御システムは、プレース
P2. Pxのトークンを消滅させて、コンデイション
・ゲイトC2にトークンを発生させる(第19C図)、
この時点では、まだプレースpyにトークンがあるので
、プレースP、にトークンを進めることはできない、よ
って、プロセスAにおいて、トークンはコンデイション
・ゲイトC3に存在し続けて、資源Pyが解放されるの
を待つことになる6次に、制御システムは、タスクP、
の終了信号を受は取ると、プレースP5、Pyのトーク
ンを消滅させて、トークンをコンデイション・ゲイトC
6にトークンを発生させる(第19D図)。
制御システムは、プレースP、とPx、Pyにトークン
を進めることもできるし、又はプレースP。
とPxにトークンを進めることもできる。すなわち、タ
スクP1、又はP6の実行開始を命じることができる。
このように、第6図の場合に生じたデッドロックは起こ
らない。
以上、本発明を実施例に即して説明したが、他の変形例
も考えられる0例えば、前記実施例では、プロセス・フ
ロー・グラフと資源管理グラフを中間コードの形で生成
し、プロセス・リソース・グラフは一旦中間コードの形
で生成した後実行コードに変換したけれども、要するに
これらのグラフは図面に示したものと等価な表現をメモ
リ中に生成できればよいわけであるから、その表現形式
は特に制約されない。
[数学的な表現] プロセス・フロー・グラフ理論の定義に従って以下に記
述する6プロセス・フロー・グラフGPFは、 GPF= (T、 C,IT、OT、μ)ここで。
T = (T、、T2、・・・、 TM)、に〉0タス
ク・プレースの集合 C冨(CいCよ、・・・、C)、 L>1コンデイショ
ン・ゲイトの集合 TnC=φタスク・プレースの集合とコンデイション・
ゲイトの集合とは互いに素であるIT: T−>Cタス
ク・プレースからコンデイション・ゲイトへの入力関数 OT:C−>Tコンデイション・ゲイトからタスク・プ
レースへの出力関数 μ:T−>(0,1)タスク・プレースのマーキング関
数 任意の時刻tにおける、任意のコンデイション・ゲイト
Cにに関するタスク・プレースT、からToへのトーク
ンの移動条件式は、 但し、ml>O1鵬2〉0 となる0時刻t+1における新しいマーキングは、タス
ク・プレース子工では、 tt (Ti(t+1))二μ(Ti(t))−#(T
i、 To)(t) i=1.、。
+11 タスク・プレースTOでは。
p (To(t+1))二μ(To(t))”1(Ti
、 To)(t) oJ、、。
となる。
トークンの発生は、コンデイション・ゲイトC5におい
て、入力関数11がない場合であり、移動条件式の右辺
の項を、 隅(Ti (t)) = 1 1廖1 としたときである。
トークンの消滅は、コンデイション・ゲイトCKにおい
て、出力関数OTがない場合であり、移動条件式の右辺
の項を、 n p (To (t) = 1 mI としたときである。
プロセス・リソース・グラフをグラフ理論の定義に従っ
て以下に記述する。プロセス・リソース・グラフGPR
は。
GPR= (TUR,C,ITLJIR,0TUO也、
TU)IRUIIG)ここで。
T、(TI、 T2.、、、、 TM)、 M>0 タ
スク・プレースの集合R=(Rz、 R2,、、、、R
N)、 N≧O責源プレースの集合C=(C1,C2,
、、、、CL)、 L>1コンデイシヨン、ディトの集
合TnRnC=φ タスク・プレースの集合と資源プレ
ースの集合とコンデイション・ゲイトの集合とは互いに
素ある I  :T−>Cタスク・プレースからコンデイション
・ゲイトへの入力関数 I  :R−>C資源プレースからコンデイション・ゲ
イトへの入力関数 I  nI  =φ 入力関数I と入力関数工、とT
RT は互いに素である OT: C−>T  コンデイション・ゲイトからタス
ク・プレースへの出力関数 0  :C−)Rコンデイション・ゲイトから資源プレ
ースへの出力関数 0TnOR=φ いに素である 出力関数Oと出力ORとは互 ■ μT:T−> (0、 マーキング関数 1)タスク・プレースの μR: R−> キング関数 (0,1)資源プレースのマー μc: c−> (o、1−)コンデイション・ゲイト
のマーキング関数 −キング関数μ とマーキング関数μ。とは互いに素で
ある 任意の時刻tにおける、任意のコンデイション・ゲイト
CKからイベント・プレースTおよびRへのトークンの
移動条件式は、 但し、膳)0、n)0 となる0時刻t+1における新しいマーキングは、コン
デイション・ゲイトCKでは。
p (CK (t+1))=u (CK (t)E#(
c、 p)(t)タスク・プレースTでは。
p (Ti(t+1))=u (Ti(t))十#(c
、p)(t)   i=1.、、m資源プレースRでは
、 p(Rj(t+1))=u(Rj(t))+#(c、p
)(t)  j=1.、、nとなる。
任意の時刻tにおける、任意のコンデイション・ゲイト
CKAイベント・プレースTおよびRからのトークンの
移動条件式は。
# (C,p)(t) = (δp(’r鳳(t))△
iL+ )1 (Rj (t)))△y (Ck(を旧
・・(2)iml        %1 但し、 mho、 ne。
となる0時刻t+1における新しいマーキングは。
コンデイション・ゲイトCKでは。
u (C,(t+1))=、u (CK(t))+l(
p、 c)(t)タスク・プレースTでは、 μ(丁、(t+1)戸u(T、(t))−#(p、  
c)(t)   i=1.、、+s1        
     l 資源プレースRでは、 μ(R,(t+1))=μ(R,(t))−#(p、 
c)(t)  j=1.、、nJコ となる、 トークンの発生は、コンデイション・ゲイトCKにおい
て、入力関数工1、IRがない場合であり、移動条件式
(2)の右辺の項を、 としたときである。
トークンの消滅は、コンデイション・ゲイトCにおいて
、出力関数0.oがない場合であり、R 移動条件式(1)の右辺の項を、 としたときである。
E、効果 この発明により、ユーザが事象駆動型の制御(プロセス
・フロー・グラフとタスク・プログラム)を記述するだ
けで、逐次的利用可能資源相互排他制御と同時に事象駆
動型の制御を行なうことが可能になる。この発明では、
今までプログラマの責任であったプロセス中の資源管理
のプログラミングと実行を自動的に行ない、プログラマ
による資源管理プログラムのエラー及びオペレータのプ
ログラム実行の負担がなくなる。
また1本発明によれば、従来の如くペトリネット・モデ
ルで起こり得たデッドロックが、トークンをコンデイシ
ョン・ゲートのノードに置くことによって生じない、と
いう利点も得られる。
【図面の簡単な説明】
第1図は、この発明の実施例のシステム構成図である。 第2図は、プロセスの流れの概念図である。第3図は、
従来技術による相互排他制御プログラムの記述例を示す
説明図である。第4図は、ペトリネットの実行例の説明
図である。第5図は、ペトリネットを用いた相互排他制
御のモデルの説明図である。第6図は、従来のペトリネ
ットを実行させて仮に相互排他制御を行った場合に生じ
るデッドロックの説明図である。第7図はプロセス・フ
ロー・グラフの説明図である。第8図はプロセス・フロ
ー・グラフとタスク・プログラムの説明図である。第9
図は資源管理グラフの説明図である。第10図は資源管
理グラフを生成するための処理手順のフロー・チャート
である。第11図はプロセス・リソース・グラフを生成
するための処理手順のフロー・チャートである。第12
図はプロセス・リソース・グラフの説明図である。第1
3図はプロセス・フロー・グラフと資源管理グラフの共
通結合グラフを生成するための処理手順のフロー・チャ
ートである。第14図はデッドロックを生じるプロセス
の流れの説明図である。第15図は第14図の内容の共
通結合グラフ表現を示す図である。第16図は第12図
のプロセス・リソース・グラフの実行例を示す図である
。第17図は相互排他制御システムのハードウェア構成
の1例を示す図である。第18図は第6図に対応するプ
ロセス・リソース・グラフを示す図である。 第19図は第18図のプロセス・リソース・グラフの実
行例を示す図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 end 931図 全体を制御するプログラム nd nd nd nd @nd 第8C図 ロボット2のプログラム 第4A図 第4B図 アロセス1 プbセスン 〔4 〔5 第7図 〔1 〔2 〔3 〔4 〔5 第9図 第6A図 第6B図 第8図 藪 第11図 〔4 C5 第16A図 〔6 〔4 〔5 第16B図 〔6 第16C図 第16Ev!J 第16D図 第161”図 第18図 第19B図 第19A図 第19C図

Claims (7)

    【特許請求の範囲】
  1. (1)(a)プロセスの流れに含まれるタスク及び何れ
    かのタスクによって専有され得る重要資源がノードに対
    応され、逐次実行されるタスクのノードは直列に配置さ
    れるとともに、並列して実行されるタスクのノード同士
    は並列に配置され、重要資源のノードは該重要資源を専
    有し得るすべてのタスクのノードと並列に配置されてな
    るグラフを作成して記憶装置に保持し、 (b)タスクの実行開始信号を送る度に、上記グラフ中
    の該タスクのノード及び該ノードに並列に配置された重
    要資源のノードにトークンを発生させ、プロセスの流れ
    の中で先行するタスクの実行の終了を検知したとき、上
    記グラフを参照して、直接の後続タスクのノード又は該
    ノードに並列に配置された重要資源のノードの何れか1
    つにトークンが置かれている間は、直接の後続タスクの
    実行開始信号の送出を待機する ことを特徴とする、資源の相互排他制御方法。
  2. (2)上記ステップ(a)では、上記グラフにおいて、
    連続して実行されるタスクのノード同士を連結する位置
    にゲートのノードが設けられ、 上記ステップ(b)では、タスクの実行の終了を検知す
    る度に、該タスクのノード及び該ノードに並列に配置さ
    れた重要資源のノードに存在するトークンを消滅させ、 ゲート・ノードの直前に配置された何れのタスク・ノー
    ドに対応するタスクについても実行の終了を検知したと
    き、該ゲート・ノードにトークンを発生させ、 その後、上記グラフを参照して、該ゲート・ノードの直
    後に配置された後続タスクのノード又はこれと並列に配
    置された重要資源ノードの何れか1つにトークンが存在
    している間は、該後続タスクの実行開始信号の送出を待
    機し、 該後続タスクの実行開始信号を送った後に、該ゲート・
    ノードのトークンを消滅させることを特徴とする、特許
    請求の範囲第1項記載の方法。
  3. (3)上記ステップ(a)は、 (a1)プロセスの流れに含まれるタスクのノードとゲ
    イトのノードからなるプロセス・フロー・グラフを作成
    するステップ、 (a2)上記タスクの何れかによって専有され得る重要
    資源のノードと上記ゲイトのノードからなる資源管理グ
    ラフを作成するステップ、 (a3)上記プロセス・フロー・グラフと上記資源管理
    グラフを上記ゲートのノードを共通にして重ね合わせた
    共通結合のグラフを作成して記憶装置に保持するステッ
    プ からなる特許請求の範囲第2項記載の方法。
  4. (4)上記ステップ(a3)において、プロセス・フロ
    ー・グラフと資源管理グラフの共通結合グラフを作成し
    た後、該共通結合グラフ中のデッドロックを生じさせる
    箇所の有無をチェックし、デッドロックを生じさせる箇
    所があればこのことをユーザに表示する ことを特徴とする、特許請求の範囲第1項ないし第3項
    に記載の方法。
  5. (5)上記ステップ(a1)では、プロセス・フロー・
    グラフを中間コードの形で出力し、 上記ステップ(a2)では、資源管理グラフを中間コー
    ドの形で出力し、 上記ステップ(a3)では、共通結合のグラフを一旦中
    間コードの形で出力した後、これを実行コードに変換し
    て記憶装置に保持し、 上記ステップ(b)、では、上記実行コードに基づいて
    相互排他制御を行う ことを特徴とする、特許請求の範囲第3項又は第4項記
    載の方法。
  6. (6)プロセスの流れに含まれるタスク及び何れかのタ
    スクによって専有され得る重要資源がノードに対応され
    、逐次実行されるタスクのノードは直列に配置されると
    ともに、並列して実行されるタスクのノード同士は並列
    に配置され、重要資源のノードは該重要資源を専有し得
    るすべてのタスクのノードと並列に配置されてなるグラ
    フを保持する記憶装置と、 タスクの実行開始信号を送る度に、上記グラフ中の該タ
    スクのノード及び該ノードに並列に配置された重要資源
    のノードにトークンを発生させる手段と、 プロセスの流れの中で先行するタスクの実行の終了を検
    知したとき、上記グラフを参照して、直接の後続タスク
    のノード又は該ノードに並列に配置された重要資源のノ
    ードの何れか1つにトークンが存在している間は、直接
    の後続タスクの実行開始信号の送出を待機する手段 を具備する、資源の相互排他制御システム。
  7. (7)プロセスの流れに含まれるタスク及び何れかのタ
    スクによって専有され得る重要資源に対応するノードを
    持ち、逐次実行されるタスクのノードは直列に配置され
    るとともに、並列して実行されるタスクのノード同士は
    並列に配置され、タスクのノード同士を連結する位置に
    はゲートのノードが配置され、重要資源のノードは該重
    要資源を専有し得るすべてのタスクのノードと並列に配
    置されてなるグラフを保持する記憶装置と タスクの実行開始信号を送る度に、上記グラフ中の該タ
    スクのノード及び該ノードに並列に配置された重要資源
    のノードにトークンを発生させる手段と、 タスクの実行の終了を検知する度に、該タスクのノード
    及び該ノードに並列に配置された重要資源のノードのト
    ークンを消滅させる手段と、ゲート・ノードの直前に配
    置された何れのタスク・ノードに対応するタスクについ
    ても実行の終了を検知したとき、該ゲート・ノードにト
    ークンを発生させ、 その後、上記グラフを参照して、該ゲート・ノードの直
    後に配置された後続タスクのノード又はこれと並列に配
    置された重要資源ノードの何れか1つにトークンが存在
    している間は、該後続タスクの実行開始信号の送出を待
    機し、 該後続タスクの実行開始信号を送った後に、該ゲート・
    ノードのトークンを消滅させる手段を具備する、相互排
    他制御システム。
JP1031146A 1989-02-13 1989-02-13 資源の相互排他制御方法及びシステム Expired - Lifetime JPH0769842B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP1031146A JPH0769842B2 (ja) 1989-02-13 1989-02-13 資源の相互排他制御方法及びシステム
EP90301431A EP0383506B1 (en) 1989-02-13 1990-02-12 Method and system for mutual exclusive resource control
DE69024072T DE69024072T2 (de) 1989-02-13 1990-02-12 Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung
US07/478,818 US5283896A (en) 1989-02-13 1990-02-12 Method and system for controlling mutually exclusive resources using a modified Petri net process control graph

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1031146A JPH0769842B2 (ja) 1989-02-13 1989-02-13 資源の相互排他制御方法及びシステム

Publications (2)

Publication Number Publication Date
JPH02211546A true JPH02211546A (ja) 1990-08-22
JPH0769842B2 JPH0769842B2 (ja) 1995-07-31

Family

ID=12323299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1031146A Expired - Lifetime JPH0769842B2 (ja) 1989-02-13 1989-02-13 資源の相互排他制御方法及びシステム

Country Status (4)

Country Link
US (1) US5283896A (ja)
EP (1) EP0383506B1 (ja)
JP (1) JPH0769842B2 (ja)
DE (1) DE69024072T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756754A (ja) * 1993-08-03 1995-03-03 Internatl Business Mach Corp <Ibm> マルチメディア・グループ資源割当て装置及び方法
JPH11149369A (ja) * 1997-11-14 1999-06-02 Oki Electric Ind Co Ltd プログラム開発装置および記録媒体
US6502122B1 (en) 1997-09-04 2002-12-31 Nec Corporation Method and apparatus for executing transaction programs in parallel
CN106569472A (zh) * 2016-11-14 2017-04-19 南京理工大学 基于bdd的企业车间死锁的快速预防方法
CN111444082A (zh) * 2019-01-17 2020-07-24 同济大学 基于Petri网的并发错误检测方法及系统

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339388A (en) * 1991-12-31 1994-08-16 International Business Machines Corporation Cursor lock region
FR2692055B1 (fr) * 1992-06-09 1996-10-25 Bull Sa Dispositif de conception de reseaux de commande d'informations pour la modelisation de tous processus.
JP2768412B2 (ja) * 1992-07-15 1998-06-25 財団法人ニューメディア開発協会 ユ−ザ適応型システムおよびその適応方法
FR2718868B1 (fr) * 1994-04-18 1996-05-31 Bull Sa Procédé de détection d'interblocages dans les systèmes multiprocesseurs à mémoire partagée.
US5564049A (en) * 1994-07-29 1996-10-08 Allen-Bradley Company, Inc. Industrial controller programming method using external connection database
US5680530A (en) * 1994-09-19 1997-10-21 Lucent Technologies Inc. Graphical environment for interactively specifying a target system
US5640557A (en) * 1994-11-18 1997-06-17 International Business Machines Corporation Method and system for processing logic blocks in a data processing system
US5812824A (en) * 1996-03-22 1998-09-22 Sun Microsystems, Inc. Method and system for preventing device access collision in a distributed simulation executing in one or more computers including concurrent simulated one or more devices controlled by concurrent one or more tests
FR2752125B1 (fr) * 1996-08-01 1998-09-11 Bull Sa Distribution de tickets dans un systeme informatique multinodal
US6366946B1 (en) * 1998-12-16 2002-04-02 Microsoft Corporation Critical code processing management
US6859927B2 (en) * 1999-12-21 2005-02-22 Lockheed Martin Corporation Apparatus and method for controlling allocation of resources and task execution
US6842899B2 (en) * 1999-12-21 2005-01-11 Lockheed Martin Corporation Apparatus and method for resource negotiations among autonomous agents
AU2001247225A1 (en) 2000-03-17 2001-10-03 Emperative, Inc. Communications services provisioning method and apparatus and object programminglanguage for developing provisioning models
DE10028140A1 (de) * 2000-06-07 2001-12-20 Siemens Ag Verfahren zur Organisation des Ablaufs elektronisch gesteuerter Schaltvorgänge
DE10038441B4 (de) * 2000-08-07 2005-10-27 Siemens Ag "Flow Chart Programmierung für industrielle Steuerungen, insbesondere Bewegungssteuerungen"
DE10038439B4 (de) * 2000-08-07 2008-04-24 Siemens Ag Vorrichtung, zumindest umfassend ein Computersystem und eine industrielle Steuerung, für das Debuggen von Programmen für industrielle Steuerungen
US7000191B2 (en) 2000-08-07 2006-02-14 Siemens Aktiengesellschaft Flowchart programming for industrial controllers, in particular motion controllers
US7133842B2 (en) * 2000-12-29 2006-11-07 International Business Machines Corporation System, method and program for bidding for best solution process execution in a heterogeneous network
US20020087483A1 (en) * 2000-12-29 2002-07-04 Shlomi Harif System, method and program for creating and distributing processes in a heterogeneous network
US7120699B2 (en) * 2001-09-20 2006-10-10 Ricoh Company, Ltd. Document controlled workflow systems and methods
US7093253B2 (en) 2001-11-06 2006-08-15 International Business Machines Corporation Method, computer program product, and system for a self-throttled computing task
US7146360B2 (en) * 2002-12-18 2006-12-05 International Business Machines Corporation Method and system for improving response time for database query execution
US7065419B2 (en) * 2004-04-14 2006-06-20 Taiwan Semiconductor Manufacturing Company, Ltd. Job flow Petri Net and controlling mechanism for parallel processing
US7698708B1 (en) * 2004-07-30 2010-04-13 Symantec Operating Corporation Method and system for persistent, recoverable user-level locks
US8601457B1 (en) * 2008-01-31 2013-12-03 The Mathworks, Inc. Checking for access problems with data stores
US8280832B1 (en) 2009-03-04 2012-10-02 The Mathworks, Inc. Proving latency associated with references to a data store
US8234647B1 (en) * 2008-01-31 2012-07-31 The Mathworks, Inc. Checking for mutual exclusiveness of a shared resource
US9582768B1 (en) 2008-01-31 2017-02-28 The Mathworks, Inc. Determining conditions associated with accessing data stores
US8769496B2 (en) * 2010-08-13 2014-07-01 Accenture Global Services Limited Systems and methods for handling database deadlocks induced by database-centric applications
US8762781B2 (en) 2010-11-16 2014-06-24 International Business Machines Corporation Method and apparatus useful in manufacturing test case operations
US20150039279A1 (en) * 2013-08-02 2015-02-05 Vitali Volovoi Systems and methods for modeling a complex system using abridged petri nets
CN113886053B (zh) * 2021-12-01 2022-03-04 华控清交信息科技(北京)有限公司 一种任务调度方法、装置和用于任务调度的装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866605A (en) * 1984-11-05 1989-09-12 Hitachi, Ltd. System function simulation method and apparatus therefor using Petri net symbols
US4922413A (en) * 1987-03-24 1990-05-01 Center For Innovative Technology Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data
JP2580592B2 (ja) * 1987-04-17 1997-02-12 株式会社日立製作所 データ構造駆動型処理装置とその制御方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756754A (ja) * 1993-08-03 1995-03-03 Internatl Business Mach Corp <Ibm> マルチメディア・グループ資源割当て装置及び方法
US6502122B1 (en) 1997-09-04 2002-12-31 Nec Corporation Method and apparatus for executing transaction programs in parallel
JPH11149369A (ja) * 1997-11-14 1999-06-02 Oki Electric Ind Co Ltd プログラム開発装置および記録媒体
CN106569472A (zh) * 2016-11-14 2017-04-19 南京理工大学 基于bdd的企业车间死锁的快速预防方法
CN106569472B (zh) * 2016-11-14 2019-05-07 南京理工大学 基于bdd的企业车间死锁的快速预防方法
CN111444082A (zh) * 2019-01-17 2020-07-24 同济大学 基于Petri网的并发错误检测方法及系统
CN111444082B (zh) * 2019-01-17 2022-02-11 同济大学 基于Petri网的并发错误检测方法及系统

Also Published As

Publication number Publication date
US5283896A (en) 1994-02-01
DE69024072T2 (de) 1996-06-13
EP0383506B1 (en) 1995-12-13
DE69024072D1 (de) 1996-01-25
JPH0769842B2 (ja) 1995-07-31
EP0383506A3 (en) 1992-07-01
EP0383506A2 (en) 1990-08-22

Similar Documents

Publication Publication Date Title
JPH02211546A (ja) 資源の相互排他制御方法及びシステム
US10713608B2 (en) Systems and methods for a real-time workflow platform
US8332811B2 (en) Systems and methods for generating source code for workflow platform
US7464366B2 (en) Programming interface for a componentized and extensible workflow model
US7451432B2 (en) Transformation of componentized and extensible workflow to a declarative format
Georgeff Communication and interaction in multi-agent planning
AU2005221076A1 (en) Task execution using graphical representation of task dependency
George Mascot 3: an informal introductory tutorial
Van Mierlo et al. SCCD: SCCDXML extended with class diagrams
US20020069039A1 (en) System and method for creating architectural descriptions of real-time simulations
Gerth et al. Language-independent change management of process models
EP2073155A1 (en) Controlling the re-execution of a rule branch
Estlin et al. Plan execution interchange language (PLEXIL)
Kufner et al. Restful State Machines and SQL Database
Dowek et al. A small-step semantics of PLEXIL
Lima et al. A formal semantics for sysml activity diagrams
Zhang Aspect-oriented modeling of mutual exclusion in UML state machines
Schader et al. Modeling Java threads in UML
Sarna-Starosta et al. A model-based design-for-verification approach to checking for deadlock in multi-threaded applications
Balz et al. Embedding behavioral models into object-oriented source code
Barbier Supporting the UML state machine diagrams at runtime
Zendler Advanced Concepts, Life Cycle Models and Tools for Object-oriented Software Development
Ebert et al. DiNeROS: A Model-Driven Framework for Verifiable ROS Applications with Petri Nets
Carrazoni Low Coupling Command System
Qiao et al. Implementing dynamic management for mediated service interactions