JPH03257568A - 共有資源排他制御方式 - Google Patents

共有資源排他制御方式

Info

Publication number
JPH03257568A
JPH03257568A JP5700490A JP5700490A JPH03257568A JP H03257568 A JPH03257568 A JP H03257568A JP 5700490 A JP5700490 A JP 5700490A JP 5700490 A JP5700490 A JP 5700490A JP H03257568 A JPH03257568 A JP H03257568A
Authority
JP
Japan
Prior art keywords
lock
task
mode
shared
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
Application number
JP5700490A
Other languages
English (en)
Inventor
Yoshihisa Suzuki
鈴木 善尚
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP5700490A priority Critical patent/JPH03257568A/ja
Publication of JPH03257568A publication Critical patent/JPH03257568A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、計算機システムの共有資源の排他制御方式に
関する。
〔従来の技術〕
計算機システムにおいて複数のタスクに使用される共有
資源については、それへのアクセスを逐次化するために
排他制御が必要である。このような排他制御のために、
計算機システムには、ロック/アンロック(あるいはE
NQ/DEQ)と呼ばれる基本機能が備えられており、
ロック要求には通常、排他モードと共有モードの2種類
がある。
従来のこの種の共有資源排他制御の基本的動作は次のよ
うなものである。
あるタスクがロック要求を出した場合、ロック要求対象
資源が他のタスクによりロックされていないならば、す
ぐにロック権が与えられる。しかし、他のタスクにより
すでにロックされている場合、その資源のロックモード
、または該タスクのロック要求のモードが排他モードの
時はロック待ちとなる。また、その資源のロックモード
と該タスクのロック要求のモードがともに共有モードの
時は、 (1)ロック待ちタスクがない場合は、該タスクにロッ
ク権を与え、ロック待ちタスク(必然的に排他モードで
ある)がある場合は、該タスクをロック待ちとする。
(2)該タスクにロック権を与える。
のいずれかの方式がとられる。
また、資源をロックしていたタスクがアンロック要求を
出した場合は該タスクのロック権の行使が終了する。こ
のとき、他にロックしているタスクがなく、かつロック
待ちタスクがある場合には、それらの内、最も早くロッ
ク要求したタスクの要求モードが排他モードならばこの
タスクのみにロック権を与え、共有モードならば前記(
1)。
(2)に対応して、 (1)現在排他モードでロック待ちしているどのタスク
よりも早く共有モードでロック待ちしているタスクすべ
てにロック権を与える。
(2)現在共有モードでロック待ちしているタスクすべ
てにロック権を与える。
のいずれかの方式がとられる。
〔発明が解決しようとする課題〕
上述(1)の方式を採用した従来の共有資源排他制御方
式では、いかなる場合も共有モードのロック要求を出し
たタスクが排他モードのロック要求を出したタスクを追
い越してロックできないため、現在のロックが解け、次
のロック待ちタスクにロック権を与える際、該タスクの
ロックモードが共有モードであっても、排他モードのロ
ック待ちタスクがあると、それ以後に共有モードでロッ
ク待ちになったタスクにはロック権が与えられず、資源
を効率良く使用できない。
また、上述(2)の方式を採用した従来の共有資源排他
制御方式では、共有モードのロック要求が排他モードの
ロック要求よりも頻繁に行われると、いつまでも排他モ
ードでロック要求したタスクにロック権が与えられない
状況(永久封鎖)が発生する。
〔課題を解決するための手段〕
本発明の共有資源排他制御方式は、計算機システムの共
有資源排他制御方式において、資源毎に最大追越しタス
ク数Ni(i=1〜資源数)を設定し、 資源Rに対する共有モードのロック要求に対し、該資源
Rがロックされていない場合、または現在共有モードで
ロックされており、該共有モードが開始されてから、排
他モードのラック待ちタスクを追い越してロック権が与
えられた共有モードロック要求タスクの数が該資源Rの
最大追越しタスク数NR未満の場合にロック権を与え、
その他の場合にはロック待ちとする共有要求処理手段と
、 アンロック要求に対し、次にロック権を与えるべきロッ
ク待ちタスクが共有モードで要求している場合、現在共
有モードでロック待ちしているタスクすべてにロック権
を与える共有待ちロック手段とを有することを特徴とす
る。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本実施例の構成を示ナブロック図である。
本実施例の共有資源排他制御機能9はロック要求処理部
6とアンロック要求処理部7と排他制御テーブル8とか
らなる。ロック要求処理部6は共有モードのロック要求
を処理する共有要求処理手段1と排他モードのロック要
求を処理する排他要束処理手段2とからなる。また、ア
ンロック要求処理部7はアンロック要求したタスクのロ
ック解除を行うロック解除手段3と次のロック待ちタス
クの要求モードが共有モードの場合のロック処理を行う
共有待ちロック手段4と次のロック待ちタスクの要求モ
ードが排他モードの場合のロック処理を行う排他待ちロ
ック手段5とからなる。
本実施例における排他制御動作の説明の前に、第2図を
参照して排他制御テーブル8の構成を説明する。
機能制御テーブル8は、システム内の排他制御対象資源
を一意に識別するための名前である資源名をキーとする
。各資源に対するエントリは、資源名部とロックモード
部と追越しタスク数とロック中タスクリストとロック待
ちタスクキューとからなる。
ロックモード部は、資源がロックされているときのロッ
クモードを記憶する。最大追越しタスク数は資源が共有
モードでロックされている場合、該共有モードロツタ中
に排他モードのロック待ちタスクを追越してロック権を
与えることのできるタスクの数を記録する。追越しタス
ク数は、現在、資源が共有モードでロックされている場
合、該共有モードロック中に排他モードのロック待ちタ
スクを追い越してロック権を与えたタスクの数を記録す
る。ロック中タスクリストは、その資源をロックしてい
るタスクのタスク識別子を記録する。ロック待ちタスク
キューは、待ち状態にあるロック要求の待ち行列であり
、これらの要求を出しているタスクのタスク識別子とロ
ックモードを要求順に記録する。
以下に、各処理部の動作について説明する。先に、本発
明の特徴である共有要求処理手段1と共有待ちロック手
段4について説明する。
共有要求処理手段1は、共有モードのロック要求の処理
を行う。その動作の詳細を以下に示す。
(1)ロックモード部が空の場合、該要求のロックモー
ドをロックモード部に記憶し、該要求を出したタスクの
タスク識別子をロック中タスクリストに追加する。次に
、追越しタスク数にOを記録する。
(2)ロックモード部に共有モードが記録されており、
かつ追越しタスク数がロック要求された資源Rの最大追
越しタスク数NR未滴の場合、該要求のロックモードを
ロックモード部に記録し、該要求を出したタスクのタス
ク識別子をロック中タスクリストに追加する。次に、排
他モードで要求しているロック待ちタスクがある場合、
追越しタスク数にlを加える。
(3)ロックモード部に排他モードが記録されている場
合か、追越しタスク数がロック要求された資源Rの最大
追越しタスク数NHに達している場合、該要求を出した
タスクのタスク識別子と該要求のロックモードの組をロ
ック待ちタスクキューの最後に追加し、該要求を出した
タスクの処理を中断させる。
上記(2) 、 (3)により、資源Rが共有モードで
ロックされており、かつ排他モードでロック待ちしてい
るタスクがいる場合、新たな共有モードのロック要求タ
スクに対し、排他モードのロック待ちタスクを追越して
ロック権が与えられるのはNR回に制限されることにな
り、永久封鎖は発生しない。
共有待ちロック手段4は、アンロック要求処理において
、次のロック待ちタスクが共有モードで要求している場
合のロック処理を行う。その動作の詳細を以下に示す。
(1)ロックモード部に共有モードを記録し、ロック待
ちタスクキューにあるすべての共有モードロック要求の
タスク識別子をロック中タスクリストに記録する。次に
、該記録が行われたロック要求をロック待ちタスクキュ
ーから削除し、これらのタスクの実行を再開させる。次
に、追越しタスク数にOを記録する。
排他要求処理手段2は、排他モードのロック要求の処理
を行う。その動作の詳細を以下に示す。
(1)ロックモード部が空の場合、該要求のロックモー
ドをロックモード部に記録し、該要求を出したタスクの
タスク識別子をロック中タスクリストに記録する。
(2)ロックモード部が空いてない場合、該要求を出し
たタスクのタスク識別子と該要求のロックモードの組を
ロック待ちタスクキューの最後に追加し、該要求を出し
たタスクの処理を中断させる。
ロック解除手段3は、アンロック要求された場合のロッ
ク解除処理を行い、ロック待ちタスクがある場合には、
次のロック待ちタスクのロック処理を行うため前記共有
待ちロック手段4、または排他待ちロック手段5を呼び
出す。その動作の詳細を以下に説明する。
(1)該タスクのタスク識別子をロック中タスクリスト
から削除し、ロック中タスクリストが空になったならば
、ロックモード部の内容を消去し、追越しタスク数に0
を記録する。
(2)続いて、ロック中タスクリストが空の場合、ロッ
ク待ちタスクキューの先頭のロック要求が共有モードな
ら前記共有待ちロック手段4を、排他モードなら排他待
ちロック手段5を呼び出す。
排他待ちロック手段5は、前記ロック解除手段3から呼
び出され、排他モードのロック待ちタスクのロック処理
を行う。その動作の詳細を以下に示す。
(1)ロック待ちタスクキューの先頭にある要求のロッ
クモードをロックモード部に、タスク識別子をロック中
タスクリストにそれぞれ記録し、該タスクの処理を再開
させる。
次に、本実施例の具体的動作について、第3図を参照し
て詳細に説明する。本実施例では、資源Rの最大追越し
タスク数NRは2であると仮定する。第3図(a)〜(
f)は、いずれもある時点での排他制御テーブル8の状
態を示している。
第3図(a)では資源RをタスクT1が共有モードでロ
ックし、タスクT2が排他モードでロック待ちしている
。この時、新たなタスクT3、T4がこの順序で共有モ
ードのロック要求をすると、共有要求処理手段1が呼び
出され、タスクT3に対しては、この時点での追越しタ
スク数が最大追越しタスク数2よりも小さいので、ロッ
ク権が与えられ、排他モードのロック待ちタスクT2が
あるので、追越しタスク数に1が加えられる。
次のタスクT4に対しても同様に処理され、追越しタス
ク数は2となる。この結果、排他制御テーブル8は、第
3図(b)の状態となる。
次にタスクT5が共有モードでロック要求すると、共有
処理手段1が呼び出され、追越しタスク数がすでに最大
追越しタスク数2に達しているので、ロック待ちタスク
キューにタスク識別子、およびロックモードの組が記録
され、該タスクの処理が中断される。この結果、排他制
御テーブル8は第3図(c)の状態となる。
次にタスクT1、T3、T4がこの順にアンロック要求
すると、各要求ごとにロック解除手段3が呼び出され、
タスクTl、T3に対しては、ロック中タスクリストか
ら該タスクのタスク識別子が削除され、タスクT4に対
しては、ロック中タスクリストから該タスクのタスク識
別子の削除後、ロック中タスクリストが空となるので、
追越しタスク数にOが記録され、ロック待ちタスクキュ
ーが調べられる。ロック待ちタスクキューの先頭には排
他モードのロック要求があるので、排他待ちロック手段
5が呼び出され、該要求のタスク識別子T2がロック中
タスクリストに、排他モードがロックモード部にそれぞ
れ記録される。次に該ロック要求がロック待ちタスクキ
ューから削除され、タスクT2の処理を再開することに
よってロック権が与えられる。この結果、排他制御テー
ブル8は第3図(d)の状態となる。
次にタスクT6が排他モードで、タスクT7が共有モー
ドでこの順にロック要求すると、タスクT6に対しては
排他要求処理手段2が、タスクT7に対しては共有要求
処理手段1が呼び出され、すでに排他モードがロックモ
ード部に記録されているので、それぞれのタスクのタス
ク識別子とロックモードの組がロック待ちタスクキュー
に記録され、処理が中断される。この結果、排他制御テ
ーブル8は第3図(e)の状態となる。
次にタスクT2がアンロック要求すると、ロック解除手
段3が呼び出され、タスクT2のタスク識別子がロック
中タスクリストから削除される。
ロック中タスクリストが空となるので、ロック待ちタス
クキューが調べられる。先頭に共有モードのロック要求
があるので、共有待ちロック手段4が呼び出され、ロッ
クモード部に共有モードを記録し、ロック待ちタスクキ
ューにあるすべての共有モードロック要求のタスク識別
子をロック中タスクリストに記録する。次に該記録が行
われた要求をロック待ちタスクキューからすべて削除し
、該要求を出したタスクの処理を再開させる。この結果
、排他制御テーブル8は第3図(f)の状態となる。
本実施例では、資源毎に最大追越しタスク数Nを設けた
が、資源の種類にかかわらず固定値Nとして制御するこ
とも可能である。この場合、排他制御テーブル8内の最
大追越しタスクの欄は削除することができる。
〔発明の効果〕
以上説明したように本発明は、資源が共有モードでロッ
クされている時、排他モードでロック待ちしているタス
クを追越してロック権を与えることのできる共有モード
ロック要求タスクの数を、ロック要求された資源Rの最
大追越しタスク数NRに制限することにより、永久封鎖
の問題を避けながら共有資源の使用効率を向上させるこ
とができる。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図、第2図は排他制
御テーブルの構成図、第3図は実施例の具体的動作の説
明図である。 図において、1・・・共有要求処理手段、2・・・排他
要求処理手段、3・・・ロック解除手段、4・・・共有
待ちロック手段、5・・・排他待ちロック手段、6・・
・ロック要求処理部、7・・・アンロック要求処理部、
8・・・排他制御テーブル、9・・・共有資源排他制御
機能。

