JPH06110846A - 排他制御方式 - Google Patents

排他制御方式

Info

Publication number
JPH06110846A
JPH06110846A JP4256330A JP25633092A JPH06110846A JP H06110846 A JPH06110846 A JP H06110846A JP 4256330 A JP4256330 A JP 4256330A JP 25633092 A JP25633092 A JP 25633092A JP H06110846 A JPH06110846 A JP H06110846A
Authority
JP
Japan
Prior art keywords
lock
cpu
class
control information
resource
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
JP4256330A
Other languages
English (en)
Inventor
Yasuhiko Sadoi
安彦 佐戸井
Masanobu Suzuki
雅延 鈴木
Gunji Ogawa
郡治 小川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4256330A priority Critical patent/JPH06110846A/ja
Publication of JPH06110846A publication Critical patent/JPH06110846A/ja
Priority to US08/618,405 priority patent/US5615374A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program 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)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 本発明は、資源の排他制御を行う排他制御方
式に関し、同一資源に対してノンクラスロックとしての
逐次化要求を満しながら、クラスロックとしての逐次化
要求も満たし、資源の逐次化によって生じるCPU間の
不必要な競合を抑えることを目的とする。 【構成】 ロック制御情報(CPU)1のクラスロック
およびノンクラスロックにCPU識別子(あるいはCP
Uに対応するビット)が設定されていないときに、ノン
クラスロックにCPU識別子(あるいはCPUに対応す
るビット)を設定して全体の排他を獲得し、一方、ロッ
ク制御情報(CPU)1のノンクラスロックにCPU識
別子(あるいはCPUに対応するビット)が設定されて
いないときに、クラスロックにCPU識別子(あるいは
CPUに対応するビット)を設定した後、ロック制御情
報(資源)2にCPU識別子(あるいはCPUに対応す
るビット)を設定して当該資源の排他を獲得するように
構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、資源の排他制御を行う
排他制御方式に関するものである。近年、8つのCPU
で構成する密結合MPシステムの登場などのように、ハ
ードウェアの処理能力の向上が図られている。このよう
なハードウェアの処理能力の向上に伴い、CPU間で逐
次的に使用するシステム共用資源の競合による損失がC
PU台数に比例して大きくなるという問題が発生する。
この問題を解決するためには、CPU間で逐次的に使用
している資源に関して逐次化処理の細分化(以下クラス
化という)を行い、CPU間の競合を極力少なくするこ
とが必要である。しかし、システム内の全実行単位が一
度にその資源のクラス化に対応できるわけでなく、シス
テム全体で逐次的に使用することを必要とする実行単位
も存在する。即ち、クラス化した資源として利用する実
行単位と、クラス化していない資源として利用する実行
単位とが、システム内に共存した状態で資源の逐次化を
実現する要求がある。このため、システム全体として逐
次化要求を保証した上で、資源のクラス化を実行するこ
とが望まれている。
【0002】
【従来の技術】従来、各種資源の逐次化の手段としてロ
ックサービスがある。ロックサービスにおける逐次化
は、各CPUがロックの獲得を表示する領域(ロック制
御領域という)に、ハードウェアの逐次化命令(例えば
CS命令)を用いてCPU識別子を設定しようとし、設
定できたCPUがその資源を占有することができること
になる。
【0003】ロックサービスは、クラスに関して次の2
つのタイプのロックを提供している。 ・クラスロック:資源を用途に応じてクラス化したロッ
クであって、ロック制御領域はクラス毎に存在し、クラ
ス毎にロックを獲得できる。
【0004】・ノンクラスロック:クラス化してないロ
ックであって、ロック制御領域は全体で1つ存在し、全
体のロックを獲得する。 ノンクラスロックで逐次化されている資源をクラス化し
(細分化し)、クラスロックで逐次化することによっ
て、CPU間の競合を抑えることができる。
【0005】
【発明が解決しようとする課題】しかし、従来のロック
サービスは、同一資源に対してクラスロックと、ノンク
ラスロックの両方のタイプを与えることができない。即
ちある資源をクラス化すると、システム内でその資源を
利用している実行単位の全てがクラス化に対応しなけれ
ばならず、クラス化に対応した実行単位と、システム全
体としての逐次化を必要とする実行単位とがシステム内
に共存することができなくなる。
【0006】従って、ある資源に対して、ある実行単位
はその資源の逐次化をクラスロックによって行い、ある
実行単位はその資源の逐次化をノンクラスロックによっ
て行いたいという場合でも、その資源の逐次化はノンク
ラスロックでしか行えず、資源の逐次化に関してCPU
間の不必要な競合が発生してしまうという問題を生じて
いた。
【0007】本発明は、これらの問題を解決するため、
同一資源に対してノンクラスロックとしての逐次化要求
を満しながら、クラスロックとしての逐次化要求も満た
し、資源の逐次化によって生じるCPU間の不必要な競
合を抑えることを目的としている。
【0008】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、ロック制
御情報(CPU)1は、クラスロックおよびノンクラス
ロックを獲得したCPU識別子(あるいはCPUに対応
するビット)を設定するものである。
【0009】ロック制御情報(資源)2は、クラス化し
た資源を獲得したCPU識別子(あるいはCPUに対応
するビット)を設定するものである。
【0010】
【作用】本発明は、図1に示すように、ロック制御情報
(CPU)1のクラスロックおよびノンクラスロックに
CPU識別子(あるいはCPUに対応するビット)が設
定されていないときに、ノンクラスロックにCPU識別
子(あるいはCPUに対応するビット)を設定して全体
の排他を獲得し、一方、ロック制御情報(CPU)1の
ノンクラスロックにCPU識別子(あるいはCPUに対
応するビット)が設定されていないときに、クラスロッ
クにCPU識別子(あるいはCPUに対応するビット)
を設定した後、ロック制御情報(資源)2にCPU識別
子(あるいはCPUに対応するビット)を設定して当該
資源の排他を獲得するようにしている。
【0011】従って、全体の資源に対するノンクラスロ
ックとしての逐次化要求を満しながら、細分化した資源
に対するクラスロックとしての逐次化要求も満たし、資
源の逐次化によって生じるCPU間の不必要な競合を抑
えることが可能となる。
【0012】
【実施例】次に、図1から図8を用いて本発明の実施例
の構成および動作を順次詳細に説明する。
【0013】図1は、本発明の1実施例構成図を示す。
図1の(a)は、ロック制御情報(CPU)の例を示
す。図1の(a)において、ロック制御情報(CPU)
1は、クラスロックおよびノンクラスロックを獲得した
CPU識別子(あるいはCPUに対応するビット)を設
定するものである。ここで、クラスロックには、CPU
0用からCPU15用の合計16ビット(2バイト)の
ビットマスクのうちのいずれにビット“1”を設定する
かによって、当該クラスロックを獲得したCPUを設定
(登録)するようにしている。このクラスロックは、C
PUごとのロック制御領域ポインタから先頭がポイント
されている。また、ノンクラスロックには、全体のロッ
クを獲得したCPU識別子を設定するようにしている。
【0014】従って、クラスロックを獲得した場合には
該当するビットマップのビットを“1”に設定し、ノン
クラスロックを獲得した場合にはCPU識別子を設定す
る。図1の(b)は、ロック制御情報(資源)の例を示
す。
【0015】図1の(b)において、ロック制御情報
(資源)2は、資源ごとのロック制御情報ポインタから
ポイントされ、その資源のクラスロックを保持している
CPU識別子を格納し、排他を獲得するようにしてい
る。
【0016】図2は、本発明のロック制御情報(CP
U)の説明図を示す。 状態1:これは、全CPUがロックを保持していない状
態である。この状態では、図示のように、クラスロック
の全てのビットがオフ“0”であると共に、ノンクラス
ロックが“0”(CPU識別子が設定されていない)で
ある。
【0017】状態2:これは、ノンクラスロックを保持
しているCPUが存在する状態である。この状態では、
図示のように、クラスロックの全てのビットがオフ
“0”であると共に、ノンクラスロックに“CPU識別
子”が設定されている。この設定された“CPU識別
子”のCPUが全体の排他を獲得しており、ノンクラス
ロックおよびクラスロックの両者ともにロックを獲得で
きない。
【0018】状態3:これは、クラスロックを保持して
いるCPUが存在する状態である。この状態では、図示
のように、クラスロックをCPU#1、CPU#2、C
PU#15が獲得しており、ノンクラスロックを獲得で
きない。
【0019】図3は、本発明の動作説明図(ノンクラス
ロック有)を示す。ここでは、CPU#0からCPU#
15の16台を持つシステムある。図3において、S1
は、CPU#0がノンクラスロックの獲得要求を行う。
この場合には、ロック制御情報(CPU)1のクラスロ
ックおよびノンクラスロックがともに“0”でCPUに
よって両者ともにロックされていないので、当該CPU
#0をノンクラスロックに設定し、全体の排他を獲得す
る。
【0020】S2は、続いて、CPU#1がノンクラス
ロックの獲得要求を行ったが、ロック制御情報(CP
U)1のノンクラスロックに“CPU#0”が設定され
ていたのでループし、ノンクラスロックの“CPU#
0”が削除されて排他が解放されるまで待機する。
【0021】S3は、更に、続いて、CPU#15がク
ラスロックの獲得要求を行ったが、ロック制御情報(C
PU)1のノンクラスロックに“CPU#0”が設定さ
れていたのでループし、ノンクラスロックの“CPU#
0”(更にS2のノンクラスロックの“CPU#1”な
ど)が削除されて排他が解放されるまでループして待機
する。
【0022】図4は、本発明の動作説明図(クラスロッ
ク有)を示す。ここでは、CPU#0からCPU#15
の16台を持つシステムある。図4において、S11
は、CPU#0がクラスロックの獲得要求を行う。この
場合には、ロック制御情報(CPU)1のノンクラスロ
ックが“0”でロックされていないので、当該CPU#
0のクラスロックのビットに“1”を設定し、クラスロ
ックを獲得すると共に、クラス化した資源毎のロック制
御情報(資源)2が“0”でロックされていなかったの
で当該CPU#0の識別子を図示のように設定する。こ
れらにより、CPU#0は、クラス化した資源の排他を
獲得できたこととなる。
【0023】S12は、続いて、CPU#15がクラス
ロックの獲得要求を行う。この場合には、ロック制御情
報(CPU)1のノンクラスロックが全て“0”でロッ
クされていないので、当該CPU#15のクラスロック
のビットに“1”を設定し、クラスロックを獲得する
が、クラス化した資源毎のロック制御情報(資源)2が
“CPU#0”でロックされていたので当該CPU#0
の識別子が削除されるまでループして待機する。そし
て、資源毎のロック制御情報(資源)2の“CPU#
0”が削除されたときに、CPU#15を設定してロッ
クを獲得する。
【0024】S13は、続いて、CPU#1がノンクラ
スロックの獲得要求を行う。この場合には、ロック制御
情報(CPU)1にクラスロックが設定(CPU#0と
CPU#15のビットが“1”に設定)されていたの
で、ループして全てのクラスロックが“0”になるのを
待機する。
【0025】次に、図5のフローチャートに示す順序に
従い、ノンクラスロックの獲得処理について詳細に説明
する。図5において、S21は、 ・ロックの獲得表示を行う。
【0026】・CS命令を用いて、ロック制御情報(C
PU)1にCPU識別子を設定する。 S22は、CS命令による更新成功か判別する。このC
S命令(コンペアアンドスワップ命令)は他CPUとの
排他をハードウェアが保証した命令であって、当該CS
命令により、図1の(a)のロック制御情報(CPU)
のノンクラスロックが“0”であって他のCPU識別子
が設定されていなかったので、ノンクラス獲得要求元の
CPU識別子の設定に成功したか判別する。YESの場
合には、ロック制御情報(CPU)1のノンクラスロッ
クにCPU識別子を設定できたと判明し、ノンクラスロ
ックの獲得に成功したので、ノンクラスロックの要求元
に復帰する(RC=0、リターンコードを表す)。一
方、NOの場合には、ロック制御情報(CPU)1のノ
ンクラスロックが“0”でなく他のCPU識別子が設定
されていたと判明したので、S23に進む。
【0027】S23は、自らが既に獲得しているか判別
する。YESの場合には、ノンクラスロックを既に保持
しているので、ノンクラスロック要求元へ復帰する(R
C=4)。一方、NOの場合には、ノンクラスロックを
獲得していないと判明したので、S24に進む。
【0028】S24は、自らがクラスロックを保持中か
判別する。YESの場合には、要求元を異常終了させ、
終了する(END)。一方、NOの場合には、S25に
進む。
【0029】S25は、ロック制御情報(CPU)1が
全て“0”が判別する。YESの場合には、S26に進
む。NOの場合には、繰り返し、全て“0”となってノ
ンクラスロックを獲得できる状態になるまで待機する。
【0030】S26は、CS命令を用いて、ロック制御
情報(CPU)1にCPU識別子を設定する。S27
は、ロック制御情報(CPU)1が全て“0”でノンク
ラスロックにCPU識別子の設定(更新)を成功したか
判別する。YESの場合には、ノンクラスロックの獲得
に成功したので、要求元に復帰する(RC=0)。一
方、NOの場合には、S25に戻る。
【0031】以上のように、ノンクラスロックの獲得要
求に対応して、CS命令を用いて、図1の(a)のロッ
ク制御情報(CPU)1のクラスロックおよびノンクラ
スロックが全て“0”でCPU識別子の設定(更新)に
成功したときに、ノンクラスロックの獲得に成功したと
して要求元に復帰する。一方、ロック制御情報(CP
U)1の全て“0”でないときは待機して全て“0”と
なりCPU識別子の設定(更新)に成功したときに、ノ
ンクラスロックの獲得に成功したとして要求元に復帰す
る。これらにより、ロック制御情報(CPU)1のノン
クラスロックを獲得し、排他的に資源をアクセスして処
理を行うことが可能となる。
【0032】次に、図6のフローチャートに示す順序に
従い、クラスロックの獲得処理について詳細に説明す
る。図6において、S31は、自らがクラスロックある
いはノンクラスロックを保持中か判別する。YESの場
合には、S39で自らノンクラスロックか判別してYE
SのときにS40で要求元を異常終了させ、一方、NO
のときに既にクラスロックを保持していたので、要求元
へ復帰する(RC=4)。一方、NOの場合には、自ら
がクラスロックあるいはノンクラスロックのいずれも保
持していないと判明したので、S32に進む。
【0033】S32は、 ・ロックの獲得表示を行う ・CS命令を用いて、ロック制御情報(CPU)1の自
CPUに対応するビットをオン“1”にする。
【0034】S33は、CS命令による更新成功か判別
する。YESの場合には、例えば図1の(a)のロック
制御情報(CPU)1のクラスロックの該当するCPU
のビットの“1”の設定に成功したと判明したので、S
34に進む。一方、NOの場合には、他CPUがロック
制御情報(CPU)1のノンクラスロックを保持してい
たため、クラスロックが獲得できなかったので、S41
に進む。
【0035】S34は、S33でCS命令によってロッ
ク制御情報(CPU)1のCPUのビット“1”の設定
に成功したので、CS命令を用いて資源ごとのロック制
御情報(資源)2にCPU識別子を設定する。
【0036】S35は、CS命令による更新成功か判別
する。YESの場合には、ロック制御情報(資源)2に
CPU識別子の設定に成功したと判明したので、クラス
ロックの獲得に成功したので、要求元へ復帰する(RC
=0)。一方、NOの場合には、ロック制御情報(資
源)2にCPU識別子の設定に失敗し、自分は獲得でき
なかったので、S36に進む。
【0037】S36は、資源ごとのロック制御情報(資
源)2が“0”か判別する。YESの場合には、資源ご
とのロック情報(資源)2のクラスロックの獲得が可能
であるので、S37に進む。一方、NOの場合には、待
機し、クラスロックの獲得が可能となるまで待機する。
【0038】S37は、CS命令を用いて資源ごとのロ
ック制御情報(資源)2にCPU識別子を設定する。S
38は、CS命令による更新成功か判別する。YESの
場合には、ロック制御情報(資源)2にCPU識別子の
設定に成功したと判明したので、クラスロックの獲得に
成功したので、要求元へ復帰する(RC=0)。一方、
NOの場合には、ロック制御情報(資源)2にCPU識
別子の設定に失敗し、自分は獲得できなかったので、S
36に戻る。
【0039】S41は、他がノンクラスロックを保持中
か判別する。YESの場合には、S42に進む。NOの
場合には、S32に戻る。S42は、ロック制御情報
(CPU)1が“0”か判別する。YESの場合には、
クラスロックが獲得できる状態と判明したので、S43
に進む。一方、NOの場合には、待機する。
【0040】S43は、CS命令を用いて、ロック制御
情報(CPU)1の自CPUに対応するビットをオン
“1”にする。S44は、CS命令による更新成功か判
別する。YESの場合には、S34に進み、CS命令を
用いて、資源ごとのロック制御情報(資源)2にCPU
識別子を設定し、クラスロックを獲得する。一方、NO
の場合には、S42に戻る。
【0041】以上によって、ロック制御情報(CPU)
1のノンクラスロックが設定されていないときに、CP
Uに対応するビット“1”に設定した後、資源ごとのロ
ック制御情報(資源)2にCPU識別子を設定し、クラ
スロックを獲得することが可能となる。
【0042】次に、図7のフローチャートに示す順序に
従い、図8を参照しつつ本発明の具体例について詳細に
説明する。これは、仮想空間でページフォルトが発生し
たときに、共通ロック(ノンクラスロック)によって実
ページを確保し、仮想空間1のロック(クラスロック)
によってページ管理テーブルに設定などするときのフロ
ーチャートである。
【0043】図7において、51は、ページフォルト割
り込みが仮想空間1で発生する。これは、図8の(a)
の仮想空間1でページフォルト割り込みが発生する。S
52は、共通ロック(システム全体のロック、ノンクラ
スロック)を獲得する。これは、既述したロック制御情
報(CPU)1のノンクラスロックを獲得する(CPU
識別子を設定して獲得する)。
【0044】S53は、使用可能キューの実ページを1
ページ確保する。これは、図8の(c)の使用可能キュ
ーからキューイングされている実ページを1ページ確保
する。
【0045】S54は、共通ロックを解放する。以上の
S52からS54によって共通ロックを獲得した状態
(図8の共通域の共通ロックを獲得した状態)で、当該
共通域中に存在する使用可能キューからキューイングさ
れている実ページを1ページ確保したのち、共通ロック
を解放する。これにより、の共通ロック(ノンクラス
ロック)の時間を必要最小限に削減し、他のCPUとの
競合を少なくすることが可能となる。
【0046】S55は、仮想空間1のロックを獲得す
る。これは、S52からS54で実ページを獲得したの
で、次に仮想空間1のロック(資源ごとのロック制御情
報(資源)2のロック)を獲得する。
【0047】S56は、DAT(動的アドレス変換テー
ブル)をチェックし、自CPUが処理すべきか判別す
る。YESの場合には、S57に進む。NOの場合に
は、他CPU処理なので、終了する。
【0048】S57は、ページ管理テーブルに設定(該
当ページに所有者名を登録)する。これは、図8の
(c)の実ページ管理テーブル中のここでは仮想空間1
の使用キューに実ページをキューイングする。
【0049】S58は、外部記憶→実ページのIO起動
すると共に、IO処理中をDATに表示(設定)する。
S59は、仮想空間1のロックを解放する。
【0050】以上のS55からS59によって、仮想空
間1のロックを獲得(資源ごとのロック制御情報(資
源)2のロックを獲得)した状態で、ページ管理テーブ
ル(図8の(c)の実ページ管理テーブル)中の仮想空
間1の使用キューに実ページをエンキューして実ページ
割当てを行うと共にI/O起動を行う。
【0051】S60は、S58で起動したI/O完了を
契機として、仮想空間1のロック獲得を行う。S61
は、仮想空間1のDATに仮想→実を設定し、参照可能
(仮想アドレスから実アドレスを参照可能)にする。
【0052】S62は、仮想空間1のロックを解放す
る。以上によって、S58でI/O起動した外部記憶→
実ページのI/O処理の完了を契機として、ここでは仮
想空間1のロックを獲得し、当該仮想空間1のDATに
仮想→実を設定し、ロックを解放する。これにより、必
要なときのみクラスロックを獲得して必要最小限の排
他を確保し、競合を最小に抑えることが可能となる。
【0053】尚、図7中のはノンクラスロックによる
逐次化の範囲を示し、はクラスロックによる逐次化の
範囲を示す。クラスロックによって、同一空間内の他の
実行単位との逐次化、およびシステムの実ページ補充
(LRU制御のための長期未参照ページのチェックや外
部記憶への追い出し処理)との逐次化が可能となる。
【0054】図8は、本発明の具体例説明図を示す。図
8の(a)は、仮想ページの状態を示す。ここで、仮想
空間1、2、3、4、5および共通域から構成されてい
る。
【0055】図8の(b)は、実ページの割当て状態を
示す。ここで、R0、R1・・・Rnは、実ページを表
す。また、 ・Frは使用可能な状態を表す。
【0056】・Cmは共通域として使用中を表す。 ・A1は仮想空間1で使用中を表す。 ・A5は仮想空間5で使用中を表す。
【0057】図8の(c)は、実ページ管理テーブル
(ページ管理テーブル)の状態を示す。 ・使用可能キューは、使用可能な実ページをキューイン
グしたものであって、ここでは、R1、R7、R11・
・・Rnの実ページである。図8の(b)中のFrと設
定してある実ページに対応する。
【0058】・共通域使用キューは、共通域で使用中の
実ページをキューイングしたものであって、ここでは、
R0、R9、R10・・・の実ページである。図8の
(b)中のCmと設定してある実ページに対応する。
【0059】・仮想空間1使用キューは、仮想空間1で
使用中の実ページをキューイングしたものであって、こ
こでは、R2、R5・・・の実ページである。図8の
(b)中のA1と設定してある実ページに対応する。
【0060】・仮想空間2使用キューは、仮想空間2で
使用中の実ページをキューイングしたものであって、こ
こでは、R6・・・の実ページである。図8の(b)中
のA2と設定してある実ページに対応する。
【0061】・仮想空間5使用キューは、仮想空間5で
使用中の実ページをキューイングしたものであって、こ
こでは、R3、R8・・・の実ページである。図8の
(b)中のA5と設定してある実ページに対応する。
【0062】
【発明の効果】以上説明したように、本発明によれば、
ロック制御情報(CPU)1のクラスロックおよびノン
クラスロックにCPU識別子(あるいはCPUに対応す
るビット)が設定されていないときに、ノンクラスロッ
クにCPU識別子(あるいはCPUに対応するビット)
を設定して全体の排他を獲得したり、ロック制御情報
(CPU)1のノンクラスロックにCPU識別子(ある
いはCPUに対応するビット)が設定されていないとき
に、クラスロックにCPU識別子(あるいはCPUに対
応するビット)を設定した後、ロック制御情報(資源)
2にCPU識別子(あるいはCPUに対応するビット)
を設定して排他を獲得する構成を採用しているため、全
体の資源に対するノンクラスロックとしての逐次化要求
を満しながら、細分化した資源に対するクラスロックと
しての逐次化要求も満たし、資源の逐次化によって生じ
るCPU間の不必要な競合を抑えることができる。これ
らにより、クラス化の対象とした資源の逐次化に対し
て、逐次化処理の競合を極力抑えることができるため、
CPUの並列処理性を高め、計算機システムの処理能力
を向上させることができる。
【図面の簡単な説明】
【図1】本発明の1実施例構成図である。
【図2】本発明のロック制御情報(CPU)の説明図で
ある。
【図3】本発明の動作説明図(ノンクラスロック有)で
ある。
【図4】本発明の動作説明図(クラスロック有)であ
る。
【図5】本発明のノンクラスロックの獲得処理フローチ
ャートである。
【図6】本発明のクラスロックの獲得処理フローチャー
トである。
【図7】本発明の具体例説明フローチャートである。
【図8】本発明の具体例説明図である。
【符号の説明】
1:ロック制御情報(CPU) 2:ロック制御情報(資源)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】資源の排他制御を行う排他制御方式におい
    て、 クラスロックおよびノンクラスロックを獲得したCPU
    識別子(あるいはCPUに対応するビット)を設定する
    ロック制御情報(CPU)(1)と、 クラス化した資源を獲得したCPU識別子(あるいはC
    PUに対応するビット)を設定するロック制御情報(資
    源)(2)とを備え、 上記ロック制御情報(CPU)(1)のクラスロックお
    よびノンクラスロックにCPU識別子(あるいはCPU
    に対応するビット)が設定されていないときに、ノンク
    ラスロックにCPU識別子(あるいはCPUに対応する
    ビット)を設定して全体の排他を獲得し、 一方、上記ロック制御情報(CPU)(1)のノンクラ
    スロックにCPU識別子(あるいはCPUに対応するビ
    ット)が設定されていないときに、クラスロックにCP
    U識別子(あるいはCPUに対応するビット)を設定し
    た後、上記ロック制御情報(資源)(2)にCPU識別
    子(あるいはCPUに対応するビット)を設定して当該
    資源の排他を獲得するように構成したことを特徴とする
    排他制御方式。
JP4256330A 1992-09-25 1992-09-25 排他制御方式 Pending JPH06110846A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4256330A JPH06110846A (ja) 1992-09-25 1992-09-25 排他制御方式
US08/618,405 US5615374A (en) 1992-09-25 1996-03-19 Lock control method for resource

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4256330A JPH06110846A (ja) 1992-09-25 1992-09-25 排他制御方式

Publications (1)

Publication Number Publication Date
JPH06110846A true JPH06110846A (ja) 1994-04-22

Family

ID=17291178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4256330A Pending JPH06110846A (ja) 1992-09-25 1992-09-25 排他制御方式

Country Status (2)

Country Link
US (1) US5615374A (ja)
JP (1) JPH06110846A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2766217B2 (ja) * 1994-06-14 1998-06-18 甲府日本電気株式会社 並列処理装置
US6289410B1 (en) * 1996-07-18 2001-09-11 Electronic Data Systems Corporation Method and system for maintaining consistency of shared objects based upon instance variable locking
US6000029A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for affecting subsequent instruction processing in a data processor
US6374285B1 (en) * 1998-05-15 2002-04-16 Compaq Computer Corporation Method for mutual exclusion of locks in a remote-write globally ordered network of processors
US6611911B1 (en) * 1999-12-30 2003-08-26 Intel Corporation Bootstrap processor election mechanism on multiple cluster bus system
US6658522B1 (en) * 2000-06-16 2003-12-02 Emc Corporation Method to reduce overhead associated with system I/O in a multiprocessor computer system
JP3864250B2 (ja) * 2002-10-31 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 排他制御装置、排他制御方法、プログラム、及び記録媒体
US6938054B2 (en) * 2002-11-25 2005-08-30 International Business Machines Corporation Systems, methods, and computer program products to optimize serialization when porting code to IBM S/390 UNIX system services from a UNIX system
US8078990B2 (en) 2006-02-01 2011-12-13 Research In Motion Limited Secure device sharing
US7861093B2 (en) * 2006-08-30 2010-12-28 International Business Machines Corporation Managing data access via a loop only if changed locking facility
US9639392B2 (en) * 2013-12-17 2017-05-02 Intel Corporation Unbounded transactional memory with forward progress guarantees using a hardware global lock

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US5319780A (en) * 1987-10-19 1994-06-07 International Business Machines Corporation System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued
JPH01303527A (ja) * 1988-05-31 1989-12-07 Hitachi Ltd 共有資源の管理方法
US5251318A (en) * 1988-09-02 1993-10-05 Hitachi, Ltd. Multiprocessing system comparing information copied from extended storage before and after processing for serializing access to shared resource
JPH0318935A (ja) * 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
US5263161A (en) * 1989-07-26 1993-11-16 Massachusetts Institute Of Technology Non-busy waiting resource control
EP0432075B1 (en) * 1989-11-09 1997-02-26 International Business Machines Corporation Multiprocessor with relatively atomic instructions
JPH07101410B2 (ja) * 1990-01-17 1995-11-01 インターナショナル、ビジネス、マシーンズ、コーポレーション データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
JP2699600B2 (ja) * 1990-01-30 1998-01-19 日本電気株式会社 資源の排他制御方式
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
JPH06342396A (ja) * 1990-07-02 1994-12-13 Internatl Business Mach Corp <Ibm> 共有データのアクセスを直列化する方法及び装置
US5317749A (en) * 1992-09-25 1994-05-31 International Business Machines Corporation Method and apparatus for controlling access by a plurality of processors to a shared resource
US5392433A (en) * 1992-09-25 1995-02-21 International Business Machines Corporation Method and apparatus for intraprocess locking of a shared resource in a computer system

Also Published As

Publication number Publication date
US5615374A (en) 1997-03-25

Similar Documents

Publication Publication Date Title
TW498281B (en) Interface system and method for asynchronously updating a shared resource
US6668291B1 (en) Non-blocking concurrent queues with direct node access by threads
US4509119A (en) Method for managing a buffer pool referenced by batch and interactive processes
US5287521A (en) Method and apparatus for releasing and obtaining shared and exclusive locks
US6412034B1 (en) Transaction-based locking approach
EP0682312A2 (en) Hardware implemented locking mechanism for parallel/distributed computer system
US5987550A (en) Lock mechanism for shared resources in a data processing system
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
EP0965919A2 (en) A probabilistic queue lock
US7100161B2 (en) Method and apparatus for resource access synchronization
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US6862595B1 (en) Method and apparatus for implementing a shared message queue using a list structure
JPH03222057A (ja) データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
US20060070072A1 (en) Information processing apparatus, memory area management method, and computer program
JPH06110846A (ja) 排他制御方式
US6185650B1 (en) High performance locking facility
US6836887B1 (en) Recyclable locking for multi-threaded computing environments
US6253274B1 (en) Apparatus for a high performance locking facility
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
US11500693B2 (en) Distributed system for distributed lock management and method for operating the same
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
EP2256627B1 (en) Queuing for locks on data
US8341368B2 (en) Automatic reallocation of structured external storage structures
US6393533B1 (en) Method and device for controlling access to memory
US5983015A (en) Latch-free sequence generation for high concurrency systems

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20011002