JPH1131080A - 動的ロックのデッドロック検出方法及び方式 - Google Patents

動的ロックのデッドロック検出方法及び方式

Info

Publication number
JPH1131080A
JPH1131080A JP9202471A JP20247197A JPH1131080A JP H1131080 A JPH1131080 A JP H1131080A JP 9202471 A JP9202471 A JP 9202471A JP 20247197 A JP20247197 A JP 20247197A JP H1131080 A JPH1131080 A JP H1131080A
Authority
JP
Japan
Prior art keywords
lock
deadlock
resource
resources
serialization
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.)
Pending
Application number
JP9202471A
Other languages
English (en)
Inventor
Jun Tanabe
純 田辺
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 JP9202471A priority Critical patent/JPH1131080A/ja
Publication of JPH1131080A publication Critical patent/JPH1131080A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】資源の数が動的に変動するような多重プログラ
ミング環境の計算機システムにおいて、資源に対する逐
次化要求時に発生するデッドロックの完全な検出を、シ
ステムの性能を損なうことなく実現する方式の提供。 【解決手段】システム運用中にロック待ちが発生したと
きに、初めて、手続と資源の要求と取得の関係を生成
し、この要求と取得の関係に循環が発生していないかチ
ェックすることで、デッドロックの検出を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デッドロック検出
方法及び回避方法に関し、特に、多重プログラミングの
計算機システムにおいて、動的に変動する資源の排他制
御時に発生するデッドロックの検出方法及び方式に関す
る。
【0002】
【従来の技術】以下、逐次化要求を実現するための排他
制御機構で、手続が資源を排他的に要求することを「ロ
ックする」、手続が資源の排他的な要求を止めることを
「アンロックする」、手続が資源を排他的に占有してい
る状態を「ロック状態である」という。
【0003】多重プログラミング環境の計算機システム
において、図7(A)に示すように、手段Aが資源1を
ロックしている最中に資源2のロックを待ち、手段Bが
資源2をロックしている最中に資源1のロックを待つと
いう具合に、手続と資源の要求と取得の関係に循環が発
生すると、システムはハングアップ状態となる。このよ
うな状態を「デッドロック」と呼ぶ。
【0004】一般には、逐次化要求を実現するために、
各々の資源に一対一で対応するロックが存在している。
前述のデッドロック状態は、資源1に対応するロック1
と、資源2に対応するロック2と、手続Aが資源1を取
得した状態で資源2を要求していることを示す順序関係
(ロック1からロック2へのリンク)と、手続Bが資源
2を取得した状態で資源1を要求していることを示す順
序関係(ロック2からロック1へのリンク)を使って、
図7(B)に示すように、モデル化することができる。
このモデルでは、ロック間の順序関係に循環が発生する
とデッドロックが生じたことになる。
【0005】このようなデッドロックが発生することを
防ぐために、従来から様々な方法が取られてきた。デッ
ドロックの完全な検出方法は、前述の「手続と資源の要
求と取得の関係情報」を、ロック時とアンロック時に毎
回更新し、この関係に循環が発生していないかチェック
するというものである。
【0006】図7(C)では、手続Aが資源1と資源2
を取得した状態で資源3を要求し、手続きBが資源3と
資源4を取得した状態で資源5を要求し、手続Cが資源
5を取得した状態で資源2を要求している。この場合、
手続Cが資源2を要求した段階で循環が発生し、デッド
ロックを検出することができる。この方式では、デッド
ロック発生の検出に必要十分な情報が得られるものの、
ロックとアンロックに大きなコストがかかり、性能を要
求される場面での利用は現実的ではなかった。
【0007】これに対して、一般によく用いられるデッ
ドロック検出方法は、まず予め全ての資源(すなわち対
応するロック)に順序関係を与えておき、多重に資源を
ロックする際にこの順序にしたがってロックするという
制限を設けて、逆純にロックをとろうとした時にデッド
ロックを検出したとみなす、というものである。
【0008】図7(D)では、予め資源に、 資源1<資源2<資源3<資源4<資源5 という順序関係を与えておき、ロック時にこの順番にロ
ックされていることをチェックする。
【0009】この場合、手続Cが資源5を取得した状態
で資源2を要求したところで、デッドロックが検出され
る。この方式では、ロック時に順序をチェックするだけ
なのでコストが少なくてすみ、デッドロック検出機構そ
のものも単純で簡単に実現できる。しかしながら、実際
には、デッドロックが発生しないような場合まで、デッ
ドロックと検出している点や、予め資源の総数を決めて
おく必要があるため、システム運用中に動的に資源が増
加するような場合に適用することはできず、必ずしも柔
軟なロック機構とはいえない。
【0010】なお、例えば特開昭61−51245号公
報には、ある資源に対して使用権を現に有しているプロ
セスと前記資源に対して逐次化要求を発行して待ち状態
に入る別異のプロセスとの関係を定めておき、資源に対
する逐次化要求が発行される毎に前記関係を調整してデ
ッドロックの発生を検出するようにした、資源の逐次化
要求におけるデッドロック検出方法が提案されている。
【0011】
【発明が解決しようとする課題】前述したように、従来
のデッドロック検出方式においては、完全なデッドロッ
クの検出を実現する場合、デッドロックの検出そのもの
に大きなコストがかかり、オペレーティングシステムな
ど性能が要求される場面に適用することが困難である、
という問題点を有している。
【0012】その理由は、完全なデッドロックの検出を
行うためには、ロックとアンロックの度に、毎回、手続
と資源の要求と取得の関係情報を更新して、全ての関係
について循環が発生していないかどうかをチェックしな
ければならない、ためである。
【0013】次にデッドロック検出に要するコストを抑
えるために予め資源に優先順位を与えるという従来方式
においては、不必要に資源への要求を制限してしまって
いる、という問題点を有している。
【0014】その理由は、デッドロックにならない場合
までデッドロックとして検出する場合がある、ためであ
る。
【0015】また、資源の数が動的に変動する場合に対
応することができない、という問題点も有している。
【0016】その理由は、資源と手続きの関係のうち、
手続きの発生する時間的側面を無視して、資源同士の関
係だけから、デッドロックを検出しようとしている、た
めである。
【0017】したがって、本発明は、上記問題点に鑑み
てなされたものであって、その目的は、資源の数が動的
に変動するような多重プログラミング環境の計算機シス
テムにおいて、資源に対する逐次化要求時に発生するデ
ッドロックの完全な検出を、システムの性能を損なうこ
となく実現する方式を提供することにある。
【0018】
【課題を解決するための手段】前記目的を達成するた
め、本発明のデッドロック検出方法は、システム運用中
にロック待ちが発生したときに、初めて手続と資源の要
求と取得の関係を生成し、この要求と取得の関係に循環
が発生しているかをチェックして、デッドロックの検出
を行う、というものである。
【0019】また、本発明のデッドロック検出方式は、
資源の数が動的に変動するような多重プログラミング環
境の計算機システムにおいて、プロセスによる逐次化要
求の対象となる資源と、プロセスの資源に対する逐次化
要求を実現するために前記資源と一対一に対応するロッ
クを動的に生成するロック生成手段と、実際にプロセス
が資源をロックするためのロック手段であって、プロセ
スがどのような順番で資源への逐次化要求を行ったかを
示すプロセスからロックへ、さらにロックからロックへ
と張られたリンクで構成されるロックリスロックリスト
に、ロックを追加するロックリスト挿入手段と、プロセ
スの資源に対するロックの順序関係を生成する順序関係
生成手段と、デッドロックの検出を行うデッドロック検
出手段と、を備えたロック手段と、ロックを解放するア
ンロック手段と、前記資源が消去した場合、生成したロ
ックを消去するロック消去手段と、を備え、任意のプロ
セスがある資源に対して逐次化要求を行った際に、前記
資源に対応したロックが取得できずロック待ちが発生し
た場合に、前記順序関係生成手段にて、前記プロセスか
らリンクされているロックリストをもとに、ロックの順
序関係を表すロック順序関係情報に反映し、前記デッド
ロック検出手段にて、前記ロック順序関係情報に循環が
発生していないかどうかをチェックすることでデッドロ
ックを検出する、ことを特徴とする。
【0020】[発明の概要]デッドロックはロック待ち
が発生した場合にのみ起こる現象である。本発明におい
ては、最も性能が要求されるロック待ちが発生しない場
合は、手続きと資源の要求取得関係やデッドロックの検
出は一切行わず、多重にロックした場合のロックの順序
関係だけを生成する。ロック待ちが発生した場合は、そ
の時点で行うべき処理がないため、通常はスピンして待
ったり、他にプロセッサをゆずったりすることになる。
したがって、この時に、要求取得関係の生成やデッドロ
ックの検出を行っても、性能低下にはならない。
【0021】これにより、動的に生成される資源に対す
るロックも含めて、性能を損なうことなく完全なデッド
ロックの検出を行うことができる。
【0022】
【発明の実施の形態】本発明の実施の形態の構成につい
て図面を参照して以下に説明する。
【0023】[実施の形態1]図1は、本発明の第一の
実施の形態を説明するための図である。本発明の第一の
実施の形態は、多重プログラミング環境の計算機システ
ムにおいて、図1(A)に示すように、手続を表すN個
のプロセス1−Aと、プロセスによる逐次化要求の対象
となるM個の資源1−Bと、プロセスの資源に対する逐
次化要求を実現するために資源と一対一に対応するM個
のロック1−Cと、プロセスがどのような順番で資源へ
の逐次化要求を行ったか(どのような順序でロックを取
得したか)を示す、プロセスからロックへ、さらにロッ
クからロックへと張られたリンクで構成されるN個のロ
ックリスト1−Dと、ロックリストをもとに作成される
ロックの順序関係をあらわすロック順序関係ツリー1−
Eから構成される。
【0024】また、図1(B)に示すように、ロックを
動的に生成するロック生成手段10と、実際にプロセス
が資源をロックするためのロック手段20と、ロックを
解放するアンロック手段30と、生成したロックを消去
するロック消去手段40から構成される。
【0025】ロック手段20はロックリストにロックを
追加するロックリスト挿入手段21と、プロセスの資源
に対するロックの順序関係を生成する順序関係生成手段
22と、デッドロックの検出を行うデッドロック検出手
段23と、を備えている。
【0026】アンロック手段3は、ロックリストからロ
ックを削除するロックリスト削除手段31を備えてい
る。
【0027】ロック消去手段4は、順序関係を消去する
順序関係消去手続41を備えている。
【0028】次に、本発明の第一の実施の形態の動作に
ついて説明する。図2はロック手段2の動作を説明する
ための流れ図である。
【0029】まず、システム運用中の任意の時点で資源
j1が生成された場合、ロック生成手段10によりロッ
クj1を生成する。
【0030】次に任意のプロセスi1が資源j1に対す
る逐次化要求を行うために、ロック手段20によりロッ
クj1を取得する。ロクックを取得した場合(ステップ
101のyes分岐)、この後、ロックj1がアンロッ
ク手段30によりアンロックされるまで、資源j1に対
する要求は逐次化される。最後に、資源j1が消滅した
場合、ロック消去手段4により、ロックj1が消去され
る。
【0031】ロック手段20では、ロックリスト挿入手
段21により、プロセスi1からロックj2にリンクが
張られる。すでにプロセスi1が他のロックj2を取得
している場合には、さらにロックj2からロックj1に
リンクが張られる。このようにして、プロセスi1が多
重に資源をロックしている場合、各ロックがロックされ
た順序にリンクされたロックリストi1が生成される。
アンロック手段30では、ロックリスト削除手段31に
より、ロックリストi1からロックj1が削除される。
まだプロセスi1が他のロックj2を取得している場合
は、ロックj1に変わってロックj2がプロセスi1か
らリンクし直される。
【0032】以上の操作はいずれも単純な処理であり、
ロック手段20でロック待ちが発生しなかった場合は、
順序関係生成手段22とデッドロック検出手段23は実
行されず、性能への影響はない。
【0033】もし、ロック手段20でロックj1が他の
プロセスi2によりロックされていた場合は、ロック待
ちが発生する。ロック待ちが発生した場合には(ステッ
プ101のno分岐)、順序関係生成手段22により、
プロセスi1からリンクされているロックリストi1
が、ロック順序関係ツリー1−Eに反映される(ステッ
プ102)。
【0034】次にデッドロック検出手段23により、ロ
ック順序関係ツリー1−Eに循環が発生していないかど
うかをチェックすることで、デッドロックを検出する
(ステップ03)。ここでは、本当にその場でデッドロ
ックが発生している場合と、将来のいずれかの時点でデ
ッドロックが発生する可能性の、二つのパターンを検出
することが可能である。
【0035】最後に、ロック消去手段40では、順序関
係消去手段41により、ロック順序関係ツリー1−Eか
らロックj1の情報が消去される。
【0036】本発明の第一の実施の形態では、最も性能
の要求されるロック待ちが発生しない場合には、ロック
の順序関係の生成やデッドロックの検出は一切行わず、
ロック待ちが発生した時に、初めて、待ち時間を利用し
て、順序関係の生成とデッドロックの検出を行うように
したことにより、システム全体の性能を損なうことな
く、デッドロックの検出を可能としている。
【0037】また、本発明の第一の実施の形態において
は、予め資源に(すなわちロックに)、静的な順序関係
を持たせるようなことを行っていないので、動的に資源
の数が変動するようなシステムにおいても、完全なデッ
ドロックの検出が可能となっている。
【0038】[実施例1]上記した本発明の実施の形態
について更に詳細に説明すべく、本発明の第一の実施例
とその動作について、図面を参照して詳細に説明する。
【0039】図3は、本発明の第一の実施例を説明する
ための図である。図3を参照すると、まずプロセスAが
ロック1を取得し、更にロック1をアンロックする以前
にロック2を多重にロックしたとする。これにより、ロ
ック1→ロック2というロックリストが生成される。
【0040】次に、プロセスCがロック6を取得した後
にロック1を多重に取得しようとするが、既にロック1
はプロセスAに取得されているので、ロック待ちにな
る。
【0041】これにより、ロック6→ロック1というロ
ックリストが生成され、このロックリストがロック順序
関係ツリー1−Eに反映され、ロック順序関係ツリーに
循環が発生していないかどうかをデッドロック検出手段
でチェックする。
【0042】次に、プロセスBが、ロック3とロック4
とロック5をこの順番に多重にロックし、さらにロック
6を取得しようとしてロック待ちになる。
【0043】これにより、ロック3→ロック4→ロック
5→ロック6というロックリストが生成され、このロッ
クリストがロック順序関係ツリー1−Eに反映され、循
環が発生していないかどうかをデッドロック検出手段で
チェックする。
【0044】この時点で、ロック順序関係ツリー1−E
は、ロック3→ロック4→ロック5→ロック6→ロック
1となっている。
【0045】ここで、プロセスAがロック1をアンロッ
クする前にロック3を取得しようとしてロック待ちにな
ったとする。これによりロック1→ロック2→ロック3
というロックリストが生成され、ロック順序関係ツリー
1−Eに反映される。
【0046】すると、ロック順序関係ツリー1−Eに、
ロック1→ロック2→ロック3→ロック4→ロック5→
ロック6→ロック1という循環が発生し、デッドロック
が検出される。
【0047】この場合、実際にシステムがデッドロック
に陥っており、これを検出したことになる。
【0048】仮に、ここで、上記3つの各プロセスA、
B、Cのそれぞれの上記したロック操作が、時間的に完
全に独立して発生していたとしたら、システムはデッド
ロックに陥ることはない。しかし、これは、タイミング
によるもので、いずれはデッドロックとなる可能性を含
むものであり、本来、デッドロックと検出してもよいも
のである。
【0049】本実施例では、上記のように、各プロセス
が一度でもロック待ちになってロック順序関係ツリーに
ロック順序が反映されていれば、このような将来発生し
得るデッドロックを、予め検出することも可能である。
【0050】[実施の形態2]次に、本発明の第二の実
施の形態について説明する。図4は、本発明の第二の実
施の形態を説明するための図である。本発明の第二の実
施の形態は、多重プログラミング環境の計算機システム
において、図4(A)に示すように、任意の手続を表す
N個のプロセス1−Aと、プロセスによる逐次化要求の
対象となるM個の資源1−Bと、プロセスの資源に対す
る逐次化要求を実現するために資源と一対一に対応する
M個のロック1−Cと、プロセスがどのような順序で資
源への逐次化要求を行ったか(どのような順序でロック
を取得したか)を示すロックからロックへと張られたリ
ンクで構成されるN個のロックリスト1−Dと、から構
成される。本発明の第二の実施の形態では、前記第一の
実施の形態と異なりロック順序関係ツリーは備えない。
【0051】また、図4(B)に示すように、ロックを
動的に生成するロック生成手段10と、実際にプロセス
が資源をロックするためのロック手段20と、ロックを
解放するアンロック手段30と、生成したロックを消去
するロック消去手段40と、を備えて構成される。
【0052】ロック手段20は、ロックリストにロック
を追加するロックリスト挿入手段21と、デッドロック
の検出を行うデッドロック検出手段23と、デッドロッ
クを回避するデッドロック回避手段24と、を備えてい
る。
【0053】アンロック手段30は、ロックリストから
ロックを削除するロックリスト削除手段31を備えてい
る。本発明の第二の実施の形態においては、前記第一の
実施の形態と異なり、順序関係生成手段22や順序関係
消去手段41は具備しない。
【0054】次に、本発明の第二の実施の形態の動作に
ついて図面を参照して詳細に説明する。図5は、本発明
の第二の実施の形態におけるロック手段20の動作を説
明する流れ図である。
【0055】システム運用中の任意の時点で資源j1が
生成された場合、ロック生成手段1によりロックj1を
生成する。次に任意のプロセスi1が資源j1に対する
逐次化要求を行うために、ロック手段20によりロック
j1を取得する。この後、ロックj1がアンロック手段
3によりアンロックされるまで、資源j1に対する要求
は逐次化される。最後に、資源j1が消滅した場合、ロ
ック消去手段4により、ロックj1が消去される。
【0056】ロック手段2では、ロックリスト挿入手段
21により、プロセスi1からロックj1にリンクが張
られる。すでにプロセスi1が他のロックj2を取得し
ている場合はさらにロックj2からロックj1にリンク
が張られる。このようにしてプロセスi1が多重に資源
をロックしている場合、各ロックがロックされた順番に
リンクされたロックリストi1が生成される。アンロッ
ク手段30では、ロックリスト削除手段31により、ロ
ックリストi1からロックj1が削除される。まだプロ
セスi1が他のロックj2を取得している場合は、ロッ
クj1に変わってロックj2がプロセスi1からリンク
し直される。
【0057】以上の操作はいずれも単純な処理であり、
ロック手段20でロック待ちが発生しなかった場合は、
デッドロック検出手段23は実行されず、性能への影響
はない。
【0058】もし、ロック手段20でロックj1が他の
プロセスi2によりロックされていた場合は、ロック待
ちが発生する。ロック待ちが発生した場合には、デッド
ロック検出手段23により、ロックリストそのものに循
環が発生していないかどうかチェックすることで(ステ
ップ202)、デッドロックを検出する。この第二の実
施の形態では、本当に、その場でデッドロックが発生し
ている場合のみ検出し、将来発生する可能性のあるデッ
ドロックは検出しない。
【0059】デッドロックが検出されたら、デッドロッ
ク回避手段24により、ロック待ち時間中に、先に資源
j2に対する逐次化要求を処理して、ロックj2をアン
ロックするなどして、デッドロックの回避を行う。
【0060】本発明の第二の実施の形態では、最も性能
の要求されるロック待ちが発生しない場合には、デッド
ロックの検出は一切行わず、ロック待ちが発生した時に
初めて、待ち時間を利用して、デッドロックの検出を行
うことで、システム全体の性能を損なうことなく、デッ
ドロックの回避を可能としている。
【0061】また、本発明の第二の実施の形態では、予
め資源に(すなわちロックに)静的な順序関係を持たせ
たりしないので、動的に資源の数が変動するようなシス
テムにおいても、完全なデッドロックの検出が可能とな
っている。
【0062】[実施例2]上記した本発明の第二の実施
の形態について更に詳細に説明すべく、本発明の第二の
実施例とその動作について、図面を参照して詳細に説明
する。図6は、本発明の第二の実施例を説明するための
図である。
【0063】ここでは、N個のプロセスがこれに一対一
に対応するN個のバッファ領域(資源に相当する)を利
用して、互いにメッセージのsendとreceive
を行うことを想定する。この例では手続き(プロセス)
と資源の数が一致する。プロセスAはプロセスBに対応
するバッファにメッセージをsendし、プロセスBは
自分のバッファからメッセージをreceiveする。
sendとreceiveは逐次化要求でなければなら
ない。また、対象とするバッファが空のときはsend
は成功するが、receiveはロック待ちとなる。逆
にバッファが埋まっている時はsendはロック待ちと
なるがreceiveは成功する。ここで、プロセスB
のバッファが埋まっており、プロセスAがプロセスBに
メッセージをsendできずにロック待ちとなっている
ことを、「プロセスAがプロセスBへのsendを待っ
ている」と表現する。
【0064】図6を参照すると、まず、プロセスAがプ
ロセスBへのsendを待っており、ロックAからロッ
クBにリンクが張られる。プロセスBはプロセスCへの
sendを待っており、ロックBからロックCにリンク
が張られる。ここでプロセスCがプロセスAへのsen
dを行おうとしてロック待ち状態になると、ロックCか
らロックAにリンクが張られ、ロックリストに循環が発
生し、デッドロックが検出される。デッドロックが検出
された場合、プロセスCがロック待ち時間中にプロセス
C自身のreceive処理を実行することで、デッド
ロックを回避する事ができる。
【0065】
【発明の効果】以上説明したように、本発明によれば、
下記記載の効果を奏する。
【0066】本発明の第一の効果は、動的に資源の数が
変動するようなシステムにおいても、性能を損なうこと
なく完全なデッドロックの検出を行うことができる、と
いうことである。
【0067】その理由は、本発明においては、最も性能
の要求されるロック待ちが発生しない時にはロックの順
序関係の生成やデッドロックの検出は一切行わず、ロッ
ク待ちが発生した時に初めて、待っている時間を利用し
て、順序関係の生成とデッドロックの検出を行う、よう
に構成したことによる。そして本発明においては、予め
資源に(すなわちロックに)静的な順序関係を持たせた
りしないため、動的に資源の数が変動するようなシステ
ムにおいても、完全なデッドロックの検出が可能である
ためである。
【0068】本発明の第二の効果は、実際にシステムが
デッドロックに陥っていなくとも、将来発生し得るデッ
ドロックを事前に検出することができる、ということで
ある。
【0069】その理由は、本発明においては、ロックの
順序関係の履歴を構築している、からである。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態の構成を説明するた
めの図である。
【図2】本発明の第一の実施の形態の動作を示す流れ図
である。
【図3】本発明の第一の実施例を説明するための図であ
る。
【図4】本発明の第二の実施の形態の構成を説明するた
めの図である。
【図5】本発明の第二の実施の形態の動作を示す流れ図
である。
【図6】本発明の第二の実施例を説明するための図であ
る。
【図7】従来技術を説明するための図である。
【符号の説明】
1−A プロセス 1−B 資源 1−C ロック 1−D ロックリスト 1−E ロック順序関係ツリー 10 ロック生成手段 20 ロック手段 21 ロックリスト挿入手段 22 順序関係生成手段 23 デッドロック検出手段 24 デッドロック回避手段 30 アンロック手段 31 ロックリスト削除手段 40 ロック消去手段 41 順序関係消去手段

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】資源の数が動的に変動するような多重プロ
    グラミング環境の計算機システムにおいて、 資源に対する逐次化要求を実現するための排他制御機構
    で、逐次化要求待ち、すなわちロック待ち状態が発生し
    た場合に、手続と資源の逐次化の要求と取得の関係を更
    新し、デッドロックを検出する、ことを特徴とするデッ
    ドロック検出方法。
  2. 【請求項2】請求項1記載のデッドロック検出方法によ
    り、デッドロックを検出した際に、資源に対する逐次化
    要求の順序を変えて、デッドロックを回避する、ことを
    特徴とデッドロック回避方法。
  3. 【請求項3】請求項1記載のデッドロック検出方法によ
    り、デッドロックを検出した際に、資源に対する逐次化
    要求そのものを拒絶して、デッドロックを回避する、こ
    とを特徴とするデッドロック回避方法。
  4. 【請求項4】資源の数が動的に変動するような多重プロ
    グラミング環境の計算機システムにおいて、 プロセスによる逐次化要求の対象となる資源と、 プロセスの資源に対する逐次化要求を実現するために前
    記資源と一対一に対応するロックを動的に生成するロッ
    ク生成手段と、 実際にプロセスが資源をロックするためのロック手段で
    あって、 プロセスがどのような順番で資源への逐次化要求を行っ
    たかを示すプロセスからロックへ、さらにロックからロ
    ックへと張られたリンクで構成されるロックリスロック
    リストに、ロックを追加するロックリスト挿入手段と、 プロセスの資源に対するロックの順序関係を生成する順
    序関係生成手段と、 デッドロックの検出を行うデッドロック検出手段と、 を備えたロック手段と、 ロックを解放するアンロック手段と、 前記資源が消去した場合、生成したロックを消去するロ
    ック消去手段と、 を備え、 任意のプロセスがある資源に対して逐次化要求を行った
    際に、前記資源に対応したロックが取得できずロック待
    ちが発生した場合に、前記順序関係生成手段にて、前記
    プロセスからリンクされているロックリストをもとに、
    ロックの順序関係を表すロック順序関係情報に反映し、 前記デッドロック検出手段にて、前記ロック順序関係情
    報に循環が発生していないかどうかをチェックすること
    でデッドロックを検出する、 ことを特徴とするデッドロック検出方式。
  5. 【請求項5】前記ロック消去手段が、前記ロックの順序
    関係を消去する手段を備えたことを特徴とする請求項4
    記載のデッドロック検出方式。
  6. 【請求項6】資源の数が動的に変動するような多重プロ
    グラミング環境の計算機システムにおいて、 プロセスによる逐次化要求の対象となる資源と、 プロセスの資源に対する逐次化要求を実現するために前
    記資源と一対一に対応するロックを動的に生成するロッ
    ク生成手段と、 実際にプロセスが資源をロックするためのロック手段で
    あって、 プロセスがどのような順番で資源への逐次化要求を行っ
    たかを示すプロセスからロックへ、さらにロックからロ
    ックへと張られたリンクで構成されるロックリスロック
    リストに、ロックを追加するロックリスト挿入手段と、 デッドロックの検出を行うデッドロック検出手段と、 デッドロックを回避する手段と、 を備えたロック手段と、 ロックを解放するアンロック手段と、 前記資源が消去した場合、生成したロックを消去するロ
    ック消去手段と、 を備え、 任意のプロセスがある資源に対して逐次化要求を行った
    際に、前記資源に対応したロックが取得できずロック待
    ちが発生した場合に、前記デッドロック検出手段が、前
    記ロックリストそのものに循環が発生していないかどう
    かをチェックすることで、デッドロックの検出を行い、 前記デッドロック回避手段は、デッドロックが検出され
    た際に、資源に対する逐次化要求の順序を変えるなどし
    てデッドロックを回避する、 ことを特徴とする、デッドロック検出方式。
  7. 【請求項7】資源の数が動的に変動するような多重プロ
    グラミング環境の計算機システムにおいて、 プロセスによる逐次化要求の対象となる資源に対する逐
    次化要求を実現するために前記資源と一対一に対応する
    ロックを動的に生成するロック生成手段と、 実際にプロセスが資源をロックするためのロック手段で
    あって、 プロセスがどのような順番で資源への逐次化要求を行っ
    たかを示すプロセスからロックへ、さらにロックからロ
    ックへと張られたリンクで構成されるロックリスロック
    リストに、ロックを追加するロックリスト挿入手段と、 プロセスの資源に対するロックの順序関係を生成する順
    序関係生成手段と、 デッドロックの検出を行うデッドロック検出手段と、 を備えたロック手段と、 ロックを解放するアンロック手段と、 前記資源が消去した場合、生成したロックを消去するロ
    ック消去手段と、 を備え、 任意のプロセスがある資源に対して逐次化要求を行った
    際に、前記資源に対応したロックが取得できずロック待
    ちが発生した場合に、前記順序関係生成手段にて、前記
    プロセスからリンクされているロックリストをもとに、
    ロックの順序関係を表すロック順序関係情報に反映し、 前記デッドロック検出手段にて、前記ロック順序関係情
    報に循環が発生していないかどうかをチェックすること
    でデッドロックを検出する、 上記各手段を上記計算機上で機能させるためのプログラ
    ムを記録した記録媒体。
  8. 【請求項8】資源の数が動的に変動するような多重プロ
    グラミング環境の計算機システムにおいて、 プロセスによる逐次化要求の対象となる資源と、 プロセスの資源に対する逐次化要求を実現するために前
    記資源と一対一に対応するロックを動的に生成するロッ
    ク生成手段と、 実際にプロセスが資源をロックするためのロック手段で
    あって、 プロセスがどのような順番で資源への逐次化要求を行っ
    たかを示すプロセスからロックへ、さらにロックからロ
    ックへと張られたリンクで構成されるロックリスロック
    リストに、ロックを追加するロックリスト挿入手段と、 デッドロックの検出を行うデッドロック検出手段と、 デッドロックを回避する手段と、 を備えたロック手段と、 ロックを解放するアンロック手段と、 前記資源が消去した場合、生成したロックを消去するロ
    ック消去手段と、 を備え、 任意のプロセスがある資源に対して逐次化要求を行った
    際に、前記資源に対応したロックが取得できずロック待
    ちが発生した場合に、前記デッドロック検出手段が、前
    記ロックリストそのものに循環が発生していないかどう
    かをチェックすることで、デッドロックの検出を行い、 前記デッドロック回避手段は、デッドロックが検出され
    た際に、資源に対する逐次化要求の順序を変えるなどし
    てデッドロックを回避する、 上記各手段を上記計算機上で機能させるためのプログラ
    ムを記録した記録媒体。
