JP2001500656A - データフロー計算におけるバッファデッドロックの防止方法 - Google Patents

データフロー計算におけるバッファデッドロックの防止方法

Info

Publication number
JP2001500656A
JP2001500656A JP10547302A JP54730298A JP2001500656A JP 2001500656 A JP2001500656 A JP 2001500656A JP 10547302 A JP10547302 A JP 10547302A JP 54730298 A JP54730298 A JP 54730298A JP 2001500656 A JP2001500656 A JP 2001500656A
Authority
JP
Japan
Prior art keywords
input
data
program
inputs
available
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
JP10547302A
Other languages
English (en)
Other versions
JP3310304B2 (ja
Inventor
スタンフィル,クレイグ,ダブル.
ラッサー,クリフォード,エー
Original Assignee
エービー イニティオ ソフトウェア コーポレーション
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 エービー イニティオ ソフトウェア コーポレーション filed Critical エービー イニティオ ソフトウェア コーポレーション
Publication of JP2001500656A publication Critical patent/JP2001500656A/ja
Application granted granted Critical
Publication of JP3310304B2 publication Critical patent/JP3310304B2/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
    • G06F9/524Deadlock 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Selective Calling Equipment (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 データフロー計算用のバッファデッドロック防止技術である。本発明は以下のアルゴリズムを実行する。(1)「下流」プログラムの各入力に対して補助バッファを提供し、(2)こうした入力が共用の上流プログラムから直接又は間接的に来た場合に、及び来た場合のみに、2つの入力が同一の入力セット内に入るように、各下流プログラムの入力を互いに素の入力セットに区分し、(3)ある入力セット内の入力Iを介して、上流プログラムから下流プログラム内へのデータの読出しを試み、(4)現在、入力Iからの使用可能なデータがなく、同じ入力セット内のその他の入力Jが使用可能なデーとを有する場合、前記入力Jの各々から使用可能データを読出し、次に前記データを、使用可能なデータが全ての前記入力J上で消費されるまで、又はデータが入力I上で使用可能になるまで、入力Jに対応する補助バッファに記憶する。

Description

【発明の詳細な説明】 データフロー計算におけるバッファデッドロックの 防止方法 背景 2.発明の範囲 本発明はデータ処理に関するものであり、より詳細には複合データフロー計算 に関するものである。 3.関連技術の説明 複合データ処理アプリケーションは、様々な処理段階の出力と入力をリンクす ることで、コンポーネントを通信チャネル(例えばTCP/IP)の手段によって組立 てることができる。一般に、こうした通信チャネルのデータバッファは容量が限 られている。チャネルバッファが消耗するとチャネルが「ブロック」するため、 それ以上のチャネルへの書込みが不可能になる。例えば、高速プログラムの出力 を遅いプログラムの入力に接続している等のほとんどの場合において、この閉塞 は無害である。こうした状況の下で、通信チャネの有限バッファリング容量は計 算を制御するようにはたらくため、高速なプログラムと遅いプログラムとの差が それほど開いてしまうことはない。 しかしながら、特定の状況において、チャネル閉塞は「デッドロック」と呼ば れるシステム障害を引起すことがある。第1図、第2図は、チャネル閉塞の単純な 例を示すデータフロー図である。第1の「上流」プログラム100が2つの出力101、 102を生成し、第2の「下流」プログラム103が2つの入力104、105を必要とすると 考える。さらに、2つの通信チャネル106、107を介して、上流プログラム100の出 力が下流プログラムの入力とリンクしていると考える。 第2図に示したように、計算の最中に以下に示す状況のセットが発生する 可能性がある。 ●上流プログラム100がその第1出力101へのデータの書込みを望む。 ●下流プログラム103がその第2入力105からのデータの読出しを望む。 ●第1通信チャネル106が満杯である(そのバッファスペースが完全にコミットさ れている)。 ●第2通信チャネル107がナルである(未転送データが存在しない)。 上流プログラム100、下流プログラム103のいずれもこれ以上進展することがな いため計算は完了しない。この状況は一般にデッドロックとして知られている。 この説明においてはこれを「バッファデッドロック」と呼ぶ。 バッファデッドロックの可能性がアプリケーション障害を引起すことがあるた め、データフロー計算におけるバッファデッドロックを防止する方法は非常に有 用である。本発明はこの問題の解決法を提供するものである。 発明の概要 本発明は、以下のアルゴリズムを実行する、データフロー計算用のバッファロ ック防止技術を包含するものである。 ●2以上の入力Iを備えた任意の「下流」プログラムは補助バッファスペースの プールと共に提供される。好ましい実施例において、各入力Iは、補助バッファ スペース内の連続するデータブロックと関係した「据置き入力待ち行列」と関連 している。 ●各下流プログラムの入力を、互いに素な入力セットであって、これらが、共通 のソースプログラムから直接又は間接的に入力を入手した場合に、及び、場合の みに、2つの入力が同一の区分内に入るように区分する。 ●下流プログラムが、使用可能なデータが存在しない入力Iを介して「上流」プ ログラムからデータを読出す必要がある場合であって、かつ、同じ入力セットの 他の入力Jに使用可能なデータが存在する場合に、下流プログラムは、使用可能 なデータが全ての入力J上で消耗されるまで、又 は、所望の入力I上でデータが使用可能になるまで、各入力Jから使用可能デー タを連続的に読出し、各入力Jに対応する補助バッファに記憶する。好ましい実 施例において、これは、補助バッファから記憶ブロックを割当て、この記憶ブロ ックをデータで充填し、据置き入力待ち行列にこの記憶ブロックを加えることに よって実行される。補助バッファが満杯である場合には、デッドロックの危険を 犯すのではなく下流プログラムをアボートする。 ●下流プログラムが補助バッファにデータを有するいずれかの入力Iからのデー タを読出す必要がある場合、対応する通信チャネルからではなく、補助バッファ からデータが抽出される。 添付の図面と以下の説明において、本発明の1つ以上の実施例について述べる 。 図面の説明 第1図、第2図は、従来技術におけるチャネル閉塞の単純な例を示すデータフロ ー図である。 第3図、第4図、第5図、第6図は、本発明によるバッファデッドロック防止技術 の実施例を示す連続のデータフロー図である。 第7図は、本発明を適用することができる複合データフローグラフである。 第8図、第9図、第10図は、本発明による、多重データ生成ノード用のバッファ デッドロック防止技術の実施例を示す連続のデータフロー図である。 複数の図面において、同様の要素は同一の参照符号で示している。 発明の詳細な説明 第3図、第4図、第5図は、本発明によるバッファデッドロック防止技術の実施 例を示す連続のデータフロー図である。第1図に示したタイプのバッフ ァデッドロックは、以下のアルゴリズムを実施することで防止できる。 ●2以上の入力104、105を有する「下流」プログラム103は、補助バッファスペ ース108のプールと共に提供される。補助バッファスペースは一般に、第l記憶装 置(例えばRAM)と第2記憶装置(例えばディスク)を組合せたものである(第3 図)。好ましい実施例において、各入力104、105は、補助バッファスペース108 内の連続したデータ記憶ブロックに関係する「据置き入力待ち行列」109、110に 関連している。好ましい実施例において、据置き入力待ち行列109、110は先入れ 先出し(FIFO)待ち行列として構成されている。 ●下流プログラム103が、使用可能なデータが存在しない入力105を介して「上流 」プログラム100からデータを読出す必要がある場合であって、かつ、下流プロ グラム103への1つ以上の別の入力104でデータが使用可能である場合、下流プロ グラム103は、使用可能なデータが他の全ての入力104上で消耗されるまで、又は 所望の入力105上でデータが使用可能になるまで(第5図)、各入力104から使用 可能データを連続的に読出し、補助バッファスペース108から割当てられた対応 する記憶ブロックにこのデータを記憶する(第4図)。好ましい実施例において 、バッファ割当てには、補助バッファスペース108からの記憶ブロックの割当て 、この記憶ブロックをデータで充填すること、据置き入力待ち行列109に記憶ブ ロックへの参照を加えることが含まれる。補助バッファスペース108が満杯であ り、さらにデータをバッファする必要がある場合には、デッドロックの危険を犯 すのではなく下流プログラム103をアボートする。 ●下流プログラム103が据置き入力待ち行列109にデータを有する入力104からデ ータを読出す必要がある場合、対応する通信チャネル106からではなく、据置き 入力待ち行列109で参照される記憶ブロックからデータを抽出する(第6図)。記 憶ブロックからのデータが消費されると、記憶ブロックが補助バッファスペース 108へと戻される。 1対の通信チャネル106、107によって接続された単純な2つのプログラム100、1 03の場合のものとしてこの解決法を説明したが、通信チャネルとプログラムの数 に関わらず、また、グラフの接続の複雑性に関わらず、全ての非巡回データフロ ーグラフに適用できる。例えば第7図では、より複雑なデータフローグラフに本 発明を適用している。 上に略述したこの方法が抱えるある現実的な問題は、多重データ生成ノードと 共に使用した場合、不必要にデータをバッファしてしまうことである。例えば、 単一出力112を備えた上流プログラム111を追加し、下流プログラム103に新規の 入力114を追加し、単一出力112を新規の通信チャネル113を備えた新規入力114と 接続し、上述した方法で据置き入力待ち行列115を追加することにより第3図の例 を第8図に示すように発展させるものとする。さらに、新規プログラム111が、古 いプログラム100よりも遅い値でデータを生成するものとする。 2重チャネル上流プログラム100が単一チャネル上流プログラム111よりもより 高速にデータを生成するという事実に基づき、下流プログラム103が、高速の上 流プログラム100からの入力チャネル106又は107のうちの1つにおいてはデータが 使用可能であるが、遅い上流プログラム111からのチャネル113においては使用可 能でないことが度々ある。上述のノード生成によれば、下流プログラム103はチ ャネル106又は107上の使用可能な入力データを消費し、このデータを据置き入力 待ち行列109又は110のうちの1つに記憶する。 ついには、第10図に示すように補助バッファスペース108が使い尽くされて、 下流プログラム103は、デッドロックが切迫していると判断して実行のアボート を余儀なくされる。これは、上述したアルゴリズムがデッドロックを防止するた めではなく、データ生成プログラム110と111との間の速度の差を補うために補助 バッファスペース108を使用しているという事実からくる都合の悪い結果である 。 この問題の解決法は、デッドロックは2つ以上の入力が共通の上流処理を共有 する場合のみに起こるものであると知ることである。これにより、デッドロック を起こしやすい計算(第1図)とデッドロックフリーな計算とを区 別することができる。 この状況を克服するための好ましい方法を以下に示す。 ●各下流プログラムの入力を、互いに素な入力セットであって、これらが、共通 のソースプログラムから直接又は間接的に入力を入手した場合に、及び、場合の みに、2つの入力が同一の区分内に入るように区分する。こうした区分の各々を 「入力セット」と呼ぶ。 ●以下に示す「分岐入力」手順を含ませるために、上述の方法をデータを据置き 入力待ち行列に記憶するように改良する。プログラムが、使用可能データが存在 しない入力Iからの読出しを望み、同一の入力セット内にあるたの任意の入力Jに 使用可能なデータが存在する場合、プログラムは入力Jからデータを読出し、そ の結果を入力Jに対する据置き入力待ち行列内に記憶しなければならない。 第8図の場合において、下流プログラム103は2つの入力セット[104、105]、[11 4]を備えている。下流プログラム103が、第9図に示すように、入力114から読出 し実行したいが、入力104又は105上にしか使用可能なデータが存在しないという 状況に遭遇するとする。入力104、105は入力114と同じ入力セット内にはないた め、これらのデータは据置き入力待ち行列109又は110には分岐されない。代わり に、下流プログラム103は、上流プログラム111がチャネル113上にデータを生成 するまで待機する。このデータ生成と同時に、下流プログラム103がデータを読 出し、通常通りに処理を続行する。 その一方で、下流プログラム103が入力105から読出しを希望するが、データは 105ではなく入力104上で使用可能であるとする。この場合、入力104、105が同じ 入力セット内にある事実のために、分岐入力手順が呼出される。入力104上で使 用可能なデータが、後のアクセス用にバッファされる。第3図に示した構成も、 入力104、105の両方が1つの入力セットに属しているため、分岐入力手順でカバ ーされる。 入力セットは好ましいアルゴリズムで見tuけることができる。このアルゴリズ ムには、こういったセットの和演算と積演算を計算するためのあらゆる 既知の方法と同様に、ビット・ベクトル又はリンクしたリストのようなセットを 表すための既知の方法を使用することができる。 1.上流プログラムのセットを各通信チャネル、各プログラムと関連付ける。こ うしたセットの各々は最初はナルである。Cが通信チャネルである場合、C.upstr eamはCより上流のプログラムのセットを示す。Pがプログラムである場合、P.ups treamはPより上流のプログラムのセットを示す。 2.入力セットのリストを各プログラムと関連付ける。Pがプログラムである場合 、P.inputsetsはPと関連した入力セットを示す。 3.あるプログラムP2が、第2プログラムP1によって生成された入力を消費し、次 にリスト中でP1がP2の前にくるようにするために、トポロジー的に記憶したプロ グラムのリストを作成する。このようなトポロジー的に記憶されたリストを作成 できない場合には、その計算がデッドロックフリーであると保証できないことを 表示して、アルゴリズムから出る。 4.各プログラムP上で以下のオペレーションを実行しながら、このプログラムの リストを最初から最後までトラバースする。 a.ナルのリストLを作成する。Lの各エントリは入力のセットと上流プログラ ムのセットから成る。L[i].inputsはL内のi番目のエントリの入力セットを表す 。L[i].upstreamはL内のi番目の上流プログラムセットを表す。 b.各Pの入力Iについて、 i.CをIに接続した入力チャネルにする。 ii.L内の各要素L[i]について、 (1)L[i].upstreamのC.upstreamとの積演算がナルでない場合は、L[V] .upstream=L[i].upstream∪C.upstreamに設定し、L[i].inputsにIを加え、次の 入力Iに進む。 (2)上述の段階によって要素L[i]が識別されなかった場合は、新しい 要素L[i]を追加して、L[i].upstream=C.upstream、 かつ、L[i].inputs=[I]とする。 c.L内の各要素L[i]について、P.inputsets=P.inputsets+L[i].inputsと設定 する。 d.Pの入力の1つと接続している各通信チャネルCについて、P.upstream=P.up stream∪C.upstreamとする。 e.Pの出力の1つと接続している各通信チャネルCについて、C.upstream=P.up stream∪[P]とする。 1例として、第8図に示した構成に基づいて、まず、3つのプログラム100、103 、111と、3つの通信チャネル106、107、113についての上流プロセスセットの初 期設定から始める。各プログラムに入力セットを作成する。これにより、以下に 示す状態が得られる。 オブジェクト 上流 入力セット 100 [] [] 103 [] [] 106 [] 107 [] 111 [] [] 113 [] 1つの可能性として以下に示すリスト(100、111、103)を生成するプログラム をトポロジー的に分類する。 まず上流プログラム100の処理を行う。これには入力がないので、100.inputse tsと100.upstreamはナルのまま残る。上流プログラム100の出力は、チャネル106 、107と接続しているので、106.upstreamと107.upstreamを[100]に設定する。こ れにより以下の状態が得られる。 オブジェクト 上流 入力セット 100 [] [] 103 [] [] 106 [100] 107 [100] 111 [] [] 113 [] 次に、上流プログラム111(トポロジー的に分類したリスト中の次のプログラ ム)の処理を行う。上流プログラム111には入力がないため、111.inputsはナル のまま残る。上流プログラム111はチャネル113と接続した単一出力を備えている ため、111.upstream=[111]となる。これにより以下の状態が生じる。 オブジェクト 上流 入力セット 100 [] [] 103 [] [] 106 [100] 107 [100] 111 [] [] 113 [111] 最後に下流プログラム103の処理を行う。下流プログラム103は3つの入力104、 105、114から読出しを行う。アルゴリズムが以下の段階を生成する。 ●Lはナルとして初期設定される。 ●チャネルC=106と接続した第1入力I=104を考慮する。Lはナルなので要素L[i]は 存在せず、L[i].upstreamとC.upstreamとの積演算が行われる。従って、C.upstr eam[I]から成る新規のエントリをL内に作成する。その結果L=([100],[104])とな る。 ●次に、チャネルC=107と接続した第2入力I=105を考慮する。L[l].upstream=[10 0]およびC.upstream=[100]である。これら2つのセットはオーバラップするため (実際には、これらは偶然にも同一である)、C.upstreamをL[1].upstreamに加 え、IをL[1].inputsに加え、L=( [100],[104,105])とする。 ●最後に、チャネルC=113と接続した第3入力I=114を考慮する。C.upstream=[111 ]であり、存在しない要素L[i].upstreamとC.upstreamと積演算を行ので、C.upst reamと[I]から成る新規のエントリをL内に作成する。これにより、L=([100],[10 4,105]),([111],[114])となる。 ●Lから入力のセットを収集する。すなわち、103.inputsets=[[104,105],[114]] となる。 ●最後に、プログラム103と接続した各入力チャネルCを考慮し、これらの上流セ ットの和演算を計算する。この結果がP.upstreamに記憶される。すなわち、103. upstream=[100,111]となる。これにより以下の状態が生じる。 オブジェクト 上流 入力セット 100 [] [] 103 [100,111] [[104,105],[114]] 106 [100] 107 [100] 111 [] [] 113 [111] 同じ結果を算出するあらゆるアルゴリズムを使用することができる。さらに、 人間が計算を監視し、手動で入力セットを指定することも可能である。 本発明の多くの実施例について説明してきた。しかし、本発明の精神と範囲を 逸脱しない限り、様々な変更を加えることが可能であると理解されるであろう。 例えば、補助バッファにその他のバッファ割当て構成を使用してもよい。従って 、本発明は説明した特定の実施例によって限定されるのではなく、付属の請求の 範囲によってのみ限定されることが理解されるべきである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,UZ,V N,YU,ZW (72)発明者 ラッサー,クリフォード,エー アメリカ合衆国 02139 マサチューセッ ツ州,ケンブリッジ,リー ストリート 15 アパートメント 1

Claims (1)

  1. 【特許請求の範囲】 1. データフロー計算用のバッファデッドロック防止のための方法であって、 (a)下流プログラムの各入力に対して補助バッファを提供する段階と、 (b)こうした入力が共用の上流プログラムから直接又は間接的に来た場合に、 及び、来た場合のみに、2つの入力が同一の入力セット内に存在するように、各 下流プログラムの入力を互いに素の入力セットに区分する段階と、 (c)ある入力セット内の入力Iを介して、上流プログラムから下流プログラム内 へのデータの読出しを試みる段階と、 (d)現在、入力Iからの使用可能なデータがなく、同じ入力セット内のその他の 入力Jが使用可能なデータを有する場合、使用可能なデータが全ての前記入力J上 で使い尽くされるまで、又はデータが入力I上で使用可能になるまで、前記入力J の各々から使用可能データを読出し、前記データを入力Jに対応する補助バッフ ァに記憶する段階と、 を有することを特徴とする方法。 2. 任意の補助バッファが満杯になってしまい、それでもさらにデータを記憶し なければならない場合に、前記下流プログラムをアボートする段階をさらに有す ることを特徴とする請求の範囲1に記載の方法。 3. 入力Iから直接データを読出す前に、記憶したデータを、前記入力Iに対応す る前記補助バッファから下流プログラム内に読出す段階をさらに有することを特 徴とする請求の範囲1に記載の方法。 4. 記憶ブロックのプールを提供し、1つ以上の記憶ブロックから各補助バッフ ァを割当て、割当てられた補助バッファの各々を据置き入力待ち行列内で参照す る段階をさらに有することを特徴とする請求の範囲1に記載の方法。 5. 入力Iから直接データを読出す前に、記憶したデータを、前記入力Iに 対応する前記補助バッファの前記記憶ブロックから前記下流プログラム内に読出 し、読出した各記憶ブロックを前記記憶ブロックのプールへと戻す段階をさらに 有することを特徴とする請求の範囲4に記載の方法。 6. コンピュータ読出し可能媒体上に存在する、データフロー計算用にバッファ デッドロックを防止するためのコンピュータプログラムであって、コンピュータ に (a)下流プログラムの各入力に補助バッファを提供させる指示と、 (b)入力が共用の上流プログラムから直接又は間接的に来た場合に、及び、来 た場合のみに、2つの入力が同じ入力セット内に存在するように、各下流プログ ラムの前記入力を互いに素の入力セットに区分させる指示と、 (c)ある入力セット内の入力Iを介して、上流プログラムから下流プログラム内 へのデータの読出しの試みを行わせる指示と、 (d)現在、入力Iからの使用可能なデータがなく、同じ入力セット内のその他の 人力Jが使用可能なデータを有する場合、使用可能なデータが全ての前記入力J上 で消費されるまで、又はデータが入力I上で使用可能になるまで、前記入力Jの各 々から使用可能データを読出し、前記データを、入力Jに対応する補助バッファ に記憶させる指示と、 を有することを特徴とするプログラム。 7. 任意の補助バッファが満杯になってしまい、それでもさらにデータを記憶し なければならない場合に、コンピュータに前記下流プログラムをアボートさせる 指示をさらに有することを特徴とする請求の範囲6に記載のプログラム。 8. 入力Iから直接データを読出す前に、コンピュータに、記憶したデータを前 記入力Iに対応する前記補助バッファから下流プログラム内に読出させる指示を さらに有することを特徴とする請求の範囲6に記載の方法。 9. コンピュータに、記憶ブロックのプールを提供させ、1つ以上の記憶ブロッ クから各補助バッファを割当て、割当てられた補助バッファの各々を据 置き入力待ち行列内で参照させる指示をさらに有することを特徴とする請求の範 囲6に記載の方法。 10. コンピュータに、入力Iから直接データを読出す前に、記憶したデータを 前記入力Iに対応する前記補助バッファの前記記憶ブロックから前記下流プログ ラム内に読出させ、読出した各記憶ブロックを前記記憶ブロックのプールへと戻 させる指示をさらに有することを特徴とする請求の範囲9に記載の方法。
JP54730298A 1997-04-28 1998-04-28 データフロー計算におけるバッファデッドロックの防止方法 Expired - Lifetime JP3310304B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/847,909 US6088716A (en) 1997-04-28 1997-04-28 Method for preventing buffer deadlock in dataflow computations
US08/847,909 1997-04-28
PCT/US1998/008559 WO1998049628A2 (en) 1997-04-28 1998-04-28 Method for preventing buffer deadlock in dataflow computations

Publications (2)

Publication Number Publication Date
JP2001500656A true JP2001500656A (ja) 2001-01-16
JP3310304B2 JP3310304B2 (ja) 2002-08-05

Family

ID=25301795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54730298A Expired - Lifetime JP3310304B2 (ja) 1997-04-28 1998-04-28 データフロー計算におけるバッファデッドロックの防止方法

Country Status (12)

Country Link
US (1) US6088716A (ja)
EP (1) EP0985180B1 (ja)
JP (1) JP3310304B2 (ja)
AT (1) ATE321304T1 (ja)
AU (1) AU7168598A (ja)
CA (1) CA2288892C (ja)
CY (1) CY1106438T1 (ja)
DE (1) DE69833936T2 (ja)
DK (1) DK0985180T3 (ja)
ES (1) ES2256937T3 (ja)
PT (1) PT985180E (ja)
WO (1) WO1998049628A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019188179A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー デッドロック回避方法、デッドロック回避装置
WO2019188175A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー デッドロック回避方法、デッドロック回避装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909681A (en) 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
AU2004252918B2 (en) * 2003-06-25 2009-12-10 Ab Initio Technology Llc. Computer-aided parallelizing of computation graphs
US20080052687A1 (en) * 2003-11-03 2008-02-28 Agustin Gonzales-Tuchmann Development environment for data transformation applications
US8018849B1 (en) * 2005-03-25 2011-09-13 Tilera Corporation Flow control in a parallel processing environment
US7716630B2 (en) * 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7822615B2 (en) * 2005-06-27 2010-10-26 Ab Initio Technology Llc Translating expressions in a computing environment
US7231237B2 (en) * 2005-08-31 2007-06-12 Motorola, Inc. Wireless communication device with strategically positioned antenna
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
CN101501678B (zh) 2006-08-10 2013-10-16 起元科技有限公司 在基于图的计算中分配服务
US9053072B2 (en) * 2007-01-25 2015-06-09 Hewlett-Packard Development Company, L.P. End node transactions at threshold-partial fullness of storage space
AU2008279001B2 (en) 2007-07-26 2014-02-06 Ab Initio Technology Llc Transactional graph-based computation with error handling
US8595391B1 (en) * 2008-03-14 2013-11-26 Xilinx, Inc. Automatic queue sizing for dataflow applications
US8112742B2 (en) * 2008-05-12 2012-02-07 Expressor Software Method and system for debugging data integration applications with reusable synthetic data values
CA2750279C (en) 2009-02-13 2019-03-26 Ab Initio Technology Llc Managing task execution
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
CN107066241B (zh) 2010-06-15 2021-03-09 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
US8447901B2 (en) 2011-02-18 2013-05-21 Ab Initio Technology Llc Managing buffer conditions through sorting
US9003084B2 (en) 2011-02-18 2015-04-07 Ab Initio Technology Llc Sorting
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
JP6626823B2 (ja) 2013-12-05 2019-12-25 アビニシオ テクノロジー エルエルシー サブグラフから構成されるデータフローグラフ用のインターフェースの管理
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
JP6584672B2 (ja) 2015-12-21 2019-10-02 アビニシオ テクノロジー エルエルシー サブグラフインターフェースの生成

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US5204965A (en) * 1985-08-20 1993-04-20 Schlumberger Technology Corporation Data processing system using stream stores
CA2084575C (en) * 1991-12-31 1996-12-03 Chris A. Dinallo Personal computer with generalized data streaming apparatus for multimedia devices
DE4321776C1 (de) * 1993-06-30 1994-12-08 Siemens Ag Verfahren zum Bilden und Analysieren von informationselementeorientierten Signalisierungsmeldungen in Kommunikationseinrichtungen
US5568614A (en) * 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5790893A (en) * 1996-06-05 1998-08-04 International Business Machines Corporation Segmented concurrent receive/transfer interface using shared RAM storage

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019188179A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー デッドロック回避方法、デッドロック回避装置
WO2019188175A1 (ja) * 2018-03-30 2019-10-03 株式会社デンソー デッドロック回避方法、デッドロック回避装置
JP2019179416A (ja) * 2018-03-30 2019-10-17 株式会社デンソー デッドロック回避方法、デッドロック回避装置
JP2019179412A (ja) * 2018-03-30 2019-10-17 株式会社デンソー デッドロック回避方法、デッドロック回避装置
JP7039365B2 (ja) 2018-03-30 2022-03-22 株式会社デンソー デッドロック回避方法、デッドロック回避装置
JP7064367B2 (ja) 2018-03-30 2022-05-10 株式会社デンソー デッドロック回避方法、デッドロック回避装置

Also Published As

Publication number Publication date
ATE321304T1 (de) 2006-04-15
CA2288892C (en) 2003-09-09
PT985180E (pt) 2006-07-31
EP0985180A1 (en) 2000-03-15
CA2288892A1 (en) 1998-11-05
ES2256937T3 (es) 2006-07-16
WO1998049628A2 (en) 1998-11-05
DK0985180T3 (da) 2006-07-17
EP0985180A4 (en) 2000-08-16
WO1998049628A3 (en) 1999-03-11
AU7168598A (en) 1998-11-24
DE69833936D1 (de) 2006-05-11
CY1106438T1 (el) 2011-10-12
JP3310304B2 (ja) 2002-08-05
DE69833936T2 (de) 2006-12-28
US6088716A (en) 2000-07-11
EP0985180B1 (en) 2006-03-22

Similar Documents

Publication Publication Date Title
JP2001500656A (ja) データフロー計算におけるバッファデッドロックの防止方法
US6691175B1 (en) Method and apparatus for managing data propagation between software modules
JP4323637B2 (ja) メモリアロケーション方法及びメモリアロケーション装置並びに記憶媒体
US5892979A (en) Queue control apparatus including memory to save data received when capacity of queue is less than a predetermined threshold
US9448856B2 (en) Lock-free dual queue with condition synchronization and time-outs
US7194495B2 (en) Non-blocking memory management mechanism for supporting dynamic-sized data structures
US7111289B2 (en) Method for implementing dual link list structure to enable fast link-list pointer updates
US6615304B1 (en) Processing unit in which access to system memory is controlled
JP2714952B2 (ja) 計算機システム
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
US20230161641A1 (en) Compact NUMA-aware Locks
US11914996B2 (en) Ticket locks with enhanced waiting
US6920635B1 (en) Method and apparatus for concurrent propagation of data between software modules
CN107765991A (zh) 用于传输消息的方法和装置
US20210311773A1 (en) Efficient Condition Variables via Delegated Condition Evaluation
US20170255548A1 (en) Method and system for dynamically updating data fields of buffers
US6892253B2 (en) Maintaining remote queue using two counters in transfer controller with hub and ports
US5430874A (en) Control method and system for managing memory control blocks of programmed tasks in a multi-processing system
US6697889B2 (en) First-in first-out data transfer control device having a plurality of banks
US6434592B1 (en) Method for accessing a network using programmed I/O in a paged, multi-tasking computer
JP7087921B2 (ja) 処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラム
JP3467188B2 (ja) 多重化バスの順序保証システム
Needham et al. An approach to real-time scheduling—but is it really a problem for multimedia?
JPS5899857A (ja) パイプライン処理方式のアクセス処理装置
JPH11242648A (ja) データ転送装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090524

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090524

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100524

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110524

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120524

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130524

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term