JPH01303527A - 共有資源の管理方法 - Google Patents

共有資源の管理方法

Info

Publication number
JPH01303527A
JPH01303527A JP63133882A JP13388288A JPH01303527A JP H01303527 A JPH01303527 A JP H01303527A JP 63133882 A JP63133882 A JP 63133882A JP 13388288 A JP13388288 A JP 13388288A JP H01303527 A JPH01303527 A JP H01303527A
Authority
JP
Japan
Prior art keywords
hash table
data element
data
counter
search
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
JP63133882A
Other languages
English (en)
Inventor
Atsushi Nitta
淳 新田
Akiji Yamamoto
山本 章治
Shigeru Yoneda
茂 米田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63133882A priority Critical patent/JPH01303527A/ja
Priority to EP19890109733 priority patent/EP0344712A3/en
Priority to US07/359,035 priority patent/US5109511A/en
Publication of JPH01303527A publication Critical patent/JPH01303527A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46—Multiprogramming arrangements
    • G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は共有資源の管理方法に関し、特に電子計算機上
のマルチプロセス、マルチプログラミング環境において
、並行処理を行うプ凸セス間で資源を共有するためにア
クセスを直列化することに係る、大量の共有資源を対象
とする共有資源の管理方法に関する。
〔従来の技術〕
共有資源に対するアクセスの排他制御は、一般に「ロッ
ク」および「アンロック」操作と呼ばれる命令系列によ
って実現され、通常、オペレーティングシステムの一機
能として提供される。この方法では、アクセスに競合が
発生した場合、ロックを獲得したプロセス以外のプロセ
スは、処理を中断して待機しなければならない。しかし
、このような中断は、特に、複数の命令プロセッサが主
記憶を共有する密結合型のマルチプロセッサ環境1こお
いては、しばしば、重大なオーバヘッドとなる。
上述のようなロックなしで並行処理プロセス間のアクセ
スを直列化する方法としては、例えば、特開昭62−9
2061号公報に開示されているように。
プロセス間の競合があるときは、処理を競合する他のプ
ロセスの一つに伝達するものがある。この方法によれば
、主記憶上のデータリストに対する要素の検索、追加、
削除を、プロセスの中断なしに行うことが可能である。
〔発明が解決しようとする課題〕
上記従来技術は、ポインタチェーンでつながれた一次元
のリスト構造のデータを主な対象としている。しかし、
このようなデータリストは、順検索および要素の数が少
ない場合の直接検索には適しているが、検索オーバヘッ
ドが要素数に関して線型に増加するため、大量の要素に
対してランダムなアクセスが発生するような場合には、
必ずしも最適のデータ構造ではない。
大量の要素に対してランダムなアクセスが発生するよう
な場合に適したデータ構造としては、高速なデータ検索
手段であるハツシングの手法を用いることが可能なもの
が望ましいが、上記従来技術は、このようなデータ構造
には適用できないという問題があった。
本発明は上記事情に鑑みてなされたもので、その目的と
するところは、主記憶上の大量のデータ要素を高速にア
クセスするのに適したデータの管理を、マルチプロセッ
サ環境においてロックなしで行うことが可能な共有資源
の管理方法を提供することにある。
〔課題を解決するための手段〕
本発明の上記目的は、並行処理を行うプロセス間での共
用資源要素に対するアクセスをハツシュテーブルにより
管理する方法において、前記ハツシュテーブルの各エン
トリは、資源要素へのポインタ情報と、ハツシュテーブ
ルへの追加の発生を記憶するカウンタ情報と、テーブル
走査回数を制限するためのカウンタ情報とを含み、前記
ハツシュテーブルのエントりを、主記憶上の状態変数を
参照しその値に応じて状態変数を更新する不可分の動作
を実行する命令により更新することを特徴とする共有資
源の管理方法により達成される。
〔作用〕
上記ハツシュテーブルエントリ中の、要素の追加を記憶
するカウンタ情報(以下、簡単のため「追加カウンタ」
という)は、あるプロセスがハツシュテーブルにデータ
要素を追加しようとする動作中に、並行する他のプロセ
スが同一のハツシュ値を持つデータ要素を追加しなかっ
たかどうかを検証する手段を与える。これにより、ハツ
シュテーブルへの、同一データ要素の二重登録を防ぐこ
とができる。また、追加カウンタをハツシュテーブル全
体に対して一つ設けるのではなく、テーブルエントリ毎
に持たせることにより、追加カウンタへのアクセスの競
合発生の確率を低減できる。
一方、テーブルサーチ回数を制限するためのカウンタ情
報(以下、「サーチカウンタ」という)は、与えられた
キー情報を基に、ハツシュテーブルに登録されているデ
ータ要素を検索する場合に、最悪どの程度のハツシュテ
ーブルエントリを走査しなければならないかを示すもの
である。これにより、特定のデータ要素の登録の有無を
、全テーブルを走査せずに、高速に判定することができ
るようになる。
これらの情報を含むハツシュテーブルエントリの全体ま
たは一部の更新には、前述の、主記憶上の状態変数を参
照してその値に応じて状態変数を更新する不可分の動作
を実行する命令を用いる。
こうすることにより、前述のカウンタ情報やポインタ情
報の一貫性が保証される(通常の、ロード/スト?系の
命令を用いると、状態変数の参照から更新の間に、他の
プロセスがその状態変数を更新できるため、データの整
合性が保てない)。
〔実施例〕
以下1本発明の実施例を図面に基づいて詳細に説明する
。
第1図は、本発明の一実施例を示すコンピュータシステ
ムのブロック図である。第1図においては、並行に動作
する複数のプロセス10が、データ要素プール40中の
各データ要素41に対して、ハツシュテーブル操作論理
20を介してアクセスを行う例が示されている6ハツシ
ユテ一ブル操作論理20は、ハツシュテーブル30中の
ハツシュテーブルエントリ31を操作することにより、
複数プロセス10からのデータ要素41へのアクセスを
直列化する。
データ要素41は、複数プロセスで共用されるシステム
資源を主記憶上で表現するものであれば、何でも良い。
このようなシステム資源の例としては、仮想記憶システ
ムにおける主記憶フレーム。
ファイル管理システムにおける入出力バッファ等がある
。本発明は、これら主記憶上の有限個の、しかし、大量
のデータ要素を、マルチプロセッサ環境において効率良
くアクセスする手段を供給するものである。
本発明は、主記憶上の状態変数を参照し、その値に応じ
て状態変数を更新する不可分の動作を実行する命令を有
する任意のプロセッサ上で実現できる。このような命令
は、多くのプロセッサが備えており、例えば、HITA
CMシリーズ((株)日立製作所商品名)処理装置にお
いては、C8(Compare and Swap)、
CD S (Compare Doubleand 8
%1ap)命令が、これに相当する。上記命令の詳細に
ついては、(株)日立製作所発行のマニュアルrHIT
AcMシリーズ処理装置」に記載されている。以下、本
実施例の説明には、上記2つの命令を用いる。この2つ
の命令の異なっている点は、CS命令では語長の状態変
数を扱うのに対して、CDS命令では倍語長の状態変数
を対象とする点である。
ハツシュテーブル操作論理20は、要素的機能として、
データ要素の検索、追加、無効化および削除の機能を含
む。後述するように、これらの要素機能を組合せて、よ
り高度な複合機能を実現することは自由である。上記各
要素機能の詳細および複合機能の例については、後述す
る。
第2図は、ハツシュテーブルエントリの内容を示すもの
である。ハツシュテーブルエントリは、データ要素への
ポインタとサーチカウンタと追加カウンタから成る。ハ
ツシュテーブルエン1−りは倍語長であり、前述のCD
S命令により更新される。データ要素へのポインタは1
語であり、C8命令により更新される。サーチカウンタ
と追加カウンタはそれぞれ半語長であり、この2つのカ
ウンタは同時にC8命令により更新される。各フィール
ドの長さと配置は、使用するプロセッサの命令仕様によ
り異なっていて良いが、最低限ハツシュテーブルエント
リ全体をO8命令またはCDS命令に類似した命令で更
新できる必要がある。
追加カウンタは、そのハツシュテーブルエントリをホー
ムポジションとするデータ要素が、ハツシュテーブルに
登録されたときにカウントアツプされる。カウンタが最
大値まで使用された場合にはラップアラウンドする。こ
こで、ホームポジションとは、1回目のハツシングで決
定されたハツシュテーブルエン1−りのことをいう。あ
るデータ要素をハツシュテーブル中に登録しようとする
とき、ホームポジションは既に他のデータ要素によって
占有されている場合(衝突の発生)がある。この場合、
データ要素は、オーバフローポジションに登録される。
ホームポジションおよびオーバフローポジションを決定
するハツシングのアルゴリズムは、どのようなものを用
いても良い。
追加カウンタは、あるプロセスがデータ要素をハツシュ
テーブルに追加しようとするときに、他のプロセスが同
一のホームポジションを有するデータ要素の追加を並行
して行っていないかを確認するために使用される。追加
論理は、入力として与えられる追加カウンタ値を退避し
ておき、追加処理の終了時点で現在の追加カウンタ値と
退避したカウンタ値を比較する。両者が等しければ現在
のカウンタ値に1を加えたものを新しい追加カウンタ値
とし、等しくなければ、競合発生を要求元に知らせる。
この比較とカウンタ値の更新は、C8またはCDS命令
により不可分の一動作として実行される。
サーチカウンタは、そのハツシュテーブルエントリをホ
ームポジションとするデータ要素が何個ハツシュテーブ
ル中に登録されているかの上限を示すものである。サー
チカウンタは、採用したハツシングアルゴリズムに従っ
てデータ要素の検索を行う場合に、I&悪どれだけのハ
ツシュテーブルエントリを走査しなければならないかの
目安を与える。
第3図は、データ要素の内容を示したものである。各デ
ータ要素はそのキーによって一意に識別されるが、デー
タ要素とキーの対応は固定的でなくても良い。そのデー
タ要素をハツシュテーブルから削除してしまえば、デー
タ要素中のキーを変更して別データを表現するようにし
て構わない。
これをデータ要素のリプレースと呼ぶ。フラグはデータ
要素の状態を示すものであり、本発明の具体的応用毎に
適した内容を設定すれば良い1本実施例では、そのデー
タ要素の内容が無効であることを示す無効インジケータ
を設けている。ユーザカウンタは、そのデータ要素を現
在アクセスしているプロセスの多重度を示す。フラグお
よびユーザカウンタは1語中に納められ、C8命令によ
って更新される。データ要素の他のフィールドは、任意
である。本実施例では、データ要素の削除論理を高速に
するため、ハッシユテーブルの登録位置、すなわち、本
データ要素が登録されているハツシュテーブルエントリ
のアドレス、ハツシュサーチ回数、すなわち、何回目の
ハツシングによって登録位置を見つけたか、および、ホ
ームポジションをセットするフィールドを設けている。
第4図から第6図は、同一のホームポジションを持つ2
つのデータ要素42と43が、ハツシュテーブルに登録
される様子を示している。ここで、データ要素42と4
3のホームポジションは、ハツシュテーブルエントリ3
2であり、ハシシテーブルエントす33は、オーバフロ
ーポジションである。第4図では、まだ、データ要素は
1つも登録されていない。第5図では、データ要素42
がホームポジション32にWtaされ、サーチカウンタ
、追加カウンタが、それぞれカウントアツプされた状態
が示されている。第6図は、第5図の状態で更にデータ
要素43を追加した場合を表わしている。この場合、デ
ータ要素43はオーバフローポジションに登録される。
ここで注意すべき点は、データ要素43をハツシュテー
ブルエントリ33に51 kkしたとき、オーバフロー
ポジションのサーチカウンタおよび追加カウンタは変化
せず、ホームポジションのカウンタが更新されているこ
とである。
以下、各々のハツシュテーブル操作論理について、流れ
図を参照しながら詳細に説明する。ただし、本実施例に
添付しである流れ図では、図が必要以上に複雑になるの
を防ぐために、細かなエラー処理等は省いである。
〔検 索〕
検索論理の流れ図を、第7図に示す。検索論理の入力は
、検索対象データ要素のキーであり、このキーを基にハ
ツシングを行って、ホームポジションを決定する(ステ
ップ1001)。ハツシングのアルゴリズムは、どのよ
うなものでも良い。ホームポジションが求まれば、その
ハツシュテーブルエントリのサーチカウンタを作業変数
■に設定する(ステップ1002)。I=Oであれば、
データ要素が見つからなかった旨のリターンコードを設
定してリターンする(ステップ1003)。I>Oであ
れば、ハツシュテーブルエントリに’!19されている
データ要素が検索対象のデータ要素であるかを判定しく
ステップ1004)、結果がYESであれば、CS命令
によってデータ要素のユーザカウンタを+1する(ステ
ップ1005)。これにより、このデータ要素が検索要
求元プロセスによってアクセスされることが宣言される
。C8命令によるユーザカウンタの更新が失敗した場合
、すなわち、他プロセスとユーザカウンタアクセスの競
合が起こった場合には(ステップ1006)、データ要
素内容の判定からやり直す。データ要素内容の判定(ス
テップ1004)からユーザカウンタの更新(ステップ
1005)の間は他のプロセスも動作可能であるため、
そのデータ要素の内容が書換えられてしまう場合がある
。このようなことは、そのデータ要素のユーザカウンタ
の値が現在Oであり、従ってどのプロセスからもアクセ
ス中でないとみなされ、データ要素のリプレー゛スが発
生した場合に起こり得る。このため、ユーザカウンタ値
を+1した後で、もう−度データ要素の内容を判定しく
ステップ1007)、キーが一致すれば正常リターンす
る。また、キーが不一致の場合には、ユーザカウンタを
C8命令により一1(ステップ1010〜1011) 
t、、検索を再試行する。
ステップ1004で、データ要素が検索対象データ要素
とは異なっていることが判明した場合は、次のオーバフ
ローポジションを求め(ステップ1009) 。
検索を続ける。なお、前述のように、オーバフロ−ポジ
ションを決定するアルゴリズムは、どのようなものを用
いても良い。
第7図から理解されるように、ハツシュテーブルエン1
−りの走査は、たかだかサーチカウンタ数のループで終
了する。操作対象データのキー分布に適したハツシュ関
数と、同時に’1Bされるデータ要素数に対して十分余
裕のあるハツシュテーブルエントリ総数を用意すれば、
サーチカウンタの期待値≦1とすることができ、高速な
検索が実現できる。
〔追 加〕
第8図と第9図に、追加論理の流れ図を示す。
追加論理の入力は、迫力6対象のデータ要素アドレスと
、そのデータ要素のホームポジションおよびホームポジ
ションの追加カウンタ値である。一般に、データ要素の
二重登録を避けるため、追加処理の前には検索処理を行
って、既にデータ要素が登録されているかどうかを確か
める。データ要素のホームポジションおよび追加カウン
タ値は、上記検索処理の出力を用いる。この追加カウン
タ値は、検索処理中でホームポジションが決定された時
点で退避された値であり、今回の追加処理が終了するま
での間に、他プロセスの追加処理と競合が発生したかど
うかを判定するのに用いる。
追加処理では、まず、ホームポジションが既に占有され
ているかどうかを調べ(ステップ1101)、占有され
ていなければ、CDS命令により、ハツシュテーブルエ
ントリの各フィールドを更新する(ステップ1102,
1103.1104)。この場合、サーチカウンタ値が
Oであればサーチカウンタ値を1に変更する(ステップ
1103)が、サーチカウンタ値が1以上であれば、サ
ーチカウンタ値の更新を行わない(ステップ1104)
。ステップ110:lまたはステップ1104のCDS
命令が成功すれば、正常リターンする(ステップ1.1
05)。CDS命令による更新が不成功の場合は、他プ
ロセスのどのような処理と競合が発生したかを調べるた
め、追加カウンタ値を入力のカウンタ値と比較する(ス
テップ1106)。両者が等しければ、競合は削除処理
との間で発生したものであるから、追加処理を再試行す
れば良い。
両者が異なっていれば、追加処理の競合が発生したこと
になるため、リトライ要のリターンコードを設定したエ
ラーリターンする。この場合は、追加処理の前に行った
検索処理から再試行することになる。
ホームポジションが既に占有されている場合の処理の流
れは第9図のようになる。まず、オーバフローポジショ
ンを決定しくステップ1107)、そのハツシュテーブ
ルエントリが他のデータ要素によって占有されていない
かを調べ(ステップ1108)、占有されていれば次の
オーバフローポジションを調べに行く。同時に登録され
るデータ要素の最大数が、ハツシュテーブルエントリ総
数以下であれば、空きのオーバフローポジションは必ず
存在する。ハツシュテーブルエントリ総数の方が少なけ
れば、ハツシュテーブル満杯のエラーが起こり得るが、
簡単のために、第9図ではそのようなエラー処理は割愛
しである。
ここで、今回の空きポジションサーチ回数が。
ホームポジションのサーチカウンタより太きければ、C
8命令でサーチカウンタを今回のサーチ回数に変更する
(ステップ1109,1114.1115)。次に、オ
ーバフローポジションのデータ要素へのポインタをO8
命令で設定する(ステップ1110)。このC8命令が
不成功となるのは、そのハツシュテーブルエントリへの
データ要素の登録が他プロセスと競合したときであり1
次のオーバフローポジションに登録可能か調べに行く。
上の場合、同一ホームポジションを持つデータ要素の追
加処理との競合とは限らない。また、C8命令が成功す
れば、最後にホームポジションの追加カウンタをCS命
令でカウントアツプする(ステップ1112)。この最
後のCS命令が成功す、れば、データ要素の追加は完了
し、正常リターンする。不成功であれば、同一ホームポ
ジションに対する他プロセスの追加処理と競合したこと
になり、データ要素をハツシュテーブルから削除してリ
トライ要のエラーリターンを行う(ステップ1116)
。
第8図と第9図を参照すればわかるように、追加処理の
競合が発生しない場合、データ要素のホ−ムポジション
への登録は、1回のCDS命令で完了するのに対して、
オーバフローポジションへの登録には、2回もしくは3
回のC8命令の実行が必要である。また、オーバフロー
ポジションへの登録の場合、最後のC8命令による追加
カウンタの更新までに多くの処理を行わなければならな
いため、競合発生の確率がそれだけ高くなる。従って、
本発明を有効に動作させるためには、できるだけ、オー
バフローポジションへの登録の確率が低くなるようなハ
ツシングアルゴリズムを使用することが望ましい。
〔無効化〕
無効化処理の流れ図を第10図に示す。データ要素の無
効化が次に述べる削除と異なる点は、無効化の場合は、
データ要素そのものはまだハツシュテーブルに登録され
た状態であるということである。無効化されたデータ要
素は、他のキーを持つデータのために使用(データ要素
のリプレース)されたり、同一キーのデータのために再
利用されたりする。前者の場合には、データ要素のキー
が変更されるため、−旦そのデータ要素をハツシュテー
ブルから削除して新しいキーで追加処理を行わなければ
ならない。データ要素の無効化は、入力で指定されるデ
ータ要素中の無効インジケータをオンにすることにより
完了する(ステップ1201)。
この処理は、C8命令によって行われる必要はない。
無効化処理は、ハツシュテーブル操作論理にとって必要
不可欠な要素機能ではないが、ある方が実際上の応用に
は便利である。
〔削 除〕
削除論理の流れ図を第11図に示す。削除処理の入力は
、削除対象データ要素のアドレスである。
キーを指定して削除を行いたい場合は、検索要素機能と
削除要素機能を組合せた複合機能として実現すれば良い
。
削除処理では、まず、削除対象データ要素が登録されて
いるハツシュテーブルエントリのデータ要素へのポイン
タをクリアする(ステップ1301)。
この処理もC8命令で行う必要はない。もし、そのデー
タ要素を追加したときの空きポジションサーチの回数が
、ホームポジションのサーチカウンタ値と等しければ、
サーチカウンタをC8命令で1減じる(ステップ130
2.1303.1304)。CS命令が不成功となるの
は、削除対象データ要素と同一ののホームポジションを
持つデータ要素の他プロセスによる追加処理と競合が発
生した場合であり、ステップ1302から再試行する。
データ要素がホームポジションに登録されている場合に
は、ステップ1301の処理とステップ1302の処理
とをまとめて、1回のCDS命令によって行うことが可
能であるが、第11図では、簡単のため割愛しである。
また、削除処理中で使用する、データ要素の登録位置、
ホームポジションおよびハツシュサーチ回数は、キーか
ら導き出すこともできるが、本実施例ではこれらの情報
を追加処理時にデータ要素中に退避し、削除処理で参照
することにより、削除処理の高速化を図っている。
第8図および第9図で示される追加処理と、第11図で
示される削除処理中でのサーチカウンタの扱いかられか
るように、サーチカウンタは、同一のホームポジション
に属する現在登録中のデータ要素の数と常に一致してい
るのではなく、その数よりも大きな値になることがある
。例えば、あるホームポジションに属するデータ要素が
1(li’Jf録されていて、サーチカウンタ値がjで
ある場合を考える。ここで、i−1番目に登録されたデ
ータ要素がまず削除され、次にi番目に登録されたデー
タ要素が削除されたとすると、この時点でサーチカウン
タはi−1となる。ところが、i−1番目のデータ要素
は筬に削除されているため、再びサーチ回数がi−1よ
り大きいデータ要素がハツシュテーブルに登録されるま
で、サーチカウンタの値はi−1のままである。このよ
うにサーチカウンタは、あくまでも検索処理時のハツシ
ュテーブルエントリの走査回数の上限を与える意味しか
持たない。実際上は、適用対象問題に適したハツシング
アルゴリズムの選択と、豊富なエントリ数を持つハツシ
ュテーブルの用意によって、サーチカウンタの値が大き
くなる確率を充分に小さくできるため、問題はない。
〔複合機能の例〕 最後に、前述のハツシュテーブル操作論理の要素機能を
組合せた複合機能の一例を示す。第12図は、本発明を
人出力バッファ管理に応用した場合の流れ図である。こ
こでは、データ要素は、バッファに対応した主記憶上の
制御ブロックであり、キーは入出力データ(「データペ
ージ」と呼ぶ)の2次記憶上での物理または論理アドレ
スである。
第12図では、入力処理の流れを示している。入力デー
タページアドレスをキーとしてハツシュテーブルの検索
を行い(ステップ1401)、ハツシュテーブルに有効
データが登録されていればそのバッファアドレスを返却
する(ステップ1402)。まだデータがバッファ上に
存在しなければ、空きのバッファを1面確保して対応す
る制御ブロックをハツシュテーブルに登録して、バッフ
ァ上にデータを読込む(ステップ1403〜1408)
。空きバッファを確保するためのバッファリプレースメ
ント処理方式は、どのようなものでも良い。また、ハツ
シュテーブルへの追加処理でり1−ライ要のエラーリタ
ーンが発生したときは、目的データページが他プロセス
によって入力された可能性があるため、ステップ140
1の検索処理から再試行する。
この処理においては、空きのバッファを確保してデータ
の入力を行ってから、制御ブロックをハツシュテーブル
に登録しても良いが、それでは、同一データページへの
アクセスが競合した場合に無駄なIloが発生してしま
う。これを改善するためには、例えば、制御ブロック中
にデータ入力中インジケータを設け、実際の入力処理を
行う前にこのインジケータをオンにしてその時点でハツ
シュテーブルに登録してしまう方法が考えられる(ステ
ップ1404)、同一データページにアクセスする他プ
ロセスは、ハツシュテーブルを検索して。
データ入力中インジケータがオンの制御ブロックを見つ
けると、このインジケータがオフとなるまで(ステップ
1408)、−時的に待ち状態に入る。ここで発生する
プロセスの中断は、ハツシュテーブルの操作論理に起因
するもあではなく、I10完了を待つためのものである
ことを注意しておく。
上記実施例によれば、複数プロセスの並列実行環境下で
の共用資源の管理を高速に行えるので、システムのオー
バヘッドを削減する効果がある。
また1本発明は、特に密結合型のマルチプロセッサを使
用して、主記憶上の大量のデータ要素を処理する場合に
大きな効果がある。         4なお、上記実
施例は一例として示したものであり、本発明は他の種々
の実施態様が可能であることは言うまでもない。
〔発明の効果〕
以上述べたように、本発明によれば、並行処理を行うプ
ロセス間での共用資源要素に対するアクセスをハツシュ
テーブルにより管理する方法において、前記ハツシュテ
ーブルの各エントリは、資源要素へのポインタ情報と、
ハツシュテーブルへの追加の発生を記憶するカウンタ情
報と、テーブル走査回数を制限するためのカウンタ情報
とを含み、前記ハツシュテーブルのエントリを、主記憶
上の状態変数を参照しその値に応じて状態変数を更新す
る不可分の動作を実行する命令により更新するようにし
たので、主記憶−ヒの大量のデータ要素を高速にアクセ
スするのに適したデータの管理を、マルチプロセッサ環
境においてロックなしで行うことが可能な共有資源の管
理方法を実現できるという顕著な効果を奏するものであ
る。
【図面の簡単な説明】
第1図は本発明の一実施例を示すコンピュータシステム
のブロック図、第2図はハツシュテーブルエントリの内
容を示す図、第3図はデータ要素の内容を示す図、第4
図〜第6図はデータ要素のハツシュテーブルへの登録の
様子を示す図、第7図〜第11図はハツシュテーブル操
汁論理の要素機能の流れ図、第12図は複合機能の一例
の流れ図である。 10:プロセス、20:ハツシュテーブル操作論理。 30:ハツシュテーブル、31〜33:ハッシュテーブ
ルエン1−リ、40:データ要素プール、41〜43:
データ要素。 第   1   図 第   2   図 第   3   図 第   4  図 第   5   図 第   6   図 第   7   図 第   8   図 第   9   図 第   10   図 第   11    図

Claims (1)

    【特許請求の範囲】
  1. 1、並行処理を行うプロセス間での共用資源要素に対す
    るアクセスをハッシュテーブルにより管理する方法にお
    いて、前記ハッシュテーブルの各エントリは、資源要素
    へのポインタ情報と、ハッシユテーブルへの追加の発生
    を記憶するカウンタ情報と、テーブル走査回数を制限す
    るためのカウンタ情報とを含み、前記ハッシュテーブル
    のエントリを、主記憶上の状態変数を参照しその値に応
    じて状態変数を更新する不可分の動作を実行する命令に
    より更新することを特徴とする共有資源の管理方法。
JP63133882A 1988-05-31 1988-05-31 共有資源の管理方法 Pending JPH01303527A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63133882A JPH01303527A (ja) 1988-05-31 1988-05-31 共有資源の管理方法
EP19890109733 EP0344712A3 (en) 1988-05-31 1989-05-30 Shared resource managing method and system
US07/359,035 US5109511A (en) 1988-05-31 1989-05-30 Shared resource managing method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63133882A JPH01303527A (ja) 1988-05-31 1988-05-31 共有資源の管理方法

Publications (1)

Publication Number Publication Date
JPH01303527A true JPH01303527A (ja) 1989-12-07

Family

ID=15115295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63133882A Pending JPH01303527A (ja) 1988-05-31 1988-05-31 共有資源の管理方法

Country Status (3)

Country Link
US (1) US5109511A (ja)
EP (1) EP0344712A3 (ja)
JP (1) JPH01303527A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241931A (ja) * 1990-04-06 1993-09-21 Internatl Business Mach Corp <Ibm> 計算機システムのアクセス管理方法
US5450595A (en) * 1994-02-15 1995-09-12 International Business Machines Corporation Multiple hash tables based on access frequency
JP2010102654A (ja) * 2008-10-27 2010-05-06 Internatl Business Mach Corp <Ibm> データを管理する管理装置、管理プログラム、および管理方法
WO2014064914A1 (ja) * 2012-10-24 2014-05-01 日本電気株式会社 データ格納装置、データ格納方法およびプログラム

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2699600B2 (ja) * 1990-01-30 1998-01-19 日本電気株式会社 資源の排他制御方式
US5301337A (en) * 1990-04-06 1994-04-05 Bolt Beranek And Newman Inc. Distributed resource management system using hashing operation to direct resource request from different processors to the processor controlling the requested resource
US5276835A (en) * 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
US5222238A (en) * 1991-09-05 1993-06-22 International Business Machines Corp. System and method for shared latch serialization enhancement
JPH05204656A (ja) * 1991-11-30 1993-08-13 Toshiba Corp スレッド固有データ保持方法
US5859994A (en) * 1992-08-10 1999-01-12 Intel Corporation Apparatus and method for modifying instruction length decoding in a computer processor
US5815656A (en) * 1992-09-23 1998-09-29 International Business Machines Corporation Method of validating memory structures in data processing systems
JPH06110846A (ja) * 1992-09-25 1994-04-22 Fujitsu Ltd 排他制御方式
US5481706A (en) * 1993-11-01 1996-01-02 International Business Machines Corporation System and method for creating thread-safe shared libraries
US6009454A (en) * 1994-09-30 1999-12-28 Allen-Bradley Company, Llc Multi-tasking operation system for industrial controller
US5526363A (en) * 1995-05-16 1996-06-11 Telco Systems, Inc. Multicontext compression system with shared data structures
JPH096706A (ja) * 1995-06-22 1997-01-10 Hitachi Ltd 疎結合計算機システム
US6115802A (en) * 1995-10-13 2000-09-05 Sun Mircrosystems, Inc. Efficient hash table for use in multi-threaded environments
US6910211B1 (en) * 1997-03-14 2005-06-21 International Business Machines Corporation System and method for queue-less enforcement of queue-like behavior on multiple threads accessing a scarce source
US5905889A (en) 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US6553420B1 (en) * 1998-03-13 2003-04-22 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
US6430618B1 (en) * 1998-03-13 2002-08-06 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
US6499048B1 (en) * 1998-06-30 2002-12-24 Sun Microsystems, Inc. Control of multiple computer processes using a mutual exclusion primitive ordering mechanism
US6493354B1 (en) * 1998-11-11 2002-12-10 Qualcomm, Incorporated Resource allocator
JP3899795B2 (ja) * 2000-09-21 2007-03-28 日本電気株式会社 ファイル管理システムおよび方法
US6628293B2 (en) * 2001-02-23 2003-09-30 Mary Susan Huhn Eustis Format varying computer system
US20030055863A1 (en) * 2001-07-24 2003-03-20 Spiegel Michael G. Method and apparatus for managing system resources in an information handling system
WO2003042816A2 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Entry locking for large data structures
US7065765B2 (en) * 2001-12-05 2006-06-20 International Business Machines Corporation Serializing event handling in a threaded system with no wait states
US7209932B2 (en) * 2002-03-25 2007-04-24 International Business Machines Corporation Method, system, and program for allocating tasks to a plurality of processors
US20050165938A1 (en) * 2003-12-24 2005-07-28 Linden Cornett Method, system, and program for managing shared resources
US8561071B2 (en) * 2005-07-11 2013-10-15 International Business Machines Corporation Process instance serialization
CN104331255B (zh) * 2014-11-17 2018-04-17 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据读取方法
CN116171443B (zh) * 2020-09-30 2026-03-13 华为技术有限公司 资源分配装置、装置与存储介质
US20260037331A1 (en) * 2024-08-05 2026-02-05 Truist Bank Authentication system for secure privileged user resource access

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623018A (en) * 1969-11-12 1971-11-23 Ibm Mechanism for searching for selected records in random access storage devices of a data processing system
US4053948A (en) * 1976-06-21 1977-10-11 Ibm Corporation Look aside array invalidation mechanism
US4480304A (en) * 1980-10-06 1984-10-30 International Business Machines Corporation Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
US4742450A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241931A (ja) * 1990-04-06 1993-09-21 Internatl Business Mach Corp <Ibm> 計算機システムのアクセス管理方法
US5450595A (en) * 1994-02-15 1995-09-12 International Business Machines Corporation Multiple hash tables based on access frequency
JP2010102654A (ja) * 2008-10-27 2010-05-06 Internatl Business Mach Corp <Ibm> データを管理する管理装置、管理プログラム、および管理方法
US8589633B2 (en) 2008-10-27 2013-11-19 International Business Machines Corporation Control apparatus
WO2014064914A1 (ja) * 2012-10-24 2014-05-01 日本電気株式会社 データ格納装置、データ格納方法およびプログラム
JPWO2014064914A1 (ja) * 2012-10-24 2016-09-08 日本電気株式会社 データ格納装置、データ格納方法およびプログラム

Also Published As

Publication number Publication date
EP0344712A3 (en) 1992-03-11
EP0344712A2 (en) 1989-12-06
US5109511A (en) 1992-04-28

Similar Documents

Publication Publication Date Title
US5109511A (en) Shared resource managing method and system
EP0788054B1 (en) Memory controller and memory control system
US5946711A (en) System for locking data in a shared cache
US5287521A (en) Method and apparatus for releasing and obtaining shared and exclusive locks
US8788543B2 (en) Scalable, concurrent resizing of hash tables
US8250047B2 (en) Hybrid multi-threaded access to data structures using hazard pointers for reads and locks for updates
US6760909B1 (en) Virtual memory system and methods
US7031989B2 (en) Dynamic seamless reconfiguration of executing parallel software
US6665783B2 (en) Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes
US6886162B1 (en) High speed methods for maintaining a summary of thread activity for multiprocessor computer systems
EP0563622A2 (en) Sysplex shared data coherency method and means
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
JPH05127995A (ja) ローカルキヤツシユに共通のページ間の一貫性を確保する方法
JPH0799509B2 (ja) メモリへのデータブロックのエントリを制御する方法
JP3701890B2 (ja) 圧縮メモリ・システムの再利用スペース予約
Braginsky et al. CBPQ: High performance lock-free priority queue
CN111723250A (zh) 一种基于引用计数的链表管理方法
US5222238A (en) System and method for shared latch serialization enhancement
JP2829115B2 (ja) ファイル共用方法
Li et al. Lock-free bucketized cuckoo hashing
JPH07325760A (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
US7398368B2 (en) Atomic operation involving processors with different memory transfer operation sizes
Singh et al. Efficient hardware primitives for immediate memory reclamation in optimistic data structures
JP3381079B2 (ja) キャッシュメモリを用いた排他制御システム
CN119853973B (zh) 面向网络安全访问控制策略的冲突检测规则无锁更新方法