Claims (1)

  1. 【特許請求の範囲】 1、計算機システムの共有資源排他制御方式において、 資源毎に最大追越しタスク数N_i(i=1〜資源数)
    を設定し、 資源Rに対する共有モードのロック要求に対し、該資源
    Rがロックされていない場合、または現在共有モードで
    ロックされており、該共有モードが開始されてから、排
    他モードのラック待ちタスクを追い越してロック権が与
    えられた共有モードロック要求タスクの数が該資源Rの
    最大追越しタスク数N_R未満の場合にロック権を与え
    、その他の場合にはロック待ちとする共有要求処理手段
    と、 アンロック要求に対し、次にロック権を与えるべきロッ
    ク待ちタスクが共有モードで要求している場合、現在共
    有モードでロック待ちしているタスクすべてにロック権
    を与える共有待ちロック手段とを有することを特徴とす
    る共有資源排他制御方式。 2、資源毎に設定した最大追越しタスク数N_iを資源
    の種類にかかわらず固定値Nとしたことを特徴とする請
    求項1記載の共有資源排他制御方式。
JP5700490A 1990-03-07 1990-03-07 共有資源排他制御方式 Pending JPH03257568A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5700490A JPH03257568A (ja) 1990-03-07 1990-03-07 共有資源排他制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5700490A JPH03257568A (ja) 1990-03-07 1990-03-07 共有資源排他制御方式

