JPS62177631A - デツドロツク検出方式 - Google Patents

デツドロツク検出方式

Info

Publication number
JPS62177631A
JPS62177631A JP1806886A JP1806886A JPS62177631A JP S62177631 A JPS62177631 A JP S62177631A JP 1806886 A JP1806886 A JP 1806886A JP 1806886 A JP1806886 A JP 1806886A JP S62177631 A JPS62177631 A JP S62177631A
Authority
JP
Japan
Prior art keywords
deadlock
task
exclusive control
resources
resource reservation
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
JP1806886A
Other languages
English (en)
Inventor
Tetsuo Sano
佐野 徹夫
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 JP1806886A priority Critical patent/JPS62177631A/ja
Publication of JPS62177631A publication Critical patent/JPS62177631A/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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野〕 本発明は計算機システムのハードウェア或いはソフトウ
ェア等の簀源の排他制御におけるデッドロックの検出方
式に関する。
〔従来の技術〕
従来のこの種のデッドロック検出方式は、タスクからの
待ち合わせを要する資源確保要求時に必ずデッド口・7
り検出処理を行なうもので、その時点でデッドロック状
態を引き起こすような要求は拒否していた。
〔発明が解決しようとする問題点〕
上述した従来のデッドロック検出方式においては、待ち
合わせが発生する度にデッドロック検出処理が行なわれ
、一般的にはデッドロックの発生関度は少ない為、デッ
ドロックの発生が防止されるという効果がある反面、排
他制御処理でのオーバーヘッドが増加するという問題点
があった。
なお、従来方式を部分的に改善した処理方式として、デ
ッドロックが発生しないことが予め分かっている場合の
ためにデッドロック検出処理を一切行なわないように資
源確保要求時に指定できるようにする方式も考えられる
が、そのような指定が使用でき、る範囲は限られ、また
、使用を誤ってデッドロックが発生してしまった場合に
はそのデッドロック状態は二度と解消されなくなってし
まうという問題点がある。
本発明は上記従来の問題点を解消したもので、その目的
は、資源の排他制御におけるデッドロックの発生を防止
しつつ、且つデッドロック検出のために要する排他制御
処理内でのオーバーヘッドを減少させ得るデッドロック
検出方式を提供することにある。
Cljia点を解決するための手段〕 本発明は上記目的を達成するために、資源の排他制御手
段を有する計算機システムにおけるデッドロック検出方
式において、 指定されたタスクが資源の排他制御上デッドロック状態
に陥っているか否かを調べるデッドロック検出手段と、
   ゛ 該デッドロック検出手段によりデッドロックが検出され
た場合にそのデッドロックに関連する何れかのタスクの
資源確保待ち状態をキャンセルし、且つそのタスクにデ
ッドロック発生を通知してデッドロック状態の解消を行
なうデッドロック解消手段と、 前記資源排他制御手段と前記デッドロック解消手段とか
ら資源確保待ち状態の変更通知を受けて資源確保待ち状
態のタスクの登録変更を行なう資源確保待ちタスク登録
手段と、 ある間隔で前記デッドロック検出手段を呼出し、前記資
源確保待ちタスク登録手段により登録されている各タス
クについて、システム内にデッドロック状態が発生した
ままにならないように監視するデッドロック監視手段と
を有し、 デッドロック状態の検出およびその解消を資源確保要求
時以後に行なうように構成する。
〔作用〕
デッドロック状態の検出とその解消は資源確保要求時以
後に行なわれ、資源確保要求が発生する度にデソドロ7
りの検出処理を行なわないことから、デッドロック検出
のために要する排他制御処理内のオーバーヘッドが減少
し、デッドロックの検出とその、解消はある間隔毎で実
施されているので、たとえデッドロック状態が一時的に
生じても速やかに解消され、デッドロックの発生が防止
される。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例のブロック図であり、6は排他
制御モジュール、4はデッドロック監視手段、8は資源
確保待ちタスク登録テーブルである。排他制御モジュー
ル6は、デッドロック検出手段1とデッドロック解消手
段2と資源確保待ちタスク登録手段3と資源排他flJ
御手段5と排他制御テーブル7とを含んでいる。また、
デッドロック監視手段4は一つのタスクとして動作する
本実施例におけるデッドロック検出および解消動作につ
いて以下説明する。
排他制御モジュール6は、あるタスクから資源確保要求
を受けると、先ず資源排他制御手段5にて資源確保可能
かどうかの判定を行なわせる。なお、資源排他制御手段
5は排他制御テーブル7の内容に基づいて判定を行なう
。上記判定の結果、資源確保不可で待ち合わせが必要な
場合には、この時点ではデッドロック検出処理は行なわ
ず、無条件に要求タスクを資源確保待ち状態とし、排他
制御テーブル7の内容を更新する。
上述のように無条件に要求タスクを資源確保待ち状態と
し終えると、資源確保待ちタスク登録手段3は、その旨
の資源排他制御手段5からの通知を受けて資源確保待ち
状態のタスクを資源確保待ちタスク登録テーブル8へ登
録する。なお、この登録の取り消しは以下の何れかの場
合に行なわれる。
他タスクからの資源解放要求によりそのタスクの待ちが
解けた場合・・・この場合、資源排他制御手段5から資
源確保待ちタスク登録手段3へその旨通知される。
そのタスクがデッドロックに関連していることが検出さ
れ、待ちをキャンセルしてデッドロック発生通知が行な
われた場合・・・この場合、デッドロック解消手段2か
ら資源確保待ちタスク登録手段3へその旨通知される。
資源確保待ちタスク登録手段3は、登録タスクの数が1
から2になった場合には「デッドロック監視開始」を、
2から1になった場合には「デッドロック監視終了」を
、それぞれデッドロック監視手段4に対して通知する。
デッドコック監視手段4は、資源確保待ちタスク登録手
段3から「デッドロック監視開始」通知が行なわれてか
ら[デッドロック監視終了」通知が行なわれるまでの間
、ある間隔(デッドロック監視間隔)で、資a確保持ち
タスク登録テーブル8に登録されている各タスクについ
て、デッドロック検出処理をデッドロック検出手段1に
対して要求し、デッドロック状態が発生したままになら
ないように監視する。尚ここで、このデッドロック監視
間隔を、そのシステムでデッドロック検出の遅延が許容
される範囲内でできる限り大きくとることにより、その
間隔内で解けた待ちについてはデッドロック検出処理が
省け、排他制御処理でのオーバーヘッドをより小さくす
ることができる。
デッドロック検出手段1は、資源排他制御手段5とデッ
ドロック解消手段2とにより更新される排他制御テーブ
ル7を参照してデッドロック検出処理を行なう。ここで
、排他制御テーブル7内には次のような情報が記録され
ている。
・タスクに関する情報 排他制御を要求している各タスクについて、そのタスク
がどの資源を確保しているか、また、どの資源を確保持
ちしているかを示す。
・資源に関する情報 排他制御を要求されている各資源について、その資源を
どのタスクが確保しているか、また、どのタスクが確保
持ちしているかを示す。
デッドロック検出手段1ば、排他制御テーブル7に格納
されている上記情報を基にデッドロック検出要求された
タスクについて以下の手順で確保持ちの連鎖をたどる。
(1)  確保持ち資源を確保している全タスクについ
て、そのタスクがさらに他資源の確保持ちをしているか
否かを調べる。確保持ちをしているタスクがなければ、
処理を終了する。しかし、確保持ちをしているタスクが
あれば、それぞれのタスクについて下記(2)の処理を
行なう。
(2)確保持ち資源を確保している全タスクについて、
そのタスクが既に待ちの連鎖の中に現れたか否かを調べ
る。現れていればデッドロック状態であり、二度現れた
タスクをデッドロック原因タスクとしてデンドロツク解
消手段2へ通知し、デッドロック状態の解消を行なう。
また、待ちの連鎖の中に現れておらず、さらにそのタス
クが確保持ちをしていれば、(2)の処理を再帰的に続
ける。そして、全てのタスクが確保持ちをしていないか
、或いは確保持ちのタスクについても(2)の処理でデ
ッドロックが検出されなければ、(2)の処理を終了す
る。なお、デッドロックが検出された場合には、デッド
ロック原因タスクがデッドロック検出要求されたタスク
であれば全処理を終了するが、そうでなければ再度同じ
タスクについてデッドロック検出処理を行なう。
デッドロック解消手段2は、デッドロック検出手段1か
ら通知されたデッドロック原因タスクの資源確保待ち状
態のキャンセル(排他制御テーブルの更新)を行ない、
更にそのタスクに対してデッドロック発生を通知する。
尚、このように資源確保待ち状態のキャンセルされたタ
スクに対してデッドロック発生を通知するのは、デッド
ロック発生によってそのタスクが何等かの後処理を必要
とするので、その契機を与えるためである。
従来のデッドロック処理方式においてはデッドロック状
態が発生する前にその解消処理が行なわれていたが、水
力式においては一度デノドロツタ状態となった後にその
解消処理が行なわれるため、以下の点で従来方式におけ
る処理と異なる。
・ 一旦待ち状態としたタスクの待ちをキャンセルし、
デッドロック発生を通知する場合がある。
・ 同時に複数個のデッドロック状態が発生している。
可能性があるため、一つのデッドロックを検出しそれを
解消しても、更にデッドロック検出処理を続行する必要
がある。
次に、本実施例におけるデッドロック検出および解消処
理の動作について、第2図に示す例に基づいて説明する
第2図(a)はデッドロック検出処理開始時の待ち状態
を示しており、タスクTIは資flR1についてタスク
T2.T3を(T2とT3が共有モードで資源を確保し
、TIが排他モードで資源待ちをしている)、タスクT
2は資源R3についてタスクT3を、タスクT3は資r
AR2についてタスクT2とタスクT4を、タスクT4
は資#、R4についてタスクT1を、それぞれ待ち合わ
せている。
いま、デッドロック検出処理をタスクT1から始め、T
l−T2−T3−T2と待ちの連鎖をたどったとすると
、タスクT2が待ちの連鎖に二度現れることからその時
点で一つのデッドロックを検出し、タスクT2の待ちを
キャンセルする。このとき待ち状態は第2図(b)のよ
うになる。
更にデッドロック検出処理を続行し、Tl−T3−T4
−Tlと待ちの連鎖をたどると、この時点で二つ目のデ
ッドロックを検出し、タスクT1の待ちをキャンセルす
る。これにより待ち状態は第2図(C)のようになり、
デッドロック状態は解消される。
以上本発明の実施例について説明したが、本発明は以上
の実施例にのみ限定されずその他各種の付加変更が可能
である。例えば、上記実施例ではデッドロックが検出さ
れた場合にキャンセルするタスクをデッドロック原因タ
スクとしたが、連鎖中の何れかのタスクの待ちをキャン
セルするように構成できる。
〔発明の効果〕
以上説明したように、本発明は、資源の排他制御におけ
るデッドロックの発生を防止しつつ、然も待ち合わせが
発生する度にデッドロック検出処理を行なわないように
したことにより、デッドロック検出のために要する排他
制御処理内でのオーバーヘッド、が減少し、システムの
処理能力を高めるという効果がある。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図および、第2図は
本発明の実施例におけるデッドロック検出および解消処
理動作の説明図である。 、図において、1・・・デッドロック検出手段、2・・
・デッドロック解消手段、3・・・資源確保待ちタスク
登録手段、4・・・デッドロック監視手段、5・・・資
源排他制御手段、6・・・排他制御モジュール、7・・
・排他制御テーブル、8・・・資源確保待ちタスク登録
テーブル。

Claims (1)

  1. 【特許請求の範囲】 資源の排他制御手段を有する計算機システムにおけるデ
    ッドロック検出方式において、 指定されたタスクが資源の排他制御上デッドロック状態
    に陥っているか否かを調べるデッドロック検出手段と、 該デッドロック検出手段によりデッドロックが検出され
    た場合にそのデッドロックに関連する何れかのタスクの
    資源確保待ち状態をキャンセルし、且つそのタスクにデ
    ッドロック発生を通知してデッドロック状態の解消を行
    なうデッドロック解消手段と、 前記資源排他制御手段と前記デッドロック解消手段とか
    ら資源確保待ち状態の変更通知を受けて資源確保待ち状
    態のタスクの登録変更を行なう資源確保待ちタスク登録
    手段と、 ある間隔で前記デッドロック検出手段を呼出し、前記資
    源確保待ちタスク登録手段により登録されている各タス
    クについて、システム内にデッドロック状態が発生した
    ままにならないように監視するデッドロック監視手段と
    を有し、 デッドロック状態の検出およびその解消を資源確保要求
    時以後に行なうようにしたことを特徴とするデッドロッ
    ク検出方式。
JP1806886A 1986-01-31 1986-01-31 デツドロツク検出方式 Pending JPS62177631A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1806886A JPS62177631A (ja) 1986-01-31 1986-01-31 デツドロツク検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1806886A JPS62177631A (ja) 1986-01-31 1986-01-31 デツドロツク検出方式

Publications (1)

Publication Number Publication Date
JPS62177631A true JPS62177631A (ja) 1987-08-04

Family

ID=11961347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1806886A Pending JPS62177631A (ja) 1986-01-31 1986-01-31 デツドロツク検出方式

Country Status (1)

Country Link
JP (1) JPS62177631A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01223558A (ja) * 1988-03-02 1989-09-06 Hitachi Ltd グローバルデッドロックの検出方式
JPH03201047A (ja) * 1989-12-22 1991-09-02 Internatl Business Mach Corp <Ibm> デツドロツクを検出して解決する方法及びフアイルを共有するデータ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01223558A (ja) * 1988-03-02 1989-09-06 Hitachi Ltd グローバルデッドロックの検出方式
JPH03201047A (ja) * 1989-12-22 1991-09-02 Internatl Business Mach Corp <Ibm> デツドロツクを検出して解決する方法及びフアイルを共有するデータ処理装置

Similar Documents

Publication Publication Date Title
US5377352A (en) Method of scheduling tasks with priority to interrupted task locking shared resource
US7100161B2 (en) Method and apparatus for resource access synchronization
JP2001142726A (ja) マルチスレッド化コンピュータ環境において、複数のプロセスに渡りコミュニケータを設定する方法およびシステム
KR20090005921A (ko) 대칭적 다중 프로세서 시스템에서의 로드 밸런싱 방법 및장치
JPH10283243A (ja) データベース管理システム
JPH02195453A (ja) ファイルアクセス制御方式
EP1031925A2 (en) Cooperative processing of tasks in multi-threaded computing system
US7185339B2 (en) Victim selection for deadlock detection
JPH0451335A (ja) データベース処理装置
JPS62177631A (ja) デツドロツク検出方式
JPH1021098A (ja) 排他制御装置
JPH036751A (ja) フアイル・ロツク方法及び装置
JPH05257902A (ja) 処理プログラム・モードにおけるロック獲得処理方式
JP3567911B2 (ja) 疎結合マルチプロセッサシステム及びデッドロック解除方法
JP3005397B2 (ja) デッドロック多発自動回避方式
JPS6320634A (ja) 計算機資源排他制御方式
JP2641919B2 (ja) ジョブスケジュール停止装置
JPH06282448A (ja) 共有資源排他制御方式
JPH04223533A (ja) 共有資源排他制御システム
JP3036468B2 (ja) 排他制御処理装置及び排他制御処理方法並びに排他制御処理プログラムを記憶した記憶媒体
JPH01140250A (ja) デッドロック情報収集方式
JP2000259436A (ja) 分散オブジェクト環境における排他制御方式
JPH01133144A (ja) 共用資源管理方式
JPS6191729A (ja) 排他エラ−通知先選択方式
JPS6327944A (ja) マルチプロセツサシステムにおける資源管理方式