JPH07191944A - 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 - Google Patents

多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法

Info

Publication number
JPH07191944A
JPH07191944A JP4198608A JP19860892A JPH07191944A JP H07191944 A JPH07191944 A JP H07191944A JP 4198608 A JP4198608 A JP 4198608A JP 19860892 A JP19860892 A JP 19860892A JP H07191944 A JPH07191944 A JP H07191944A
Authority
JP
Japan
Prior art keywords
resource
exclusive control
resources
processor
lock
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
JP4198608A
Other languages
English (en)
Inventor
Robert F Bartfai
ロバート、フランシス、バートファイ
Barry P Lubart
バリー、フィリップ、ルバート
Julian Thomas
ジュリアン、トーマス
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07191944A publication Critical patent/JPH07191944A/ja
Pending 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
    • G06F9/524Deadlock detection or avoidance

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)【要約】 【目的】 多数の資源を要求する多重プロセッサコンピ
ュータシステムにおけるデッドロックを防止するための
システムおよび方法を供する。 【構成】 本システムは、多資源命令が資源のうちの1
つを取得することを妨げられる、潜在的なデッドロック
状況を検出する。多くて1つのプロセッサによって保持
することが可能な、多資源命令大域的ロックが付与され
る。競合検出時に、プロセッサはこの多資源命令大域的
ロックを取得しようと試み、成功すれば、資源取得を再
開する。大域的ロックの使用は、多数の資源要求を直列
化し、そのロックを保持しているプロセッサが別のプロ
セッサとのデッドロックを伴わずに全部の要求された資
源を事実上取得できることを保証する。好ましい実施例
は、オーバヘッドの影響を最小限にするために、例外を
ベースにして大域的ロックを取得する。しかし、各多資
源命令において大域的ロックを使用する他の実施例も実
施することができよう。プロセッサによるシノニムロッ
クへのアドレス分解によって競合が生じる状況を検出す
るために、シノニム検出論理が付与されている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子情報処理システ
ム、詳細には、多重プロセッサ環境における資源へのア
クセスを制御するための装置および方法に関する。
【0002】
【従来の技術および発明が解決しようとする課題】電子
情報処理システムのハードウエアおよびオペレーティン
グシステムのソフトウエアの設計は、内部記憶場所、外
部記憶装置、入出力装置などの資源へのアクセスの完全
性を保証するための手段を要求する。複数のタスクが1
つの資源にアクセスし変更しようとした場合、資源の競
合が生じ得る。単一プロセッサ機器構成では、単一の命
令の流れだけが制御転送の既知の時点に関して実行して
いるという固有の特性を用いて、資源の競合を管理す
る。単一プロセッサの場合、オペレーティングシステム
またはアプリケーションの命令は、資源の完全性を維持
するために、資源制御を効果的に管理できる。多重プロ
セッサシステムでは、単一の命令の流れの内容がもはや
各資源への全体のアクセスを決定できないことから、余
分な複雑さを招く。
【0003】多重プロセッサシステムでは、資源の競合
は、2つ以上のプロセッサが単一資源を制御しようとし
た場合に生じる。資源の競合は、従来、資源へのアクセ
スを直列化するための機構を実施することにより解決さ
れてきた。これらの機構は、通常、任意の時期において
単一のプロセッサだけが資源を制御できるようにする、
いずれかの形式の資源ロックを実施している。多数のプ
ロセッサによるアクセスは、この機構によって、並列で
はなく直列で生じるようにさせられる。各種ロック形式
の使用に加えて、ロックを必要としないパッシブシリア
ライゼーションの技法が存在する(共有譲渡された米国
特許第 4,809,168号明細書“Passive Serialization in
A Multitasking Environment ”参照)。
【0004】資源ロックは、あるプロセッサがロックを
取得し、命令を実行し、ロックを解除して、その結果、
その資源が別のプロセッサに使用可能となる、という前
提で動作する。2つ以上の資源に同時にアクセスする要
求を伴う命令は、潜在的に、2つのプロセッサが互いに
必要なロックを解除するのを待っている場合、デッドロ
ック状況をもたらす可能性がある。すなわち、第1のプ
ロセッサは、第2のプロセッサによって保持されている
第2の資源を取得するまで、タスク処理を完了できない
であろう。逆に、第2のプロセッサは、第1のプロセッ
サによって保持されているその資源を取得するまで、タ
スク処理を完了できないであろう。こうした性質のデッ
ドロックは、通常、コンピュータシステムの再始動を必
要とし、これは大規模コンピュータ処理システムで最も
望ましくない事象である。
【0005】多重プロセッサによるデッドロックの可能
性は、2つ以上の資源への同時アクセスの要求を避ける
ように設計されたソフトウエアおよびハードウエアを生
じさせている。この代替法は、単一のプロセッサに対し
て1つの全体クラスまたは複数のクラスの資源をロック
する直列化機構を実施することである。例えば、特定の
待ち行列を表現するメモリ記憶域が多数の資源要求に当
てられた場合、その待ち行列全体へのアクセスは、待ち
行列ロックの使用によって直列化される。しかし、大き
な資源ブロックのこうしたロッキングは、タスクスケジ
ューリングその他の時間依存待ち行列といった基本オペ
レーティングシステム機能を実施する際には、望ましく
ない。待ち行列全体でのロックの生成は、プロセッサア
クセスをロックし直列化することによってスループット
を低減させ、それにより、その全システム処理効率を低
下させる。
【0006】多数の資源への多重プロセッサアクセスの
第2の問題は、資源完全性の欠如の可能性である。資源
の同時アクセスおよび更新は、2つのプロセッサが調整
化された資源に対して競合する変更を行った場合、改悪
されたデータを生じる可能性がある。
【0007】時間依存リストが要求される多数のオペレ
ーティングシステム機能には、時間依存待ち行列が使用
される。例えば、多重プロセッサシステムによって処理
される次のタスクの「先入れ先出し」(FIFO)リス
トを含むタスクリスト待ち行列は、不可欠な作業管理ツ
ールである。リスト全体に対する単一プロセッサだけの
アクセスを可能にすることにより、他の全部のプロセッ
サは、その待ち行列に作業を挿入したり、動作させるた
めに作業を取り出したりすることが防止される。これ
は、タスク管理オーバヘッドを増大させることになる。
【0008】多重プロセッサ待ち行列の設計および使用
は、オペレーティングシステム待ち行列に置かれなけれ
ばならないロックの数を最小限にするように最適化され
ている。上述のように、直列化およびロッキングは、基
本的に、多数のプロセッサによる同一資源へのアクセス
がデッドロック状況または資源完全性の欠如を生じ得る
場合に、要求される。従って、待ち行列が、各プロセッ
サの命令が単一の記憶場所などの単一資源だけを要求す
るように設計できる場合は、資源競合およびロッキング
の可能性を最小限にすることができる。
【0009】ロックは、細分性の程度を高める際にシス
テムで付与することができる。細かく細分化されたロッ
クシステムは、数百バイトの記憶装置などの小さな資源
単位にロックを付与する。細分性の低い、粗く細分化さ
れたロッキングシステムは、データ構造全体、または、
記憶域待ち行列などの資源単位全体などの高水準でのみ
ロックを付与する。細かく細分化されたロッキング方式
は、プロセッサの動作を阻止するロックによって生じる
オーバヘッドを低減させるが、デッドロックの可能性を
増大させる。
【0010】一般的な待ち行列モデルは、待ち行列の任
意の点でのエントリの挿入および待ち行列の任意のエン
トリの除去を可能にしている。待ち行列は通常、コンピ
ュータシステムのアドレスの、一重または二重リンクリ
ストのアドレスとして実施されている。待ち行列の各要
素は、次の要素のアドレスを含む。従って、リスト内の
要素の追加は、通常、一重リンクリストでは2つのアド
レス、二重リンクリストでは4つのアドレスの更新を要
求する。2つのアドレスが更新されなければならない場
合、それぞれが個別の記憶場所を占有しているので、待
ち行列の挿入を実施するには2つの記憶場所がアクセス
され更新されなければならない。システムの完全性およ
び信頼性は、これらのアドレスの更新が「原子的に」実
行されることを要求する。すなわち、両アドレスの更新
は、それらの更新の間に処理の潜在的な割り込みを伴わ
ずに生じなければならない。あたかも、単一の命令が2
つのアドレスの更新によって実行されているかのように
見えなければならない。これは、処理においてそれ以上
分割または割り込みできないものであるということか
ら、「原子」命令として公知である。各記憶場所にロッ
クを備えているシステムでは、2つの記憶場所の多重プ
ロセッサによる更新は、デッドロックまたはデータ改変
の高い可能性を生じる。唯一の明白な代替法は、上述の
性能問題を伴う待ち行列全体へのアクセスを直列化する
ことである。
【0011】オペレーティングシステムは、単一のアド
レス更新だけを要求するプロセスである、要素を尾部に
追加するだけでよい最適化された待ち行列を実施するこ
とによって、こうした制約の一部を克服できる。この単
一アドレスの更新は同一のデッドロックのリスクを含ま
ないので、オペレーティングシステムは、多数のプロセ
ッサが要素をリストに追加できるようにしている。しか
し、待ち行列から要素を除去することは、やはり多数の
アドレスの更新を要求するので、単一プロセッサに制限
されなければならない。従って、その実施においては、
デキューイングが単一プロセッサについて直列化されな
ければならない。
【0012】従って、現行技術の課題は、効率的な形式
のキューイングが機械のデッドロックおよび資源完全性
のリスクによって実施できないことによる、システム効
率の欠如である。多重プロセッサシステムがデッドロッ
クのリスクを伴わずに多数の資源を原子的に更新できる
ようにするシステムが、待ち行列管理を増強するために
要求されている。
【0013】本発明の目的は、多重プロセッサコンピュ
ータシステムが、プロセッサ間でのデッドロックのリス
クを伴わずに多数の資源に原子的にアクセスできるよう
にする、デッドロックを回避するためのシステムおよび
方法を提供することである。
【0014】本発明は、多数の資源が要求された場合に
潜在的な資源競合を検出し、プロセッサによる資源競合
が存在する場合に例外的に大域的ロックを取得するため
の手段を提供する。
【0015】
【課題を解決するための手段】本発明のシステムおよび
方法は、結果的に強化されたシステム機能を備えた、よ
り一般的なキューイングモデルの実施を可能にする。さ
らに、このデッドロックを回避するためのシステムおよ
び方法は、大きなロッキングオーバヘッドを課すことに
よる、または、資源が一定の順序または一定の方式でア
クセスされなければならない要求による、他のシステム
動作に影響を与えない。本発明は逐次的に、要求された
資源にアクセスしようと試み、各試みの後、資源競合を
試験する。このシステムは、多くても1つのプロセッサ
によって保持され得る多数の資源の大域的ロックを有
し、それにより、多数の資源命令を並行的に実行する数
を1つに限定する。競合状況においてのみロックを使用
することにより、システムオーバヘッドの影響を最小限
にする。
【0016】さらに、本発明は、同期ロック生成によっ
て生じた記憶域のロック競合を認識し管理する。
【0017】
【実施例】本発明の好ましい実施例は、資源デッドロッ
クを検出し回避する強化された待ち行列管理システムを
実施する。好ましい実施例は、2つの記憶場所の更新を
制御し、従って、「二重原子」更新命令を実施する例で
ある。この好ましい実施例は、2つだけの資源の制御を
例示しているが、以下で説明する技法は、多資源原子命
令の実行において制御されなければならない任意の数の
資源に適用可能である。
【0018】本発明は、数百バイトの記憶装置などで細
かく細分化された記憶域ロックを付与するコンピュータ
システムにおいて実施されるように設計されている。好
ましい実施例では、このロックは、その線によって参照
される数百バイトのキャッシュを制御するために多くて
も1つのプロセッサによって取得されることができる記
憶域キャッシュ線として付与される。記憶アクセスを直
列化するためのキャッシュ線の使用は、当業者に公知で
ある。
【0019】本発明のデッドロック回避技法の助けによ
り管理できる各種待ち行列のうちの2つの例を図1から
図4に例示する。図1は、タスクのリストなどを管理す
るための単頭FIFO待ち行列100を例示している。
待ち行列アンカ102(QTAIL)は、待ち行列の最
新要素104を指示するアドレスである。待ち行列アン
カ102は、待ち行列100が空であれば、ヌルであ
る。要素104はその次に古い要素106のアドレスを
含み、要素106はさらに要素108のアドレスを含ん
でいる。要素108は、その待ち行列の最後の(最旧
の)要素として、それが待ち行列100の最終要素であ
ることの指示116を含んでいる。通常、この指示はヌ
ルアドレスポインタの形式である。
【0020】待ち行列100への要素の挿入を、図2に
示す。要素120の追加は、待ち行列アンカ102がそ
の時に新しい要素120を指示していることを必要とす
る。要素120のアドレスポインタは、待ち行列アンカ
102の以前の内容、すなわち、要素104を指示して
いなければならない。この最終の変更は原子的に行われ
なければならない。待ち行列から項目の除去も図2に示
されている。項目108の除去は、待ち行列連鎖全体を
探索して行き、最終要素が見つかった時に、最終要素の
ポインタ106をヌルに変更することによって実行され
る。要素108がその待ち行列で唯一の要素であるとす
れば、待ち行列アンカはヌルに変更されるであろう。待
ち行列の改変の可能性のために、これは原子的に管理さ
れなければならず、それは現在的に待ち行列全体が単一
のプロセッサに対してロックされることを求める。
【0021】両頭FIFO待ち行列を図3および図4に
図示する。両頭待ち行列は、最初の(最旧の)要素(待
ち行列の先頭)および最終の(最新の)要素(待ち行列
の尾部)の両方に対するポインタを有する。この構造
は、そのリストによってポインタを追跡することなく、
要素が、いずれか一方の末尾に挿入される、および、い
ずれか一方の末尾から除去されることを可能にする。両
頭待ち行列の使用は、システムプログラムに対して著し
い性能の改善ができる。しかし、リストの末尾への新し
い要素220の挿入は、2つのポインタの更新を要求
し、それにより、多重プロセッサ機器構成でのデッドロ
ックのリスクを増大させる。
【0022】資源デッドロック状況を図5に例示する。
要素220の挿入といった待ち行列挿入状況では、2つ
の記憶場所が更新されなければならない。図4の例で
は、要素208の記憶場所は新しい要素220のアドレ
スを含むように更新されなければならないのに対し、待
ち行列末尾203のアドレスポインタも要素220のア
ドレスについて変更されなければならない。図5は、プ
ロセッサAおよびBを備える多重プロセッサシステムに
おけるこうした更新を例示している。記憶場所208
(図5の資源A)および記憶場所203(図5の資源
B)は、プロセッサによって保存され、原子的に更新さ
れなければならない。プロセッサA 310が待ち行列
をロックし更新するプロセスを開始した場合、プロセッ
サAは資源Aにアクセスし、その資源のロックを取得す
ることができる。その間、プロセッサBは、同様の更新
を実行するための第1ステップとして、資源B 316
のロック322を取得することができる。その後、プロ
セッサAが資源Bのロック322を取得しに行くと、プ
ロセッサAは、プロセッサBがロック322を保持して
いるために取得することができず、待機状態に入る。同
時に、プロセッサBは資源Aのロック318を求め、そ
れがロックされていることを認めると、プロセッサAが
資源Aを解放するのを待ち始めることになる。こうした
典型的なデッドロック状況では、どちらのプロセスも完
了することができず、いずれも阻止しているロックを解
除しない。
【0023】本発明の好ましい実施例では、多数の資源
制御を要求する命令を支援するためにコンピュータシス
テムにマイクロコードおよびハードウエアが追加されて
いる。単一の資源の制御だけを要求する命令、および、
全部の資源ロックをうまく取得する多数の資源命令は、
現行のコンピュータシステムにおけると同様に動作す
る。しかし、多資源命令が現に保持されているロックに
出会うと、その命令は、本発明のデッドロック回避機構
を呼び出す。
【0024】このデッドロック回避機構の中心的な特徴
は、多数の資源要求命令に対する大域的ロックである。
図6に示すように、大域的ロック410は全部のプロセ
ッサにとってアクセス可能であるが、一度に1つのプロ
セッサによってのみ制御できる。すなわち、多数のプロ
セッサが競合を伴わずに多数の資源にアクセスできる場
合、それらのプロセッサは大域的ロック410を用いず
に資源にアクセスする。大域的ロックは、競合が検出さ
れた場合に取得されるだけである。このことは、そうし
たロックによって課されるオーバヘッドを低減させ、そ
れにより、システムのスループットを増大させる。しか
し、他の実施例では、多資源命令大域的ロック410
は、多資源命令が見つかった場合は常に取得することが
できるようになっているが、これはオーバヘッドを増大
させることになる。
【0025】本発明の動作を例示するフローチャートを
図7に示す。図7は、単一の命令に関する処理論理を示
している。命令はまず、ステップ502で第1の資源を
取得しようとする。その取得の結果はステップ504で
検査され、失敗した場合、プロセッサは、スピンループ
に入るなどして、待機し、その動作を再試行する。ステ
ップ502で第1の資源の取得が成功した場合、プロセ
ッサは、ステップ506で追加的な資源が要求されてい
るかどうか(すなわち、それが多重プロセッサ命令であ
るかどうか)を判定する。そうでなければ、ステップ5
08で資源取得は終了し、命令処理は継続する。追加的
な資源が要求されている場合、ステップ510で資源の
取得が試みられ、ステップ512で取得の成否が判定さ
れる。成功した場合、制御はステップ506に戻り、い
ずれかの追加的な要求資源の取得を継続する。取得が失
敗した場合、プロセッサはステップ516で自己が大域
的ロックを保持しているか否かを判定する。保持してい
れば、そのプロセッサは潜在的なデッドロック状況に入
ることはなく、待機して、資源アクセスを再試行でき
る。現プロセッサが大域的ロックを保持しているので、
その資源をロックしている他のいずれのプロセッサも単
一の資源アクセスだけについてそれをロックしており、
最終的に、デッドロックを伴わずにそのロックを解除す
る。
【0026】大域的ロックが保持されていない場合、プ
ロセッサは、大域的ロックを得ようと試み、成功すれ
ば、ステップ510で追加的な資源を取得する。プロセ
ッサが大域的ロックを得られない場合、そのプロセッサ
は、ステップ518で全部の既得資源を解放し、ステッ
プ520で大域的ロックを得ようと試みる。大域的ロッ
クの取得が成功すれば、制御は、ステップ502で第1
の要求資源に始まる資源取得に戻る。不成功の場合、プ
ロセッサは待機し、大域的ロックの取得を再試行する。
【0027】この好ましい実施例は、例外にもとづいた
プロセッサであり、それにより、システムオーバヘッド
を最小限にしている。しかし、大域的ロックを取得する
ステップは、オーバヘッドのある程度の増大を伴うこと
により、プロセスの初めに移すこともできよう。この大
域的ロックは、ハードウエアラッチ、システム記憶域の
ロック領域、キャッシュ線、または、他のいずれかの直
列化機構を含むことができる。本発明は特定の取得順序
に頼っていないので、プロセッサおよび命令は最適な順
序で資源を取得することができる。
【0028】他の実施例では、ステップ512の後に、
ロックシノニムに関する付加的な検査が挿入される(図
示せず)。記憶場所ロックがキャッシュ線などのシステ
ムによって実施された場合、シノニムキャッシュ線を有
することとして公知のプロセスであるが、2つの記憶場
所が同一のキャッシュ線に変換される可能性がある。こ
の場合、第2の記憶場所にアクセスしロックしようとす
る試みは、そのキャッシュ線が第1の記憶場所について
すでにロックされているので、失敗することになる。こ
の他の実施例で失敗すると、シノニムについて検査が行
われ、シノニムキャッシュ線が見つかると、処理は、あ
たかもそのロックがすでに取得され保持されていたかの
ように継続する。シノニム検出論理の付加は、多資源命
令が事実上実行できるようになることを保証する。この
論理がない場合、その命令は、たとえ大域的ロックを保
持していても、阻止されるかもしれない。シノニム検出
論理は、プロセッサによって所有されている個別フィー
ルドキャッシュ線に記録するか、または、各所有キャッ
シュ線を所有プロセッサ識別子によってマークすること
によって、シノニムを認識できる。
【0029】本発明は、待ち行列自体のロッキングでは
なく、記憶アクセスの直列化を利用する。これにより、
待ち行列要素の追加者または削除者として動作する任意
の数のプロセッサによるリストの非同期操作が可能にな
る。この能力は、システム動作の相応の改善を伴う強化
された待ち行列管理を可能にする。
【0030】
【発明の効果】以上の説明によって明らかなように、本
発明によれば、多重プロセッサコンピュータシステム
が、プロセッサ間でのデッドロックのリスクを伴わずに
多数の資源に原子的にアクセスすることができる。
【0031】また、本発明によれば、多数の資源が要求
された場合に潜在的な資源競合を検出し、プロセッサに
よる資源競合が存在する場合に例外的に大域的ロックを
取得するための手段を提供することができる。
【図面の簡単な説明】
【図1】単頭FIFO待ち行列の略図。
【図2】図1の単頭待ち行列との間での要素の追加およ
び除去の効果を示す略図。
【図3】両頭待ち行列の略図。
【図4】図3の両頭待ち行列との間での要素の挿入およ
び削除の効果を示す略図。
【図5】多数の資源競合が存在する場合に生起するデッ
ドロック状況を示すブロック図。
【図6】本発明のデッドロック回避システムの論理構造
を示すブロック図。
【図7】本発明の好ましい実施例の処理手順を示すフロ
ーチャート。
【符号の説明】
402 プロセッサA 404 プロセッサB 406 資源A 408 資源B 410 大域的ロック
フロントページの続き (72)発明者 バリー、フィリップ、ルバート アメリカ合衆国ニューヨーク州、ハーリ ー、ウィンザー、ドライブ、181 (72)発明者 ジュリアン、トーマス アメリカ合衆国ニューヨーク州、ポーキプ シー、ロムバウト、ロード、135

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】多数の個別の資源集合および多数のプロセ
    ッサを有するコンピュータシステムにおいて資源取得デ
    ッドロックを防止するための方法であり、各プロセッサ
    は前記多数の資源集合のうちの1つの資源において多数
    の資源の排他的制御を要求する命令を含む命令を実行す
    るものであり、前記システムは前記資源集合のそれぞれ
    について大域的ロックを有しており、前記ロックは一度
    に前記プロセッサのうちの多くて1つによって制御され
    るものである、前記方法であって、 前記多数の資源のうちの第1の資源の排他的制御の取得
    を試みるステップと、 前記多数の資源のうちの残りの資源について、 前記多数の資源のうちの次の資源の排他的制御の取得を
    試みるステップと、 排他的制御が得られたかどうかを判定するためのステッ
    プと、 排他的制御が拒否された場合に、 前記大域的ロックの排他的制御の取得を試みるステップ
    と、 排他的制御が拒否された場合に、全部の排他的に制御さ
    れていた資源を解放し、前記大域的ロックが使用可能と
    なるまで待機するステップと、 前記大域的ロックが制御されると、前記多数の資源のそ
    れぞれの排他的制御を取得する試みを成功するまで反復
    するステップと、 を含むことを特徴とする方法。
  2. 【請求項2】請求項1記載の方法であって、前記資源は
    記憶域の記憶場所であって、排他的制御は多数のキャッ
    シュ線によって管理され、各キャッシュ線は多数の記憶
    場所を制御するものであることを特徴とする方法。
  3. 【請求項3】請求項2記載の方法であって、さらに、 前記多数の資源のうちの前記次の資源の排他的制御が拒
    否された場合に、前記プロセッサの制御のもとにあるキ
    ャッシュ線が前記次の資源の排他的制御を取得するため
    に必要なキャッシュ線とシノニムであるかどうかを判定
    するために前記次の資源を検査するステップと、シノニ
    ムである場合、前記プロセッサに排他的制御が許可され
    ることを信号で知らせるステップとを含むことを特徴と
    する方法。
  4. 【請求項4】多数の個別の資源集合および多数のプロセ
    ッサを有するコンピュータシステムにおいて資源取得デ
    ッドロックを防止するためのシステムであり、各プロセ
    ッサは前記多数の資源集合のうちの1つの資源において
    多数の資源の同時排他的制御を要求する命令を含む命令
    を実行するものである、前記システムであって、 前記多数のプロセッサのうちの1つだけが大域的ロック
    手段を制御できるように、前記資源集合のうちの各資源
    において資源のプロセッサ要求を制御するための大域的
    ロック手段と、 前記資源が別のプロセッサによって排他的に制御されて
    いない場合に、前記多数の資源の各資源の排他的制御を
    前記要求プロセッサに割り当てる手段と、 前記資源が排他的制御を使用不可能である場合に、前記
    要求プロセッサに信号で知らせるための状態手段と、 前記状態手段からの信号に応答して前記大域的ロック手
    段の排他的制御を要求するための手段と、 前記大域的ロック手段が排他的制御のもとにある場合に
    多数の資源の排他的制御を取得するための手段と、 を含むことを特徴とするシステム。
  5. 【請求項5】請求項4記載のシステムであって、前記排
    他的制御を割り当てる手段が記憶キャッシュ線であり、
    前記キャッシュ線のそれぞれは多数の記憶場所を制御す
    るものであることを特徴とするシステム。
  6. 【請求項6】請求項4記載のシステムであって、前記資
    源は記憶場所であり、かつ、前記大域的ロック手段は指
    示された記憶場所であることを特徴とするシステム。
  7. 【請求項7】請求項5記載のシステムであって、さら
    に、 排他的制御のシノニムを検出するための手段であり、前
    記手段は前記排他的制御を割り当てるための手段による
    制御の拒否に応答して動作し、前記検出手段はシノニム
    の制御が保持されていることを前記プロセッサに信号で
    知らせるための手段を含むものである、前記検出手段を
    含むことを特徴とするシステム。
  8. 【請求項8】順序づけられたリストを維持するための情
    報処理システムの待ち行列管理方法であり、前記方法は
    多数のプロセッサを有するシステムで動作し、前記順序
    づけられたリストは多数の記憶場所を修正することによ
    って維持されるものである、前記方法であって、 前記多数の記憶場所のうちのいずれが前記待ち行列を修
    正するために修正を要するかを判定するステップと、 修正を要求する前記記憶場所のうちの第1の記憶場所の
    排他的制御の取得を試みるステップと、 取得が成功した場合、修正を要求する前記記憶場所のう
    ちの以降の記憶場所の取得を試み、全部の要求された記
    憶場所の排他的制御が保持されている場合、前記記憶場
    所を修正するステップと、 取得の失敗を検出するステップと、 取得の失敗を検出した時点でデッドロック回避プロセス
    を呼び出し、排他的制御が取得されると前記記憶場所を
    修正するステップとを含むことを特徴とする方法。
  9. 【請求項9】請求項8記載の方法であって、前記デッド
    ロック回避プロセスが、さらに、 多資源大域的ロックの排他的制御の取得を試みるステッ
    プと、 取得が成功した場合、全部の残りの資源の排他的制御の
    取得を、成功するまで試みるステップと、 前記大域的ロックの排他的制御が拒否された場合、待機
    して、前記取得を周期的に試みるステップと、 を含むことを特徴とする方法。
  10. 【請求項10】請求項8記載の方法であって、さらに、 排他的制御が拒否された場合に、排他的制御のシノニム
    について検査するステップと、シノニムが見つかった場
    合、排他的制御の取得を信号で知らせるステップとを含
    むことを特徴とする方法。
