JP4197571B2 - 自動分散処理システムおよび記録媒体 - Google Patents
自動分散処理システムおよび記録媒体 Download PDFInfo
- Publication number
- JP4197571B2 JP4197571B2 JP2000088703A JP2000088703A JP4197571B2 JP 4197571 B2 JP4197571 B2 JP 4197571B2 JP 2000088703 A JP2000088703 A JP 2000088703A JP 2000088703 A JP2000088703 A JP 2000088703A JP 4197571 B2 JP4197571 B2 JP 4197571B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- thread
- processing
- machine
- source
- 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.)
- Expired - Lifetime
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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は、処理の分散化により発生するデッドロックを回避する自動分散処理システムおよび記録媒体に関する。
【0002】
【従来の技術】
一般に、自動分散処理システムは、本来単独のマシン上で実行されるべき処理の一部を他のマシンに委託し、処理の分散化を図るシステムである。
このような自動分散処理システムでは、本来単独のスレッドまたはプロセスにより行うべき処理が委託元と委託先とに分散されるので、排他的機能が働き、本来の動作とは異なるものとなってしまい、いわゆるデッドロックを発生する。
【0003】
以下、デッドロックの発生について図9を参照して説明する。
【0004】
今、委託元マシン1においてアプリケーションの実行時、命令中継スレッド(ユーザスレッド)131が委託先マシン2に委託するための命令を発生すると、その命令を委託先マシン2に中継する。従って、委託元シン1は、この段階では図示点線矢印のごとく委託処理待ちの状態となる。
【0005】
一方、委託先マシン2の命令処理スレッド213は、委託元マシン1から委託される命令を受信し、その命令を処理するが、この命令処理の過程で別の命令が発生し、委託元マシン1の命令処理スレッド133に委託する必要が生じたとき、その別の命令を委託元マシン1に送信する。従って、委託先マシン2は、この段階では図示点線矢印のごとく委託処理待ちの状態となる。つまり、両マシン1,2は何れも命令処理待ちの状態となっている。
【0006】
しかし、別の命令を受信した委託元マシン1では、既に自身のアプリケーション処理時に排他用ロックをかけた状態となっており、待ちの状態にあるので、委託先マシン2から委託した別の命令を処理できない状態にあり、委託元マシン1ではデッドロックが発生する。つまり、両マシン1,2とも委託された命令を処理できない状態が発生する。
【0007】
【発明が解決しようとする課題】
従って、以上のような自動分散処理システムにおいては、次のような問題が生ずる。
【0008】
その1つは、委託先マシン2の処理部から排他用処理部分を除去することが考えられるが、それでは委託先マシン2の処理部をそのまま生かしつつ使用することができない問題がある。また、委託先マシン2の処理部の実装内容をマシン開発者から取得した上、排他部分を回避する考えもあるが、常にマシン開発者から実装内容を取得できるとは限らず、仮に取得したとしても排他機能を完全に回避できるとは言い難い。
【0009】
また、他の1つは、ある命令を委託元マシン1から委託先マシン2に委託したとしても、前述するように当該命令内において委託先マシン2が委託元マシン1に別の命令を委託するといった,命令の入れ子が生じたとき、別の命令を行う委託元マシン100のスレッドが排他対象となってしまい、委託元マシン1側で排他管理ができなくなる問題がある。
【0010】
本発明は、上記事情にかんがみてなされたものであって、処理の分散化により発生するデッドロックを確実に回避する自動分散処理システムおよび記録媒体を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記課題を解決するために、本発明に係る自動分散処理システムは、命令委託元マシンと命令委託先マシンがネットワークを介して接続されている自動分散処理システムにおいて、
前記命令委託元マシンは、スレッド識別子のもとに各スレッドを管理するテーブルと、委託元上位ライブラリとともに委託元アプリケーションの処理過程における命令発生時、前記テーブルに命令処理用スレッドが登録されているか否かを判断し、未登録時にはスレッド識別子のもとに当該命令処理用スレッドを前記テーブルに登録し、当該テーブルで管理するスレッド識別子を付加して命令を前記委託先マシンに送信し、また、後記委託元命令振り分け機能から振り分けられた別命令の処理終了時に別命令に対する処理終了の返信を前記スレッド識別子とともに前記命令委託先マシンに送信する委託元命令中継機能と、前記委託先マシンから前記スレッド識別子とともに別命令を受け取ると、当該識別子に基づいて依頼元となったスレッドへの振り分けを行う委託元命令振り分け機能とを提供する命令中継ライブラリを設け、
前記命令委託先マシンは、前記委託元命令中継機能から送信されてくる命令をスレッド識別子とともに受信し、命令を処理するスレッドを作成し前記スレッド識別子とともに渡す委託先命令振り分け機能と、この受け取った命令を委託先上位ライブラリとともに処理し、その命令処理時の別命令発生時及び処理終了時、前記スレッド識別子を付加して前記別命令及び処理終了返信を前記委託元命令振り分け機能に送信する命令処理機能とを提供する命令実行モジュールを設けた構成である。
【0012】
この発明は以上のような構成とすることにより、委託元マシン側のアプリケーション処理によって命令が発生したとき、その命令にスレッド識別子を付けて委託先マシンの命令振り分け機能に送信し受信待ちとなる。この命令および識別子を受信した命令振り分け機能は、命令処理スレッドを作成し、識別子と共に命令を渡す。
【0013】
この命令処理機能は、命令処理後や命令処理時の新たな別命令の発生時、それら命令処理終了や別命令に前記識別子を付けて委託元マシンのスレッド振り分け機能に送信する。そこで、委託元マシンのスレッド振り分け機能はその識別子から命令発行元となった命令中継機能に渡すので、当該命令中継機能では、受信待ちの状態から命令終了や別命令を処理できる状態に移行し処理するので、別命令が発生してもデッドロックを容易に回避することが可能となる。
【0014】
なお、以上の一連の処理は、委託先マシンから命令が発生したときにも同様の構成を持たせることにより、実現可能である。この場合には委託先マシンが委託元マシンと同様な構成をもてばよく、一方、委託元マシンが委託先マシンと同様な構成を持たせればよい。
【0015】
また、委託元マシンおよび委託先マシンは、予め処理手順を規定するプログラムを記録媒体に記録しておけば、そのプログラムを読み取って以上のような一連の処理を実現することも可能である。
【0023】
【発明の実施の形態】
以下、本発明の一実施の形態について図面を参照して説明する。
【0024】
図1は本発明に係るGUI等の処理を行う自動分散処理システムの一実施の形態を示す構成図である。
【0025】
このシステムは、例えばGUIの表示処理部分等を委託する委託元マシン1と、この委託元マシン1から委託される表示処理を実行する委託先マシン2とによって構成されている。
【0026】
この委託元マシン1は、GUI等に関する一連の処理を規定するアプリケーション11と、このアプリケーション11とリンクして動作する上位ライブラリ12と、この上位ライブラリ12からの命令を委託先マシン2に中継する命令中継ライブラリ13とからなり、一方、委託先マシン2は、命令中継ライブラリ13からの命令を処理する命令実行モジュール21と、この命令実行モジュール21とリンクして動作する前記委託元上位ライブラリ12との互換性をもっている上位ライブラリ22と、この上位ライブラリ22とリンクして動作する下位ライブラリ23とからなる。
【0027】
なお、委託元マシン1および委託先マシン2にはそれぞれデッドロック防止のためのプログラムを記録した記録媒体14,24が設けられている。この記録媒体14,24は、一般的にはCD−ROMや磁気ディスク等が用いられるが、それ以外にも例えば磁気テープ、DVD−ROM、フロッピーディスク、MO、CD−R、メモリカードなどを用いてもよい。
【0028】
この委託元マシン1の命令中継ライブラリ13は、委託元下位ライブラリ23と互換性を有し、具体的には上位ライブラリ12からの命令を命令実行モジュール21に中継する命令中継スレッド131、委託先マシン側の命令実行モジュール21からの命令を処理するスレッドを検索し命令を振り分ける命令振り分けスレッド132、この命令振り分けスレッド132からの命令を上位ライブラリ12に渡して処理する命令処理スレッド133、スレッド識別子を用いてスレッドを管理するスレッド管理テーブル134、処理が終了し解放された命令処理スレッド133を管理する解放済スレッド蓄積部135等によって構成されている。
【0029】
前記委託先マシン2の命令実行モジュール21は、委託先下位ライブラリ22からの命令を命令中継ライブラリ13に中継する命令中継スレッド211、委託元命令中継ライブラリ13からの命令を処理するスレッドを検索し命令を振り分ける振り分けスレッド212、この振り分けスレッド212からの命令を上位ライブラリ22に渡して処理する命令処理スレッド213、スレッド識別子を用いてスレッドを管理するスレッド管理テーブル214、処理が終了し解放された委託先命令スレッド213を管理する解放済スレッド蓄積部215等によって構成されている。
【0030】
図2は一般的にアプリケーションを実行する場合のモジュールの概略構成図である。
【0031】
すなわち、実行マシン100は、アプリケーション110、このアプリケーション110とリンクして動作する上位ライブラリ120と、この上位ライブラリ120とリンクして動作する下位ライブラリ130とを有し、当該アプリケーション110を実行するが、例えばGUI等の処理を行なうアプリケーション11を実行する場合、下位ライブラリ130部分を、当該下位ライブラリ130と互換性のある命令中継ライブラリ13に入れ替え、処理の自動分散化を図っている。
【0032】
次に、以上のような自動分散処理システムに関し、特にデッドロック防止の一連の処理について図3を参照して説明する。なお、委託元命令中継スレッド131と委託先命令中継スレッド211、委託元命令振り分けスレッド132と委託先命令振り分けスレッド212とはそれぞれ同様な処理を行なうので、説明の便宜上,片方の処理フローは省略する。
【0033】
命令中継ライブラリ13は上位ライブラリ120から命令を受けると、記録媒体14に記録されるプログラムを読み取り、次のような処理を実行する。
【0034】
今、委託元マシン1においてアプリケーション11の実行時に上位ライブラリ12を通して命令が発生すると(S1)、ユーザスレッド等の命令中継スレッド131は、その命令処理用スレッドがスレッド管理テーブル134内に登録されているか否かを調べ(S2)、登録されていない場合には当該スレッド管理テーブル134に登録し(S3)、次のステップS4に移行する。既にスレッドが登録されている場合にも同様にステップS4に移行する。このステップS4では、命令に発行元のスレッド識別子を付加し、委託先マシン2の命令振り分けスレッド212に中継するとともに、自身を受信待ちの状態に設定する。これらステップS1〜S4は命令を中継する機能である。
【0035】
ここで、委託先マシン2の命令振り分けスレッド212は、命令を処理するスレッド側のスレッド識別子がスレッド管理テーブル214に登録されているか否かを判断し(S51)、登録されていなければ解放済スレッド蓄積部215にスレッドが有るか否かを調べ(S52)、スレッドが無ければ新たに識別子とともにスレッドを作成し(S53)、スレッド識別子と命令処理スレッドとを組としてスレッド管理テーブル214に登録後(S54)、その命令処理スレッド213に命令を渡す(S55)。ステップS52において解放済スレッドがある場合もステップS54を介して命令処理スレッドに命令を渡す。これらステップS51〜S55は命令処理用スレッドを作成し命令を渡す機能である。
【0036】
命令処理スレッド213は、上位ライブラリ22とリンクして処理動作を実行するが、このとき処理が終了する場合と処理の過程で別命令が発生する場合があるので、別命令発生か否かを判断し(S56)、別命令発生の場合には前述した委託元マシン1から受信した識別子を付けて別命令を委託元マシン1の命令振り分けスレッド132に送出する。この時、委託先マシン側の識別子を付けて送信してもよい。また、別命令の有無を判断し、別命令無しの場合には上位ライブラリ22とリンクしながら該当命令の処理が終了したかを判断し(S57)、処理終了の場合には該当命令終了の返信に同じく委託元マシン1から受け取った識別子を付けて委託元マシン1の命令振り分けスレッド132に送出する(S58)。
【0037】
委託元マシン1の命令振り分けスレッド132は、識別子とともに委託先の別命令または処理終了による返信を受け取ると、識別子から委託元である命令中継スレッド131に処理を委託する。この命令中継スレッド131は、命令に対する返信か、別命令かを判断(S6)、返信の場合には終了し、別命令の場合には上位ライブラリ12に別命令を発行し、処理を行なう(S7)。ここで、別命令の処理が終了すれば、別命令に対する処理終了の返信を委託先側発行元のスレッド識別子とともに委託先マシン2の命令振り分けスレッド212に送信する(S8)。
【0038】
従って、以上のような実施の形態によれば、デッドロックを容易に回避可能である。
【0039】
すなわち、ある命令が委託元マシン1から委託先マシン2に行われ、この命令内で呼ばれる委託先上位ライブラリ22内から更に別命令が委託元マシン1に委託されると、図9に示すごとく命令の入れ子が行われ、デッドロックが発生する。
【0040】
しかし、本実施の形態では、委託先で別の命令が発生したとき、委託元から既に命令委託のときに受け取っているスレッド識別子を別命令とともに返すので、委託元マシンでは委託元のスレッドが判明でき、この委託元である命令中継スレッド131はロットをかけているが、命令に伴う別命令であることがスレッド識別子からわかるので、処理の自動分散化を行なわない場合と同様に確実にデッドロックを回避できる。
【0041】
図4は図9とは異なる別のデッドロック発生例を説明するための図である。
【0042】
このシステムは、通常のアプリケーション実行時における委託元マシン1のユーザスレッド等の命令中継スレッド131と委託先マシン2のイベント処理スレッド(命令中継スレッド)211とで同一の排他用ロックを同時に取得しようとするアプリケーションの例である。
【0043】
この場合、命令中継スレッド131がロックをかけて委託元アプリケーションの処理時に命令Aが発生したとき、その命令Aを委託先マシン2の命令処理スレッド213に中継し、処理待ちの状態に入る。一方、イベント処理スレッド211においても、ロックをかけた状態でのイベント処理時に命令Bが発生したとき、その命令Bを委託元マシン1の命令処理スレッド133に中継し、処理待ちの状態に入る。しかし、これらマシン1,2はそれぞれ時間をずらして各命令を相手マシン2,1に命令を委託する場合には特に問題が生じないが、両マシン1,2が同時に命令が発生した場合には互いにロックを取得し合えない状態となり、デッドロックが発生する。
【0044】
図5は図4に示すデッドロックを回避するための本発明に係る自動分散処理システムの他の実施形態を示す構成図である。
【0045】
今、委託元マシン1において命令中継スレッド131は、ロックをかけて委託元アプリケーション処理時に命令Aが発生すると(S11)、命令Aを中継し(S12)、委託先マシン2の命令処理スレッド212に送信する。このステップS11,S12は命令中継機能である。
【0046】
この命令処理スレッド212は、命令Aを受信すると(S61)、自身のマシンに対するロックが取得可能か否かを判断する(S62)。ステップS61,S62はロック取得判断機能である。ロック取得不可であれば、委託元マシ1にリトライするよう通知する(S63:リトライ通知機能)。ロックを取得可能であれば、ロックをかけて命令Aを処理し(S64)、命令処理終了後にその命令Aを終了した旨を返信し(S65)、ロックを解放する。ステップS64,S65は命令処理機能である。
【0047】
一方、委託元マシン1の命令中継スレッド131では、命令Aを中継した後(S12)、受信待ちの状態に入る(S13)。命令A中継後、リトライ用の通知があったとき(S14)、ロックを一時解放し(S15)、ロックの再取得を命令A中継に指示する(S16)。これらステップS13〜S16は命令中継リトライ機能である。
【0048】
また、命令中継スレッド131では、委託先マシン2の命令処理スレッド212からの命令処理返信の有無を判断し(S17)、処理終了であればロックを解放し、命令処理を終了する(S18)。
【0049】
なお、委託先マシン2によるイベント処理時に命令Bが発生したとき、命令Bを中継し、委託元マシン1の命令処理スレッド132に送信する。この命令処理スレッド132は、ロックを取得し命令Bを処理し、命令処理終了後に返信する構成とするが、例えば委託先マシン2の命令処理スレッド212と同様な構成であってもよい。また、委託先マシン2の命令中継スレッド211についても、委託元マシン1の命令中継スレッド131と同様な構成であってもよい。
【0050】
従って、以上のような実施の形態によれば、委託先マシン2が委託元マシン1から命令を受信したとき、自身マシンのロックを取得できるか判断し、ロック取得不可の場合に委託元マシン1のリトライを通知し、再度当該命令の中継を促すので、デッドロックを容易に回避できる。
【0051】
一般に、デッドロックの回避手段としては、最初の命令を中継するとき、排他用ロックを無条件に解放することも考えられるが、もともとアプリケーションが排他用ロック取得状態にて実行している命令内であるので、不用意に排他用ロックを解放すると、排他機能が働かず、予期せぬ不適合が発生する可能性がある。
【0052】
そこで、本システムにおいては、委託元マシン1上の排他機能をできる限り生かし、例外的にデッドロックの危険性が有るときだけ、デッドロックを回避するものである。
【0053】
次に、図6および図7にて更に別のデッドロックの発生例について述べる。
【0054】
例えば同一マシン上,つまり委託元マシン1または委託先マシン2において処理画面上のあるアイコンをマウス等でクリックしダイアログ表示命令を出し、マウスイベント等に伴うダイアログボックス(イベント処理スレッド)を生成したとき、そのダイアログボックスが閉じるまで待機状態にある場合のデッドロック発生例である。
【0055】
先ず、入力イベント待ちダイアログ表示の際の実行マシン100の通常実行動作は、図6に示すようにダイアログ表示命令が発生する(S21)、排他用ロックを取得し、ダイアログを表示した後(S22)、そのダイアログ表示の旨をイベント処理スレッドに通知する(S23)。この通知後、排他用ロックを解放し(S24)、待機状態とする(S25)。つまり、一度ロックを取得するが、ダイアログ表示の旨を通知した後、ロックを解放し、待機状態にする。
【0056】
一方、イベント処理スレッドでは、ダイアログ表示の通知を受信すると、ダイアログ表示通知有りと判断し(S71)、ダイアログ管理部に登録するが(S72)、ダイアログ表示通知無しの場合には、管理中ダイアログの非表示イベントであるか否かを判断し(S73)、非表示の場合にはユーザスレッドの待機中スレッドを起こし(S74)、ダイアログの非表示イベントでない場合にはロックを取得し、イベント処理を行ない、その処理終了後にロックを解放する(S75)。
【0057】
ステップS74においてダイアログ非表示イベントに入った際、待機中に合ったスレッドを再開し、ロックを取得する(S26)。
【0058】
従って、以上のような同一マシン上での通常実行時、互いに相手のスレッドを調べながらロックをかけたり、ロックを解放しているので、デッドロックの発生がない。
【0059】
しかしながら、以上のようなダイアログの表示技術に関し、本発明に係る自動分散処理システムに適用すると、図7に示すようにデッドロックが発生する。
【0060】
すなわち、委託元マシン1における委託元アプリケーションの処理時、命令中継スレッド131は、ダイアログ表示命令A発生後、ロックをかけた後、命令Aを委託先マシン2の命令処理スレッド213に送信した後、命令処理待ちの状態に入る。
【0061】
一方、委託先マシン2の命令処理スレッド213は、命令Aを受信した後、命令Aを処理する。つまり、ロックをかけて図6のユーザスレッドの処理を行ない、ロック解放、待機を行なう。
【0062】
ところが、委託先マシン2の命令中継スレッド211においては、同様にイベント処理時に命令Bが発生したとき、命令Bを委託元マシン1の命令処理スレッド133に送信するので、命令Bを受信した命令処理スレッド133では、命令Bを受信するが、ロックがかかった状態にあるので、デッドロックが発生する。つまり、委託先マシン2上のイベント処理スレッド211のイベント処理中に排他用ロックを取得しようとした場合、イベント処理スレッドの動作が停止してしまい、デッドロックが発生する。
【0063】
そこで、本発明システムでは、委託元マシン1の命令中継スレッド131は、命令A(ダイアログ表示命令)が発生したとき(S31)、ロックをかけるが、その命令Aがダイアログ表示命令であれば(S32)、ロックを解放し(S33)、命令Aを委託先マシン2の命令処理スレッド213に中継する(S34)。ステップS31〜S33は命令解析ロック解除機能である。
【0064】
委託先マシン2の命令処理スレッド213は、命令Aを受信するとその命令内容であるダイアログ表示に関し、ロックをかけて処理し(処理内ではロックを解放して待機し、再開依頼を待つ)、その処理終了後に返信する(S81)。ここで、委託元マシン1の命令中継スレッド131は、委託先マシン2からの返信を受信し(S35)、命令Aを終了する(S36)。
【0065】
一方、委託先マシン2の命令中継スレッド211は、所定周期でダイアログ非表示イベント発生の有無を判断し(S82)、ダイアログ非表示時にはイベント処理(ロック取得)を実行し命令Bが発生したとき(S83)、委託元マシン1の命令処理スレッド133に送信し,命令処理後の返信を受けて命令Bを終了し(S84)、ロックを解放する。
【0066】
従って、以上のような実施の形態によれば、委託元マシン1の命令中継スレッド131は、命令A発生時、ロックをかけるが、ダイアログ表示命令が発生したとき、つまり委託先の処理を待つ必要がある命令の場合には、ロックを解放し、委託先マシン2に中継するので、委託先マシン2のイベント処理スレッド211がイベント処理の過程で新たな命令Bが発生し委託元マシン2のロックが解除されているので゛、命令Bが発生しても委託元マシン1はデッドロックを容易に回避できる。
【0067】
なお、本願発明は、上記実施の形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変形して実施できる。また、各実施の形態は可能な限り組み合わせて実施することが可能であり、その場合には組み合わせによる効果が得られる。さらに、上記各実施の形態には種々の上位,下位段階の発明が含まれており、開示された複数の構成要素の適宜な組み合わせにより種々の発明が抽出され得る。例えば実施の形態に示される全構成要件から幾つかの構成要件が省略されうることで発明が抽出された場合には、その抽出された発明を実施する場合には省略部分が周知慣用技術で適宜補われるものである。
【0068】
【発明の効果】
以上説明したように本発明によれば、命令委託先の処理部をそのままの形で使用しながらデッドロックを未然に防止できる。
【0069】
また、ある命令が委託元マシンから委託先マシンへ行われ、当該命令内で呼ばれる委託先マシンの処理部内から更に委託元マシンに別命令を行なう,いわゆる命令の入れ子が行われた場合でも、処理の分散処理を行なわない場合と同様にデッドロックを防止でき、また逆に委託先マシンから委元マシンへの委託であっても同様である。
【図面の簡単な説明】
【図1】 本発明に係る自動分散処理システムの一実施の形態を示す構成図。
【図2】 アプリケーションの通常実行時のモジュールの概略構成図。
【図3】 デッドロック防止処理を説明するフローチャート。
【図4】 デッドロックの発生する例を説明する図。
【図5】 図4に示すデッドロックを回避する本発明に係る自動分散処理システムの他の実施形態を示す構成図。
【図6】 実行マシンの通常実行時の処理を説明するフローチャート。
【図7】 デッドロックの発生する他の例を説明する図。
【図8】 図7に示すデッドロックを回避する本発明に係る自動分散処理システムの更に他の実施形態を示す構成図。
【図9】 従来の一般的なデッドロック発生の例を説明する図。
【符号の説明】
1…委託元マシン
2…委託先マシン
11…アプリケーション
12…上位ライブラリ
13…命令中継ライブラリ
14…記録媒体
21…命令実行モジュール
22…上位ライブラリ
24…記録媒体
131…命令中継スレッド
132…命令振り分けスレッド
133…命令処理スレッド
134…スレッド管理テーブル
135…解放済スレッド蓄積部
211…命令中継スレッド
212…命令振り分けスレッド
213…命令処理スレッド
214…スレッド管理テーブル
215…解放済スレッド蓄積部
Claims (2)
- 命令委託元マシンと命令委託先マシンがネットワークを介して接続されている自動分散処理システムにおいて、
前記命令委託元マシンは、スレッド識別子のもとに各スレッドを管理するテーブルと、委託元上位ライブラリとともに委託元アプリケーションの処理過程における命令発生時、前記テーブルに命令処理用スレッドが登録されているか否かを判断し、未登録時にはスレッド識別子のもとに当該命令処理用スレッドを前記テーブルに登録し、当該テーブルで管理するスレッド識別子を付加して命令を前記委託先マシンに送信し、また、後記の委託元命令振り分け機能から振り分けられた別命令の処理終了時に別命令に対する処理終了の返信を前記スレッド識別子とともに前記命令委託先マシンに送信する委託元命令中継機能と、前記委託先マシンから前記スレッド識別子とともに別命令を受け取ると、当該識別子に基づいて依頼元となったスレッドへの振り分けを行う前記委託元命令振り分け機能とを提供する命令中継ライブラリを設け、
前記命令委託先マシンは、前記委託元命令中継機能から送信されてくる命令をスレッド識別子とともに受信し、命令を処理するスレッドを作成し前記スレッド識別子とともに渡す委託先命令振り分け機能と、この受け取った命令を委託先上位ライブラリとともに処理し、その命令処理時の別命令発生時及び処理終了時、前記スレッド識別子を付加して前記別命令及び処理終了返信を前記委託元命令振り分け機能に送信する命令処理機能とを提供する命令実行モジュールを設けたことを特徴とする自動分散処理システム。 - 命令を委託する委託元マシンのコンピュータに、
委託元アプリケーションの処理時に命令が発生したとき、テーブルで管理するスレッド識別子と各スレッドとの関係を参照し前記命令にスレッド識別子を付加して委託先マシンに送信する命令中継機能と、前記委託先マシンによる命令処理時に発生する別命令に前記スレッド識別子が付加されて送信されてきたとき、委託元となったスレッドに振り分けるスレッド振り分け機能と、この振り分けられた委託元スレッドで処理された前記別命令の処理結果を前記委託先マシンに返信する機能とを実現させるためのプログラムを記録した前記コンピュータ読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000088703A JP4197571B2 (ja) | 2000-03-28 | 2000-03-28 | 自動分散処理システムおよび記録媒体 |
US09/817,259 US20010027462A1 (en) | 2000-03-28 | 2001-03-27 | Automatic distributed processing system and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000088703A JP4197571B2 (ja) | 2000-03-28 | 2000-03-28 | 自動分散処理システムおよび記録媒体 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008024603A Division JP4197733B2 (ja) | 2008-02-04 | 2008-02-04 | 自動分散処理システム |
JP2008024602A Division JP4197732B2 (ja) | 2008-02-04 | 2008-02-04 | 自動分散処理システムおよび記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001273156A JP2001273156A (ja) | 2001-10-05 |
JP4197571B2 true JP4197571B2 (ja) | 2008-12-17 |
Family
ID=18604544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000088703A Expired - Lifetime JP4197571B2 (ja) | 2000-03-28 | 2000-03-28 | 自動分散処理システムおよび記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20010027462A1 (ja) |
JP (1) | JP4197571B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
JP4886188B2 (ja) * | 2004-12-16 | 2012-02-29 | キヤノン株式会社 | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
KR101080845B1 (ko) * | 2009-10-30 | 2011-11-07 | (주)지노게임즈 | 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 |
US10761714B2 (en) * | 2015-11-23 | 2020-09-01 | Google Llc | Recognizing gestures and updating display by coordinator |
US11586695B2 (en) | 2018-02-27 | 2023-02-21 | Elasticsearch B.V. | Iterating between a graphical user interface and plain-text code for data visualization |
US10657317B2 (en) * | 2018-02-27 | 2020-05-19 | Elasticsearch B.V. | Data visualization using client-server independent expressions |
US10997196B2 (en) | 2018-10-30 | 2021-05-04 | Elasticsearch B.V. | Systems and methods for reducing data storage overhead |
US11803391B2 (en) * | 2020-10-20 | 2023-10-31 | Micron Technology, Inc. | Self-scheduling threads in a programmable atomic unit |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892944A (en) * | 1993-07-20 | 1999-04-06 | Kabushiki Kaisha Toshiba | Program execution and operation right management system suitable for single virtual memory scheme |
US6640255B1 (en) * | 1995-03-31 | 2003-10-28 | Sun Microsystems, Inc. | Method and apparatus for generation and installation of distributed objects on a distributed object system |
US6212573B1 (en) * | 1996-06-26 | 2001-04-03 | Sun Microsystems, Inc. | Mechanism for invoking and servicing multiplexed messages with low context switching overhead |
US6125382A (en) * | 1997-07-25 | 2000-09-26 | International Business Machines Corporation | Distributed thread mechanism and method |
US6272518B1 (en) * | 1998-08-17 | 2001-08-07 | International Business Machines Corporation | System and method for porting a multithreaded program to a job model |
US6298478B1 (en) * | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
US6418442B1 (en) * | 1999-06-29 | 2002-07-09 | Sun Microsystems, Inc. | Method and apparatus for providing thread-specific computer system parameters |
-
2000
- 2000-03-28 JP JP2000088703A patent/JP4197571B2/ja not_active Expired - Lifetime
-
2001
- 2001-03-27 US US09/817,259 patent/US20010027462A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2001273156A (ja) | 2001-10-05 |
US20010027462A1 (en) | 2001-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6044394A (en) | Managing independently executing computer tasks that are interrelated by dataflow | |
US7739243B2 (en) | System and method for dynamically configuring a multiplatform computing environment | |
US6594779B1 (en) | Method, system and program products for managing the checkpointing/restarting of resources of a computing environment | |
US20060206858A1 (en) | System arrangement and method for automated application development with user guidance | |
EP1624375A2 (en) | Apparatus, method and program to handle an abnormality in a distributed information processing system | |
CN110222106A (zh) | 集成的工作流和数据库事务 | |
CN104657158B (zh) | 一种业务系统中业务处理的方法和装置 | |
JP4197571B2 (ja) | 自動分散処理システムおよび記録媒体 | |
US20070294708A1 (en) | System, method and program tool to reset an application | |
JP2006285810A (ja) | クラスタ構成コンピュータシステム及びその系リセット方法 | |
US20030110232A1 (en) | Distributing messages between local queues representative of a common shared queue | |
Casati | A discussion on approaches to handling exceptions in workflows | |
JP2002324155A (ja) | ワークフロー・システムおよびプログラム | |
US20120331120A1 (en) | Controlling application landscapes | |
JP4197733B2 (ja) | 自動分散処理システム | |
JP4197732B2 (ja) | 自動分散処理システムおよび記録媒体 | |
CN108733477A (zh) | 数据集群化处理的方法、装置及设备 | |
US8583610B2 (en) | Dynamically extending a plurality of manageability capabilities of it resources through the use of manageability aspects | |
US7739420B2 (en) | Communication error information output method, communication error information output device and recording medium therefor | |
JP2009271858A (ja) | 計算機システム及びプログラム | |
JP5478372B2 (ja) | ゲストos制御システム | |
US8893132B2 (en) | Information processing apparatus | |
JP5031538B2 (ja) | データ分配方法、データ分配プログラム、及び並列データベースシステム | |
JP2013020494A (ja) | ソフトウェア実行システムおよびソフトウェア実行方法およびプログラム | |
JP2001034595A (ja) | 複数システム間業務統合方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080204 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080204 Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080205 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080617 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080814 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080821 |
|
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: 20080924 |
|
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: 20080929 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111010 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4197571 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111010 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121010 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121010 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131010 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |