JPH1021098A - 排他制御装置 - Google Patents

排他制御装置

Info

Publication number
JPH1021098A
JPH1021098A JP8188575A JP18857596A JPH1021098A JP H1021098 A JPH1021098 A JP H1021098A JP 8188575 A JP8188575 A JP 8188575A JP 18857596 A JP18857596 A JP 18857596A JP H1021098 A JPH1021098 A JP H1021098A
Authority
JP
Japan
Prior art keywords
lock
processing unit
timer
lock request
deadlock
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
JP8188575A
Other languages
English (en)
Other versions
JP2850863B2 (ja
Inventor
Shigeo Yamazaki
茂雄 山崎
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP8188575A priority Critical patent/JP2850863B2/ja
Publication of JPH1021098A publication Critical patent/JPH1021098A/ja
Application granted granted Critical
Publication of JP2850863B2 publication Critical patent/JP2850863B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 排他制御装置に於いて、デッドロックチェッ
クがボトルネックとならないようにすることにより、コ
ンピュータシステム全体の性能を向上させる。 【解決手段】 ロック要求コマンド処理部2は、ホスト
コンピュータからロック要求コマンドが送られてくる
と、そのロック要求コマンドによるロック要求に対して
ロックが可能か否かを判定する。そして、ロックが不可
能と判定された場合は、ロック待ちキュー処理部5が、
そのロック要求をロック待ちにすると共に、タイマ処理
部6に対してそのロック待ちの事象についてのタイマ処
理の開始を指示する。この指示を受けると、タイマ処理
部6は、指示された事象についてのタイマ処理を開始
し、その事象についてタイムアウトすると、その事象を
出力する。デッドロックチェック処理部7は、タイマ処
理部6から事象が出力されると、その事象についてデッ
ドロックが発生しているか否かをチェックする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムの排他制御装置に関し、特に、デッドロックチェッ
ク処理をホストコンピュータからのロック要求コマンド
と非同期に行う排他制御装置に関する。
【0002】
【従来の技術】ホストコンピュータから独立して設けら
れた従来の排他制御装置に於いては、或るホストコンピ
ュータからロック要求があった場合、先ず、ロック可能
か否かを判定する。そして、ロック可能な場合はロック
を許可し、ロック不可能である場合は、そのロック要求
がロック待ちになることによってデッドロックが発生す
るか否かをチェックし、デッドロックが発生する場合
は、そのロック要求を待ち登録することを拒否し、デッ
ドロックが発生しない場合には、そのロック要求を待ち
登録する。待ち登録したロック要求に対しては、それを
待たせる原因が消滅したとき(例えば、先に資源をロッ
クしていたホストコンピュータがその資源のロックを解
放したとき)、待ち登録されているロック要求にロック
を許可し、そのことをアテンションによって要求元のホ
ストコンピュータに通知する。以上のように、従来の排
他制御装置は、或るホストコンピュータからのロック要
求が待ち登録されることによってデッドロックが発生す
るか否かを、当該ロック要求を排他制御装置が受け付け
たときに即座にチェックするようにしていた。
【0003】ここで、ロック要求とは、複数のホストコ
ンピュータがディスク装置やメモリ装置等の資源を共有
使用する状況に於いて、或るホストコンピュータが或る
資源(例えば、ディスク装置内の特定のファイル)を排
他使用する必要があるときに、その排他使用権を要求す
ることをいい、或る条件のもとで排他使用が許可された
状態を資源のロックという。
【0004】また、デッドロックとは、次のような状態
を言う。例えば、ホストコンピュータAが資源αをロッ
クし、同時に資源βに対してロック待ちになっている状
態で、資源βをロックしているホストコンピュータBが
資源αに対してロック要求してロック待ちになると、ホ
ストコンピュータA,Bの何れもロック要求している資
源のロックに成功するまで、既にロックしている資源を
解放できないため(必要な資源が全てロックできるま
で、ロック要求している資源に関する処理が終了しない
ため)、ホストコンピュータA,Bの何れもそれ以上処
理を継続できない状態になる。この状態をデッドロック
と言い、従来の排他制御装置では、上述したように、ロ
ック要求を待ち登録する前に、デッドロックチェックを
行い、デッドロックが発生しないことを確認した上で待
ち登録していた。
【0005】尚、以上の説明では簡単のために、ロック
要求の要求元をホストコンピュータとしたが、一般的な
コンピュータシステムに於いて、通常、プロセスやタス
クと呼ばれるソフトウェアの処理単位が行う。上述のデ
ッドロックは、同じホストコンピュータ内の複数のプロ
セス等から出力されるロック要求の競合によっても発生
し、また、複数のホストコンピュータの複数のプロセス
等が関連し、数十以上のプロセス等が順に待ち,待たせ
る関係となることも稀ではない。
【0006】デッドロックを調べるためのデッドロック
チェックは、或るロック要求が待ちとなった場合に、そ
のロック要求が要求している資源のロック元が他の資源
に対してロック待ちになっていないかを順に調べてい
き、最終的にデッドロックチェックの契機となったロッ
ク要求の要求元によるロックが待たせる原因となるとい
う閉ループを検出したとき、これをデッドロックとす
る。ここで、先に、ロック要求が待ちになる原因とし
て、先に要求資源をロックしているホストコンピュータ
がある場合等と述べたが、資源のロック方法として、他
に全くロックを許可しない完全排他ロックや、例えばフ
ァイル資源のロックに於いて、読み出しアクセスのみを
行う複数のプロセスに対して同時にロックを許可する共
有ロック等、幾つかのロックのレベルがある場合が一般
的である。従って、上述のデッドロックチェックは、単
一の1本のループを検索するだけでなく、検索が進むに
つれて次々に分岐していき、その全てについてチェック
することが必要になる。
【0007】また、デッドロックチェックの実行中、こ
のデッドロックチェックのためにテーブルの状態が他の
プロセスからのロックやアンロックによって変化する
と、正しいデッドロックのチェックが行えないのは自明
であり、従来の排他制御装置では、或るロック要求に対
するデッドロックチェックの処理中、他の全てのロック
要求やアンロック要求は、ホストコンピュータからコマ
ンド受け付け処理の時点で待たせるようにしていた。
【0008】
【発明が解決しようとする課題】上述した従来の技術
は、或るホストコンピュータからのロック要求がロック
待ちとなることによってデッドロックが発生するか否か
を、そのロック要求を排他制御装置が受け付けたとき
に、即時にチェックするようにしているため、デッドロ
ックチェック処理がボトルネックとなってシステム全体
の性能が低下するという問題があった。つまり、或るホ
ストコンピュータからのロック要求がロック待ちにな
り、その要求に関するデッドロックチェックの処理が行
われると、その間、他のロック要求を処理できないから
である。
【0009】そこで、本発明の目的は、デッドロックチ
ェック処理がボトルネックとならないようにすることに
より、システム全体の性能を向上させることができる排
他制御装置を提供することにある。
【0010】尚、特開平1−223558号公報には、
複数のホストコンピュータから構成されるシステムに於
いて、排他制御によるトランザクションの最初の待ち状
態発生から一定時間経過するまでの待ち状態発生までの
排他制御の待ち情報を、一括して1つのホストコンピュ
ータに集めてデッドロックの検出処理を行う技術が開示
されているが、この技術では、ホストコンピュータの負
荷が大きくなってしまうという問題がある。
【0011】
【課題を解決するための手段】本発明は上記目的を達成
するため、要求元からのロック要求コマンドを受け付
け、該ロック要求コマンドによるロック要求に対して資
源のロックが可能か否かを判定し、ロック不可能と判定
したロック要求を出力するロック要求コマンド処理部
と、該ロック要求コマンド処理部から出力されたロック
要求をロック待ちにすると共に、そのロック待ちの事象
に対するタイマ処理の開始を指示するロック待ちキュー
処理部と、該ロック待ちキュー処理部によってタイマ処
理の開始が指示された事象についてタイマ処理を開始
し、タイマ処理を開始した事象の内の、タイマ処理を開
始してから予め定められた一定時間が経過した事象をタ
イムアウトとするタイマ処理部と、該タイマ処理部でタ
イムアウトとされた事象についてデッドロックが発生し
ているか否かをチェックするデッドロックチェック処理
部と、該デッドロックチェック処理部がデッドロックを
検出したとき、前記要求元にデッドロック発生を通知す
るアテンション処理手段とを備えている。
【0012】上記第1の構成に於いては、ロック要求コ
マンド処理部が、ロック要求に対して資源のロックが可
能か否かを判定し、ロック待ちキュー処理部が、ロック
不可能と判定されたロック要求をロック待ちにすると共
に、タイマ処理部に対してそのロック待ちの事象に対す
るタイマ処理の開始を指示する。この指示を受けると、
タイマ処理部がタイマ処理を開始し、予め定められた所
定時間が経過した事象をタイムアウトとする。デッドロ
ックチェック処理部は、タイムアウトした事象について
デッドロックが発生しているか否かをチェックする。
【0013】また、本発明は、デッドロックチェックの
タイミングをロック要求コマンド毎に任意のタイミング
にできるようにするため、前記ロック要求コマンド処理
部は、前記要求元からのロック要求コマンドによるロッ
ク要求に対して資源のロックが不可能であり、且つ前記
ロック要求コマンドに時間の指定が含まれている場合
は、前記時間を前記タイマ処理部に通知するタイマ初期
値設定処理部を有し、前記タイマ処理部は、前記タイマ
初期値設定処理部から時間が通知された事象について
は、前記一定時間に代えて前記通知された時間が経過し
たときにタイムアウトとする構成を有する。
【0014】上記した第2の構成に於いては、ロック要
求コマンドに対して資源のロックが不可能で且つロック
要求コマンドに時間の指定が含まれている場合、タイマ
初期値設定処理部がその時間をタイマ処理部に通知し、
タイマ処理部は、タイマ初期値設定処理部から時間が通
知された事象については、その通知された時間が経過し
たときにタイムアウトとする。
【0015】また、本発明は、ロック要求コマンド毎
に、デッドロックチェックを所定時間経過後に行うの
か、直ちに行うのかを制御できるようにするため、上記
した第1の構成に於けるロック要求コマンド処理部は、
前記要求元からのロック要求コマンドによるロック要求
に対して資源のロックが不可能であり、且つ前記ロック
要求コマンドにそれと同期してデッドロックチェックを
行うことの指示が含まれている場合は、前記デッドロッ
クチェック処理部に対して前記ロック要求をロック待ち
にするとデッドロックが発生するか否かのチェックを行
うことを指示し、そのチェック結果がデッドロックが発
生することを示している場合は、前記要求元に対してデ
ッドロック発生を通知し、デッドロックが発生しないこ
とを示している場合は、前記ロック待ちキュー処理部に
対してタイマ処理が不要であることを指示すると共に前
記ロック要求を出力するタイマ作動制御処理部を有し、
前記デッドロックチェック処理部は、前記ロック要求コ
マンド処理部からの指示に従ったデッドロックチェック
を行う構成を有し、前記ロック待ちキュー処理部は、前
記タイマ作動制御処理部からタイマ処理が不要であるこ
とが指示された事象については、タイマ処理の開始を指
示しない構成を備えている。
【0016】上記した第3の構成に於いては、ロック要
求コマンドに、ロック要求コマンドと同期してデッドロ
ックチェックを行うことの指示が含まれ、且つそのロッ
ク要求について資源のロックが不可能な場合、タイマ作
動制御処理部は、直ちに、デッドロックチェック処理部
に対してそのロック要求を待ちにするとデッドロックが
発生するか否かのチェックを行うことを指示する。これ
に応答してデッドロックチェック処理部がデッドロック
チェックを行う。デッドロックチェック処理部でデッド
ロックが発生しないと判定された場合、タイマ作動制御
処理部は、ロック待ちキュー処理部に対して上記ロック
要求を通知すると共にタイマ処理が不要であることを指
示する。
【0017】
【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
【0018】図14は、本発明の排他制御装置を含むコ
ンピュータの典型的な一例を示すブロック図である。ホ
ストコンピュータA,Bが1台のディスク装置12を共
有しており、このディスク装置12の排他使用のための
ロック制御を、排他制御装置11がホストコンピュータ
A,Bからのコマンドに従って行う。
【0019】以下、本発明の排他制御装置の詳細につい
ては、図14に示した例をもとに説明するが、本発明の
排他制御装置が、ホストコンピュータが1台の場合も含
め、ホストコンピュータの台数によらないこと、また、
排他制御の対象となる資源がディスク装置に限らず複数
のホストコンピュータ或いはホストコンピュータ内の複
数のプロセス等のソフトウェア処理単位によって共有使
用される全ての資源を対象とすることはいうまでもな
い。
【0020】図1は本発明の第1の実施例のブロック図
であり、ホストインタフェース処理部1と、ロック要求
コマンド処理部2と、アテンション処理部3と、ロック
管理テーブル4と、ロック待ちキュー処理部5と、タイ
マ処理部6と、デッドロックチェック処理部7とを備え
ている。
【0021】ホストインタフェース処理部1は、ホスト
コンピュータAとホストコンピュータBとの物理的,論
理的インタフェースを司る。ロック要求コマンド処理部
2は、ホストインタフェース処理部1を介してホストコ
ンピュータA,Bから受け付けたロック要求コマンドに
よってロック管理テーブル4の更新処理を行い、即座に
ロックできない場合は、ロック待ちキュー処理部5にそ
の処理を依頼する。タイマ処理部6は、ロック待ちキュ
ー処理部5から通知された各事象それぞれについてタイ
マ処理を行い、予め定められた所定時間が経過したとき
(タイムアウトしたとき)に、タイムアウトした事象を
デッドロックチェック処理部7に通知する。デッドロッ
クチェック処理部7は、通知された事象についてデッド
ロックが発生しているか否かをチェックし、デッドロッ
クが発生している場合は、アテンション処理部3を介し
て要求元にデッドロック発生を通知する。
【0022】図2はロック要求コマンド処理部2の処理
例を示す流れ図、図3はロック待ちキュー処理部5の処
理例を示す流れ図、図4,図5はタイマ処理部6の処理
例を示す流れ図、図6はデッドロックチェック処理部7
の処理例を示す流れ図、図7はロック管理テーブル4の
内容が変化する様子を示した図である。以下、各図を参
照して、本実施例の動作を説明する。尚、本実施例に於
いては、各処理部はソフトウェアによって構成される
が、同様の機能の一部または全てをハードウェアによっ
て実現することもできる。
【0023】今、ホストコンピュータAのプロセスaか
ら資源αのロックを要求するロック要求コマンドが排他
制御装置11に対して出力されたとする。尚、このと
き、資源αは、ロックされていないとする。
【0024】このロック要求コマンドは、ホストインタ
フェース処理部1を介してロック要求コマンド処理部2
へ通知される。
【0025】これにより、ロック要求コマンド処理部2
は、図2の流れ図に示す処理を開始し、先ず、ロック管
理テーブル4を参照して資源αが既にロックされている
か否かを調べる(S1,S2)。この例では、資源αは
ロックされていないので(S2がNO)、ホストインタ
フェース処理部1は、ロック管理テーブル4に、図7
(A)に示すように、資源αがホストコンピュータAの
プロセスaによってロックされたことを示す情報41を
登録し、その後、ホストインタフェース処理部1を介し
て要求元のプロセスaにロック許可を通知する(S3,
S4)。尚、本実施例は、唯一のプロセスに対してのみ
ロックを許可する完全排他ロックであるものとする。
【0026】その後、ホストコンピュータBのプロセス
bから資源βのロックを要求するロック要求コマンドが
排他制御装置11に対して出力されたとする。尚、この
とき、資源βはロックされていないとする。
【0027】このロック要求コマンドは、ホストインタ
フェース処理部1を介してロック要求コマンド処理部2
に通知される。
【0028】これにより、ロック要求コマンド処理部2
は、前述したと同様の処理を行い、ロック管理テーブル
4に、図7(B)に示すように、資源βがホストコンピ
ュータBのプロセスbによってロックされたことを示す
情報42を登録し、その後、ホストインタフェース処理
部1を介して要求元のプロセスbにロック許可を通知す
る(S1〜S4)。
【0029】その後、ホストコンピュータAのプロセス
aから出力された、資源βのロックを要求するコマンド
が、ホストインタフェース処理部1を介してロック要求
コマンド処理部2に通知されたとする。
【0030】この場合、ロック管理テーブル4を参照す
ることにより、資源βが既にホストコンピュータBのプ
ロセスbによってロックされていることが分かるので
(S1,S2)、ロック要求コマンド処理部2は、上記
ロック要求コマンドによるロック要求は許可せずに、ロ
ック待ちキュー処理部5に対して上記ロック要求を通知
すると共に、ホストインタフェース処理部1を介して要
求元のプロセスaへロック要求がロック待ちになったこ
とを通知する(S5,6)。
【0031】ロック要求コマンド処理部2からロック要
求が通知されると、ロック待ちキュー処理部5は、図7
(C)に示すように、ホストコンピュータAのプロセス
aが資源βの解放を待っているということを示す情報4
3をロック管理テーブル4に登録し、更に、タイマ処理
部6にホストコンピュータAのプロセスaが資源βの解
放を待っているという事象を通知する(図3,S11,
S12)。
【0032】タイマ処理部6は、上記した事象β,wa
it=A(a)が通知されると、その内部に設けられて
いるタイマ管理テーブル61に、図8に示すように、そ
の事象と、予め定められている一定時間Tiとを対応付
けて登録する(図4,S21)。尚、タイマ処理部6
は、一定時間ΔT(ΔT≪Ti)が経過する毎に、図5
に示すように、各事象の残り時間からΔTを減算し、残
り時間が0以下の事象があれば、即ち、タイムアウトし
た事象があれば、その事象をデッドロックチェック処理
部7に対して出力する処理も行っている(図5,S3
1,S32)。尚、残り時間が0以下になった事象につ
いての情報は、タイマ管理テーブル61から削除され
る。
【0033】その後、上記した事象β,wait=A
(a)がタイムアウトする前に、ホストコンピュータB
のプロセスbから資源αのロックを要求するロック要求
コマンドが出力されたとすると、資源αは既にホストコ
ンピュータAのプロセスaでロックされているので、ロ
ック要求コマンド処理部2は、要求元のプロセスbに対
してロック要求がロック待ちになったことを通知し(図
2,S6)、ロック待ちキュー処理部5は、図7(D)
に示すように、ホストコンピュータBのプロセスbが資
源αの解放を待っているということを示す情報44をロ
ック管理テーブル4に登録し、更に、タイマ処理部6に
ホストコンピュータBのプロセスbが資源αの解放を待
っているという事象α,wait=B(b)を通知する
(図3,S11,S12)。
【0034】その後、所定時間Tiが経過し、事象β,
wait=A(a)がタイムアウトとなると、タイマ処
理部6は、上記事象をデッドロックチェック処理部7に
対して出力する(図5,S31,S32)。
【0035】デッドロックチェック処理部7は、出力さ
れた事象β,wait=A(a)についてデッドロック
が発生しているか否かをロック管理テーブル4を参照し
てチェックする(図6,S41,S42)。この例で
は、ホストコンピュータAのプロセスaが解放を待って
いる資源βは、ホストコンピュータBのプロセスbがロ
ックしている資源であり、また、ホストコンピュータB
のプロセスbは、ホストコンピュータAのプロセスaが
ロックしている資源αの解放を待っているので、デッド
ロックチェック処理部7は、ホストコンピュータAのプ
ロセスaとホストコンピュータBのプロセスbとにデッ
ドロックが発生していると判断し(S42がYES)、
アテンション処理部3にそのことを通知する(S4
3)。
【0036】この通知を受けると、アテンション処理部
3は、ホストインタフェース処理部1を介してホストコ
ンピュータAのプロセスaへデッドロック発生を通知す
る。一般的なコンピュータシステムでは、デッドロック
発生を通知されたプロセスは、実行を中止し、ロックし
ている資源を全て解放する。本実施例では、デッドロッ
ク発生を通知されたホストコンピュータAのプロセスa
は、資源αのロックを解放する。これにより、ロック待
ちキュー処理部5は、ホストコンピュータBのプロセス
bに対して資源αのロックを許可すると共に、タイマ処
理部6に対し、ホストコンピュータBのプロセスbの資
源α待ちの事象に対するタイマ処理の停止を指示する。
この指示を受けると、タイマ処理部6は、タイマ管理テ
ーブル61から上記事象に関する情報を削除する。
【0037】尚、以上の説明では、デッドロック発生
時、ホストコンピュータAのプロセスaに対してのみ、
デッドロック発生を通知し、ロックしている資源の解放
を要求するようにしたが、逆に、ホストコンピュータB
のプロセスbに対して、或いはデッドロックとなった全
てのプロセスに対してデッドロック発生を通知しても良
い。
【0038】図9は、本発明の第2の実施例のブロック
図であり、図1に示した実施例と異なる点は、ロック要
求コマンド処理部2に代えてタイマ初期値設定処理部2
1を有するロック要求コマンド処理部2aを備えた点、
及びタイマ処理部6に代えてタイマ処理部6aを備えた
点である。尚、他の図1と同一符号は同一部分を表して
いる。
【0039】ロック要求コマンド処理部2a内のタイマ
初期値設定処理部21は、ロック不可能と判定されたロ
ック要求コマンドに時間の指定が含まれている場合、そ
の時間をタイマ処理部6aに通知する機能を有する。ま
た、タイマ処理部6aは、タイマ初期値設定処理部21
から時間が通知された事象については、予め定められて
いる一定時間に代えて、通知された時間が経過したとき
にその事象を出力する機能を有する。
【0040】図10はロック要求コマンド処理部2aの
処理例を示す流れ図、図11はタイマ処理部6aの処理
例を示す流れ図であり、以下各図を参照して本実施例の
動作を説明する。
【0041】ホストインタフェース処理部1を介してホ
ストコンピュータA或いはホストコンピュータBからの
ロック要求コマンドが通知されると、ロック要求コマン
ド処理部2aは、図10の流れ図に示すように、ロック
要求されている資源が既にロックされているか否かを調
べ、ロックされていない場合は、図1に示したロック要
求コマンド処理部2と同様の処理を行う(S51〜S5
4)。
【0042】また、ロックされている場合(S52がY
ES)は、ロック要求コマンド処理部2は、タイマ初期
値設定処理部21に制御を渡し、S55〜S58の処理
を行わせる。
【0043】タイマ初期値設定処理部21は、先ず、ロ
ック要求コマンド中に時間の指定が含まれているか否か
を判断する(S55)。そして、時間の指定が含まれて
いると判断した場合(S55がYES)は、その時間を
タイマ処理部6aへ通知し(S56)、更に、ロック待
ちキュー処理部5へ上記ロック要求を通知すると共に、
要求元にロック要求がロック待ちになったことを通知し
(S57,S58)、その後、その処理を終了する。ま
た、時間の指定が含まれていないと判断した場合(S5
5がNO)は、S57の処理へ進む。
【0044】ロック待ちキュー処理部5は、タイマ初期
値設定処理部21からロック要求が通知されると、前述
したと同様の処理を行う(図3,S11,S12)。
【0045】また、タイマ処理部6aは、ロック待ちキ
ュー処理部5から事象が通知されたとき、タイマ初期値
設定処理部21から時間が通知されている場合(S61
がYES)は、通知された事象と時間とを対応付けてタ
イマ管理テーブル61に登録し(S62)、時間が通知
されていない場合(S61がNO)は、通知された事象
と予め定められている一定時間Tiとを対応付けてタイ
マ管理テーブル61に登録する(S63)。尚、タイマ
処理部6aは、タイマ処理部6と同様に図5の流れ図に
示す処理も行っており、残り時間が0以下になった事象
をデッドロックチェック処理部7に対して出力する。こ
れにより、デッドロックチェック処理部7は、前述した
と同様の処理を行う(図6,S41〜S43)。
【0046】このように、本実施例は、ロック要求コマ
ンド処理部2a,タイマ処理部6aを備えているので、
タイマ処理部6aで監視する時間をロック要求コマンド
毎に任意に設定することが可能になる。従って、TSS
(タイムシェアリングシステム)のように、高速レスポ
ンスを必要とする要求元は、短い時間の指定を含むロッ
ク要求コマンドを出力し、バッチ処理システムのように
高速レスポンスを必要としない要求元は、時間指定を含
まない、或いは長い時間の指定を含むロック要求コマン
ドを出力する等、柔軟なシステム運用が可能になる。
【0047】図12は本発明の第3の実施例のブロック
図であり、図9の実施例と異なる点は、ロック要求コマ
ンド処理部2aに代えてタイマ作動制御処理部22を有
するロック要求コマンド処理部2bを備えた点、ロック
待ちキュー処理部5に代えてロック待ちキュー処理部5
bを備えた点、及びデッドロックチェック処理部7に代
えてデッドロックチェック処理部7bを備えた点であ
る。尚、他の図9と同一符号は同一部分を表している。
【0048】ロック要求コマンド処理部2b内のタイマ
作動制御処理部22は、ロック不可能と判定されたロッ
ク要求コマンドに時間の指定が含まれている場合、その
時間をタイマ処理部6aに通知する機能、ロック不可と
判定されたロック要求コマンドに同期指定が含まれてい
る場合は、デッドロックチェック処理部7に対して上記
ロック要求をロック待ちにするとデッドロックが発生す
るか否かのチェックを行うことを指示する機能、デッド
ロックチェック処理部7のチェック結果がデッドロック
が発生することを示している場合は、要求元に対してデ
ッドロック発生を通知し、デッドロックが発生しないこ
とを示している場合は、ロック待ちキュー処理部5bに
対してタイマ処理が不要であることを指示すると共に上
記ロック要求を出力する機能を有する。
【0049】デッドロックチェック処理部7bは、タイ
マ処理部6aから事象が出力された場合、及びタイマ作
動制御処理部22からデッドロックチェックが指示され
た場合にデッドロックチェックを行う機能を有する。
【0050】ロック待ちキュー処理部5bは、タイマ作
動制御処理部22からタイマ処理が不要であることが指
示されていない場合は、ロック待ちキュー処理部5bか
ら通知されたロック要求に対して前述したロック待ちキ
ュー処理部5と同様の処理を行い、タイマ処理が不要で
あることが指示されている場合は、ロック管理テーブル
4に対する更新処理のみを行う。
【0051】図13はタイマ作動制御処理部22の処理
例を示す流れ図であり、以下各図を参照して本実施例の
動作を説明する。
【0052】ロック要求コマンド処理部2bは、ホスト
インタフェース処理部1を介して通知されたロック要求
コマンドによるロック要求に対して資源をロックするこ
とが可能な場合は、前述したロック要求コマンド処理部
2aと同様の処理を行う。また、ロック不可能な場合
は、タイマ作動制御処理部22に制御を渡し、図13の
流れ図に示す処理を行わせる。
【0053】タイマ作動制御処理部22は、制御を渡さ
れると、上記ロック要求コマンドに時間の指定が含まれ
ているか否かを判断する(図13,S71)。時間の指
定が含まれている場合は(S71がYES)、タイマ処
理部6aに対してその時間を通知し(S72)、更に、
ロック待ちキュー処理部5bにロック要求を通知すると
共に、要求元にロック要求がロック待ちになったことを
通知する(S78,S79)。これにより、タイマ処理
部6aは前述した図11の流れ図に示す処理を行い、ロ
ック待ちキュー処理部5bは前述したロック待ちキュー
処理部5と同様の処理を行う。
【0054】また、上記ロック要求コマンドに、同期指
定が含まれている場合(S73がYES)は、ロック要
求コマンド処理部2は、直ちに、デッドロックチェック
処理部7bに対して、上記ロック要求をロック待ちにす
るとデッドロックが発生するか否かのチェックを行うこ
とを指示する(S74)。
【0055】この指示に応答して、デッドロックチェッ
ク処理部7bは、デッドロックチェックを行い、その結
果をタイマ作動制御処理部22に通知する。
【0056】チェック結果がデッドロック発生を示して
いる場合(S75がYES)は、タイマ作動制御処理部
22は、ホストインタフェース処理部1を介して要求元
にデッドロック発生を通知し(S76)。また、デッド
ロック発生を示していない場合(S75がNO)は、ロ
ック待ちキュー処理部5bに対してタイマ処理を行わな
いことを指示した後、ロック待ちキュー処理部5bに上
記ロック要求を渡し(S77,S78)、その後、要求
元にロック待ちになったことを通知する。(S79)。
【0057】ロック待ちキュー処理部5bは、タイマ処
理を行わないことを指示された後にロック要求が渡され
た場合は、ロック管理テーブル4の更新処理のみを行
い、タイマ処理部6aに対するタイマ処理開始指示は行
わない。
【0058】このように、本実施例は、ロック要求コマ
ンド処理部2b,タイマ処理部6bを備えているので、
ロック要求コマンドに同期したデッドロックチェックを
行うこともできるし、ロック要求コマンドとは非同期の
タイミングでデッドロックチェックを行うこともでき
る。
【0059】
【発明の効果】以上説明したように、本発明は、ロック
要求がロック待ちになったとき、所定時間経過後にその
事象についてデッドロックチェックを行うようにしたの
で、デッドロックチェックによって後続するロック要求
の処理が待たされることがなくなり、その結果、コンピ
ュータシステムの処理性能を向上させることができる。
更に、所定時間が経過する前に、ロック待ちとなってい
るロック要求がロック可能になった場合、デッドロック
チェックそのものを不要とすることができるので、排他
制御装置の負荷を軽減し、排他制御装置のスループット
を高めることができる。
【0060】また、本発明は、時間の指定を含むロック
要求コマンドがロック不可能となった場合、ロック要求
コマンドに含まれている時間をタイマ処理部に通知する
タイマ初期値設定処理部を備え、タイマ処理部は、タイ
マ初期値設定処理部から時間が通知された事象について
は、その通知された時間が経過したときにタイムアウト
する構成を備えているので、ロック要求コマンド毎にデ
ッドロックチェックを行うタイミングを変更することが
できる。従って、要求元が、TSSのように高速レスポ
ンスを必要とするシステムである場合は上記時間を短く
し、バッチ処理システムのように高速レスポンスを必要
としないシステムである場合は、上記時間を長くする
等、要求元の特性に合った柔軟なシステム運用が可能に
なる。
【0061】また、本発明は、ロック要求コマンドに、
ロック要求コマンドと同期してデッドロックチェックを
行うことの指示が含まれ、且つそのロック要求について
資源のロックが不可能な場合、直ちに、デッドロックチ
ェック処理部に対してそのロック要求を待ちにするとデ
ッドロックが発生するか否かのチェックを行うことを指
示するタイマ作動制御処理部を備えているので、ロック
要求コマンド毎に、デッドロックチェックを所定時間経
過後に行うのか、直ちに行うのかを制御できる。従っ
て、要求元がTSSのように高速レスポンスを必要とす
るシステムである場合は、ロック要求コマンドにそれと
同期してデッドロックチェックを行うことの指示を含ま
せる等、要求元の特性に合った柔軟なシステム運用が可
能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施例のブロック図である。
【図2】ロック要求コマンド処理部2の処理例を示す流
れ図である。
【図3】ロック待ちキュー処理部5の処理例を示す流れ
図である。
【図4】タイマ処理部6の処理例を示す流れ図である。
【図5】タイマ処理部6の処理例を示す流れ図である。
【図6】デッドロックチェック処理部7の処理例を示す
流れ図である。
【図7】ロック管理テーブル4の内容が変化する様子を
示す図である。
【図8】タイマ管理テーブル61の内容例を示す図であ
る。
【図9】本発明の第2の実施例のブロック図である。
【図10】ロック要求コマンド処理部2aの処理例を示
す流れ図である。
【図11】タイマ処理部6aの処理例を示す流れ図であ
る。
【図12】本発明の第3の実施例のブロック図である。
【図13】タイマ作動制御処理部22の処理例を示す流
れ図である。
【図14】本発明を適用するコンピュータシステムの一
例を示すブロック図である。
【符号の説明】
1…ホストインタフェース処理部 2…ロック要求コマンド処理部 3…アテンション処理部 4…ロック管理テーブル 5…ロック待ちキュー処理部 6…タイマ処理部 61…タイマ管理テーブル 7…デッドロックチェック処理部 2a…ロック要求コマンド処理部 21…タイマ初期値設定処理部 6a…タイマ処理部 2b…ロック要求コマンド処理部 22…タイマ作動制御処理部 5b…ロック待ちキュー処理部 7b…デッドロックチェック処理部 11…排他制御装置 12…ディスク装置 A,B…ホストコンピュータ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 要求元からのロック要求コマンドを受け
    付け、該ロック要求コマンドによるロック要求に対して
    資源のロックが可能か否かを判定し、ロック不可能と判
    定したロック要求を出力するロック要求コマンド処理部
    と、 該ロック要求コマンド処理部から出力されたロック要求
    をロック待ちにすると共に、そのロック待ちの事象に対
    するタイマ処理の開始を指示するロック待ちキュー処理
    部と、 該ロック待ちキュー処理部によってタイマ処理の開始が
    指示された事象についてタイマ処理を開始し、タイマ処
    理を開始した事象の内の、タイマ処理を開始してから予
    め定められた一定時間が経過した事象をタイムアウトと
    するタイマ処理部と、 該タイマ処理部でタイムアウトとされた事象についてデ
    ッドロックが発生しているか否かをチェックするデッド
    ロックチェック処理部と、 該デッドロックチェック処理部がデッドロックを検出し
    たとき、前記要求元にデッドロック発生を通知するアテ
    ンション処理手段とを備えたことを特徴とする排他制御
    装置。
  2. 【請求項2】 前記ロック要求コマンド処理部は、前記
    要求元からのロック要求コマンドによるロック要求に対
    して資源のロックが不可能であり、且つ前記ロック要求
    コマンドに時間の指定が含まれている場合は、前記時間
    を前記タイマ処理部に通知するタイマ初期値設定処理部
    を有し、 前記タイマ処理部は、前記タイマ初期値設定処理部から
    時間が通知された事象については、前記一定時間に代え
    て前記通知された時間が経過したときにタイムアウトと
    する構成を有することを特徴とする請求項1記載の排他
    制御装置。
  3. 【請求項3】 前記ロック要求コマンド処理部は、前記
    要求元からのロック要求コマンドによるロック要求に対
    して資源のロックが不可能であり、且つ前記ロック要求
    コマンドにそれと同期してデッドロックチェックを行う
    ことの指示が含まれている場合は、前記デッドロックチ
    ェック処理部に対して前記ロック要求をロック待ちにす
    るとデッドロックが発生するか否かのチェックを行うこ
    とを指示し、そのチェック結果がデッドロックが発生す
    ることを示している場合は、前記要求元に対してデッド
    ロック発生を通知し、デッドロックが発生しないことを
    示している場合は、前記ロック待ちキュー処理部に対し
    てタイマ処理が不要であることを指示すると共に前記ロ
    ック要求を出力するタイマ作動制御処理部を有し、 前記デッドロックチェック処理部は、前記ロック要求コ
    マンド処理部からの指示に従ったデッドロックチェック
    を行う構成を有し、 前記ロック待ちキュー処理部は、前記タイマ作動制御処
    理部からタイマ処理が不要であることが指示された事象
    については、タイマ処理の開始を指示しない構成を備え
    たことを特徴とする請求項1記載の排他制御装置。
JP8188575A 1996-06-29 1996-06-29 排他制御装置 Expired - Lifetime JP2850863B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8188575A JP2850863B2 (ja) 1996-06-29 1996-06-29 排他制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8188575A JP2850863B2 (ja) 1996-06-29 1996-06-29 排他制御装置

Publications (2)

Publication Number Publication Date
JPH1021098A true JPH1021098A (ja) 1998-01-23
JP2850863B2 JP2850863B2 (ja) 1999-01-27

Family

ID=16226089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8188575A Expired - Lifetime JP2850863B2 (ja) 1996-06-29 1996-06-29 排他制御装置

Country Status (1)

Country Link
JP (1) JP2850863B2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282815A (ja) * 1998-03-31 1999-10-15 Nec Corp マルチスレッド計算機システム及びマルチスレッド実行制御方法
JP2006525573A (ja) * 2003-05-01 2006-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ロックおよびトランザクションの管理
US7870111B2 (en) 2003-05-01 2011-01-11 International Business Machines Corporation Method, system, and program for lock and transaction management
US8495131B2 (en) 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
CN103761182A (zh) * 2013-12-26 2014-04-30 上海华为技术有限公司 一种死锁检测方法及装置
WO2014112066A1 (ja) * 2013-01-17 2014-07-24 富士通株式会社 情報処理装置、メモリ管理方法及びプログラム
US8898127B2 (en) 2011-12-02 2014-11-25 International Business Machines Corporation Device and method for acquiring resource lock
JP2015075871A (ja) * 2013-10-08 2015-04-20 株式会社リコー 排他制御プログラム、情報処理装置、排他制御方法
JP2018511886A (ja) * 2015-04-01 2018-04-26 アビニシオ テクノロジー エルエルシー 分散型コンピューティングシステムにおけるデータベーストランザクションの処理
CN109445951A (zh) * 2018-10-31 2019-03-08 新华三技术有限公司 一种信息处理方法及装置
CN111538599A (zh) * 2020-04-23 2020-08-14 杭州涂鸦信息技术有限公司 一种基于linux的多线程死锁问题定位方法及系统

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282815A (ja) * 1998-03-31 1999-10-15 Nec Corp マルチスレッド計算機システム及びマルチスレッド実行制御方法
US8495131B2 (en) 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
US8768905B2 (en) 2003-05-01 2014-07-01 International Business Machines Corporation Managing locks and transactions
JP2006525573A (ja) * 2003-05-01 2006-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ロックおよびトランザクションの管理
US8161018B2 (en) 2003-05-01 2012-04-17 International Business Machines Corporation Managing locks and transactions
US8200643B2 (en) 2003-05-01 2012-06-12 International Business Machines Corporation Lock and transaction management
US7844585B2 (en) 2003-05-01 2010-11-30 International Business Machines Corporation Method, system, and program for managing locks and transactions
US7870111B2 (en) 2003-05-01 2011-01-11 International Business Machines Corporation Method, system, and program for lock and transaction management
US9189512B2 (en) 2011-12-02 2015-11-17 International Business Machines Corporation Device and method for acquiring resource lock
US8898127B2 (en) 2011-12-02 2014-11-25 International Business Machines Corporation Device and method for acquiring resource lock
WO2014112066A1 (ja) * 2013-01-17 2014-07-24 富士通株式会社 情報処理装置、メモリ管理方法及びプログラム
JP2015075871A (ja) * 2013-10-08 2015-04-20 株式会社リコー 排他制御プログラム、情報処理装置、排他制御方法
CN103761182A (zh) * 2013-12-26 2014-04-30 上海华为技术有限公司 一种死锁检测方法及装置
JP2018511886A (ja) * 2015-04-01 2018-04-26 アビニシオ テクノロジー エルエルシー 分散型コンピューティングシステムにおけるデータベーストランザクションの処理
CN109445951A (zh) * 2018-10-31 2019-03-08 新华三技术有限公司 一种信息处理方法及装置
CN109445951B (zh) * 2018-10-31 2020-09-25 新华三技术有限公司 一种信息处理方法及装置
CN111538599A (zh) * 2020-04-23 2020-08-14 杭州涂鸦信息技术有限公司 一种基于linux的多线程死锁问题定位方法及系统

Also Published As

Publication number Publication date
JP2850863B2 (ja) 1999-01-27

Similar Documents

Publication Publication Date Title
EP0618532B1 (en) Deadlock detecting device
US5095421A (en) Transaction processing facility within an operating system environment
EP0428006B1 (en) Multilevel locking system and method
US7281050B2 (en) Distributed token manager with transactional properties
US6757769B1 (en) Cooperative lock override procedure
US6691194B1 (en) Selective association of lock override procedures with queued multimodal lock
US7536582B1 (en) Fault-tolerant match-and-set locking mechanism for multiprocessor systems
US7337444B2 (en) Method and apparatus for thread-safe handlers for checkpoints and restarts
US5987550A (en) Lock mechanism for shared resources in a data processing system
US20020138483A1 (en) Selective pessimistic locking for a concurrently updateable database
JPS61233849A (ja) デ−タベ−ス排他制御方法
JPH06103132A (ja) 並行制御方法
US5764976A (en) Method and system of deadlock detection in a data processing system having transactions with multiple processes capable of resource locking
JPH1021098A (ja) 排他制御装置
US6609178B1 (en) Selective validation for queued multimodal locking services
US6430638B1 (en) Thread synchronization via selective object locking
JP2804478B2 (ja) タスク制御方式及びオンライン・トランザクション・システム
JPS6336545B2 (ja)
JP4476011B2 (ja) データベースシステム、データベース不整合回避方法およびプログラム
JPS6320634A (ja) 計算機資源排他制御方式
JP2514671B2 (ja) デ―タアクセス制御方法
JPH1131080A (ja) 動的ロックのデッドロック検出方法及び方式
JP3527389B2 (ja) プロセス間通信方法およびプロセス間通信システム
JPH04116762A (ja) スピン・ロック制御方式
JP2000259436A (ja) 分散オブジェクト環境における排他制御方式