JP9202471A 1997-07-11 1997-07-11 動的ロックのデッドロック検出方法及び方式 Pending JPH1131080A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9202471A JPH1131080A (ja) 1997-07-11 1997-07-11 動的ロックのデッドロック検出方法及び方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9202471A JPH1131080A (ja) 1997-07-11 1997-07-11 動的ロックのデッドロック検出方法及び方式

Publications (1)

Publication Number Publication Date
JPH1131080A true JPH1131080A (ja) 1999-02-02

Family

ID=16458079

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9202471A Pending JPH1131080A (ja) 1997-07-11 1997-07-11 動的ロックのデッドロック検出方法及び方式

Country Status (1)

Country Link
JP (1) JPH1131080A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005509943A (ja) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ セマフォを使用する効率的なfifo通信
CN100337207C (zh) * 2005-03-11 2007-09-12 华为技术有限公司 一种信号量死锁的检测方法
WO2012153722A1 (ja) * 2011-05-12 2012-11-15 日本電気株式会社 デッドロック予防装置、デッドロック予防方法、およびプログラム
JP2015194886A (ja) * 2014-03-31 2015-11-05 富士通株式会社 分散データ処理装置、分散データ処理方法および分散データ処理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005509943A (ja) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ セマフォを使用する効率的なfifo通信
CN100337207C (zh) * 2005-03-11 2007-09-12 华为技术有限公司 一种信号量死锁的检测方法
WO2012153722A1 (ja) * 2011-05-12 2012-11-15 日本電気株式会社 デッドロック予防装置、デッドロック予防方法、およびプログラム
US9323585B2 (en) 2011-05-12 2016-04-26 Nec Corporation Deadlock preventing apparatus, deadlock preventing method, and program
JP5950124B2 (ja) * 2011-05-12 2016-07-13 日本電気株式会社 デッドロック予防装置、デッドロック予防方法、およびプログラム
JP2015194886A (ja) * 2014-03-31 2015-11-05 富士通株式会社 分散データ処理装置、分散データ処理方法および分散データ処理プログラム

