JPH0997189A - 共有資源の排他制御方式 - Google Patents
共有資源の排他制御方式Info
- Publication number
- JPH0997189A JPH0997189A JP7254129A JP25412995A JPH0997189A JP H0997189 A JPH0997189 A JP H0997189A JP 7254129 A JP7254129 A JP 7254129A JP 25412995 A JP25412995 A JP 25412995A JP H0997189 A JPH0997189 A JP H0997189A
- Authority
- JP
- Japan
- Prior art keywords
- execution body
- execution
- lock
- value
- usage right
- 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
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
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)
Abstract
ない計算機でも、アトミックにスワップ処理を行える計
算機であれば、サスペンドロックを実現できる技術を提
供することを課題とする。 【解決手段】共有資源の使用権を獲得している実行体を
特定する実行体識別情報を格納するロックワード、及び
使用権を獲得するために待ち合わせている実行体のう
ち、最後に獲得要求を行った実行体の実行体識別情報を
格納するロックキューヘッダからなる排他制御管理テー
ブルと、個々の実行体毎に割り当てられ、割り当てられ
た実行体を特定する実行体識別情報を格納する管理領域
と、実行体から使用権獲得要求を受け付けたときに、要
求元の実行体の管理領域の内容と、排他制御管理テーブ
ルのロックキューヘッダの内容とをスワップすることに
より、擬似的な待ち行列を生成する資源管理手段と、実
行体の処理を中断/再開させる実行体制御手段とを備え
ている。
Description
能な計算機システムにおいて高速なサスペンドロックを
実現する技術に関する。
おいては、各実行体が共通に使用できる共有資源が用意
されている。そして、各実行体は、共有資源を使用する
際に、共有資源を排他的に使用する権利(以下、「使用
権」と記す)を獲得した上で、共有資源を使用する。
尚、ここでいう実行体とは、タスクやスレッド等を示す
ものとする。
は、スピンロック等のビジーウェイト方式が使用されて
いるが、この方式では、使用権の待ち合わせ処理に、ル
ープ処理が必要となるため、CPUを無駄に使用すると
いう問題がある。
使用権獲得のための競合が発生すると、二次的デッドロ
ックが発生する虞がある。すなわち、例えば、実行優先
度の低い実行体が使用権を獲得している際に、実行優先
度の高い実行体からの使用権の獲得要求が発生すると、
実行優先度の高い実行体の使用権獲得処理において、ス
ピンループ処理が永遠に実行され続け、二次デッドロッ
クが発生する虞がある。
ロックと呼ばれる処理がある。このサスペンドロックで
は、使用権の待ち合わせを行う実行体の処理を中断し
て、その処理からCPUを解放する。そして、使用権を
解放する実行体が、待ち実行体の処理を再開させること
により、待ち状態の実行体にCPU資源が再度割り当て
られて、その実行体の処理が再開される。
体の待ち合わせを行う際に、その実行体の処理からCP
Uを解放することにより、CPU資源を無駄に消費する
ことがなくなるという利点がある。
ペンドロック方式では、使用権を解放する実行体が、待
ち実行体へ使用権を委譲する際に、委譲すべき実行体を
判別するための使用権待ち行列を必要とする。この待ち
行列の作成は、コンペアスワップ命令等の特殊なシリア
ライズ命令を使用したり、割り込み禁止処理等を使用し
て行われている。このため、コンペアスワップ命令等の
特殊なシリアライズ命令が用意されていないと、サスペ
ンドロックを実現できないという問題がある。
令を備えていない計算機でも、アトミックにスワップ処
理を行える計算機であれば、サスペンドロックを実現で
きる技術を提供することを課題とする。
決するために以下のようにした。すなわち、共有資源の
排他制御方式は、排他制御管理テーブル、個々の実行体
に割り当てられる管理領域、資源管理手段、及び実行体
制御手段を備えている。
獲得している実行体を特定する実行体識別情報を格納す
るロックワード、及び他の実行体が使用権を獲得してい
る間にその使用権の獲得要求を行った実行体のうち、最
後に獲得要求を行った実行体の実行体識別情報を格納す
るロックキューヘッダを備えている。
記憶領域であり、各記憶領域には、割り当てられた実行
体の実行体識別情報が格納される。ここで、ロックワー
ドには、共有資源の使用権が空き状態にある場合には、
初期値が設定されている。そして、ある実行体が共有資
源の使用権を獲得したときに、その実行体の実行体識別
情報が設定される。さらに、ロックワードは、使用権を
獲得している実行体が使用権を解放したときにリセット
されるが、このとき、使用権が空くのを待っていた実行
体が存在すると、その実行体の実行体識別情報が書き込
まれることになる。
権が空き状態にある場合には、初期値が設定されてい
る。そして、ある実行体からの使用権の獲得要求が発生
すると、その実行体に割り当てられている管理領域の値
と入れ替えられる(スワップ処理)。例えば、使用権が
空き状態にあり、ロックキューヘッダに初期値が設定さ
れているときに、ある実行体Aからの使用権の獲得要求
が発生すると、実行体Aに割り当てられている管理領域
に設定されている実行体識別情報“A”と、ロックキュ
ーヘッダの初期値とが入れ替えられる。そして、実行体
Aが使用権を獲得している間に、実行体Bからの使用権
の獲得要求が発生すると、実行体Bに割り当てられてい
る管理領域に設定されている実行体識別情報“B”と、
ロックキューヘッダの値“A”とが入れ替えられる。こ
のとき、ロックキューヘッダには、実行体識別情報
“B”が設定され、実行体Bの管理領域には、実行体識
別情報“A”が設定されることになる。さらに、実行体
Cからの使用権の獲得要求が発生すると、ロックキュー
ヘッダの値”B”と、実行体Cに割り当てられている管
理領域に設定されている実行体識別情報“C”とがスワ
ップされる。このとき、ロックキューヘッダには、実行
体識別情報“C”が設定され、実行体Cの管理領域には
実行体識別情報“B”が設定され、さらに実行体Bの管
理領域には実行体識別情報“A”が設定されることにな
る。このように、ロックキューヘッダと管理領域とのス
ワップ処理を実行することにより、ロックキューヘッダ
→実行体C→実行体Bの連鎖が発生し、これを擬似的な
一方向性待ち行列として使用することができる。
求を受け付けたときに、前述したような入れ替え処理
(スワップ処理)を実行して、擬似的な待ち行列を生成
する。また、使用権の解放要求を受け付けたときには、
待ち行列を利用して、使用権の移転を行う。
体の処理を中断する。そして、待ち状態の実行体に使用
権が移転されると、その実行体の処理を再開させる。こ
の実行体制御手段は、例えば、各実行体毎に、各実行体
の状態管理テーブルを有し、状態管理テーブルの状態識
別情報を書き換えることにより、処理の中断あるいは処
理の再開を実現することができる。
用権の獲得要求を受け付けると、その実行体に割り当て
られている管理領域に設定されている実行体識別情報
と、前記排他制御管理テーブルのロックキューヘッダに
格納されている値とを入れ替える。そして、入れ替え後
の管理領域の値が、ロックキューヘッダの初期値である
か否かを判別することにより、待ち状態の実行体が存在
しているか否かを判別する。すなわち、入れ替え後の管
理領域に、ロックキューヘッダの初期値が設定されてい
る場合には、待ち状態の実行体が存在しないことを判定
する。一方、入れ替え後の管理領域に、他の実行体の実
行体識別情報が設定されている場合には、待ち状態の実
行体が存在していることを判定する。この場合には、資
源管理手段は、実行体制御手段に対して、要求元の実行
体の処理の中断を依頼し、要求元の実行体を待ち状態に
する。
ロックワードの値を参照して、使用権が空き状態にある
か否かを判別する。ここで、ロックワードに初期値が設
定されていれば、使用権が空き状態にあることが判定さ
れる。そして、ロックワードには、要求元の実行体の実
行体識別情報が格納される。これにより、要求元の実行
体は、共有資源の使用権を獲得したことになる。
報が格納されていれば、他の実行体が使用権を獲得して
いる状態にあることが判定される。そして、要求元の実
行体は、処理を中断されて待ち状態になる。具体的に
は、ロックキューヘッダに初期値が設定され、且つロッ
クワードに他の実行体の実行体識別情報が格納されてい
るケースとしては、他の実行体の使用権を解放処理して
いる最中(ロックキューヘッダをリセットした後であ
り、ロックワードをリセットする前)に、割り込んだケ
ースが考えられる。
について述べる。資源管理手段は、共有資源の使用権を
獲得している実行体から、前記使用権の解放要求を受け
付けると、その実行体に割り当てられている管理領域に
設定されている値と、前記ロックキューヘッダに設定さ
れている値とを入れ替える。そして、入れ替え後の管理
領域の値が、前記実行体の実行体識別情報を示している
か否かを判別し、前記入れ替え後の管理領域の値が、前
記実行体の実行体識別情報を示している場合には、前記
ロックワードをリセットする。一方、入れ替え後の管理
領域の値が、他の実行体の実行体識別情報を示している
場合には、待ち状態の実行体が存在することを判定し、
前記ロックワードに前記他の実行体の実行体識別情報を
設定すると共に、実行体制御手段に対して、前記他の実
行体の処理再開を依頼する。さらに、処理再開された実
行体に割り当てられている管理領域の値が、前記解放要
求の要求元の実行体の実行体識別情報を示しているか否
かを判別し、処理再開された実行体に割り当てられてい
る管理領域の値が、前記解放要求の要求元の実行体の実
行体識別情報を示している場合には、前記処理再開され
た実行体が、待ち状態にある実行体のうち、最初に使用
権の獲得要求を行った実行体であることを判定する。ま
た、前記処理再開された実行体に割り当てられている管
理領域の値が、前記解放要求の要求元の実行体とは異な
る実行体の実行体識別情報を示している場合には、前記
処理再開された実行体より先に、使用権の獲得要求を行
った実行体が存在するこが判定される。
用権を解放処理している最中(ロックキューヘッダをリ
セットした後であり、ロックワードをリセットする前)
に、使用権の獲得要求が割り込んだ場合には、要求元の
実行体は、永遠に待ち状態(デッドロック)に陥る虞が
ある。このため、本発明では、以下のような手段を講じ
ている。 (1)、使用権の解放処理中に、使用権の獲得要求を行
った実行体の実行体識別情報を登録するロック委譲領域
を、排他制御管理テーブルに設ける。そして、資源管理
手段は、使用権の解放処理が終了すると、前記ロック委
譲領域を参照して、解放処理の途中で使用権の獲得要求
を行った実行体が存在するか否かを判別し、使用権の獲
得要求を行った実行体が存在すれば、前記実行体制御手
段に対して、前記実行体の処理を再開させることを依頼
する。 (2)、資源管理手段は、使用権の解放処理が終了する
と、再度、排他制御テーブルのロックキューヘッダを参
照して、初期値が設定されているか、あるいは実行体識
別情報が設定されているかを判別する。そして、ロック
キューヘッダに、実行体識別情報が設定されている場合
には、前記解放処理の途中で使用権の獲得要求を行った
実行体が存在することを判定し、実行体制御手段に対し
て、実行体識別情報によって特定される実行体の処理を
再開させることを依頼する。 (3)、資源管理手段は、使用権の解放処理を割り込み
禁止処理によって実行する。
図面に沿って説明する。 《実施形態1》共有資源の排他制御方式を実現する計算
機システムの機能別構成を図1に沿って説明する。
体を並列に実行することができるシステムであり、且
つ、スワップ処理機能を有する計算機システムとする。
ここで、スワップ処理機能は、計算機システムの機械
語の一つのスワップ命令として実現される。スワップ命
令が実行されると、オペランドによる指定に応じて、メ
モリとレジスタの間、レジスタとレジスタの間、あるい
は、メモリとメモリの間で、相互に記憶されている値が
交換される。一つの機械語命令を実行中に計算機システ
ムに対して、割り込みが発生すると、割り込みに対する
処理は実行中の機械語命令の処理が完了した後に行われ
る。従って、スワップ命令実行中に割り込みが発生して
も、スワップ処理、即ち値の交換は完全な形で行われ
る。また、当然のこととして、スワップ命令の実行前に
割り込みが発生した場合には、値の交換は行われない。
リ1内に設定された排他制御管理テーブル1aと、レジ
スタ2内に設定された管理領域2aと、計算機のCPU
がプログラムを実行することにより実現される資源管理
部3と、同様にCPUがプログラムを実行することによ
り実現される実行体制御部4とを備えている。
ード領域、ロックキューヘッダ領域、2次キュー領域、
キュー終了値領域、及びロック委譲領域が設定されてい
る。ロックワード領域には、共有資源の使用権を獲得し
た実行体の実行体IDが格納される。また、共有資源の
使用権が空き状態にある場合には、初期値“0”が設定
される。
いて初期値“NULL”を登録するが、ある実行体からの共
有資源の使用権の獲得要求が発生すると、その実行体に
割り当てられている管理領域2aの値(要求元実行体の
実行体ID)と、このロックキューヘッダ領域の値(初
期値“NULL”)とがスワップされて、要求元の実行体の
実行体IDが格納される。さらに、ある実行体が共有資
源の使用権を獲得している間に、他の実行体からの使用
権の獲得要求が発生すると、他の実行体に割り当てられ
ている管理領域2aの値(他の実行体の実行体ID)
と、このロックキューヘッダ領域の値(使用権を獲得し
ている実行体の実行体ID)とがスワップされて、前記
他の実行体の実行体IDが格納される。このように、あ
る一つの実行体が使用権を獲得している間に、他の実行
体からの獲得要求が発生すると、ロックキューヘッダ領
域の値は、次々に更新されていく。これにより、ロック
キューヘッダ領域には、最後に使用権の獲得要求を行っ
た実行体の実行体IDが格納されることになり、その実
行体に割り当てられている管理領域2aには、その実行
体の直前に使用権の獲得要求を行った実行体の実行体I
Dが格納され、さらに、直前の実行体に割り当てられて
いる管理領域2aには、さらに直前に使用権の獲得要求
を行った実行体の実行体IDが格納されることになる。
従って、ロックキューヘッダ領域の値を参照することに
より、最後に使用権の獲得要求を行った実行体から、最
初に使用権の獲得要求を行った実行体までを擬似的な一
方向性キューとして取り扱うことができる(以下、擬似
的な一方向性キューを「1次キュー」と記す)。
を獲得している間に、使用権の獲得要求を行った実行体
を対象としており、使用権が他の実行体へ移転する時点
で、一括デキューされる。すなわち、ロックキューヘッ
ダ領域の値は、使用権が他の実行体へ移転する際に、初
期値“NULL”にリセットされるようになっているため、
ロックキューヘッダ領域と1次キューとのつながりが断
たれてしまう(以下、一括デキューされたキューを「2
次キュー」と記す)。
最後に使用権の獲得要求を行った実行体の実行体IDが
格納される。キュー終了値には、ある実行体が使用権を
獲得した時に、その実行体の実行体IDが設定される。
aが設定されている。そして、各管理領域2aは、個々
の実行体毎に割り当てられ、割り当てられた実行体のみ
がアクセスすることができる領域となっている。そし
て、各領域には、割り当てられた実行体を特定する実行
体IDが格納されている。
ロック処理部3bとから構成されている。ロック処理部
3aは、実行体から共有資源の使用権の獲得要求を受け
ると、メモリ1の内容とレジスタ2の内容とをスワップ
して、要求元の実行体に使用権を付与するか、あるいは
要求元の実行体を1次キューに連結するかを制御する。
ている実行体から、使用権の解放要求を受けると、メモ
リ1の内容とレジスタの内容とをスワップして、使用権
の解放を行う。このとき、1次キューが存在すれば、こ
の1次キューを2次キューへ切り換える。
て、図2に沿って説明する。ロック処理部3aは、ある
実行体から共有資源の使用権の獲得要求とともに、その
実行体の実行体IDを受け取ると、メモリ1の排他制御
管理テーブル1aからロックワード領域の値を読み出
す。そして、読み出されたロックワード値と、受け取っ
た実行体IDとを比較して、一つの実行体が使用権を二
重に獲得することを防止する(S201)。
不一致の場合に限り、処理を続行する。すなわち、管理
領域2aの値(実行体ID)と、排他制御管理テーブル
1aのロックキューヘッダ領域の値とをスワップする
(S202)。
の管理領域2aの値が、ロックキューヘッダ領域の初期
値“NULL”であるか否かを判別する(S203)。ここ
で、ロックキューヘッダ領域の初期値が“NULL”である
ならば、1次キューが存在しないことが判定される。そ
して、ロック処理部3aは、排他制御管理テーブル1a
のロックワード領域の値が初期値“0”であるか否かを
判別する(S204)。
ば、使用権が空き状態にあることが判定される。そし
て、ロック処理部3aは、ロックワード領域に要求元実
行体の実行体IDを設定する(S205)。
存在しないため、キュー終了値領域には、要求元の実行
体の実行体IDが書き込まれる(S206)。これによ
り、要求元の実行体は、共有資源の使用権を獲得したこ
とになる。
域の値が初期値“0”でない場合には、すなわち、実行
体からの使用権の獲得要求が、他の実行体の使用権の解
放処理中に発生した割り込み処理である場合には、要求
元の実行体の実行体IDを排他制御管理テーブル1aの
ロック委譲領域に設定し(S207)、要求元の実行体
の処理を中断させる。
おいては、ロックワード領域の値が初期値“0”に書き
換えられた後に、ロック委譲領域が参照されるので、こ
のロック委譲領域に要求元実行体の実行体IDが格納さ
れていれば、要求元実行体の処理を再開することができ
る。
ると、ロックワード領域の値を参照して、要求元の実行
体の実行体IDが設定されているか否かを判別する(S
208)。ここで、ロックワード領域の値に、要求元の
実行体の実行体IDが設定されていれば、ロック委譲領
域を“0”にリセットし(S209)、ロックワード領
域に要求元の実行体の実行体IDを設定する(S21
0)。さらに、キュー終了値にも、要求元の実行体の実
行体IDが設定される(S211)。これにより、要求
元の実行体は、供給資源の使用権を獲得したことにな
る。
ード領域の値に、要求元の実行体の実行体IDが未だ設
定されていない場合には、実行体制御部4に対して、要
求元の実行体の処理を中断させることを依頼する(S2
12)。その後に、要求元の実行体の処理が再開される
と、ロックワード領域の値が、処理を再開された実行体
の実行体IDであるか否かを判別し(S213)、ロッ
クワード領域の値が処理を再開された実行体の実行体I
Dと一致するならば、ロック委譲領域を“0”にリセッ
トし(S214)、キュー終了値を“NULL”にリセット
し(S215)、さらに2次キュー領域を“NULL”にリ
セットする(S216)。
域の値と、処理を再開された実行体の実行体IDとが不
一致ならば、前述のS208以降の処理を繰り返し行
う。次に、前述のS203において、スワップ後の管理
領域の値が初期値“NULL”でない場合の処理について図
3に沿って説明する。
“NULL”でない場合には、待ち状態の実行体が存在して
いることを示しており、要求元の実行体も待ち状態にす
る必要がある。従って、ロック処理部3aは、実行体制
御部4に対して、要求元の実行体の処理の中断を依頼す
る(S217)。
要求元の実行体の実行体IDが格納されており、要求元
の実行体に割り当てられている管理領域2aには、直前
に使用権の獲得要求を行った実行体の実行体IDが格納
されていることになる。これにより、ロックキューヘッ
ダ領域の値を参照すれば、最後に使用権の獲得要求を行
った実行体を判別することができ、さらにその実行体に
割り当てられている管理領域を参照すれば、その実行体
の直前に使用権の獲得要求を行った実行体を判別するこ
とができる。そして、待ち状態にある実行体のうち、最
初に使用権の獲得要求を行った実行体に割り当てられて
いる管理領域2aには、使用権を獲得している実行体の
実行体IDが格納されていることになる(図5参照)。
本実施形態では、このようなつながりを擬似的な一方向
性キューとして使用する。
用権の解放要求を行うと、ロックキューヘッダ領域に示
されている実行体から順に、処理が再開される。このと
き、処理を再開された実行体の実行体IDと、ロックワ
ード領域の値とを照合し(S218)、双方が一致すれ
ば、処理が再開された実行体に割り当てられている管理
領域2aの値と、排他制御管理テーブル1aのキュー終
了値とが一致するか否か、すなわち、処理を再開された
実行体の他に待ち状態の実行体が存在するか否かを判別
する(S219)。
とが一致すれば、処理を再開された実行体が最後の待ち
キューであることが判定され、キュー終了値を初期値
“NULL”にリセットすると共に(S220)、2次キュ
ー領域を初期値“NULL”にリセットする(S221)。
開された実行体の他に、待ち状態の実行体が存在するこ
とが判定された場合には、処理が再開された実行体に割
り当てられている管理領域2aの値を2次キュー領域に
設定する(S222)。
の処理について説明する。アンロック処理部3bは、使
用権を獲得している実行体から使用権の解放要求を受け
ると、先ず、その実行体の実行体IDとロックワード領
域の実行体IDとを照合し、使用権を獲得していない実
行体からの使用権解放要求を排除する(S401)。
ックワード領域の値とが一致すれば、排他制御管理テー
ブル1aの2次キュー領域を参照し、待ち状態の2次キ
ューが存在するか否かを判別する(S402)。
行体に割り当てられている管理領域2aの値(初期値
“NULL”)と、ロックキューヘッダ領域の値とをスワッ
プする(S403)。
他制御管理テーブル1aのキュー終了値とを比較する。
ここで、双方の値が一致すれば、待ち状態の実行体が存
在しないことが判定され、排他制御管理テーブル1aの
ロックワード領域に初期値“0”がリセットされる(S
405)。
に、割り込み処理による使用権の獲得要求が行われてい
ないか否かを判別するために、排他制御管理テーブル1
aのロックキューヘッダ領域の値が初期値“NULL”のま
まであるか否かを判別する(S406)。
期値“NULL”ならば、使用権の解放処理を終了する。ま
た、上述のS402において、2次キュー領域の値が初
期値“NULL”ではない場合、すなわち、2次キューが存
在する場合には、2次キュー領域に格納されている実行
体IDを、ロックワード領域に設定し(S408)、実
行体制御部4に対して、その実行体の処理を再開させる
ことを依頼する(S409)。
プ後の管理領域2aの値とキュー終了値とが不一致の場
合、すなわち、待ち状態の実行体が存在する場合には、
これらの実行体を2次キューとして取り扱い、スワップ
後の管理領域2aの値を、2次キュー領域に設定し(S
407)、前述のS408及びS409と同様の処理を
行う。
ューヘッダ領域に初期値“NULL”以外の値が格納されて
いる場合には、排他制御管理テーブル1aのロック委譲
領域の値を参照し、割り込み処理による使用権の獲得要
求が発生したか否かを判別する(S410)。ここで、
ロック委譲領域に初期値“NULL”が設定されていれば、
割り込み処理が発生しなかったことが判定され、使用権
の解放処理を終了する。また、ロック委譲領域に、実行
体IDが設定されていれば、割り込み処理による使用権
の獲得要求が発生したことを判定し、実行体制御部4に
対して、その実行体の処理を再開させることを依頼する
(S411)。
のみを用いて、擬似的な一方向性キューを作成すること
ができる。そして、一方向性キューを利用することによ
り、サスペンドロック方式の排他制御を実現することが
できる。
制御管理テーブル1aの構成を図6に示す。同図に示す
ように、排他制御管理テーブル1aは、ロックワード領
域、ロックキューヘッダ領域、2次キュー領域、及びキ
ュー終了値領域を備えている。
を獲得している実行体の実行体IDが格納される。ま
た、共有資源の使用権が空き状態にある場合には、初期
値“0”が設定される。
得に待機している実行体のうち、最後に使用権の獲得要
求を行った実行体の実行体IDが格納される。尚、共有
資源の使用権が空き状態にあり、且つ、待ち状態の実行
体が存在しない場合には、このロックキューヘッダ領域
には、初期値“NULL”が格納される。
後に使用権の獲得要求を行った実行体の実行体IDが格
納される。キュー終了値領域は、ある実行体が使用権を
獲得した時に、その実行体の実行体IDが格納される。
であり、説明は省略する。以下、ロック処理部3aの処
理について図7に沿って説明する。ロック処理部3a
は、ある実行体から共有資源の使用権の獲得要求ととも
に、その実行体の実行体IDを受け取ると、メモリ1の
排他制御管理テーブル1aからロックワード領域の値を
読み出す。そして、読み出されたロックワード値と、受
け取った実行体IDとを比較して、一つの実行体が使用
権を二重に獲得することを防止する(S701)。
不一致の場合に限り、処理を続行する。すなわち、管理
領域2aの値(実行体ID)と、排他制御管理テーブル
1aのロックキューヘッダ領域の値とをスワップする
(S702)。
の管理領域2aの値が、ロックキューヘッダ領域の初期
値“NULL”であるか否かを判別する(S703)。ここ
で、ロックキューヘッダ領域の初期値が“NULL”である
ならば、1次キューが存在しないことが判定される。そ
して、ロック処理部3aは、排他制御管理テーブル1a
のロックワード領域の値が初期値“0”であるか否かを
判別する(S704)。
ば、使用権が空き状態にあることが判定される。そし
て、ロック処理部3aは、ロックワード領域に要求元実
行体の実行体IDを設定する(S705)。
元の実行体の実行体IDが書き込まれる(S706)。
これにより、要求元の実行体は、共有資源の使用権を獲
得したことになる。
域の値が初期値“0”でない場合には、実行体からの使
用権の獲得要求が、他の実行体の使用権の解放処理中に
発生した割り込み処理であることが判定され、実行体制
御部4に対して、要求元の実行体の処理を中断させるこ
とを依頼する(S707)。
終了すると、実行体制御部4に対して、要求元の実行体
の処理の再開を依頼する。ここで、排他制御管理テーブ
ル1aのロックワード領域の値を参照し、この値が初期
値“0”であるか否かを判別する(S708)。
ば、共有資源の使用権が空き状態にあることが判定さ
れ、ロックワード領域に、要求元の実行体の実行体ID
を設定する(S709)。
ー終了値領域に、要求元の実行体の実行体IDを登録す
る(S710)。これにより、要求元の実行体は、共有
資源の使用権を獲得したことになる。
ード領域の値が初期値以外の値の場合には、ロックワー
ド領域の値と、要求元の実行体の実行体IDとを照合す
る(S711)。ここで、双方の値が一致すれば、キュ
ー終了値に初期値“NULL”をリセットし(S712)、
2次キュー領域に初期値“NULL”をリセットする(S7
13)。
域の値と、要求元の実行体の実行体IDとが不一致の場
合には、上述のS707以降の処理を繰り返し行う。こ
こで、上述のS703において、スワップ後の管理領域
2aの値が初期値“NULL”ではない場合の処理について
説明する。
が初期値“NULL”ではない場合には、1次キューが存在
することが判定される。そして、ロック処理部3aは、
実行体制御部4に対して、要求元の実行体の処理を中断
させることを依頼する(S714)。このとき、要求元
の実行体は、1次キューの先頭に連結される。
使用権の解放要求を行うと、1次キューは、一括デキュ
ーされて、2次キューになる。そして、2次キューの先
頭の実行体から順次処理が再開される。このとき、要求
元の実行体の処理も、再開される。
他制御管理テーブル1aのロックワード領域の値と、要
求元の実行体の実行体IDとが照合される(S71
5)。ここで、ロックワード領域に、要求元の実行体の
実行体IDが格納されていれば、要求元の実行体に割り
当てられている管理領域2aと、排他制御管理テーブル
1aのキュー終了値領域とが照合される(S716)。
すれば、要求元の実行体が、2次キューの最後の実行体
であることが判定される。そして、排他制御管理テーブ
ル1aのキュー終了値領域に初期値“NULL”がリセット
され(S717)、2次キュー領域に初期値“NULL”が
リセットされる(S718)。このとき、要求元の実行
体は、共有資源の使用権を獲得したことになる。
2aとキュー終了値とが不一致ならば、2次キューに、
要求元の実行体より先に使用権の獲得要求を行った実行
体が存在することが判定される。そして、要求元の実行
体に割り当てられている管理領域2aに格納されている
実行体IDが、2次キュー領域に設定される(S72
1)。
域に、要求元の実行体の実行体IDが格納されていない
場合には、ロックワード領域の値が初期値“0”である
か否かが判別される(S719)。
外の値ならば、上述のS714以降の処理を繰り返し行
う。また、ロックワード領域の値が初期値“0”なら
ば、要求元の実行体に割り当てられている管理領域2a
に設定されている実行体IDが示す実行体の処理を再開
した後に(S720)、上述のS714以降の処理を繰
り返し行う。
て図9に沿って説明する。アンロック処理部3bは、使
用権を獲得している実行体から、使用権の解放要求と共
に、その実行体の実行体IDを受けると、受けた実行体
IDとロックワード領域の実行体IDとを照合し、使用
権を獲得していない実行体からの使用権解放要求を排除
する(S901)。
ド領域の値とが一致する場合に限り、処理が続行され
る。すなわち、排他制御管理テーブル1aの2次キュー
領域を参照し、待ち状態の2次キューが存在するか否か
を判別する(S902)。
領域に初期値“NULL”が設定されていれば)、要求元の
実行体に割り当てられている管理領域2aの値(“NUL
L”)と、ロックキューヘッダ領域の値とをスワップす
る(S903)。
他制御管理テーブル1aのキュー終了値とを比較する
(S904)。ここで、双方の値が一致すれば、1次キ
ューが存在しないことが判定され、排他制御管理テーブ
ル1aのロックワード領域に初期値“0”がリセットさ
れる(S905)。この時点で、共有資源の使用権は、
解放されたことになる。
割り込み処理による使用権の獲得要求が行われていない
か否かを判別するために、排他制御管理テーブル1aの
ロックキューヘッダ領域の値が初期値“NULL”のままで
あるか否かを判別する(S906)。ここで、ロックキ
ューヘッダ領域の値が初期値“NULL”ならば、処理を終
了する。一方、ロックキューヘッダ領域に、他の実行体
の実行体IDが格納されている場合には、割り込み処理
によって1次キューが作成されたことが判定される。そ
して、1次キューの先頭の実行体(最後に使用権の獲得
要求を行った実行体)の処理を再開させる(S91
0)。
の値が初期値“NULL”ではない場合には、ロックワード
領域に、2次キュー領域に設定されている実行体IDを
設定し(S908)、2次キュー実行体の処理を再開さ
せる(S910)。
実行体に割り当てられている管理領域2aの値がキュー
終了値と不一致の場合には、管理領域2aに格納されて
いる実行体IDを、2次キュー領域に設定した後(S9
07)、上述のS908及びS909と同様の処理を行
う。
域を設けなくても、前述の実施形態1と同等の効果を得
ることができる。 《実施形態3》本実施形態では、使用権の解放処理を割
り込み禁止処理で行う場合について説明する。この場合
の計算機システムの構成は、前述の実施形態2と同様で
あり、説明は省略する。
図10に沿って説明する。ロック処理部3aは、ある実
行体から共有資源の使用権の獲得要求とともに、その実
行体の実行体IDを受け取ると、メモリ1の排他制御管
理テーブル1aからロックワード領域の値を読み出す。
そして、読み出されたロックワード値と、受け取った実
行体IDとを比較して、一つの実行体が使用権を二重に
獲得することを防止する(S1001)。
不一致の場合に限り、処理を続行する。すなわち、管理
領域2aの値(実行体ID)と、排他制御管理テーブル
1aのロックキューヘッダ領域の値とをスワップする
(S1002)。
の管理領域2aの値が、ロックキューヘッダ領域の初期
値“NULL”であるか否かを判別する(S1003)。こ
こで、ロックキューヘッダ領域の初期値が“NULL”であ
るならば、1次キューが存在しないことが判定される。
そして、ロック処理部3aは、排他制御管理テーブル1
aのロックワード領域の値が初期値“0”であるか否か
を判別する(S1004)。
ば、使用権が空き状態にあることが判定される。そし
て、ロック処理部3aは、ロックワード領域に要求元実
行体の実行体IDを設定する(S1005)。
元の実行体の実行体IDが書き込まれる(S100
6)。これにより、要求元の実行体は、共有資源の使用
権を獲得したことになる。
領域の値が初期値“0”でない場合には、実行体からの
使用権の獲得要求が、他の実行体の使用権の解放処理中
に発生した割り込み処理であることが判定され、実行体
制御部4に対して、要求元の実行体の処理を中断させる
ことを依頼する(S1007)。
終了すると、実行体制御部4に対して、要求元の実行体
の処理の再開を依頼する。ここで、排他制御管理テーブ
ル1aのロックワード領域の値を参照し、この値が初期
値“0”であるか否かを判別する(S1008)。
ば、共有資源の使用権が空き状態にあることが判定さ
れ、ロックワード領域に、要求元の実行体の実行体ID
を設定する(S1009)。
ー終了値領域に、要求元の実行体の実行体IDを登録す
る(S1010)。これにより、要求元の実行体は、共
有資源の使用権を獲得したことになる。
ワード領域の値が初期値以外の値の場合には、ロックワ
ード領域の値と、要求元の実行体の実行体IDとを照合
する(S1011)。ここで、双方の値が一致すれば、
キュー終了値に初期値“NULL”をリセットし(S101
2)、2次キュー領域に初期値“NULL”をリセットする
(S1013)。
元の実行体に割り当てられている管理領域2aの値が、
初期値“NULL”ではない場合の処理について図11に沿
って説明する。
“NULL”でない場合には、待ち状態の実行体が存在して
いることを示しており、要求元の実行体も待ち状態にす
る必要がある。従って、ロック処理部3aは、実行体制
御部4に対して、要求元の実行体の処理の中断を依頼す
る(S1014)。
要求元の実行体の実行体IDが格納されており、要求元
の実行体に割り当てられている管理領域2aには、直前
に使用権の獲得要求を行った実行体の実行体IDが格納
されていることになる。
用権の解放要求を行うと、ロックキューヘッダ領域に示
されている実行体から順に、処理が再開される。このと
き、処理が再開された実行体の実行体IDと、ロックワ
ード領域の値とが照合され(S1015)、双方が一致
すれば、処理が再開された実行体に割り当てられている
管理領域2aの値と、排他制御管理テーブル1aのキュ
ー終了値とが一致するか否か、すなわち、処理を再開さ
れた実行体の他に待ち状態の実行体が存在するか否かが
判別される(S1016)。
とが一致すれば、処理の再開された実行体が最後の待ち
キューであることが判定され、キュー終了値を初期値
“NULL”にリセットすると共に(S1017)、2次キ
ュー領域を初期値“NULL”にリセットする(S101
8)。
再開された実行体の他に、待ち状態の実行体が存在する
ことが判定された場合には、処理を再開された実行体に
割り当てられている管理領域2aの値を2次キュー領域
に設定する(S1019)。次に、アンロック処理部3
bの処理について図12に沿って説明する。
ている実行体から、使用権の解放要求と共に、その実行
体の実行体IDを受けると、受けた実行体IDとロック
ワード領域の実行体IDとを照合し、使用権を獲得して
いない実行体からの使用権解放要求を排除する(S12
01)。
ックワード領域の値とが一致する場合に限り、処理が続
行される。すなわち、排他制御管理テーブル1aの2次
キュー領域を参照し、待ち状態の2次キューが存在する
か否かを判別する(S1202)。
領域に初期値“NULL”が設定されていれば)、要求元の
実行体に割り当てられている管理領域2aの値(“NUL
L”)と、ロックキューヘッダ領域の値とをスワップす
る(S1203)。
他制御管理テーブル1aのキュー終了値とを比較する
(S1204)。ここで、双方の値が一致すれば、1次
キューが存在しないことが判定され、排他制御管理テー
ブル1aのロックワード領域に初期値“0”がリセット
される(S1205)。この時点で、共有資源の使用権
は、解放されたことになる。
域の値が初期値“NULL”ではない場合には、2次キュー
が存在することが判定される。このとき、ロックワード
領域には、2次キュー領域に設定されている実行体ID
が設定される(S1207)。さらに、実行体制御部4
に対して、2次キューの実行体の処理を再開することを
依頼する(S1208)。
の実行体に割り当てられている管理領域2aの値が、キ
ュー終了値と不一致の場合には、管理領域2aに格納さ
れている実行体IDを、2次キュー領域に設定した後
(S1206)、上述のS1207及びS1208と同
様の処理を行う。
2のS1203〜S1205までを割り込み禁止処理と
して実行することにより、前述の実施形態1あるいは実
施形態2と同等の効果を得ることができる。
を用意されていない計算機システムでも、スワップ処理
を利用することにより、サスペンドロック方式の排他制
御を行うことができる。
成を示す図
成を示す図
(1)
(2)
Claims (6)
- 【請求項1】 複数の実行体が並列に実行される計算機
システムの共有資源排他制御方式であって、 共有資源の使用権を獲得している実行体を特定する実行
体識別情報を格納するロックワード、及び他の実行体が
使用権を獲得している間にその使用権の獲得要求を行っ
た実行体のうち、最後に獲得要求を行った実行体の実行
体識別情報を格納するロックキューヘッダからなる排他
制御管理テーブルと、 個々の実行体毎に割り当てられ、割り当てられた実行体
の実行体識別情報を格納する管理領域と、 実行体から前記共有資源の使用権の獲得要求を受け付け
たとき、あるいは使用権の解放要求を受け付けたとき
に、要求元の実行体に割り当てられている管理領域の内
容と、前記排他制御管理テーブルのロックキューヘッダ
の内容とを入れ替えることにより、他の実行体が使用権
を獲得している間にその使用権の獲得要求を行った実行
体を連鎖する擬似的な待ち行列を生成する資源管理手段
と、 前記共有資源の使用権を獲得するために待ち状態となる
実行体の処理を中断させるとともに、待ち状態にあった
実行体が使用権を獲得したときに、この実行体の処理を
再開させる実行体制御手段とを備える共有資源の排他制
御方式。 - 【請求項2】 前記資源管理手段は、 前記実行体から前記共有資源の使用権の獲得要求を受け
付けると、 前記実行体に割り当てられている管理領域に格納されて
いる実行体識別情報と、前記排他制御管理テーブルのロ
ックキューヘッダに格納されている値とを入れ替え、 入れ替え後の管理領域の値が、ロックキューヘッダの初
期値であるか否かを判別し、 前記管理領域の値がロックキューヘッダの初期値である
場合には、前記排他制御管理テーブルのロックワード
に、他の実行体の実行体識別情報が格納されているか否
かを判別し、 前記ロックワードに、他の実行体の実行体識別情報が格
納されていなければ、前記ロックワードに前記獲得要求
の要求元の実行体の実行体識別情報を書き込み、 前記管理領域の値がロックキューヘッダの初期値でない
場合には、前記実行体制御手段に対して、前記実行体の
処理を中断させる命令を通知する、請求項1記載の共有
資源の排他制御方式。 - 【請求項3】 前記資源管理手段は、 共有資源の使用権を獲得している実行体から、前記使用
権の解放要求を受け付けると、 前記実行体に割り当てられている管理領域に格納されて
いる値と、前記ロックキューヘッダに格納されている値
とを入れ替え、 入れ替え後の管理領域の値が、前記実行体の実行体識別
情報を示しているか否かを判別し、 前記入れ替え後の管理領域の値が、前記実行体の実行体
識別情報を示している場合には、前記ロックワードをリ
セットし、 前記入れ替え後の管理領域の値が、他の実行体の実行体
識別情報を示している場合には、待ち状態の実行体が存
在することを判定し、前記ロックワードに前記他の実行
体の実行体識別情報を設定し、 前記実行体制御手段に対して、前記他の実行体の処理再
開を依頼し、 前記処理再開された実行体に割り当てられている管理領
域の値が、前記解放要求の要求元の実行体の実行体識別
情報を示しているか否かを判別し、 前記処理再開された実行体に割り当てられている管理領
域の値が、前記解放要求の要求元の実行体の実行体識別
情報を示している場合には、前記処理再開された実行体
が、待ち状態にある実行体のうち、最初に使用権の獲得
要求を行った実行体であることを判定し、 前記処理再開された実行体に割り当てられている管理領
域の値が、前記解放要求の要求元の実行体とは異なる実
行体の実行体識別情報を示している場合には、前記処理
再開された実行体より先に、使用権の獲得要求を行った
実行体が存在することを判定する、請求項1記載の共有
資源の排他制御方式。 - 【請求項4】 使用権の解放処理中に、使用権の獲得要
求を行った実行体の実行体識別情報を登録するロック委
譲領域を、前記排他制御管理テーブルに更に備え、 前記資源管理手段は、 前記使用権の解放処理が終了すると、前記ロック委譲領
域を参照して、解放処理の途中で使用権の獲得要求を行
った実行体が存在するか否かを判別し、 使用権の獲得要求を行った実行体が存在すれば、前記実
行体制御手段に対して、前記実行体の処理を再開させる
ことを依頼する、請求項3記載の共有資源の排他制御方
式。 - 【請求項5】 前記資源管理手段は、 前記使用権の解放処理が終了すると、再度、排他制御テ
ーブルのロックキューヘッダを参照して、初期値が設定
されているか、あるいは実行体識別情報が設定されてい
るかを判別し、 前記ロックキューヘッダに実行体識別情報が設定されて
いれば、前記解放処理の途中で使用権の獲得要求を行っ
た実行体が存在することを判定し、前記実行体制御手段
に対して、前記実行体識別情報によって特定される実行
体の処理を再開させることを依頼する、請求項3記載の
共有資源の排他制御方式。 - 【請求項6】 前記資源管理手段は、 前記使用権の解放処理を割り込み禁止処理によって実行
する請求項3記載の共有資源の排他制御方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25412995A JP3745800B2 (ja) | 1995-09-29 | 1995-09-29 | 共有資源の排他制御方式 |
US08/684,907 US5729749A (en) | 1995-09-29 | 1996-07-25 | Exclusive control system for shared resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25412995A JP3745800B2 (ja) | 1995-09-29 | 1995-09-29 | 共有資源の排他制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0997189A true JPH0997189A (ja) | 1997-04-08 |
JP3745800B2 JP3745800B2 (ja) | 2006-02-15 |
Family
ID=17260633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25412995A Expired - Fee Related JP3745800B2 (ja) | 1995-09-29 | 1995-09-29 | 共有資源の排他制御方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5729749A (ja) |
JP (1) | JP3745800B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9733937B2 (en) | 2004-06-30 | 2017-08-15 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108757A (en) * | 1997-02-28 | 2000-08-22 | Lucent Technologies Inc. | Method for locking a shared resource in multiprocessor system |
US6173375B1 (en) * | 1997-02-28 | 2001-01-09 | Lucent Technologies Inc. | Method for accessing a shared resource in a multiprocessor system |
US5924122A (en) * | 1997-03-14 | 1999-07-13 | Compaq Computer Corp. | Method for error recovery spinlock in asymmetrically accessed multiprocessor shared memory |
US5872981A (en) * | 1997-05-30 | 1999-02-16 | Oracle Corporation | Method for managing termination of a lock-holding process using a waiting lock |
US6308167B1 (en) * | 1998-04-09 | 2001-10-23 | Compaq Computer Corporation | Computer system using a queuing system and method for managing a queue and heterogeneous data structures |
US6189007B1 (en) | 1998-08-28 | 2001-02-13 | International Business Machines Corporation | Method and apparatus for conducting a high performance locking facility in a loosely coupled environment |
US6253274B1 (en) * | 1998-08-28 | 2001-06-26 | International Business Machines Corporation | Apparatus for a high performance locking facility |
US6185650B1 (en) | 1998-08-28 | 2001-02-06 | International Business Machines Corporation | High performance locking facility |
US6401110B1 (en) | 1998-11-30 | 2002-06-04 | International Business Machines Corporation | Method for managing concurrent processes using dual locking |
US6105099A (en) * | 1998-11-30 | 2000-08-15 | International Business Machines Corporation | Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
US6718448B1 (en) * | 2000-11-28 | 2004-04-06 | Emc Corporation | Queued locking of a shared resource using multimodal lock types |
US6609178B1 (en) * | 2000-11-28 | 2003-08-19 | Emc Corporation | Selective validation for queued multimodal locking services |
US6950901B2 (en) * | 2001-01-05 | 2005-09-27 | International Business Machines Corporation | Method and apparatus for supporting parity protection in a RAID clustered environment |
US20070094669A1 (en) * | 2005-10-25 | 2007-04-26 | Microsoft Corporation | Shared resource acquisition |
US7752367B2 (en) * | 2005-12-22 | 2010-07-06 | International Business Machines Corporation | File-based access control for shared hardware devices |
US7506090B2 (en) * | 2006-06-14 | 2009-03-17 | Honeywell International Inc. | System and method for user-configurable resource arbitration in a process control system |
JP5020605B2 (ja) * | 2006-11-16 | 2012-09-05 | 東京エレクトロン株式会社 | 上位制御装置、下位制御装置、画面の操作権付与方法および画面の操作権付与プログラムを記憶した記憶媒体 |
US8327318B2 (en) * | 2007-04-13 | 2012-12-04 | International Business Machines Corporation | Software factory health monitoring |
US8464205B2 (en) * | 2007-04-13 | 2013-06-11 | International Business Machines Corporation | Life cycle of a work packet in a software factory |
US8141040B2 (en) * | 2007-04-13 | 2012-03-20 | International Business Machines Corporation | Assembling work packets within a software factory |
US8566777B2 (en) * | 2007-04-13 | 2013-10-22 | International Business Machines Corporation | Work packet forecasting in a software factory |
US20080256390A1 (en) * | 2007-04-13 | 2008-10-16 | Chaar Jarir K | Project Induction in a Software Factory |
US8296719B2 (en) * | 2007-04-13 | 2012-10-23 | International Business Machines Corporation | Software factory readiness review |
US8359566B2 (en) * | 2007-04-13 | 2013-01-22 | International Business Machines Corporation | Software factory |
US8141030B2 (en) * | 2007-08-07 | 2012-03-20 | International Business Machines Corporation | Dynamic routing and load balancing packet distribution with a software factory |
US8332807B2 (en) * | 2007-08-10 | 2012-12-11 | International Business Machines Corporation | Waste determinants identification and elimination process model within a software factory operating environment |
US9189757B2 (en) * | 2007-08-23 | 2015-11-17 | International Business Machines Corporation | Monitoring and maintaining balance of factory quality attributes within a software factory environment |
US8539437B2 (en) * | 2007-08-30 | 2013-09-17 | International Business Machines Corporation | Security process model for tasks within a software factory |
US8595044B2 (en) * | 2008-05-29 | 2013-11-26 | International Business Machines Corporation | Determining competence levels of teams working within a software |
US8667469B2 (en) * | 2008-05-29 | 2014-03-04 | International Business Machines Corporation | Staged automated validation of work packets inputs and deliverables in a software factory |
US8452629B2 (en) | 2008-07-15 | 2013-05-28 | International Business Machines Corporation | Work packet enabled active project schedule maintenance |
US8527329B2 (en) * | 2008-07-15 | 2013-09-03 | International Business Machines Corporation | Configuring design centers, assembly lines and job shops of a global delivery network into “on demand” factories |
US8140367B2 (en) | 2008-07-22 | 2012-03-20 | International Business Machines Corporation | Open marketplace for distributed service arbitrage with integrated risk management |
US20100023920A1 (en) * | 2008-07-22 | 2010-01-28 | International Business Machines Corporation | Intelligent job artifact set analyzer, optimizer and re-constructor |
US8375370B2 (en) * | 2008-07-23 | 2013-02-12 | International Business Machines Corporation | Application/service event root cause traceability causal and impact analyzer |
US8418126B2 (en) * | 2008-07-23 | 2013-04-09 | International Business Machines Corporation | Software factory semantic reconciliation of data models for work packets |
US8271949B2 (en) * | 2008-07-31 | 2012-09-18 | International Business Machines Corporation | Self-healing factory processes in a software factory |
US8336026B2 (en) * | 2008-07-31 | 2012-12-18 | International Business Machines Corporation | Supporting a work packet request with a specifically tailored IDE |
US8448129B2 (en) * | 2008-07-31 | 2013-05-21 | International Business Machines Corporation | Work packet delegation in a software factory |
WO2010031976A1 (fr) * | 2008-09-22 | 2010-03-25 | France Telecom | Procède d'allocation de mémoire et procède de gestion de données associe a une application enregistrée dans un module de sécurité associe a un terminal, module de sécurité et terminal associes |
US20100169618A1 (en) * | 2008-12-30 | 2010-07-01 | Microsoft Corporation | Identifying concurrency control from a sequential proof |
CN101482833B (zh) * | 2009-02-18 | 2011-06-15 | 杭州华三通信技术有限公司 | 涉及临界资源的中断处理方法和装置及实时操作*** |
US8407073B2 (en) | 2010-08-25 | 2013-03-26 | International Business Machines Corporation | Scheduling resources from a multi-skill multi-level human resource pool |
US8660878B2 (en) | 2011-06-15 | 2014-02-25 | International Business Machines Corporation | Model-driven assignment of work to a software factory |
US8718807B2 (en) | 2012-03-23 | 2014-05-06 | Honeywell International Inc. | System and method for robust real-time control of regular automated production using master recipe |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134886A (ja) * | 1990-11-30 | 1993-06-01 | Fujitsu Ltd | デツドロツク検出方式 |
-
1995
- 1995-09-29 JP JP25412995A patent/JP3745800B2/ja not_active Expired - Fee Related
-
1996
- 1996-07-25 US US08/684,907 patent/US5729749A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9733937B2 (en) | 2004-06-30 | 2017-08-15 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
Also Published As
Publication number | Publication date |
---|---|
US5729749A (en) | 1998-03-17 |
JP3745800B2 (ja) | 2006-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3745800B2 (ja) | 共有資源の排他制御方式 | |
JP4042945B2 (ja) | 共用資源を非同期的に更新するためのインターフェース・システムおよび方法 | |
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
JP2514299B2 (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
EP2284703B1 (en) | Scheduling of tasks in a parallel computer system according to defined policies | |
EP0969380A2 (en) | Method for efficient non-virtual main memory management | |
US20070198628A1 (en) | Cell processor methods and apparatus | |
JPH0533410B2 (ja) | ||
JPH0954754A (ja) | 疎結合並列処理環境における顧客情報制御システム及び方法 | |
JPH04308961A (ja) | 占有されたプロセスの同期ロックの状態を通知するための手段及び装置 | |
JPH0962635A (ja) | 疎結合並列処理環境においてトランザクション直列化制御機能を有する顧客情報制御システム及び方法 | |
JP5213485B2 (ja) | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
JP2684993B2 (ja) | プロセッサシステムとその制御方法 | |
JP5553685B2 (ja) | 情報処理装置および情報処理方法 | |
EP1393162A2 (en) | Method and system for tracking and recycling physical register assignment | |
JPH0519179B2 (ja) | ||
JPH0115899B2 (ja) | ||
JPH0376500B2 (ja) | ||
JP2011248469A (ja) | 情報処理装置および情報処理方法 | |
JPH07105120A (ja) | 入出力制御装置 | |
JPS62177653A (ja) | 共有メモリ制御方式 | |
CN118260051A (zh) | 线程访问控制设备、方法与计算设备 | |
JPH0376497B2 (ja) | ||
JP3764282B2 (ja) | プログラム制御システムの制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050523 |
|
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: 20051101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101202 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |