JP2699600B2 - 資源の排他制御方式 - Google Patents

資源の排他制御方式

Info

Publication number
JP2699600B2
JP2699600B2 JP2019944A JP1994490A JP2699600B2 JP 2699600 B2 JP2699600 B2 JP 2699600B2 JP 2019944 A JP2019944 A JP 2019944A JP 1994490 A JP1994490 A JP 1994490A JP 2699600 B2 JP2699600 B2 JP 2699600B2
Authority
JP
Japan
Prior art keywords
address
occupation
resource
lock table
lock
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.)
Expired - Lifetime
Application number
JP2019944A
Other languages
English (en)
Other versions
JPH03224036A (ja
Inventor
幸貴 斎川
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 JP2019944A priority Critical patent/JP2699600B2/ja
Priority to US07/648,483 priority patent/US5202990A/en
Publication of JPH03224036A publication Critical patent/JPH03224036A/ja
Application granted granted Critical
Publication of JP2699600B2 publication Critical patent/JP2699600B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は電子計算機システムにおける資源の排他制御
方式に関するものである。
〔従来の技術〕
電子計算機システムの資源の中には、2つ以上のプロ
グラム(タスク)が同時に処理を行うと矛盾を生じてし
まうものがあり、入出力装置,ファイル,データ,プロ
グラム等が該当する。従って、このような資源に対して
は、矛盾が生じないように、特定のプログラムが使用し
ている間は他のプログラムに対して使用を許さない排他
制御を行っている。なお、この排他制御は、プログラム
から資源の占有要求が出された場合にその資源が他のプ
ログラムによる占有(ロック)状態でない使用可能な状
態であれば占有状態として使用を許可し、その後、その
資源が不要となってプログラムから資源の占有解除要求
が出された場合に占有状態を解除することによって行わ
れる。
ところで、資源の排他制御を行うことにより派生する
新たな問題としてデッドロックがある。これは、例え
ば、ある資源を占有したプログラムが次に他の資源を占
有しようとした時、その資源が他のプログラムによって
既に占有されており、かつ、その他のプログラムがこち
ら側のプログラムの既に占有している資源を待っている
ような状態であり、このようになると永久に待ち状態と
なってしまう。
このようなデッドロックを防止する方法の一つとし
て、資源の占有および占有解除の順序を決める方法があ
る。例えば、所定の処理に用いられる資源α,βについ
てα→βという占有順序を決めておけば、あるプログラ
ムが資源αを占有し、その後、資源βを占有しようとし
たときに、他のプログラムが資源βを既に占有し、かつ
資源αの待ち状態にあるということはなくなり、デッド
ロックが防止される。
一方、限られた資源を有効に利用するためには、資源
の占有時間を短くする必要があり、そのため、資源を細
分化し、資源に対するロックを必要に応じて多段的に行
うようにしており、従来、このように細分化された資源
に対しても占有および占有解除の順序を決め、それに従
って占有および占有解除を行うことによりデッドロック
の発生を防止していた。
〔発明が解決しようとする課題〕
上述したように、従来はデッドロックの発生を防止す
るために資源の占有および解除の順序を決めていたが、
これらの資源の占有および解除の要求は全てプログラム
の側で行わなければならず、この際、占有および解除の
順序を間違えるデッドロックを有効に防止できなくなる
ため間違えないように注意しなければならず、プログラ
ムのコーディングに要する負担が大きいと共に、少なか
らず間違いが発生しやすいという欠点があった。第6図
は占有順序を守りながら資源の占有を行う例であり、資
源α,β,γについてα→β→γという順序が決められ
ていたとすると、プログラムは最初に資源αについて占
有要求を行い、次いで資源βについて占有要求を行い、
次いで資源γについて占有要求を行うことになり、何度
も占有要求を行わなければならず、それだけ間違う確率
も高くなるものであった。
本発明は上記の点に鑑み提案されたものであり、その
目的とするところは、資源の占有および占有解除の順序
が一意に決まるようなものについて、簡単な指定で自動
的に占有実行および占有解除が行える資源の排他制御方
式を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、各資源毎のロッ
クテーブルを有し、各ロックテーブルは次に占有される
資源のロックテーブルのアドレスが設定される次ロック
テーブルアドレスと、直前に占有される資源のロックテ
ーブルのアドレスが設定される前ロックテーブルアドレ
スと、対応する資源が占有状態であるか否かを示すロッ
クバイトとから構成されている占有順序記憶手段と、 プログラムからの先頭アドレスおよび末尾アドレスを
伴う資源の占有要求に従い、前記占有順序記憶手段中の
前記先頭アドレスが指し示すロックテーブルを先頭と
し、前記末尾アドレスが指し示すロックテーブルを最後
尾とする、次ロックテーブルアドレスで繋がる全てのロ
ックテーブルに対して、前記先頭アドレスが指し示すロ
ックテーブルから順に資源の占有を行う占有実行手段
と、 プログラムからの先頭アドレスおよび末尾アドレスを伴
う資源の占有解除要求に従い、前記占有順序記憶手段中
の前記先頭アドレスが指し示すロックテーブルを先頭と
し、前記末尾アドレスが指し示すロックテーブルを最後
尾とする、前ロックテーブルアドレスで繋がる全てのロ
ックテーブルに対して、前記先頭アドレスが指し示すロ
ックテーブルから順に資源の占有を解除する占有解除手
段とを備えるようにしている。
〔作用〕
本発明の資源の排他制御方式にあっては、各資源毎の
ロックテーブルを有する占有順序記憶手段において、各
ロックテーブルは次に占有される資源のロックテーブル
のアドレスが設定される次ロックテーブルアドレスと、
直前に占有される資源のロックテーブルのアドレスが設
定される前ロックテーブルアドレスと、対応する資源が
占有状態であるか否かを示すロックバイトとから構成さ
れており、次ロックテーブルアドレスで繋がるロックテ
ーブルの順序が資源の占有順序となり、前ロックテーブ
ルアドレスで繋がるロックテーブルの順序が資源の占有
解除の順序となる。そして、プログラムからの先頭アド
レスおよび末尾アドレスを伴う資源の占有要求があった
場合、占有実行手段が、占有順序記憶手段中の前記先頭
アドレスが指し示すロックテーブルを先頭とし、前記末
尾アドレスが指し示すロックテーブルを最後尾とする、
次ロックテーブルアドレスで繋がる全てのロックテーブ
ルに対して、前記先頭アドレスが指し示すロックテーブ
ルから順に資源の占有を行う。他方、プログラムからの
先頭アドレスおよび末尾アドレスを伴う資源の占有解除
要求があった場合、占有解除手段が、占有順序記憶手段
中の前記先頭アドレスが指し示すロックテーブルを先頭
とし、前記末尾アドレスが指し示すロックテーブルを最
後尾とする、前ロックテーブルアドレスで繋がる全ての
ロックテーブルに対して、前記先頭アドレスが指し示す
ロックテーブルから順に資源の占有を解除する。
〔実施例〕
以下、本発明の実施例につき図面を参照して説明す
る。
第1図は本発明の資源の排他制御方式の一実施例を示
す構成図である。第1図において、本実施例は、資源の
占有順序を予め記憶しておく占有順序記憶手段1と、プ
ログラムからの資源の占有要求に従い占有順序記憶手段
1の記憶内容を参照しながら資源の占有を行う占有実行
手段2と、プログラムからの資源の占有解除要求に従い
占有順序記憶手段1の記憶内容を参照しながら資源の占
有を解除する占有解除手段3とから構成されている。
第2図は占有順序記憶手段1において資源の占有およ
び占有解除の順序を記憶する主記憶上のロックテーブル
4の論理的構成を示したものであり、チェーニングされ
た複数のロックテーブル4によって占有順序記憶手段1
が構成される。ロックテーブル4は細分化された各資源
に対応して設けられるものであり、次に占有される資源
のロックテーブル(4)のアドレスが設定される次ロッ
クテーブルアドレス4aと、直前に占有される資源のロッ
クテーブル(4)のアドレスが設定される前ロックテー
ブルアドレス4bと、対応する資源が占有状態であるか否
かを示すロックバイト4cとを含んでいる。なお、ロック
バイト4cの状態は「ロック未」,「ロック中」のいずれ
かであり、「ロック未」の場合は対応する資源が占有さ
れていないことを示し、「ロック中」の場合は対応する
資源が占有されていることを示す。
第3図は占有実行手段2の処理を示したものであり、
以下、占有実行手段2の動作を説明する。
先ず、占有実行手段2は先頭アドレスと末尾アドレス
とを入力情報とする。ここで、先頭アドレスとは資源を
順番に占有する時に一番最初に占有を行うべき資源に対
応するロックテーブル4のアドレスであり、末尾アドレ
スとは資源を順番に占有する時に一番最後に占有を行う
べき資源に対応するロックテーブル4のアドレスであ
る。
しかして、占有実行手段2は、先ず、レジスタxに先
頭アドレスを設定する(ステップ21)。
次いで、レジスタxの示すロックテーブル4のロック
バイト4cを参照し、当該資源がロックされているか否か
についてチェックする(ステップ22)。
そして、レジスタxの示すロックテーブル4のロック
バイト4cが「ロック中」状態であった場合(ステップ22
のYes)には、ロックバイト4cが「ロック中」状態でな
くなるまで(「ロック未」状態となるまで)、ステップ
22の処理を適当な周期で繰り返す。
また、レジスタxの示すロックテーブル4のロックバ
イト4cが「ロック中」状態でない場合(ステップ22のN
o)には、そのロックバイト4cに「ロック中」状態を設
定する(ステップ23)。これにより、当該資源が占有さ
れる。
次いで、レジスタxの値が末尾アドレスであるか否か
をチェックする(ステップ24)。
そして、レジスタxの値が末尾アドレスでない場合
(ステップ24のNo)には、レジスタxの示すロックテー
ブル4から次ロックテーブルアドレス4aを取得し、レジ
スタxに設定し(ステップ25)、ステップ22に戻る。
このようにして順々に次ロックテーブルアドレス4aに
よってチェーンされたロックテーブル4のロックバイト
4cに「ロック中」状態を設定して行く。
そして、レジスタxの値が末尾アドレスと等しい場合
(ステップ24のYes)には、呼び出し元に制御を移行し
て占有実行手段2の処理を終了する。
5は上記の占有処理の具体例を示したものである。し
かして、3つの資源α,β,γをα→β→γの順序で占
有するものとすると、プログラムが先頭アドレスAαと
末尾アドレスAγとを指定して占有要求を行うと、占有
実行手段2は占有順序記憶手段1のロックテーブル4
α,4β,4γを順序にたどり、そのロックバイトを「ロッ
ク中」とすることにより、資源α,β,γを順序通りに
占有状態とする。このように、途中の資源βを指定する
ことなく、1回だけ占有要求をプログラムから出すだけ
で自動的に正しい順序で占有が行われる。
次に、第4図は占有解除手段3の処理を示したもので
あり、以下、占有解除手段3の動作を説明する。
先ず、占有解除手段3は解除先頭アドレスと解除末尾
アドレスとを入力情報とする。ここで、解除先頭アドレ
スとは資源を順番に占有解除する時に一番最初に占有解
除を行うべき資源に対応するロックテーブル4のアドレ
スであり、解除末尾アドレスとは資源を順番に占有解除
する時に一番最後に占有解除を行うべき資源に対応する
ロックテーブル4のアドレスである。
しかして、占有解除手段3は、先ず、レジスタyに解
除先頭アドレスを設定する(ステップ31)。
次いで、レジスタyの示すロックテーブル4のロック
バイト4cに「ロック未」状態を設定する(ステップ3
2)。
次いで、レジスタyの値が解除末尾アドレスであるか
否かをチェックする(ステップ33)。
そして、レジスタyの値が解除末尾アドレスでない場
合(ステップ33のNo)には、レジスタyの示すロックテ
ーブル4から前ロックテーブルアドレス4bを取得し、レ
ジスタyに設定し(ステップ34)、ステップ32に戻る。
このようにして、順々に、前ロックテーブルアドレス
4bによってチェーンされたロックテーブル4のロックバ
イト4cに「ロック未」状態を設定して行く。
そして、レジスタyの値が解除末尾アドレスと等しい
場合(ステップ33のYes)には、呼び出し元に制御を移
行して占有解除手段3の処理を終了する。
〔発明の効果〕
以上説明したように、本発明の資源の排他制御方式に
あっては、資源の先頭と後尾とを指定した要求等の簡単
な操作により、予め記憶しておいた順序に従って自動的
に占有および占有解除が行われるため、プログラムによ
る占有要求および占有解除要求の回数が少なくなり、プ
ログラムのコーディングが容易になると共に、間違いの
発生を皆無とすることができる効果がある。
【図面の簡単な説明】
第1図は本発明の資源の排他制御方式の一実施例を示す
構成図、 第2図は第1図における占有順序記憶手段を構成するロ
ックテーブルの論理的構成図、 第3図は第1図における占有実行手段の処理のフローチ
ャート、 第4図は第1図における占有解除手段の処理のフローチ
ャート、 第5図は占有処理の具体例の説明図および、 第6図は従来の占有処理の説明図である。 図において、 1……占有順序記憶手段 2……占有実行手段 3……占有解除手段 4……ロックテーブル

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】各資源毎のロックテーブルを有し、各ロッ
    クテーブルは次に占有される資源のロックテーブルのア
    ドレスが設定される次ロックテーブルアドレスと、直前
    に占有される資源のロックテーブルのアドレスが設定さ
    れる前ロックテーブルアドレスと、対応する資源が占有
    状態であるか否かを示すロックバイトとから構成されて
    いる占有順序記憶手段と、 プログラムからの先頭アドレスおよび末尾アドレスを伴
    う資源の占有要求に従い、前記占有順序記憶手段中の前
    記先頭アドレスが指し示すロックテーブルを先頭とし、
    前記末尾アドレスが指し示すロックテーブルを最後尾と
    する、次ロックテーブルアドレスで繋がる全てのロック
    テーブルに対して、前記先頭アドレスが指し示すロック
    テーブルから順に資源の占有を行う占有実行手段と、 プログラムからの先頭アドレスおよび末尾アドレスを伴
    う資源の占有解除要求に従い、前記占有順序記憶手段中
    の前記先頭アドレスが指し示すロックテーブルを先頭と
    し、前記末尾アドレスが指し示すロックテーブルを最後
    尾とする、前ロックテーブルアドレスで繋がる全てのロ
    ックテーブルに対して、前記先頭アドレスが指し示すロ
    ックテーブルから順に資源の占有を解除する占有解除手
    段とを備えたことを特徴とする資源の排他制御方式。
JP2019944A 1990-01-30 1990-01-30 資源の排他制御方式 Expired - Lifetime JP2699600B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019944A JP2699600B2 (ja) 1990-01-30 1990-01-30 資源の排他制御方式
US07/648,483 US5202990A (en) 1990-01-30 1991-01-30 Exclusive control system capable of simply locking each resource

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019944A JP2699600B2 (ja) 1990-01-30 1990-01-30 資源の排他制御方式

Publications (2)

Publication Number Publication Date
JPH03224036A JPH03224036A (ja) 1991-10-03
JP2699600B2 true JP2699600B2 (ja) 1998-01-19

Family

ID=12013317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019944A Expired - Lifetime JP2699600B2 (ja) 1990-01-30 1990-01-30 資源の排他制御方式

Country Status (2)

Country Link
US (1) US5202990A (ja)
JP (1) JP2699600B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04308961A (ja) * 1991-01-18 1992-10-30 Ncr Corp 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US5317737A (en) * 1991-07-29 1994-05-31 Ncr Corporation Method and apparatus for controlling a re-entrant synchronization lock tenure in a multiprocessor system
JPH07191944A (ja) * 1991-09-11 1995-07-28 Internatl Business Mach Corp <Ibm> 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
JPH05204677A (ja) * 1992-01-30 1993-08-13 Fujitsu Ltd 連想ロック方式
JPH06110846A (ja) * 1992-09-25 1994-04-22 Fujitsu Ltd 排他制御方式
US5761670A (en) * 1995-12-08 1998-06-02 Sun Microsystems, Inc. System and method for space efficient object locking using global and local locks
US5794241A (en) * 1996-04-08 1998-08-11 Oracle Corporation Method and apparatus for dynamically disabling and enabling table locking for a database
US5974473A (en) * 1996-06-14 1999-10-26 Texas Instruments Incorporated System for controlling insertion, locking, and removal of modules by removing plurality of device drivers for module to be removed from BIOS and informing BIOS of module removal
US6253274B1 (en) 1998-08-28 2001-06-26 International Business Machines Corporation Apparatus for a high performance locking facility
US6185650B1 (en) 1998-08-28 2001-02-06 International Business Machines Corporation High performance locking facility
US6189007B1 (en) 1998-08-28 2001-02-13 International Business Machines Corporation Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
US6088757A (en) * 1998-08-28 2000-07-11 International Business Machines Corporation Computer program means and device for conducting high performance locking facility in a loosely coupled environment
US6574293B1 (en) * 1998-10-28 2003-06-03 Ericsson Inc. Receivers and methods for reducing interference in radio communications
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
JP3696740B2 (ja) 1998-12-07 2005-09-21 富士通株式会社 チャネルインタフェース再結合制御方法およびファイル制御装置
US6973521B1 (en) * 2000-05-16 2005-12-06 Cisco Technology, Inc. Lock controller supporting blocking and non-blocking requests
JP3755415B2 (ja) * 2001-04-04 2006-03-15 株式会社デンソー 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体
US7506090B2 (en) * 2006-06-14 2009-03-17 Honeywell International Inc. System and method for user-configurable resource arbitration in a process control system
US8434082B2 (en) * 2006-06-22 2013-04-30 Intel Corporation Efficient ticket lock synchronization implementation using early wakeup in the presence of oversubscription
US8069445B2 (en) * 2006-06-30 2011-11-29 Intel Corporation Method and apparatus for detecting lock acquisition hierarchy violations and unsafe lock releases
US8381308B2 (en) * 2009-05-27 2013-02-19 International Business Corporation Computer-implemented multi-resource shared lock
WO2012114516A1 (ja) * 2011-02-25 2012-08-30 富士通株式会社 ロック制御装置、ロック制御プログラムおよびロック制御方法
US8718807B2 (en) 2012-03-23 2014-05-06 Honeywell International Inc. System and method for robust real-time control of regular automated production using master recipe
CN114679465A (zh) * 2022-03-28 2022-06-28 北京火山引擎科技有限公司 资源操作方法、装置、电子设备及存储介质

Family Cites Families (8)

* 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
JPS61233849A (ja) * 1985-04-08 1986-10-18 Hitachi Ltd デ−タベ−ス排他制御方法
US4779194A (en) * 1985-10-15 1988-10-18 Unisys Corporation Event allocation mechanism for a large data processing system
US4807111A (en) * 1987-06-19 1989-02-21 International Business Machines Corporation Dynamic queueing method
JPH0814800B2 (ja) * 1987-09-11 1996-02-14 株式会社日立製作所 データベース排他制御方法
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
JPH01303527A (ja) * 1988-05-31 1989-12-07 Hitachi Ltd 共有資源の管理方法
US4979105A (en) * 1988-07-19 1990-12-18 International Business Machines Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
発明協会公開技報・公技番号89−9878

Also Published As

Publication number Publication date
JPH03224036A (ja) 1991-10-03
US5202990A (en) 1993-04-13

Similar Documents

Publication Publication Date Title
JP2699600B2 (ja) 資源の排他制御方式
US5257368A (en) System for dynamically changing a system I/O configuration by determining differences between current and future configurations and describing differences to software and hardware control blocks
US4791554A (en) Method and apparatus for preventing deadlock in a data base management system
US6889269B2 (en) Non-blocking concurrent queues with direct node access by threads
US5220654A (en) Method and system for managing an operating system definition of a dynamically modifiable i/o configuration
US5502840A (en) Method and apparatus for advising a requesting process of a contention scheme to employ to access a shared resource
US6449614B1 (en) Interface system and method for asynchronously updating a share resource with locking facility
US7188344B1 (en) Architecture for a read/write thread lock
JPH0318935A (ja) データリストに対するアクセスの直列化方式
JPH04229355A (ja) データアクセス方法及びデータ処理システム
EP0433882A2 (en) Accelerated deadlock detection in congested data transactions
JPH07120299B2 (ja) マルチプロセッサシステムの試験方法
US6757679B1 (en) System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
CN108388424B (zh) 一种调用接口数据的方法、装置及电子设备
US6546412B1 (en) State-based object transition control and nested locking
JPS6336545B2 (ja)
JPH0115899B2 (ja)
JPS62226367A (ja) デイジタル計算機システム
JPH0520269A (ja) 排他制御方式
JPS61194548A (ja) フアイルアクセス排他制御方式
JPH0833831B2 (ja) 共有資源の占有競合管理方法
JP2926873B2 (ja) 計算機システム
JPH03164963A (ja) 情報処理装置における排他制御方式
JPS63104146A (ja) 資源管理システム
JPH04343143A (ja) マルチプロセッサシステムにおける共有資源相互排除方式