Similar Documents

Publication Publication Date Title
US7844665B2 (en) Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers
CN106790694B (zh) 分布式系统及分布式系统中目标对象的调度方法
KR100974156B1 (ko) 파일 서버 재초기화 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
US20040002974A1 (en) Thread based lock manager
US8386720B2 (en) Method for allowing exclusive access to shared data
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US7555775B2 (en) Recovering from device failure
US6681242B1 (en) Method and apparatus for detecting dependency cycles between resources in a computer system
CN109325016B (zh) 数据迁移方法、装置、介质及电子设备
US20070226269A1 (en) Method and system for an update synchronization of a domain information file
JPH0644195A (ja) 結合式データ処理システム用の方法および装置
US20070016905A1 (en) Blocking local sense synchronization barrier
JPH086840A (ja) サーバ回復のためのディレクトリ操作の完了を判定する機構
US7444634B2 (en) Method and apparatus for providing dynamic locks for global resources
JP4620871B2 (ja) マルチスレッドコンピュータシステムにおけるモニタ変換
US9323585B2 (en) Deadlock preventing apparatus, deadlock preventing method, and program
US20030126187A1 (en) Apparatus and method for synchronization in a multi-thread system of JAVA virtual machine
US10372682B2 (en) Maintaining data integrity
JPH1131080A (ja) 動的ロックのデッドロック検出方法及び方式
JP2009271858A (ja) 計算機システム及びプログラム
JP4196414B2 (ja) コンピュータリソースのロック処理
US7539678B2 (en) Systems and methods for controlling access to an object
US11348656B2 (en) Efficient resource sharing
Reddy et al. Asynchronous operations in distributed concurrency control
Bhalla The performance of an efficient distributed synchronization and recovery algorithm

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000523