JP4198608A 1991-09-11 1992-07-24 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 Pending JPH07191944A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75774691A 1991-09-11 1991-09-11
US757746 1991-09-11

Publications (1)

Publication Number Publication Date
JPH07191944A true JPH07191944A (ja) 1995-07-28

Family

ID=25049056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4198608A Pending JPH07191944A (ja) 1991-09-11 1992-07-24 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法

Country Status (3)

Country Link
US (1) US5442763A (ja)
EP (1) EP0532333A3 (ja)
JP (1) JPH07191944A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284978A (ja) * 1999-03-25 2000-10-13 Internatl Business Mach Corp <Ibm> 共用資源を非同期的に更新するためのインターフェース・システムおよび方法
JP2005509943A (ja) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ セマフォを使用する効率的なfifo通信
US20110071793A1 (en) * 2009-09-18 2011-03-24 International Business Machines Corporation Method to compute wait time
WO2011148553A1 (ja) * 2010-05-24 2011-12-01 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2011248468A (ja) * 2010-05-24 2011-12-08 Sony Computer Entertainment Inc 情報処理装置および情報処理方法
WO2012153722A1 (ja) * 2011-05-12 2012-11-15 日本電気株式会社 デッドロック予防装置、デッドロック予防方法、およびプログラム

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
EP0618532B1 (en) * 1993-03-30 2000-01-26 Fujitsu Limited Deadlock detecting device
FR2718868B1 (fr) * 1994-04-18 1996-05-31 Bull Sa Procédé de détection d'interblocages dans les systèmes multiprocesseurs à mémoire partagée.
US5560018A (en) * 1994-12-16 1996-09-24 International Business Machines Corporation Providing external interrupt serialization compatibility in a multiprocessing environment for software written to run in a uniprocessor environment
US5577261A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Ordered and reliable maintenance of inter-process relationships in a distributed multiprocessor
US5630140A (en) * 1995-01-23 1997-05-13 Tandem Computers Incorporated Ordered and reliable signal delivery in a distributed multiprocessor
US5933612A (en) * 1995-05-02 1999-08-03 Apple Computer, Inc. Deadlock avoidance in a split-bus computer system
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
US5822765A (en) * 1995-12-14 1998-10-13 International Business Machines Corporation System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
KR100328626B1 (ko) * 1995-12-29 2002-08-13 엘지전자주식회사 버스방향 다중처리 시스템의 데드록 방지 방법
US6006255A (en) * 1996-04-05 1999-12-21 International Business Machines Corporation Networked computer system and method of communicating using multiple request packet classes to prevent deadlock
US6574654B1 (en) 1996-06-24 2003-06-03 Oracle Corporation Method and apparatus for lock caching
US5805900A (en) * 1996-09-26 1998-09-08 International Business Machines Corporation Method and apparatus for serializing resource access requests in a multisystem complex
US5930485A (en) * 1997-01-07 1999-07-27 Apple Computer, Inc. Deadlock avoidance in a computer system having unordered slaves
US5928334A (en) 1997-03-28 1999-07-27 International Business Machines Corporation Hardware verification tool for multiprocessors
US6041384A (en) * 1997-05-30 2000-03-21 Oracle Corporation Method for managing shared resources in a multiprocessing computer system
KR100582782B1 (ko) * 1998-08-28 2006-08-23 엘지엔시스(주) 캐쉬 일관성 유지 방법
US6334159B1 (en) * 1998-12-22 2001-12-25 Unisys Corporation Method and apparatus for scheduling requests within a data processing system
US6304938B1 (en) * 1999-02-23 2001-10-16 Oracle Corporation Detecting a state change in a lock structure to validate a potential deadlock
FI991334A (fi) * 1999-06-10 2000-12-11 Nokia Networks Oy Menetelmä kaksisuuntaisen jonon toteuttamiseksi muistissa ja muistijär jestely
US6721775B1 (en) 1999-08-12 2004-04-13 International Business Machines Corporation Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue
US6681241B1 (en) 1999-08-12 2004-01-20 International Business Machines Corporation Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue
US6581063B1 (en) * 2000-06-15 2003-06-17 International Business Machines Corporation Method and apparatus for maintaining a linked list
US7328263B1 (en) * 2001-01-30 2008-02-05 Cisco Technology, Inc. Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
US6886064B2 (en) * 2002-03-28 2005-04-26 International Business Machines Corporation Computer system serialization control method involving unlocking global lock of one partition, after completion of machine check analysis regardless of state of other partition locks
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US20040175094A1 (en) * 2003-03-05 2004-09-09 Pioneer Digital Technologies, Inc. A personal video recorder storing digital information in a doubly linked list
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
TWI343531B (en) * 2003-12-19 2011-06-11 Oce Tech Bv Erasing a stored information pattern on a storage medium
US7921250B2 (en) * 2004-07-29 2011-04-05 International Business Machines Corporation Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions
US7567986B2 (en) * 2004-10-07 2009-07-28 Microsoft Corporation Method and system for limiting resource usage of a version store
CN101061462B (zh) * 2004-11-26 2010-10-06 国际商业机器公司 多处理器系统以及其中的排他控制方法
US7209990B2 (en) * 2005-04-05 2007-04-24 Oracle International Corporation Maintain fairness of resource allocation in a multi-node environment
US8225327B2 (en) * 2005-09-15 2012-07-17 International Business Machines Corporation Synchronizing access to a shared resource utilizing selective locking
EP1783604A3 (en) * 2005-11-07 2007-10-03 Slawomir Adam Janczewski Object-oriented, parallel language, method of programming and multi-processor computer
US8813021B1 (en) 2006-02-16 2014-08-19 Cypress Semiconductor Corporation Global resource conflict management for an embedded application design
US7487279B2 (en) * 2007-01-23 2009-02-03 International Business Machines Corporation Achieving both locking fairness and locking performance with spin locks
US8060880B2 (en) * 2007-05-04 2011-11-15 Microsoft Corporation System using backward inter-procedural analysis for determining alternative coarser grained lock when finer grained locks exceeding threshold
US7953932B2 (en) * 2008-02-13 2011-05-31 International Business Machines Corporation System and method for avoiding deadlocks when performing storage updates in a multi-processor environment
CN102117184B (zh) * 2010-01-05 2017-06-27 联想(北京)有限公司 用于多存储器的控制器、终端设备及其启动和访问方法
US10169137B2 (en) 2015-11-18 2019-01-01 International Business Machines Corporation Dynamically detecting and interrupting excessive execution time
US10459810B2 (en) 2017-07-06 2019-10-29 Oracle International Corporation Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery
US20200401412A1 (en) * 2019-06-24 2020-12-24 Intel Corporation Hardware support for dual-memory atomic operations
EP3964959A1 (en) * 2020-09-03 2022-03-09 ARM Limited Data processing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5443644A (en) * 1977-09-13 1979-04-06 Fujitsu Ltd Processing system for deadlock automatic release at exclusive control time
US4727482A (en) * 1983-08-30 1988-02-23 Amdahl Corporation Apparatus for enhancing searches of data tables
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US5175852A (en) * 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
US5161227A (en) * 1989-11-13 1992-11-03 International Business Machines Corporation Multilevel locking system and method
JP2699600B2 (ja) * 1990-01-30 1998-01-19 日本電気株式会社 資源の排他制御方式

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284978A (ja) * 1999-03-25 2000-10-13 Internatl Business Mach Corp <Ibm> 共用資源を非同期的に更新するためのインターフェース・システムおよび方法
JP2005509943A (ja) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ セマフォを使用する効率的なfifo通信
US20110071793A1 (en) * 2009-09-18 2011-03-24 International Business Machines Corporation Method to compute wait time
US8521472B2 (en) * 2009-09-18 2013-08-27 International Business Machines Corporation Method to compute wait time
WO2011148553A1 (ja) * 2010-05-24 2011-12-01 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2011248468A (ja) * 2010-05-24 2011-12-08 Sony Computer Entertainment Inc 情報処理装置および情報処理方法
US9658905B2 (en) 2010-05-24 2017-05-23 Sony Corporation Information processing apparatus and method for carrying out multi-thread processing
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 日本電気株式会社 デッドロック予防装置、デッドロック予防方法、およびプログラム

