JPH0512041A - 共有資源排他制御方式 - Google Patents
共有資源排他制御方式Info
- Publication number
- JPH0512041A JPH0512041A JP18822891A JP18822891A JPH0512041A JP H0512041 A JPH0512041 A JP H0512041A JP 18822891 A JP18822891 A JP 18822891A JP 18822891 A JP18822891 A JP 18822891A JP H0512041 A JPH0512041 A JP H0512041A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- task
- resource
- priority
- waiting
- 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 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
Abstract
(57)【要約】
【目的】 ロック待ちタスクのロック待ち時間を減少さ
せるとともに、共有資源の使用効率を向上させた共有資
源排他制御方式の提供 【構成】 計算機システムの共有資源排他制御方式にお
いて、そのタスクのロック優先度として該タスクがロッ
ク中の資源をロック待ちしているタスクの数の単純増加
関数で計算される値を設定するロック優先度設定手段4
と、ロック優先度にしたがってロック待ち行列内の要求
を並べ換えるロック順序変更手段3とを有する。 【効果】 ロック待ちしているタスクのロック待ち時間
を減少させるとともに、共有資源の使用効率を向上させ
る効果がある。
せるとともに、共有資源の使用効率を向上させた共有資
源排他制御方式の提供 【構成】 計算機システムの共有資源排他制御方式にお
いて、そのタスクのロック優先度として該タスクがロッ
ク中の資源をロック待ちしているタスクの数の単純増加
関数で計算される値を設定するロック優先度設定手段4
と、ロック優先度にしたがってロック待ち行列内の要求
を並べ換えるロック順序変更手段3とを有する。 【効果】 ロック待ちしているタスクのロック待ち時間
を減少させるとともに、共有資源の使用効率を向上させ
る効果がある。
Description
【0001】
【産業上の利用分野】本発明は、計算機システムの共有
資源の排他制御方式に関する。
資源の排他制御方式に関する。
【0002】
【従来の技術】計算機システムにおいて複数のタスクか
ら使用される資源については、それへのアクセスを逐次
化するために排他制御が必要である。このような排他制
御のために、計算機システムには、ロック/アンロック
(あるいはENQ/DEQ)と呼ばれる基本機能が備え
られており、ロック要求には通常排他モードと共有モー
ドの2種類がある。
ら使用される資源については、それへのアクセスを逐次
化するために排他制御が必要である。このような排他制
御のために、計算機システムには、ロック/アンロック
(あるいはENQ/DEQ)と呼ばれる基本機能が備え
られており、ロック要求には通常排他モードと共有モー
ドの2種類がある。
【0003】排他制御の基本的動作は次のようなもので
ある。あるタスクがロック要求を出した場合、ロック要
求対象資源が他のタスクによりロックされていない場
合、または、その資源のロックモードと該タスクのロッ
ク要求のモードがともに共有モードの場合、すぐにロッ
ク権が付与される。しかし、その資源のロックモード、
または該タスクのロック要求のモードが排他モードの時
はロック待ちとなる。
ある。あるタスクがロック要求を出した場合、ロック要
求対象資源が他のタスクによりロックされていない場
合、または、その資源のロックモードと該タスクのロッ
ク要求のモードがともに共有モードの場合、すぐにロッ
ク権が付与される。しかし、その資源のロックモード、
または該タスクのロック要求のモードが排他モードの時
はロック待ちとなる。
【0004】また、資源をロックしていたタスクがアン
ロック要求を出した場合は該タスクのロック権の行使が
終了する。他にロックしているタスクがなく、かつロッ
ク待ちタスクがあり、それらの内、最も早くロック要求
したタスクの要求モードが排他モードの場合は、該タス
クのみにロック権を付与し、共有モードならば現在共有
モードでロック待ちしているタスクすべてにロック権を
付与する。
ロック要求を出した場合は該タスクのロック権の行使が
終了する。他にロックしているタスクがなく、かつロッ
ク待ちタスクがあり、それらの内、最も早くロック要求
したタスクの要求モードが排他モードの場合は、該タス
クのみにロック権を付与し、共有モードならば現在共有
モードでロック待ちしているタスクすべてにロック権を
付与する。
【0005】
【発明が解決しようとする課題】上述した従来の共有資
源排他制御方式では、複数の資源を同時に使用して処理
する場合、各資源に対し逐次ロック要求するが、いくつ
かの資源のロックが成功し、次の資源をロックしようと
してロック待ちとなった場合、既にロックした資源に対
してロック待ちしている他のタスクの待ち時間が不必要
に長くなり、資源の使用効率が低下するという課題があ
る。
源排他制御方式では、複数の資源を同時に使用して処理
する場合、各資源に対し逐次ロック要求するが、いくつ
かの資源のロックが成功し、次の資源をロックしようと
してロック待ちとなった場合、既にロックした資源に対
してロック待ちしている他のタスクの待ち時間が不必要
に長くなり、資源の使用効率が低下するという課題があ
る。
【0006】本発明の目的は、上述の点に鑑み、後続の
ロック待ちタスクのロック待ち時間を減少させるととも
に共有資源の使用効率を向上させるようにした共有資源
排他制御方式を提供することにある。
ロック待ちタスクのロック待ち時間を減少させるととも
に共有資源の使用効率を向上させるようにした共有資源
排他制御方式を提供することにある。
【0007】
【課題を解決するための手段】第1の発明の共有資源排
他制御方式は、タスクのロック中資源をロック待ちして
いるタスクの数xの関数f(x),(a>bならばf
(a)≧f(b)が成立し、かつc>dの時f(c)>
f(d)となるc,dが存在する関数)によって算出さ
れた値を、該タスクのロック優先度として設定するロッ
ク優先度設定手段と、ロック待ちタスクへのロック権付
与順序がロック優先度の高い順となるようロック待ち行
列を並べ換えるロック順序変更手段とを有する。
他制御方式は、タスクのロック中資源をロック待ちして
いるタスクの数xの関数f(x),(a>bならばf
(a)≧f(b)が成立し、かつc>dの時f(c)>
f(d)となるc,dが存在する関数)によって算出さ
れた値を、該タスクのロック優先度として設定するロッ
ク優先度設定手段と、ロック待ちタスクへのロック権付
与順序がロック優先度の高い順となるようロック待ち行
列を並べ換えるロック順序変更手段とを有する。
【0008】第2の発明の共有資源排他制御方式は、タ
スクのロック中資源をロック待ちしているタスクの数を
該タスクのロック優先度として設定するロック優先度設
定手段と、ロック待ちタスクへのロック権付与順序がロ
ック優先度の高い順となるようロック待ち行列を並べ換
えるロック順序変更手段とを有する。
スクのロック中資源をロック待ちしているタスクの数を
該タスクのロック優先度として設定するロック優先度設
定手段と、ロック待ちタスクへのロック権付与順序がロ
ック優先度の高い順となるようロック待ち行列を並べ換
えるロック順序変更手段とを有する。
【0009】
【作用】第1の発明におけるロック優先度設定手段はロ
ック中資源をロック待ちしているタスクの数xの関数f
(x)によって算出された値を該タスクのロック優先度
として設定し、ロック順序変更手段がロック優先度の高
い順となるようロック待ち行列を並べ換えるのでロック
中資源をロック待ちしているタスクのロック待ち時間を
短縮できる。
ック中資源をロック待ちしているタスクの数xの関数f
(x)によって算出された値を該タスクのロック優先度
として設定し、ロック順序変更手段がロック優先度の高
い順となるようロック待ち行列を並べ換えるのでロック
中資源をロック待ちしているタスクのロック待ち時間を
短縮できる。
【0010】第2の発明でも、ロック優先度設定手段は
ロック待ちタスク数そのものをロック優先度として設定
するのでタスクのロック待ち時間が短縮され共有資源の
使用効率が向上する。
ロック待ちタスク数そのものをロック優先度として設定
するのでタスクのロック待ち時間が短縮され共有資源の
使用効率が向上する。
【0011】
【実施例】本発明の実施例について図面を参照して説明
する。
する。
【0012】図1は本発明の一実施例の共有資源排他制
御方式の構成を示すブロック図である。図を参照して第
1の発明について説明する。本実施例の共有資源排他制
御機能7は、ロック要求の処理を行うロック要求処理手
段1、アンロック要求の処理を行うアンロック要求処理
手段2、ロック優先度の高い順にロック待ち行列を並べ
換えるロック順序変更手段3と、タスクのロック優先度
を該タスクのロック中資源をロック待ちしているタスク
の数の関数で算出される値を、該タスクのロック優先度
として設定するロック優先度設定手段4と、排他制御テ
ーブル5と、ロック優先度テーブル6とから構成され
る。
御方式の構成を示すブロック図である。図を参照して第
1の発明について説明する。本実施例の共有資源排他制
御機能7は、ロック要求の処理を行うロック要求処理手
段1、アンロック要求の処理を行うアンロック要求処理
手段2、ロック優先度の高い順にロック待ち行列を並べ
換えるロック順序変更手段3と、タスクのロック優先度
を該タスクのロック中資源をロック待ちしているタスク
の数の関数で算出される値を、該タスクのロック優先度
として設定するロック優先度設定手段4と、排他制御テ
ーブル5と、ロック優先度テーブル6とから構成され
る。
【0013】図2は、本発明の排他制御テーブルロック
優先度テーブルの構成を示す図である。
優先度テーブルの構成を示す図である。
【0014】図3は、本発明のロック/アンロックタイ
ミングチャートである。
ミングチャートである。
【0015】図4は、本発明の共有資源排他制御方式の
具体的な動作例を説明するための図である。
具体的な動作例を説明するための図である。
【0016】まず、図2を参照して排他制御テーブル5
と、ロック優先度テーブル6の構成を説明する。排他制
御テーブル5はシステム内の排他制御対象資源を一意に
識別するための名前である資源名Rnをキーとする。各
資源に対するエントリは、資源名部とロックモード部と
ロック中タスクリストとロック待ち行列とからなる。ロ
ックモード部は、資源がロックされているときのロック
モード(共有モードS、排他モードEなど)を記録す
る。ロック中タスクリストは、その資源をロックしてい
るタスクのタスク識別子Tnを記録する。ロック待ち行
列は、待ち状態にあるロック要求の待ち行列であり、こ
れらの要求を出しているタスクのタスク識別子とロック
モードの組を記録する。ロック優先度テーブル6はタス
ク識別子Tnをキーとする。各タスクに対するエントリ
は、タスク識別子部と、ロック待ち資源名部と、ロック
待ちタスク数部と、ロック優先度部とからなる。ロック
待ち資源名部はそのタスクがロック待ちしている資源の
資源名Rnを記録する。ロック待ちタスク数部は、その
タスクがロックしている資源をロック待ちしているタス
クの数を記録する。ロック優先度部は、そのタスクのロ
ック優先度f(x)を記録する。
と、ロック優先度テーブル6の構成を説明する。排他制
御テーブル5はシステム内の排他制御対象資源を一意に
識別するための名前である資源名Rnをキーとする。各
資源に対するエントリは、資源名部とロックモード部と
ロック中タスクリストとロック待ち行列とからなる。ロ
ックモード部は、資源がロックされているときのロック
モード(共有モードS、排他モードEなど)を記録す
る。ロック中タスクリストは、その資源をロックしてい
るタスクのタスク識別子Tnを記録する。ロック待ち行
列は、待ち状態にあるロック要求の待ち行列であり、こ
れらの要求を出しているタスクのタスク識別子とロック
モードの組を記録する。ロック優先度テーブル6はタス
ク識別子Tnをキーとする。各タスクに対するエントリ
は、タスク識別子部と、ロック待ち資源名部と、ロック
待ちタスク数部と、ロック優先度部とからなる。ロック
待ち資源名部はそのタスクがロック待ちしている資源の
資源名Rnを記録する。ロック待ちタスク数部は、その
タスクがロックしている資源をロック待ちしているタス
クの数を記録する。ロック優先度部は、そのタスクのロ
ック優先度f(x)を記録する。
【0017】以下に、各処理部の動作について説明す
る。ロック要求処理手段1は、ロック要求の処理を行
い、 (1)該要求のロック対象資源に対応する排他制御テー
ブル5のエントリのロックモード部(以下特に断らない
限り、単にロックモード部、ロック中タスクリスト、ロ
ック待ち行列と呼んだ場合、ロック要求またはアンロッ
ク要求の対象資源に対応する排他制御テーブル5のエン
トリを考える)が空の場合、またはロックモード部と該
要求のロックモードがともに共有モードの場合は、ロッ
クモード部に該要求のロックモードを記録し、ロック中
タスクリストに該要求を出したタスクのタスク識別子T
nを追加する。次に、該要求を出したタスクに対応する
ロック優先度テーブル6のエントリのロック待ちタスク
数部(以下特に断らない限り、単にロック待ち資源名
部、ロック待ちタスク数部、ロック優先度部と呼んだ場
合、ロック要求またはアンロック要求を出したタスクに
対応するロック優先度テーブル6のエントリを考える)
にロック待ち行列内の要求の数を加えた後、該タスクの
タスク識別子Tnをパラメータとしてロック優先度設定
手段4を呼び出す。 (2)ロックモード部が空でなくかつ該要求のロックモ
ードが排他モードEの場合、またはロックモード部が排
他モードの場合は、該ロック要求を出したタスクのタス
ク識別子とロックモードの組(Tn,E)をロック待ち
行列の最後に追加し、ロック待ち資源名部に該要求の対
象資源の資源名Rnを記録し、該資源名をパラメータと
してロック順序変更手段3を呼び出す。次に、ロック中
タスクリストに記録されている各タスクに対し、(a)
そのタスクに対応するロック優先度テーブル6のエント
リのロック待ちタスク数部に1を加算し、(b)そのタ
スクのタスク識別子Tnをパラメータとしてロック優先
度設定手段4を呼び出し、(c)そのタスクに対応する
ロック優先度テーブル6のエントリのロック待ち資源名
部が空でない場合は、該ロック待ち資源名部の資源名R
nをパラメータとして、ロック順序変更手段3を呼び出
す。
る。ロック要求処理手段1は、ロック要求の処理を行
い、 (1)該要求のロック対象資源に対応する排他制御テー
ブル5のエントリのロックモード部(以下特に断らない
限り、単にロックモード部、ロック中タスクリスト、ロ
ック待ち行列と呼んだ場合、ロック要求またはアンロッ
ク要求の対象資源に対応する排他制御テーブル5のエン
トリを考える)が空の場合、またはロックモード部と該
要求のロックモードがともに共有モードの場合は、ロッ
クモード部に該要求のロックモードを記録し、ロック中
タスクリストに該要求を出したタスクのタスク識別子T
nを追加する。次に、該要求を出したタスクに対応する
ロック優先度テーブル6のエントリのロック待ちタスク
数部(以下特に断らない限り、単にロック待ち資源名
部、ロック待ちタスク数部、ロック優先度部と呼んだ場
合、ロック要求またはアンロック要求を出したタスクに
対応するロック優先度テーブル6のエントリを考える)
にロック待ち行列内の要求の数を加えた後、該タスクの
タスク識別子Tnをパラメータとしてロック優先度設定
手段4を呼び出す。 (2)ロックモード部が空でなくかつ該要求のロックモ
ードが排他モードEの場合、またはロックモード部が排
他モードの場合は、該ロック要求を出したタスクのタス
ク識別子とロックモードの組(Tn,E)をロック待ち
行列の最後に追加し、ロック待ち資源名部に該要求の対
象資源の資源名Rnを記録し、該資源名をパラメータと
してロック順序変更手段3を呼び出す。次に、ロック中
タスクリストに記録されている各タスクに対し、(a)
そのタスクに対応するロック優先度テーブル6のエント
リのロック待ちタスク数部に1を加算し、(b)そのタ
スクのタスク識別子Tnをパラメータとしてロック優先
度設定手段4を呼び出し、(c)そのタスクに対応する
ロック優先度テーブル6のエントリのロック待ち資源名
部が空でない場合は、該ロック待ち資源名部の資源名R
nをパラメータとして、ロック順序変更手段3を呼び出
す。
【0018】最後に、該要求を出したタスクの処理を中
断させる。
断させる。
【0019】アンロック要求処理手段2は、アンロック
要求の処理を行い、該要求を出したタスクのタスク識別
子Tnをロック中タスクリストから削除し、ロック待ち
タスク数部からロック待ち行列内の要求を出したタスク
の数を減じた後、該タスクのタスク識別子Tnをパラメ
ータとしてロック優先度設定手段4を呼び出す。次に、
ロック中タスクリストが空となっている場合は、ロック
モード部を消去し、さらに、ロック待ちタスクがある場
合は、 (1)次のロック待ちタスクが排他モードEでロック要
求している場合は、ロックモード部に排他モードEを、
ロック中タスクリストに該タスクのタスク識別子Tnを
それぞれ記録し、該タスクのロック要求をロック待ち行
列から削除する。 (2)次のロック待ちタスクが共有モードSでロック要
求している場合は、ロックモード部に共有モードSを記
録し、ロック待ち行列内の共有モードロック要求を出し
たすべてのタスクのタスク識別子Tnを、ロック中タス
クリストに記録し、ロック待ち行列内のすべての共有モ
ードロック要求を削除する。
要求の処理を行い、該要求を出したタスクのタスク識別
子Tnをロック中タスクリストから削除し、ロック待ち
タスク数部からロック待ち行列内の要求を出したタスク
の数を減じた後、該タスクのタスク識別子Tnをパラメ
ータとしてロック優先度設定手段4を呼び出す。次に、
ロック中タスクリストが空となっている場合は、ロック
モード部を消去し、さらに、ロック待ちタスクがある場
合は、 (1)次のロック待ちタスクが排他モードEでロック要
求している場合は、ロックモード部に排他モードEを、
ロック中タスクリストに該タスクのタスク識別子Tnを
それぞれ記録し、該タスクのロック要求をロック待ち行
列から削除する。 (2)次のロック待ちタスクが共有モードSでロック要
求している場合は、ロックモード部に共有モードSを記
録し、ロック待ち行列内の共有モードロック要求を出し
たすべてのタスクのタスク識別子Tnを、ロック中タス
クリストに記録し、ロック待ち行列内のすべての共有モ
ードロック要求を削除する。
【0020】続いて、前記(1)または(2)でロック
中タスクリストに記録したすべてのタスク識別子Tnに
ついて、対応するロック優先度テーブル6のエントリの
ロック待ち資源名部に空を記録し、該エントリのロック
待ちタスク数部にロック待ち行列内の要求の数を加算
し、該エントリのタスク識別子Tnをパラメータとして
ロック優先度設定手段4を呼び出し、該タスク識別子T
nに対応するタスクの処理を再開させる。
中タスクリストに記録したすべてのタスク識別子Tnに
ついて、対応するロック優先度テーブル6のエントリの
ロック待ち資源名部に空を記録し、該エントリのロック
待ちタスク数部にロック待ち行列内の要求の数を加算
し、該エントリのタスク識別子Tnをパラメータとして
ロック優先度設定手段4を呼び出し、該タスク識別子T
nに対応するタスクの処理を再開させる。
【0021】ロック順序変更手段3は、パラメータで指
定された資源名に対応する排他制御テーブル5のエント
リに関し、該エントリのロック待ち行列を、ロック優先
度テーブル6を参照して、各要求を出したタスクのロッ
ク優先度の高い順に並べ換える。この時、ロック優先度
の等しいタスクのロック要求は先着順に並べる。
定された資源名に対応する排他制御テーブル5のエント
リに関し、該エントリのロック待ち行列を、ロック優先
度テーブル6を参照して、各要求を出したタスクのロッ
ク優先度の高い順に並べ換える。この時、ロック優先度
の等しいタスクのロック要求は先着順に並べる。
【0022】ロック優先度設定手段4は、パラメータで
指定されたタスク識別子Tnに対応するロック優先度テ
ーブル6のエントリに関し、ロック待ちタスク数部を参
照してロック優先度を算出し、この値を該エントリのロ
ック優先度部に記録する。ロック優先度f(x)の算出
は、ロック待ちタスク数xの関数f(x),(a>bな
らばf(a)≧f(b)が成立し、かつc>dの時f
(c)>f(d)となるc,dが存在する関数)を用い
る。
指定されたタスク識別子Tnに対応するロック優先度テ
ーブル6のエントリに関し、ロック待ちタスク数部を参
照してロック優先度を算出し、この値を該エントリのロ
ック優先度部に記録する。ロック優先度f(x)の算出
は、ロック待ちタスク数xの関数f(x),(a>bな
らばf(a)≧f(b)が成立し、かつc>dの時f
(c)>f(d)となるc,dが存在する関数)を用い
る。
【0023】次に本実施例の具体的動作について、図
3、および図4を参照して詳細に説明する。図3は、4
つのタスクT1〜T4が2つ資源R1,R2に対して順
次ロック要求、およびアンロック要求を行う状況を示す
タイミングチャートである。図4は、図3の各タイミン
グ中ta〜td時点での排他制御テーブル5、およびロ
ック優先度テーブル6の状態を示している。尚、時刻t
より前では、資源R1,R2はロックされていないもの
とする。また、f(0)<f(1)<f(2)が成立す
るようなf(x)が用いられ、ロック優先度テーブル6
のロック待ち資源名部、ロック待ちタスク数部、ロック
優先度部がそれぞれ空、0およびf(0)に初期化され
ているものとする。
3、および図4を参照して詳細に説明する。図3は、4
つのタスクT1〜T4が2つ資源R1,R2に対して順
次ロック要求、およびアンロック要求を行う状況を示す
タイミングチャートである。図4は、図3の各タイミン
グ中ta〜td時点での排他制御テーブル5、およびロ
ック優先度テーブル6の状態を示している。尚、時刻t
より前では、資源R1,R2はロックされていないもの
とする。また、f(0)<f(1)<f(2)が成立す
るようなf(x)が用いられ、ロック優先度テーブル6
のロック待ち資源名部、ロック待ちタスク数部、ロック
優先度部がそれぞれ空、0およびf(0)に初期化され
ているものとする。
【0024】時刻tでタスクT1が資源R1を排他モー
ドEでロック要求すると、ロック要求処理手段1が呼び
出され、資源R1はロックされていないので、該タスク
にロック権が付与され、ロックモード部に排他モードE
が、ロック中タスクリストにタスク識別子T1がそれぞ
れ記録される。次に、ロック待ち行列内の要求の数は0
なので、ロック待ちタスク数は0となり、該タスクのタ
スク識別子T1をパラメータとしてロック優先度設定手
段4が呼び出され、該タスクのロック優先度部にf
(0)が設定される。
ドEでロック要求すると、ロック要求処理手段1が呼び
出され、資源R1はロックされていないので、該タスク
にロック権が付与され、ロックモード部に排他モードE
が、ロック中タスクリストにタスク識別子T1がそれぞ
れ記録される。次に、ロック待ち行列内の要求の数は0
なので、ロック待ちタスク数は0となり、該タスクのタ
スク識別子T1をパラメータとしてロック優先度設定手
段4が呼び出され、該タスクのロック優先度部にf
(0)が設定される。
【0025】時刻t+1でタスクT2が資源R1を排他
モードEでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードEでロックされ
ているので、該タスクはロック待ちとなり、タスク識別
子T2と排他モードの組(T2 ,E)がロック待ち行列
に記録される。次に、ロック待ち資源名部に資源名R1
が記録され、該資源の資源名R1をパラメータとしてロ
ック順序変更手段3が呼び出されて、ロック待ち行列の
並べ換えを行う。続いて、該資源をロックしているタス
クであるT1に対応するロック優先度テーブル6のエン
トリのロック待ちタスク数に1を加算し、該タスクのタ
スク識別子T1をパラメータとしてロック優先度設定手
段4が呼び出されて該エントリのロック優先度部にf
(1)が設定される。続いて、該エントリのロック待ち
資源名部は空なので、ロック順序変更手段3の呼び出し
は行われずに、該タスクの処理が中断される。
モードEでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードEでロックされ
ているので、該タスクはロック待ちとなり、タスク識別
子T2と排他モードの組(T2 ,E)がロック待ち行列
に記録される。次に、ロック待ち資源名部に資源名R1
が記録され、該資源の資源名R1をパラメータとしてロ
ック順序変更手段3が呼び出されて、ロック待ち行列の
並べ換えを行う。続いて、該資源をロックしているタス
クであるT1に対応するロック優先度テーブル6のエン
トリのロック待ちタスク数に1を加算し、該タスクのタ
スク識別子T1をパラメータとしてロック優先度設定手
段4が呼び出されて該エントリのロック優先度部にf
(1)が設定される。続いて、該エントリのロック待ち
資源名部は空なので、ロック順序変更手段3の呼び出し
は行われずに、該タスクの処理が中断される。
【0026】時刻t+2でタスクT3が資源R2を共有
モードSで、時刻t+3でタスクT4が資源R2を排他
モードEでそれぞれロック要求すると、タスクT1およ
びタスクT2の場合と同様に処理が行われ、タスクT3
にロック権が付与され、タスクT4はロック待ちとな
る。この結果、時刻taでの排他制御テーブル5、およ
びロック優先度テーブル6は図4(a)の状態となる。
モードSで、時刻t+3でタスクT4が資源R2を排他
モードEでそれぞれロック要求すると、タスクT1およ
びタスクT2の場合と同様に処理が行われ、タスクT3
にロック権が付与され、タスクT4はロック待ちとな
る。この結果、時刻taでの排他制御テーブル5、およ
びロック優先度テーブル6は図4(a)の状態となる。
【0027】時刻t+4でタスクT3が資源R1を共有
モードSでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードでロックされて
いるので、該タスクのタスク識別子T3および共有モー
ドの組(T3,S)がロック待ち行列の最後に追加され
る。次に、ロック順序変更手段3が呼び出され、タスク
T2とタスクT3のロック優先度はそれぞれf(0),
f(1)であり、f(0)<f(1)よりタスクT3の
ロック要求、タスクT2のロック要求の順にロック待ち
行列が並べ換えられる。すなわち、先にロック要求した
タスクT2をタスクT3が追越し、タスクT3へのロッ
ク権付与が優先される。続いて、該資源をロックしてい
るタスクT1に対応するロック優先度テーブル6のエン
トリのロック待ちタスク数部に1が加算され、該タスク
のタスク識別子T1をパラメータとしてロック優先度設
定手段4が呼び出されて該エントリのロック優先度部に
f(2)が設定され、タスクT3の処理が中断される。
この結果、時刻tbでの排他制御テーブル5、およびロ
ック優先度テーブル6は図4(b)の状態となる。
モードSでロック要求すると、ロック要求処理手段1が
呼び出され、資源R1は既に排他モードでロックされて
いるので、該タスクのタスク識別子T3および共有モー
ドの組(T3,S)がロック待ち行列の最後に追加され
る。次に、ロック順序変更手段3が呼び出され、タスク
T2とタスクT3のロック優先度はそれぞれf(0),
f(1)であり、f(0)<f(1)よりタスクT3の
ロック要求、タスクT2のロック要求の順にロック待ち
行列が並べ換えられる。すなわち、先にロック要求した
タスクT2をタスクT3が追越し、タスクT3へのロッ
ク権付与が優先される。続いて、該資源をロックしてい
るタスクT1に対応するロック優先度テーブル6のエン
トリのロック待ちタスク数部に1が加算され、該タスク
のタスク識別子T1をパラメータとしてロック優先度設
定手段4が呼び出されて該エントリのロック優先度部に
f(2)が設定され、タスクT3の処理が中断される。
この結果、時刻tbでの排他制御テーブル5、およびロ
ック優先度テーブル6は図4(b)の状態となる。
【0028】時刻t+5でタスクT1が資源R1をアン
ロック要求(U)すると、アンロック処理手段2が呼び
出され、ロック中タスクリストからタスク識別子T1が
削除される。次にロック待ちタスク数部からロック待ち
行列内の要求の数2が減じられ、タスク識別子T1をパ
ラメータとしてロック優先度設定手段4が呼び出され
て、該タスクのロック優先度部にf(0)が設定され
る。この結果、ロック中タスクリストが空となるので、
ロックモード部が消去される。さらに、ロック待ち行列
は空ではないので、最初のロック要求タスクT3にロッ
ク権が付与され、ロックモード部に共有モードが、ロッ
ク中タスクリストにタスク識別子T3がそれぞれ記録さ
れる。次に該タスクT3に対応するロック優先度テーブ
ル6のロック待ち資源名部を空とし、ロック待ちタスク
数部にロック待ち行列内の要求の数1を加え、タスク識
別子T3をパラメータとしてロック優先度設定手段4が
呼び出され、該タスクのロック優先度部にf(2)が設
定された後、タスクT3の処理が再開される。この結
果、時刻tcでの排他制御テーブル5、およびロック優
先度テーブル6は図4(c)の状態となる。
ロック要求(U)すると、アンロック処理手段2が呼び
出され、ロック中タスクリストからタスク識別子T1が
削除される。次にロック待ちタスク数部からロック待ち
行列内の要求の数2が減じられ、タスク識別子T1をパ
ラメータとしてロック優先度設定手段4が呼び出され
て、該タスクのロック優先度部にf(0)が設定され
る。この結果、ロック中タスクリストが空となるので、
ロックモード部が消去される。さらに、ロック待ち行列
は空ではないので、最初のロック要求タスクT3にロッ
ク権が付与され、ロックモード部に共有モードが、ロッ
ク中タスクリストにタスク識別子T3がそれぞれ記録さ
れる。次に該タスクT3に対応するロック優先度テーブ
ル6のロック待ち資源名部を空とし、ロック待ちタスク
数部にロック待ち行列内の要求の数1を加え、タスク識
別子T3をパラメータとしてロック優先度設定手段4が
呼び出され、該タスクのロック優先度部にf(2)が設
定された後、タスクT3の処理が再開される。この結
果、時刻tcでの排他制御テーブル5、およびロック優
先度テーブル6は図4(c)の状態となる。
【0029】時刻t+6でタスクT3が資源R1、およ
びR2を続けてアンロック要求すると、タスクT1によ
るアンロック要求と同様に処理が行われ、資源R1にお
いてはタスクT2に、資源R2においてはタスクT4に
それぞれロック権が付与される。この結果、時刻tdで
の排他制御テーブル5、およびロック優先度テーブル6
は図4(d)の状態となる。
びR2を続けてアンロック要求すると、タスクT1によ
るアンロック要求と同様に処理が行われ、資源R1にお
いてはタスクT2に、資源R2においてはタスクT4に
それぞれロック権が付与される。この結果、時刻tdで
の排他制御テーブル5、およびロック優先度テーブル6
は図4(d)の状態となる。
【0030】ここでは、f(0)<f(1)<f(2)
であると仮定したが、f(a)=f(b)(a<b)の
ような場合では、ロック順序変更手段3でのロック待ち
行列並べ換え時、ロック待ちタスク数bのタスクが、ロ
ック待ちタスク数aのタスクに優先されず、先着順に並
べられる点が異なる以外は同様に処理される。
であると仮定したが、f(a)=f(b)(a<b)の
ような場合では、ロック順序変更手段3でのロック待ち
行列並べ換え時、ロック待ちタスク数bのタスクが、ロ
ック待ちタスク数aのタスクに優先されず、先着順に並
べられる点が異なる以外は同様に処理される。
【0031】次に第2の発明について説明する。この場
合はロック優先度設定手段4における優先度の算出方法
がロック待ちタスク数そのものを優先度するものであ
り、f(0)<f(1)<…<f(n)<f(n+1)
<…となるので、タスクTaとタスクTbについて、ロ
ック待ちタスク数をそれぞれa,bとした時、a>bな
らば、常にタスクTaのロック要求が、タスクTbのロ
ック要求に優先される。その他、符号および処理動作は
前実施例と同じである。
合はロック優先度設定手段4における優先度の算出方法
がロック待ちタスク数そのものを優先度するものであ
り、f(0)<f(1)<…<f(n)<f(n+1)
<…となるので、タスクTaとタスクTbについて、ロ
ック待ちタスク数をそれぞれa,bとした時、a>bな
らば、常にタスクTaのロック要求が、タスクTbのロ
ック要求に優先される。その他、符号および処理動作は
前実施例と同じである。
【0032】
【発明の効果】以上説明したように本発明は、ロックし
ている資源のロック待ちタスクの数の増加にともなって
増加するようなロック優先度を設け、ロック優先度の高
いタスクに対し、ロック優先度の低いタスクに優先して
ロック権が付与されるように制御することによって、他
のタスクを待たせているタスクが新たな資源をロック要
求してロック待ちとなった場合にロック待ち時間を減少
させることができ、該タスクがロックしている資源に対
しロック待ちしている他のタスクのロック待ち時間を減
少させるとともに、共有資源の使用効率を向上させる効
果がある。
ている資源のロック待ちタスクの数の増加にともなって
増加するようなロック優先度を設け、ロック優先度の高
いタスクに対し、ロック優先度の低いタスクに優先して
ロック権が付与されるように制御することによって、他
のタスクを待たせているタスクが新たな資源をロック要
求してロック待ちとなった場合にロック待ち時間を減少
させることができ、該タスクがロックしている資源に対
しロック待ちしている他のタスクのロック待ち時間を減
少させるとともに、共有資源の使用効率を向上させる効
果がある。
【図1】本発明の一実施例の共有資源排他制御方式の構
成を示すブロック図である。
成を示すブロック図である。
【図2】本発明の排他制御テーブルとロック優先度テー
ブルの構成を示す図である。
ブルの構成を示す図である。
【図3】本発明の実施例でのロック/アンロックタイミ
ングチャートである。
ングチャートである。
【図4】本発明の実施例の具体的動作の説明図である。
図4−aは時刻ta時における共有資源排他制御方式の
具体的な動作例を説明するための図である。図4−bは
時刻tb時における共有資源排他制御方式の具体的な動
作例を説明するための図である。図4−cは時刻tc時
における共有資源排他制御方式の具体的な動作例を説明
するための図である。図4−dは時刻td時における共
有資源排他制御方式の具体的な動作例を説明するための
図である。
図4−aは時刻ta時における共有資源排他制御方式の
具体的な動作例を説明するための図である。図4−bは
時刻tb時における共有資源排他制御方式の具体的な動
作例を説明するための図である。図4−cは時刻tc時
における共有資源排他制御方式の具体的な動作例を説明
するための図である。図4−dは時刻td時における共
有資源排他制御方式の具体的な動作例を説明するための
図である。
1 ロック要求処理手段
2 アンロック要求処理手段
3 ロック順序変更手段
4 ロック優先度設定手段
5 排他制御テーブル
6 ロック優先度テーブル
7 共有資源排他制御機能
T1〜Tn タスク
Claims (2)
- 【請求項1】 計算機システムの共有資源排他制御方式
において、タスクのロック中資源をロック待ちしている
タスクの数xの関数f(x),(a>bならばf(a)
≧f(b)が成立し、かつc>dの時f(c)>f
(d)となるc,dが存在する関数)によって算出され
た値を、該タスクのロック優先度として設定するロック
優先度設定手段と ロック待ちタスクへのロック権付与順序がロック優先度
の高い順となるようロック待ち行列を並べ換えるロック
順序変更手段とを有することを特徴とする共有資源排他
制御方式。 - 【請求項2】 計算機システムの共有資源排他制御方式
において、タスクのロック中資源をロック待ちしている
タスクの数を該タスクのロック優先度として設定するロ
ック優先度設定手段と、 ロック待ちタスクへのロック権付与順序がロック優先度
の高い順となるようロック待ち行列を並べ換えるロック
順序変更手段とを有することを特徴とする共有資源排他
制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18822891A JPH0512041A (ja) | 1991-07-03 | 1991-07-03 | 共有資源排他制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18822891A JPH0512041A (ja) | 1991-07-03 | 1991-07-03 | 共有資源排他制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0512041A true JPH0512041A (ja) | 1993-01-22 |
Family
ID=16220027
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18822891A Pending JPH0512041A (ja) | 1991-07-03 | 1991-07-03 | 共有資源排他制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0512041A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102012221037A1 (de) | 2011-12-02 | 2013-06-06 | International Business Machines Corporation | Einheit und Verfahren zum Realisieren einer Ressourcensperre |
-
1991
- 1991-07-03 JP JP18822891A patent/JPH0512041A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102012221037A1 (de) | 2011-12-02 | 2013-06-06 | International Business Machines Corporation | Einheit und Verfahren zum Realisieren einer Ressourcensperre |
| US8898127B2 (en) | 2011-12-02 | 2014-11-25 | International Business Machines Corporation | Device and method for acquiring resource lock |
| US9189512B2 (en) | 2011-12-02 | 2015-11-17 | International Business Machines Corporation | Device and method for acquiring resource lock |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5325526A (en) | Task scheduling in a multicomputer system | |
| US5956712A (en) | Byte range locking in a distributed environment | |
| US5251317A (en) | Computer system with an access control unit for resource | |
| US5454108A (en) | Distributed lock manager using a passive, state-full control-server | |
| US7810098B2 (en) | Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy | |
| US6189007B1 (en) | Method and apparatus for conducting a high performance locking facility in a loosely coupled environment | |
| JPH05233423A (ja) | データ処理システム用のセマフォ機構 | |
| JPH05197578A (ja) | ユーザ要求の延期実行制御方法及び装置 | |
| US6253274B1 (en) | Apparatus for a high performance locking facility | |
| US7209990B2 (en) | Maintain fairness of resource allocation in a multi-node environment | |
| JP2518134B2 (ja) | 共有資源排他制御方式 | |
| JPH0877025A (ja) | タスクの優先度制御方法、タスクの優先度制御装置 | |
| JPH0512041A (ja) | 共有資源排他制御方式 | |
| JP3068556B2 (ja) | 共有資源排他制御方式およびそのプログラム記録媒体 | |
| JPH04262425A (ja) | 共有資源排他制御方式 | |
| JPH05120040A (ja) | コンピユータシステム | |
| JPH0383142A (ja) | 共有資源排他制御方式 | |
| Haritsa et al. | Real-time index concurrency control | |
| US20040255086A1 (en) | Reader/writer locking protocol | |
| JPH02194442A (ja) | 共有資源制御装置 | |
| JPH04223533A (ja) | 共有資源排他制御システム | |
| JPH0478932A (ja) | 共有資源排他制御方式 | |
| JPS63170746A (ja) | 資源管理処理方式 | |
| JPH04116731A (ja) | 共有資源排他制御方式 | |
| US20130042247A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses |