JP2001273156A - 自動分散処理システムおよび記録媒体 - Google Patents

自動分散処理システムおよび記録媒体

Info

Publication number
JP2001273156A
JP2001273156A JP2000088703A JP2000088703A JP2001273156A JP 2001273156 A JP2001273156 A JP 2001273156A JP 2000088703 A JP2000088703 A JP 2000088703A JP 2000088703 A JP2000088703 A JP 2000088703A JP 2001273156 A JP2001273156 A JP 2001273156A
Authority
JP
Japan
Prior art keywords
instruction
thread
machine
processing
lock
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
JP2000088703A
Other languages
English (en)
Other versions
JP4197571B2 (ja
Inventor
Koji Muramatsu
孝治 村松
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000088703A priority Critical patent/JP4197571B2/ja
Priority to US09/817,259 priority patent/US20010027462A1/en
Publication of JP2001273156A publication Critical patent/JP2001273156A/ja
Application granted granted Critical
Publication of JP4197571B2 publication Critical patent/JP4197571B2/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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task 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)

Abstract

(57)【要約】 【課題】 分散処理時のデッドロックを防止するこ
とにある。 【解決手段】 命令委託元マシン1と命令委託先マシン
2がネットワークを介して接続され、そのうち前記命令
委託元マシンは、委託元上位ライブラリ12とともに委
託元アプリケーション11の処理過程における命令発生
時、スレッド識別子を付加して命令を中継する委託元命
令中継スレッド131と、委託先マシンからの別命令を
処理するスレッドを検索する委託元命令振り分けスレッ
ド132とを有する委託元中継ライブラ13設け、前記
命令委託先マシンは、前記スレッド識別子とともに命令
を受信し、命令を処理するスレッドを作成し前記スレッ
ド識別子とともに渡す委託先命令振り分けスレッド21
2と、この受け取った命令を委託先上位ライブラリ22
とともに処理し、その命令処理時の別命令発生や処理終
了時、前記スレッド識別子を付加して別命令等を前記委
託元命令振り分けスレッドに送信する命令処理スレッド
213とを有する命令実行モジュールとを備えた自動分
散処理システムである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、処理の分散化によ
り発生するデッドロックを回避する自動分散処理システ
ムおよび記録媒体に関する。
【0002】
【従来の技術】一般に、自動分散処理システムは、本来
単独のマシン上で実行されるべき処理の一部を他のマシ
ンに委託し、処理の分散化を図るシステムである。この
ような自動分散処理システムでは、本来単独のスレッド
またはプロセスにより行うべき処理が委託元と委託先と
に分散されるので、排他的機能が働き、本来の動作とは
異なるものとなってしまい、いわゆるデッドロックを発
生する。
【0003】以下、デッドロックの発生について図9を
参照して説明する。
【0004】今、委託元マシン1においてアプリケーシ
ョンの実行時、命令中継スレッド(ユーザスレッド)1
31が委託先マシン2に委託するための命令を発生する
と、その命令を委託先マシン2に中継する。従って、委
託元シン1は、この段階では図示点線矢印のごとく委託
処理待ちの状態となる。
【0005】一方、委託先マシン2の命令処理スレッド
2123は、委託元マシン1から委託される命令を受信
し、その命令を処理するが、この命令処理の過程で別の
命令が発生し、委託元マシン1の命令処理スレッド13
3に委託する必要が生じたとき、その別の命令を委託元
マシン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】
【課題を解決するための手段】(1) 上記課題を解決
するために、本発明に係る自動分散処理システムは、命
令委託元マシンと命令委託先マシンがネットワークを介
して接続されている自動分散処理システムにおいて、前
記命令委託元マシンは、スレッド識別子のもとに各スレ
ッドを管理するテーブルと、委託元上位ライブラリとと
もに委託元アプリケーションの処理過程における命令発
生時、前記テーブルで管理するスレッド識別子を付加し
て命令を前記委託先マシンに送信する委託元命令中継ス
レッドと、前記委託先マシンからの別命令を処理するた
めのスレッドの振り分けを行う委託元命令振り分けスレ
ッドとを有する命令中継ライブラリを設け、また前記命
令委託先マシンは、前記委託元命令中継スレッドから送
信されてくる命令をスレッド識別子とともに受信し、命
令を処理するスレッドを作成し前記スレッド識別子とと
もに渡す委託先命令振り分けスレッドと、この受け取っ
た命令を委託先上位ライブラリとともに処理し、その命
令処理時の別命令発生や処理終了時、前記スレッド識別
子を付加して前記別命令や処理終了返信を前記委託元命
令振り分けスレッドに送信する命令処理スレッドとを有
する命令実行モジュールを設けた構成である。
【0012】この発明は以上のような構成とすることに
より、委託元マシン側のアプリケーション処理によって
命令が発生したとき、その命令にスレッド識別子を付け
て委託先マシンの命令振り分けスレッドに送信し受信待
ちとなる。この命令および識別子を受信した命令振り分
けスレッドは、命令処理スレッドを作成し、識別子と共
に命令を渡す。
【0013】この命令処理スレッドは、命令処理後や命
令処理時の新たな別命令の発生時、それら命令処理終了
や別命令に前記識別子を付けて委託元マシンのスレッド
振り分けスレッドに送信する。そこで、委託元マシンの
スレッド振り分けスレッドはその識別子から命令発行元
となった命令中継スレッドに渡すので、当該命令中継ス
レッドでは、受信待ちの状態から命令終了や別命令を処
理できる状態に移行し処理するので、別命令が発生して
もデッドロックを容易に回避することが可能となる。
【0014】なお、以上の一連の処理は、委託先マシン
から命令が発生したときにも同様の構成を持たせること
により、実現可能である。この場合には委託先マシンが
委託元マシンと同様な構成をもてばよく、一方、委託元
マシンが委託先マシンと同様な構成を持たせればよい。
【0015】また、委託元マシンおよび委託先マシン
は、予め処理手順を規定するプログラムを記録媒体に記
録しておけば、そのプログラムを読み取って以上のよう
な一連の処理を実現することも可能である。
【0016】(2) 本発明に係る自動分散処理システ
ムは、命令委託元マシンおよび命令委託先マシンには、
それぞれ排他用ロック後に自身のアプリケーション処理
時に命令が発生したとき、ロックをかけて相手側マシン
に命令を中継する命令中継スレッドおよびこの命令中継
スレッドからの命令を受信し処理する命令処理スレッド
が設けられ、そのうち少なくとも前記委託先マシン側命
令処理スレッドは、前記委託元マシン側の命令を受信
後、自身のマシンにてロック取得可能か否かを判断し、
ロック取得不可の場合には前記委託元マシンにリトライ
を通知する手段と、ロック取得可能な場合にはロックを
取得し命令処理終了後に返信し当該ロックを解放する手
段とを有し、また、少なくとも前記委託元マシン側命令
中継スレッドは、前記委託先マシン側からリトライ通知
を受けたとき、前記ロックを一時的に解放した後再び取
得して再度命令を中継するリトライを実施する手段と、
前記委託元マシン側から命令終了の返信を受けたとき、
前記ロックを解放する手段とを備えた構成である。
【0017】この発明は、以上のような構成とすること
により、委託元マシンは、排他用ロックをかけて命令を
委託先マシンに送信すると、委託先マシン側では、命令
受信後に自身側におけるロック取得可能か否かを判断
し、既に委託先マシン側においてロックがかかっている
場合には、ロック取得不可となるので、委託元マシンに
リトライを通知する。
【0018】通知を受けた委託元マシンは、ロックを解
放し、再度ロックの再取得による命令中継をリトライす
るので、両マシンがほぼ同時に命令を発生しても、デッ
ドロックを容易に回避可能である。
【0019】両マシンは、同様な構成とすることによ
り、何れのマシンでも空いてマシンから命令を受信した
とき、ロック取得可能か否かを判断することにより、リ
トライの通知か命令処理を行うことが可能であり、デッ
ドロックの発生を回避可能となる。
【0020】また、以上のような委託元マシンおよび委
託先マシンは、予め処理手順を規定するプログラムを記
録媒体に記録しておけば、そのプログラムを読み取って
以上のような一連の処理を実現することも可能である。
【0021】(3) また、本発明に係る自動分散処理
システムは、命令委託元マシンは、排他用ロック後のア
プリケーション処理時に第1の命令が発生したとき、そ
の命令内容に応じて前記ロックを解放し前記第1の命令
を前記委託先マシンの命令処理スレッドに送信する手段
およびこの命令処理スレッドにおける命令処理の終了を
受けてロックを再び取得し、第1の命令を終了する手段
とを有する委託元命令中継スレッドと、前記委託先マシ
ンのイベント処理スレッドから送信されてくる第2の命
令を処理する委託元命令処理スレッドとを備え、命令委
託先マシンは、前記命令中継スレッドから第1の命令を
受信したとき、排他用ロックを行って当該第1の命令を
処理し、ロックを解放した上でイベント処理スレッドか
らの再開依頼がなされるまで待機し、再開後、その命令
処理の終了後にロックを解放し、前記命令処理終了を前
記委託元命令中継スレッドに委託し、待機中の前記命令
委託先マシンに再開依頼を通知する前記委託先命令処理
スレッドと、排他用ロックを行って自身のイベント処理
時に第2の命令が発生したとき、前記委託元命令処理ス
レッドに委託する前記委託先イベント処理スレッドとを
備えた構成とすることもできる。
【0022】この発明は以上のような構成とすることに
より、命令の内容によって例えばダイアログ表示命令な
どのときはロックを解放し、命令を相手マシンに中継す
るので、相手マシンによるダイアログ処理終了の受信後
にロックを取得し命令を終了させることができる。
【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からの命令を処理するス
レッドを検索し命令を振り分ける振り分けスレッド21
2、この振り分けスレッド212からの命令を上位ライ
ブラリ22に渡して処理する命令処理スレッド213、
スレッド識別子を用いてスレッドを管理するスレッド管
理テーブル214、処理が終了し解放された委託先命令
スレッド213を管理する解放済スレッド蓄積部215
等によって構成されている。
【0030】図2は一般的にアプリケーションを実行す
る場合のモジュールの概略構成図である。
【0031】すなわち、実行マシン100は、アプリケ
ーション110、このアプリケーション110とリンク
して動作する上位ライブラリ120と、この上位ライブ
ラリ120とリンクして動作する下位ライブラリ130
とを有し、当該アプリケーション110を実行するが、
例えばGUI等の処理を行なうアプリケーション11を
実行する場合、下位ライブラリ130部分を、当該下位
ライブラリ130と互換性のある命令中継ライブラリ1
3に入れ替え、処理の自動分散化を図っている。
【0032】次に、以上のような自動分散処理システム
に関し、特にデッドロック防止の一連の処理について図
3を参照して説明する。なお、委託元命令中継スレッド
131と委託先命令中継スレッド211、委託元命令振
り分けスレッド132と委託先命令振り分けスレッド2
12とはそれぞれ同様な処理を行なうので、説明の便宜
上,片方の処理フローは省略する。
【0033】命令中継ライブラリ13は上位ライブラリ
120から命令を受けると、記録媒体14に記録される
プログラムを読み取り、次のような処理を実行する。
【0034】今、委託元マシン1においてアプリケーシ
ョン11の実行時に上位ライブラリ12を通して命令が
発生すると(S1)、ユーザスレッド等の命令中継スレ
ッド131は、その命令処理用スレッドがスレッド管理
テーブル134内に登録されているか否かを調べ(S
2)、登録されていない場合には当該スレッド管理テー
ブル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の命令振り分けスレッド1
32は、識別子とともに委託先の別命令または処理終了
による返信を受け取ると、識別子から委託元である命令
中継スレッド131に処理を委託する。この命令中継ス
レッド131は、命令に対する返信か、別命令かを判断
(S6)、返信の場合には終了し、別命令の場合には上
位ライブラリ12に別命令を発行し、処理を行なう(S
7)。ここで、別命令の処理が終了すれば、別命令に対
する処理終了の返信を委託先側発行元のスレッド識別子
とともに委託先マシン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の命令処理スレッド1
33に中継し、処理待ちの状態に入る。しかし、これら
マシン1,2はそれぞれ時間をずらして各命令を相手マ
シン2,1に命令を委託する場合には特に問題が生じな
いが、両マシン1,2が同時に命令が発生した場合には
互いにロックを取得し合えない状態となり、デッドロッ
クが発生する。
【0044】図5は図4に示すデッドロックを回避する
ための本発明に係る自動分散処理システムの他の実施形
態を示す構成図である。
【0045】今、委託元マシン1において命令中継スレ
ッド131は、ロックをかけて委託元アプリケーション
処理時に命令Aが発生すると(S11)、命令Aを中継
し(S12)、委託先マシン2の命令処理スレッド21
2に送信する。このステップS11,S12は命令中継
機能である。
【0046】この命令処理スレッド212は、命令Aを
受信すると(S61)、自身のマシンに対するロックが
取得可能か否かを判断する(S62)。ステップS6
1,S62はロック取得判断機能である。ロック取得不
可であれば、委託元マシ1にリトライするよう通知する
(S63:リトライ通知機能)。ロックを取得可能であ
れば、ロックをかけて命令Aを処理し(S64)、命令
処理終了後にその命令Aを終了した旨を返信し(S6
5)、ロックを解放する。ステップS64,S65は命
令処理機能である。
【0047】一方、委託元マシン1の命令中継スレッド
131では、命令Aを中継した後(S12)、受信待ち
の状態に入る(S13)。命令A中継後、リトライ用の
通知があったとき(S14)、ロックを一時解放し(S
15)、ロックの再取得を命令A中継に指示する(S1
6)。これらステップ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がダイアログ表示命令であれば(S3
2)、ロックを解放し(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】また、ある命令が委託元マシンから委託先
マシンへ行われ、当該命令内で呼ばれる委託先マシンの
処理部内から更に委託元マシンに別命令を行なう,いわ
ゆる命令の入れ子が行われた場合でも、処理の分散処理
を行なわない場合と同様にデッドロックを防止でき、ま
た逆に委託先マシンから委元マシンへの委託であっても
同様である。
【0070】さらに、通常実行時は同一であるはずの排
他用ロックを、委託元マシンと委託先マシンとで同時に
取得した場合でも、委託先マシンおよび委託元マシンの
排他用ロックの取得可否のみにより排他を行なうことに
より、容易にデッドロックを防止できる。
【0071】さらに、通常実行時、排他的ロックを取得
して処理を行なった後、排他的ロックを解放し、その
後、特定の命令が行われるまで命令発行元スレッドが待
機するといった性質をもつ命令を行なった場合のデッド
ロックも確実に防止できる。
【図面の簡単な説明】
【図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 (7)

    【特許請求の範囲】
  1. 【請求項1】 命令委託元マシンと命令委託先マシンが
    ネットワークを介して接続されている自動分散処理シス
    テムにおいて、 前記命令委託元マシンは、スレッド識別子のもとに各ス
    レッドを管理するテーブルと、委託元上位ライブラリと
    ともに委託元アプリケーションの処理過程における命令
    発生時、前記テーブルで管理するスレッド識別子を付加
    して命令を前記委託先マシンに送信する委託元命令中継
    スレッドと、前記委託先マシンからの別命令を処理する
    ためのスレッドの振り分けを行う委託元命令振り分けス
    レッドとを有する命令中継ライブラリを設け、 前記命令委託先マシンは、前記委託元命令中継スレッド
    から送信されてくる命令をスレッド識別子とともに受信
    し、命令を処理するスレッドを作成し前記スレッド識別
    子とともに渡す委託先命令振り分けスレッドと、この受
    け取った命令を委託先上位ライブラリとともに処理し、
    その命令処理時の別命令発生や処理終了時、前記スレッ
    ド識別子を付加して前記別命令や処理終了返信を前記委
    託元命令振り分けスレッドに送信する命令処理スレッド
    とを有する命令実行モジュールを設けたことを特徴とす
    る自動分散処理システム。
  2. 【請求項2】 命令を委託する委託元マシンのコンピュ
    ータを動作させるためのプログラムを記録した記録媒体
    において、 前記プログラムは、 委託元アプリケーションの処理時に命令が発生したと
    き、テーブルで管理するスレッド識別子と各スレッドと
    の関係を参照し前記命令にスレッド識別子を付加して委
    託先マシンに送信する命令中継機能と、前記委託先マシ
    ンによる命令処理時に発生する別命令に前記スレッド識
    別子が付加されて送信されてきたとき、委託元となった
    スレッドに振り分けるスレッド振り分け機能と、この振
    り分けられた委託元スレッドで処理された前記別命令の
    処理結果を前記委託先マシンに返信する機能とを実現す
    る前記コンピュータ読み取り可能な記録媒体。
  3. 【請求項3】 委託元マシンから命令を委託される委託
    先マシンのコンピュータを動作させるためのプログラム
    を記録した記録媒体において、 前記プログラムは、 前記委託元マシンからスレッド識別子とともに命令を受
    信したとき、このスレッド識別子のもとに命令を処理す
    るスレッドを作成するスレッド作成機能と、このスレッ
    ド作成機能によって作成されたスレッドが前記命令の処
    理時に別命令が発生したとき、前記受信したスレッド識
    別子を付加して別命令を前記委託元マシンに送信する機
    能とを実現する前記コンピュータ読み取り可能な記録媒
    体。
  4. 【請求項4】 命令委託元マシンと命令委託先マシンが
    ネットワークを介して接続されている自動分散処理シス
    テムにおいて、 前記命令委託元マシンおよび命令委託先マシンは、それ
    ぞれ排他用ロック後に自身のアプリケーション処理時に
    命令が発生したとき、ロックをかけて相手側マシンに命
    令を中継する命令中継スレッドおよびこの命令中継スレ
    ッドからの命令を受信し処理する命令処理スレッドが設
    けられ、 そのうち少なくとも前記委託先マシン側命令処理スレッ
    ドは、前記委託元マシン側の命令を受信後、自身のマシ
    ンにてロック取得可能か否かを判断し、ロック取得不可
    の場合には前記委託元マシンにリトライを通知する手段
    と、ロック取得可能な場合にはロックを取得し命令処理
    終了後に返信し当該ロックを解放する手段とを有し、 また、少なくとも前記委託元マシン側命令中継スレッド
    は、前記委託先マシン側からリトライ通知を受けたと
    き、前記ロックを一時的に解放した後再び取得して再度
    命令を中継するリトライを実施する手段と、前記委託元
    マシン側から命令終了の返信を受けたとき、前記ロック
    を解放する手段とを備えたことを特徴とする自動分散処
    理システム。
  5. 【請求項5】 命令を委託する委託元マシンのコンピュ
    ータを動作させるためのプログラムを記録した記録媒体
    において、 前記プログラムは、 排他用ロックを行って自身のアプリケーション処理時に
    命令が発生したとき、委託先マシンの命令処理スレッド
    に命令を中継し受信待ちに設定する命令中継機能と、こ
    の委託先マシンの命令処理スレッドから前記命令処理の
    際にリトライ通知を受けたとき、前記ロックを一時的に
    解放した後再び取得して再度命令を中継するリトライを
    実施する命令中継リトライ機能と、前記委託先マシンの
    命令処理スレッドから命令終了の返信を受けたとき、前
    記ロックを解放し命令を終了する命令処理終了機能とを
    実現する前記コンピュータ読み取り可能な記録媒体。
  6. 【請求項6】 委託元マシンから命令を委託される委託
    先マシンのコンピュータを動作させるためのプログラム
    を記録した記録媒体において、 前記プログラムは、 前記委託元マシンから命令を受信後、自身のマシンにて
    ロック取得可能か否かを判断するロック取得判断機能
    と、この判断機能によってロック取得不可能と判断され
    たとき前記委託元マシンにリトライを通知するリトライ
    通知機能と、前記判断機能によってロック取得可能と判
    断されたとき排他用ロックを取得し受信した命令を処理
    し、その命令処理終了後に前記委託元マシン返信し当該
    ロックを解放する命令処理機能とを実現する前記コンピ
    ュータ読み取り可能な記録媒体。
  7. 【請求項7】 命令委託元マシンとイベント処理機能を
    もつ命令委託先マシンがネットワークを介して接続され
    ている自動分散処理システムにおいて、 前記命令委託元マシンは、排他用ロック後のアプリケー
    ション処理時に第1の命令が発生したとき、その命令内
    容に応じて前記ロックを解放し前記第1の命令を前記委
    託先マシンの命令処理スレッドに送信する手段およびこ
    の命令処理スレッドにおける命令処理の終了を受けて第
    1の命令を終了する手段とを有する委託元命令中継スレ
    ッドと、前記委託先マシンのイベント処理スレッドから
    送信されてくる第2の命令を処理する委託元命令処理ス
    レッドとを備え、 前記命令委託先マシンは、前記命令中継スレッドから第
    1の命令を受信したとき、排他用ロックを行って当該第
    1の命令を処理し、ロックを解放した上でイベント処理
    スレッドからの再開依頼がなされるまで待機し、再開
    後、その命令処理の終了後にロックを解放し、前記命令
    処理終了を前記委託元命令中継スレッドに委託し、前記
    待機中の前記命令委託先マシンに再開依頼を通知する前
    記委託先命令処理スレッドと、排他用ロックを行って自
    身のイベント処理時に第2の命令が発生したとき、前記
    委託元命令処理スレッドに委託する前記委託先イベント
    処理スレッドとを備えたことを特徴とする自動分散処理
    システム。
JP2000088703A 2000-03-28 2000-03-28 自動分散処理システムおよび記録媒体 Expired - Lifetime JP4197571B2 (ja)

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
JP2008024602A Division JP4197732B2 (ja) 2008-02-04 2008-02-04 自動分散処理システムおよび記録媒体
JP2008024603A Division JP4197733B2 (ja) 2008-02-04 2008-02-04 自動分散処理システム

Publications (2)

Publication Number Publication Date
JP2001273156A true JP2001273156A (ja) 2001-10-05
JP4197571B2 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
US20010027462A1 (en) 2001-10-04
JP4197571B2 (ja) 2008-12-17

Similar Documents

Publication Publication Date Title
AU600755B2 (en) Apparatus for distributing data processing across a plurality of loci of control
US7650397B2 (en) Plug-in configuration manager
US5410684A (en) Log name exchange for recovery of protected resources
US5165031A (en) Coordinated handling of error codes and information describing errors in a commit procedure
US5276876A (en) Registration of resources for commit procedures
US5613060A (en) Asynchronous resynchronization of a commit procedure
US6044394A (en) Managing independently executing computer tasks that are interrelated by dataflow
US8122444B2 (en) Legacy application decommissioning framework
CA2621887C (en) Composing integrated systems using gui-based applications and web services
JP3267066B2 (ja) ワークフロー支援システム
US5363505A (en) Local and global commit scopes tailored to work units
US7971183B2 (en) Tool for converting legacy applications to web services
US9311170B2 (en) System, method and program tool to reset an application
JP2004192601A (ja) ポリシー設定支援ツール
JP2007004776A (ja) ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム
US8260897B2 (en) System and method for automatically managing IT-resources in a heterogeneous environment
JP2002324155A (ja) ワークフロー・システムおよびプログラム
JP2001273156A (ja) 自動分散処理システムおよび記録媒体
JP4141878B2 (ja) トランザクション処理方法及びその実施装置並びにその処理プログラム
JP4197733B2 (ja) 自動分散処理システム
JPH0981409A (ja) 相互ホットスタンバイシステム待機系選択方式
JP4804139B2 (ja) 情報出力方法、システム及びプログラム
JP4197732B2 (ja) 自動分散処理システムおよび記録媒体
JP4577343B2 (ja) 計算機システムおよびジョブステップ並列処理方法
JP6751236B2 (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