JPH04116731A - 共有資源排他制御方式 - Google Patents
共有資源排他制御方式Info
- Publication number
- JPH04116731A JPH04116731A JP23590290A JP23590290A JPH04116731A JP H04116731 A JPH04116731 A JP H04116731A JP 23590290 A JP23590290 A JP 23590290A JP 23590290 A JP23590290 A JP 23590290A JP H04116731 A JPH04116731 A JP H04116731A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- task
- mode
- exclusive
- shared
- 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 claims description 20
- 238000010586 diagram Methods 0.000 description 4
- 230000013872 defecation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は、計算機システムの共有資源の排他制御方式に
関する。
関する。
[従来の技術]
計算機システムにおいて複数のタスクから使用される資
源については、それへのアクセスを逐次化するために排
他制御が必要である。このような排他制御のために、計
算機システムには、ロック/アンロック(あるいはEN
Q/DEC)と呼ばれる基本機能が備えられており、ロ
ック要求には通常排他モードと共有モードの2種類があ
る。
源については、それへのアクセスを逐次化するために排
他制御が必要である。このような排他制御のために、計
算機システムには、ロック/アンロック(あるいはEN
Q/DEC)と呼ばれる基本機能が備えられており、ロ
ック要求には通常排他モードと共有モードの2種類があ
る。
排他制御の基本的動作は次のようなものである。あるタ
スクがロック要求を出した場合、ロック要求対象資源が
他のタスクによりロックされていないならば、すぐにロ
ック権が与えられる。しかし、他のタスクによりすでに
ロックされている場合、その資源のロックモード、また
は該タスクのロック要求のモードが排他モードの時はロ
ック待ちとなる。その資源のロックモードと該タスクの
ロック要求のモードがともに共有モードの時は、 (1)ロック待ちタスクがない場合は、該タスクにロッ
ク権を与え、ロック待ちタスクがある場合は、該タスク
をロック待ちとする。
スクがロック要求を出した場合、ロック要求対象資源が
他のタスクによりロックされていないならば、すぐにロ
ック権が与えられる。しかし、他のタスクによりすでに
ロックされている場合、その資源のロックモード、また
は該タスクのロック要求のモードが排他モードの時はロ
ック待ちとなる。その資源のロックモードと該タスクの
ロック要求のモードがともに共有モードの時は、 (1)ロック待ちタスクがない場合は、該タスクにロッ
ク権を与え、ロック待ちタスクがある場合は、該タスク
をロック待ちとする。
(2)該タスクにロック権を与える。
のいずれかの方法がとられる。
また、資源をロックしていたタスクがアンロック要求を
出した場合は該タスクのロック権の行使が終了する。他
にロックしているタスクがなく、かつロック待ちタスク
がある場合には、それらの内、最も早くロック要求した
タスクの要求モードが排他モードならばこのタスクのみ
にロック権を与え、共有モードならば前記(1)、(2
)に対応して、 (1)現在排他モードでロック待ちしているどのタスク
よりも早く共有モードでロック待ちしているタスクすべ
てにロック権を与える。
出した場合は該タスクのロック権の行使が終了する。他
にロックしているタスクがなく、かつロック待ちタスク
がある場合には、それらの内、最も早くロック要求した
タスクの要求モードが排他モードならばこのタスクのみ
にロック権を与え、共有モードならば前記(1)、(2
)に対応して、 (1)現在排他モードでロック待ちしているどのタスク
よりも早く共有モードでロック待ちしているタスクすべ
てにロック権を与える。
(2)現在共有モードでロック待ちしているタスクすべ
てにロック権を与える。
てにロック権を与える。
のいずれかの方法がとられる。
[発明が解決しようとする課B]
上述(1)の方法を採用した従来の共有資源排他制御方
式では、いかなる場合も共有モードのロック要求を出し
たタスクが排他モードのロック要求を出したタスクを追
い越してロックできないため、現在のロックが解け、次
のロック待ちタスクにロック権を与える際、該タスクの
ロックモトが共有モードであっても、排他モードのロッ
ク待ちタスクがあると、それ以後に共有モードでロック
待ちになったタスクにはロック権が与えられず、資源を
効率良く使用できない。
式では、いかなる場合も共有モードのロック要求を出し
たタスクが排他モードのロック要求を出したタスクを追
い越してロックできないため、現在のロックが解け、次
のロック待ちタスクにロック権を与える際、該タスクの
ロックモトが共有モードであっても、排他モードのロッ
ク待ちタスクがあると、それ以後に共有モードでロック
待ちになったタスクにはロック権が与えられず、資源を
効率良く使用できない。
また、上述(2)の方法を採用した従来の共有資源排他
制御方式では、′共有モードのロック要求が排他モード
のロック要求よりも頻繁に行われると、いつまでも排他
モードでロック要求したタスクにロック権が与えられな
い状況(永久封鎖)が発生する。
制御方式では、′共有モードのロック要求が排他モード
のロック要求よりも頻繁に行われると、いつまでも排他
モードでロック要求したタスクにロック権が与えられな
い状況(永久封鎖)が発生する。
そこで、本発明の技術的課題は、上記欠点に鑑み、永久
封鎖の発生を避けながら、共有資源の使用効率を向上さ
せた共有資源排他制御方式を提供することにある。
封鎖の発生を避けながら、共有資源の使用効率を向上さ
せた共有資源排他制御方式を提供することにある。
[課題を解決するための手段]
本発明の共有資源排他制御方式は、
共有モードのロック要求に対し、
資源がロックされていない場合は、該要求を出したタス
クにロック権を与え、 資源が共有モードでロックされており、がっ排他モード
のロック待ちタスクがない場合は、該要求を出したタス
クにロック権を与え、 資源が共有モードでロックされており、かつ排他モード
のロック待ちタスクがある場合は、該要求を出したタス
クをロック待ちとし、 資源が排他モードでロックされている場合は、該要求を
出したタスクをロック待ちとする共有要求処理手段と。
クにロック権を与え、 資源が共有モードでロックされており、がっ排他モード
のロック待ちタスクがない場合は、該要求を出したタス
クにロック権を与え、 資源が共有モードでロックされており、かつ排他モード
のロック待ちタスクがある場合は、該要求を出したタス
クをロック待ちとし、 資源が排他モードでロックされている場合は、該要求を
出したタスクをロック待ちとする共有要求処理手段と。
共有モードのロック待ちタスクがあれば、そのすべてに
ロック権を与え、共有モードのロック待ちタスクがなく
、排他モードのロック待ちタスクがあれば、それらの内
最も先にロック要求したタスクにロック権を与える共有
優先ロック手段排他モードのロック待ちタスクがあれば
、それらの内置も先にロック要求したタスクにロック権
を与え、排他モードのロック待ちタスクがなく、共有モ
ードのロック待ちタスクがあれば、そのすべてにロック
権を与える排他優先ロック手段とアンロック要求に対し
、アンロック後、ロックしているタスクがなくなり、か
つロック待ちタスクがある場合、現在の資源のロックモ
ードが排他モードの時は、前記共有優先ロック手段を呼
び出し、現在の資源のロックモードが共有モードの時は
、前記排他優先ロック手段を呼び出すアンロック手段と
、 システム内の排他制御対象資源を識別する排他制御テー
ブルを有する。
ロック権を与え、共有モードのロック待ちタスクがなく
、排他モードのロック待ちタスクがあれば、それらの内
最も先にロック要求したタスクにロック権を与える共有
優先ロック手段排他モードのロック待ちタスクがあれば
、それらの内置も先にロック要求したタスクにロック権
を与え、排他モードのロック待ちタスクがなく、共有モ
ードのロック待ちタスクがあれば、そのすべてにロック
権を与える排他優先ロック手段とアンロック要求に対し
、アンロック後、ロックしているタスクがなくなり、か
つロック待ちタスクがある場合、現在の資源のロックモ
ードが排他モードの時は、前記共有優先ロック手段を呼
び出し、現在の資源のロックモードが共有モードの時は
、前記排他優先ロック手段を呼び出すアンロック手段と
、 システム内の排他制御対象資源を識別する排他制御テー
ブルを有する。
[作用]
本発明は、ロック要求時又はアンロック要求時に排他制
御テーブル内の状態をロック要求処理部及びアンロック
要求処理部がそれぞれ判断して、資源のロックモードを
できるだけ共有−1; ’−’1i他モードが交互に行
われるように制御して、永久封鎖を避けるとともに共有
資源の使用効率を上げる作用を有する。
御テーブル内の状態をロック要求処理部及びアンロック
要求処理部がそれぞれ判断して、資源のロックモードを
できるだけ共有−1; ’−’1i他モードが交互に行
われるように制御して、永久封鎖を避けるとともに共有
資源の使用効率を上げる作用を有する。
[実施例]
本発明の実施例について図面を参照して説明する。
第1図は本実施例の構成を示すブロック図である。本実
施例の共有資源排他制御機能9はロック要求処理部6と
アンロック要求処理部7と排他制御テーブル8とからな
る。ロック要求処理部6は共有モードのロック要求を処
理する共有要求処理手段1と排他モードのロック要求を
処理する排他要求処理手段2とからなる。また、アンロ
ック要求処理部7はアンロック要求したタスクのロック
解除およびロック待ちタスクへのロック権付与を行うア
ンロック手段3と共有モードのロック待ちタスクを優先
してロック権を与える共有優先ロック手段4と排他モー
ドのロック待ちタスクを優先してロック権を与える排他
優先ロック手段5とからなる。
施例の共有資源排他制御機能9はロック要求処理部6と
アンロック要求処理部7と排他制御テーブル8とからな
る。ロック要求処理部6は共有モードのロック要求を処
理する共有要求処理手段1と排他モードのロック要求を
処理する排他要求処理手段2とからなる。また、アンロ
ック要求処理部7はアンロック要求したタスクのロック
解除およびロック待ちタスクへのロック権付与を行うア
ンロック手段3と共有モードのロック待ちタスクを優先
してロック権を与える共有優先ロック手段4と排他モー
ドのロック待ちタスクを優先してロック権を与える排他
優先ロック手段5とからなる。
本実施例における排他制御動作の説明の前に、第2図を
参照して排他制御テーブル8の構成を説明する。排他制
御テーブル8は、システム内の排他制御対象資源を一意
に識別するための名前である資源名をキーとする。各資
源に対するエントリは、資源名部とロックモード部とロ
ック中タスクリストと排他ロック待ちタスクキューと共
有ロック待ちタスクキューとからなる。ロックモード部
は、資源がロックされているときのロックモードを記録
する。ロック中タスクリストは、その資源をロックして
いるタスクのタスク識別子を記録する。排他ロック待ち
タスクキューは、待ち状態にある排他モードロック要求
の待ち行列であり、排他モードでロック待ちしているタ
スクのタスク識別子を記録する。共有ロック待ちタスク
キューは、待ち状態にある共有モードロック要求の待ち
行列であり、共有モードでロック待ちしているタスクの
タスク識別子を記録する。
参照して排他制御テーブル8の構成を説明する。排他制
御テーブル8は、システム内の排他制御対象資源を一意
に識別するための名前である資源名をキーとする。各資
源に対するエントリは、資源名部とロックモード部とロ
ック中タスクリストと排他ロック待ちタスクキューと共
有ロック待ちタスクキューとからなる。ロックモード部
は、資源がロックされているときのロックモードを記録
する。ロック中タスクリストは、その資源をロックして
いるタスクのタスク識別子を記録する。排他ロック待ち
タスクキューは、待ち状態にある排他モードロック要求
の待ち行列であり、排他モードでロック待ちしているタ
スクのタスク識別子を記録する。共有ロック待ちタスク
キューは、待ち状態にある共有モードロック要求の待ち
行列であり、共有モードでロック待ちしているタスクの
タスク識別子を記録する。
以下に、各処理部の動作について説明する。まず、本発
明の特徴である共有要求処理手段1と共有優先ロック手
段4と排他優先ロック手段5とアンロック手段3につい
て説明する。
明の特徴である共有要求処理手段1と共有優先ロック手
段4と排他優先ロック手段5とアンロック手段3につい
て説明する。
共有要求処理手段1は、共有モードのロック要求の処理
を行う、その動作の詳細を以下に示す。
を行う、その動作の詳細を以下に示す。
(1)ロックモード部が空の場合、共有モードを口・ン
クモード部に記録し、該タスクのタスク識別子をロック
中タスクリストに追加し、該タスクにロック権を与える
。
クモード部に記録し、該タスクのタスク識別子をロック
中タスクリストに追加し、該タスクにロック権を与える
。
(2)ロックモード部が共有モードで、かつ排他ロック
待ちタスクキューが空の場合、該タスクのタスク識別子
をロック中タスクリストに追加し、該タスクにロック権
を与える。
待ちタスクキューが空の場合、該タスクのタスク識別子
をロック中タスクリストに追加し、該タスクにロック権
を与える。
(3)ロックモード部が共有モードで、かつ排他ロック
待ちタスクキューが空でない場合、該タスクのタスク識
別子を共有ロック待ちタスクキューの最後に追加し、該
タスクの処理を中断させてロック待ちとする。
待ちタスクキューが空でない場合、該タスクのタスク識
別子を共有ロック待ちタスクキューの最後に追加し、該
タスクの処理を中断させてロック待ちとする。
(4)ロックモード部が排他モードの場合、該タスクの
タスク識別子を共有ロック待ちタスクキューの最後に追
加し、該タスクの処理を中断させてロック待ちとする。
タスク識別子を共有ロック待ちタスクキューの最後に追
加し、該タスクの処理を中断させてロック待ちとする。
共有優先ロック手段4は、アンロック要求処理において
、共有ロック待ちタスクを優先してロック権を与える処
理を行う、その動作の詳細を以下に示す。
、共有ロック待ちタスクを優先してロック権を与える処
理を行う、その動作の詳細を以下に示す。
(1)共有ロック待ちタスクキューが空でない場合、ロ
ックモード部に共有モードを記録し、共有ロック待ちタ
スクキューに記録されているすべてのタスク識別子を、
ロック中タスクリストに複写する0次に、共有ロック待
ちタスクキューを空とし、ロック中タスクリストに複写
されたタスク識別子に対応するタスクの処理を再開させ
、ロック権を与える。
ックモード部に共有モードを記録し、共有ロック待ちタ
スクキューに記録されているすべてのタスク識別子を、
ロック中タスクリストに複写する0次に、共有ロック待
ちタスクキューを空とし、ロック中タスクリストに複写
されたタスク識別子に対応するタスクの処理を再開させ
、ロック権を与える。
(2)共有ロック待ちタスクキューが空で、かつ排他ロ
ック待ちタスクキューが空でない場合、ロックモード部
に排他モードを記録し、排他ロック待ちタスクキューの
先頭に記録されているタスク識別子を、ロック中タスク
リストに複写する。
ック待ちタスクキューが空でない場合、ロックモード部
に排他モードを記録し、排他ロック待ちタスクキューの
先頭に記録されているタスク識別子を、ロック中タスク
リストに複写する。
次に、該タスクのタスク識別子を排他ロック待ちタスク
キューから削除し、該タスクの処理を再開させ、ロック
権を与える。
キューから削除し、該タスクの処理を再開させ、ロック
権を与える。
排他優先ロック手段5は、アンロック要求処理において
、排他ロック待ちタスクを優先してロック権を与える処
理を行う。その動作の詳細を以下に示す。
、排他ロック待ちタスクを優先してロック権を与える処
理を行う。その動作の詳細を以下に示す。
(1)排他ロック待ちタスクキューが空でない場合、ロ
ックモード部に排他モードを記憶し、排他ロック待ちタ
スクキューの先頭に記録されているタスク識別子を、ロ
ック中タスクリストに複写する。次に、該タスクのタス
ク識別子を排他ロック待ちタスクキューから削除し、該
タスクの処理を再開させ、ロック権を与える。
ックモード部に排他モードを記憶し、排他ロック待ちタ
スクキューの先頭に記録されているタスク識別子を、ロ
ック中タスクリストに複写する。次に、該タスクのタス
ク識別子を排他ロック待ちタスクキューから削除し、該
タスクの処理を再開させ、ロック権を与える。
(2)排他ロック待ちタスクキューが空で、かつ共有ロ
ック待ちタスクキューが空でない場合、ロックモード部
に共有モードを記録し、共有ロック待ちタスクキューに
記録されているすべてのタスク識別子を、ロック中タス
クリストに複写する0次に、共有ロック待ちタスクキュ
ーを空とし、ロック中タスクリストに複写されたタスク
識別子に対応するタスクの処理を再開させ、ロック権を
与える。
ック待ちタスクキューが空でない場合、ロックモード部
に共有モードを記録し、共有ロック待ちタスクキューに
記録されているすべてのタスク識別子を、ロック中タス
クリストに複写する0次に、共有ロック待ちタスクキュ
ーを空とし、ロック中タスクリストに複写されたタスク
識別子に対応するタスクの処理を再開させ、ロック権を
与える。
アンロック手段3は、アンロック要求に対し、該要求を
出したタスクのロック解除と、ロック待ちタスクにロッ
ク権を与える処理を行う、その動作の詳細を以下に示す
。
出したタスクのロック解除と、ロック待ちタスクにロッ
ク権を与える処理を行う、その動作の詳細を以下に示す
。
(1)アンロック要求したタスクのタスク識別子をロッ
ク中タスクリストから削除する。
ク中タスクリストから削除する。
(2)ロック中タスクリストが空となり、かつ共有ロッ
ク待ちタスクキューおよび排他ロック待ちタスクキュー
のいずれも空の場合、ロックモード部を空とする。
ク待ちタスクキューおよび排他ロック待ちタスクキュー
のいずれも空の場合、ロックモード部を空とする。
(3)ロック中タスクリストが空となり、かつ共有ロッ
ク待ちタスクキューまたは排他ロック待ちタスクキュー
のいずれかが空でない場合、ロックモード部が共有モー
ドならば前記排他優先ロック手段5を呼び出し、ロック
モード部が排他モードならば前記共有優先ロック手段4
を呼び出す。
ク待ちタスクキューまたは排他ロック待ちタスクキュー
のいずれかが空でない場合、ロックモード部が共有モー
ドならば前記排他優先ロック手段5を呼び出し、ロック
モード部が排他モードならば前記共有優先ロック手段4
を呼び出す。
前記共有要求処理手段lの(3)、前記排他優先ロック
手段5および前記アンロック手段3の(3)により、資
源が共有モードでロックされており、かつ排他モードで
ロック待ちしているタスクがいる場合、新たな共有モー
ドのロック要求タスクはロック待ちとなり、また、資源
のロックモードが共有モードだった場合、次のロックモ
トは排他モードが優先されるため、永久封鎖は発生しな
い。
手段5および前記アンロック手段3の(3)により、資
源が共有モードでロックされており、かつ排他モードで
ロック待ちしているタスクがいる場合、新たな共有モー
ドのロック要求タスクはロック待ちとなり、また、資源
のロックモードが共有モードだった場合、次のロックモ
トは排他モードが優先されるため、永久封鎖は発生しな
い。
また、前記共有優先ロック手段4および前記アンロック
手段3の(3)により、共有モードのロック待ちタスク
が、該タスクより早く排他モードでロック待ちしている
タスクを追い越すことができ、資源の使用効率が向上す
る。
手段3の(3)により、共有モードのロック待ちタスク
が、該タスクより早く排他モードでロック待ちしている
タスクを追い越すことができ、資源の使用効率が向上す
る。
排他要求処理手段2は、排他モードのロック要求の処理
を行う、その動作の詳細を以下に示す。
を行う、その動作の詳細を以下に示す。
(110ツクモ一ド部が空の場合、該要求のロックモー
ドをロックモード部に記録し、該要求を出したタスクの
タスク識別子をロック中タスクリストに記録し、ロック
権を与える。
ドをロックモード部に記録し、該要求を出したタスクの
タスク識別子をロック中タスクリストに記録し、ロック
権を与える。
(2)ロックモード部が空でない場合、該要求を出した
タスクのタスク識別子を排他ロック待ちタスクキューの
最後に追加し、該要求を出したタスクの処理を中断させ
、ロック待ちとする。
タスクのタスク識別子を排他ロック待ちタスクキューの
最後に追加し、該要求を出したタスクの処理を中断させ
、ロック待ちとする。
次に、本実施例の具体的動作について、第3図を参暉し
て詳細に説明する。第3図(al〜tf+は、いずれも
ある時点での排他制御テーブル8の状態を示している。
て詳細に説明する。第3図(al〜tf+は、いずれも
ある時点での排他制御テーブル8の状態を示している。
第3図(a)では資源Rはロックされておらず、また、
ロック待ちタスクもない状態を示している。このときタ
スクT18よびT2がこの順に共有モードでロック要求
すると、共有要求処理手段1が呼び出され、タスクT1
では資源はロックされていないので、ロックモード部に
共有モードを、ロック中タスクリストにタスク識別子T
lをそれぞれ記憶し、すぐにロック権が与えられる。
ロック待ちタスクもない状態を示している。このときタ
スクT18よびT2がこの順に共有モードでロック要求
すると、共有要求処理手段1が呼び出され、タスクT1
では資源はロックされていないので、ロックモード部に
共有モードを、ロック中タスクリストにタスク識別子T
lをそれぞれ記憶し、すぐにロック権が与えられる。
タスクT2では、資源はT1によりロックされているが
、共有モードであり、かつ排他ロック待ちタスクキュー
は空なので、ロック中タスクリストにタスク識別子T2
が追加されロック権が与えられる。この結果、排他制御
テーブル8は第3図(b)の状態となる。
、共有モードであり、かつ排他ロック待ちタスクキュー
は空なので、ロック中タスクリストにタスク識別子T2
が追加されロック権が与えられる。この結果、排他制御
テーブル8は第3図(b)の状態となる。
次にタスクT3が排他モードで、タスクT4が共有モー
ドでこの順にロック要求すると、タスクT3では排他要
求処理手段2が呼び畠され、すでに資源Rがロックされ
ているため、該タスクのタスク識別子T3が排他ロック
待ちタスクキューの最後に追加され、該タスクの処理は
中断されてロック待ちとなる。タスクT4では、共有要
求処理手段lが呼び出され、資源Rは共有モードでロッ
クされているが、排他ロック待ちタスクキューが空でな
いため、タスク識別子T4が共有ロック待ちタスクキュ
ーの最後に追加され、該タスクの処理は中断されてロッ
ク待ちとなる。この結果、排他制御テーブル8は第3図
(c)の状態となる。
ドでこの順にロック要求すると、タスクT3では排他要
求処理手段2が呼び畠され、すでに資源Rがロックされ
ているため、該タスクのタスク識別子T3が排他ロック
待ちタスクキューの最後に追加され、該タスクの処理は
中断されてロック待ちとなる。タスクT4では、共有要
求処理手段lが呼び出され、資源Rは共有モードでロッ
クされているが、排他ロック待ちタスクキューが空でな
いため、タスク識別子T4が共有ロック待ちタスクキュ
ーの最後に追加され、該タスクの処理は中断されてロッ
ク待ちとなる。この結果、排他制御テーブル8は第3図
(c)の状態となる。
次にタスクT1およびT2がこの順にアンロック要求す
ると、各要求ごとにアンロック手段が呼び出される。タ
スクT1では、ロック中タスクリストからタスク識別子
T1を削除してタスクT1のロックを解除した後、ロッ
ク中タスクリストにはまだT2が残っているので、処理
を終了する。
ると、各要求ごとにアンロック手段が呼び出される。タ
スクT1では、ロック中タスクリストからタスク識別子
T1を削除してタスクT1のロックを解除した後、ロッ
ク中タスクリストにはまだT2が残っているので、処理
を終了する。
タスクT2では、ロック中タスクリストからタスク識別
子T2を削除してタスクT2のロックを解除すると、ロ
ック中タスクリストが空となるので、排他ロック待ちタ
スクキューおよび共存ロック待ちタスクキューを調べる
。いずれも空ではなく、かつロックモード部が共有モー
ドなので、排他優先ロック手段5が呼び出される。排他
優先ロック手段5では、排他ロック待ちタスクキューが
空ではないので、排他モードをロックモード部に、排他
ロック待ちタスクキューの先頭のタスク識別子T3をロ
ック中タスクリストに追加し、排他ロック待ちタスクキ
ューからタスク識別子T3を削除する。次に、タスクT
3の処理を再開させてタスクT3にロック権を与える。
子T2を削除してタスクT2のロックを解除すると、ロ
ック中タスクリストが空となるので、排他ロック待ちタ
スクキューおよび共存ロック待ちタスクキューを調べる
。いずれも空ではなく、かつロックモード部が共有モー
ドなので、排他優先ロック手段5が呼び出される。排他
優先ロック手段5では、排他ロック待ちタスクキューが
空ではないので、排他モードをロックモード部に、排他
ロック待ちタスクキューの先頭のタスク識別子T3をロ
ック中タスクリストに追加し、排他ロック待ちタスクキ
ューからタスク識別子T3を削除する。次に、タスクT
3の処理を再開させてタスクT3にロック権を与える。
この結果、排他制御テーブル8は第3図(d)の状態と
なる。
なる。
次にタスクT5が排他モードで、タスクT6が共有モー
ドでこの順にロック要求すると、タスクT5では、排他
要求処理手段2が呼び出され、すでに資源Rは排他モー
ドでロックされているので、タスク識別子T5が排他ロ
ック待ちタスクキューの最後に追加され、タスクT5の
処理が中断されてロック待ちとなる。タスクT6では、
共有要求処理手段1が呼び出され、資源Rは排他モード
でロックされでいるので、タスク識別子T6が共有ロッ
ク待ちタスクキューの最後に追加され、タスクT6の処
理が中断されてロック待ちとなる。この結果、排便制御
テーブル8は第3図fe)の状態となる。
ドでこの順にロック要求すると、タスクT5では、排他
要求処理手段2が呼び出され、すでに資源Rは排他モー
ドでロックされているので、タスク識別子T5が排他ロ
ック待ちタスクキューの最後に追加され、タスクT5の
処理が中断されてロック待ちとなる。タスクT6では、
共有要求処理手段1が呼び出され、資源Rは排他モード
でロックされでいるので、タスク識別子T6が共有ロッ
ク待ちタスクキューの最後に追加され、タスクT6の処
理が中断されてロック待ちとなる。この結果、排便制御
テーブル8は第3図fe)の状態となる。
次に、タスクT3がアンロック要求すると、アンロック
手段3が呼び出され、ロック中タスクリストからタスク
識別子T3が削除され、タスクT3のロックが解除され
る。その結果ロック中タスクリストが空となるので、排
他ロック待ちタスクキ1−および共有ロック待ちタスク
キューを調べる。いずれも空ではな(、かつロックモー
ド部が排他モードなので、共有優先ロック手段4か呼び
出される。共有優先ロック手段4では、共有ロック待ち
タスクキューが空ではないので、共有モードをロックモ
ード部に、共有ロック待ちタスクキューのすべてのタス
ク識別子T48よびT6をロック中タスクリストに追加
し、共有ロック待ちタスクキューを空とする0次に、タ
スクT48よびT6の処理を再開させてこれらのタスク
にロック権を与える。この結果、排他制御テーブル8は
第3図げ)の状態となる。
手段3が呼び出され、ロック中タスクリストからタスク
識別子T3が削除され、タスクT3のロックが解除され
る。その結果ロック中タスクリストが空となるので、排
他ロック待ちタスクキ1−および共有ロック待ちタスク
キューを調べる。いずれも空ではな(、かつロックモー
ド部が排他モードなので、共有優先ロック手段4か呼び
出される。共有優先ロック手段4では、共有ロック待ち
タスクキューが空ではないので、共有モードをロックモ
ード部に、共有ロック待ちタスクキューのすべてのタス
ク識別子T48よびT6をロック中タスクリストに追加
し、共有ロック待ちタスクキューを空とする0次に、タ
スクT48よびT6の処理を再開させてこれらのタスク
にロック権を与える。この結果、排他制御テーブル8は
第3図げ)の状態となる。
[発明の効果]
以上説明したように本発明は、資源Rのロックにおいて
、共有モードロックと排他モードロツタができるだけ交
互に行われるよう制御し、資源Rを共有モードロックす
る場合には、排他ロック待ちタスクの追い越しを許して
共有ロック待ちタスクすべてにロック権を与えることに
より、永久封鎖の問題を避けながら共有資源の使用効率
を向上させることができる。
、共有モードロックと排他モードロツタができるだけ交
互に行われるよう制御し、資源Rを共有モードロックす
る場合には、排他ロック待ちタスクの追い越しを許して
共有ロック待ちタスクすべてにロック権を与えることに
より、永久封鎖の問題を避けながら共有資源の使用効率
を向上させることができる。
第1図は本発明の実施例のブロック図、第2図は排他制
御テーブルの構成図、第3図は実施例の具体的動作の説
明図である。 図において、1・・−共有要求処理手段、2・・・排他
要求処理手段、3・・・アンロック手段、4・・・共有
優先ロック手段、5・−・排他優先ロック手段、6・−
・ロック要求処理部、7−・−アンロック要求処理部、
8−・・排他制御テーブル、9−・・共有資源排他制御
機能。
御テーブルの構成図、第3図は実施例の具体的動作の説
明図である。 図において、1・・−共有要求処理手段、2・・・排他
要求処理手段、3・・・アンロック手段、4・・・共有
優先ロック手段、5・−・排他優先ロック手段、6・−
・ロック要求処理部、7−・−アンロック要求処理部、
8−・・排他制御テーブル、9−・・共有資源排他制御
機能。
Claims (1)
- 【特許請求の範囲】 計算機システムの共有資源排他制御方式において、 共有モードのロック要求に対し、 資源がロックされていない場合は、該要求を出したタス
クにロック権を与え、 資源が共有モードでロックされており、かつ排他モード
のロック持ちタスクがない場合は、該要求を出したタス
クにロック権を与え、 資源が共有モードでロックされており、かつ排他モード
のロック持ちタスクがある場合は、該要求を出したタス
クをロック待ちとし、 資源が排他モードでロックされている場合は、該要求を
出したタスクをロック待ちとする共有要求処理手段と、 共有モードのロック待ちタスクがあれば、そのすべてに
ロック権を与え、共有モードのロック待ちタスクがなく
、排他モードのロック待ちタスクがあれば、それらの内
最も先にロック要求したタスクにロック権を与える共有
優先ロック手段と、 排他モードのロック待ちタスクがあれば、それらの内最
も先にロック要求したタスクにロック権を与え、排他モ
ードのロック待ちタスクがなく、共有モードのロック待
ちタスクがあれば、そのすべてにロック権を与える排他
優先ロック手段とアンロック要求に対し、アンロック後
、ロックしているタスクがなくなり、かつロック待ちタ
スクがある場合、現在の資源のロックモードが排他モー
ドの時は、前記共有優先ロック手段を呼び出し、現在の
資源のロックモードが共有モードの時は、前記排他優先
ロック手段を呼び出すアンロック手段と、 システム内の排他制御対象資源を識別する排他制御テー
ブルを有することを特徴とする共有資源排他制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23590290A JPH04116731A (ja) | 1990-09-07 | 1990-09-07 | 共有資源排他制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23590290A JPH04116731A (ja) | 1990-09-07 | 1990-09-07 | 共有資源排他制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04116731A true JPH04116731A (ja) | 1992-04-17 |
Family
ID=16992929
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23590290A Pending JPH04116731A (ja) | 1990-09-07 | 1990-09-07 | 共有資源排他制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04116731A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0981438A (ja) * | 1995-09-20 | 1997-03-28 | Nec Corp | クライアントサーバシステムにおける自動排他制御システム |
-
1990
- 1990-09-07 JP JP23590290A patent/JPH04116731A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0981438A (ja) * | 1995-09-20 | 1997-03-28 | Nec Corp | クライアントサーバシステムにおける自動排他制御システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0972240B1 (en) | An agent-implemented locking mechanism | |
| US5454108A (en) | Distributed lock manager using a passive, state-full control-server | |
| US5537645A (en) | File lock management in a distributed data processing system | |
| JP2533266B2 (ja) | 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法 | |
| JP5320073B2 (ja) | ロックによって管理されるリソースに対する予測的変更 | |
| JPH02195453A (ja) | ファイルアクセス制御方式 | |
| JPH04116731A (ja) | 共有資源排他制御方式 | |
| JP2518134B2 (ja) | 共有資源排他制御方式 | |
| JPH0383142A (ja) | 共有資源排他制御方式 | |
| JP2898012B2 (ja) | 計算機資源の排他制御方式 | |
| JPH0478932A (ja) | 共有資源排他制御方式 | |
| JPH0559463B2 (ja) | ||
| JP3068556B2 (ja) | 共有資源排他制御方式およびそのプログラム記録媒体 | |
| JPH03141458A (ja) | 共有資源排他制御方式 | |
| JPH03257568A (ja) | 共有資源排他制御方式 | |
| JP3036468B2 (ja) | 排他制御処理装置及び排他制御処理方法並びに排他制御処理プログラムを記憶した記憶媒体 | |
| JPH02194442A (ja) | 共有資源制御装置 | |
| JPH0365732A (ja) | 資源管理方法 | |
| JPH05120040A (ja) | コンピユータシステム | |
| JPH02118843A (ja) | 共有資源排他制御方式 | |
| JPS6320634A (ja) | 計算機資源排他制御方式 | |
| JPH0423047A (ja) | 共有資源排他制御方式 | |
| JPH04223533A (ja) | 共有資源排他制御システム | |
| JPH09305471A (ja) | ファイル同時アクセス制御システム | |
| JPH04320549A (ja) | ファイルアクセス管理装置 |