JPH09106357A - 排他制御装置及びその方法 - Google Patents
排他制御装置及びその方法Info
- Publication number
- JPH09106357A JPH09106357A JP26293395A JP26293395A JPH09106357A JP H09106357 A JPH09106357 A JP H09106357A JP 26293395 A JP26293395 A JP 26293395A JP 26293395 A JP26293395 A JP 26293395A JP H09106357 A JPH09106357 A JP H09106357A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- task
- waiting
- list
- information
- 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
- 238000000034 method Methods 0.000 title claims description 12
- 238000012544 monitoring process Methods 0.000 claims abstract description 62
- 238000012217 deletion Methods 0.000 abstract description 4
- 230000037430 deletion Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
Abstract
(57)【要約】
【課題】 ロック操作に係るオーバヘッドを削減して排
他制御の高速化を図る。 【解決手段】 ロック要求に対してロックできない場合
には、タスク情報登録手段210はそのタスクに関する
タスク情報を待ちリストに加える。待ち時間監視手段2
20は、タスクがロック待ち状態にある時間を監視し
て、所定の監視時間を経過するとデッドロックが発生し
たものと解して上記待ちリストから削除する。その旨を
通知されたタスクは、タスク情報削除手段230を通じ
て既に取得していたロックを解除する。
他制御の高速化を図る。 【解決手段】 ロック要求に対してロックできない場合
には、タスク情報登録手段210はそのタスクに関する
タスク情報を待ちリストに加える。待ち時間監視手段2
20は、タスクがロック待ち状態にある時間を監視し
て、所定の監視時間を経過するとデッドロックが発生し
たものと解して上記待ちリストから削除する。その旨を
通知されたタスクは、タスク情報削除手段230を通じ
て既に取得していたロックを解除する。
Description
【発明の属する技術分野】本発明は、排他制御装置及び
その方法に関する。
その方法に関する。
【0001】
【従来の技術】複数のプロセッサにより資源が共有され
ている場合において、その資源の使用権を確保するため
の操作をロックという。一般に、書込みのためのロック
が取得されていると、他のプロセッサは同一資源に関す
るロックを取得することができない。
ている場合において、その資源の使用権を確保するため
の操作をロックという。一般に、書込みのためのロック
が取得されていると、他のプロセッサは同一資源に関す
るロックを取得することができない。
【0002】一方、複数のプロセッサ間で共通する資源
に対してロックを取得しようとした場合、他のプロセッ
サが取得しているロックを互いに待ってしまい処理が進
まなくなるおそれがある。この状態をデッドロックとい
う。このデッドロック状態に陥ると、その待ち状態を強
制的に停止させなければならない。
に対してロックを取得しようとした場合、他のプロセッ
サが取得しているロックを互いに待ってしまい処理が進
まなくなるおそれがある。この状態をデッドロックとい
う。このデッドロック状態に陥ると、その待ち状態を強
制的に停止させなければならない。
【0003】そこで、従来は、あるタスクからのロック
取得要求が失敗して待ち合わせが発生している各タスク
について、デッドロック発生有無のチェックが行われて
いた。たとえば、特開昭62−177631号公報に
は、資源確保待ちタスク登録テーブルに登録されている
各タスクについて「デッドロック監視間隔」でデッドロ
ック検出処理を行うデッドロック検出方式の技術が記載
されている。
取得要求が失敗して待ち合わせが発生している各タスク
について、デッドロック発生有無のチェックが行われて
いた。たとえば、特開昭62−177631号公報に
は、資源確保待ちタスク登録テーブルに登録されている
各タスクについて「デッドロック監視間隔」でデッドロ
ック検出処理を行うデッドロック検出方式の技術が記載
されている。
【0004】
【発明が解決しようとする課題】上述の従来技術では、
待ち合わせが発生している各タスクについて、所定の時
間間隔でデッドロック発生をチェックするため、管理し
ているテーブル中の全ての待ちタスクを順番に基点とし
てデッドロック発生の有無を調べていかなければならな
い。一般的にはデッドロックの発生頻度は少ないにも拘
わらず、デッドロックを検出するために大きなオーバヘ
ッドが生じることになる。
待ち合わせが発生している各タスクについて、所定の時
間間隔でデッドロック発生をチェックするため、管理し
ているテーブル中の全ての待ちタスクを順番に基点とし
てデッドロック発生の有無を調べていかなければならな
い。一般的にはデッドロックの発生頻度は少ないにも拘
わらず、デッドロックを検出するために大きなオーバヘ
ッドが生じることになる。
【0005】本発明の目的は、ロック操作に係るオーバ
ヘッドを削減して排他制御の高速化を図ることにある。
ヘッドを削減して排他制御の高速化を図ることにある。
【0006】また、本発明の他の目的は、タスク間にお
けるデッドロックの発生を簡易に検出することにある。
けるデッドロックの発生を簡易に検出することにある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明の排他制御装置は、監視時間が指定されたロッ
ク取得要求に対してロック待ちとなったタスクについ
て、そのロック待ちとなっている時間が前記監視時間を
越えた場合にそのロック待ちを強制的に解除する。
に本発明の排他制御装置は、監視時間が指定されたロッ
ク取得要求に対してロック待ちとなったタスクについ
て、そのロック待ちとなっている時間が前記監視時間を
越えた場合にそのロック待ちを強制的に解除する。
【0008】また、本発明の他の排他制御装置は、タス
クからの監視時間が指定されたロック取得要求に応答し
てロックを取得した旨のロック登録又はロック待ちであ
る旨のロック待ち登録を行うタスク情報登録手段と、こ
のタスク情報登録手段においてロック待ち登録されてい
る時間を監視してロック待ち登録されている時間が前記
監視時間を越えた場合にロック待ち登録を削除する待ち
時間監視手段と、前記ロック登録又はロック待ち登録を
削除し、前記待ち時間監視手段によって削除されたロッ
ク待ち登録に係るタスクが既に取得していたロックのロ
ック登録を削除するタスク情報削除手段とを含む。
クからの監視時間が指定されたロック取得要求に応答し
てロックを取得した旨のロック登録又はロック待ちであ
る旨のロック待ち登録を行うタスク情報登録手段と、こ
のタスク情報登録手段においてロック待ち登録されてい
る時間を監視してロック待ち登録されている時間が前記
監視時間を越えた場合にロック待ち登録を削除する待ち
時間監視手段と、前記ロック登録又はロック待ち登録を
削除し、前記待ち時間監視手段によって削除されたロッ
ク待ち登録に係るタスクが既に取得していたロックのロ
ック登録を削除するタスク情報削除手段とを含む。
【0009】また、本発明の他の排他制御装置は、ロッ
クの対象となる最小単位であるブロック毎に設けられ当
該ロックを取得しているタスクに関する情報を管理する
ロックリストと、前記ブロック毎に設けられ当該ロック
を待っているタスクに関する情報を管理する待ちリスト
とを格納するロック管理テーブルと、タスクからの監視
時間が指定されたロック取得要求に応答して前記ロック
リスト又は前記待ちリストに当該タスクに関する情報を
登録するタスク情報登録手段と、このタスク情報登録手
段において前記待ちリストに接続されている時間が前記
監視時間を越えた場合に前記待ちリストから前記タスク
に関する情報を削除する待ち時間監視手段と、前記ロッ
ク登録又はロック待ち登録を削除し、前記待ち時間監視
手段によって前記待ちリストから削除されたタスクに関
する情報を前記ロックリストから削除するタスク情報削
除手段とを含む。
クの対象となる最小単位であるブロック毎に設けられ当
該ロックを取得しているタスクに関する情報を管理する
ロックリストと、前記ブロック毎に設けられ当該ロック
を待っているタスクに関する情報を管理する待ちリスト
とを格納するロック管理テーブルと、タスクからの監視
時間が指定されたロック取得要求に応答して前記ロック
リスト又は前記待ちリストに当該タスクに関する情報を
登録するタスク情報登録手段と、このタスク情報登録手
段において前記待ちリストに接続されている時間が前記
監視時間を越えた場合に前記待ちリストから前記タスク
に関する情報を削除する待ち時間監視手段と、前記ロッ
ク登録又はロック待ち登録を削除し、前記待ち時間監視
手段によって前記待ちリストから削除されたタスクに関
する情報を前記ロックリストから削除するタスク情報削
除手段とを含む。
【0010】また、本発明の他の排他制御装置は、前記
ロック取得要求は、読出しのためのロックか書込みのた
めのロックかを示すロック種別をさらに含み、前記タス
ク情報登録手段は、ロック対象となるブロックが既に読
出しのためにロックされていても前記ロック種別が読出
しのためのロックである旨を示していれば前記ロックリ
ストに登録し、ロック対象となるブロックが既に書込み
のためにロックされていれば前記ロック種別に拘わらず
前記待ちリストに登録する。
ロック取得要求は、読出しのためのロックか書込みのた
めのロックかを示すロック種別をさらに含み、前記タス
ク情報登録手段は、ロック対象となるブロックが既に読
出しのためにロックされていても前記ロック種別が読出
しのためのロックである旨を示していれば前記ロックリ
ストに登録し、ロック対象となるブロックが既に書込み
のためにロックされていれば前記ロック種別に拘わらず
前記待ちリストに登録する。
【0011】また、本発明の排他制御方法は、ロックの
対象となる最小単位であるブロック毎に設けられ当該ロ
ックを取得しているタスクに関する情報を管理するロッ
クリストと、前記ブロック毎に設けられ当該ロックを待
っているタスクに関する情報を管理する待ちリストとを
格納するロック管理テーブルを含む排他制御装置におい
て、タスクからの監視時間が指定されたロック取得要求
に応答して前記ロックリスト又は前記待ちリストに当該
タスクに関する情報を登録するタスク情報登録ステップ
と、前記待ちリストに接続されている時間が前記監視時
間を越えた場合に前記待ちリストから前記タスクに関す
る情報を削除する待ち時間監視ステップと、前記待ちリ
ストから削除されたタスクに関する情報を前記ロックリ
ストから削除するタスク情報削除ステップとを含むこと
を特徴とする排他制御方法。
対象となる最小単位であるブロック毎に設けられ当該ロ
ックを取得しているタスクに関する情報を管理するロッ
クリストと、前記ブロック毎に設けられ当該ロックを待
っているタスクに関する情報を管理する待ちリストとを
格納するロック管理テーブルを含む排他制御装置におい
て、タスクからの監視時間が指定されたロック取得要求
に応答して前記ロックリスト又は前記待ちリストに当該
タスクに関する情報を登録するタスク情報登録ステップ
と、前記待ちリストに接続されている時間が前記監視時
間を越えた場合に前記待ちリストから前記タスクに関す
る情報を削除する待ち時間監視ステップと、前記待ちリ
ストから削除されたタスクに関する情報を前記ロックリ
ストから削除するタスク情報削除ステップとを含むこと
を特徴とする排他制御方法。
【0012】
【発明の実施の形態】次に本発明の排他制御装置及びそ
の方法の一実施例について図面を参照して詳細に説明す
る。
の方法の一実施例について図面を参照して詳細に説明す
る。
【0013】図1を参照すると、本発明の一実施例であ
る排他制御装置200は、複数のプロセッサ100と、
これらプロセッサ100に共有される共有資源300と
を含む情報処理システムに適用される。共有資源300
としては、メモリの一部の領域やファイル等が対象とな
ることが多い。ここでは、ロック制御の対象となる最小
単位をブロックとよぶ。
る排他制御装置200は、複数のプロセッサ100と、
これらプロセッサ100に共有される共有資源300と
を含む情報処理システムに適用される。共有資源300
としては、メモリの一部の領域やファイル等が対象とな
ることが多い。ここでは、ロック制御の対象となる最小
単位をブロックとよぶ。
【0014】図2を参照すると、本発明の一実施例であ
る排他制御装置200は、各プロセッサ100とのやり
とりを行うコマンドインタフェース250と、ロックま
たはロック待ちしているタスクに関する情報(以下、タ
スク情報という)を管理するロック管理テーブル240
と、各タスクのタスク情報を登録するタスク情報登録手
段210と、各タスクがロック待ち状態にある時間を監
視する待ち時間監視手段220と、タスク情報登録手段
210により登録されたタスク情報を削除するタスク情
報削除手段230とを含む。
る排他制御装置200は、各プロセッサ100とのやり
とりを行うコマンドインタフェース250と、ロックま
たはロック待ちしているタスクに関する情報(以下、タ
スク情報という)を管理するロック管理テーブル240
と、各タスクのタスク情報を登録するタスク情報登録手
段210と、各タスクがロック待ち状態にある時間を監
視する待ち時間監視手段220と、タスク情報登録手段
210により登録されたタスク情報を削除するタスク情
報削除手段230とを含む。
【0015】図3を参照すると、ロック管理テーブル2
40は、ブロック毎にブロック情報241と、そのブロ
ックをロックまたはロック待ちしているタスクのタスク
情報242の集合を格納する。ブロック情報241は、
そのブロックを識別するためのブロック識別子と、ロッ
クリストの先頭に対するポインタであるロックリストポ
インタと、待ちリストの先頭に対するポインタである待
ちリストポインタとを有する。ここで、ロックリストと
は、ロック中のタスクのタスク情報を連結リストにより
接続したものである。また、待ちリストとは、ロック待
ちにあるタスクのタスク情報を連結リストにより接続し
たものである。各タスク情報は、タスクを識別するため
のタスク識別子と、読出しか書込みか等のロックの種別
を表すロック種別とを有し、連結リストを形成する次の
タスク情報へのポインタをも有している。
40は、ブロック毎にブロック情報241と、そのブロ
ックをロックまたはロック待ちしているタスクのタスク
情報242の集合を格納する。ブロック情報241は、
そのブロックを識別するためのブロック識別子と、ロッ
クリストの先頭に対するポインタであるロックリストポ
インタと、待ちリストの先頭に対するポインタである待
ちリストポインタとを有する。ここで、ロックリストと
は、ロック中のタスクのタスク情報を連結リストにより
接続したものである。また、待ちリストとは、ロック待
ちにあるタスクのタスク情報を連結リストにより接続し
たものである。各タスク情報は、タスクを識別するため
のタスク識別子と、読出しか書込みか等のロックの種別
を表すロック種別とを有し、連結リストを形成する次の
タスク情報へのポインタをも有している。
【0016】図4を参照すると、待ち時間監視手段22
0で使用される監視エントリは、ロック管理テーブル2
40中のタスク情報へのポインタである対象エントリポ
インタと、タスクからのロック要求によりロック管理テ
ーブル240に登録された際の時刻を表す登録時刻と、
タスクからのロック要求時に指定された監視時間とを有
する。
0で使用される監視エントリは、ロック管理テーブル2
40中のタスク情報へのポインタである対象エントリポ
インタと、タスクからのロック要求によりロック管理テ
ーブル240に登録された際の時刻を表す登録時刻と、
タスクからのロック要求時に指定された監視時間とを有
する。
【0017】図5を参照すると、各プロセッサ上のタス
クからのコマンドの形式としては、要求の種類を表すコ
マンドコードと、要求元タスクを示すタスク識別子と、
要求対象のブロックを示すブロック識別子と、ロックの
種別を表すロック種別と、ロック待ちを生じた場合に許
容される監視時間とを含んでいる。
クからのコマンドの形式としては、要求の種類を表すコ
マンドコードと、要求元タスクを示すタスク識別子と、
要求対象のブロックを示すブロック識別子と、ロックの
種別を表すロック種別と、ロック待ちを生じた場合に許
容される監視時間とを含んでいる。
【0018】次に本発明の排他制御装置の上記一実施例
の動作について図面を参照して説明する。
の動作について図面を参照して説明する。
【0019】図2を参照すると、排他制御装置200に
おいて、コマンドインタフェース250は、プロセッサ
100上のタスクから図5の形式のコマンドを受け取る
と、コマンドコードを解析する。コマンドコードがロッ
ク要求を示していれば、タスク情報登録手段210は、
ロック管理テーブル240にタスク情報を登録する。コ
マンドコードがアンロック要求を示していれば、タスク
情報削除手段230はロック管理テーブル240のタス
ク情報を削除する。
おいて、コマンドインタフェース250は、プロセッサ
100上のタスクから図5の形式のコマンドを受け取る
と、コマンドコードを解析する。コマンドコードがロッ
ク要求を示していれば、タスク情報登録手段210は、
ロック管理テーブル240にタスク情報を登録する。コ
マンドコードがアンロック要求を示していれば、タスク
情報削除手段230はロック管理テーブル240のタス
ク情報を削除する。
【0020】図6を参照すると、タスクからコマンドが
発行された場合、タスク情報登録手段210は、まずロ
ック管理テーブル240を検索して(ステップS21
1)、コマンドに含まれている「ブロック識別子」が示
すブロックのロック可否を判定する(ステップS21
2)。具体的には、ロック管理テーブル240の中か
ら、コマンドに含まれている「ブロック識別子」と同じ
ブロック識別子を有するブロック情報241を検索し
て、このブロック情報241のロックリストポインタが
空ポインタであるか否かを調べる。ブロック情報がない
か、または、あっても空ポインタであればロック可であ
ると判断できる。空ポインタでなければ、既に他のタス
クによってロックされているため、ロックリストに接続
されている各タスク情報について「ロック種別」を参照
して同時にロックすることが可能か否かを判定する。す
なわち、対象となるブロックが既に読出しのためにロッ
クされていても、コマンドの「ロック種別」が”読出
し”であれば、これもロックできるものと判断できる。
読出し同士であれば矛盾が生じないからである。一方、
対象となるブロックが既に書込みのためにロックされて
いれば、コマンドの「ロック種別」に拘わらずロックで
きないものと判断される。
発行された場合、タスク情報登録手段210は、まずロ
ック管理テーブル240を検索して(ステップS21
1)、コマンドに含まれている「ブロック識別子」が示
すブロックのロック可否を判定する(ステップS21
2)。具体的には、ロック管理テーブル240の中か
ら、コマンドに含まれている「ブロック識別子」と同じ
ブロック識別子を有するブロック情報241を検索し
て、このブロック情報241のロックリストポインタが
空ポインタであるか否かを調べる。ブロック情報がない
か、または、あっても空ポインタであればロック可であ
ると判断できる。空ポインタでなければ、既に他のタス
クによってロックされているため、ロックリストに接続
されている各タスク情報について「ロック種別」を参照
して同時にロックすることが可能か否かを判定する。す
なわち、対象となるブロックが既に読出しのためにロッ
クされていても、コマンドの「ロック種別」が”読出
し”であれば、これもロックできるものと判断できる。
読出し同士であれば矛盾が生じないからである。一方、
対象となるブロックが既に書込みのためにロックされて
いれば、コマンドの「ロック種別」に拘わらずロックで
きないものと判断される。
【0021】判定の結果、ロック可能であると判断され
た場合は、コマンドに含まれている「タスク識別子」及
び「ロック種別」に基づいてタスク情報を生成して、ロ
ックリストの最後尾に接続する(ステップS213)。
そして、コマンドの「タスク識別子」の指すタスクに対
してロック許可の旨を通知する(ステップS216)。
た場合は、コマンドに含まれている「タスク識別子」及
び「ロック種別」に基づいてタスク情報を生成して、ロ
ックリストの最後尾に接続する(ステップS213)。
そして、コマンドの「タスク識別子」の指すタスクに対
してロック許可の旨を通知する(ステップS216)。
【0022】一方、ロックできないと判断された場合
は、コマンドに含まれている「タスク識別子」及び「ロ
ック種別」に基づいてタスク情報を生成して、待ちリス
トの最後尾に接続する(ステップS214)とともに、
ロック待ち時間を監視する(ステップ215)。このロ
ック待ち時間監視の動作については図7を参照して後述
する。その後、コマンドの「タスク識別子」の指すタス
クに対してロック待ちの旨を通知する(ステップS21
6)。
は、コマンドに含まれている「タスク識別子」及び「ロ
ック種別」に基づいてタスク情報を生成して、待ちリス
トの最後尾に接続する(ステップS214)とともに、
ロック待ち時間を監視する(ステップ215)。このロ
ック待ち時間監視の動作については図7を参照して後述
する。その後、コマンドの「タスク識別子」の指すタス
クに対してロック待ちの旨を通知する(ステップS21
6)。
【0023】図7を参照すると、待ち時間監視手段22
0は、まず図4の形式を有する監視エントリを生成する
(ステップS221)。そして、コマンドを受け取った
時刻からの経過時間が監視エントリの「監視時間」と一
致(ステップS223)するまで監視する(ステップS
222)。経過時間が監視エントリの監視時間と一致す
ると、監視エントリの「対象エントリポインタ」が指す
ロック管理テーブル240中のタスク情報を検索する。
その結果、ロック管理テーブル240にタスク情報がま
だ残っている場合にはそのタスク情報を削除する(ステ
ップS224)。そして、削除されたタスク情報の「タ
スク識別子」が示していたタスクに対して、タイムアウ
トによるタスク情報削除が発生した旨を通知する(ステ
ップS225)。
0は、まず図4の形式を有する監視エントリを生成する
(ステップS221)。そして、コマンドを受け取った
時刻からの経過時間が監視エントリの「監視時間」と一
致(ステップS223)するまで監視する(ステップS
222)。経過時間が監視エントリの監視時間と一致す
ると、監視エントリの「対象エントリポインタ」が指す
ロック管理テーブル240中のタスク情報を検索する。
その結果、ロック管理テーブル240にタスク情報がま
だ残っている場合にはそのタスク情報を削除する(ステ
ップS224)。そして、削除されたタスク情報の「タ
スク識別子」が示していたタスクに対して、タイムアウ
トによるタスク情報削除が発生した旨を通知する(ステ
ップS225)。
【0024】図8を参照すると、コマンドの「コマンド
コード」がアンロック要求、すなわちロックの解除を要
求するものである場合には、タスク情報削除手段230
は、まずロック管理テーブル240からコマンドの「ブ
ロック識別子」を有するブロック情報を検索する。そし
て、そのブロック情報のロックリスト及び待ちリストに
接続されているタスク情報からコマンドの「タスク識別
子」を有するタスク情報を検索し(ステップS23
1)、この検索されたタスク情報を削除する(ステップ
S232)。次に、この削除されたタスク情報が接続さ
れていた待ちリストに他のタスク情報が存在するか否か
を調べる(ステップS233)。もし待ちタスク情報が
存在すれば、そのタスク情報の「タスク識別子」の指す
タスクがロック可能になったか否かを判断する(ステッ
プS234)。ロック可能であると判断された場合は、
そのタスク情報を待ちリストから外して、ロックリスト
に接続する。その後、そのタスク情報の「タスク識別
子」の指すタスクに対して、ロックが許可された旨を通
知するとともに(ステップS235)、コマンドの「タ
スク識別子」の指すタスクに対してアンロックが完了し
た旨を通知する(ステップS236)。一方、待ちタス
ク情報が存在しない(ステップS233)か、またはロ
ック可能になっていなければ(ステップS234)、ロ
ックが許可された旨は通知せずに、コマンドの「タスク
識別子」の指すタスクに対してアンロックが完了した旨
のみを通知する(ステップS236)。
コード」がアンロック要求、すなわちロックの解除を要
求するものである場合には、タスク情報削除手段230
は、まずロック管理テーブル240からコマンドの「ブ
ロック識別子」を有するブロック情報を検索する。そし
て、そのブロック情報のロックリスト及び待ちリストに
接続されているタスク情報からコマンドの「タスク識別
子」を有するタスク情報を検索し(ステップS23
1)、この検索されたタスク情報を削除する(ステップ
S232)。次に、この削除されたタスク情報が接続さ
れていた待ちリストに他のタスク情報が存在するか否か
を調べる(ステップS233)。もし待ちタスク情報が
存在すれば、そのタスク情報の「タスク識別子」の指す
タスクがロック可能になったか否かを判断する(ステッ
プS234)。ロック可能であると判断された場合は、
そのタスク情報を待ちリストから外して、ロックリスト
に接続する。その後、そのタスク情報の「タスク識別
子」の指すタスクに対して、ロックが許可された旨を通
知するとともに(ステップS235)、コマンドの「タ
スク識別子」の指すタスクに対してアンロックが完了し
た旨を通知する(ステップS236)。一方、待ちタス
ク情報が存在しない(ステップS233)か、またはロ
ック可能になっていなければ(ステップS234)、ロ
ックが許可された旨は通知せずに、コマンドの「タスク
識別子」の指すタスクに対してアンロックが完了した旨
のみを通知する(ステップS236)。
【0025】次に2つのタスク間でデッドロックが発生
した場合の動作の具体例について図面を参照して説明す
る。ここでは、タスク1がブロックA及びブロックBの
順番でロックして更新処理を行い、タスク2がブロック
B及びブロックAの順番でロックして更新処理を行う場
合について説明する。但し、両タスク共、ブロックA及
びブロックBの両方をロックした上で更新処理を行わな
ければならないものとする。
した場合の動作の具体例について図面を参照して説明す
る。ここでは、タスク1がブロックA及びブロックBの
順番でロックして更新処理を行い、タスク2がブロック
B及びブロックAの順番でロックして更新処理を行う場
合について説明する。但し、両タスク共、ブロックA及
びブロックBの両方をロックした上で更新処理を行わな
ければならないものとする。
【0026】図9を参照すると、最初にタスク1がブロ
ックAに対するロック要求を行い、これに対するタスク
情報登録後、タスク1に対してロック許可通知がなされ
る(ステップS901)。次に、タスク2がブロックB
に対するロック要求を行い、これに対するタスク情報登
録後、タスク2に対してロック許可通知がなされる(ス
テップS902)。
ックAに対するロック要求を行い、これに対するタスク
情報登録後、タスク1に対してロック許可通知がなされ
る(ステップS901)。次に、タスク2がブロックB
に対するロック要求を行い、これに対するタスク情報登
録後、タスク2に対してロック許可通知がなされる(ス
テップS902)。
【0027】その後、タスク1はブロックBに対するロ
ック要求を行う。しかし、ブロックBは既にタスク2に
よってロックされているため、タスク1に待ち通知がな
される(ステップS903)。また、タスク1によるブ
ロックBに対するロック要求を待ち登録した時点からコ
マンドで指定された「監視時間」の監視を開始する(ス
テップS904)。
ック要求を行う。しかし、ブロックBは既にタスク2に
よってロックされているため、タスク1に待ち通知がな
される(ステップS903)。また、タスク1によるブ
ロックBに対するロック要求を待ち登録した時点からコ
マンドで指定された「監視時間」の監視を開始する(ス
テップS904)。
【0028】また、タスク2はブロックAに対するロッ
ク要求を行う。しかし、ブロックAは既にタスク1によ
ってロックされているため、タスク2に待ち通知がなさ
れる(ステップS905)。また、タスク2によるブロ
ックAに対するロック要求を待ち登録した時点からコマ
ンドで指定された「監視時間」の監視を開始する(ステ
ップS906)。
ク要求を行う。しかし、ブロックAは既にタスク1によ
ってロックされているため、タスク2に待ち通知がなさ
れる(ステップS905)。また、タスク2によるブロ
ックAに対するロック要求を待ち登録した時点からコマ
ンドで指定された「監視時間」の監視を開始する(ステ
ップS906)。
【0029】ここまでの処理により、タスク1とタスク
2の間でデッドロックが生じている。すなわち、タスク
1がブロックAを、タスク2がブロックBをロックする
一方、タスク1がブロックBを、タスク2がブロックA
を待っており、互いに相手のロックしているブロックを
待ってしまって硬直状態になっている。この場合、いず
れかがロックしているブロックを強制的にアンロックし
ない限り、この状態が永久に続いてしまう。そこで、本
発明では、監視エントリの「監視時間」を経過すると、
そのロック待ち状態を解除してその旨をタスクに対して
通知することにより、このデッドロックを解消する。
2の間でデッドロックが生じている。すなわち、タスク
1がブロックAを、タスク2がブロックBをロックする
一方、タスク1がブロックBを、タスク2がブロックA
を待っており、互いに相手のロックしているブロックを
待ってしまって硬直状態になっている。この場合、いず
れかがロックしているブロックを強制的にアンロックし
ない限り、この状態が永久に続いてしまう。そこで、本
発明では、監視エントリの「監視時間」を経過すると、
そのロック待ち状態を解除してその旨をタスクに対して
通知することにより、このデッドロックを解消する。
【0030】タスク1とタスク2の両者が同じ値の「監
視時間」を指定していたとすると、先に登録されたタス
ク1の待ちが早くタイムアウトになる。このタイムアウ
トが検出されると、タスク1のブロックBに対するロッ
ク待ちを表すタスク情報は、待ちリストから削除され
る。タスク1にはこの削除に関する通知がなされる(ス
テップ907)。
視時間」を指定していたとすると、先に登録されたタス
ク1の待ちが早くタイムアウトになる。このタイムアウ
トが検出されると、タスク1のブロックBに対するロッ
ク待ちを表すタスク情報は、待ちリストから削除され
る。タスク1にはこの削除に関する通知がなされる(ス
テップ907)。
【0031】この通知を受けて、タスク1はデッドロッ
クが発生したことを知り、ブロックAについてのアンロ
ック要求を発行する。このアンロック要求に応答して、
タスク1のブロックAに対するロック取得を表すタスク
情報は、ロックリストから削除される。タスク1にはこ
の削除に関する通知がなされる(ステップ908)。ま
た、ブロックAのロックを待っていたタスク2にはロッ
ク許可の通知がなされる(ステップ908)。これによ
り、タスク2は、ブロックA及びブロックBのロックが
許可されて、更新処理が可能となる。
クが発生したことを知り、ブロックAについてのアンロ
ック要求を発行する。このアンロック要求に応答して、
タスク1のブロックAに対するロック取得を表すタスク
情報は、ロックリストから削除される。タスク1にはこ
の削除に関する通知がなされる(ステップ908)。ま
た、ブロックAのロックを待っていたタスク2にはロッ
ク許可の通知がなされる(ステップ908)。これによ
り、タスク2は、ブロックA及びブロックBのロックが
許可されて、更新処理が可能となる。
【0032】なお、タスク1の「監視時間」をタスク2
の「監視時間」よりも大きく指定して調整することによ
り、タスク2の待ちを早くタイムアウトさせることも可
能である。また、この「監視時間」の指定を各タスクの
優先度に応じて調整することで、システムの要求に適し
た運用を行うことができる。
の「監視時間」よりも大きく指定して調整することによ
り、タスク2の待ちを早くタイムアウトさせることも可
能である。また、この「監視時間」の指定を各タスクの
優先度に応じて調整することで、システムの要求に適し
た運用を行うことができる。
【0033】このように、本発明の一実施例である排他
制御装置200によれば、ロック待ちとなっている時間
を待ち時間監視手段220によって監視して、コマンド
で指定された監視時間を経過した場合には当該待ちを待
ちリストから削除するため、デッドロックチェック処理
が不要となり、システムの処理性能が向上する。また、
監視時間をタスクから指定できるようにしたことによ
り、デッドロックが発生した場合にエラー終了させるタ
スクを陽に指定することができる。
制御装置200によれば、ロック待ちとなっている時間
を待ち時間監視手段220によって監視して、コマンド
で指定された監視時間を経過した場合には当該待ちを待
ちリストから削除するため、デッドロックチェック処理
が不要となり、システムの処理性能が向上する。また、
監視時間をタスクから指定できるようにしたことによ
り、デッドロックが発生した場合にエラー終了させるタ
スクを陽に指定することができる。
【0034】
【発明の効果】以上の説明で明らかなように、本発明に
よると、所定時間を経過したロック待ちを強制的に削除
することにより、デッドロックチェック処理を不要にし
て、システムの処理性能を向上できる。また、監視時間
をタスクから指定できるようにしたことにより、デッド
ロックが発生した場合にエラー終了させるタスクを明示
的に指定することができる。
よると、所定時間を経過したロック待ちを強制的に削除
することにより、デッドロックチェック処理を不要にし
て、システムの処理性能を向上できる。また、監視時間
をタスクから指定できるようにしたことにより、デッド
ロックが発生した場合にエラー終了させるタスクを明示
的に指定することができる。
【図1】本発明の排他制御装置が適用される情報処理シ
ステムの一構成例を示す図である。
ステムの一構成例を示す図である。
【図2】本発明の排他制御装置の一実施例を示す図であ
る。
る。
【図3】本発明の一実施例の排他制御装置におけるロッ
ク管理テーブルで管理されるデータ構造を示す図であ
る。
ク管理テーブルで管理されるデータ構造を示す図であ
る。
【図4】本発明における監視エントリの構成を示す図で
ある。
ある。
【図5】本発明におけるコマンドの形式を示す図であ
る。
る。
【図6】本発明におけるタスク情報登録手段の動作を表
す図である。
す図である。
【図7】本発明における待ち時間監視手段の動作を表す
図である。
図である。
【図8】本発明におけるタスク情報削除手段の動作を表
す図である。
す図である。
【図9】本発明の一実施例の排他制御装置による処理の
流れを表す図である。
流れを表す図である。
100 プロセッサ 200 排他制御装置 210 タスク情報登録手段 220 待ち時間監視手段 230 タスク情報削除手段 240 ロック管理テーブル 250 コマンドインタフェース 300 共有資源
Claims (5)
- 【請求項1】 監視時間が指定されたロック取得要求に
対してロック待ちとなったタスクについて、そのロック
待ちとなっている時間が前記監視時間を越えた場合にそ
のロック待ちを強制的に解除することを特徴とする排他
制御装置。 - 【請求項2】 タスクからの監視時間が指定されたロッ
ク取得要求に応答してロックを取得した旨のロック登録
又はロック待ちである旨のロック待ち登録を行うタスク
情報登録手段と、 このタスク情報登録手段においてロック待ち登録されて
いる時間を監視してロック待ち登録されている時間が前
記監視時間を越えた場合にロック待ち登録を削除する待
ち時間監視手段と、 前記ロック登録又はロック待ち登録を削除し、前記待ち
時間監視手段によって削除されたロック待ち登録に係る
タスクが既に取得していたロックのロック登録を削除す
るタスク情報削除手段とを含むことを特徴とする排他制
御装置。 - 【請求項3】 ロックの対象となる最小単位であるブロ
ック毎に設けられ当該ロックを取得しているタスクに関
する情報を管理するロックリストと、前記ブロック毎に
設けられ当該ロックを待っているタスクに関する情報を
管理する待ちリストとを格納するロック管理テーブル
と、 タスクからの監視時間が指定されたロック取得要求に応
答して前記ロックリスト又は前記待ちリストに当該タス
クに関する情報を登録するタスク情報登録手段と、 このタスク情報登録手段において前記待ちリストに接続
されている時間が前記監視時間を越えた場合に前記待ち
リストから前記タスクに関する情報を削除する待ち時間
監視手段と、 前記ロック登録又はロック待ち登録を削除し、前記待ち
時間監視手段によって前記待ちリストから削除されたタ
スクに関する情報を前記ロックリストから削除するタス
ク情報削除手段とを含むことを特徴とする排他制御装
置。 - 【請求項4】 前記ロック取得要求は、読出しのための
ロックか書込みのためのロックかを示すロック種別をさ
らに含み、 前記タスク情報登録手段は、ロック対象となるブロック
が既に読出しのためにロックされていても前記ロック種
別が読出しのためのロックである旨を示していれば前記
ロックリストに登録し、ロック対象となるブロックが既
に書込みのためにロックされていれば前記ロック種別に
拘わらず前記待ちリストに登録することを特徴とする請
求項3記載の排他制御装置。 - 【請求項5】 ロックの対象となる最小単位であるブロ
ック毎に設けられ当該ロックを取得しているタスクに関
する情報を管理するロックリストと、前記ブロック毎に
設けられ当該ロックを待っているタスクに関する情報を
管理する待ちリストとを格納するロック管理テーブルを
含む排他制御装置において、 タスクからの監視時間が指定されたロック取得要求に応
答して前記ロックリスト又は前記待ちリストに当該タス
クに関する情報を登録するタスク情報登録ステップと、 前記待ちリストに接続されている時間が前記監視時間を
越えた場合に前記待ちリストから前記タスクに関する情
報を削除する待ち時間監視ステップと、 前記待ちリストから削除されたタスクに関する情報を前
記ロックリストから削除するタスク情報削除ステップと
を含むことを特徴とする排他制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26293395A JPH09106357A (ja) | 1995-10-11 | 1995-10-11 | 排他制御装置及びその方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26293395A JPH09106357A (ja) | 1995-10-11 | 1995-10-11 | 排他制御装置及びその方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09106357A true JPH09106357A (ja) | 1997-04-22 |
Family
ID=17382604
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP26293395A Pending JPH09106357A (ja) | 1995-10-11 | 1995-10-11 | 排他制御装置及びその方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09106357A (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01217639A (ja) * | 1988-02-26 | 1989-08-31 | Nec Corp | 情報処理システム |
| JPH03230402A (ja) * | 1990-02-02 | 1991-10-14 | Hitachi Lighting Ltd | 誘導灯器具 |
| JPH03260734A (ja) * | 1990-03-09 | 1991-11-20 | Meidensha Corp | コンピュータシステムの資源管理方式 |
| JPH05257718A (ja) * | 1992-03-13 | 1993-10-08 | Mitsubishi Electric Corp | プロセス制御装置 |
-
1995
- 1995-10-11 JP JP26293395A patent/JPH09106357A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01217639A (ja) * | 1988-02-26 | 1989-08-31 | Nec Corp | 情報処理システム |
| JPH03230402A (ja) * | 1990-02-02 | 1991-10-14 | Hitachi Lighting Ltd | 誘導灯器具 |
| JPH03260734A (ja) * | 1990-03-09 | 1991-11-20 | Meidensha Corp | コンピュータシステムの資源管理方式 |
| JPH05257718A (ja) * | 1992-03-13 | 1993-10-08 | Mitsubishi Electric Corp | プロセス制御装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5659682A (en) | Scheme to determine completion of directory operations for server recovery | |
| US8635193B2 (en) | Cluster-wide read-copy update system and method | |
| JPH0465414B2 (ja) | ||
| US5434994A (en) | System and method for maintaining replicated data coherency in a data processing system | |
| EP0618532B1 (en) | Deadlock detecting device | |
| JPH01298440A (ja) | 計算機システムおよびそのタスクスケジュール方法 | |
| CN114254042A (zh) | 读写分离数据库集群系统的访问方法、装置及电子设备 | |
| CN114666389A (zh) | 分布式系统中节点状态的检测方法、装置及计算机设备 | |
| CA2322604C (en) | Deadlock management in database systems with demultiplexed connections | |
| JPH05120110A (ja) | フアイルの自動バツクアツプシステム | |
| US7680826B2 (en) | Computer-readable recording medium storing security management program, security management system, and method of security management | |
| JPH09106357A (ja) | 排他制御装置及びその方法 | |
| JPH09223030A (ja) | 排他制御方法及びその装置 | |
| JPH09330240A (ja) | 資源排他制御方式 | |
| JP3524270B2 (ja) | 並列処理システム | |
| Bowen et al. | A locking facility for parallel systems | |
| JP3487440B2 (ja) | 共有メモリアクセス方式 | |
| JPH11312113A (ja) | 疎結合マルチプロセッサシステム | |
| JPS63196956A (ja) | フアイル排他方式 | |
| JPH01316846A (ja) | バッファ管理方式 | |
| JPH09305471A (ja) | ファイル同時アクセス制御システム | |
| JP2933011B2 (ja) | ファイルの排他制御システム | |
| KR0139724B1 (ko) | 유닉스 환경의 dbms에서 좀비 트랜잭션의 발견 및 처리 방법 | |
| JPS6265157A (ja) | 疎結合マルチプロセッサ装置 | |
| JPH1091510A (ja) | 共有ファイル更新制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19971216 |