Publications (1)

Publication Number Publication Date
JPH03257568A true JPH03257568A (ja) 1991-11-18

Family

ID=13043324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5700490A Pending JPH03257568A (ja) 1990-03-07 1990-03-07 共有資源排他制御方式

Country Status (1)

Country Link
JP (1) JPH03257568A (ja)

Similar Documents

Publication Publication Date Title
US5761659A (en) Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters
US5537645A (en) File lock management in a distributed data processing system
EP0682312A2 (en) Hardware implemented locking mechanism for parallel/distributed computer system
EP0428006A2 (en) Multilevel locking system and method
JPH01298440A (ja) 計算機システムおよびそのタスクスケジュール方法
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
JPH07219792A (ja) ロック装置及び方法
JPS60128537A (ja) 多重プログラミング・システム
JPS61233849A (ja) デ−タベ−ス排他制御方法
JPH02195453A (ja) ファイルアクセス制御方式
KR102450133B1 (ko) 분산 잠금 관리를 하는 분산 시스템 및 그것의 동작 방법
JPH0478932A (ja) 共有資源排他制御方式
JPH03257568A (ja) 共有資源排他制御方式
JP2518134B2 (ja) 共有資源排他制御方式
JPH0383142A (ja) 共有資源排他制御方式
JPH0365732A (ja) 資源管理方法
JPH02118843A (ja) 共有資源排他制御方式
JPH04116731A (ja) 共有資源排他制御方式
JP2898012B2 (ja) 計算機資源の排他制御方式
JPH03141458A (ja) 共有資源排他制御方式
JPH02194442A (ja) 共有資源制御装置
JPH05120040A (ja) コンピユータシステム
JPH03235130A (ja) 排他優先制御方式
JPH04262425A (ja) 共有資源排他制御方式
JP3036468B2 (ja) 排他制御処理装置及び排他制御処理方法並びに排他制御処理プログラムを記憶した記憶媒体