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
Application number
JP7254129A
Other languages
English (en)
Other versions
JP3745800B2 (ja
Inventor
Atsuki Itou
淳樹 伊藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP25412995A priority Critical patent/JP3745800B2/ja
Priority to US08/684,907 priority patent/US5729749A/en
Publication of JPH0997189A publication Critical patent/JPH0997189A/ja
Application granted granted Critical
Publication of JP3745800B2 publication Critical patent/JP3745800B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

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

(57)【要約】 【課題】本発明は、特殊なシリアライズ命令を備えてい
ない計算機でも、アトミックにスワップ処理を行える計
算機であれば、サスペンドロックを実現できる技術を提
供することを課題とする。 【解決手段】共有資源の使用権を獲得している実行体を
特定する実行体識別情報を格納するロックワード、及び
使用権を獲得するために待ち合わせている実行体のう
ち、最後に獲得要求を行った実行体の実行体識別情報を
格納するロックキューヘッダからなる排他制御管理テー
ブルと、個々の実行体毎に割り当てられ、割り当てられ
た実行体を特定する実行体識別情報を格納する管理領域
と、実行体から使用権獲得要求を受け付けたときに、要
求元の実行体の管理領域の内容と、排他制御管理テーブ
ルのロックキューヘッダの内容とをスワップすることに
より、擬似的な待ち行列を生成する資源管理手段と、実
行体の処理を中断/再開させる実行体制御手段とを備え
ている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、スワップ処理が可
能な計算機システムにおいて高速なサスペンドロックを
実現する技術に関する。
【0002】
【従来の技術】複数の実行体を並列に起動する計算機に
おいては、各実行体が共通に使用できる共有資源が用意
されている。そして、各実行体は、共有資源を使用する
際に、共有資源を排他的に使用する権利(以下、「使用
権」と記す)を獲得した上で、共有資源を使用する。
尚、ここでいう実行体とは、タスクやスレッド等を示す
ものとする。
【0003】従来、共有資源の排他制御の方法として
は、スピンロック等のビジーウェイト方式が使用されて
いるが、この方式では、使用権の待ち合わせ処理に、ル
ープ処理が必要となるため、CPUを無駄に使用すると
いう問題がある。
【0004】また、実行優先度が異なる実行体同士で、
使用権獲得のための競合が発生すると、二次的デッドロ
ックが発生する虞がある。すなわち、例えば、実行優先
度の低い実行体が使用権を獲得している際に、実行優先
度の高い実行体からの使用権の獲得要求が発生すると、
実行優先度の高い実行体の使用権獲得処理において、ス
ピンループ処理が永遠に実行され続け、二次デッドロッ
クが発生する虞がある。
【0005】上記の問題を解決するために、サスペンド
ロックと呼ばれる処理がある。このサスペンドロックで
は、使用権の待ち合わせを行う実行体の処理を中断し
て、その処理からCPUを解放する。そして、使用権を
解放する実行体が、待ち実行体の処理を再開させること
により、待ち状態の実行体にCPU資源が再度割り当て
られて、その実行体の処理が再開される。
【0006】このサスペンドロック方式によれば、実行
体の待ち合わせを行う際に、その実行体の処理からCP
Uを解放することにより、CPU資源を無駄に消費する
ことがなくなるという利点がある。
【0007】
【発明が解決しようとする課題】ところで、上記のサス
ペンドロック方式では、使用権を解放する実行体が、待
ち実行体へ使用権を委譲する際に、委譲すべき実行体を
判別するための使用権待ち行列を必要とする。この待ち
行列の作成は、コンペアスワップ命令等の特殊なシリア
ライズ命令を使用したり、割り込み禁止処理等を使用し
て行われている。このため、コンペアスワップ命令等の
特殊なシリアライズ命令が用意されていないと、サスペ
ンドロックを実現できないという問題がある。
【0008】そこで、本発明は、特殊なシリアライズ命
令を備えていない計算機でも、アトミックにスワップ処
理を行える計算機であれば、サスペンドロックを実現で
きる技術を提供することを課題とする。
【0009】
【課題を解決するための手段】本発明は、前記課題を解
決するために以下のようにした。すなわち、共有資源の
排他制御方式は、排他制御管理テーブル、個々の実行体
に割り当てられる管理領域、資源管理手段、及び実行体
制御手段を備えている。
【0010】排他制御テーブルは、共有資源の使用権を
獲得している実行体を特定する実行体識別情報を格納す
るロックワード、及び他の実行体が使用権を獲得してい
る間にその使用権の獲得要求を行った実行体のうち、最
後に獲得要求を行った実行体の実行体識別情報を格納す
るロックキューヘッダを備えている。
【0011】管理領域は、各実行体毎に割り当てられる
記憶領域であり、各記憶領域には、割り当てられた実行
体の実行体識別情報が格納される。ここで、ロックワー
ドには、共有資源の使用権が空き状態にある場合には、
初期値が設定されている。そして、ある実行体が共有資
源の使用権を獲得したときに、その実行体の実行体識別
情報が設定される。さらに、ロックワードは、使用権を
獲得している実行体が使用権を解放したときにリセット
されるが、このとき、使用権が空くのを待っていた実行
体が存在すると、その実行体の実行体識別情報が書き込
まれることになる。
【0012】ロックキューヘッダには、共有資源の使用
権が空き状態にある場合には、初期値が設定されてい
る。そして、ある実行体からの使用権の獲得要求が発生
すると、その実行体に割り当てられている管理領域の値
と入れ替えられる(スワップ処理)。例えば、使用権が
空き状態にあり、ロックキューヘッダに初期値が設定さ
れているときに、ある実行体Aからの使用権の獲得要求
が発生すると、実行体Aに割り当てられている管理領域
に設定されている実行体識別情報“A”と、ロックキュ
ーヘッダの初期値とが入れ替えられる。そして、実行体
Aが使用権を獲得している間に、実行体Bからの使用権
の獲得要求が発生すると、実行体Bに割り当てられてい
る管理領域に設定されている実行体識別情報“B”と、
ロックキューヘッダの値“A”とが入れ替えられる。こ
のとき、ロックキューヘッダには、実行体識別情報
“B”が設定され、実行体Bの管理領域には、実行体識
別情報“A”が設定されることになる。さらに、実行体
Cからの使用権の獲得要求が発生すると、ロックキュー
ヘッダの値”B”と、実行体Cに割り当てられている管
理領域に設定されている実行体識別情報“C”とがスワ
ップされる。このとき、ロックキューヘッダには、実行
体識別情報“C”が設定され、実行体Cの管理領域には
実行体識別情報“B”が設定され、さらに実行体Bの管
理領域には実行体識別情報“A”が設定されることにな
る。このように、ロックキューヘッダと管理領域とのス
ワップ処理を実行することにより、ロックキューヘッダ
→実行体C→実行体Bの連鎖が発生し、これを擬似的な
一方向性待ち行列として使用することができる。
【0013】そして、資源管理手段は、使用権の獲得要
求を受け付けたときに、前述したような入れ替え処理
(スワップ処理)を実行して、擬似的な待ち行列を生成
する。また、使用権の解放要求を受け付けたときには、
待ち行列を利用して、使用権の移転を行う。
【0014】実行体制御手段は、待ち状態になった実行
体の処理を中断する。そして、待ち状態の実行体に使用
権が移転されると、その実行体の処理を再開させる。こ
の実行体制御手段は、例えば、各実行体毎に、各実行体
の状態管理テーブルを有し、状態管理テーブルの状態識
別情報を書き換えることにより、処理の中断あるいは処
理の再開を実現することができる。
【0015】また、前記資源管理手段は、実行体から使
用権の獲得要求を受け付けると、その実行体に割り当て
られている管理領域に設定されている実行体識別情報
と、前記排他制御管理テーブルのロックキューヘッダに
格納されている値とを入れ替える。そして、入れ替え後
の管理領域の値が、ロックキューヘッダの初期値である
か否かを判別することにより、待ち状態の実行体が存在
しているか否かを判別する。すなわち、入れ替え後の管
理領域に、ロックキューヘッダの初期値が設定されてい
る場合には、待ち状態の実行体が存在しないことを判定
する。一方、入れ替え後の管理領域に、他の実行体の実
行体識別情報が設定されている場合には、待ち状態の実
行体が存在していることを判定する。この場合には、資
源管理手段は、実行体制御手段に対して、要求元の実行
体の処理の中断を依頼し、要求元の実行体を待ち状態に
する。
【0016】待ち状態の実行体が存在しない場合には、
ロックワードの値を参照して、使用権が空き状態にある
か否かを判別する。ここで、ロックワードに初期値が設
定されていれば、使用権が空き状態にあることが判定さ
れる。そして、ロックワードには、要求元の実行体の実
行体識別情報が格納される。これにより、要求元の実行
体は、共有資源の使用権を獲得したことになる。
【0017】ロックワードに他の実行体の実行体識別情
報が格納されていれば、他の実行体が使用権を獲得して
いる状態にあることが判定される。そして、要求元の実
行体は、処理を中断されて待ち状態になる。具体的に
は、ロックキューヘッダに初期値が設定され、且つロッ
クワードに他の実行体の実行体識別情報が格納されてい
るケースとしては、他の実行体の使用権を解放処理して
いる最中(ロックキューヘッダをリセットした後であ
り、ロックワードをリセットする前)に、割り込んだケ
ースが考えられる。
【0018】ここで、本発明における使用権の解放手順
について述べる。資源管理手段は、共有資源の使用権を
獲得している実行体から、前記使用権の解放要求を受け
付けると、その実行体に割り当てられている管理領域に
設定されている値と、前記ロックキューヘッダに設定さ
れている値とを入れ替える。そして、入れ替え後の管理
領域の値が、前記実行体の実行体識別情報を示している
か否かを判別し、前記入れ替え後の管理領域の値が、前
記実行体の実行体識別情報を示している場合には、前記
ロックワードをリセットする。一方、入れ替え後の管理
領域の値が、他の実行体の実行体識別情報を示している
場合には、待ち状態の実行体が存在することを判定し、
前記ロックワードに前記他の実行体の実行体識別情報を
設定すると共に、実行体制御手段に対して、前記他の実
行体の処理再開を依頼する。さらに、処理再開された実
行体に割り当てられている管理領域の値が、前記解放要
求の要求元の実行体の実行体識別情報を示しているか否
かを判別し、処理再開された実行体に割り当てられてい
る管理領域の値が、前記解放要求の要求元の実行体の実
行体識別情報を示している場合には、前記処理再開され
た実行体が、待ち状態にある実行体のうち、最初に使用
権の獲得要求を行った実行体であることを判定する。ま
た、前記処理再開された実行体に割り当てられている管
理領域の値が、前記解放要求の要求元の実行体とは異な
る実行体の実行体識別情報を示している場合には、前記
処理再開された実行体より先に、使用権の獲得要求を行
った実行体が存在するこが判定される。
【0019】このような流れにおいて、他の実行体の使
用権を解放処理している最中(ロックキューヘッダをリ
セットした後であり、ロックワードをリセットする前)
に、使用権の獲得要求が割り込んだ場合には、要求元の
実行体は、永遠に待ち状態(デッドロック)に陥る虞が
ある。このため、本発明では、以下のような手段を講じ
ている。 (1)、使用権の解放処理中に、使用権の獲得要求を行
った実行体の実行体識別情報を登録するロック委譲領域
を、排他制御管理テーブルに設ける。そして、資源管理
手段は、使用権の解放処理が終了すると、前記ロック委
譲領域を参照して、解放処理の途中で使用権の獲得要求
を行った実行体が存在するか否かを判別し、使用権の獲
得要求を行った実行体が存在すれば、前記実行体制御手
段に対して、前記実行体の処理を再開させることを依頼
する。 (2)、資源管理手段は、使用権の解放処理が終了する
と、再度、排他制御テーブルのロックキューヘッダを参
照して、初期値が設定されているか、あるいは実行体識
別情報が設定されているかを判別する。そして、ロック
キューヘッダに、実行体識別情報が設定されている場合
には、前記解放処理の途中で使用権の獲得要求を行った
実行体が存在することを判定し、実行体制御手段に対し
て、実行体識別情報によって特定される実行体の処理を
再開させることを依頼する。 (3)、資源管理手段は、使用権の解放処理を割り込み
禁止処理によって実行する。
【0020】
【発明の実施の形態】以下、本発明の実施形態について
図面に沿って説明する。 《実施形態1》共有資源の排他制御方式を実現する計算
機システムの機能別構成を図1に沿って説明する。
【0021】同図に示す計算機システムは、複数の実行
体を並列に実行することができるシステムであり、且
つ、スワップ処理機能を有する計算機システムとする。
ここで、スワップ処理機能は、計算機システムの機械
語の一つのスワップ命令として実現される。スワップ命
令が実行されると、オペランドによる指定に応じて、メ
モリとレジスタの間、レジスタとレジスタの間、あるい
は、メモリとメモリの間で、相互に記憶されている値が
交換される。一つの機械語命令を実行中に計算機システ
ムに対して、割り込みが発生すると、割り込みに対する
処理は実行中の機械語命令の処理が完了した後に行われ
る。従って、スワップ命令実行中に割り込みが発生して
も、スワップ処理、即ち値の交換は完全な形で行われ
る。また、当然のこととして、スワップ命令の実行前に
割り込みが発生した場合には、値の交換は行われない。
【0022】そして、計算機システムは、計算機のメモ
リ1内に設定された排他制御管理テーブル1aと、レジ
スタ2内に設定された管理領域2aと、計算機のCPU
がプログラムを実行することにより実現される資源管理
部3と、同様にCPUがプログラムを実行することによ
り実現される実行体制御部4とを備えている。
【0023】排他制御管理テーブル1aには、ロックワ
ード領域、ロックキューヘッダ領域、2次キュー領域、
キュー終了値領域、及びロック委譲領域が設定されてい
る。ロックワード領域には、共有資源の使用権を獲得し
た実行体の実行体IDが格納される。また、共有資源の
使用権が空き状態にある場合には、初期値“0”が設定
される。
【0024】ロックキューヘッダ領域は、初期状態にお
いて初期値“NULL”を登録するが、ある実行体からの共
有資源の使用権の獲得要求が発生すると、その実行体に
割り当てられている管理領域2aの値(要求元実行体の
実行体ID)と、このロックキューヘッダ領域の値(初
期値“NULL”)とがスワップされて、要求元の実行体の
実行体IDが格納される。さらに、ある実行体が共有資
源の使用権を獲得している間に、他の実行体からの使用
権の獲得要求が発生すると、他の実行体に割り当てられ
ている管理領域2aの値(他の実行体の実行体ID)
と、このロックキューヘッダ領域の値(使用権を獲得し
ている実行体の実行体ID)とがスワップされて、前記
他の実行体の実行体IDが格納される。このように、あ
る一つの実行体が使用権を獲得している間に、他の実行
体からの獲得要求が発生すると、ロックキューヘッダ領
域の値は、次々に更新されていく。これにより、ロック
キューヘッダ領域には、最後に使用権の獲得要求を行っ
た実行体の実行体IDが格納されることになり、その実
行体に割り当てられている管理領域2aには、その実行
体の直前に使用権の獲得要求を行った実行体の実行体I
Dが格納され、さらに、直前の実行体に割り当てられて
いる管理領域2aには、さらに直前に使用権の獲得要求
を行った実行体の実行体IDが格納されることになる。
従って、ロックキューヘッダ領域の値を参照することに
より、最後に使用権の獲得要求を行った実行体から、最
初に使用権の獲得要求を行った実行体までを擬似的な一
方向性キューとして取り扱うことができる(以下、擬似
的な一方向性キューを「1次キュー」と記す)。
【0025】尚、1次キューは、一つの実行体が使用権
を獲得している間に、使用権の獲得要求を行った実行体
を対象としており、使用権が他の実行体へ移転する時点
で、一括デキューされる。すなわち、ロックキューヘッ
ダ領域の値は、使用権が他の実行体へ移転する際に、初
期値“NULL”にリセットされるようになっているため、
ロックキューヘッダ領域と1次キューとのつながりが断
たれてしまう(以下、一括デキューされたキューを「2
次キュー」と記す)。
【0026】2次キュー領域には、2次キューのうち、
最後に使用権の獲得要求を行った実行体の実行体IDが
格納される。キュー終了値には、ある実行体が使用権を
獲得した時に、その実行体の実行体IDが設定される。
【0027】また、レジスタ2には、複数の管理領域2
aが設定されている。そして、各管理領域2aは、個々
の実行体毎に割り当てられ、割り当てられた実行体のみ
がアクセスすることができる領域となっている。そし
て、各領域には、割り当てられた実行体を特定する実行
体IDが格納されている。
【0028】資源管理部3は、ロック処理部3aとアン
ロック処理部3bとから構成されている。ロック処理部
3aは、実行体から共有資源の使用権の獲得要求を受け
ると、メモリ1の内容とレジスタ2の内容とをスワップ
して、要求元の実行体に使用権を付与するか、あるいは
要求元の実行体を1次キューに連結するかを制御する。
【0029】アンロック処理部3bは、使用権を獲得し
ている実行体から、使用権の解放要求を受けると、メモ
リ1の内容とレジスタの内容とをスワップして、使用権
の解放を行う。このとき、1次キューが存在すれば、こ
の1次キューを2次キューへ切り換える。
【0030】ここで、ロック処理部3aの処理につい
て、図2に沿って説明する。ロック処理部3aは、ある
実行体から共有資源の使用権の獲得要求とともに、その
実行体の実行体IDを受け取ると、メモリ1の排他制御
管理テーブル1aからロックワード領域の値を読み出
す。そして、読み出されたロックワード値と、受け取っ
た実行体IDとを比較して、一つの実行体が使用権を二
重に獲得することを防止する(S201)。
【0031】ここで、ロックワード値と実行体IDとが
不一致の場合に限り、処理を続行する。すなわち、管理
領域2aの値(実行体ID)と、排他制御管理テーブル
1aのロックキューヘッダ領域の値とをスワップする
(S202)。
【0032】続いて、ロック処理部3aは、スワップ後
の管理領域2aの値が、ロックキューヘッダ領域の初期
値“NULL”であるか否かを判別する(S203)。ここ
で、ロックキューヘッダ領域の初期値が“NULL”である
ならば、1次キューが存在しないことが判定される。そ
して、ロック処理部3aは、排他制御管理テーブル1a
のロックワード領域の値が初期値“0”であるか否かを
判別する(S204)。
【0033】ロックワード領域の値が初期値“0”なら
ば、使用権が空き状態にあることが判定される。そし
て、ロック処理部3aは、ロックワード領域に要求元実
行体の実行体IDを設定する(S205)。
【0034】この時点では、1次キューも2次キューも
存在しないため、キュー終了値領域には、要求元の実行
体の実行体IDが書き込まれる(S206)。これによ
り、要求元の実行体は、共有資源の使用権を獲得したこ
とになる。
【0035】上述のS204において、ロックワード領
域の値が初期値“0”でない場合には、すなわち、実行
体からの使用権の獲得要求が、他の実行体の使用権の解
放処理中に発生した割り込み処理である場合には、要求
元の実行体の実行体IDを排他制御管理テーブル1aの
ロック委譲領域に設定し(S207)、要求元の実行体
の処理を中断させる。
【0036】そして、他の実行体の使用権の解放処理に
おいては、ロックワード領域の値が初期値“0”に書き
換えられた後に、ロック委譲領域が参照されるので、こ
のロック委譲領域に要求元実行体の実行体IDが格納さ
れていれば、要求元実行体の処理を再開することができ
る。
【0037】そこで、要求元の実行体の処理が再開され
ると、ロックワード領域の値を参照して、要求元の実行
体の実行体IDが設定されているか否かを判別する(S
208)。ここで、ロックワード領域の値に、要求元の
実行体の実行体IDが設定されていれば、ロック委譲領
域を“0”にリセットし(S209)、ロックワード領
域に要求元の実行体の実行体IDを設定する(S21
0)。さらに、キュー終了値にも、要求元の実行体の実
行体IDが設定される(S211)。これにより、要求
元の実行体は、供給資源の使用権を獲得したことにな
る。
【0038】また、上述のS208において、ロックワ
ード領域の値に、要求元の実行体の実行体IDが未だ設
定されていない場合には、実行体制御部4に対して、要
求元の実行体の処理を中断させることを依頼する(S2
12)。その後に、要求元の実行体の処理が再開される
と、ロックワード領域の値が、処理を再開された実行体
の実行体IDであるか否かを判別し(S213)、ロッ
クワード領域の値が処理を再開された実行体の実行体I
Dと一致するならば、ロック委譲領域を“0”にリセッ
トし(S214)、キュー終了値を“NULL”にリセット
し(S215)、さらに2次キュー領域を“NULL”にリ
セットする(S216)。
【0039】また、S213において、ロックワード領
域の値と、処理を再開された実行体の実行体IDとが不
一致ならば、前述のS208以降の処理を繰り返し行
う。次に、前述のS203において、スワップ後の管理
領域の値が初期値“NULL”でない場合の処理について図
3に沿って説明する。
【0040】先ず、スワップ後の管理領域の値が初期値
“NULL”でない場合には、待ち状態の実行体が存在して
いることを示しており、要求元の実行体も待ち状態にす
る必要がある。従って、ロック処理部3aは、実行体制
御部4に対して、要求元の実行体の処理の中断を依頼す
る(S217)。
【0041】このとき、ロックキューヘッダ領域には、
要求元の実行体の実行体IDが格納されており、要求元
の実行体に割り当てられている管理領域2aには、直前
に使用権の獲得要求を行った実行体の実行体IDが格納
されていることになる。これにより、ロックキューヘッ
ダ領域の値を参照すれば、最後に使用権の獲得要求を行
った実行体を判別することができ、さらにその実行体に
割り当てられている管理領域を参照すれば、その実行体
の直前に使用権の獲得要求を行った実行体を判別するこ
とができる。そして、待ち状態にある実行体のうち、最
初に使用権の獲得要求を行った実行体に割り当てられて
いる管理領域2aには、使用権を獲得している実行体の
実行体IDが格納されていることになる(図5参照)。
本実施形態では、このようなつながりを擬似的な一方向
性キューとして使用する。
【0042】そして、使用権を獲得している実行体が使
用権の解放要求を行うと、ロックキューヘッダ領域に示
されている実行体から順に、処理が再開される。このと
き、処理を再開された実行体の実行体IDと、ロックワ
ード領域の値とを照合し(S218)、双方が一致すれ
ば、処理が再開された実行体に割り当てられている管理
領域2aの値と、排他制御管理テーブル1aのキュー終
了値とが一致するか否か、すなわち、処理を再開された
実行体の他に待ち状態の実行体が存在するか否かを判別
する(S219)。
【0043】ここで、管理領域2aの値とキュー終了値
とが一致すれば、処理を再開された実行体が最後の待ち
キューであることが判定され、キュー終了値を初期値
“NULL”にリセットすると共に(S220)、2次キュ
ー領域を初期値“NULL”にリセットする(S221)。
【0044】また、上述のS219において、処理が再
開された実行体の他に、待ち状態の実行体が存在するこ
とが判定された場合には、処理が再開された実行体に割
り当てられている管理領域2aの値を2次キュー領域に
設定する(S222)。
【0045】次に、図4に沿ってアンロック処理部3b
の処理について説明する。アンロック処理部3bは、使
用権を獲得している実行体から使用権の解放要求を受け
ると、先ず、その実行体の実行体IDとロックワード領
域の実行体IDとを照合し、使用権を獲得していない実
行体からの使用権解放要求を排除する(S401)。
【0046】ここで、要求元の実行体の実行体IDとロ
ックワード領域の値とが一致すれば、排他制御管理テー
ブル1aの2次キュー領域を参照し、待ち状態の2次キ
ューが存在するか否かを判別する(S402)。
【0047】2次キューが存在しなければ、要求元の実
行体に割り当てられている管理領域2aの値(初期値
“NULL”)と、ロックキューヘッダ領域の値とをスワッ
プする(S403)。
【0048】そして、スワップ後の管理領域の値と、排
他制御管理テーブル1aのキュー終了値とを比較する。
ここで、双方の値が一致すれば、待ち状態の実行体が存
在しないことが判定され、排他制御管理テーブル1aの
ロックワード領域に初期値“0”がリセットされる(S
405)。
【0049】さらに、上述のS403〜S405の間
に、割り込み処理による使用権の獲得要求が行われてい
ないか否かを判別するために、排他制御管理テーブル1
aのロックキューヘッダ領域の値が初期値“NULL”のま
まであるか否かを判別する(S406)。
【0050】ここで、ロックキューヘッダ領域の値が初
期値“NULL”ならば、使用権の解放処理を終了する。ま
た、上述のS402において、2次キュー領域の値が初
期値“NULL”ではない場合、すなわち、2次キューが存
在する場合には、2次キュー領域に格納されている実行
体IDを、ロックワード領域に設定し(S408)、実
行体制御部4に対して、その実行体の処理を再開させる
ことを依頼する(S409)。
【0051】さらに、上述のS404において、スワッ
プ後の管理領域2aの値とキュー終了値とが不一致の場
合、すなわち、待ち状態の実行体が存在する場合には、
これらの実行体を2次キューとして取り扱い、スワップ
後の管理領域2aの値を、2次キュー領域に設定し(S
407)、前述のS408及びS409と同様の処理を
行う。
【0052】また、上述のS406において、ロックキ
ューヘッダ領域に初期値“NULL”以外の値が格納されて
いる場合には、排他制御管理テーブル1aのロック委譲
領域の値を参照し、割り込み処理による使用権の獲得要
求が発生したか否かを判別する(S410)。ここで、
ロック委譲領域に初期値“NULL”が設定されていれば、
割り込み処理が発生しなかったことが判定され、使用権
の解放処理を終了する。また、ロック委譲領域に、実行
体IDが設定されていれば、割り込み処理による使用権
の獲得要求が発生したことを判定し、実行体制御部4に
対して、その実行体の処理を再開させることを依頼する
(S411)。
【0053】以上、本実施形態によれば、スワップ処理
のみを用いて、擬似的な一方向性キューを作成すること
ができる。そして、一方向性キューを利用することによ
り、サスペンドロック方式の排他制御を実現することが
できる。
【0054】《実施形態2》本実施形態2における排他
制御管理テーブル1aの構成を図6に示す。同図に示す
ように、排他制御管理テーブル1aは、ロックワード領
域、ロックキューヘッダ領域、2次キュー領域、及びキ
ュー終了値領域を備えている。
【0055】ロックワード領域には、共有資源の使用権
を獲得している実行体の実行体IDが格納される。ま
た、共有資源の使用権が空き状態にある場合には、初期
値“0”が設定される。
【0056】ロックキューヘッダ領域には、使用権の獲
得に待機している実行体のうち、最後に使用権の獲得要
求を行った実行体の実行体IDが格納される。尚、共有
資源の使用権が空き状態にあり、且つ、待ち状態の実行
体が存在しない場合には、このロックキューヘッダ領域
には、初期値“NULL”が格納される。
【0057】2次キュー領域は、2次キューのうち、最
後に使用権の獲得要求を行った実行体の実行体IDが格
納される。キュー終了値領域は、ある実行体が使用権を
獲得した時に、その実行体の実行体IDが格納される。
【0058】その他の構成は、前述の実施形態1と同様
であり、説明は省略する。以下、ロック処理部3aの処
理について図7に沿って説明する。ロック処理部3a
は、ある実行体から共有資源の使用権の獲得要求ととも
に、その実行体の実行体IDを受け取ると、メモリ1の
排他制御管理テーブル1aからロックワード領域の値を
読み出す。そして、読み出されたロックワード値と、受
け取った実行体IDとを比較して、一つの実行体が使用
権を二重に獲得することを防止する(S701)。
【0059】ここで、ロックワード値と実行体IDとが
不一致の場合に限り、処理を続行する。すなわち、管理
領域2aの値(実行体ID)と、排他制御管理テーブル
1aのロックキューヘッダ領域の値とをスワップする
(S702)。
【0060】続いて、ロック処理部3aは、スワップ後
の管理領域2aの値が、ロックキューヘッダ領域の初期
値“NULL”であるか否かを判別する(S703)。ここ
で、ロックキューヘッダ領域の初期値が“NULL”である
ならば、1次キューが存在しないことが判定される。そ
して、ロック処理部3aは、排他制御管理テーブル1a
のロックワード領域の値が初期値“0”であるか否かを
判別する(S704)。
【0061】ロックワード領域の値が初期値“0”なら
ば、使用権が空き状態にあることが判定される。そし
て、ロック処理部3aは、ロックワード領域に要求元実
行体の実行体IDを設定する(S705)。
【0062】この時点で、キュー終了値領域には、要求
元の実行体の実行体IDが書き込まれる(S706)。
これにより、要求元の実行体は、共有資源の使用権を獲
得したことになる。
【0063】上述のS704において、ロックワード領
域の値が初期値“0”でない場合には、実行体からの使
用権の獲得要求が、他の実行体の使用権の解放処理中に
発生した割り込み処理であることが判定され、実行体制
御部4に対して、要求元の実行体の処理を中断させるこ
とを依頼する(S707)。
【0064】そして、他の実行体の使用権の解放処理が
終了すると、実行体制御部4に対して、要求元の実行体
の処理の再開を依頼する。ここで、排他制御管理テーブ
ル1aのロックワード領域の値を参照し、この値が初期
値“0”であるか否かを判別する(S708)。
【0065】ロックワード領域の値が初期値“0”なら
ば、共有資源の使用権が空き状態にあることが判定さ
れ、ロックワード領域に、要求元の実行体の実行体ID
を設定する(S709)。
【0066】そして、排他制御管理テーブル1aのキュ
ー終了値領域に、要求元の実行体の実行体IDを登録す
る(S710)。これにより、要求元の実行体は、共有
資源の使用権を獲得したことになる。
【0067】また、上述のS708において、ロックワ
ード領域の値が初期値以外の値の場合には、ロックワー
ド領域の値と、要求元の実行体の実行体IDとを照合す
る(S711)。ここで、双方の値が一致すれば、キュ
ー終了値に初期値“NULL”をリセットし(S712)、
2次キュー領域に初期値“NULL”をリセットする(S7
13)。
【0068】上述のS711において、ロックワード領
域の値と、要求元の実行体の実行体IDとが不一致の場
合には、上述のS707以降の処理を繰り返し行う。こ
こで、上述のS703において、スワップ後の管理領域
2aの値が初期値“NULL”ではない場合の処理について
説明する。
【0069】すなわち、スワップ後の管理領域2aの値
が初期値“NULL”ではない場合には、1次キューが存在
することが判定される。そして、ロック処理部3aは、
実行体制御部4に対して、要求元の実行体の処理を中断
させることを依頼する(S714)。このとき、要求元
の実行体は、1次キューの先頭に連結される。
【0070】そして、使用権を獲得している実行体が、
使用権の解放要求を行うと、1次キューは、一括デキュ
ーされて、2次キューになる。そして、2次キューの先
頭の実行体から順次処理が再開される。このとき、要求
元の実行体の処理も、再開される。
【0071】要求元の実行体の処理が再開されると、排
他制御管理テーブル1aのロックワード領域の値と、要
求元の実行体の実行体IDとが照合される(S71
5)。ここで、ロックワード領域に、要求元の実行体の
実行体IDが格納されていれば、要求元の実行体に割り
当てられている管理領域2aと、排他制御管理テーブル
1aのキュー終了値領域とが照合される(S716)。
【0072】管理領域2aの値とキュー終了値とが一致
すれば、要求元の実行体が、2次キューの最後の実行体
であることが判定される。そして、排他制御管理テーブ
ル1aのキュー終了値領域に初期値“NULL”がリセット
され(S717)、2次キュー領域に初期値“NULL”が
リセットされる(S718)。このとき、要求元の実行
体は、共有資源の使用権を獲得したことになる。
【0073】また、上述のS716において、管理領域
2aとキュー終了値とが不一致ならば、2次キューに、
要求元の実行体より先に使用権の獲得要求を行った実行
体が存在することが判定される。そして、要求元の実行
体に割り当てられている管理領域2aに格納されている
実行体IDが、2次キュー領域に設定される(S72
1)。
【0074】上述のS715において、ロックワード領
域に、要求元の実行体の実行体IDが格納されていない
場合には、ロックワード領域の値が初期値“0”である
か否かが判別される(S719)。
【0075】ここで、ロックワード領域の値が初期値以
外の値ならば、上述のS714以降の処理を繰り返し行
う。また、ロックワード領域の値が初期値“0”なら
ば、要求元の実行体に割り当てられている管理領域2a
に設定されている実行体IDが示す実行体の処理を再開
した後に(S720)、上述のS714以降の処理を繰
り返し行う。
【0076】次に、アンロック処理部3bの処理につい
て図9に沿って説明する。アンロック処理部3bは、使
用権を獲得している実行体から、使用権の解放要求と共
に、その実行体の実行体IDを受けると、受けた実行体
IDとロックワード領域の実行体IDとを照合し、使用
権を獲得していない実行体からの使用権解放要求を排除
する(S901)。
【0077】要求元の実行体の実行体IDとロックワー
ド領域の値とが一致する場合に限り、処理が続行され
る。すなわち、排他制御管理テーブル1aの2次キュー
領域を参照し、待ち状態の2次キューが存在するか否か
を判別する(S902)。
【0078】2次キューが存在しなければ(2次キュー
領域に初期値“NULL”が設定されていれば)、要求元の
実行体に割り当てられている管理領域2aの値(“NUL
L”)と、ロックキューヘッダ領域の値とをスワップす
る(S903)。
【0079】そして、スワップ後の管理領域の値と、排
他制御管理テーブル1aのキュー終了値とを比較する
(S904)。ここで、双方の値が一致すれば、1次キ
ューが存在しないことが判定され、排他制御管理テーブ
ル1aのロックワード領域に初期値“0”がリセットさ
れる(S905)。この時点で、共有資源の使用権は、
解放されたことになる。
【0080】また、上述のS403〜S405の間に、
割り込み処理による使用権の獲得要求が行われていない
か否かを判別するために、排他制御管理テーブル1aの
ロックキューヘッダ領域の値が初期値“NULL”のままで
あるか否かを判別する(S906)。ここで、ロックキ
ューヘッダ領域の値が初期値“NULL”ならば、処理を終
了する。一方、ロックキューヘッダ領域に、他の実行体
の実行体IDが格納されている場合には、割り込み処理
によって1次キューが作成されたことが判定される。そ
して、1次キューの先頭の実行体(最後に使用権の獲得
要求を行った実行体)の処理を再開させる(S91
0)。
【0081】上述のS902において、2次キュー領域
の値が初期値“NULL”ではない場合には、ロックワード
領域に、2次キュー領域に設定されている実行体IDを
設定し(S908)、2次キュー実行体の処理を再開さ
せる(S910)。
【0082】また、上述のS904において、要求元の
実行体に割り当てられている管理領域2aの値がキュー
終了値と不一致の場合には、管理領域2aに格納されて
いる実行体IDを、2次キュー領域に設定した後(S9
07)、上述のS908及びS909と同様の処理を行
う。
【0083】以上、本実施形態によれば、ロック委譲領
域を設けなくても、前述の実施形態1と同等の効果を得
ることができる。 《実施形態3》本実施形態では、使用権の解放処理を割
り込み禁止処理で行う場合について説明する。この場合
の計算機システムの構成は、前述の実施形態2と同様で
あり、説明は省略する。
【0084】ここで、ロック処理部3aの処理について
図10に沿って説明する。ロック処理部3aは、ある実
行体から共有資源の使用権の獲得要求とともに、その実
行体の実行体IDを受け取ると、メモリ1の排他制御管
理テーブル1aからロックワード領域の値を読み出す。
そして、読み出されたロックワード値と、受け取った実
行体IDとを比較して、一つの実行体が使用権を二重に
獲得することを防止する(S1001)。
【0085】ここで、ロックワード値と実行体IDとが
不一致の場合に限り、処理を続行する。すなわち、管理
領域2aの値(実行体ID)と、排他制御管理テーブル
1aのロックキューヘッダ領域の値とをスワップする
(S1002)。
【0086】続いて、ロック処理部3aは、スワップ後
の管理領域2aの値が、ロックキューヘッダ領域の初期
値“NULL”であるか否かを判別する(S1003)。こ
こで、ロックキューヘッダ領域の初期値が“NULL”であ
るならば、1次キューが存在しないことが判定される。
そして、ロック処理部3aは、排他制御管理テーブル1
aのロックワード領域の値が初期値“0”であるか否か
を判別する(S1004)。
【0087】ロックワード領域の値が初期値“0”なら
ば、使用権が空き状態にあることが判定される。そし
て、ロック処理部3aは、ロックワード領域に要求元実
行体の実行体IDを設定する(S1005)。
【0088】この時点で、キュー終了値領域には、要求
元の実行体の実行体IDが書き込まれる(S100
6)。これにより、要求元の実行体は、共有資源の使用
権を獲得したことになる。
【0089】上述のS1004において、ロックワード
領域の値が初期値“0”でない場合には、実行体からの
使用権の獲得要求が、他の実行体の使用権の解放処理中
に発生した割り込み処理であることが判定され、実行体
制御部4に対して、要求元の実行体の処理を中断させる
ことを依頼する(S1007)。
【0090】そして、他の実行体の使用権の解放処理が
終了すると、実行体制御部4に対して、要求元の実行体
の処理の再開を依頼する。ここで、排他制御管理テーブ
ル1aのロックワード領域の値を参照し、この値が初期
値“0”であるか否かを判別する(S1008)。
【0091】ロックワード領域の値が初期値“0”なら
ば、共有資源の使用権が空き状態にあることが判定さ
れ、ロックワード領域に、要求元の実行体の実行体ID
を設定する(S1009)。
【0092】そして、排他制御管理テーブル1aのキュ
ー終了値領域に、要求元の実行体の実行体IDを登録す
る(S1010)。これにより、要求元の実行体は、共
有資源の使用権を獲得したことになる。
【0093】また、上述のS1008において、ロック
ワード領域の値が初期値以外の値の場合には、ロックワ
ード領域の値と、要求元の実行体の実行体IDとを照合
する(S1011)。ここで、双方の値が一致すれば、
キュー終了値に初期値“NULL”をリセットし(S101
2)、2次キュー領域に初期値“NULL”をリセットする
(S1013)。
【0094】ここで、上述のS1003において、要求
元の実行体に割り当てられている管理領域2aの値が、
初期値“NULL”ではない場合の処理について図11に沿
って説明する。
【0095】先ず、スワップ後の管理領域の値が初期値
“NULL”でない場合には、待ち状態の実行体が存在して
いることを示しており、要求元の実行体も待ち状態にす
る必要がある。従って、ロック処理部3aは、実行体制
御部4に対して、要求元の実行体の処理の中断を依頼す
る(S1014)。
【0096】このとき、ロックキューヘッダ領域には、
要求元の実行体の実行体IDが格納されており、要求元
の実行体に割り当てられている管理領域2aには、直前
に使用権の獲得要求を行った実行体の実行体IDが格納
されていることになる。
【0097】そして、使用権を獲得している実行体が使
用権の解放要求を行うと、ロックキューヘッダ領域に示
されている実行体から順に、処理が再開される。このと
き、処理が再開された実行体の実行体IDと、ロックワ
ード領域の値とが照合され(S1015)、双方が一致
すれば、処理が再開された実行体に割り当てられている
管理領域2aの値と、排他制御管理テーブル1aのキュ
ー終了値とが一致するか否か、すなわち、処理を再開さ
れた実行体の他に待ち状態の実行体が存在するか否かが
判別される(S1016)。
【0098】ここで、管理領域2aの値とキュー終了値
とが一致すれば、処理の再開された実行体が最後の待ち
キューであることが判定され、キュー終了値を初期値
“NULL”にリセットすると共に(S1017)、2次キ
ュー領域を初期値“NULL”にリセットする(S101
8)。
【0099】また、上述のS1016において、処理を
再開された実行体の他に、待ち状態の実行体が存在する
ことが判定された場合には、処理を再開された実行体に
割り当てられている管理領域2aの値を2次キュー領域
に設定する(S1019)。次に、アンロック処理部3
bの処理について図12に沿って説明する。
【0100】アンロック処理部3bは、使用権を獲得し
ている実行体から、使用権の解放要求と共に、その実行
体の実行体IDを受けると、受けた実行体IDとロック
ワード領域の実行体IDとを照合し、使用権を獲得して
いない実行体からの使用権解放要求を排除する(S12
01)。
【0101】そして、要求元の実行体の実行体IDとロ
ックワード領域の値とが一致する場合に限り、処理が続
行される。すなわち、排他制御管理テーブル1aの2次
キュー領域を参照し、待ち状態の2次キューが存在する
か否かを判別する(S1202)。
【0102】2次キューが存在しなければ(2次キュー
領域に初期値“NULL”が設定されていれば)、要求元の
実行体に割り当てられている管理領域2aの値(“NUL
L”)と、ロックキューヘッダ領域の値とをスワップす
る(S1203)。
【0103】そして、スワップ後の管理領域の値と、排
他制御管理テーブル1aのキュー終了値とを比較する
(S1204)。ここで、双方の値が一致すれば、1次
キューが存在しないことが判定され、排他制御管理テー
ブル1aのロックワード領域に初期値“0”がリセット
される(S1205)。この時点で、共有資源の使用権
は、解放されたことになる。
【0104】上述のS1202において、2次キュー領
域の値が初期値“NULL”ではない場合には、2次キュー
が存在することが判定される。このとき、ロックワード
領域には、2次キュー領域に設定されている実行体ID
が設定される(S1207)。さらに、実行体制御部4
に対して、2次キューの実行体の処理を再開することを
依頼する(S1208)。
【0105】また、上述のS1204において、要求元
の実行体に割り当てられている管理領域2aの値が、キ
ュー終了値と不一致の場合には、管理領域2aに格納さ
れている実行体IDを、2次キュー領域に設定した後
(S1206)、上述のS1207及びS1208と同
様の処理を行う。
【0106】以上、本実施形態3によれば、前述の図1
2のS1203〜S1205までを割り込み禁止処理と
して実行することにより、前述の実施形態1あるいは実
施形態2と同等の効果を得ることができる。
【0107】
【発明の効果】本発明によれば、CSI等の特殊な命令
を用意されていない計算機システムでも、スワップ処理
を利用することにより、サスペンドロック方式の排他制
御を行うことができる。
【図面の簡単な説明】
【図1】本実施形態における計算機システムの機能別構
成を示す図
【図2】使用権獲得処理を示すフローチャート図(1)
【図3】使用権獲得処理を示すフローチャート図(2)
【図4】使用権解放処理を示すフローチャート図
【図5】キュー作成処理のイメージ
【図6】実施形態2における排他制御管理テーブルの構
成を示す図
【図7】使用権獲得処理を示すフローチャート図(1)
【図8】使用権獲得処理を示すフローチャート図(2)
【図9】使用権解放処理を示すフローチャート図
【図10】使用権獲得処理を示すフローチャート図
(1)
【図11】使用権獲得処理を示すフローチャート図
(2)
【図12】使用権解放処理を示すフローチャート図
【符号の説明】
1・・メモリ 1a・・排他制御管理テーブル 2・・レジスタ 2a・・管理領域 3・・資源管理部 3a・・ロック処理部 3b・・アンロック処理部 4・・実行体制御部 4a・・処理中断部 4b・・処理再開部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数の実行体が並列に実行される計算機
    システムの共有資源排他制御方式であって、 共有資源の使用権を獲得している実行体を特定する実行
    体識別情報を格納するロックワード、及び他の実行体が
    使用権を獲得している間にその使用権の獲得要求を行っ
    た実行体のうち、最後に獲得要求を行った実行体の実行
    体識別情報を格納するロックキューヘッダからなる排他
    制御管理テーブルと、 個々の実行体毎に割り当てられ、割り当てられた実行体
    の実行体識別情報を格納する管理領域と、 実行体から前記共有資源の使用権の獲得要求を受け付け
    たとき、あるいは使用権の解放要求を受け付けたとき
    に、要求元の実行体に割り当てられている管理領域の内
    容と、前記排他制御管理テーブルのロックキューヘッダ
    の内容とを入れ替えることにより、他の実行体が使用権
    を獲得している間にその使用権の獲得要求を行った実行
    体を連鎖する擬似的な待ち行列を生成する資源管理手段
    と、 前記共有資源の使用権を獲得するために待ち状態となる
    実行体の処理を中断させるとともに、待ち状態にあった
    実行体が使用権を獲得したときに、この実行体の処理を
    再開させる実行体制御手段とを備える共有資源の排他制
    御方式。
  2. 【請求項2】 前記資源管理手段は、 前記実行体から前記共有資源の使用権の獲得要求を受け
    付けると、 前記実行体に割り当てられている管理領域に格納されて
    いる実行体識別情報と、前記排他制御管理テーブルのロ
    ックキューヘッダに格納されている値とを入れ替え、 入れ替え後の管理領域の値が、ロックキューヘッダの初
    期値であるか否かを判別し、 前記管理領域の値がロックキューヘッダの初期値である
    場合には、前記排他制御管理テーブルのロックワード
    に、他の実行体の実行体識別情報が格納されているか否
    かを判別し、 前記ロックワードに、他の実行体の実行体識別情報が格
    納されていなければ、前記ロックワードに前記獲得要求
    の要求元の実行体の実行体識別情報を書き込み、 前記管理領域の値がロックキューヘッダの初期値でない
    場合には、前記実行体制御手段に対して、前記実行体の
    処理を中断させる命令を通知する、請求項1記載の共有
    資源の排他制御方式。
  3. 【請求項3】 前記資源管理手段は、 共有資源の使用権を獲得している実行体から、前記使用
    権の解放要求を受け付けると、 前記実行体に割り当てられている管理領域に格納されて
    いる値と、前記ロックキューヘッダに格納されている値
    とを入れ替え、 入れ替え後の管理領域の値が、前記実行体の実行体識別
    情報を示しているか否かを判別し、 前記入れ替え後の管理領域の値が、前記実行体の実行体
    識別情報を示している場合には、前記ロックワードをリ
    セットし、 前記入れ替え後の管理領域の値が、他の実行体の実行体
    識別情報を示している場合には、待ち状態の実行体が存
    在することを判定し、前記ロックワードに前記他の実行
    体の実行体識別情報を設定し、 前記実行体制御手段に対して、前記他の実行体の処理再
    開を依頼し、 前記処理再開された実行体に割り当てられている管理領
    域の値が、前記解放要求の要求元の実行体の実行体識別
    情報を示しているか否かを判別し、 前記処理再開された実行体に割り当てられている管理領
    域の値が、前記解放要求の要求元の実行体の実行体識別
    情報を示している場合には、前記処理再開された実行体
    が、待ち状態にある実行体のうち、最初に使用権の獲得
    要求を行った実行体であることを判定し、 前記処理再開された実行体に割り当てられている管理領
    域の値が、前記解放要求の要求元の実行体とは異なる実
    行体の実行体識別情報を示している場合には、前記処理
    再開された実行体より先に、使用権の獲得要求を行った
    実行体が存在することを判定する、請求項1記載の共有
    資源の排他制御方式。
  4. 【請求項4】 使用権の解放処理中に、使用権の獲得要
    求を行った実行体の実行体識別情報を登録するロック委
    譲領域を、前記排他制御管理テーブルに更に備え、 前記資源管理手段は、 前記使用権の解放処理が終了すると、前記ロック委譲領
    域を参照して、解放処理の途中で使用権の獲得要求を行
    った実行体が存在するか否かを判別し、 使用権の獲得要求を行った実行体が存在すれば、前記実
    行体制御手段に対して、前記実行体の処理を再開させる
    ことを依頼する、請求項3記載の共有資源の排他制御方
    式。
  5. 【請求項5】 前記資源管理手段は、 前記使用権の解放処理が終了すると、再度、排他制御テ
    ーブルのロックキューヘッダを参照して、初期値が設定
    されているか、あるいは実行体識別情報が設定されてい
    るかを判別し、 前記ロックキューヘッダに実行体識別情報が設定されて
    いれば、前記解放処理の途中で使用権の獲得要求を行っ
    た実行体が存在することを判定し、前記実行体制御手段
    に対して、前記実行体識別情報によって特定される実行
    体の処理を再開させることを依頼する、請求項3記載の
    共有資源の排他制御方式。
  6. 【請求項6】 前記資源管理手段は、 前記使用権の解放処理を割り込み禁止処理によって実行
    する請求項3記載の共有資源の排他制御方式。
JP25412995A 1995-09-29 1995-09-29 共有資源の排他制御方式 Expired - Fee Related JP3745800B2 (ja)

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)

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

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134886A (ja) * 1990-11-30 1993-06-01 Fujitsu Ltd デツドロツク検出方式

Cited By (1)

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