JPH04262425A - 共有資源排他制御方式 - Google Patents
共有資源排他制御方式Info
- Publication number
- JPH04262425A JPH04262425A JP4446291A JP4446291A JPH04262425A JP H04262425 A JPH04262425 A JP H04262425A JP 4446291 A JP4446291 A JP 4446291A JP 4446291 A JP4446291 A JP 4446291A JP H04262425 A JPH04262425 A JP H04262425A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- task
- priority
- resource
- exclusive control
- 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 15
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 2
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は電子計算機システムにお
ける共有資源排他制御方式に関するものである。
ける共有資源排他制御方式に関するものである。
【0002】
【従来の技術】電子計算機システムにおいて、複数のタ
スクから使用される資源(共有資源)については、それ
らへのアクセスを逐次化するために排他制御が必要であ
る。
スクから使用される資源(共有資源)については、それ
らへのアクセスを逐次化するために排他制御が必要であ
る。
【0003】このような排他制御のために、電子計算機
システムには、ロック/アンロックあるいはENQ(エ
ンキュー)/DEQ(デキュー)と呼ばれる基本機能が
備えられている。なお、ロック要求には排他モードと共
有モードとの2種類がある。
システムには、ロック/アンロックあるいはENQ(エ
ンキュー)/DEQ(デキュー)と呼ばれる基本機能が
備えられている。なお、ロック要求には排他モードと共
有モードとの2種類がある。
【0004】排他制御の基本的動作は次のように行われ
る。
る。
【0005】あるタスクがロック要求を出した場合、ロ
ック要求対象の資源が他のタスクによりロックされてい
ない場合、または、その資源のロックモードとそのタス
クのロック要求のモードがともに共有モードの場合には
、要求したタスクに対してすぐにロック権が付与される
。
ック要求対象の資源が他のタスクによりロックされてい
ない場合、または、その資源のロックモードとそのタス
クのロック要求のモードがともに共有モードの場合には
、要求したタスクに対してすぐにロック権が付与される
。
【0006】しかし、その資源がロックされている場合
、その資源のロックモードまたはタスクのロック要求の
モードのいずれかが排他モードの時は、ロック待ちとな
る。
、その資源のロックモードまたはタスクのロック要求の
モードのいずれかが排他モードの時は、ロック待ちとな
る。
【0007】一方、資源をロックしていたタスクが資源
の使用を終えてアンロック要求を出した場合は、そのタ
スクのロック権の行使が終了する。
の使用を終えてアンロック要求を出した場合は、そのタ
スクのロック権の行使が終了する。
【0008】この場合、アンロック要求を出したタスク
が排他モードでロックをしていた場合には、待ち合わせ
していたタスクがあれば、最も早くロック要求をしたタ
スクの要求モードが排他モードであれば、そのタスクの
みにロック権を付与し、共有モードであれば現在共有モ
ードでロック待ちしているタスク全てにロック権を付与
する。
が排他モードでロックをしていた場合には、待ち合わせ
していたタスクがあれば、最も早くロック要求をしたタ
スクの要求モードが排他モードであれば、そのタスクの
みにロック権を付与し、共有モードであれば現在共有モ
ードでロック待ちしているタスク全てにロック権を付与
する。
【0009】また、アンロック要求を出したタスクが共
有モードでロックをしていた場合には、待ち合わせをし
ていた排他モードのタスクがあれば、そのタスクにロッ
ク権を付与する。
有モードでロックをしていた場合には、待ち合わせをし
ていた排他モードのタスクがあれば、そのタスクにロッ
ク権を付与する。
【0010】なお、アンロック要求をした時点で待ち合
わせをしているタスクがない場合には、当然のことなが
らロック権の付与は行わない。
わせをしているタスクがない場合には、当然のことなが
らロック権の付与は行わない。
【0011】
【発明が解決しようとする課題】上述したように、従来
の共有資源排他制御方式では、複数の資源を同時に使用
して処理する場合、各資源に対し逐次にロック要求をす
るが、いくつかの資源のロックが成功し、次の資源をロ
ックしようとしてロック待ちとなった場合、既にそのタ
スクがロックした資源に対してロック待ちしている他の
タスクの待ち時間が不必要に長くなり、資源の使用効率
が低下するという欠点があった。
の共有資源排他制御方式では、複数の資源を同時に使用
して処理する場合、各資源に対し逐次にロック要求をす
るが、いくつかの資源のロックが成功し、次の資源をロ
ックしようとしてロック待ちとなった場合、既にそのタ
スクがロックした資源に対してロック待ちしている他の
タスクの待ち時間が不必要に長くなり、資源の使用効率
が低下するという欠点があった。
【0012】なお、このような場合、必要な資源を全て
確保できない限り何も資源を確保しないというオールオ
アナッシングの技法等を適用すれば解決できるが、制御
が複雑になり、処理性能に影響を与えるので好ましくな
い。
確保できない限り何も資源を確保しないというオールオ
アナッシングの技法等を適用すれば解決できるが、制御
が複雑になり、処理性能に影響を与えるので好ましくな
い。
【0013】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、後続のロック待ちタス
クのロック待ち時間を減少させ、共有資源の使用効率を
向上させることのできる共有資源排他制御方式を提供す
ることにある。
あり、その目的とするところは、後続のロック待ちタス
クのロック待ち時間を減少させ、共有資源の使用効率を
向上させることのできる共有資源排他制御方式を提供す
ることにある。
【0014】
【課題を解決するための手段】本発明は上記の目的を達
成するため、電子計算機システムの共有資源排他制御方
式において、タスク対応にロック優先度を設け、タスク
が資源をロックした時、およびタスクがロック権の行使
を終了した時、当該タスクのロック中資源の数xにつき
f(a)≧f(b)が成立するa>bなるa,bが存在
し、かつf(c)>f(d)が成立するc>dなるc,
dが存在する関数f(x)によって算出された値を当該
タスクのロック優先度として設定するロック優先度設定
手段と、タスクがロック待ちとなった時、ロック待ちタ
スクへのロック権付与順序がロック優先度の高い順とな
るようロック待ち行列を並べ換えるロック順序変更手段
とを備えるようにしている。
成するため、電子計算機システムの共有資源排他制御方
式において、タスク対応にロック優先度を設け、タスク
が資源をロックした時、およびタスクがロック権の行使
を終了した時、当該タスクのロック中資源の数xにつき
f(a)≧f(b)が成立するa>bなるa,bが存在
し、かつf(c)>f(d)が成立するc>dなるc,
dが存在する関数f(x)によって算出された値を当該
タスクのロック優先度として設定するロック優先度設定
手段と、タスクがロック待ちとなった時、ロック待ちタ
スクへのロック権付与順序がロック優先度の高い順とな
るようロック待ち行列を並べ換えるロック順序変更手段
とを備えるようにしている。
【0015】
【作用】本発明の共有資源排他制御方式にあっては、タ
スクが資源をロックした時、およびタスクがロック権の
行使を終了した時、ロック優先度設定手段が当該タスク
のロック中資源の数xにつきf(a)≧f(b)が成立
するa>bなるa,bが存在し、かつf(c)>f(d
)が成立するc>dなるc,dが存在する関数f(x)
によって算出された値を当該タスクのロック優先度とし
て設定し、タスクがロック待ちとなった時、ロック順序
変更手段がロック待ちタスクへのロック権付与順序がロ
ック優先度の高い順となるようロック待ち行列を並べ換
える。
スクが資源をロックした時、およびタスクがロック権の
行使を終了した時、ロック優先度設定手段が当該タスク
のロック中資源の数xにつきf(a)≧f(b)が成立
するa>bなるa,bが存在し、かつf(c)>f(d
)が成立するc>dなるc,dが存在する関数f(x)
によって算出された値を当該タスクのロック優先度とし
て設定し、タスクがロック待ちとなった時、ロック順序
変更手段がロック待ちタスクへのロック権付与順序がロ
ック優先度の高い順となるようロック待ち行列を並べ換
える。
【0016】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。
説明する。
【0017】図1は本発明の共有資源排他制御方式の一
実施例を示す構成図である。
実施例を示す構成図である。
【0018】図1において、共有資源排他制御機構7は
、ロック要求の処理を行うロック要求処理手段1と、ア
ンロック要求の処理を行うアンロック要求処理手段2と
、ロック優先度の高い順にロック待ち行列を並べ換える
ロック順序変更手段3と、タスクのロック優先度として
当該タスクのロック中資源数から所定の関数で算出され
る値を設定するロック優先度設定手段4と、排他制御テ
ーブル5と、ロック優先度テーブル6とから構成されて
いる。
、ロック要求の処理を行うロック要求処理手段1と、ア
ンロック要求の処理を行うアンロック要求処理手段2と
、ロック優先度の高い順にロック待ち行列を並べ換える
ロック順序変更手段3と、タスクのロック優先度として
当該タスクのロック中資源数から所定の関数で算出され
る値を設定するロック優先度設定手段4と、排他制御テ
ーブル5と、ロック優先度テーブル6とから構成されて
いる。
【0019】図2は排他制御テーブル5およびロック優
先度テーブル6の論理的構成を示したものである。
先度テーブル6の論理的構成を示したものである。
【0020】すなわち、排他制御テーブル5はシステム
内の排他制御対象資源を一意に識別するための名前であ
る資源名をキーとするものであり、各資源に対するエン
トリは、資源名部とロックモード部とロック中タスクリ
ストとロック待ち行列とから構成されている。ここで、
ロックモード部は、資源がロックされているときのロッ
クモードが記録され、ロック中タスクリストは、その資
源をロックしているタスクのタスク識別子が記録され、
ロック待ち行列は、待ち状態にあるロック要求の待ち行
列であり、これらの要求を出しているタスクのタスク識
別子とロックモードとの組が記録される。なお、ロック
モードは共有モードを「S」、排他モードを「E」と表
すこととする。
内の排他制御対象資源を一意に識別するための名前であ
る資源名をキーとするものであり、各資源に対するエン
トリは、資源名部とロックモード部とロック中タスクリ
ストとロック待ち行列とから構成されている。ここで、
ロックモード部は、資源がロックされているときのロッ
クモードが記録され、ロック中タスクリストは、その資
源をロックしているタスクのタスク識別子が記録され、
ロック待ち行列は、待ち状態にあるロック要求の待ち行
列であり、これらの要求を出しているタスクのタスク識
別子とロックモードとの組が記録される。なお、ロック
モードは共有モードを「S」、排他モードを「E」と表
すこととする。
【0021】また、ロック優先度テーブル6はタスク識
別子をキーとするものであり、各タスクに対するエント
リは、タスク識別子部と、ロック中資源数部と、ロック
優先度部とから構成されている。ここで、ロック中資源
数部は、そのタスクがロックしている資源数が記録され
、ロック優先度部は、そのタスクのロック優先度が記録
される。
別子をキーとするものであり、各タスクに対するエント
リは、タスク識別子部と、ロック中資源数部と、ロック
優先度部とから構成されている。ここで、ロック中資源
数部は、そのタスクがロックしている資源数が記録され
、ロック優先度部は、そのタスクのロック優先度が記録
される。
【0022】以下、各処理部の動作を説明する。
【0023】(1)ロック要求処理手段1いずれかのタ
スクT1〜Tnからロック要求がされると、ロック要求
処理手段1はロック要求の処理を行う。
スクT1〜Tnからロック要求がされると、ロック要求
処理手段1はロック要求の処理を行う。
【0024】すなわち、ロック要求処理手段1は、排他
制御テーブル5の要求された資源に対応するエントリを
参照し、ロックモード部が空の場合、または、その要求
のロックモードとロックモード部の値とがともに共有モ
ードSの場合は、ロックモード部にその要求のロックモ
ードを記録し、ロック中タスクリストにその要求を出し
たタスクのタスク識別子を追加する。
制御テーブル5の要求された資源に対応するエントリを
参照し、ロックモード部が空の場合、または、その要求
のロックモードとロックモード部の値とがともに共有モ
ードSの場合は、ロックモード部にその要求のロックモ
ードを記録し、ロック中タスクリストにその要求を出し
たタスクのタスク識別子を追加する。
【0025】次いで、ロック優先度テーブル6のそのロ
ック要求を出したタスクに対するエントリのロック中資
源数部に1を加えた後、そのタスクのタスク識別子をパ
ラメータとしてロック優先度設定手段4を呼び出す。
ック要求を出したタスクに対するエントリのロック中資
源数部に1を加えた後、そのタスクのタスク識別子をパ
ラメータとしてロック優先度設定手段4を呼び出す。
【0026】一方、タスクT1〜Tnからのロック要求
に際し、排他制御テーブル5の要求された資源に対応す
るロックモード部が空でなくタスクのロック要求が排他
モードEである場合、または、ロックモード部の値が排
他モードEである場合は、そのタスクのタスク識別子と
ロックモードとの組をロック待ち行列の最後に追加し、
ロック順序変更手段3を呼び出す。
に際し、排他制御テーブル5の要求された資源に対応す
るロックモード部が空でなくタスクのロック要求が排他
モードEである場合、または、ロックモード部の値が排
他モードEである場合は、そのタスクのタスク識別子と
ロックモードとの組をロック待ち行列の最後に追加し、
ロック順序変更手段3を呼び出す。
【0027】次いで、その要求を出したタスクの処理を
中断させる。
中断させる。
【0028】(2)アンロック要求処理手段2いずれか
のタスクT1〜Tnからアンロック要求がされると、ア
ンロック要求処理手段2は、アンロック要求の処理を行
う。
のタスクT1〜Tnからアンロック要求がされると、ア
ンロック要求処理手段2は、アンロック要求の処理を行
う。
【0029】すなわち、アンロック要求処理手段2は排
他制御テーブル5の対応する資源のエントリのロック中
タスクリストからそのアンロック要求を出したタスクの
タスク識別子を削除し、ロック優先度テーブル6のその
タスクのエントリのロック中資源数部から1を減じた後
、そのタスクのタスク識別子をパラメータとしてロック
優先度設定手段4を呼び出す。
他制御テーブル5の対応する資源のエントリのロック中
タスクリストからそのアンロック要求を出したタスクの
タスク識別子を削除し、ロック優先度テーブル6のその
タスクのエントリのロック中資源数部から1を減じた後
、そのタスクのタスク識別子をパラメータとしてロック
優先度設定手段4を呼び出す。
【0030】次いで、排他制御テーブル5のロック中タ
スクリストが空となっている場合は、ロックモード部を
消去する。
スクリストが空となっている場合は、ロックモード部を
消去する。
【0031】更に、排他制御テーブル5のロック待ち行
列にロック待ちタスクがある場合、次のロック待ちタス
クが排他モードEでロック要求している場合は、ロック
モード部に排他モードEを、ロック中タスクリストにそ
のタスクのタスク識別子をそれぞれ記録し、そのタスク
のタスク識別子等をロック待ち行列から削除する。
列にロック待ちタスクがある場合、次のロック待ちタス
クが排他モードEでロック要求している場合は、ロック
モード部に排他モードEを、ロック中タスクリストにそ
のタスクのタスク識別子をそれぞれ記録し、そのタスク
のタスク識別子等をロック待ち行列から削除する。
【0032】また、次のロック待ちタスクが共有モード
Sでロック要求している場合は、ロックモード部に共有
モードSを記録し、ロック待ち行列内の共有モードでロ
ック要求を出している全てのタスクのタスク識別子を、
ロック中タスクリストに記録し、ロック待ち行列内の全
ての共有モードのタスク識別子等を削除する。
Sでロック要求している場合は、ロックモード部に共有
モードSを記録し、ロック待ち行列内の共有モードでロ
ック要求を出している全てのタスクのタスク識別子を、
ロック中タスクリストに記録し、ロック待ち行列内の全
ての共有モードのタスク識別子等を削除する。
【0033】次いで、ロック中タスクリストに記録した
全てのタスク識別子のタスクについて、ロック優先度テ
ーブル6のロック中資源数部に1を加え、各タスク識別
子をパラメータとしてロック優先度変更手段4をタスク
数分だけ繰り返し呼び出した後、これらのタスクの処理
を再開させる。
全てのタスク識別子のタスクについて、ロック優先度テ
ーブル6のロック中資源数部に1を加え、各タスク識別
子をパラメータとしてロック優先度変更手段4をタスク
数分だけ繰り返し呼び出した後、これらのタスクの処理
を再開させる。
【0034】(3)ロック順序変更手段3ロック順序変
更手段3は、ロック要求処理手段1から待ち状態にした
タスクのタスク識別子をパラメータとして呼び出された
際に動作する。
更手段3は、ロック要求処理手段1から待ち状態にした
タスクのタスク識別子をパラメータとして呼び出された
際に動作する。
【0035】すなわち、ロック順序変更手段3は、排他
制御テーブル5のロック待ち行列を、ロック優先度テー
ブル6のロック優先度部を参照して、各要求を出したタ
スクのロック優先度の高い順に並べ換える。この時、ロ
ック優先度の等しいタスクのロック要求は先着順に並べ
る。
制御テーブル5のロック待ち行列を、ロック優先度テー
ブル6のロック優先度部を参照して、各要求を出したタ
スクのロック優先度の高い順に並べ換える。この時、ロ
ック優先度の等しいタスクのロック要求は先着順に並べ
る。
【0036】(4)ロック優先度設定手段4ロック優先
度設定手段4は、ロック要求処理手段1もしくはアンロ
ック要求処理手段2からロック中資源数が変更となった
タスクのタスク識別子をパラメータとして呼び出された
際に動作する。
度設定手段4は、ロック要求処理手段1もしくはアンロ
ック要求処理手段2からロック中資源数が変更となった
タスクのタスク識別子をパラメータとして呼び出された
際に動作する。
【0037】すなわち、ロック優先度変更手段4は、ロ
ック優先度テーブル6のパラメータで指定されたタスク
識別子に対するエントリに関し、ロック中資源数部を参
照してロック優先度を算出し、その値を当該エントリの
ロック優先度部に記録する。ロック優先度の算出は、ロ
ック中資源の数xにつきf(a)≧f(b)が成立する
a>bなるa,bが存在し、かつf(c)>f(d)が
成立するc>dなるc,dが存在する関数f(x)を用
いる。例えば、f(x)=xとしてロック中資源数その
ものをロック優先度とすることもできる。
ック優先度テーブル6のパラメータで指定されたタスク
識別子に対するエントリに関し、ロック中資源数部を参
照してロック優先度を算出し、その値を当該エントリの
ロック優先度部に記録する。ロック優先度の算出は、ロ
ック中資源の数xにつきf(a)≧f(b)が成立する
a>bなるa,bが存在し、かつf(c)>f(d)が
成立するc>dなるc,dが存在する関数f(x)を用
いる。例えば、f(x)=xとしてロック中資源数その
ものをロック優先度とすることもできる。
【0038】次に、本実施例の具体的動作について、図
3ないし図7を参照して説明する。
3ないし図7を参照して説明する。
【0039】図3は4つのタスクT1〜T4が2つの資
源R1,R2に対して順次にロック要求およびアンロッ
ク要求を行う状況を示すタイミングチャートである。
源R1,R2に対して順次にロック要求およびアンロッ
ク要求を行う状況を示すタイミングチャートである。
【0040】図4ないし図7は図3における各時刻ta
〜tdでの排他制御テーブル5およびロック優先度テー
ブル6の状態を示している。なお、時刻tより前では、
資源R1,R2はロックされていないものとする。
〜tdでの排他制御テーブル5およびロック優先度テー
ブル6の状態を示している。なお、時刻tより前では、
資源R1,R2はロックされていないものとする。
【0041】また、f(0)<f(1)<f(2)が成
立するような関数f(x)が用いられ、ロック優先度テ
ーブル6のロック中資源数部とロック優先度部とがそれ
ぞれ「0」,「f(0)」に初期化されているものとす
る。
立するような関数f(x)が用いられ、ロック優先度テ
ーブル6のロック中資源数部とロック優先度部とがそれ
ぞれ「0」,「f(0)」に初期化されているものとす
る。
【0042】時刻tでタスクT1が資源R1を排他モー
ドEでロック要求すると、ロック要求処理手段1が呼び
出され、資源R1はロックされていないので、タスクT
1にロック権が付与され、排他制御テーブル5のロック
モード部に排他モード「E」が、ロック中タスクリスト
にタスク識別子「T1」がそれぞれ記録される。
ドEでロック要求すると、ロック要求処理手段1が呼び
出され、資源R1はロックされていないので、タスクT
1にロック権が付与され、排他制御テーブル5のロック
モード部に排他モード「E」が、ロック中タスクリスト
にタスク識別子「T1」がそれぞれ記録される。
【0043】また、ロック優先度テーブル6のタスクT
1のロック中資源数部に「1」が加えられ、ロック優先
度設定手段4が呼び出され、タスクT1のロック優先度
部に「f(1)」が設定される。
1のロック中資源数部に「1」が加えられ、ロック優先
度設定手段4が呼び出され、タスクT1のロック優先度
部に「f(1)」が設定される。
【0044】時刻t+1でタスクT2が資源R1を排他
モードEでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードEでロックされ
ているので、タスクT2はロック待ちとなり、排他制御
テーブル5のロック待ち行列にタスク識別子T2と排他
モードEとの組「T2,E」が記録される。
モードEでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードEでロックされ
ているので、タスクT2はロック待ちとなり、排他制御
テーブル5のロック待ち行列にタスク識別子T2と排他
モードEとの組「T2,E」が記録される。
【0045】続いて、ロック順序変更手段3が呼び出さ
れ、排他制御テーブル5のロック待ち行列の並べ換えが
行われるが、この時点でのロック待ちタスクはT2のみ
なので、実質的に意味はない。この後、タスクT2の処
理は中断され待ちに入る。
れ、排他制御テーブル5のロック待ち行列の並べ換えが
行われるが、この時点でのロック待ちタスクはT2のみ
なので、実質的に意味はない。この後、タスクT2の処
理は中断され待ちに入る。
【0046】時刻t+2でタスクT3が資源R2を共有
モードSでロック要求し、時刻t+3でタスクT4が資
源R2を排他モードEでロック要求すると、タスクT1
,T2の場合と同様に処理が行われ、タスクT3にロッ
ク権が付与され、タスクT4はロック待ちとなる。この
結果、時刻taでの排他制御テーブル5およびロック優
先度テーブル6は図4のような状態となる。
モードSでロック要求し、時刻t+3でタスクT4が資
源R2を排他モードEでロック要求すると、タスクT1
,T2の場合と同様に処理が行われ、タスクT3にロッ
ク権が付与され、タスクT4はロック待ちとなる。この
結果、時刻taでの排他制御テーブル5およびロック優
先度テーブル6は図4のような状態となる。
【0047】時刻t+4でタスクT3が資源R1を共有
モードSでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードでロックされて
いるので、排他制御テーブル5のロック待ち行列の最後
にタスク識別子T3と共有モードSとの組「T3,S」
が追加される。
モードSでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードでロックされて
いるので、排他制御テーブル5のロック待ち行列の最後
にタスク識別子T3と共有モードSとの組「T3,S」
が追加される。
【0048】次に、ロック順序変更手段3が呼び出され
、タスクT2とタスクT3のロック優先度はそれぞれf
(0),f(1)であり、f(0)<f(1)であるこ
とから、タスクT3のロック要求,タスクT2のロック
要求の順にロック待ち行列が並べ換えられ、その後、タ
スクT3の処理が中断され、待ちに入る。すなわち、先
にロック要求したタスクT2をタスクT3が追い越し、
タスクT3へのロック権付与が優先される。この結果、
時刻tbでの排他制御テーブル5およびロック優先度テ
ーブル6は図5のような状態となる。
、タスクT2とタスクT3のロック優先度はそれぞれf
(0),f(1)であり、f(0)<f(1)であるこ
とから、タスクT3のロック要求,タスクT2のロック
要求の順にロック待ち行列が並べ換えられ、その後、タ
スクT3の処理が中断され、待ちに入る。すなわち、先
にロック要求したタスクT2をタスクT3が追い越し、
タスクT3へのロック権付与が優先される。この結果、
時刻tbでの排他制御テーブル5およびロック優先度テ
ーブル6は図5のような状態となる。
【0049】時刻t+5でタスクT1が資源R1をアン
ロック要求(U)すると、アンロック処理手段2が呼び
出され、排他制御テーブル5のロック中タスクリストか
らタスク識別子T1が削除される。
ロック要求(U)すると、アンロック処理手段2が呼び
出され、排他制御テーブル5のロック中タスクリストか
らタスク識別子T1が削除される。
【0050】続いて、ロック優先度テーブル6のタスク
T1のロック中資源数部から「1」が減じられ、タスク
識別子T1をパラメータとしてロック優先度設定手段4
が呼び出され、タスクT1のロック優先度部に「f(0
)」が設定される。この結果、排他制御テーブル5のロ
ック中タスクリストが空となるので、ロックモード部も
消去される。
T1のロック中資源数部から「1」が減じられ、タスク
識別子T1をパラメータとしてロック優先度設定手段4
が呼び出され、タスクT1のロック優先度部に「f(0
)」が設定される。この結果、排他制御テーブル5のロ
ック中タスクリストが空となるので、ロックモード部も
消去される。
【0051】更に、ロック待ち行列は空ではないので、
最初のロック要求タスクT3にロック権が付与され、ロ
ックモード部に共有モードSが、ロック中タスクリスト
にタスク識別子T3がそれぞれ記録される。
最初のロック要求タスクT3にロック権が付与され、ロ
ックモード部に共有モードSが、ロック中タスクリスト
にタスク識別子T3がそれぞれ記録される。
【0052】次に、そのタスクT3のロック中資源数部
に「1」を加え、タスク識別子T3をパラメータとして
ロック優先度設定手段4が呼び出され、タスクT3のロ
ック優先度部に「f(2)」が設定された後、タスクT
3の処理が再開される。この結果、時刻tcでの排他制
御テーブル5およびロック優先度テーブル6は図6のよ
うな状態となる。
に「1」を加え、タスク識別子T3をパラメータとして
ロック優先度設定手段4が呼び出され、タスクT3のロ
ック優先度部に「f(2)」が設定された後、タスクT
3の処理が再開される。この結果、時刻tcでの排他制
御テーブル5およびロック優先度テーブル6は図6のよ
うな状態となる。
【0053】時刻t+6でタスクT3が資源R1,R2
を続けてアンロック要求すると、タスクT1によるアン
ロック要求と同様に処理が行われ、資源R1においては
タスクT2に、資源R2においてはタスクT4にそれぞ
れロック権が付与される。この結果、時刻tdでの排他
制御テーブル5およびロック優先度テーブル6は図7の
ような状態となる。
を続けてアンロック要求すると、タスクT1によるアン
ロック要求と同様に処理が行われ、資源R1においては
タスクT2に、資源R2においてはタスクT4にそれぞ
れロック権が付与される。この結果、時刻tdでの排他
制御テーブル5およびロック優先度テーブル6は図7の
ような状態となる。
【0054】上記の例では、f(0)<f(1)<f(
2)であると仮定したが、a<bに対してf(a)=f
(b)のような関数f(x)も用いることができ、ロッ
ク中資源数が大差ない場合には先着順に処理した方がよ
いと思われるような環境では有利となる。この場合、動
作としては、ロック順序変更手段3でのロック待ち行列
の並べ換え時にロック中資源数bのタスクがロック中資
源数aのタスクに優先されず、先着順に並べられる点が
異なる以外は同様の処理となる。
2)であると仮定したが、a<bに対してf(a)=f
(b)のような関数f(x)も用いることができ、ロッ
ク中資源数が大差ない場合には先着順に処理した方がよ
いと思われるような環境では有利となる。この場合、動
作としては、ロック順序変更手段3でのロック待ち行列
の並べ換え時にロック中資源数bのタスクがロック中資
源数aのタスクに優先されず、先着順に並べられる点が
異なる以外は同様の処理となる。
【0055】また、ロック中資源数そのものをロック優
先度とした場合、f(0)<f(1)<……<f(n)
<f(n+1)<……となるので、タスクTa,Tbに
ついてロック中資源数をそれぞれa,bとすると、a>
bならば常にタスクTaのロック要求がタスクTbのロ
ック要求に優先されることになる。
先度とした場合、f(0)<f(1)<……<f(n)
<f(n+1)<……となるので、タスクTa,Tbに
ついてロック中資源数をそれぞれa,bとすると、a>
bならば常にタスクTaのロック要求がタスクTbのロ
ック要求に優先されることになる。
【0056】
【発明の効果】以上説明したように、本発明の共有資源
排他制御方式にあっては、ロック中資源数の増加に伴っ
て増加するようなロック優先度を導入し、ロック優先度
の高いタスクに対し、ロック優先度の低いタスクに優先
してロック権が付与されるよう制御することによって、
既にいくつかの資源をロックしているタスクが新たな資
源をロック要求してロック待ちとなった場合にロック待
ち時間を減少させることができ、当該タスクがロックし
ている資源に対しロック待ちしている他のタスクのロッ
ク待ち時間を減少させ、共有資源の使用効率を向上させ
ることができるという効果がある。
排他制御方式にあっては、ロック中資源数の増加に伴っ
て増加するようなロック優先度を導入し、ロック優先度
の高いタスクに対し、ロック優先度の低いタスクに優先
してロック権が付与されるよう制御することによって、
既にいくつかの資源をロックしているタスクが新たな資
源をロック要求してロック待ちとなった場合にロック待
ち時間を減少させることができ、当該タスクがロックし
ている資源に対しロック待ちしている他のタスクのロッ
ク待ち時間を減少させ、共有資源の使用効率を向上させ
ることができるという効果がある。
【図1】本発明の共有資源排他制御方式の一実施例を示
す構成図である。
す構成図である。
【図2】図1における排他制御テーブルおよびロック優
先度テーブルの論理的構成を示す図である。
先度テーブルの論理的構成を示す図である。
【図3】具体例を説明するためのタイミングチャートで
ある。
ある。
【図4】排他制御テーブルおよびロック優先度テーブル
の状態の例を示す図である。
の状態の例を示す図である。
【図5】排他制御テーブルおよびロック優先度テーブル
の状態の例を示す図である。
の状態の例を示す図である。
【図6】排他制御テーブルおよびロック優先度テーブル
の状態の例を示す図である。
の状態の例を示す図である。
【図7】排他制御テーブルおよびロック優先度テーブル
の状態の例を示す図である。
の状態の例を示す図である。
1……………ロック要求処理手段
2……………アンロック要求処理手段
3……………ロック順序変更手段
4……………ロック優先度設定手段
5……………排他制御テーブル
6……………ロック優先度テーブル
7……………共有資源排他制御機構
T1〜Tn…タスク
R1,R2…資源
Claims (2)
- 【請求項1】 電子計算機システムの共有資源排他制
御方式において、タスク対応にロック優先度を設け、タ
スクが資源をロックした時、およびタスクがロック権の
行使を終了した時、当該タスクのロック中資源の数xに
つきf(a)≧f(b)が成立するa>bなるa,bが
存在し、かつf(c)>f(d)が成立するc>dなる
c,dが存在する関数f(x)によって算出された値を
当該タスクのロック優先度として設定するロック優先度
設定手段と、タスクがロック待ちとなった時、ロック待
ちタスクへのロック権付与順序がロック優先度の高い順
となるようロック待ち行列を並べ換えるロック順序変更
手段とを備えたことを特徴とする共有資源排他制御方式
。 - 【請求項2】 f(x)=xとしたことを特徴とする
請求項1記載の共有資源排他制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4446291A JPH04262425A (ja) | 1991-02-15 | 1991-02-15 | 共有資源排他制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4446291A JPH04262425A (ja) | 1991-02-15 | 1991-02-15 | 共有資源排他制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04262425A true JPH04262425A (ja) | 1992-09-17 |
Family
ID=12692163
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4446291A Pending JPH04262425A (ja) | 1991-02-15 | 1991-02-15 | 共有資源排他制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04262425A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06282448A (ja) * | 1993-03-29 | 1994-10-07 | Nec Corp | 共有資源排他制御方式 |
-
1991
- 1991-02-15 JP JP4446291A patent/JPH04262425A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06282448A (ja) * | 1993-03-29 | 1994-10-07 | Nec Corp | 共有資源排他制御方式 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5790851A (en) | Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment | |
| US8341636B2 (en) | System and method for queue-less enforcement of queue-like behavior on multiple threads accessing a scarce resource | |
| US7174552B2 (en) | Method of accessing a resource by a process based on a semaphore of another process | |
| US9361474B2 (en) | Network filesystem asynchronous I/O scheduling | |
| WO2008101756A1 (en) | Method and system for concurrent message processing | |
| US7209990B2 (en) | Maintain fairness of resource allocation in a multi-node environment | |
| US6253274B1 (en) | Apparatus for a high performance locking facility | |
| Aranha et al. | Implementation of a real-time database system | |
| JPH0877025A (ja) | タスクの優先度制御方法、タスクの優先度制御装置 | |
| US9792419B2 (en) | Starvationless kernel-aware distributed scheduling of software licenses | |
| JP2518134B2 (ja) | 共有資源排他制御方式 | |
| JPH04262425A (ja) | 共有資源排他制御方式 | |
| CN118796383A (zh) | 基于rpa节点池的调度方法及装置 | |
| Haritsa et al. | Real-time index concurrency control | |
| JP3068556B2 (ja) | 共有資源排他制御方式およびそのプログラム記録媒体 | |
| CN110537174A (zh) | 一种基于交替行锁和列锁的数据锁定方法 | |
| JPH0512041A (ja) | 共有資源排他制御方式 | |
| JPH0478932A (ja) | 共有資源排他制御方式 | |
| JPH0365732A (ja) | 資源管理方法 | |
| JPH0383142A (ja) | 共有資源排他制御方式 | |
| JPH04223533A (ja) | 共有資源排他制御システム | |
| JPH05120040A (ja) | コンピユータシステム | |
| US20130042247A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses | |
| JPH02194442A (ja) | 共有資源制御装置 | |
| JP3036468B2 (ja) | 排他制御処理装置及び排他制御処理方法並びに排他制御処理プログラムを記憶した記憶媒体 |