JPH0478932A - 共有資源排他制御方式 - Google Patents
共有資源排他制御方式Info
- Publication number
- JPH0478932A JPH0478932A JP19238290A JP19238290A JPH0478932A JP H0478932 A JPH0478932 A JP H0478932A JP 19238290 A JP19238290 A JP 19238290A JP 19238290 A JP19238290 A JP 19238290A JP H0478932 A JPH0478932 A JP H0478932A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- task
- request
- mode
- tasks
- 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
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は計算機システムにおける共存資源排他制御方式
に関する。
に関する。
計算機システムにおいて複数のタスクから使用される資
源については、それへのアクセスを逐次化するために排
他制御が必要である。このような排他制御のために、計
算機システムには、ロック/アフロツタおよびエンキュ
ー/デキューと呼ばれる基本機能が備えられており、ロ
ック要求には通常排他モードと共有モードとの2種類が
ある。
源については、それへのアクセスを逐次化するために排
他制御が必要である。このような排他制御のために、計
算機システムには、ロック/アフロツタおよびエンキュ
ー/デキューと呼ばれる基本機能が備えられており、ロ
ック要求には通常排他モードと共有モードとの2種類が
ある。
従来の排他制御の基本的動作は次のようになっている。
即ち、あるタスクがロック要求を出した場合、ロック要
求対象資源が他のタスクによりロックされていないなら
ば、すぐにロック権が与えられる。しかし、他のタスク
によりすでにロックされている場合は、その資源がロッ
クされたモードまたは要求を出したタスクのロック要求
のモードが排他モードのときはロック待ちとなる。その
資源がロックされたモードと要求を出したタスクのロッ
ク要求のモードとがともに共有モードのときは、 (1)ロック待ちタスクがない場合は、要求を出したタ
スクにロック権を与え、ロック待ちタスクがある場合は
、要求を出したタスクをロック待ちとする。
求対象資源が他のタスクによりロックされていないなら
ば、すぐにロック権が与えられる。しかし、他のタスク
によりすでにロックされている場合は、その資源がロッ
クされたモードまたは要求を出したタスクのロック要求
のモードが排他モードのときはロック待ちとなる。その
資源がロックされたモードと要求を出したタスクのロッ
ク要求のモードとがともに共有モードのときは、 (1)ロック待ちタスクがない場合は、要求を出したタ
スクにロック権を与え、ロック待ちタスクがある場合は
、要求を出したタスクをロック待ちとする。
(2)要求を出したタスクに直ちにロック権を与える。
のいずれかの方法がとられる。
また、資源をロックしていたタスクがアンロツタ要求を
出した場合はこのタスクのロック権の行使が終了する。
出した場合はこのタスクのロック権の行使が終了する。
このとき、他にロックしているタスクがなく、かつロッ
ク待ちタスクがある場合には、それらの内、最も早くロ
ック要求したタスクの要求モードが排他モードならば、
このタスクのみにロック権を与え、共有モードならば上
述の(1)(2)に対応して、 (1)現在排他モードでロック待ちしているどのタスク
よりも早く共有モードでロック待ちしているタスクすべ
てにロック権を与える。
ク待ちタスクがある場合には、それらの内、最も早くロ
ック要求したタスクの要求モードが排他モードならば、
このタスクのみにロック権を与え、共有モードならば上
述の(1)(2)に対応して、 (1)現在排他モードでロック待ちしているどのタスク
よりも早く共有モードでロック待ちしているタスクすべ
てにロック権を与える。
(2)現在共有モードでロック待ちしているタスクすべ
てにロック権を与える。
てにロック権を与える。
のいずれかの方法がとられる。
上述した(1)の方法を採用した従来の共有資源排他制
御方式では、いかなる場合も共有モードのロック要求を
出したタスクが排他モードのロック要求を出したタスク
を追越してロックできないため、現在のロックが解け、
次のロック待ちタスクにロック権を与える際、ロック待
ちタスクのロックモードが共有モードであるときは、排
他モードのロック待ちタスクがあると、それ以後に共有
モードでロック待ちになったタスクにはロック権が与え
られず、資源を効率良く使用できない。
御方式では、いかなる場合も共有モードのロック要求を
出したタスクが排他モードのロック要求を出したタスク
を追越してロックできないため、現在のロックが解け、
次のロック待ちタスクにロック権を与える際、ロック待
ちタスクのロックモードが共有モードであるときは、排
他モードのロック待ちタスクがあると、それ以後に共有
モードでロック待ちになったタスクにはロック権が与え
られず、資源を効率良く使用できない。
また、上述した(2)の方法を採用した従来の共有資源
排他制御方式では、共有モードのロック要求が排他モー
ドのロック要求よりも頻繁に行われると、いつまでも排
他モードでロック要求したタスクにロック権が与えられ
ない状況、即ち永久封鎖が発生するという欠点がある。
排他制御方式では、共有モードのロック要求が排他モー
ドのロック要求よりも頻繁に行われると、いつまでも排
他モードでロック要求したタスクにロック権が与えられ
ない状況、即ち永久封鎖が発生するという欠点がある。
本発明の共有資源排他制御方式は、計算機システムの共
有資源排他制御方式において、共有モードのロック要求
に対し、 資源がロックされていない場合は、前記要求を出したタ
スクにロック権を与え、 資源が共有モードでロックされている場合は、排他モー
ドのロック待ちタスクがなければ前記要求を出したタス
クにロック権を与え、排他モードのロック待ちタスクが
あり、このロック待ちのいずれにおいても、その排他モ
ードのロック要求の要求順序を追越した共有モードロッ
ク要求タスクの数(以下「追越しタスク数」という)が
最大追越しタスク数N未満であれば前記要求を出したタ
スクにロック権を与え、 最大追越しタスク数Nの排他モードのロック待ちタスク
があり、さらに最大追越しタスク数N未満の排他モード
ロック待ちタスクがある場合は、最大追越しタスク数N
未満のタスクの中で最も多く共有モードロック要求タス
クに追越されたタスクの前にロック権が与えられるよう
ロック権の付与順序を変更して前記要求を出したタスク
をロック待ちとし、 最大追越しタスク数Nの排他モードロック待ちタスクが
ある場合は、現在のロック待ちタスクの中で最後にロッ
ク権が与えられるよう前記要求を出したタスクをロック
待ちとする共有要求処理手段と、 アンロック要求に対し、次にロック権を与えるべきロッ
ク待ちタスクが共有モードで要求している場合は、どの
排他モードのロック待ちタスクよりも先にロック権を与
えるべき共有モードのロック要求を出したタスクすべて
にロック権を与えるアンロック要求処理手段とを有する
ことにより構成される。
有資源排他制御方式において、共有モードのロック要求
に対し、 資源がロックされていない場合は、前記要求を出したタ
スクにロック権を与え、 資源が共有モードでロックされている場合は、排他モー
ドのロック待ちタスクがなければ前記要求を出したタス
クにロック権を与え、排他モードのロック待ちタスクが
あり、このロック待ちのいずれにおいても、その排他モ
ードのロック要求の要求順序を追越した共有モードロッ
ク要求タスクの数(以下「追越しタスク数」という)が
最大追越しタスク数N未満であれば前記要求を出したタ
スクにロック権を与え、 最大追越しタスク数Nの排他モードのロック待ちタスク
があり、さらに最大追越しタスク数N未満の排他モード
ロック待ちタスクがある場合は、最大追越しタスク数N
未満のタスクの中で最も多く共有モードロック要求タス
クに追越されたタスクの前にロック権が与えられるよう
ロック権の付与順序を変更して前記要求を出したタスク
をロック待ちとし、 最大追越しタスク数Nの排他モードロック待ちタスクが
ある場合は、現在のロック待ちタスクの中で最後にロッ
ク権が与えられるよう前記要求を出したタスクをロック
待ちとする共有要求処理手段と、 アンロック要求に対し、次にロック権を与えるべきロッ
ク待ちタスクが共有モードで要求している場合は、どの
排他モードのロック待ちタスクよりも先にロック権を与
えるべき共有モードのロック要求を出したタスクすべて
にロック権を与えるアンロック要求処理手段とを有する
ことにより構成される。
次に、本発明について図面を参照して説明する。
第1図は本発明の一実施例の構成図である。本実施例に
おいて、共有資源排他制御機能9はロック要求処理部6
とアンロック要求処理部7と排他制御テーブル8とから
なる。ロック要求処理部6は共有モードのロック要求を
処理する共有要求処理手段1と、排他モードのロック要
求を処理する排他要求処理手段2とからなる。また、ア
ンロック要求処理部7はアンロック要求したタスクのロ
ック解除を行うロック解除手段3と、次のロック待ちタ
スクの要求モードが共有モードの場合のロック処理を行
う共有待ちロック手段4と、次のロック待ちタスクの要
求モードが排他モードの場合のロック処理を行う排他待
ちロック手段5とからなる。
おいて、共有資源排他制御機能9はロック要求処理部6
とアンロック要求処理部7と排他制御テーブル8とから
なる。ロック要求処理部6は共有モードのロック要求を
処理する共有要求処理手段1と、排他モードのロック要
求を処理する排他要求処理手段2とからなる。また、ア
ンロック要求処理部7はアンロック要求したタスクのロ
ック解除を行うロック解除手段3と、次のロック待ちタ
スクの要求モードが共有モードの場合のロック処理を行
う共有待ちロック手段4と、次のロック待ちタスクの要
求モードが排他モードの場合のロック処理を行う排他待
ちロック手段5とからなる。
第2図は第1図の排他制御テーブル8の構成図である。
排他制御テーブル8は、システム内の排他制御対象資源
を一意に識別するための名前である資源名をキーとする
。各資源に対するエントリは、資源名部81とロックモ
ード部82とロック中タスクリスト83とロック待ちタ
スクキュー84とからなる。ロックモード部82は資源
がロックされているときのロックモードを記録する。ロ
ック中タスクリスト83はその資源をロックしているタ
スクのタスク識別子を記録する。ロック待ちタスクキュ
ー84は待ち状態にあるロック要求の待ち行列であり、
共有モードのロック要求を出しているタスクではタスク
識別子とロックモードとの組を、排他モードのロック要
求を出しているタスクではタスク識別子とロックモード
と追越しタスク数との組を記録する。
を一意に識別するための名前である資源名をキーとする
。各資源に対するエントリは、資源名部81とロックモ
ード部82とロック中タスクリスト83とロック待ちタ
スクキュー84とからなる。ロックモード部82は資源
がロックされているときのロックモードを記録する。ロ
ック中タスクリスト83はその資源をロックしているタ
スクのタスク識別子を記録する。ロック待ちタスクキュ
ー84は待ち状態にあるロック要求の待ち行列であり、
共有モードのロック要求を出しているタスクではタスク
識別子とロックモードとの組を、排他モードのロック要
求を出しているタスクではタスク識別子とロックモード
と追越しタスク数との組を記録する。
次に第1図の各処理部の動作について説明する。
共有要求処理手段1は、共有モードのロック要求の処理
を行う。即ち、 (1)ロックモード部82が空の場合、共有モードをロ
ックモード部82に記録し、要求を出したタスクのタス
ク識別子をロック中タスクリスト83に追加し、このタ
スクにロック権を与える。
を行う。即ち、 (1)ロックモード部82が空の場合、共有モードをロ
ックモード部82に記録し、要求を出したタスクのタス
ク識別子をロック中タスクリスト83に追加し、このタ
スクにロック権を与える。
(2)ロックモード部82が空でない場合、ロック待ち
タスクキュー84内のロック要求を先頭がら順に走査し
、追越しタスク数が最大追越しタスク数N未満の場合は
走査を終了する。また、全てのロック要求を検査し終わ
った場合は走査を終了する。この走査の結果、最大追越
しタスク数がN未満の排他モードロック要求が見っから
ながった場合は、ロック待ちタスクキュー84の最後に
この共有モードロック要求を出したタスクのタスク識別
子とロックモードとの組を追加し、このタスクの処理を
中断させてロック待ちとする。ロック待ちタスクキュー
84の先頭の要求で走査が終了し、資源が共有モードで
ロックされている場合は、この要求を出したタスクのタ
スク識別子をロック中タスクリスト83に追加してこの
タスクにロック権を与え、ロック待ちタスクキュー84
のすべての排他モードロック要求の追越しタスク数に1
を加える。その他の場合は、走査を終了した排他モード
ロック要求の直前にこの共有モードロック要求を出した
タスクのタスク識別子とロックモードとの組を挿入し、
このタスクの処理を中断させて、ロック待ちとし、走査
を終了した排他モードロック要求を含め、後続するすべ
ての排他モードロック要求の追越しタスク数に1を加え
る。
タスクキュー84内のロック要求を先頭がら順に走査し
、追越しタスク数が最大追越しタスク数N未満の場合は
走査を終了する。また、全てのロック要求を検査し終わ
った場合は走査を終了する。この走査の結果、最大追越
しタスク数がN未満の排他モードロック要求が見っから
ながった場合は、ロック待ちタスクキュー84の最後に
この共有モードロック要求を出したタスクのタスク識別
子とロックモードとの組を追加し、このタスクの処理を
中断させてロック待ちとする。ロック待ちタスクキュー
84の先頭の要求で走査が終了し、資源が共有モードで
ロックされている場合は、この要求を出したタスクのタ
スク識別子をロック中タスクリスト83に追加してこの
タスクにロック権を与え、ロック待ちタスクキュー84
のすべての排他モードロック要求の追越しタスク数に1
を加える。その他の場合は、走査を終了した排他モード
ロック要求の直前にこの共有モードロック要求を出した
タスクのタスク識別子とロックモードとの組を挿入し、
このタスクの処理を中断させて、ロック待ちとし、走査
を終了した排他モードロック要求を含め、後続するすべ
ての排他モードロック要求の追越しタスク数に1を加え
る。
上記(2)により、資源が共有モードでロックされてお
り、かつ排他モードでロック待ちしているタスクがある
場合、新たな共有モードのロック要求タスクが追越せる
排他モードのロック待ちタスクは、追越した共有モード
ロック要求タスク数が最大追越しタスク数N未満のタス
クに限られることになり、永久封鎖は発生しない。
り、かつ排他モードでロック待ちしているタスクがある
場合、新たな共有モードのロック要求タスクが追越せる
排他モードのロック待ちタスクは、追越した共有モード
ロック要求タスク数が最大追越しタスク数N未満のタス
クに限られることになり、永久封鎖は発生しない。
共有待ちロック手段4は、アンロツタ要求処理において
、次のロック待ちタスクが共有モードで要求している場
合のロック処理を行う。即ち、(1)ロックモード部8
2に共有モードを記録し、ロック待ちタスクキュー84
の先頭から、連続するすべての共有モードロック要求の
タスク識別子をロック中タスクリスト83に記録する。
、次のロック待ちタスクが共有モードで要求している場
合のロック処理を行う。即ち、(1)ロックモード部8
2に共有モードを記録し、ロック待ちタスクキュー84
の先頭から、連続するすべての共有モードロック要求の
タスク識別子をロック中タスクリスト83に記録する。
次に、この記録が行われたロック要求をロック待ちタス
クキュー84から削除し、これらのタスクの処理を再開
させ、ロック権を与える。
クキュー84から削除し、これらのタスクの処理を再開
させ、ロック権を与える。
排他要求処理手段2は、排他モードのロック要求の処理
を行う。即ち、 (1)ロックモード部82が空の場合、要求のロックモ
ードをロックモード部82に記録し、この要求を出した
タスクのタスク識別子をロック中タスクリスト83に記
録し、ロック権を与える。
を行う。即ち、 (1)ロックモード部82が空の場合、要求のロックモ
ードをロックモード部82に記録し、この要求を出した
タスクのタスク識別子をロック中タスクリスト83に記
録し、ロック権を与える。
(2)ロックモード部82が空でない場合、要求を出し
たタスクのタスク識別子とこの要求のロックモードと追
越しタスク数Oとの組をロック待ちタスクキュー84の
最後に追加し、この要求を出したタスクの処理を中断さ
せ、ロック待ちとする。
たタスクのタスク識別子とこの要求のロックモードと追
越しタスク数Oとの組をロック待ちタスクキュー84の
最後に追加し、この要求を出したタスクの処理を中断さ
せ、ロック待ちとする。
ロック解除手段3は、アンロツタ要求された場合のロッ
ク解除処理を行い、ロック待ちタスクがある場合には、
次のロック待ちタスクのロック処理を行うため共有待ち
ロック手段4、または排他待ちロック手段5を呼出す。
ク解除処理を行い、ロック待ちタスクがある場合には、
次のロック待ちタスクのロック処理を行うため共有待ち
ロック手段4、または排他待ちロック手段5を呼出す。
即ち、
(1)アンロツタ要求したタスクのタスク識別子をロッ
ク中タスクリスト83から削除し、ロック中タスクリス
ト83が空になったならば、ロックモード部82の内容
を消去する。
ク中タスクリスト83から削除し、ロック中タスクリス
ト83が空になったならば、ロックモード部82の内容
を消去する。
(2)続いて、ロック中タスクリスト82が空になった
場合、ロック待ちタスクキュー84の先頭のロック要求
が共有モードなら共有待ちロック手段4を、排他モード
なら排他待ちロック手段5を呼出す。
場合、ロック待ちタスクキュー84の先頭のロック要求
が共有モードなら共有待ちロック手段4を、排他モード
なら排他待ちロック手段5を呼出す。
排他待ちロック手段5はロック解除手段3から呼出され
、排他モードのロック待ちタスクのロック処理を行う。
、排他モードのロック待ちタスクのロック処理を行う。
即ち、
(1)ロック待ちタスクキュー84の先頭にある要求の
ロックモードをロックモード部82に、タスク識別子を
ロック中タスクリスト83にそれぞれ記録し、このロッ
ク要求をロック待ちタスクキュー84から削除し、ロッ
ク要求を出したタスクの処理を再開させ、ロック権を与
える。
ロックモードをロックモード部82に、タスク識別子を
ロック中タスクリスト83にそれぞれ記録し、このロッ
ク要求をロック待ちタスクキュー84から削除し、ロッ
ク要求を出したタスクの処理を再開させ、ロック権を与
える。
次に、本実施例の具体的動作について、第3図の排他制
御テーブル8の内容例を参照して説明する。本実施例で
は最大追越しタスク数Nは固定値2であると仮定する。
御テーブル8の内容例を参照して説明する。本実施例で
は最大追越しタスク数Nは固定値2であると仮定する。
第3図(a)〜(f)は、いずれもある時点での排他制
御テーブル8の状態を示している。
御テーブル8の状態を示している。
第3図(a)は資源RをタスクT1が共をモードでロッ
クし、タスクT2が排他モード、追越しタスク数Oでロ
ック待ちしている。このときタスクT3が共有モードで
ロック要求すると、共有要求処理手段1が呼ばれる。資
源Rは共有モードでロックされているので、ロック待ち
タスクキュー84を先頭から走査し、タスクT2の排他
モードのロック要求を見つける。この要求の追越しタス
ク数は0であり、最大追越しタスク数2より小さいので
走査を終了する。ロック待ちタスクキュー84の先頭で
走査を終了し、かつ資源Rが共有モードでロックされて
いるので、要求したタスクのタスク識別子T3がロック
中タスクリスト83に追加され、要求したタスクにロッ
ク権が与えられる。また、タスクT2の追越しタスク数
に1が加えられる。この結果、排他制御テーブル8は第
3図(b)の状態となる。
クし、タスクT2が排他モード、追越しタスク数Oでロ
ック待ちしている。このときタスクT3が共有モードで
ロック要求すると、共有要求処理手段1が呼ばれる。資
源Rは共有モードでロックされているので、ロック待ち
タスクキュー84を先頭から走査し、タスクT2の排他
モードのロック要求を見つける。この要求の追越しタス
ク数は0であり、最大追越しタスク数2より小さいので
走査を終了する。ロック待ちタスクキュー84の先頭で
走査を終了し、かつ資源Rが共有モードでロックされて
いるので、要求したタスクのタスク識別子T3がロック
中タスクリスト83に追加され、要求したタスクにロッ
ク権が与えられる。また、タスクT2の追越しタスク数
に1が加えられる。この結果、排他制御テーブル8は第
3図(b)の状態となる。
次にタスクT4が排他モードでロック要求すると、排他
要求処理手段2が呼ばれる。すでに資源Rがロックされ
ているため、このタスクのタスク識別子T4と要求モー
ドEと追越しタスク数Oとの組がロック待ちタスクキュ
ー84に記録され、このタスクの処理が中断され、ロッ
ク待ちとなる。
要求処理手段2が呼ばれる。すでに資源Rがロックされ
ているため、このタスクのタスク識別子T4と要求モー
ドEと追越しタスク数Oとの組がロック待ちタスクキュ
ー84に記録され、このタスクの処理が中断され、ロッ
ク待ちとなる。
この結果、排他制御テーブル8は第3図(C)の状態と
なる。
なる。
次にタスクT5が共有モードで口・ツク要求すると、共
有要求処理手段1が呼ばれる。資源Rかすでに共存モー
ドでロックされているため、口、ツク待ちタスクキュー
84を先頭から順に走査し、タスクT2の排他モードの
ロック要求を見つける。
有要求処理手段1が呼ばれる。資源Rかすでに共存モー
ドでロックされているため、口、ツク待ちタスクキュー
84を先頭から順に走査し、タスクT2の排他モードの
ロック要求を見つける。
追越しタスク数は1であり、最大追越しタスク数2より
も小さいので走査を終了する。ロック待ちタスクキュー
84の先頭の要求で終了し、かつ資源Rが共有モードで
ロックされているので、口・ツタ中タスクリスト83に
タスク識別子T5が追加され、タスクT5にロック権が
与えられる。また、走査が終了したロック要求以降のす
べての排他モードロック要求の追越しタスク数に1が加
えられる。この結果、排他制御テーブル8は第3図(d
)の状態となる。
も小さいので走査を終了する。ロック待ちタスクキュー
84の先頭の要求で終了し、かつ資源Rが共有モードで
ロックされているので、口・ツタ中タスクリスト83に
タスク識別子T5が追加され、タスクT5にロック権が
与えられる。また、走査が終了したロック要求以降のす
べての排他モードロック要求の追越しタスク数に1が加
えられる。この結果、排他制御テーブル8は第3図(d
)の状態となる。
次にタスクT6が共有モードでロック要求すると、共有
要求処理手段1が呼ばれる。資源Rがすでに共有モード
でロックされているため、ロック待ちタスクキュー84
を先頭から順に走査し、タスクT2の排他モードロック
要求を見つける。追越しタスク数は2であり、最大追越
しタスク数2と等しいので走査を継続する。次に、タス
クT4の排他モードロック要求を見つける。追越しタス
ク数は1であり、最大追越しタスク数2より小さいので
走査を終了する。ロック待ちタスクキュー84の先頭で
の終了ではないので、走査を終了した要求の直前に新し
くロック要求したタスクのタスク識別子T6と要求モー
ドSとの組が挿入され、タスクT6の処理が中断されて
、ロック待ちとなる。また、走査を終了したタスクT4
の排他モードロック要求の追越しタスク数に1が加えら
れる。
要求処理手段1が呼ばれる。資源Rがすでに共有モード
でロックされているため、ロック待ちタスクキュー84
を先頭から順に走査し、タスクT2の排他モードロック
要求を見つける。追越しタスク数は2であり、最大追越
しタスク数2と等しいので走査を継続する。次に、タス
クT4の排他モードロック要求を見つける。追越しタス
ク数は1であり、最大追越しタスク数2より小さいので
走査を終了する。ロック待ちタスクキュー84の先頭で
の終了ではないので、走査を終了した要求の直前に新し
くロック要求したタスクのタスク識別子T6と要求モー
ドSとの組が挿入され、タスクT6の処理が中断されて
、ロック待ちとなる。また、走査を終了したタスクT4
の排他モードロック要求の追越しタスク数に1が加えら
れる。
続いて、タスクT7が共有モードでロック要求すると、
共有要求処理手段1が呼ばれる。資源Rがすでに共有モ
ードでロックされているため、ロック待ちタスクキュー
84を先頭から順に走査する。追越しタスク数が最大追
越しタスク数2未満の排他モードロック要求はないので
、ロック待ちタスクキュー84の最後にタスク識別子T
7と要求モードSとの組が追加され、タスクT7の処理
が中断されてロック待ちとなる。この結果、排他制御テ
ーブル8は第3図(e)の状態となる。
共有要求処理手段1が呼ばれる。資源Rがすでに共有モ
ードでロックされているため、ロック待ちタスクキュー
84を先頭から順に走査する。追越しタスク数が最大追
越しタスク数2未満の排他モードロック要求はないので
、ロック待ちタスクキュー84の最後にタスク識別子T
7と要求モードSとの組が追加され、タスクT7の処理
が中断されてロック待ちとなる。この結果、排他制御テ
ーブル8は第3図(e)の状態となる。
次に、タスクT1、T3、T5がこの順にアンロック要
求すると、各アンロック要求についてロック解除手段3
が呼出される。タスクT1、T3についてはロック中タ
スクリスト83からタスク識別子Tl、T3が削除され
、いずれにおいてもロック中タスクリストは空にならな
いので、これで処理を終わる。タスクT5のアンロック
要求では、ロック中タスクリスト83からタスク識別子
T5を削除すると、ロック中タスクリスト83が空とな
るので、ロック待ちタスクキュー84の先頭の要求を調
べる。先頭は排他モードの要求なので、排他待ちロック
手段5が呼出され、排他モードEをロックモード部82
に、タスク識別子T2をロック中タスクリスト83にそ
れぞれ記録し、この排他モードのロック要求をロック待
ちタスクキュー84から削除し、ロック要求を出したタ
スクの処理を再開させて、ロック権を与える。この結果
、排他制御テーブル8は第3図(f)の状態となる。
求すると、各アンロック要求についてロック解除手段3
が呼出される。タスクT1、T3についてはロック中タ
スクリスト83からタスク識別子Tl、T3が削除され
、いずれにおいてもロック中タスクリストは空にならな
いので、これで処理を終わる。タスクT5のアンロック
要求では、ロック中タスクリスト83からタスク識別子
T5を削除すると、ロック中タスクリスト83が空とな
るので、ロック待ちタスクキュー84の先頭の要求を調
べる。先頭は排他モードの要求なので、排他待ちロック
手段5が呼出され、排他モードEをロックモード部82
に、タスク識別子T2をロック中タスクリスト83にそ
れぞれ記録し、この排他モードのロック要求をロック待
ちタスクキュー84から削除し、ロック要求を出したタ
スクの処理を再開させて、ロック権を与える。この結果
、排他制御テーブル8は第3図(f)の状態となる。
次に、タスクT2がアンロック要求すると、ロック解除
手段3が呼出され、ロック中タスクリスト83からタス
ク識別子T2が削除される。ロック中タスクリスト83
が空となったので、ロックモード部82を消去する。ロ
ック待ちタスクキュー84の先頭の要求が共有モードな
ので、共有待ちロック手段4が呼出され、ロックモード
部82に共有モードSが、ロック中タスクリスト83に
、ロック待ちタスクキュー84の先頭から連続するすべ
ての共有モードロック要求のタスク識別子としてT6が
それぞれ記録される。ロック待ちタスクキュー84から
タスクT6の要求を削除し、タスクT6の処理が再開さ
れてロック権が与えられる。この結果、排他制御テーブ
ル8は第3図(g)の状態となる。
手段3が呼出され、ロック中タスクリスト83からタス
ク識別子T2が削除される。ロック中タスクリスト83
が空となったので、ロックモード部82を消去する。ロ
ック待ちタスクキュー84の先頭の要求が共有モードな
ので、共有待ちロック手段4が呼出され、ロックモード
部82に共有モードSが、ロック中タスクリスト83に
、ロック待ちタスクキュー84の先頭から連続するすべ
ての共有モードロック要求のタスク識別子としてT6が
それぞれ記録される。ロック待ちタスクキュー84から
タスクT6の要求を削除し、タスクT6の処理が再開さ
れてロック権が与えられる。この結果、排他制御テーブ
ル8は第3図(g)の状態となる。
本実施例では、最大追越しタスク数を資源の種類にかか
わらず固定値Nとしたが、排他制御テーブル8内に最大
追越しタスク数の欄を設けて各資源ごとに異なった最大
追越しタスク数Nを記録し、これを用いて制御すること
も可能である。
わらず固定値Nとしたが、排他制御テーブル8内に最大
追越しタスク数の欄を設けて各資源ごとに異なった最大
追越しタスク数Nを記録し、これを用いて制御すること
も可能である。
以上説明したように本発明は、排他モードでロック待ち
しているタスクを追越した共有モードロック要求タスク
の数が、最大追越しタスク数N未満である場合に限り、
共有モードでロック要求したタスクが追越すのを許すこ
とにより、永久封鎖の問題を避けながら共有資源の使用
効率を向上させることができる効果がある。
しているタスクを追越した共有モードロック要求タスク
の数が、最大追越しタスク数N未満である場合に限り、
共有モードでロック要求したタスクが追越すのを許すこ
とにより、永久封鎖の問題を避けながら共有資源の使用
効率を向上させることができる効果がある。
制御テーブルの内容例の図である。
1・・・共有要求処理手段、2・・・排他要求処理手段
、3・・・ロック解除手段、4・・・共有待ちロック手
段、5・・・排他待ちロック手段、6・・・ロック要求
処理部、7・・・アンロック要求処理部、8・・・排他
制御テーブル、9・・・共有資源排他制御機能、10・
・・共存資源使用タスク。
、3・・・ロック解除手段、4・・・共有待ちロック手
段、5・・・排他待ちロック手段、6・・・ロック要求
処理部、7・・・アンロック要求処理部、8・・・排他
制御テーブル、9・・・共有資源排他制御機能、10・
・・共存資源使用タスク。
Claims (1)
- 【特許請求の範囲】 計算機システムの共有資源排他制御方式において、共有
モードのロック要求に対し、 資源がロックされていない場合は、前記要求を出したタ
スクにロック権を与え、 資源が共有モードでロックされている場合は、排他モー
ドのロック待ちタスクがなければ前記要求を出したタス
クにロック権を与え、排他モードのロック待ちタスクが
あり、このロック待ちのいずれにおいても、その排他モ
ードのロック要求の要求順序を追越した共有モードロッ
ク要求タスクの数(以下「追越しタスク数」という)が
最大追越しタスク数N未満であれば前記要求を出したタ
スクにロック権を与え、 最大追越しタスク数Nの排他モードのロック待ちタスク
があり、さらに最大追越しタスク数N未満の排他モード
ロック待ちタスクがある場合は、最大追越しタスク数N
未満のタスクの中で最も多く共有モードロック要求タス
クに追越されたタスクの前にロック権が与えられるよう
ロック権の付与順序を変更して前記要求を出したタスク
をロック待ちとし、 最大追越しタスク数Nの排他モードロック待ちタスクが
ある場合は、現在のロック待ちタスクの中で最後にロッ
ク権が与えられるよう前記要求を出したタスクをロック
待ちとする共有要求処理手段と、 アンロック要求に対し、次にロック権を与えるべきロッ
ク待ちタスクが共有モードで要求している場合は、どの
排他モードのロック待ちタスクよりも先にロック権を与
えるべき共有モードのロック要求を出したタスクすべて
にロック権を与えるアンロック要求処理手段とを有する
ことを特徴とする共有資源排他制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19238290A JPH0478932A (ja) | 1990-07-20 | 1990-07-20 | 共有資源排他制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19238290A JPH0478932A (ja) | 1990-07-20 | 1990-07-20 | 共有資源排他制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0478932A true JPH0478932A (ja) | 1992-03-12 |
Family
ID=16290368
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP19238290A Pending JPH0478932A (ja) | 1990-07-20 | 1990-07-20 | 共有資源排他制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0478932A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH074401A (ja) * | 1993-06-16 | 1995-01-10 | Smc Corp | 電−空変換装置およびこれを用いたアクチュエータシステム |
| JP2010029745A (ja) * | 2008-07-25 | 2010-02-12 | Ngk Insulators Ltd | ホモバルブ及びそれを用いたホモジナイザ |
| JP2011173199A (ja) * | 2010-02-24 | 2011-09-08 | Makino Milling Mach Co Ltd | 工作機械及び加工液供給装置、並びに加工液 |
-
1990
- 1990-07-20 JP JP19238290A patent/JPH0478932A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH074401A (ja) * | 1993-06-16 | 1995-01-10 | Smc Corp | 電−空変換装置およびこれを用いたアクチュエータシステム |
| JP2010029745A (ja) * | 2008-07-25 | 2010-02-12 | Ngk Insulators Ltd | ホモバルブ及びそれを用いたホモジナイザ |
| JP2011173199A (ja) * | 2010-02-24 | 2011-09-08 | Makino Milling Mach Co Ltd | 工作機械及び加工液供給装置、並びに加工液 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01298440A (ja) | 計算機システムおよびそのタスクスケジュール方法 | |
| JP2705717B2 (ja) | ロック装置及び方法、ロック要求の細分性を判別するための装置及び方法 | |
| US5537645A (en) | File lock management in a distributed data processing system | |
| US7325064B2 (en) | Distributed locking protocol with asynchronous token prefetch and relinquish | |
| KR102450133B1 (ko) | 분산 잠금 관리를 하는 분산 시스템 및 그것의 동작 방법 | |
| JPH07191944A (ja) | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 | |
| US6185650B1 (en) | High performance locking facility | |
| JP2005509944A (ja) | 大きなデータ構造のエントリロック | |
| JPH0478932A (ja) | 共有資源排他制御方式 | |
| EP0013301B1 (en) | Multiprocessor system with enqueue facility for access to sharable data facilities | |
| JPH0383142A (ja) | 共有資源排他制御方式 | |
| JP2518134B2 (ja) | 共有資源排他制御方式 | |
| JPH03257568A (ja) | 共有資源排他制御方式 | |
| JPH0423047A (ja) | 共有資源排他制御方式 | |
| JPH02118843A (ja) | 共有資源排他制御方式 | |
| JPH0365732A (ja) | 資源管理方法 | |
| JP2898012B2 (ja) | 計算機資源の排他制御方式 | |
| JPH04116731A (ja) | 共有資源排他制御方式 | |
| JPH02194442A (ja) | 共有資源制御装置 | |
| JPS62140159A (ja) | 共用データ管理方法 | |
| JPH05120040A (ja) | コンピユータシステム | |
| JPH03141458A (ja) | 共有資源排他制御方式 | |
| JPH04223533A (ja) | 共有資源排他制御システム | |
| JPH03116260A (ja) | マルチプロセッサシステムにおけるスピンロック方式 | |
| JPH04262425A (ja) | 共有資源排他制御方式 |