JPH09330241A - デッドロック防止排他制御方式 - Google Patents

デッドロック防止排他制御方式

Info

Publication number
JPH09330241A
JPH09330241A JP16847796A JP16847796A JPH09330241A JP H09330241 A JPH09330241 A JP H09330241A JP 16847796 A JP16847796 A JP 16847796A JP 16847796 A JP16847796 A JP 16847796A JP H09330241 A JPH09330241 A JP H09330241A
Authority
JP
Japan
Prior art keywords
semaphore
task
reservation
processing means
list
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
JP16847796A
Other languages
English (en)
Inventor
Shigeyuki Ohara
茂之 大原
Tsutomu Sawada
勉 澤田
Shitai Son
志太 孫
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.)
ERUGU KK
Tokai University
Original Assignee
ERUGU KK
Tokai University
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 ERUGU KK, Tokai University filed Critical ERUGU KK
Priority to JP16847796A priority Critical patent/JPH09330241A/ja
Publication of JPH09330241A publication Critical patent/JPH09330241A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 セマフォの使用に関し煩わしい約束事を行う
ことなく、コンピュータ資源の利用効率を向上させるこ
とができるデッドロック防止排他制御方式を提供する。 【解決手段】 資源を共有する処理(タスク)はカーネ
ル部に対しサービスを要求し、カーネル部は、本発明に
より加えられたR操作およびC操作ならびにP操作およ
びV操作のすべてを管理する。カーネル部はタスクから
のR操作要求に対し、複数のセマフォのうち2以上のセ
マフォを共有する場合には、そのタスクを待ち状態とす
る。共有するセマフォが1つ以下の場合にはそのタスク
をそのまま続行させる。予約されP操作がなされた後、
V操作がなされたセマフォに対しC操作によってその予
約をキャンセルし、キャンセルしたセマフォにR操作待
ち状態のタスクがあるときは、そのタスクがR操作をす
ることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクシス
テム(カーネルやファイル管理システムなど)やマルチ
CPUシステムで同時に利用できない共有資源を排他制
御するデッドロック防止排他制御方式に関する。
【0002】
【従来の技術】マルチタスクシステムでは、プリンタや
通信回線などのハードウェア資源やファイル上のレコー
ドのような論理資源やプログラムのようなソフト資源を
複数のタスクで利用している。このような資源は共有資
源と呼ばれる。しかし、共有資源をある一定の時間内に
同時に利用すると、不都合が生じる場合がある。図16
にタスク1とタスク2がそれぞれプリンタを交互に利用
する場合の例を示す。タスク1によりプリント内容A,
B,C,D・・・とタスク2によりプリント内容い,
ろ,は,に,・・・をプリントした場合、プリント出力
30は両方のプリント内容が混在したものとなる。
【0003】一定時間、他のタスクに共有資源を利用さ
せないで、独占的に占有して利用する排他制御方式とし
て従来よりセマフォという方式がある。図17はセマフ
ォ方式を用いた排他制御方式の一例を説明するための図
である。タスクが共有資源を占有使用する際にP操作と
いう操作を行い、占有を解除する際にV操作という操作
を実行する。図17に示すように、タスク1によってP
操作がなされている資源に別のタスク2がP操作を実行
すると、タスク2はタスク1がV操作をするまで待ちに
なる。この操作によって図16で示したプリント内容は
それぞれ占有した単位ごとの文字列がプリントされる。
【0004】図18は、セマファの機能を中心にして示
した排他制御方式の一例を示す図である。セフォマはカ
ウンタ値で管理され、カウンタ値はP操作で1減算さ
れ、V操作で1加算される。初期値を1としておいて、
タスク1がP操作を行うと、1減算してセマフォのカウ
ンタ値は0になる。このときにタスク2がP操作しても
減算できないので、タスク2を待たせる制御を行う。タ
スク1がプリンタ等の資源を使用し終えてV操作をする
と、1が加算されるためセマフォのカウンタ値は1とな
り、タスク2は1を減算することができウエイト解除と
なる。タスク2が資源を利用し終えてV操作を行うとセ
マフォのカウンタ値は1になる。
【0005】複数のCPUを持つシステムの場合は、セ
マフォのP操作とV操作をCPUの命令で実現してい
る。複数の共有資源を排他的に占有して利用するには、
各資源ごとにセマフォを用意しておく必要がある。とこ
ろが、複数のセマフォを利用するようになると困った事
態が発生する。図19はその状態を示すもので、デッド
ロック状態になる場合の例を示す図である。セマフォ1
とセマフォ2を用いた例である。
【0006】タスク1がセマフォ1に対しP操作を行
い、その後にタスク2がセマフォ2に対しP操作をした
場合を想定する。タスク1はさらにセマフォ1に対しP
操作を行うが、タスク2がセマフォ2に対しV操作をし
ていないためウエイトとなる。一方、タスク2はセマフ
ォ1に対しP操作を行うが、タスク1がセマフォ1に対
しV操作をしていないためウエイトとなる。この結果、
互いに相手のV操作待ちという現象となり、永久に解除
できないデッドロック状態になる。
【0007】このデッドロック状態を未然に防ぐには次
の2つの方法がある。 タスクが複数のセマフォにP操作を行う場合は、P
操作を行うセマフォに順序をもたせる。図20はその例
を示すもので、タスク1がセマフォ1に対しP操作を行
い、つぎにセマフォ2に対しP操作を行う。タスク2が
セマフォ1からP操作を行うがウエイトとなる。タスク
1は資源の利用が終了すると、タスク1に対しV操作を
行うので、タスク2はウエイト解除となる。
【0008】 同時に使用する資源のセマフォに対し
て一括してP操作が行えるようにP操作を改良する。図
21はその例を示すもので、タスク1はセマフォ1およ
びセマフォ2に対しP操作を行う。タスク2がセマフォ
1およびセマフォ2に対しP操作を行うと、ウエイト状
態となる。タスク1が資源を使用してV操作をすると、
タスク2はウエイト解除となる。この他にP操作を行う
側で、同時に使用する資源は1つのセマフォで代表させ
るようにしても良い。
【0009】
【発明が解決しようとする課題】ところで、デッドロッ
クを避けるための従来の方式には、P操作を実行する
側に約束が必要であり、プログラムのエラーを発生させ
易いという欠点があった。また、従来の方式には、セ
マフォ2を使う前のセマフォ1を使う時点で、使用しな
いにもかかわらずセマフォ2を占有してしまう必要があ
るために、資源の利用効率が悪いという欠点があった。
【0010】図22は従来の方式の詳細を説明するた
めの図である。タスク1はセマフォ1および2を使用
し、タスク2はセマフォ2のみを使用するものである。
タスク1がデッドロック防止のためセマフォ1および2
に対しP操作を行っている状態で、タスク2がP操作し
ようとしてもタスク2はセマフォ2の資源しか使用でき
ないため、セマフォ2の資源が使用されていないにもか
かわらず、ウエイトになってしまう。本発明の課題は、
セマフォの使用に関し煩わしい約束事を行うことなく、
コンピュータ資源の利用効率を向上させることができる
デッドロック防止排他制御方式を提供することにある。
【0011】
【課題を解決するための手段】前記課題を解決するため
に本発明によるデッドロック防止排他制御方式は、マル
チタスクシステムや分散システム等における共有資源毎
にセマフォを用意しておき、各セマフォに対しP操作,
V操作を行うことにより、排他制御を行う排他制御方式
において、前記P操作を行う前に、セマフォに対し予約
をするためのR操作処理手段と、前記V操作の後に、予
約をキャンセルするためのC操作処理手段とを設け、前
記R操作処理手段によって任意のタスクが予約をする場
合、複数のセマフォのうちの任意の2つ以上のセマフォ
を共有する予約になるときには、その任意のタスクをR
操作待ち状態にし、複数のセマフォのうちの任意の1以
下のセマフォを共有する予約になるときにはその任意の
タスクの実行を続行し、前記R操作処理手段で予約さ
れ、P操作がなされた後、V操作がなされたセマフォに
対し、前記C操作処理手段によってその予約をキャンセ
ルし、予約をキャンセルしたセマフォに前記R操作待ち
状態のタスクがあるときは前記R操作処理手段によって
R操作を行うようにしてある。また、上記構成におい
て、タスクのR操作管理リストとして予約中のタスクの
R操作リストと、R操作待ち状態のタスクのR操作待ち
リストを作成するようにし、前記R操作処理手段によっ
て実行続行になったタスクを前記R操作リストに接続
し、前記R操作処理手段によってR操作待ち状態になっ
たタスクを前記R操作待ちリストに接続し、C操作処理
手段によって、前記R操作リストを参照することにより
予約をキャンセルすべきセマフォに対するタスクを探し
出し、そのタスクのセマフォの予約をキャンセルし、前
記R操作待ちリストを参照することにより、予約をキャ
ンセルしたセマフォに対し、R操作待ちのタスクを探し
出し、そのタスクを前記R操作リストに接続するように
してある。さらに本発明は、マルチCPUシステムにお
ける共有資源毎にセマフォを用意しておき、各セマフォ
に対しP操作,V操作を行うことにより、排他制御を行
う排他制御方式において、前記P操作を行う前に、排他
制御すべきCPUが用いるセマフォに対し予約をするた
めのR操作処理手段と、前記V操作の後に、前記R操作
をキャンセルするためのC操作処理手段とを設け、複数
のCPUに対し各セマフォの予約状態を示すR操作中行
列を作成しておき、前記R操作処理手段は、排他制御す
べきCPUが用いる各セマフォに対し予約すべきセマフ
ォをフラグによって示す要求レジスタを作り、前記要求
レジスタの各セマフォのフラグの状態と、前記R操作中
行列の各CPUの各セマフォの予約状態を示す行との論
理積演算を行い、複数のセマフォのうちの任意の2つ以
上のセマフォを共有する行が存在する場合には前記R操
作中行列の先頭に戻り前記論理積演算をやり直し、全行
が複数のセマフォのうちの任意の1以下のセマフォを共
有する行のみである場合には、実行を続行するとともに
前記要求レジスタの内容を前記R操作中行列の該当する
CPUの行に書込み、前記R操作処理手段で予約され、
P操作がなされた後、V操作がなされた任意のCPUの
セマフォに対し、前記C操作処理手段によって予約をキ
ャンセルするように構成してある。
【0012】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳しく説明する。図1は、本発明によるデッ
ドロック防止排他制御方式を適用したカーネルによるサ
ービス方式を示した概念図である。資源を共有する処理
(タスク)はカーネル部に対しサービスを要求し、カー
ネル部は、本発明により加えられたR(予約)操作およ
びC(キャンセル)操作ならびにP操作およびV操作の
すべてを管理する。
【0013】図2は、本発明によるデッドロック防止排
他制御方式を適用したファイル管理によるサービス方式
を示した概念図で、(a)は単一システムに、(b)は
分散システムに適用した例である。(a)において、フ
ァイルを共有する処理(タスク)はファイル内データに
対するサービス要求(P,V,R,C)をする。単一シ
ステム内のファイル管理部は、タスクよりサービス要求
を受けて共有するファイル内のデータに対するR,C操
作およびP,V操作の管理を行う。(b)の分散システ
ムはシステム1,2〜nが通信路を介してファイル管理
システムに接続されている。任意のシステムからの共有
ファイルに対するサービス要求は、ファイル管理システ
ムにおいて複数システム間で共有されたファイルのデー
タに対するR,C,P,V操作管理が行われる。
【0014】図3は、本発明によるデッドロック防止排
他制御方式を適用したコンピュータシステムのカーネル
部の実施の形態を示すブロック図である。コンピュータ
システムは、制御手段1,表示手段2,データ・プログ
ラム記憶手段3,入力装置4および出力装置5によって
構成されている。データ・プログラム記憶手段2よりタ
スク及び管理プログラムが読み出され、制御手段1の制
御の下にタスクの生成処理,システム資源割当て,実行
すべきタスクの選択,実行状態の監視,タスクの消滅処
理等が行われる。
【0015】システム資源割当において、排他制御手段
11による排他制御が行われる。各資源対応にセマフォ
1,2・・・nが設けられており、排他制御手段11の
制御の下に、タスクはセマフォに対しR(予約)操作,
P操作,V操作,C(キャンセル)操作を行う。図4
は、本発明によるデッドロック防止排他制御方式におけ
る予約付きセマフォを説明するための図である。図4に
示すように、複数の資源に関する同時P操作では、占有
の予約だけを一括して行うようにする。これを上述した
ようにR(Reservation) 操作と呼ぶ。しかも、実際に占
有する必要が生じたときに、P操作を実行し、占有が終
了するとV操作を実行する部分は従来と変わらない。そ
して、ある資源を占有する可能性がなくなった場合に、
予約を取り消すC(Cancel)操作を実行する。C操作は
R操作のように一括して行わなくても各セマフォごとに
行うことができる。
【0016】図5は、予約付きセマフォの操作方法を説
明するための図である。R操作では、チェックを行
い、セマフォ1〜nの任意の2つ以上を含んだR操作が
発せられた場合には、そのタスクを待ち状態とする。共
有するセマフォが1つ以下の場合は、そのタスクをその
まま続行させる。任意のセマフォnに対するP操作とV
操作の機能は従来の方式と同じである。すなわち、セマ
フォnに対しP操作によってセマフォカウンタに−1の
減算を行う。カウンタ値が0以下になる場合はタスクを
ウエイトする。0以上の場合にはそのままタスクを続行
する。
【0017】そしてセマフォnに対するV操作によって
セマフォカウンタに+1の加算を行う。P操作待ちのタ
スクがある場合には待ちのタスクを対象にP操作を行
う。なお、複数のセマフォに対して、同時にP操作を行
う必要はない。C操作では、予約状態(R操作で発生す
る)を解除する。このC操作で解除されたセマフォnを
含んでR操作でウエイト中のタスクがあるか否かをチェ
ックし、ウエイト中のタスクがある場合には待ちのタス
クを対象にR操作を行う。このようなR操作,C操作を
排他制御手段11で管理するためセマフォでは従来方式
に加えて、タスクのR操作管理リスト10を設け、この
リストを管理する。
【0018】図6は、カーネルやファイルシステムなど
のソフトウェアで本発明によるデッドロック防止排他制
御方式の管理ロジックを作成したときの図で、第1の実
施の形態を説明するための図である。R操作の実現のた
めに、R操作用の管理データ15,依頼した処理を管理
するデータ16およびR操作対象リスト19(R操作の
対象となるセマフォを記憶しているリスト)を有してい
る。R操作管理データ15は、R操作によって待ちとな
っている処理列(R操作待ち列)17とR操作を経てC
操作がなされていない処理列(R操作中列)18を管理
するデータのリンクへのポインタを有している(図7参
照)。
【0019】図8は、R操作対象リストの内容を示す図
である。R操作対象リストはR操作の対象となるセマフ
ォを記憶しているリストである。このリストがR操作待
ち列にリンクされている場合は、R操作リストの中に記
憶されているセマフォが、他の処理のC操作による解放
を待っていることを示す。一方、同じリストがR操作中
の列にリンクされていれば、予約してP−V操作に使用
していることを示す。どちらにリンクされている場合
も、R操作を行った処理を管理するデータへのポインタ
21と、対象とするセマフォ20と次のデータへのポイ
ンタ22を有する。
【0020】図9は、依頼処理の管理データの内容を示
す図である。この管理データはR操作やC操作のサービ
スを要求する処理を管理するためのデータである。R,
C操作とは直接関係ないが、処理を待たせたり,実行さ
せたりするために必要となるデータである。図2(a)
に示す単一のシステムのカーネルの場合であるならば、
タスク管理データに対応する。また、ファイルシステム
の場合であるならば、ファイルアクセス依頼処理を待ち
合わせることができるデータである。R操作対象リスト
への逆ポインタを、処理の便宜上用意しておくことがよ
い。
【0021】つぎに図6〜図9を参照しながら図10に
示す探索処理ロジックを説明する。。まず、R操作にお
ける処理を説明する。カーネルやファイル管理などのサ
ービスを提供する処理は、R操作命令(セマフォS1,
2 ,S3 ・・・Sn を予約する命令)を受けると、R操
作中列18のR操作リスト(図8のようなリスト)を順
に探索する。探索の結果、R操作中列に命令の対象とな
るセマフォを2以上含むR操作リストが存在すれば、こ
の命令はデッドロックにつながる危険性があると判断す
る。
【0022】図10においてケース1はR操作命令(セ
マフォS1,2 を予約する命令)25に対し、R操作実
行列のリスト23とリスト24の別々のリストにR操作
命令のセマフォがある場合である。この場合にはデッド
ロックの可能性がないので、処理を続行する。ケース3
は、R操作命令(セマフォSn の内の1つに予約する命
令)26が単一の場合である。共有するセマフォが複数
含まれることはないので、探索の必要はない。
【0023】ケース2は、R操作命令(セマフォS1,
3 を予約する命令)26に対し、R操作実行列のリスト
23にR操作命令のセマフォS1,3 がある場合であ
る。この場合には複数含まれるので、デッドロックの可
能性がある。この場合には図8に示すようなリストを作
成し、図6のR操作待ち列17のリストにリンクする。
同時にR操作命令を発した処理を待ちにしてしまうか、
C操作が出されるまで待ち列に入れられたことをその処
理に連絡する。デッドロックの可能性がなかった場合
(ケース1,3の場合)、図8に示すようなリストを作
成し、図6のR操作中列18のリストにリンクする。同
時にR操作命令を発した処理に対してはR操作が実行さ
れたことを連絡する。
【0024】つぎにC操作の処理を説明する。図6のR
操作中列18の中のR操作対象リストにポイントされる
依頼処理管理データ(図9に示す依頼処理管理データ)
からC操作を実行した処理を見つけ出す。そして、その
処理をポイントしているR操作対象リストからC操作の
対象とするセマフォを削除する。もし、R操作対象リス
トの全セマフォ20が削除された場合は、R操作対象リ
ストをR操作中列から取り外して削除する。
【0025】R操作待ち列の全R操作リストに対して、
R操作と同じ探索処理を実行する。その結果、デッドロ
ックの可能性がないと判断されたR操作リストはR操作
待ちリストから取り外し、R操作中列へリンク替えす
る。以上、R,C操作の処理について説明したが、P,
V操作などのセマフォに対する処理はR,C操作の間に
従来通りに実行すればよい。
【0026】図11は、複数のCPUが共有メモリを用
いるシステムを示すブロック図である。メモリを共有す
るCPUが排他制御の必要な複数の領域にアクセスする
際にもR,C操作は有効である。CPUまたはCPUに
付属するハードウエアロジックによって予約付きセマフ
ォを実現する第2の実施の形態について説明する。かか
る場合、第1の実施の形態での依頼処理は各CPUに対
応する。また、カーネルやファイル管理のようなサービ
ス処理はない。
【0027】図12はCPUのP操作,V操作を説明す
るための図である。一般にCPUにおけるP操作は、メ
モリ上の特定領域31を読み出してその内容が0である
場合には、0以外にセットして実行を継続し、0以外で
ある場合には0になるまで読み出しを繰り返すことによ
り実現される。V操作は特定領域31を0にセットす
る。
【0028】図13は、CPUが複数の領域を排他制御
する際の概念図である。2つ以上の領域を排他制御する
には、従来の技術では複数の領域があっても1つのセマ
フォで代表させていた。この場合は接続されるCPUの
数が少ない場合や、排他制御する領域が少ない場合には
問題は発生しない。しかしながら、CPUの数が多くな
ったり、排他制御する領域が多くなったりすれば、無駄
に待たされ、CPUの効率が低下してしまう。これは従
来の技術の項で説明した通りである。また、個々の領域
毎にセマフォを用意してP操作を実行すれば、デッドロ
ックが発生することは避けられない。
【0029】図14および15は、本発明によるデッド
ロック防止排他制御方式を適用した第2の実施の形態を
説明するための図である。図14は、CPUとセマフォ
によるR操作行列の一例を示す図である。CPU1 〜C
PUn を行に、分割した各領域(セマフォS1 〜Sn
を列にそれぞれ対応させている。各行の各セル(以下
「フラグ」という)にはオン,オフを示す1,0が書き
込まれる。例えば、CPU3 の行のS1 とS3 にフラグ
1が、他には0が書き込まれており、フラグ1は予約さ
れている状態を、フラグ0は解放されている状態を示し
ている。このR操作行列の全セルの初期値は0である。
【0030】図15(a)は、R操作およびC操作の処
理の手順を説明するためのフローチャート、図15
(b)は、演算過程の一例を説明するための図である。
CPU5 のR操作について説明する。CPU5 のR操作
要求がある(ステップ(以下「ST」という)151)
と、対象とする領域(S2 ,S3 )に対応するフラグだ
けを1としたデータを書き込んだ特定装置(要求レジス
タ)32をCPU5 に対応させて用意する。一方、R操
作行列の状態が33に示すように各フラグが設定されて
いるとする。
【0031】制御手段は、要求レジスタ32の内容とR
操作行列33の各行とを順番に論理積演算する(ST1
52)。そして、2以上のフラグが1になる行が存在す
るか否かを判断する(ST153)。演算の結果、2以
上のフラグが1になる行が存在する場合には先頭位置に
戻り、再度論理積演算を行う(ST154)。一方、2
以上のフラグが1になる行が存在しない場合にはR操作
が実行できたものとし、要求レジスタ32の内容をその
CPU対応のR操作行列の行に書き込み(ST15
5)、R操作を通過する。(b)において、CPU5
要求レジスタ32とR操作行列33の各行の論理積演算
の結果が34に示されている。この例によれば、CPU
n の行が2以上のフラグが1となっており、行の先頭に
戻って同じ論理積演算をすることになる。
【0032】C操作では、R操作行列の自身の行のC操
作対象とするフラグをオフにする。なお、P操作につい
ては、R操作と同じ処理を実行し、V操作についてはC
操作と同じ処理を実行する。
【0033】このように本発明によるデッドロック防止
排他制御方式は、カーネルやファイルシステムなどのサ
ービスモジュールによって、また、複数のCPU間でレ
ジスタを用いることにより構成することができ、デッド
ロックを防止することができる。また、P操作で一括し
て占有してしまう方法に比べて、複数のセマフォを共有
しない場合は、デッドロックを発生する可能性がないた
め、タスクはそのまま実行を継続できる。このため、資
源の利用効率が上がり、タスクも無駄な待ち合わせを行
う必要がなく、タスクの稼働率も向上する。ただし、R
操作とC操作という機能を使うための処理時間が多少か
かることになるのは避けられない。
【0034】以上、説明したように本発明によるデッド
ロック防止排他制御方式は以下の分野で用いることがで
きる。 マルチタスク、マルチプロセスを制御するOSの制御
モジュールであるカーネルがアプリケーションに提供す
るサービスであるシステムコールとして実現できる。 マルチタスクの環境下のファイルシステムが、タスク
に共有されるファイルのレコードを占有するための命令
として実現できる。 分散された環境のシステムで、クライアントにデータ
ベースなどの様々のサービスを提供するサーバシステム
が、提供するデータやサービスを占有させる場合のイン
ターフェースを提供することができる。 マルチCPUのシステムで、複数のCPUが共有メモ
リなどの共有資源を独占的に使用する場合に、レジスタ
などを使ったインタフェースとして実現することができ
る。
【0035】
【発明の効果】以上、説明したように本発明によれば、
コンピュータシステムのハードウエア部分とともに排他
制御手段を形成するOSにおいて、セマフォの使い方に
関して、煩わしい約束事をする必要がなくなる。そのこ
とによるエラーの発生率も低減できる。また、コンピュ
ータ資源の利用効率も向上させることができるという効
果がある。さらにR操作とP操作、C操作とV操作を組
合せると、プログラムの大きな変更をしなくても予約セ
マフォを使うことも可能となる。
【図面の簡単な説明】
【図1】本発明によるデッドロック防止排他制御方式を
適用したカーネルによるサービス方式を示した概念図で
ある。
【図2】本発明によるデッドロック防止排他制御方式を
適用したファイル管理によるサービス方式を示した概念
図である。
【図3】本発明によるデッドロック防止排他制御方式を
適用したコンピュータシステムの実施の形態を示すブロ
ック図である。
【図4】本発明によるデッドロック防止排他制御方式に
おける予約付きセマフォを説明するための図である。
【図5】予約付きセマフォの操作方法を説明するための
図である。
【図6】カーネルやファイルシステムなどのソフトウェ
アで本発明によるデッドロック防止排他制御方式の管理
ロジックを作成したときの第1の実施の形態を示す図で
ある。
【図7】R操作管理データの内容を示す図である。
【図8】R操作対象リストの内容を示す図である。
【図9】R,C操作依頼処理の管理データの内容を示す
図である。
【図10】R操作命令に基づく探索ロジックを説明する
ための図である。
【図11】本発明によるデッドロック防止排他制御方式
の第2の実施の形態を示す図である。
【図12】複数のCPUが共有メモリを用いるシステム
を示すブロック図である。
【図13】CPUが複数の領域を排他制御する際の概念
図である。
【図14】CPUとセマフォによるR操作行列の一例を
示す図である。
【図15】(a)は、R操作およびC操作の処理の手順
を説明するためのフローチャート、(b)は、演算過程
の一例を説明するための図である。
【図16】タスク1とタスク2がそれぞれプリンタを交
互に利用する場合の例を示す図である。
【図17】セマフォ方式を用いた排他制御方式の一例を
説明するための図である。
【図18】セマファの機能を中心にして示した排他制御
方式の一例を示す図である。
【図19】デッドロック状態になる場合の例を示す図で
ある。
【図20】タスクが複数のセマフォにP操作を行う場
合、P操作を行うセマフォに順序をもたせる例を示す図
である。
【図21】同時に使用する資源のセマフォに対して一括
してP操作が行えるようにした例を示す図である。
【図22】従来の方式の詳細を説明するための図であ
る。
【符号の説明】
1…制御手段 2…表示手段 3…データ・プログラム記憶手段 4…入力装置 5…出力装置 6,7,8…セマフォ 9…タスク 10…タスクのR操作管理リスト 11…排他制御手段 12…カーネル部 15…R操作管理データ 16…依頼処理管理データ 17…R操作待ち列 18…R操作中列
フロントページの続き (72)発明者 孫 志太 神奈川県平塚市北金目1117番地 東海大学 工学部電子工学科内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 マルチタスクシステムや分散システム等
    における共有資源毎にセマフォを用意しておき、各セマ
    フォに対しP操作,V操作を行うことにより、排他制御
    を行う排他制御方式において、 前記P操作を行う前に、セマフォに対し予約をするため
    のR操作処理手段と、 前記V操作の後に、予約をキャンセルするためのC操作
    処理手段とを設け、 前記R操作処理手段によって任意のタスクが予約をする
    場合、複数のセマフォのうちの任意の2つ以上のセマフ
    ォを共有する予約になるときには、その任意のタスクを
    R操作待ち状態にし、複数のセマフォのうちの任意の1
    以下のセマフォを共有する予約になるときにはその任意
    のタスクの実行を続行し、 前記R操作処理手段で予約され、P操作がなされた後、
    V操作がなされたセマフォに対し、前記C操作処理手段
    によってその予約をキャンセルし、予約をキャンセルし
    たセマフォに前記R操作待ち状態のタスクがあるときは
    前記R操作処理手段によってR操作を行うことを特徴と
    するデッドロック防止排他制御方式。
  2. 【請求項2】 タスクのR操作管理リストとして予約中
    のタスクのR操作リストと、R操作待ち状態のタスクの
    R操作待ちリストを作成するようにし、 前記R操作処
    理手段によって実行続行になったタスクを前記R操作リ
    ストに接続し、前記R操作処理手段によってR操作待ち
    状態になったタスクを前記R操作待ちリストに接続し、 前記C操作処理手段によって、前記R操作リストを参照
    することにより予約をキャンセルすべきセマフォに対す
    るタスクを探し出し、そのタスクのセマフォの予約をキ
    ャンセルし、 前記R操作待ちリストを参照することにより、予約をキ
    ャンセルしたセマフォに対し、R操作待ちのタスクを探
    し出し、そのタスクを前記R操作リストに接続すること
    を特徴とする請求項1記載のデッドロック防止排他制御
    方式。
  3. 【請求項3】 マルチCPUシステムにおける共有資源
    毎にセマフォを用意しておき、各セマフォに対しP操
    作,V操作を行うことにより、排他制御を行う排他制御
    方式において、 前記P操作を行う前に、排他制御すべきCPUが用いる
    セマフォに対し予約をするためのR操作処理手段と、 前記V操作の後に、前記R操作をキャンセルするための
    C操作処理手段とを設け、 複数のCPUに対し各セマフォの予約状態を示すR操作
    中行列を作成しておき、 前記R操作処理手段は、排他制御すべきCPUが用いる
    各セマフォに対し予約すべきセマフォをフラグによって
    示す要求レジスタを作り、 前記要求レジスタの各セマフォのフラグの状態と、前記
    R操作中行列の各CPUの各セマフォの予約状態を示す
    行との論理積演算を行い、 複数のセマフォのうちの任意の2つ以上のセマフォを共
    有する行が存在する場合には前記R操作中行列の先頭に
    戻り論理積演算をやり直し、 全行が複数のセマフォのうちの任意の1以下のセマフォ
    を共有する行のみである場合には、実行を続行するとと
    もに前記要求レジスタの内容を前記R操作中行列の該当
    するCPUの行に書込み、 前記R操作処理手段で予約され、P操作がなされた後、
    V操作がなされた任意のCPUのセマフォに対し、前記
    C操作処理手段によって予約をキャンセルするように構
    成したことを特徴とするデッドロック防止排他制御方式
JP16847796A 1996-06-07 1996-06-07 デッドロック防止排他制御方式 Pending JPH09330241A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16847796A JPH09330241A (ja) 1996-06-07 1996-06-07 デッドロック防止排他制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16847796A JPH09330241A (ja) 1996-06-07 1996-06-07 デッドロック防止排他制御方式

Publications (1)

Publication Number Publication Date
JPH09330241A true JPH09330241A (ja) 1997-12-22

Family

ID=15868832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16847796A Pending JPH09330241A (ja) 1996-06-07 1996-06-07 デッドロック防止排他制御方式

Country Status (1)

Country Link
JP (1) JPH09330241A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2013012208A (ja) * 2005-10-20 2013-01-17 Qualcomm Inc セマフォ予約をクリアする方法および装置
CN103902356A (zh) * 2012-12-26 2014-07-02 上海斐讯数据通信技术有限公司 一种信号量死锁的检测方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2013012208A (ja) * 2005-10-20 2013-01-17 Qualcomm Inc セマフォ予約をクリアする方法および装置
JP2014149849A (ja) * 2005-10-20 2014-08-21 Qualcomm Incorporated セマフォ予約をクリアする方法および装置
JP2015144000A (ja) * 2005-10-20 2015-08-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated セマフォ予約をクリアする方法および装置
CN103902356A (zh) * 2012-12-26 2014-07-02 上海斐讯数据通信技术有限公司 一种信号量死锁的检测方法

Similar Documents

Publication Publication Date Title
JP4042945B2 (ja) 共用資源を非同期的に更新するためのインターフェース・システムおよび方法
US5805900A (en) Method and apparatus for serializing resource access requests in a multisystem complex
US5502840A (en) Method and apparatus for advising a requesting process of a contention scheme to employ to access a shared resource
EP0747815B1 (en) Method and apparatus for avoiding dealocks by serializing multithreaded access to unsafe resources
US5349682A (en) Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US7124255B2 (en) Message based inter-process for high volume data
US7810098B2 (en) Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy
JP3318455B2 (ja) 解放された同期メカニズムの所有権を管理するための方法及びシステム
EP0969382A2 (en) Method for efficient non-virtual main memory management
EP0475873A2 (en) Duplicated logic and interconnection system for arbitration among multiple information processors
US7100161B2 (en) Method and apparatus for resource access synchronization
JPH1165863A (ja) 共有資源管理方法
US8046759B2 (en) Resource allocation method and system
US20030135615A1 (en) Method for rebalancing resources within a global resource namespace
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
US10360079B2 (en) Architecture and services supporting reconfigurable synchronization in a multiprocessing system
US6507861B1 (en) System and method for avoiding deadlock in a non-preemptive multi-threaded application running in a non-preemptive multi-tasking environment
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
US9274819B2 (en) Performing garbage collection using a virtual thread in operating system without kernel thread support
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
JPH09330241A (ja) デッドロック防止排他制御方式
JP2804478B2 (ja) タスク制御方式及びオンライン・トランザクション・システム
JPH05313923A (ja) 共有資源の排他制御装置
US20060168413A1 (en) Method for regulating access to data in at least one data storage device in a system consisting of several individual systems
JPH04507019A (ja) 非繁忙待機資源制御

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060104

A131 Notification of reasons for refusal

Effective date: 20060124

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20060606

Free format text: JAPANESE INTERMEDIATE CODE: A02