Also Published As

Publication number Publication date
EP0532333A2 (en) 1993-03-17
EP0532333A3 (en) 1993-12-22
US5442763A (en) 1995-08-15

Similar Documents

Publication Publication Date Title
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US5742785A (en) Posting multiple reservations with a conditional store atomic operations in a multiprocessing environment
EP0563624B1 (en) Method and apparatus for performing conditional operations on externally shared data
US7975271B2 (en) System and method for dynamically determining a portion of a resource for which a thread is to obtain a lock
US7797704B2 (en) System and method for performing work by one of plural threads using a lockable resource
Stone et al. Multiple reservations and the Oklahoma update
US7735089B2 (en) Method and system for deadlock detection in a distributed environment
EP0428006B1 (en) Multilevel locking system and method
US7685583B2 (en) Obstruction-free mechanism for atomic update of multiple non-contiguous locations in shared memory
US5761670A (en) System and method for space efficient object locking using global and local locks
US7962923B2 (en) System and method for generating a lock-free dual queue
US5274809A (en) Task execution control method for a multiprocessor system with enhanced post/wait procedure
JP2514299B2 (ja) プロセスレベルプログラミングのための割込み処理の直列化方法
US8239867B2 (en) Method and apparatus for implementing atomic FIFO
US20080082532A1 (en) Using Counter-Flip Acknowledge And Memory-Barrier Shoot-Down To Simplify Implementation of Read-Copy Update In Realtime Systems
US6772153B1 (en) Method and apparatus to provide concurrency control over objects without atomic operations on non-shared objects
US20070067770A1 (en) System and method for reduced overhead in multithreaded programs
US6862595B1 (en) Method and apparatus for implementing a shared message queue using a list structure
US8495642B2 (en) Mechanism for priority inheritance for read/write locks
JP2001265611A (ja) コンピュータシステム、メモリ管理方法、記憶媒体及びプログラム伝送装置
US6976260B1 (en) Method and apparatus for serializing a message queue in a multiprocessing environment
Takada et al. A novel approach to multiprogrammed multiprocessor synchronization for real-time kernels
US8219762B1 (en) Computer system and method for leasing memory location to allow predictable access to memory location
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
JP2804478B2 (ja) タスク制御方式及びオンライン・トランザクション・システム