JPH01297760A - タスク制御方式及びオンライン・トランザクション・システム - Google Patents
タスク制御方式及びオンライン・トランザクション・システムInfo
- Publication number
- JPH01297760A JPH01297760A JP12715088A JP12715088A JPH01297760A JP H01297760 A JPH01297760 A JP H01297760A JP 12715088 A JP12715088 A JP 12715088A JP 12715088 A JP12715088 A JP 12715088A JP H01297760 A JPH01297760 A JP H01297760A
- Authority
- JP
- Japan
- Prior art keywords
- task
- lock
- shared resource
- control method
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は複数のプロセッサがメモリを共有した密結合マ
ルチ・プロセッサ(Tightly Coupled
Multi Processor、以下TCM’Pと
記す)に係わり、特に共有リソースの排他アクセス制御
に好適なロック制御方式に関する。
ルチ・プロセッサ(Tightly Coupled
Multi Processor、以下TCM’Pと
記す)に係わり、特に共有リソースの排他アクセス制御
に好適なロック制御方式に関する。
旧算機システム内で実行される処理単位(タスク)CJ
、各種の共有リソースを使用する。TCMPのように複
数のタスクが同時に動作するシステムでは、これらのタ
スク間で共有リソースの占有使用権に関する競合が発生
するので、このための排他制御が必要となる。例えば−
、オンライン・システムで複数のタスクがそれぞれ別々
の「売上げ処理1を行っている場合、共通の記憶域上に
ある「売上げ現在高」を、別々のタスクが参照・更新す
る。この様な状況では、あるタスクがこの「売−ヒげ現
在高1を参照し、更新している間、別のタスクがこのデ
ータにアクセスすることを禁止する必要がある。
、各種の共有リソースを使用する。TCMPのように複
数のタスクが同時に動作するシステムでは、これらのタ
スク間で共有リソースの占有使用権に関する競合が発生
するので、このための排他制御が必要となる。例えば−
、オンライン・システムで複数のタスクがそれぞれ別々
の「売上げ処理1を行っている場合、共通の記憶域上に
ある「売上げ現在高」を、別々のタスクが参照・更新す
る。この様な状況では、あるタスクがこの「売−ヒげ現
在高1を参照し、更新している間、別のタスクがこのデ
ータにアクセスすることを禁止する必要がある。
現在実用化されている計算機システムの多くは、排他制
御のための基本機能として、メモリ (主メモリ)−ヒ
の1ワードの参照と更新を不可分の操作として実行する
命令をハードウェア・レヘルでサポートしている(例え
ば、TEST AND SET命令(TS命令)あ
るいはCOMPARE AND 5WAP命令(C
8命令)等。K、Hwa、ng、 F、八、Br1gg
5共著llComputerArchitecture
and Parallel Processi
ng″。
御のための基本機能として、メモリ (主メモリ)−ヒ
の1ワードの参照と更新を不可分の操作として実行する
命令をハードウェア・レヘルでサポートしている(例え
ば、TEST AND SET命令(TS命令)あ
るいはCOMPARE AND 5WAP命令(C
8命令)等。K、Hwa、ng、 F、八、Br1gg
5共著llComputerArchitecture
and Parallel Processi
ng″。
McGraw l1ill出版、pp、559〜56
0参照)。しかし、排他制御の対象となる共有リソース
は、主メモリ上の1ワードとは限らず、ディスク装置上
のデータヘースの場合もある。一般に、この種の共有リ
ソースに対する排他制御は、次のようにして行なわれる
。即ち、主メモリ上に共有リソースのデータ(それぞれ
数KBにも及ぶ多数のデータA、B。
0参照)。しかし、排他制御の対象となる共有リソース
は、主メモリ上の1ワードとは限らず、ディスク装置上
のデータヘースの場合もある。一般に、この種の共有リ
ソースに対する排他制御は、次のようにして行なわれる
。即ち、主メモリ上に共有リソースのデータ(それぞれ
数KBにも及ぶ多数のデータA、B。
C2・・・・・・等からなる)の格納領域のほかに、こ
れらのデータを参照するための参照テーブルを設け、こ
のテーブルに前記共有のデータA、B、C,・・・・・
・にそれぞれ対応して1ワードの参照情@(ロックワー
ド)を割り当て記述しておく。そして、各データA、B
、C,・・・・・・に対するアクセスは、このロックワ
ードを通じて行なう。このロックワードに上記の命令を
用いて占有使用中(ロック中)のフラグを書き込むこと
により共有リソースの各データに対する排他制御を実現
することができる。
れらのデータを参照するための参照テーブルを設け、こ
のテーブルに前記共有のデータA、B、C,・・・・・
・にそれぞれ対応して1ワードの参照情@(ロックワー
ド)を割り当て記述しておく。そして、各データA、B
、C,・・・・・・に対するアクセスは、このロックワ
ードを通じて行なう。このロックワードに上記の命令を
用いて占有使用中(ロック中)のフラグを書き込むこと
により共有リソースの各データに対する排他制御を実現
することができる。
但し、この方式では共有リソースの占有使用権が得られ
なかった場合の処理が必要となる。この点を考慮した排
他制御方式のひとつとしてWA I T・PO8T方式
(Suspend−Resume方式、B 1ock−
Activate方式、S 1sep−Wakeup方
式等とも呼ばれる。上記文献参照)が知られている。
なかった場合の処理が必要となる。この点を考慮した排
他制御方式のひとつとしてWA I T・PO8T方式
(Suspend−Resume方式、B 1ock−
Activate方式、S 1sep−Wakeup方
式等とも呼ばれる。上記文献参照)が知られている。
WAIT−PO5T方式は、共有リソースがタスク1に
より占有中であった場合に、この共有リソースの占有に
失敗したタスク2を1待ち状態」にするWAIT処理と
、タスク1が共有リソースを解放する時に、タスク2の
「待ち状態」を解除するPOST処理(通知処理)によ
って、共有リソースを占有使用権のタスク間排他制御を
行なう(以下、本明細書中で共有リソースの占有使用権
を得る事をロックを取る、ロック権を確保する等表現す
る。又、ロックを取ろうとして、他のタスクが占有使用
中であった為にロックが取れなかった事を、ロック失敗
、ロック確保失敗等と表現する)。
より占有中であった場合に、この共有リソースの占有に
失敗したタスク2を1待ち状態」にするWAIT処理と
、タスク1が共有リソースを解放する時に、タスク2の
「待ち状態」を解除するPOST処理(通知処理)によ
って、共有リソースを占有使用権のタスク間排他制御を
行なう(以下、本明細書中で共有リソースの占有使用権
を得る事をロックを取る、ロック権を確保する等表現す
る。又、ロックを取ろうとして、他のタスクが占有使用
中であった為にロックが取れなかった事を、ロック失敗
、ロック確保失敗等と表現する)。
以下の説明で、「実行状態」とは、あるタスクがCPU
の使用権を得て実際に動作している状態をいい、「実行
可能状態」とは、CPUが塞がっているため実行できな
いが、CPUが空きさえすればいつでも実行できるタス
ク状態をいい、一方、「待ち状態」とは、共有リソース
が空いていないため、CPUが空いても実行できないタ
スク状態をいう。また、共有リソースの使用権は、「占
有使用権」、「占有権」、又は「ロック権」のように表
現する。CPUの使用については単に「使用権」のよう
に表現する。
の使用権を得て実際に動作している状態をいい、「実行
可能状態」とは、CPUが塞がっているため実行できな
いが、CPUが空きさえすればいつでも実行できるタス
ク状態をいい、一方、「待ち状態」とは、共有リソース
が空いていないため、CPUが空いても実行できないタ
スク状態をいう。また、共有リソースの使用権は、「占
有使用権」、「占有権」、又は「ロック権」のように表
現する。CPUの使用については単に「使用権」のよう
に表現する。
各タスクはロック失敗するとWAIT処理ルーチンへ制
御を渡す。WAIT処理ルーチンはロック失敗したタス
クを「待ち状態」にし、ディスパッチャを呼び出す。デ
ィスパッチャは、「待ち状態」となったタスクを実行し
ていたCPUに「実行可能状態」の別タスク(第3.第
4.・・・・・・のタスク)を割り当てる。「実行可能
状態」のタスクには、タスク毎にあらかしめ設定した実
行優先順位に従い、ディスパッチャがCPUを割り当て
る。
御を渡す。WAIT処理ルーチンはロック失敗したタス
クを「待ち状態」にし、ディスパッチャを呼び出す。デ
ィスパッチャは、「待ち状態」となったタスクを実行し
ていたCPUに「実行可能状態」の別タスク(第3.第
4.・・・・・・のタスク)を割り当てる。「実行可能
状態」のタスクには、タスク毎にあらかしめ設定した実
行優先順位に従い、ディスパッチャがCPUを割り当て
る。
また一方、各タスク(今まで実行していたタスク)は共
有リソース解放(アンロツタ)直前に「待ち状態」のタ
スク(WAITタスク)の有無を調べ、WAITタスク
があればPOSTO3用−チンへ制御を渡す。POST
O3用−チンはWAITタスクを「実行可能状態」に戻
す。「実行可能状態」に戻ったタスクは、後にデイスパ
ツヤによってCPUを割り当てられ、共有リソース占有
使用権を得て処理を再開する。
有リソース解放(アンロツタ)直前に「待ち状態」のタ
スク(WAITタスク)の有無を調べ、WAITタスク
があればPOSTO3用−チンへ制御を渡す。POST
O3用−チンはWAITタスクを「実行可能状態」に戻
す。「実行可能状態」に戻ったタスクは、後にデイスパ
ツヤによってCPUを割り当てられ、共有リソース占有
使用権を得て処理を再開する。
この様にWAIT−POST方式では、WAIT処理で
ロック失敗したタスクを「待ち状態」にし、POST処
理でこのタスクを「実行可能状態」に戻すことで排他制
御を実現する。以下、PO8T処理を起動するタスク(
通常はそれまで実行状態にあったタスク)をPOST発
行タスク、POST処理により「待ち状態」を解除され
るWAITタスクをPOST受理タスクと呼ぶ(POS
T発行タスク、POST受理タスク、WAITタスク等
は各タスクの固有名称ではない。各タスクがPOST発
行タスクになる場合もあれば、PO8T受理タスクにな
る場合もある)。現在実用化されている多くの汎用計算
機システムのスーパーバイザには、上記のPOSTO3
用−チン、WAIT処理ルーチンが組み込まれている。
ロック失敗したタスクを「待ち状態」にし、POST処
理でこのタスクを「実行可能状態」に戻すことで排他制
御を実現する。以下、PO8T処理を起動するタスク(
通常はそれまで実行状態にあったタスク)をPOST発
行タスク、POST処理により「待ち状態」を解除され
るWAITタスクをPOST受理タスクと呼ぶ(POS
T発行タスク、POST受理タスク、WAITタスク等
は各タスクの固有名称ではない。各タスクがPOST発
行タスクになる場合もあれば、PO8T受理タスクにな
る場合もある)。現在実用化されている多くの汎用計算
機システムのスーパーバイザには、上記のPOSTO3
用−チン、WAIT処理ルーチンが組み込まれている。
ところで、このWAIT−POST方式には以下の様な
問題点かある。
問題点かある。
この問題を第10図により説明する。第10図G4、従
来方式におレフるロック競合発生時のタスクの動作例を
示すタイミング図であって、時間軸は十から下に向かう
方向である。第10図は、3台のCPU1.2.3によ
り、複数のタスク1,2゜3.4.5.・・・・・・が
実行される状況を示している。
来方式におレフるロック競合発生時のタスクの動作例を
示すタイミング図であって、時間軸は十から下に向かう
方向である。第10図は、3台のCPU1.2.3によ
り、複数のタスク1,2゜3.4.5.・・・・・・が
実行される状況を示している。
左下りのハツチ部はタスク1、右下りのハツチ部はタク
ス2、白枠部分ば第3のタスク(タスク3〜5)、相い
梨地状部分はいずれのタスクにも属さないスーパバイザ
(タスク相互の橋渡しを行なう)部、細かい梨地状部分
は、共有リソースに対する1コツク権(占を使用権)を
示す。L OG’ Kはロック処理、p o s ’r
はボヌト処理、FALLはそこてのタスクによるロック
失敗、D I S I)はその下に示すタスクに対する
ディスパッチャの処理を示す。
ス2、白枠部分ば第3のタスク(タスク3〜5)、相い
梨地状部分はいずれのタスクにも属さないスーパバイザ
(タスク相互の橋渡しを行なう)部、細かい梨地状部分
は、共有リソースに対する1コツク権(占を使用権)を
示す。L OG’ Kはロック処理、p o s ’r
はボヌト処理、FALLはそこてのタスクによるロック
失敗、D I S I)はその下に示すタスクに対する
ディスパッチャの処理を示す。
最初に、タスク1はCP U l上でロック権を得(時
刻t1)、次にタスク2はIコック失敗しく時刻tz)
待ち状態に入る。タスク1は、これをみ冊 て、共有リソースの使用が終ると、ロック権を手放しタ
スク2にPO8T処理を発行する(時刻t3)、これに
より、タスク2は御名共有リソースに対するロック権(
占有権)を獲得したことになるが、その時CPUが空い
ていなため(CPUの使用権を有しないため)直ちに実
行状態にはならない(実行可能状態)。一方、実行可能
状態の複数のタスクに優先順位があるため、CPUが空
いたときディスパッチされるタスクは、必ずしも、今通
知を受&Jたタスク2になる訳ではなく、例えば、CP
U2が空いたとき、優先順位の高いタスク4が先にディ
スパッチされ(時刻t5〜t6)実行される(16〜t
’s)ことがある。その場合は、タスク4が先に実行さ
れその処理が終った後に、タスク2がディスパッチされ
実行されることになる(時刻t、〜t8〜tq)。タス
ク1によるタスク2に対するPOSTO3外らタスク2
による実行状態に移るまでの間に(時刻t3〜to)、
タスク3の如き他のCPU1の別のタスクがロック要求
を発行しても(時刻t4)、この間共有りソースはいず
れのタスクも使っていないのにあたかもロックがかか゛
つた状態になっているためロック失敗となる。
刻t1)、次にタスク2はIコック失敗しく時刻tz)
待ち状態に入る。タスク1は、これをみ冊 て、共有リソースの使用が終ると、ロック権を手放しタ
スク2にPO8T処理を発行する(時刻t3)、これに
より、タスク2は御名共有リソースに対するロック権(
占有権)を獲得したことになるが、その時CPUが空い
ていなため(CPUの使用権を有しないため)直ちに実
行状態にはならない(実行可能状態)。一方、実行可能
状態の複数のタスクに優先順位があるため、CPUが空
いたときディスパッチされるタスクは、必ずしも、今通
知を受&Jたタスク2になる訳ではなく、例えば、CP
U2が空いたとき、優先順位の高いタスク4が先にディ
スパッチされ(時刻t5〜t6)実行される(16〜t
’s)ことがある。その場合は、タスク4が先に実行さ
れその処理が終った後に、タスク2がディスパッチされ
実行されることになる(時刻t、〜t8〜tq)。タス
ク1によるタスク2に対するPOSTO3外らタスク2
による実行状態に移るまでの間に(時刻t3〜to)、
タスク3の如き他のCPU1の別のタスクがロック要求
を発行しても(時刻t4)、この間共有りソースはいず
れのタスクも使っていないのにあたかもロックがかか゛
つた状態になっているためロック失敗となる。
また、タスク2にとって、時刻t3でPOSTを受理し
ても、他にタスク4のような高実行優先順位のタスクが
あると、このタスク4の処理が実行され終るまで、タス
ク2ばCPU使用権が得られないことになる。
ても、他にタスク4のような高実行優先順位のタスクが
あると、このタスク4の処理が実行され終るまで、タス
ク2ばCPU使用権が得られないことになる。
以上を要約すると、従来技術は次の課題1及び2の問題
点がある。
点がある。
(課uljPOST発行タスク(この場合タスク1)が
I) OS T受理タスク(この場合タスク2)に対し
PO5T処理を開始した後、POST受理タスクがディ
スパッチャによりCPUを害すリ当てられて実行状態に
移るまでの間、POST受理タスク以外のタスク (第
3者のタスク3)か共有リソースを使用できないため、
全処理ステップに対するロック占有ステップの比率(ロ
ック占有率)が高(なり、システムの性能が低下する。
I) OS T受理タスク(この場合タスク2)に対し
PO5T処理を開始した後、POST受理タスクがディ
スパッチャによりCPUを害すリ当てられて実行状態に
移るまでの間、POST受理タスク以外のタスク (第
3者のタスク3)か共有リソースを使用できないため、
全処理ステップに対するロック占有ステップの比率(ロ
ック占有率)が高(なり、システムの性能が低下する。
特にマルチ・プロセッサ・システムでは、POST発行
タスクがPOSTO3外開始した後、POST受理タク
スがディスパッチャによりCPUを割り当てられて実行
状態に移るまでの間、他プロセッサ上で実行中のタスク
がロック要求を発行するため、ロック失敗率(ロック確
保を試みて失敗する確率)が高くなり、PO5T処理・
WA’l T処理のオーバーヘッドが増加する。
タスクがPOSTO3外開始した後、POST受理タク
スがディスパッチャによりCPUを割り当てられて実行
状態に移るまでの間、他プロセッサ上で実行中のタスク
がロック要求を発行するため、ロック失敗率(ロック確
保を試みて失敗する確率)が高くなり、PO5T処理・
WA’l T処理のオーバーヘッドが増加する。
(課題2)POST受理タスクが待ち状態を解除されて
実行可能状態となった時、POST受理タスク以外の高
実行優先順位タスクが先にディスパッチされるために、
POST受理タスクが即座にCPU使用権を得られない
場合がある(以下、このように、共有リソースのロック
占有権は得られても、CPUの使用権を得られない場合
を「ロック占有タスクの沈み込み」と呼ぶ)。ロック占
有タスクが沈め込んだ状態で、他のタスクがロック要求
を発行すると必ずロック失敗してしまい、POSTO3
外WへIT処理のオーバーヘッドが増加する。
実行可能状態となった時、POST受理タスク以外の高
実行優先順位タスクが先にディスパッチされるために、
POST受理タスクが即座にCPU使用権を得られない
場合がある(以下、このように、共有リソースのロック
占有権は得られても、CPUの使用権を得られない場合
を「ロック占有タスクの沈み込み」と呼ぶ)。ロック占
有タスクが沈め込んだ状態で、他のタスクがロック要求
を発行すると必ずロック失敗してしまい、POSTO3
外WへIT処理のオーバーヘッドが増加する。
従って、本発明の目的は、上記従来技術の問題点(課題
1及2)を解消し、POST受理タスクがディス、ペラ
チャによりCPUを割り当てられて実行状態に移るまで
の間に、第3者のタスクが共有リソースを使用できるよ
うにして、ロック失敗率を低減するとjJ:に、ロック
占有タスクの沈み込みを防止して更にロック失敗をなく
したマルチ・タスク方式のマルチ・プロセッサ・システ
ムにおけるロック制御及びタスク制御方式を堤供するこ
とにある。
1及2)を解消し、POST受理タスクがディス、ペラ
チャによりCPUを割り当てられて実行状態に移るまで
の間に、第3者のタスクが共有リソースを使用できるよ
うにして、ロック失敗率を低減するとjJ:に、ロック
占有タスクの沈み込みを防止して更にロック失敗をなく
したマルチ・タスク方式のマルチ・プロセッサ・システ
ムにおけるロック制御及びタスク制御方式を堤供するこ
とにある。
上記課題1を解決するため、本発明のロック制御方式G
A、つぎの解決手段1又は2のように構成する。
A、つぎの解決手段1又は2のように構成する。
(解決手段1)POST全3Tスクが該共有リソースの
使用を終了した時点で該共存リソースを解放し、他プロ
セッサ上で実行中の第3のタスクによる該共有リソース
のロックを許可する手段と、しかる後、POST処理に
よってPOST受理タスクを実行可能状態に遷移させる
手段と、しかる後、ディスパッチ処理によってプロセッ
サ使用権を得たPOST受理タースクが該共有リソース
のロック権確保をりトライ (再試行)する手段とを備
えた構成する。
使用を終了した時点で該共存リソースを解放し、他プロ
セッサ上で実行中の第3のタスクによる該共有リソース
のロックを許可する手段と、しかる後、POST処理に
よってPOST受理タスクを実行可能状態に遷移させる
手段と、しかる後、ディスパッチ処理によってプロセッ
サ使用権を得たPOST受理タースクが該共有リソース
のロック権確保をりトライ (再試行)する手段とを備
えた構成する。
なお、この方式は、ロック占有率を低く抑えることがで
きるので、ロック競合によるスループット低下を起こし
にくいという利点がある。しかし、POST受理タスク
がロックを確保する前に他のタスクにロックを「横取り
」され、再度ロック失敗する可能性がある。このため、
同一タスクが何回もリトライを繰返し、レスポンスがや
や低下するおそれがある。この問題は次の(解決手段2
)により解決される。
きるので、ロック競合によるスループット低下を起こし
にくいという利点がある。しかし、POST受理タスク
がロックを確保する前に他のタスクにロックを「横取り
」され、再度ロック失敗する可能性がある。このため、
同一タスクが何回もリトライを繰返し、レスポンスがや
や低下するおそれがある。この問題は次の(解決手段2
)により解決される。
(解決手段2)POST全3Tスクが該共有リソースの
使用を終了した時点で該共有リソースを解放し、他プロ
セッサ上で実行中の第3のタスクによる該共有リソース
のロックを許可した後、POST処理によってPOST
受理タスクを実行可能状態に遷移し7、しかる後、ディ
スパッチ処理によ−ってプロセッサ使用権を得たPOS
T受理タスクが該共有リソースのロック権確保をり1−
ライする第1のロック制御方式と、 PO5T発行タスクが該共有リソースの使用を終了した
時点で該共有リソースのロック権をPOST受理タスク
へ直接譲渡し、P OS T処理によってPOST受理
タスクを実行可能状態に遷移させた後、ディスパッチ処
理によってプロセッサ使用権を得たPOST受理タスク
が該共有リソースのロック権を解放するまでの間、PO
3,T受理タスク以外のタスクによる該共有リソースの
ロックを禁止する第2のロック制御方式とを含み、前記
第1のロック制御方式と第2のロック制御方式とを動的
に切り替える切り替え手段を設ける構成とする。
使用を終了した時点で該共有リソースを解放し、他プロ
セッサ上で実行中の第3のタスクによる該共有リソース
のロックを許可した後、POST処理によってPOST
受理タスクを実行可能状態に遷移し7、しかる後、ディ
スパッチ処理によ−ってプロセッサ使用権を得たPOS
T受理タスクが該共有リソースのロック権確保をり1−
ライする第1のロック制御方式と、 PO5T発行タスクが該共有リソースの使用を終了した
時点で該共有リソースのロック権をPOST受理タスク
へ直接譲渡し、P OS T処理によってPOST受理
タスクを実行可能状態に遷移させた後、ディスパッチ処
理によってプロセッサ使用権を得たPOST受理タスク
が該共有リソースのロック権を解放するまでの間、PO
3,T受理タスク以外のタスクによる該共有リソースの
ロックを禁止する第2のロック制御方式とを含み、前記
第1のロック制御方式と第2のロック制御方式とを動的
に切り替える切り替え手段を設ける構成とする。
具体的には、POST受理タスクのり1〜ライ回数を計
数し、このリトライ回数が所定の上限値未満ならば、前
記第1のロック制御を行い、リトライ回数が所定の上限
値以上に達すると、前記第2のロック制御を行う構成と
する。つまり、基本的には上記解決手段1の方式を採り
入れるが、POST受理タスクが何回もロック権要求し
ても獲得できないときや、特定のリソースを用いるとき
には、ロック権をPOST受理タスクに渡す方式である
。
数し、このリトライ回数が所定の上限値未満ならば、前
記第1のロック制御を行い、リトライ回数が所定の上限
値以上に達すると、前記第2のロック制御を行う構成と
する。つまり、基本的には上記解決手段1の方式を採り
入れるが、POST受理タスクが何回もロック権要求し
ても獲得できないときや、特定のリソースを用いるとき
には、ロック権をPOST受理タスクに渡す方式である
。
次に、上記課題2を解決するため、本発明のタスク制御
方式は、つぎの解決手段3,4、及び5のように構成す
る。
方式は、つぎの解決手段3,4、及び5のように構成す
る。
(解決手段3)POST処理によるPOST受理タスク
の待ち状態解除後、POST全3Tスクの実行を中断し
、POST全3Tスクが走行していたプロセッサをPO
ST受理タスクに割り当てるように構成する。
の待ち状態解除後、POST全3Tスクの実行を中断し
、POST全3Tスクが走行していたプロセッサをPO
ST受理タスクに割り当てるように構成する。
(解決手段4)WAIT処理によってPOST受理タス
クが待ち状態に遷移する前に、POST受理タスクの実
行優先順位を高める優先順位変更を行ない、このPOS
T受理タスクの共有リソース解放時に前記変更を施した
実行優先順位を復元するように構成する。
クが待ち状態に遷移する前に、POST受理タスクの実
行優先順位を高める優先順位変更を行ない、このPOS
T受理タスクの共有リソース解放時に前記変更を施した
実行優先順位を復元するように構成する。
(解決手段5)POST全3TスクがPOST処理によ
ってPO5T受理タスクの待ち状態を解除する前に、P
OST受理タスクの実行優先順位を高める優先順位変更
を行ない、このPOST受理タスクの共有リソース解放
時に前記変更を施した実行優先順位を復元するように構
成する。
ってPO5T受理タスクの待ち状態を解除する前に、P
OST受理タスクの実行優先順位を高める優先順位変更
を行ない、このPOST受理タスクの共有リソース解放
時に前記変更を施した実行優先順位を復元するように構
成する。
上記構成に基ずく本発明の作用を従来方式と対比して説
明する。なお、この作用については、後で〔実施例〕の
ところで、第10図〜第13図によって詳細に説明する
。
明する。なお、この作用については、後で〔実施例〕の
ところで、第10図〜第13図によって詳細に説明する
。
まず(解決手段1)の作用について説明する。
従来方式では、さきに第10図により説明したように、
待ち状態となったタスク2が、タスク1によってPOS
Tされて、CPU2で再び実行状態となるまでの期間に
、CPU3上で実行中のタスク3がロック失敗してしま
う。これに対し、本発明の(解決手段1)の方式では、
タスク1がPOSTO3間始前に共有リソースを解放す
るまで、待ち状態となったタスク2が、タスク1によっ
てPOSTされて、CPUIで再び実行状態となるまで
の期間に、CPUa上で実行中のタスク3が共有リソー
スをロックできる。このためWAIT処理、POST処
理の回数を減らすことができる(詳細は第11図により
後述する)。
待ち状態となったタスク2が、タスク1によってPOS
Tされて、CPU2で再び実行状態となるまでの期間に
、CPU3上で実行中のタスク3がロック失敗してしま
う。これに対し、本発明の(解決手段1)の方式では、
タスク1がPOSTO3間始前に共有リソースを解放す
るまで、待ち状態となったタスク2が、タスク1によっ
てPOSTされて、CPUIで再び実行状態となるまで
の期間に、CPUa上で実行中のタスク3が共有リソー
スをロックできる。このためWAIT処理、POST処
理の回数を減らすことができる(詳細は第11図により
後述する)。
次に(解決手段2)の作用について説明する。
上述の(解決手段1)の方式では、待ち状態となったタ
スク2が、タスク1によってPOSTされて実行状態に
戻った後、再びロック失敗する可能性がある。最悪の場
合、タスク2が無限にリトライを繰り返すことになる。
スク2が、タスク1によってPOSTされて実行状態に
戻った後、再びロック失敗する可能性がある。最悪の場
合、タスク2が無限にリトライを繰り返すことになる。
そこで、タスク2のリトライ回数を計数し1、このリト
ライ回数が所定の上限値を越えた場合は、POSTO3
間始前に共有リソースを解放しないで、POSTされて
実行状態に戻ったタスク2が確実にロック権を得るよう
にロック制御を切り替える。
ライ回数が所定の上限値を越えた場合は、POSTO3
間始前に共有リソースを解放しないで、POSTされて
実行状態に戻ったタスク2が確実にロック権を得るよう
にロック制御を切り替える。
次に(解決手段3−5 )の作用について説明する。従
来方式では、タスク1によってPOSTされたタスク2
がディスパッチされるまでの期間に、CPUI上で実行
中のタスク1やCPUZ上で実行中のタスク3がロック
失敗している。これに比べ、本発明の(解決手段3〜5
)の方式では、P○ST処理の後、タスク2を優先的・
にディスパラチしてCPUI上で実行しているので、P
OSTO3間始からタスク2がディスパッチされるまで
の期間を短縮でき、他タスクのロック失敗を少なくでき
る。
来方式では、タスク1によってPOSTされたタスク2
がディスパッチされるまでの期間に、CPUI上で実行
中のタスク1やCPUZ上で実行中のタスク3がロック
失敗している。これに比べ、本発明の(解決手段3〜5
)の方式では、P○ST処理の後、タスク2を優先的・
にディスパラチしてCPUI上で実行しているので、P
OSTO3間始からタスク2がディスパッチされるまで
の期間を短縮でき、他タスクのロック失敗を少なくでき
る。
以下、本発明の一実施例を第1図から第9図を使って説
明する。本実施例は、オンライン・データベース・シス
テムの例である。
明する。本実施例は、オンライン・データベース・シス
テムの例である。
本発明のロック制御方式、タスク制御方式について述べ
る前に、本実施例の適用されるオンライン・データベー
ス・システムの概略を説明する。
る前に、本実施例の適用されるオンライン・データベー
ス・システムの概略を説明する。
なお、本発明はオンラインシステムに限らず、マルチ・
タスク方式のマルチプロセッサ・システム全般に適用で
きる。第7図は、システムの構成概略を表わす。CPU
IとCPU2 (101および102)を共有メモリ1
03を介して結合する。
タスク方式のマルチプロセッサ・システム全般に適用で
きる。第7図は、システムの構成概略を表わす。CPU
IとCPU2 (101および102)を共有メモリ1
03を介して結合する。
2つのCPUは各々メモリ上のプロゲラ11を動作させ
、メモリ上のデータを参照して、並列に処理を行なうこ
とができる。各CP Uば、通信制潤製W2O3を介し
て、端末装置105とデータの送受を行なうことができ
る。また、各CPUはディスク制窃1装置106を介し
て、ディスク」−のデータベース107ヘアクセスでき
る。
、メモリ上のデータを参照して、並列に処理を行なうこ
とができる。各CP Uば、通信制潤製W2O3を介し
て、端末装置105とデータの送受を行なうことができ
る。また、各CPUはディスク制窃1装置106を介し
て、ディスク」−のデータベース107ヘアクセスでき
る。
以下本明細書では、オンライン・データベース・システ
ムでの−まとまりのデータ参照・更新処理をトランザク
ションと呼ぶ。例えば、「預金の引出し要求に対し、預
金残高を確認し、預金残高から引出し額を差引き、デー
タベース内の預金残高を更新する」といった一連の処理
をトランザクションと呼ぶ。トランザクションは、端末
装置からのデータ送信を契機として開始する。
ムでの−まとまりのデータ参照・更新処理をトランザク
ションと呼ぶ。例えば、「預金の引出し要求に対し、預
金残高を確認し、預金残高から引出し額を差引き、デー
タベース内の預金残高を更新する」といった一連の処理
をトランザクションと呼ぶ。トランザクションは、端末
装置からのデータ送信を契機として開始する。
次にタスクの基本的な管理方法について説明する。トラ
ンザクションが入力されると、スーパーバイザがこのト
ランザクシコンに対応する1個以上のタスクを生成する
。具体的には、スーパーバイザがタスクの生成時にタス
ク毎に制御情報を格納したTCB (Task Con
trol Block)を作成し、これらのTCBを
トランザクションの終了時まで第9図に示すタスクキュ
ー140に登録して管理する。タスクキューに登録中の
各タスクは、「待ち状態」、「実行可能状態」、または
「実行状態」のいずれかの状態をとる。「待ち状態」の
タスクは、待ちの原因となっている事象を完了し、「実
行可能状態」となるまでCPUを割り付けられない。「
実行可能状態」のタスクは、システム内のいずれかのC
PUが空き次第、CPUを割り付けて「実行状態」に遷
移させることが可能である。「実行状態」のタスクとは
CPU使用権を得て実行中のタスクである。「実行可能
状態」のタスクが複数ある場合には、タスク毎に割り当
てた実行優先順位に従って、ディスパッチャがCPUを
割り付ける。タスクキュー140は、タスクキュー先頭
ポインタ141、タスクキュー末尾ポインタ142、お
よび0個以上のTCB143のチエインで構成する。T
CBは以下のフィールドから構成する(第2図)。
ンザクションが入力されると、スーパーバイザがこのト
ランザクシコンに対応する1個以上のタスクを生成する
。具体的には、スーパーバイザがタスクの生成時にタス
ク毎に制御情報を格納したTCB (Task Con
trol Block)を作成し、これらのTCBを
トランザクションの終了時まで第9図に示すタスクキュ
ー140に登録して管理する。タスクキューに登録中の
各タスクは、「待ち状態」、「実行可能状態」、または
「実行状態」のいずれかの状態をとる。「待ち状態」の
タスクは、待ちの原因となっている事象を完了し、「実
行可能状態」となるまでCPUを割り付けられない。「
実行可能状態」のタスクは、システム内のいずれかのC
PUが空き次第、CPUを割り付けて「実行状態」に遷
移させることが可能である。「実行状態」のタスクとは
CPU使用権を得て実行中のタスクである。「実行可能
状態」のタスクが複数ある場合には、タスク毎に割り当
てた実行優先順位に従って、ディスパッチャがCPUを
割り付ける。タスクキュー140は、タスクキュー先頭
ポインタ141、タスクキュー末尾ポインタ142、お
よび0個以上のTCB143のチエインで構成する。T
CBは以下のフィールドから構成する(第2図)。
(1)タスク状態401
タスクの状態(待ち状態、実行可能状態、または実行状
態)を格納する。
態)を格納する。
(2)実行優先順位402
該タスクに割り当てた実行優先順位を格納する。
(3)次TCBポインタ403
TCBをチエインしてタスクキューを構成する際、次の
TCBアドレスを格納する。タスクキュー末尾のTCB
の場合は本フィールドはOを格納する。
TCBアドレスを格納する。タスクキュー末尾のTCB
の場合は本フィールドはOを格納する。
(4)タスク情報退避領域404
タスクの実行を中断する場合に、該タスクの再開ができ
るように、PSW(プログラム状態語)、レジスタ等の
内容を退避するために用いる。
るように、PSW(プログラム状態語)、レジスタ等の
内容を退避するために用いる。
次に本発明のロック競合の制御方式について説明する。
以下、本実施例のオンライン・データベース・システム
ではロック競合の対象となる共有リソースはひとつのデ
ータベースのみと仮定する。
ではロック競合の対象となる共有リソースはひとつのデ
ータベースのみと仮定する。
即ち、共有リソースが単一と仮定する。また、各トラン
ザクションによって生成されるタスクも単一とする。即
ち、トランザクションとタスクとの間に1対1の対応が
成り立つ場合を考える。これらの仮定によって、本発明
の方式の利点は失われない。
ザクションによって生成されるタスクも単一とする。即
ち、トランザクションとタスクとの間に1対1の対応が
成り立つ場合を考える。これらの仮定によって、本発明
の方式の利点は失われない。
まず、第1図を用いて本発明のロック制御、タスク制御
方式の概略について説明する。各タスクは共有リソース
をロックする場合、L OCKマクロ551を発行し、
ロック処理ルーチン500を呼び出す。必要な共有リソ
ースが他タスクによって占有使用中の為に確保できない
場合、ロック制御方式の切替え判定(処理502)に従
い、ロック制御方式の切替え処理(503)を行い、P
OSTO3間始前に共有リソースを解放する第1のロッ
ク制御方式か、POSTO3間始前に共有リソースを解
放しない第2のロック制御方式かを選択する。次に、ス
ーパーバイザ内のWAIT処理ルーチン510を呼出し
て(504)LOCKマクロを発行したタスクを「待ち
状態」にする(処理511)。この場合、スーパーバイ
ザ内めディスパッチャ530が他の「実行可能状態」の
タスクにCPUを割当てる(処理53’l、532)。
方式の概略について説明する。各タスクは共有リソース
をロックする場合、L OCKマクロ551を発行し、
ロック処理ルーチン500を呼び出す。必要な共有リソ
ースが他タスクによって占有使用中の為に確保できない
場合、ロック制御方式の切替え判定(処理502)に従
い、ロック制御方式の切替え処理(503)を行い、P
OSTO3間始前に共有リソースを解放する第1のロッ
ク制御方式か、POSTO3間始前に共有リソースを解
放しない第2のロック制御方式かを選択する。次に、ス
ーパーバイザ内のWAIT処理ルーチン510を呼出し
て(504)LOCKマクロを発行したタスクを「待ち
状態」にする(処理511)。この場合、スーパーバイ
ザ内めディスパッチャ530が他の「実行可能状態」の
タスクにCPUを割当てる(処理53’l、532)。
CPUを割当てられたタスクは「実行状態」となす、割
込み等によりCPU使用権を奪われるまで処理を継続す
る。一方、「待ち状態」となったタスクはPOST処理
によって「実行可能状態」に戻されるまで1待ち状態」
を継続する。
込み等によりCPU使用権を奪われるまで処理を継続す
る。一方、「待ち状態」となったタスクはPOST処理
によって「実行可能状態」に戻されるまで1待ち状態」
を継続する。
一方、共有リソースを占有使用していたタスクは、共有
リソースをアンロックする場合、UNLKマクロ552
を発行し、アンロック処理ルーチン520を呼び出す。
リソースをアンロックする場合、UNLKマクロ552
を発行し、アンロック処理ルーチン520を呼び出す。
アンロック処理ルーチンでは、待ち状態のタスクがある
かどうか調べる(処理521)。もし、待ち状態のタス
クがあれば、ロック制御方式の切替え処理(503)に
より、いずれのロック制御方式が選択されているか判定
する(処理522)。POSTO3間始前に共有リソー
スを解放する第1のロック制御方式が選択されていれば
、共有リソースを解放しく処理523)、WAITタス
クに共有リソース解放を通知する為にPO5T処理ルー
チンを呼び出す(524)。
かどうか調べる(処理521)。もし、待ち状態のタス
クがあれば、ロック制御方式の切替え処理(503)に
より、いずれのロック制御方式が選択されているか判定
する(処理522)。POSTO3間始前に共有リソー
スを解放する第1のロック制御方式が選択されていれば
、共有リソースを解放しく処理523)、WAITタス
クに共有リソース解放を通知する為にPO5T処理ルー
チンを呼び出す(524)。
P、O3T処理開始前に共有リソースを解放しない第2
のロック制御方式が選択されていれば、共有リソースを
解放しないで、WAITタスクに共有リソース解放をj
m知する為にPOST処理ルーチンを呼び出す(524
,)。
のロック制御方式が選択されていれば、共有リソースを
解放しないで、WAITタスクに共有リソース解放をj
m知する為にPOST処理ルーチンを呼び出す(524
,)。
POSTO3用−チン540ば、p o s ′r発行
タスクを「実行状態」から「実行可能状態」に移し、p
o s ”r受理タスクを1待ち状態」から「実行可
能状態」に移す(処理541)。ロック制御方式の切替
え処理(503)により、いずれのロック制御方式が選
択されているか判定する(処理542)。第1のロック
制御方式が選択されていれば、ディスパッチャ530を
呼び出す(処理544)。第2のロック制御方式が選択
されていれば、POST受理タスクに優先的にCPUを
割り当てる(処理543,532)。CPU使用権を与
えられたPOST受理タスクは、共有リソースを占有し
て処理を再開することができる。
タスクを「実行状態」から「実行可能状態」に移し、p
o s ”r受理タスクを1待ち状態」から「実行可
能状態」に移す(処理541)。ロック制御方式の切替
え処理(503)により、いずれのロック制御方式が選
択されているか判定する(処理542)。第1のロック
制御方式が選択されていれば、ディスパッチャ530を
呼び出す(処理544)。第2のロック制御方式が選択
されていれば、POST受理タスクに優先的にCPUを
割り当てる(処理543,532)。CPU使用権を与
えられたPOST受理タスクは、共有リソースを占有し
て処理を再開することができる。
以上、WAITタスクがひとつの場合について説明して
きたが、一般にはWAITタスクが複数存在し得るので
、WAITタスク用の待ち行列(WAITキュー130
)を用いる。ロック失敗したタスクは、WAITマクロ
を発行してWAIT処理ルーチンをコールする前に、L
RB (I−0CkRequest Blockの
略)を作成してWAITキューにチエインする。また、
各タスクは共有リソースを解放する前に、WAITキュ
ーを参照して待′ら状態のタスクがあるかどうか8周べ
る。もし、希ち状態のタスクかあれば、即ち、WAIT
キューに1個以上L RBがチエインしていれば、先頭
の(時間的に最も古い)LRB(第7図と第8図で最も
左側のLRB 132)をWAITキューから取り出し
、このL R13に対応するWAITタスクに対して共
有リソース解放を通知するPOSTマクロを発行する。
きたが、一般にはWAITタスクが複数存在し得るので
、WAITタスク用の待ち行列(WAITキュー130
)を用いる。ロック失敗したタスクは、WAITマクロ
を発行してWAIT処理ルーチンをコールする前に、L
RB (I−0CkRequest Blockの
略)を作成してWAITキューにチエインする。また、
各タスクは共有リソースを解放する前に、WAITキュ
ーを参照して待′ら状態のタスクがあるかどうか8周べ
る。もし、希ち状態のタスクかあれば、即ち、WAIT
キューに1個以上L RBがチエインしていれば、先頭
の(時間的に最も古い)LRB(第7図と第8図で最も
左側のLRB 132)をWAITキューから取り出し
、このL R13に対応するWAITタスクに対して共
有リソース解放を通知するPOSTマクロを発行する。
次に、このWAITキュー130および管理ブロックの
データ構造について第3〜4図及び第7〜8図により説
明する。WAITキューは共有メモリ103上に設け、
システム内の各タスクからアクセス可能とする。WAI
Tキューは、各共有リソース毎にひとつ設+Jる。本実
施例では、前述のとおり共有リソースが単一の場合を考
えているので、WAITキューはシステム内に唯一であ
る。
データ構造について第3〜4図及び第7〜8図により説
明する。WAITキューは共有メモリ103上に設け、
システム内の各タスクからアクセス可能とする。WAI
Tキューは、各共有リソース毎にひとつ設+Jる。本実
施例では、前述のとおり共有リソースが単一の場合を考
えているので、WAITキューはシステム内に唯一であ
る。
WΔITキューは、ひとつのWCB(WA、ITCon
trol B 1ockの略)131と各タスク毎に
設けた0個以上のLRB 132から構成する。第3図
〜第4図にw CBとLRBの構造を示す。
trol B 1ockの略)131と各タスク毎に
設けた0個以上のLRB 132から構成する。第3図
〜第4図にw CBとLRBの構造を示す。
WCBには以下の情報を格納する。
(1)WAITキュー・ロックワード301W、CB自
身の更新の排他制御に用いる。
身の更新の排他制御に用いる。
当WCBが占有中はロックキーを格納し、解放中は0を
格納する。
格納する。
(2)リソース・ロックワード302
排他制御の対象となる共有リソースの占有状態を表わす
。共有リソースが占有中はロックキーを格納し、解放中
は0を格納する。
。共有リソースが占有中はロックキーを格納し、解放中
は0を格納する。
(3)、WAITキュー先頭ポインタ303WAITキ
ュー先頭のLRBのアドレスを格納する。WAITキュ
ーが空の場合は0を格納する。
ュー先頭のLRBのアドレスを格納する。WAITキュ
ーが空の場合は0を格納する。
(4)WAITキュー末尾ポインタ304WAITキュ
ー末尾のLRBのア下レスを格納する。WAITキュー
が空の場合□は0を格納する。
ー末尾のLRBのア下レスを格納する。WAITキュー
が空の場合□は0を格納する。
(5)最大リトライ回数(MAχ−RETRY −CO
UNT)WAITキュー中のLRB中のりトライ回数の
最大値を示す。
UNT)WAITキュー中のLRB中のりトライ回数の
最大値を示す。
(6)す1〜ライ上限値(RETRY、−LIl’1l
T) 3.060ツク失敗回数の上限値を示す正整数。
T) 3.060ツク失敗回数の上限値を示す正整数。
(7)占有タスクT 、CBポインタ307共有リソー
スを占有中のタスクのTCBアドレスを格納する。共有
リソースが解放中は当フィールドは意味を持たない。
スを占有中のタスクのTCBアドレスを格納する。共有
リソースが解放中は当フィールドは意味を持たない。
LR813,2には以下の情報を格納する。
(1) ECB(Event Control B
lock)311一般にWAIT−POST方式におい
てPO8T発行タスクとWAITタスクの間で、待ち事
象の発生・未発生を管理する制御情報である。POST
O3上312がOの時は事象未発生、■の時は事象発生
完了を示す。WAIT、1の時はWAIT中を示す。本
実施例では、共有リソースの解放を通知する為に用いる
。また、ECB内のPOSTl−1’ニーフイールド3
14を用いてPOST発行タスクからP OS T受理
タスクへロックキーを渡す。
lock)311一般にWAIT−POST方式におい
てPO8T発行タスクとWAITタスクの間で、待ち事
象の発生・未発生を管理する制御情報である。POST
O3上312がOの時は事象未発生、■の時は事象発生
完了を示す。WAIT、1の時はWAIT中を示す。本
実施例では、共有リソースの解放を通知する為に用いる
。また、ECB内のPOSTl−1’ニーフイールド3
14を用いてPOST発行タスクからP OS T受理
タスクへロックキーを渡す。
(2)リトライ回数(RETRY −COUNT) 3
15当タスクが何回ロック失敗したかを示すカウンタで
ある。ロックが確保できるとOクリアする。
15当タスクが何回ロック失敗したかを示すカウンタで
ある。ロックが確保できるとOクリアする。
(3)次LRBボインク316
L RBをチエインしてWAITキューを構成する際、
次のり、 RBのアドレスを格納する。
次のり、 RBのアドレスを格納する。
(4)WAITタスクTCBポインタ317当L RB
に対応するWAITタスクのTCBア・ドレスを格納す
る。
に対応するWAITタスクのTCBア・ドレスを格納す
る。
次に共有リソースのロック処理、及びアンロツタ処理の
アルゴリズトについて説明する。尚、以下の説明ではリ
ソース・ロックワード302を単にロックワードと呼ぶ
。
アルゴリズトについて説明する。尚、以下の説明ではリ
ソース・ロックワード302を単にロックワードと呼ぶ
。
共有リソース占有時は占有しているタスクのTCBアド
レスをロックワードに格納し、非占有時は′0をロック
ワードに格納する。TCBは各タスクに対応して生成す
るので、タスクの識別情報IDとしてTCBアドレスを
用いる。以下、ロックキーとして、このTCBアドレス
を用いるとする。
レスをロックワードに格納し、非占有時は′0をロック
ワードに格納する。TCBは各タスクに対応して生成す
るので、タスクの識別情報IDとしてTCBアドレスを
用いる。以下、ロックキーとして、このTCBアドレス
を用いるとする。
ます、第5図を用いてロック処理を説明する。
まず、判定処理701によって、他タスクからPOST
された後、即ち「待ち状態」の後か否かの判定を行なう
。これはECB1.32内のPOSTビット312が0
か1かにより判定できる。もし、POSTされた後なら
ば、レジスタ1(R1)に旧ロックキー、即ちECB
132内のPO5TO5上314をロードする(処理7
02)。posTコードにはPOST発行タスクの識別
情報ID(POST発行タスクのTCBアドレス)が格
納されている。そうでなけれは、レジスタ1に0をロー
ドする(処理703)。次に、レジスタ2(R2)に新
ロックキー、即ち自タスクの識別情報TD(自タスクの
TCBアドレス)をロードする(処理704)。判定処
理705はCS命令を用いて次の様に行なう。
された後、即ち「待ち状態」の後か否かの判定を行なう
。これはECB1.32内のPOSTビット312が0
か1かにより判定できる。もし、POSTされた後なら
ば、レジスタ1(R1)に旧ロックキー、即ちECB
132内のPO5TO5上314をロードする(処理7
02)。posTコードにはPOST発行タスクの識別
情報ID(POST発行タスクのTCBアドレス)が格
納されている。そうでなけれは、レジスタ1に0をロー
ドする(処理703)。次に、レジスタ2(R2)に新
ロックキー、即ち自タスクの識別情報TD(自タスクの
TCBアドレス)をロードする(処理704)。判定処
理705はCS命令を用いて次の様に行なう。
cs R1,R2,LOCKIIORDこの命令は、
レジスタ1の内容である旧ロックキーとロックワード3
02のイ直を比較し、もし等しければ、ロックワードの
値をレジスタ2の内容である新ロックキーで置換する(
ロック成功)。
レジスタ1の内容である旧ロックキーとロックワード3
02のイ直を比較し、もし等しければ、ロックワードの
値をレジスタ2の内容である新ロックキーで置換する(
ロック成功)。
前記の比較の結果が等しくない場合は、ロックワードの
置換を行なわない(ロック失敗)。C8命令の機能の重
要な点は、上記のロックワードの読み出しから、比較、
更新の間、他のCPUによるロックワードへのアクセス
を禁止できる事である。
置換を行なわない(ロック失敗)。C8命令の機能の重
要な点は、上記のロックワードの読み出しから、比較、
更新の間、他のCPUによるロックワードへのアクセス
を禁止できる事である。
これによって、共有リソースが非占有状態の場合、ある
いは、POST発行タスクからPOSTコードとして渡
された旧ロックキーの値がロックワードの現在、(即ち
CS命令実行時)の値に等しい場合以外は、ロック処理
を試みたタスクはロック失敗となる。
いは、POST発行タスクからPOSTコードとして渡
された旧ロックキーの値がロックワードの現在、(即ち
CS命令実行時)の値に等しい場合以外は、ロック処理
を試みたタスクはロック失敗となる。
判定処理705によって、ロック成功となった場合は、
処理706でリトライ回数315をOに戻しロック処理
完了となる。ロック失敗した場合、リトライ回数を1増
加しく処理707) 、LRBを作成しく始めてロック
失敗したとき)又はLRBのりトライ回数を更新しく7
15)、WAITキュー130をロックする(処理70
8)。他りスフかWAITキューをロック中ば、他タス
クの処理が完了するまでループして待つ(708a)。
処理706でリトライ回数315をOに戻しロック処理
完了となる。ロック失敗した場合、リトライ回数を1増
加しく処理707) 、LRBを作成しく始めてロック
失敗したとき)又はLRBのりトライ回数を更新しく7
15)、WAITキュー130をロックする(処理70
8)。他りスフかWAITキューをロック中ば、他タス
クの処理が完了するまでループして待つ(708a)。
WAITキューがロックできたら、す;ライ回数315
と最大りトライ回数(WAITキューのチェーン中でリ
トライした回数が最大のもの)305を比較する(処理
709)。
と最大りトライ回数(WAITキューのチェーン中でリ
トライした回数が最大のもの)305を比較する(処理
709)。
リトライ回数≧最大リトライ回数
ならば最大リトライ回数を今回のり1−ライ回数に更新
しく処理710)、WAITキュー先頭へ(最優先位置
へ)自タスクのL RBをチエインする(処理711)
。
しく処理710)、WAITキュー先頭へ(最優先位置
へ)自タスクのL RBをチエインする(処理711)
。
リトライ回数〈最大リトライ回数
ならばWAITキュー末尾へ自タスクのLRBをチエイ
ンする(処理712)。WA■Tキューの更新中(WA
ITキューをチェーンに繋いだり、チェノからはずした
り、カウンタを書き替える処理中)は、WAITキフー
ーに他のプロセサから入れないように、W A I T
キュー自体ロックされ′ているが、LRBのWA’IT
キフー−へのチエインが完了したらW、AITキューを
解放しく713)、WAITマクロを呼び出ずく処理7
14)。WAITマクロを発行したタスクは「待ち状態
」となり、POSTされるまで「待ち状態」をm続する
。
ンする(処理712)。WA■Tキューの更新中(WA
ITキューをチェーンに繋いだり、チェノからはずした
り、カウンタを書き替える処理中)は、WAITキフー
ーに他のプロセサから入れないように、W A I T
キュー自体ロックされ′ているが、LRBのWA’IT
キフー−へのチエインが完了したらW、AITキューを
解放しく713)、WAITマクロを呼び出ずく処理7
14)。WAITマクロを発行したタスクは「待ち状態
」となり、POSTされるまで「待ち状態」をm続する
。
p o s ’rされろと再度処理701Lこ戻り、ロ
ック確保を試みる。
ック確保を試みる。
尚、ECB51]の初期化(PO5Tビット312のク
リア)は処理702の直後に行なう。
リア)は処理702の直後に行なう。
又、処理711および処理712では、WAITキュー
のロック時間短縮のため、WAITキュー先頭ポインタ
303.、WAITキュー末尾ポインタ303を使用し
、WAITキューをサーチする処理は行なわない。又、
WAITキューをロック中は割込タスクとのデッドロッ
ク防止のため、割込禁止とする。
のロック時間短縮のため、WAITキュー先頭ポインタ
303.、WAITキュー末尾ポインタ303を使用し
、WAITキューをサーチする処理は行なわない。又、
WAITキューをロック中は割込タスクとのデッドロッ
ク防止のため、割込禁止とする。
次に第6図を用いてアンロック処理を説明する。
第6図は、第1図のアンロック処理520の部分を詳細
に示すものである。アンロック処理では、まずWAIT
キューをロックする(処理801)。
に示すものである。アンロック処理では、まずWAIT
キューをロックする(処理801)。
他タスクがW/’、ITキューを占有中は、ロックでき
るまでループして待つ。WAITキューがロックできた
ら、WA、ITキューが空か否か、即ち、共有リソース
の解放を待っているタスクの有無をチエツクする(処理
802)。もし、WAITタスクがなげねば、WAIT
キューおよび共有リソースを解放゛づる(処理803〜
804)。WAI′丁゛ギコーー、共有リソースの解放
は、ロックワード(301及び302)&こ0を書き込
む事で行なう。
るまでループして待つ。WAITキューがロックできた
ら、WA、ITキューが空か否か、即ち、共有リソース
の解放を待っているタスクの有無をチエツクする(処理
802)。もし、WAITタスクがなげねば、WAIT
キューおよび共有リソースを解放゛づる(処理803〜
804)。WAI′丁゛ギコーー、共有リソースの解放
は、ロックワード(301及び302)&こ0を書き込
む事で行なう。
WAI]”タスクがある場合は、まず最大リトライ回数
305きりトライ上限値(予じめ設定した値で、ごの値
を境に制御を切換える)306を比較する(処理805
)。
305きりトライ上限値(予じめ設定した値で、ごの値
を境に制御を切換える)306を比較する(処理805
)。
最大リトライ回数〈リトライ上限値
ならば、即ち、失敗回数が1−限値に達していなげれば
、共有リソースを解放しく処理807)、PQSTコー
ト3]4にOをセットする(処理808)。
、共有リソースを解放しく処理807)、PQSTコー
ト3]4にOをセットする(処理808)。
最大リトライ回数≧リトライ上限値
ならば、即ち、失敗回数が上限値に達していれば、PO
STコードに現ロックキー、即ち、現ロック権占有タス
ク(現在ロック権を占有中のタスク)の識別情1(TC
Bアドレス307)をセラ1〜する(処理806)。次
にWAITキュー先頭のLRB(前記最大リトライ回数
を有するタスクに相当)を取り出しく処理809)、最
大リトライ回数305を更新しく処理811または81
2)、WAITキューを解放しく処理813)、処理8
09にて取り出したL RBに対応するタスクに、PO
STマクロを発行しく処理814)、共有リソースの解
放を通知する。この時、処理806または処理808で
セットしたPOSTコードをP○ST受理タスクへ渡す
。このp o s =「コードは、処理702または7
03 (第5図)によってp。
STコードに現ロックキー、即ち、現ロック権占有タス
ク(現在ロック権を占有中のタスク)の識別情1(TC
Bアドレス307)をセラ1〜する(処理806)。次
にWAITキュー先頭のLRB(前記最大リトライ回数
を有するタスクに相当)を取り出しく処理809)、最
大リトライ回数305を更新しく処理811または81
2)、WAITキューを解放しく処理813)、処理8
09にて取り出したL RBに対応するタスクに、PO
STマクロを発行しく処理814)、共有リソースの解
放を通知する。この時、処理806または処理808で
セットしたPOSTコードをP○ST受理タスクへ渡す
。このp o s =「コードは、処理702または7
03 (第5図)によってp。
ST受理タスクが受は取る。この機構により、lコック
失敗回数が」二限値未滴の場合は、処理807によって
解放した共有リソースは、POST受理タスクとそれ以
外のタスクの間で「早い者勝ち」で争われる。しかし、
ロック失敗回数が上限値以」−になった場合、PO8T
全8Tスクでの共有リソースの解放は行なわず、p o
s ”r受理タスクへ直接ロック権を渡す。
失敗回数が」二限値未滴の場合は、処理807によって
解放した共有リソースは、POST受理タスクとそれ以
外のタスクの間で「早い者勝ち」で争われる。しかし、
ロック失敗回数が上限値以」−になった場合、PO8T
全8Tスクでの共有リソースの解放は行なわず、p o
s ”r受理タスクへ直接ロック権を渡す。
次に、上記実施例による作用(動作)を、第10図ない
し第13図を用いて従来方式と対比しながら説明する!
これらの図における左下り2右下りのハツチ、梨地状部
、文字記号の意味は1.第10図について前述したとこ
ろと同じである。
し第13図を用いて従来方式と対比しながら説明する!
これらの図における左下り2右下りのハツチ、梨地状部
、文字記号の意味は1.第10図について前述したとこ
ろと同じである。
まず(解決手段1)に関する実施例の作用について説明
する。第10図は、前述したように、従来方式にiける
ロック競合発生時のタスクの動作例を示すタイミング図
である。第11図ば(解決手段1)の方式におけるロッ
ク競合発生時のタスクの動作例を示すタイミング図であ
る。第11図でも、第10と同じく、CP U 1で実
行中のタスり1によりロック占有中のために、CPU2
で実行中のタスク2がロック失敗した場合の動作例を示
している。第10図に示す従来方式では、前記のように
、待ち状態となったタスク2が、タスク1によってPO
STされて、CPU2で再び実行状態となるまでの期間
に、CPU3上で実行中のタスク3がロック失敗してし
まう。これに対し、第11図に示す(解決手段1の実施
例)の方式では、タスク1がPOSTO3間始(時刻t
s)前に(時刻t3)共有リソースを解放するので、時
刻t4で待ち状態となったタスク2が、タスク1によっ
てPOSTされて、CPUIで再び実行状態となるまで
の期間(時刻t5〜t’s)に、CPU3上で実行中の
タスク3が共有リソースをロックできる(時刻t6)。
する。第10図は、前述したように、従来方式にiける
ロック競合発生時のタスクの動作例を示すタイミング図
である。第11図ば(解決手段1)の方式におけるロッ
ク競合発生時のタスクの動作例を示すタイミング図であ
る。第11図でも、第10と同じく、CP U 1で実
行中のタスり1によりロック占有中のために、CPU2
で実行中のタスク2がロック失敗した場合の動作例を示
している。第10図に示す従来方式では、前記のように
、待ち状態となったタスク2が、タスク1によってPO
STされて、CPU2で再び実行状態となるまでの期間
に、CPU3上で実行中のタスク3がロック失敗してし
まう。これに対し、第11図に示す(解決手段1の実施
例)の方式では、タスク1がPOSTO3間始(時刻t
s)前に(時刻t3)共有リソースを解放するので、時
刻t4で待ち状態となったタスク2が、タスク1によっ
てPOSTされて、CPUIで再び実行状態となるまで
の期間(時刻t5〜t’s)に、CPU3上で実行中の
タスク3が共有リソースをロックできる(時刻t6)。
このためWA I T処理、POST処理の回数を減ら
すことができる。
すことができる。
次に(解決手段2)に関する実施例の作用について説明
する。上述の(解決手段1)の方式では、待ち状態とな
ったタスク2が、タスク1によってPOSTされて実行
状態に戻った後、再びロック失敗する可能性がある。最
悪の場合、タスク2が無限にリトライを繰り返すことに
なる。そこで、タスク2のりトライ回数を計数し、この
りトライ回数が所定の上限値を越えた場合は、p o
s ’r処理開始前に共有リソースを解放しないで、P
O31゛されて実行状態に戻ったタスク2が確実にロッ
ク権を得るようにロック制御を切り替える。ロック失敗
率(ロック確保を試みて失敗する確率)をβ、リトライ
回数の上限値をNとすると、N回連続してロック失敗す
る確率はβ8となり、O〈β〈1であるからβ8は十分
率さな値となる。即ち、リトライ回数が上限値を越えて
、POSTO3間始からタスク2か再び実行状態となる
までの期間に渡って共有リソースがロックされる確率(
−βN)を極めて小さく抑え、同時にタスク2のリトラ
イ回数をN回収下に抑えることができる。
する。上述の(解決手段1)の方式では、待ち状態とな
ったタスク2が、タスク1によってPOSTされて実行
状態に戻った後、再びロック失敗する可能性がある。最
悪の場合、タスク2が無限にリトライを繰り返すことに
なる。そこで、タスク2のりトライ回数を計数し、この
りトライ回数が所定の上限値を越えた場合は、p o
s ’r処理開始前に共有リソースを解放しないで、P
O31゛されて実行状態に戻ったタスク2が確実にロッ
ク権を得るようにロック制御を切り替える。ロック失敗
率(ロック確保を試みて失敗する確率)をβ、リトライ
回数の上限値をNとすると、N回連続してロック失敗す
る確率はβ8となり、O〈β〈1であるからβ8は十分
率さな値となる。即ち、リトライ回数が上限値を越えて
、POSTO3間始からタスク2か再び実行状態となる
までの期間に渡って共有リソースがロックされる確率(
−βN)を極めて小さく抑え、同時にタスク2のリトラ
イ回数をN回収下に抑えることができる。
次に(解決手段3〜5)に関する実施例の作用について
説明する。第12図は従来方式におけるロック競合発生
時のタスクの動作例を示すタイミング図である。第13
図はく解決手段3〜5)の方式の実施例におけるロック
競合発生時のタスクの動作例を示すタイミング図である
。第12図。
説明する。第12図は従来方式におけるロック競合発生
時のタスクの動作例を示すタイミング図である。第13
図はく解決手段3〜5)の方式の実施例におけるロック
競合発生時のタスクの動作例を示すタイミング図である
。第12図。
第13図ともにCPUIで実行中のタスク1によりロッ
ク占有中のために、CPU2で実行中のタスク2がロッ
ク失敗した場合の動作例を示している。第12図の従来
方式では、タスク1によってPO8Tされたタスク2が
デイスパックされるまでの期間に、CPUI上で実行中
のタスク1やCPUZ上で実行中のタスク3がロック失
敗している。これに比べ、第13図の(解決手段3〜5
)の方式では、CPUIのタスク1を中断して該CPU
Iをタスク2に割り当てることによりPO8T処理(時
刻t4)の後、タスク2を優先的にディスパッチして(
時刻t、)CPUI上で実行しているので、POSTO
3間始からタスク2がディスパッチされるまでの期間を
短縮でき、他タスクのロック失敗を少なくできる。また
、これに代えて、タスク2のWAIT処理(時刻t3)
でタスク2が待ち状態に遷移する前、又はタスク1のP
OST処理(時刻t4)によりタスク2の待ち状態が解
除される前に、タスク2の実行優先順位を高めることに
よって、タスク2はCPUI又は他のCPUに優先的に
割り当てられ、同様に上記jlJ間を短縮できる。
ク占有中のために、CPU2で実行中のタスク2がロッ
ク失敗した場合の動作例を示している。第12図の従来
方式では、タスク1によってPO8Tされたタスク2が
デイスパックされるまでの期間に、CPUI上で実行中
のタスク1やCPUZ上で実行中のタスク3がロック失
敗している。これに比べ、第13図の(解決手段3〜5
)の方式では、CPUIのタスク1を中断して該CPU
Iをタスク2に割り当てることによりPO8T処理(時
刻t4)の後、タスク2を優先的にディスパッチして(
時刻t、)CPUI上で実行しているので、POSTO
3間始からタスク2がディスパッチされるまでの期間を
短縮でき、他タスクのロック失敗を少なくできる。また
、これに代えて、タスク2のWAIT処理(時刻t3)
でタスク2が待ち状態に遷移する前、又はタスク1のP
OST処理(時刻t4)によりタスク2の待ち状態が解
除される前に、タスク2の実行優先順位を高めることに
よって、タスク2はCPUI又は他のCPUに優先的に
割り当てられ、同様に上記jlJ間を短縮できる。
本発明によれば、オンライン・データヘース・システム
等において、共有リソースの占有使用要求をWAIT−
POST方式で制御し、かつ、1)O3T処理オーバー
ヘッドを共有リソース占有時間から除外でき、かつ、P
OST受理タスクのりトライ回数増加を一定の上限値以
下に抑え、レスポンスが悪化する現象を回避できるので
、前記システムのスループット性能向上に効果がある。
等において、共有リソースの占有使用要求をWAIT−
POST方式で制御し、かつ、1)O3T処理オーバー
ヘッドを共有リソース占有時間から除外でき、かつ、P
OST受理タスクのりトライ回数増加を一定の上限値以
下に抑え、レスポンスが悪化する現象を回避できるので
、前記システムのスループット性能向上に効果がある。
特にマルチ・プロセッサ・システムの場合、ロック
−占有率を低く抑える本発明の方式は性能向上
に効果がある。
−占有率を低く抑える本発明の方式は性能向上
に効果がある。
更に、す1〜ライ上限値は各共有リソース毎に設定可能
であり、システムのスルーブツト性能モニタ・プログラ
ムやレスポンス性能モニタ・プログラムと本発明の方式
を統合化し、リトライ上限値を動的に変更することで、
システJ、全体の性能の自動チューニングを行なうこと
も可能である。
であり、システムのスルーブツト性能モニタ・プログラ
ムやレスポンス性能モニタ・プログラムと本発明の方式
を統合化し、リトライ上限値を動的に変更することで、
システJ、全体の性能の自動チューニングを行なうこと
も可能である。
第1図は本発明のロック制御及びタスク制御方式の概略
フローを示す図、第2図はT” CBの形式を示す図、
第3図はWCBの形式を示す図、第4図はLRBの形式
を示す図、第5閾はロック確保処理のフローを示す図、
第6図はロック解放処理のフローを示す図、第7図は本
発明の実施例のマルチ・プロセッサ構成オンライン・デ
ータヘース・システムの構成概略を示す図、第8図はW
AITキューの形式を示す図、第9図はタスクキューの
形式を示す口、第10図〜第13図は本発明の作用を示
す図である。 130・・・・・・・・WAITキュー、131・・・
・・・・・・WCB (WAIT Contr
ol 旧ock) 、 1 3 2−−−1−
1RB (Lock Request Block
) 、、 + 40−タスクキュー、141・・・・
・・・・タスクキュー先頭ポインタ、142・・・・・
・・・・タフスキュー末尾ポインタ、143−TCB
(Task Control Block)、31
2・・・・・・・・・POSTビ゛ンI・、313・・
・・ ・・Wへ] Tヒラl−1314・・・・・・・
・・P OS i’コート。 代 理 人 弁理士 弐 顕次部(外1名)″ 〒→ 第11図 第12N
フローを示す図、第2図はT” CBの形式を示す図、
第3図はWCBの形式を示す図、第4図はLRBの形式
を示す図、第5閾はロック確保処理のフローを示す図、
第6図はロック解放処理のフローを示す図、第7図は本
発明の実施例のマルチ・プロセッサ構成オンライン・デ
ータヘース・システムの構成概略を示す図、第8図はW
AITキューの形式を示す図、第9図はタスクキューの
形式を示す口、第10図〜第13図は本発明の作用を示
す図である。 130・・・・・・・・WAITキュー、131・・・
・・・・・・WCB (WAIT Contr
ol 旧ock) 、 1 3 2−−−1−
1RB (Lock Request Block
) 、、 + 40−タスクキュー、141・・・・
・・・・タスクキュー先頭ポインタ、142・・・・・
・・・・タフスキュー末尾ポインタ、143−TCB
(Task Control Block)、31
2・・・・・・・・・POSTビ゛ンI・、313・・
・・ ・・Wへ] Tヒラl−1314・・・・・・・
・・P OS i’コート。 代 理 人 弁理士 弐 顕次部(外1名)″ 〒→ 第11図 第12N
Claims (1)
- 【特許請求の範囲】 1、共有リソースがタスク1により占有使用(ロック)
中であつたために該共有リソースのロック権確保に失敗
したタスク2を待ち状態に遷移させるWAIT処理と、
前記タスク1が該共有リソースの使用を終了したときに
前記タスク2を実行可能状態に遷移させるPOST処理
と、実行可能状態のタスクにプロセッサ使用権を割り当
てるディスパッチ処理とによつて、共有リソースの占有
使用権のタスク間排他制御を行なう、マルチ・タスク方
式のマルチ・プロセッサ・システムにおけるロック制御
方式において、タスク1が前記共有リソースの使用を終
了した時点で該共有リソースを解放し、他プロセッサ上
で実行中の第3のタスクによる該共有リソースのロック
を許可する手段と、該ロックの許可後にPOST処理に
よつてタスク2を実行可能状態に遷移させる手段と、該
タスク2の実行可能状態への遷移後にディスパッチ処理
によつてプロセッサ使用権を得たタスク2が前記共有リ
ソースのロック権確保をリトライする手段とを備えたこ
とを特徴とするロック制御方式。2、共有リソースがタ
スク1によりロック中であつたために該共有リソースの
ロック権確保に失敗したタスク2を待ち状態に遷移させ
るWAIT処理と、前記タスク1が該共有リソースの使
用を終了したときに前記タスク2を実行可能状態に遷移
させるPOST処理と、実行可能状態のタスクにプロセ
ッサ使用権を割り当てるディスパッチ処理とによつて、
共有リソースの占有使用権のタスク間排他制御を行なう
、マルチ・タスク方式のマルチ・プロセッサ・システム
におけるロック制御方式において、 タスク1が該共有リソースの使用を終了した時点で該共
有リソースを解放し、他プロセッサ上で実行中の第3の
タスクによる該共有リソースのロックを許可した後、P
OST処理によつてタスク2を実行可能状態に遷移させ
た後、ディスパッチ処理によつてプロセッサ使用権を得
たタスク2が該共有リソースのロック権確保をリトライ
する第1のロック制御方式と、 タスク1が該共有リソースの使用を終了した時点で該共
有リソースのロック権をタスク2へ直接譲渡し、POS
T処理によつてタスク2を実行可能状態に遷移させた後
、ディスパッチ処理によつてプロセッサ使用権を得たタ
スク2が該共有リソースのロック権を解放するまでの間
、タスク2以外のタスクによる該共有リソースのロック
を禁止する第2のロック制御方式とを含み、 前記第1のロック制御方式と第2のロック制御方式とを
動的に切り替える切り替え手段を備えたことを特徴とす
るロック制御方式。 3、前記切り替え手段として、タスク2のリトライ回数
を計数し、このリトライ回数が所定の上限値未満ならば
、前記第1のロック制御を行う手段により構成したこと
を特徴とする請求項2記載のロック制御方式。 4、前記切り替え手段として、タスク2のリトライ回数
を計数し、リトライ回数が所定の上限値以上に達すると
、前記第2のロック制御を行う手段により構成したこと
を特徴とする請求項2記載のロック制御方式。 5、POST処理によるタスク2の待ち状態解除後、タ
スク1の実行を中断し、タスク1が走行していたプロセ
ッサをタスク2に割り当てる手段を備えたことを特徴と
する請求項2ないし4記載のロック制御方式のためのタ
スク制御方式。 6、WAIT処理によつてタスク2が待ち状態に遷移す
る前に、タスク2の実行優先順位を高める優先順位変更
を行ない、タスク2の共有リソース解放時に前記変更を
施した実行優先順位を復元する手段を備えたことを特徴
とする請求項2ないし4記載のロック制御方式のための
タスク制御方式。 7、タスク1がPOST処理によつてタスク2の待ち状
態を解除する前に、タスク2の実行優先順位を高める優
先順位変更を行ない、タスク2の共有リソース解放時に
前記変更を施した実行優先順位を復元する手段を備えた
ことを特徴とする請求項2ないし4記載のロック制御方
式のためのタスク制御方式。 8、請求項1ないし7記載のロック制御方式又はタスク
制御方式を使用したオンライン・トランザクション・シ
ステム。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63127150A JP2804478B2 (ja) | 1988-05-26 | 1988-05-26 | タスク制御方式及びオンライン・トランザクション・システム |
| DE1989625064 DE68925064T2 (de) | 1988-05-26 | 1989-05-24 | Taskausführungssteuerverfahren für ein Multiprozessorsystem mit Post/Warte-Prozedur |
| EP19890109410 EP0343646B1 (en) | 1988-05-26 | 1989-05-24 | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
| US07/940,347 US5274809A (en) | 1988-05-26 | 1992-09-03 | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63127150A JP2804478B2 (ja) | 1988-05-26 | 1988-05-26 | タスク制御方式及びオンライン・トランザクション・システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01297760A true JPH01297760A (ja) | 1989-11-30 |
| JP2804478B2 JP2804478B2 (ja) | 1998-09-24 |
Family
ID=14952859
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63127150A Expired - Fee Related JP2804478B2 (ja) | 1988-05-26 | 1988-05-26 | タスク制御方式及びオンライン・トランザクション・システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2804478B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02126330A (ja) * | 1988-11-04 | 1990-05-15 | Nec Corp | 資源待ち合わせ方式 |
| WO2012132017A1 (ja) * | 2011-03-31 | 2012-10-04 | 富士通株式会社 | 排他制御方法、および排他制御プログラム |
| JP2016530625A (ja) * | 2013-08-14 | 2016-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ロッキング機構を用いた効率的なタスク・スケジューリングのための方法、システム、およびプログラム |
| CN116841691A (zh) * | 2023-06-15 | 2023-10-03 | 海光信息技术股份有限公司 | 加密硬件的配置方法、数据机密计算方法及相关设备 |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4963018B2 (ja) * | 2005-08-15 | 2012-06-27 | 株式会社ソニー・コンピュータエンタテインメント | スケジューリング方法およびスケジューリング装置 |
| US20070083867A1 (en) * | 2005-09-09 | 2007-04-12 | International Business Machines Corporation | Method and system to recover from control block hangs in a heterogenous multiprocessor environment |
| JP4233585B2 (ja) | 2006-07-25 | 2009-03-04 | 株式会社エヌ・ティ・ティ・ドコモ | ペリフェラル切替装置及びペリフェラル切替制御装置 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59172029A (ja) * | 1983-03-18 | 1984-09-28 | Fujitsu Ltd | 非同期共通バスにおけるlock制御方式 |
| JPS62262171A (ja) * | 1986-05-09 | 1987-11-14 | Nec Corp | 排他制御方式 |
-
1988
- 1988-05-26 JP JP63127150A patent/JP2804478B2/ja not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59172029A (ja) * | 1983-03-18 | 1984-09-28 | Fujitsu Ltd | 非同期共通バスにおけるlock制御方式 |
| JPS62262171A (ja) * | 1986-05-09 | 1987-11-14 | Nec Corp | 排他制御方式 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02126330A (ja) * | 1988-11-04 | 1990-05-15 | Nec Corp | 資源待ち合わせ方式 |
| WO2012132017A1 (ja) * | 2011-03-31 | 2012-10-04 | 富士通株式会社 | 排他制御方法、および排他制御プログラム |
| JP5725162B2 (ja) * | 2011-03-31 | 2015-05-27 | 富士通株式会社 | 排他制御方法、および排他制御プログラム |
| US9632842B2 (en) | 2011-03-31 | 2017-04-25 | Fujitsu Limited | Exclusive access control method prohibiting attempt to access a shared resource based on average number of attempts and predetermined threshold |
| JP2016530625A (ja) * | 2013-08-14 | 2016-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ロッキング機構を用いた効率的なタスク・スケジューリングのための方法、システム、およびプログラム |
| US10579413B2 (en) | 2013-08-14 | 2020-03-03 | International Business Machines Corporation | Efficient task scheduling using a locking mechanism |
| CN116841691A (zh) * | 2023-06-15 | 2023-10-03 | 海光信息技术股份有限公司 | 加密硬件的配置方法、数据机密计算方法及相关设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2804478B2 (ja) | 1998-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5274809A (en) | Task execution control method for a multiprocessor system with enhanced post/wait procedure | |
| US7975271B2 (en) | System and method for dynamically determining a portion of a resource for which a thread is to obtain a lock | |
| JP2866241B2 (ja) | コンピュータシステムおよびスケジューリング方法 | |
| US7797704B2 (en) | System and method for performing work by one of plural threads using a lockable resource | |
| EP0661633B1 (en) | Method and system for managing ownership of a released synchronization mechanism | |
| US7188344B1 (en) | Architecture for a read/write thread lock | |
| JP2514299B2 (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
| KR100976280B1 (ko) | 하드웨어 지원을 갖는 다중 프로세서 및 다중 스레드 안전 메시지 큐 | |
| US8510738B2 (en) | Preventing unnecessary context switching by employing an indicator associated with a lock on a resource | |
| JPH07191944A (ja) | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 | |
| JPH03161859A (ja) | リクエスト管理方法及びアクセス制御システム | |
| US20020029239A1 (en) | Method and system for enhanced concurrency in a computing environment | |
| US20040111656A1 (en) | Computer processor read/alter/rewrite optimization cache invalidate signals | |
| CN101546275B (zh) | 一种获取多处理器硬件信号量的方法 | |
| US7793023B2 (en) | Exclusion control | |
| EP0343646B1 (en) | Task execution control method for a multiprocessor system with enhanced post/wait procedure | |
| US20020112100A1 (en) | System and method for data exchange | |
| JPH01297760A (ja) | タスク制御方式及びオンライン・トランザクション・システム | |
| US5745757A (en) | Multiprocessor system with microprogrammed means for dispatching processes to processors | |
| US20050283783A1 (en) | Method for optimizing pipeline use in a multiprocessing system | |
| US6701429B1 (en) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location | |
| US11119831B2 (en) | Systems and methods for interrupting latency optimized two-phase spinlock | |
| JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
| CN113961364B (zh) | 一种大规模锁系统实现方法、装置、存储介质和服务器 | |
| JPH02171952A (ja) | マルチプロセッサにおけるディスパッチ方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |