JPH07271617A - デッドロック再発生防止機能付き復旧方式 - Google Patents
デッドロック再発生防止機能付き復旧方式Info
- Publication number
- JPH07271617A JPH07271617A JP6169094A JP6169094A JPH07271617A JP H07271617 A JPH07271617 A JP H07271617A JP 6169094 A JP6169094 A JP 6169094A JP 6169094 A JP6169094 A JP 6169094A JP H07271617 A JPH07271617 A JP H07271617A
- Authority
- JP
- Japan
- Prior art keywords
- deadlock
- resource
- retry
- resources
- processes
- 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
Links
Abstract
(57)【要約】
【目的】マルチプロセスシステムにおけるデッドロック
発生時に、リソース競合を繰返してデッドロックから脱
出できなくなるのを防止する。 【構成】リソース獲得システムコール4は、デッドロッ
ク発生時、作成済みのテーブル類からデッドロック原因
解析テーブル7を作成し、通常のデッドロック復旧処理
を行う。そして以降のリソースロック要求の際にはデッ
ドロック原因リソース解析テーブル7において、待って
いるリソースとロックしているリソースとを検索し、資
源割当テーブル6を監視する事によって、プロセス2の
リトライを検索した該当リソースが全て解除されるまで
待ち合わせる。
発生時に、リソース競合を繰返してデッドロックから脱
出できなくなるのを防止する。 【構成】リソース獲得システムコール4は、デッドロッ
ク発生時、作成済みのテーブル類からデッドロック原因
解析テーブル7を作成し、通常のデッドロック復旧処理
を行う。そして以降のリソースロック要求の際にはデッ
ドロック原因リソース解析テーブル7において、待って
いるリソースとロックしているリソースとを検索し、資
源割当テーブル6を監視する事によって、プロセス2の
リトライを検索した該当リソースが全て解除されるまで
待ち合わせる。
Description
【0001】
【産業上の利用分野】本発明は、複数の共通リソースを
アクセスするマルチプロセスシステムにおいて、その共
通リソースに対するアクセス競合に起因するデッドロッ
クを復旧させるためのデッドロック再発生防止機能付き
復旧方式に関する。
アクセスするマルチプロセスシステムにおいて、その共
通リソースに対するアクセス競合に起因するデッドロッ
クを復旧させるためのデッドロック再発生防止機能付き
復旧方式に関する。
【0002】
【従来の技術】従来のデッドロック復旧方式では、図3
に例示するようなマルチプロセスシステムにおいて、デ
ッドロック時にプロセス1(F03)およびプロセス2
(F04)が共通のリソースA(F01)、リソースB
(F02)に対するアクセスを競合していることが検出
された場合、プライオリティが低い方のプロセス2(F
04)にリソースB(F02)のロックを解放させたあ
と、デッドロックの原因となったリソースB(F02)
の獲得要求のステップまで処理を戻させて、プロセス2
(F04)から再度リソース獲得システムコール14を
発行させるよう制御している。
に例示するようなマルチプロセスシステムにおいて、デ
ッドロック時にプロセス1(F03)およびプロセス2
(F04)が共通のリソースA(F01)、リソースB
(F02)に対するアクセスを競合していることが検出
された場合、プライオリティが低い方のプロセス2(F
04)にリソースB(F02)のロックを解放させたあ
と、デッドロックの原因となったリソースB(F02)
の獲得要求のステップまで処理を戻させて、プロセス2
(F04)から再度リソース獲得システムコール14を
発行させるよう制御している。
【0003】
【発明が解決しようとする課題】上述したような従来の
デッドロック復旧方式では、プライオリティの低い方の
プロセス2(F04)が一旦ロックしたリソースB(F
02)を解放させた後に再び実行可能状態にさせるが、
再実行時にまたプロセス1および2(F03およびF0
4)がリソースAおよびB(F01およびF02)に対
し競合アクセスして、再度デッドロックが発生してしま
う可能性がある。
デッドロック復旧方式では、プライオリティの低い方の
プロセス2(F04)が一旦ロックしたリソースB(F
02)を解放させた後に再び実行可能状態にさせるが、
再実行時にまたプロセス1および2(F03およびF0
4)がリソースAおよびB(F01およびF02)に対
し競合アクセスして、再度デッドロックが発生してしま
う可能性がある。
【0004】
【課題を解決するための手段】本発明の復旧方式は、複
数のプロセスが複数の共有リソースをアクセスするマル
チプロセスシステムにおけるデッドロック発生後のリト
ライの有無をオンオフにより表わすためのリトライフラ
グに応答して、デッドロック発生時にその原因となった
前記共有リソースを競合している複数の前記プロセスの
うち最高のプライオリティをもつ1つを除いたほかのも
のがロックしている前記共有リソースをすべてロック解
除させ、最高プライオリティの前記プロセスがデッドロ
ックの原因となった前記共有リソースをすべて解放する
までほかの前記プロセスのリトライのタイミングを待ち
合わせる処理過程を有する。
数のプロセスが複数の共有リソースをアクセスするマル
チプロセスシステムにおけるデッドロック発生後のリト
ライの有無をオンオフにより表わすためのリトライフラ
グに応答して、デッドロック発生時にその原因となった
前記共有リソースを競合している複数の前記プロセスの
うち最高のプライオリティをもつ1つを除いたほかのも
のがロックしている前記共有リソースをすべてロック解
除させ、最高プライオリティの前記プロセスがデッドロ
ックの原因となった前記共有リソースをすべて解放する
までほかの前記プロセスのリトライのタイミングを待ち
合わせる処理過程を有する。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0006】図1は本発明の一実施例を示すシステム構
成図である。同図において参照符号1はマルチプロセス
システム、2はプロセス、3は共有リソース、4はリソ
ース獲得システムコール、5はリトライフラグ、6はリ
ソース割当テーブル、7はプロセス待ち合わせテーブ
ル、8はプライオリティ管理テーブル、9はデッドロッ
ク原因リソース解析テーブルをそれぞれ示す。
成図である。同図において参照符号1はマルチプロセス
システム、2はプロセス、3は共有リソース、4はリソ
ース獲得システムコール、5はリトライフラグ、6はリ
ソース割当テーブル、7はプロセス待ち合わせテーブ
ル、8はプライオリティ管理テーブル、9はデッドロッ
ク原因リソース解析テーブルをそれぞれ示す。
【0007】図2は本実施例におけるリソース獲得シス
テムコール4の処理手順を示すフローチャート、図4は
本実施例を適用したマルチプロセスシステムの構成図、
図5(a)〜(d)は本実施例における内部テーブルの
状態変化を例示した状態図である。
テムコール4の処理手順を示すフローチャート、図4は
本実施例を適用したマルチプロセスシステムの構成図、
図5(a)〜(d)は本実施例における内部テーブルの
状態変化を例示した状態図である。
【0008】動作時には、まずリソース獲得システムコ
ール4は、プロセス1(F03)またはプロセス2(F
04)からのリソースロック要求を待つ(図2中のステ
ップS1)。リソースロック要求がある場合は、リソー
ス割当テーブル6、プロセス待ち合わせテーブル7を作
成し(ステップS2)、リトライフラグ5を読む(ステ
ップS3)。リトライフラグ5がオフ(OFF)でデッ
ドロックが発生していなければ、リソース獲得を行う
(ステップS5)。リトライフラグ5がOFFでデッド
ロックが発生していれば、リソース割当テーブル6とプ
ロセス待ち合わせテーブル7とプライオリティ管理テー
ブル8とから、デッドロック原因リソース解析テーブル
9を作成し(ステップS6)、リトライフラグ5をオン
(ON)設定し(ステップS7)、プライオリティの低
いプロセス2(F04)の競合リソースを全て解放し
(ステップS8)、図5(a)から(b)へと状態が推
移する。ついでデッドロックの原因となったリソース獲
得地点まで処理を戻し(ステップS9)、再度リソース
ロック要求待ちとなる(ステップS1)。
ール4は、プロセス1(F03)またはプロセス2(F
04)からのリソースロック要求を待つ(図2中のステ
ップS1)。リソースロック要求がある場合は、リソー
ス割当テーブル6、プロセス待ち合わせテーブル7を作
成し(ステップS2)、リトライフラグ5を読む(ステ
ップS3)。リトライフラグ5がオフ(OFF)でデッ
ドロックが発生していなければ、リソース獲得を行う
(ステップS5)。リトライフラグ5がOFFでデッド
ロックが発生していれば、リソース割当テーブル6とプ
ロセス待ち合わせテーブル7とプライオリティ管理テー
ブル8とから、デッドロック原因リソース解析テーブル
9を作成し(ステップS6)、リトライフラグ5をオン
(ON)設定し(ステップS7)、プライオリティの低
いプロセス2(F04)の競合リソースを全て解放し
(ステップS8)、図5(a)から(b)へと状態が推
移する。ついでデッドロックの原因となったリソース獲
得地点まで処理を戻し(ステップS9)、再度リソース
ロック要求待ちとなる(ステップS1)。
【0009】一方リトライフラグF5がONの場合、リ
トライフラグ5のOFF設定を行い(ステップS1
0)、デッドロック原因リソース解析テーブル9におい
て、待っているリソースとロックしているリソースとを
検索し(ステップS11)、リソース割当テーブル6を
監視する事によって、プロセス2(F04)のリトライ
タイミングを、検索した該当リソースが全て解放される
まで待ち合わせる(ステップS12)。これにより図5
(c)の状態へ推移し、競合リソースが全て解放された
後、プロセス2(F04)の処理を再開可能とし、処理
を続行する(ステップS13)と図5(d)の状態へ推
移する。
トライフラグ5のOFF設定を行い(ステップS1
0)、デッドロック原因リソース解析テーブル9におい
て、待っているリソースとロックしているリソースとを
検索し(ステップS11)、リソース割当テーブル6を
監視する事によって、プロセス2(F04)のリトライ
タイミングを、検索した該当リソースが全て解放される
まで待ち合わせる(ステップS12)。これにより図5
(c)の状態へ推移し、競合リソースが全て解放された
後、プロセス2(F04)の処理を再開可能とし、処理
を続行する(ステップS13)と図5(d)の状態へ推
移する。
【0010】以上説明したようにデッドロック発生時に
は、プライオリティの低い方のプロセスで競合リソース
が全て解放されるまでリトライを待ち合わせることによ
り、従来のようにデッドロックが繰返し発生することを
防止できる。
は、プライオリティの低い方のプロセスで競合リソース
が全て解放されるまでリトライを待ち合わせることによ
り、従来のようにデッドロックが繰返し発生することを
防止できる。
【0011】
【発明の効果】以上説明したように本発明によれば、リ
トライされた事を判断する機能およびリトライされた場
合に相手プロセスの競合リソースの解放要求を待つ機能
を有したリソース獲得システムコールと、待っているリ
ソースおよびロックしているリソースを管理するデッド
ロック原因リソース解析テーブルと、リトライフラグと
を付加して、デッドロックが発生した場合におけるリト
ライのタイミングを、競合リソースが全て解放されるま
で待ち合わせることにより、デッドロックの繰返し発生
を防止できる。
トライされた事を判断する機能およびリトライされた場
合に相手プロセスの競合リソースの解放要求を待つ機能
を有したリソース獲得システムコールと、待っているリ
ソースおよびロックしているリソースを管理するデッド
ロック原因リソース解析テーブルと、リトライフラグと
を付加して、デッドロックが発生した場合におけるリト
ライのタイミングを、競合リソースが全て解放されるま
で待ち合わせることにより、デッドロックの繰返し発生
を防止できる。
【図1】本発明の一実施例のシステム構成図。
【図2】本発明の一実施例における処理手順を示すフロ
ーチャート。
ーチャート。
【図3】従来方式を例示する構成図。
【図4】本発明の一実施例を適用したマルチプロセスシ
ステムの構成図。
ステムの構成図。
【図5】(a)ないし(d)は本発明の一実施例におけ
る内部テーブルの状態を例示する状態図。
る内部テーブルの状態を例示する状態図。
1 マルチプロセスシステム 2 プロセス 3 共有リソース 4 リソース獲得システムコール 5 リトライフラグ 6 リソース割当テーブル 7 プロセス待ち合わせテーブル 8 プライオリティ管理テーブル 9 デッドロック原因リソース解析テーブル F01 リソースA F02 リソースB F03 プロセス1 F04 プロセス2
Claims (2)
- 【請求項1】 複数のプロセスが複数の共有リソースを
アクセスするマルチプロセスシステムにおけるデッドロ
ック発生後のリトライの有無をオンオフにより表わすた
めのリトライフラグに応答して、デッドロック発生時に
その原因となった前記共有リソースを競合している複数
の前記プロセスのうち最高のプライオリティをもつ1つ
を除いたほかのものがロックしている前記共有リソース
をすべてロック解除させ、最高プライオリティの前記プ
ロセスがデッドロックの原因となった前記共有リソース
をすべて解放するまでほかの前記プロセスのリトライの
タイミングを待ち合わせる処理過程を有することを特徴
とするデッドロック再発生防止機能付き復旧方式。 - 【請求項2】 前記処理過程は、前記リトライフラグが
オフの時にデッドロックが発生すると前記リトライフラ
グをオンに切換え設定して最高のプライオリティの前記
プロセス以外の前記共通リソースをすべて解放させるロ
ック解放過程と、前記リトライフラグがオンの時にこれ
をオフに切換えたあと最高のプライオリティの前記プロ
セスが競合リソースをすべて解放するまでほかの前記プ
ロセスのリトライを待ち合わせるリトライ待ち合せ過程
とを有する請求項1記載のデッドロック再発生防止機能
付き復旧方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6169094A JPH07271617A (ja) | 1994-03-30 | 1994-03-30 | デッドロック再発生防止機能付き復旧方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6169094A JPH07271617A (ja) | 1994-03-30 | 1994-03-30 | デッドロック再発生防止機能付き復旧方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07271617A true JPH07271617A (ja) | 1995-10-20 |
Family
ID=13178513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6169094A Pending JPH07271617A (ja) | 1994-03-30 | 1994-03-30 | デッドロック再発生防止機能付き復旧方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07271617A (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60205634A (ja) * | 1984-03-29 | 1985-10-17 | Nec Corp | デツドロツク発生時の遅延再処理方式 |
JPS63265336A (ja) * | 1987-04-22 | 1988-11-01 | Nec Corp | 共有資源の優先割り当て制御方式 |
JPH0485632A (ja) * | 1990-07-30 | 1992-03-18 | Nec Corp | デッドロック回避方式 |
-
1994
- 1994-03-30 JP JP6169094A patent/JPH07271617A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60205634A (ja) * | 1984-03-29 | 1985-10-17 | Nec Corp | デツドロツク発生時の遅延再処理方式 |
JPS63265336A (ja) * | 1987-04-22 | 1988-11-01 | Nec Corp | 共有資源の優先割り当て制御方式 |
JPH0485632A (ja) * | 1990-07-30 | 1992-03-18 | Nec Corp | デッドロック回避方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0351536B1 (en) | Systematic recovery of excessive spin loops in an n-way mp environment | |
US5623670A (en) | Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system | |
JPH0451335A (ja) | データベース処理装置 | |
US6507861B1 (en) | System and method for avoiding deadlock in a non-preemptive multi-threaded application running in a non-preemptive multi-tasking environment | |
US20050102447A1 (en) | System and method for exiting from an interrupt mode in a multiple processor system | |
JPH1021098A (ja) | 排他制御装置 | |
JPH07271617A (ja) | デッドロック再発生防止機能付き復旧方式 | |
JPS6336545B2 (ja) | ||
US7788529B2 (en) | Method for safely interrupting blocked work in a server | |
JPS6125249A (ja) | 排他制御方式 | |
JPS62113260A (ja) | マルチcpuシステムにおけるタイマ監視制御方式 | |
JPH03116261A (ja) | マルチプロセッサ制御方式 | |
JP2001256065A (ja) | 排他制御方法及び計算機システム | |
JPS63146153A (ja) | プロセツサ間排他制御処理方式 | |
JPS63157257A (ja) | マルチプロセツサ構成における資源制御方式 | |
JPS63265336A (ja) | 共有資源の優先割り当て制御方式 | |
JPH03260734A (ja) | コンピュータシステムの資源管理方式 | |
JPH05113891A (ja) | 疑似セマフオア方式 | |
KR0139724B1 (ko) | 유닉스 환경의 dbms에서 좀비 트랜잭션의 발견 및 처리 방법 | |
CN117687806A (zh) | 死锁处理方法、电子设备以及存储介质 | |
JPS63104146A (ja) | 資源管理システム | |
JPH09282185A (ja) | リアルタイムシステムおよびその資源管理方法 | |
JPS6191729A (ja) | 排他エラ−通知先選択方式 | |
JPH0452492B2 (ja) | ||
JPH064321A (ja) | 割り込み管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19980526 |