JP2574991B2 - コンピュータ・システムにおける共用資源のプロセス内ロッキング方法及びコンピュータ・システム - Google Patents

コンピュータ・システムにおける共用資源のプロセス内ロッキング方法及びコンピュータ・システム

Info

Publication number
JP2574991B2
JP2574991B2 JP5210751A JP21075193A JP2574991B2 JP 2574991 B2 JP2574991 B2 JP 2574991B2 JP 5210751 A JP5210751 A JP 5210751A JP 21075193 A JP21075193 A JP 21075193A JP 2574991 B2 JP2574991 B2 JP 2574991B2
Authority
JP
Japan
Prior art keywords
lock
shared
type
resource
program
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
JP5210751A
Other languages
English (en)
Other versions
JPH06161789A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06161789A publication Critical patent/JPH06161789A/ja
Application granted granted Critical
Publication of JP2574991B2 publication Critical patent/JP2574991B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理分野に関し、
具体的には、コンピュータ・システムにおける共用資源
をプロセス内でロックする方法及び装置に関する。
【0002】
【従来の技術】初期のコンピュータ・システムでは、一
度に実行できるタスク又はプロセスは1つだけであっ
た。このようなシングル・タスキング環境においては、
磁気記憶デバイス、テープ、プリンタなどのコンピュー
タ資源はコンピュータ・システム上で現在実行中の単一
タスクが排他的に使用していた。そのタスクの実行が完
了したとき、コンピュータ資源はコンピュータ・システ
ムで次に実行されるタスクに対して使用できるようにな
されていた。このような環境では、同時に実行されるタ
スクは1つだけであるので、コンピュータ資源をロック
する理由はない。別の言い方をすると、コンピュータ資
源のロックの粒度はコンピュータ・システム自体のレベ
ルにあると考えることができる。
【0003】DOSオペレーティング・システムはシング
ル・タスキング環境という単純な世界の一例であり、パ
ーソナル・コンピュータ業界では多年にわたって存在し
ていた。しかし、コンピュータ・ユーザは同時に複数の
タスク又はプロセスを実行する能力を備えたもっと強力
なコンピュータを要求していた。UNIX、Windows、OS/2
などの、もっと複雑なオペレーティング・システムは多
数の異種タスクを同時並行に実行できる機能を備えてい
る。例えば、Windowsユーザは2以上のウィンドウをコン
ピュータ・ディスプレイ上に表示できるようになってい
る。各ウィンドウは相互に独立してコンピュータにタス
クを実行することを要求できるようになっている。従っ
て、コンピュータにタスクを同時に実行させることを2
以上のウィンドウから要求した場合、コンピュータはマ
ルチタスキング・モードで稼働していることになる。
【0004】コンピュータがマルチタスキング・モード
で動作するとき、コンピュータ資源がタスク間で確実に
共用できるようにする配慮が必要である。WindowsとOS/
2はあるタスクがある資源を使用しているとき、他のす
べてのタスクをロックアウトすることによって資源への
アクセスを制御している。例えば、Windowsユーザはあ
るウィンドウでLotus 1-2-3を実行させ、別のウィンド
ウでTurboTaxを実行させることができる。Lotus 1-2-3
とTurboTaxの両方は磁気記憶デバイスを使用して、デー
タを同じ記憶ロケーションに同時に書くタスクを実行す
ることを独立に試みることができる。Windowsでは、Lot
us 1-2-3が磁気記憶デバイスを使用していると、TurboT
axが磁気記憶デバイスに書くことを拒否することによっ
てデータが消失又は破壊されるのを防止している。UNI
X、Windows及びOS/2で使用されているコンピュータ資源
ロックの粒度はタスク又はプロセスのレベルになってい
る。
【0005】タスク又はプロセス・レベルでのロック粒
度は現在公知のマルチタスキング・コンピュータ・シス
テムでは十分であるが、コンピュータ・ユーザが近い将
来に、コンピュータ・システムにさらに強力な能力と高
速化を要求することは時間の問題になっている。タスク
又はプロセス・レベルでのロック粒度には、コンピュー
タ・システムの能力と速度をコンピュータ・ユーザが必
要としていると考えられるレベルまでに向上するには制
約があり、また、システムを強力化すると、データ保全
性、システム保全性又はオペレーションに影響を与える
おそれがある。
【0006】
【発明が解決しようとする課題】本発明の主目的はコン
ピュータ・システムのオペレーションを強化することに
ある。
【0007】本発明の別の目的はコンピュータ・システ
ムにおける共用資源をプロセス内でロッキングすること
にある。
【0008】
【課題を解決するための手段】本発明によれば、コンピ
ュータ・システムにおける共用資源をプロセス内でロッ
キングする方法及び装置が開示されている。コンピュー
タ・システムはオペレーティング・システムの制御の下
で動作する。オペレーティング・システムは複数のタス
ク(以下、プロセスと呼ぶ)を非同期で実行することをサ
ポートしている。各プロセスは非同期で実行中のプログ
ラムによって実行される機能を備えている。オペレーテ
ィング・システムは磁気記憶デバイス、テーブ・ドライ
ブ、プリンタ、ソフトウェア・モジュール、メッセージ
待ち行列などの共用コンピュータ資源を一度に1つのプ
ロセスだけが使用できるように保証するほかに、プロセ
ス内で実行中のプログラムのレベルで共用コンピュータ
資源へのアクセスを許可する。プロセス内で実行中のあ
るプログラムが共用コンピュータ資源をアクセスすると
き、コンピュータ・システム内で実行中の他のプロセス
だけでなく、そのプロセス内で非同期に実行中の他のす
べてのプログラムも、その共用資源からロックアウトす
るようにオペレーティング・システムに要求する。本発
明によれば、排他ロックや共用ロックといった、種々の
ロックもサポートされる。
【0009】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0010】図1は本発明によるコンピュータ・システ
ム10を示すブロック図である。システム・ユニット11は
共用資源70、メモリ14及びワークステーション・コント
ローラ15に接続された1又は2以上のプロセッサ12を内蔵
している。メモリ14の一部はオペレーティング・システ
ム16によって使用され、ロック・テーブル80もストアし
ている。プロセッサ12は図8〜図10及び図11を参照して
以下に詳しく説明するように、本発明を実施するように
適当にプログラムされている。システム・ユニット11は
ワークステーション20に接続されている。ワークステー
ション20はディスプレイ21、キーボード28及びインプッ
ト・デバイス29を備えている。ディスプレイ21はウィン
ドウ31〜34を有する。
【0011】本発明の好適実施例では、コンピュータ・
システム10は本願の出願時に広くユーザに提供されてい
るIBM AS/400であり、オペレーティング・システム16
はOS/400バージョン2、リリース2である。ただし、オペ
レーティング・システム16はIEEE発行の「ポータブ
ル(移植可能)オペレーティング・システムのスレッド拡
張に関する標準案P1003.4a/D6」(1992年2月26日発行)と
して本願の出願時に公表され、文書化されているスレッ
ドに関するPOSIX業界標準案もサポートしている。ワー
クステーションはIBM PS/2モデル80であることが好ま
しい。インプット・デバイス29はマウスであることが好
ましいが、トラック・ボール、ライトペン、その他のイ
ンプット・デバイスにすることも可能である。コンピュ
ータ・システム10はウィンドウ31〜34に表示されるアプ
リケーション・ソフトウェア21〜24も含んでいる。実行
時、このソフトウェアはその一部又は全部がメモリ14に
ロードされ、プロセッサ12によって実行される。共用資
源70は好適実施例では、磁気記憶デバイス上のデータ・
セグメントであるが、後述するように、他のものにする
ことも可能である。
【0012】「プロセス」及び「プログラム」という用
語はコンピュータ業界のさまざまな分野ではさまざまな
意味をもっている。重要なことはこの用語が本明細書で
用いられているときは、例えば、POSIXに精通している
当業者のように、本発明の特定分野の当業者が理解して
いる特定の意味をもっていることである。本発明の目的
上、「プロセス」はアドレス空間(使用可能なアドレス
範囲)及びそのアドレス空間内で実行される1つ又は2以
上の制御スレッドとその必要なシステム資源と定義され
ている。「スレッド」とはプロセス内における1つの順
次制御の流れのことである。「プログラム」とは何をす
べきかをプロセスに指示する命令の集まりのことであ
る。単一のプロセス内では、すべてのスレッドとプログ
ラムは同じアドレス空間を共用する。プロセスは他のど
のプロセスともアドレス空間を共用しない。ある種のコ
ンピュータ・プラットフォーム(つまり、UNIX、OS/2)は
単一のプログラム内で実行される複数のスレッドをサポ
ートしている。他のコンピュータ・プラットフォーム
(つまり、V2R2又はそれより以前のOSが稼働しているAS/
400)は複数のプログラム内で実行される単一スレッドを
サポートしている。複数のプログラムで実行される複数
のスレッドをサポートしているコンピュータ・プラット
フォームは現在知られていない。複数のプログラム内で
実行される複数のスレッドは別の言い方をすると、単一
のプロセス内で実行される複数の非同期プログラムのこ
とである。
【0013】図2〜図3は従来技術で公知のマルチタスキ
ング環境で共用コンピュータ資源をプロセス・レベルで
ロッキングする例を示す図である。図2に示すように、
オペレーティング・システム16はプロセス51〜59を管理
する。共用資源70は共用資源70内に置かれているロック
71とキー72を記号化して示すように、どのプロセス51〜
59によっても現在使用されていない。図3はプロセス51
が共用資源70の使用を要求したとき、何が行われるかを
示している。オペレーティング・システム16は記号化し
たキー72を共用資源70からプロセス51へ移動する。プロ
セス51は共用資源70を必要としなくなるまでキー72を保
持している。プロセス51がキー72を保持している限り、
オペレーティング・システム16は記号化した障壁73で示
すように、プロセス52〜59が共用資源70をアクセスする
のを禁止する。当業者が理解するように、ロック71、キ
ー72及び障壁73は実際は物理的オブジェクトではなく、
オペレーティング・システム16によって実行されるロッ
キング・オペレーションを記号で表現したものである。
【0014】図4〜図5は単一プロセス内で実行される複
数の非同期プログラムをサポートする仮想上のコンピュ
ータ環境において共用コンピュータ資源のプロセス・レ
ベルのロッキングが失敗した例を示す図である。図4に
示すように、プロセス52はプログラム521、522及び523
を含んでいる。プロセス59はプログラム591を含んでい
る。各プログラムは他のプログラムと非同期に動作でき
るようになっている。図5はプロセス・レベルのロッキ
ングが使用されている場合に、プログラム511が共用資
源70の使用を要求したときに何が行われるかを示してい
る。オペレーティング・システム16はキー72をプロセス
51に許可する。このオペレーションは記号化したキー72
をプロセス51内で実行されるすべてのプログラムに渡す
ことによって行われる。オペレーティング・システム16
はプロセス52〜59内で実行されるプログラムが共用資源
70を使用するのを禁止するが、プログラム511が共用資
源70を使用しているときは、プログラム512が共用資源7
0を使用するのを禁止しない。実際には、プログラム512
は障壁73を飛び越して共用資源70に到達することが許さ
れるので、データ保全性やシステム保全性に、あるいは
コンピュータ・システム10のオペレーションにさえ問題
が起こるおそれがある。図5に図形化して示すように、
これは望ましくない。
【0015】図6は本発明の単一プロセス内で実行され
る複数の非同期プログラムをサポートするコンピュータ
環境において共用資源をプロセス内で、つまり、プログ
ラム・レベルでロッキングする様子を示す図である。プ
ログラム511が共用資源70の使用を要求すると、オペレ
ーティング・システム16は記号化したキー72を共用資源
70からそのプログラム511にだけ移動する。オペレーテ
ィング・システム16はプロセス52〜59内で実行されてい
るプログラムが共用資源70を使用するのを禁止するだけ
でなく、プログラム511が共用資源70を使用していると
きは、プログラム512が共用資源70を使用することを禁
止する。図6に図形化して示すように、これにより、図5
のプロセス・レベル・ロッキングで起こっていた問題が
解決される。
【0016】図4〜図6には、3つのプロセスだけが示さ
れ、順に番号をつけることで9つのプロセスを意味して
いるが、オペレーティング・システム16はコンピュータ
・システム10の容量に応じて、1から数千までのプロセ
スを含むことが可能である。さらに、本発明によれば、
少なくとも1つのプロセスは非同期に実行されるプログ
ラムを少なくとも2つ含んでいなければならないが、そ
のプロセスは非同期に実行される数千のプログラムを含
むことが可能であり、他のプロセスは非同期に実行され
るプログラムを1から数千まで含むことが可能であり、
これは本発明の技術範囲に属するものである。
【0017】図7は本発明のロック・テーブル80の構造
を示す図である。ロック・テーブル80はハッシュ・エン
トリ81のように、複数のハッシュ・エントリを収容して
いる。各ハッシュ・エントリは資源アドレス・フィール
ド91とポインタ・フィールド92をもっている。資源アド
レス・フィールド91はロッキングを行う必要のある共用
資源のアドレスを収めている。例えば、共用資源はシス
テム上に置かれ、2つのプログラムに共用させる必要の
ある任意の物理的デバイス(つまり、テープ・ドライ
ブ、ワークステーション、ディスケット・ドライブな
ど)にすることも、任意の論理的デバイス(つまり、ファ
イル、データ・エリア、メッセージ待ち行列など)にす
ることも可能である。
【0018】ポインタ・フィールド92はその資源アドレ
スの最初のロック・エントリ810を指している。本発明
によれば、資源アドレスごとに2種類(タイプ)以上のロ
ックがサポートされるので、以下で詳しく説明するよう
に、資源アドレスごとに2つ以上のロック・エントリが
用意されている。各ロック・エントリはロック・タイプ
・フィールド811、所有プロセス・フィールド812、所有
プログラム・フィールド813及び次エントリ・フィール
ド814をもっている。あるオブジェクト・アドレスに2つ
以上のロック・エントリが存在するときは(下述するよ
うに、非排他的ロックの場合)、次エントリ・フィール
ド814は図7に示すように、次ロック・エントリの先頭を
指している。図7に示すフィールドの用法については、
図8〜図10及び図11のフローチャートのオペレーション
の説明と関連づけて詳しく説明する。
【0019】図8〜図10はプログラムからの資源使用要
求を処理するために使用される本発明のフローチャート
を示している。このフローチャートは図1のコンピュー
タ・システム10の適当にプログラムされたプロセッサ12
によって、オペレーティング・システム16の指示の下で
実行される。ブロック103はプログラムが使用すること
を要求した資源に関連する資源アドレスに対応するハッ
シュ・エントリをロック・テーブル80から見つけ出す。
ブロック105はその資源アドレスにロック・エントリが
あるかどうかを質問する。この資源のハッシュ・エント
リが空のポインタ・フィールド92を含んでいると(これ
は資源の使用を最初に要求したプログラムの場合であ
る)、ブロック105の質問は否定されるので、制御の流れ
は図10のブロック110に移る。
【0020】ブロック110では、ロック・エントリ810が
作られる(図7)。ロック・タイプ・フィールド811、所有
プロセス812及び所有プログラム813の情報は資源の使用
が要求されたときそのプログラムから与えられる。この
資源アドレスには、現在ロック・エントリが1つしかな
いので、次エントリ・フィールド814はこの時点では空
のままになっている。これはこの資源アドレスの最初の
ロック・エントリであるので、ブロック110では、この
ロック・エントリのアドレスがこの資源アドレスのハッ
シュ・エントリのポインタ・フィールド92に入力され
る。ブロック115は戻りコードをセットし、要求したロ
ックが正しく取得されたことをプログラムに知らせて、
フローチャートはブロック199で終了する。
【0021】上述したように、あるプログラムがすでに
ロックを取得している資源の使用要求を別のプログラム
が出したときは、ブロック105の質問は肯定され、制御
の流れはブロック120に移る。ブロック120はロック・タ
イプ・エントリ・フィールド811からロック・タイプを
読み取り、このロック・タイプが「排他的、他の読取り
禁止」であったかどうかを判断する。もしそうであれ
ば、ロック・テーブルのエントリが、ロックを要求した
同じプロセス内の同じプログラムに対するものでなけれ
ば、ブロック123、125及び128は要求を拒否するように
動作する。場合によっては、プログラムが同じ資源に対
して2つ以上のロックを所有することが望ましいことも
ある。例えば、プログラムは大部分の時間、資源に対し
て共用ロックを所有することを望む場合があっても、あ
る種のオペレーション期間は排他ロックを要求して、そ
れを取得することを望む場合もある。これはすでに所有
している共用ロックを放棄しなくても行うことができ
る。ブロック125の質問が肯定されると、ブロック130は
次エントリ・フィールド814をチェックし、この資源ア
ドレスに別のロック・エントリがあるかどうかを確かめ
る。もしあれば、ブロック135は次ロック・エントリに
移り、ブロック120に戻る。もしなければ、ブロック110
で、前述したように新しいロック・エントリが作成され
る。ただし、このロック・エントリの前に置かれた連鎖
(チェイン)内のロック・エントリの次エントリ・フィー
ルド114がブロック110で更新される場合は別である。
【0022】ロック・タイプが「排他的、他の読取り禁
止」でないとブロック120で判断されると、ロック・タ
イプが「排他的、他の読取り許可」であるかどうかがブ
ロック140で質問される。そうであれば、ロック要求が
「共用読取り」ロック・タイプに対するものであったか
どうかがブロック142でチェックされ、確かめられる。
そうであれば、ロック要求はこのロック・エントリと衝
突していないので、ブロック130は上述したように、ロ
ック・テーブルに別のエントリがあるかどうかを調べ
る。別のロック・タイプが要求されていた場合は、ブロ
ック142の質問は否定され、ロック・テーブルのエント
リが、前述したように、ロックを要求した同じプロセス
内の同じプログラムに対するものでなければ、ブロック
123、125及び128は要求を拒否するように動作する。
【0023】ロック・タイプが「排他的、他の読取り許
可」でないとブロック140で判断されると、ブロック・
エントリ内のロック・タイプが「共用であって、更新を
許可しない」ものであったかどうかブロック150でチェ
ックされ、確かめられる。もしそうであれば、ブロック
152はロック要求が「共用読取り」又は「共用、更新禁
止」ロック・タイプであったかどうかを質問する。もし
そうであれば、ロック要求はこのロック・エントリと衝
突していないので、前述したように、ロック・テーブル
に別のエントリがあるかどうかがブロック130でチェッ
クされ、確かめられる。別のロック・タイプが要求され
ていれば、ブロック152の質問は否定され、前述したよ
うに、ロック・テーブルのエントリがロックを要求した
同じプロセス内の同じプログラムに対するものでなけれ
ば、ブロック123,125及び128は要求を拒否するように
動作する。
【0024】ロック・タイプが「共用、更新禁止」でな
いとブロック150で判断されると、ロック・エントリ内
のロック・タイプが「共用であって、更新を許可しな
い」ものであったかどうかがブロック160でチェックさ
れ、確かめられる。もしそうであれば、ブロック163は
ロック要求が「共用読取り」又は「共用更新」ロック・
タイプであったかどうかを質問する。もしそうであれ
ば、ロック要求はこのロック・エントリと衝突していな
いので、前述したように、ロック・テーブルに別のエン
トリがあるかどうかがブロック130でチェックされ、確
かめられる。別のロック・タイプが要求されていれば、
ブロック163の質問は否定され、ロック・テーブルのエ
ントリが前述したようにロックを要求したプロセス内の
同じプログラムに対するものでなければ、ブロック12
3、125、128は要求を拒否するように動作する。
【0025】ロック・タイプが「共用、更新許可」でな
かったとブロック160で判断されると、ロック・エント
リのロック・タイプが「共用、読取り」であったかどう
かがブロック165でチェックされ、確かめられる。もし
そうであれば、ブロック167はロック要求が「排他的、
他の読取り禁止」ロック・タイプに対するものであった
かどうかを質問する。そうでなければ、ロック要求はこ
のロック・エントリと衝突していないので、前述したよ
うにロック・テーブルに別のエントリがあるかどうかが
ブロック130でチェックされ、確かめられる。ブロック1
67の質問が肯定されると、ロック・テーブルのエントリ
が前述したようにロックを要求した同じプロセス内の同
じプログラムに対するものでなければ、ブロック123、1
25及び128は要求を拒否するように動作する。
【0026】ブロック160の質問が否定されたときは、
要求されたロック・タイプはサポートされないので、ブ
ロック170は戻りコードをセットして、エラーであるこ
とをプログラムに通知する。フローチャートはブロック
199で終了する。
【0027】プログラムがロックを必要としなくなった
ときは、図11のフローチャートが実行される。ブロック
201は資源のロックを解放する要求を受け取ったかどう
かを質問する。受け取っていれば、ブロック202はその
資源のハッシュ・エントリをチェックして、ロック・エ
ントリがあるかどうかを調べる。なければ、ブロック20
5は戻りコードをセットして、その資源について保持さ
れたロックがないことをプログラムに通知する。もしあ
れば、ブロック210はその資源のロック・エントリの所
有プロセス・フィールドをチェックして、ロックの解放
を要求したプロセスによってロックが保持されているか
どうかを調べる。保持されていなければ、このプログラ
ムはそのロック・エントリに指定されているロックを解
放できないので、ブロック215はもしあれば、その資源
の別のエントリをロック・テーブルから探すことにな
る。制御の流れはブロック202に戻る。
【0028】ブロック210の質問が肯定されると、ブロ
ック216はその資源のロック・エントリの所有プログラ
ム・フィールドをチェックして、ロックの解放を要求し
たプログラムによってロックが保持されているかどうか
を調べる。保持されていなければ、このプログラムはそ
のロック・エントリに指定されているロックを解放でき
ないので、ブロック215は、もしあれば、その資源の別
のエントリをロック・テーブルから探すことになる。制
御の流れはブロック202に戻る。
【0029】ブロック216の質問が肯定されると、ブロ
ック220はその資源のロック・エントリの所有プログラ
ム・フィールドをチェックして、ロックの解放を要求し
たプログラムによってロックが保持されているかどうか
を調べる。保持されていなければ、このプログラムはそ
のロック・エントリに指定されているロックを解放でき
ないので、ブロック215は、もしあれば、その資源の別
のエントリをロック・テーブルから探すことになる。制
御の流れはブロック202に戻る。
【0030】ブロック220の質問が肯定されると、この
プログラムはその資源のこのロック・タイプを除去する
権限が与えられ、ブロック225は戻りコードをセットし
て、ロックが正しく解放されたことをプログラムに通知
する。そのあと、ブロック230はそのロック・エントリ
をロック・テーブルから除去し、除去されたロック・エ
ントリから連鎖の上流にあるロック・エントリの次のエ
ントリ・フィールドに入っているポインタを更新する。
これがその資源の最後のロック・エントリであれば、そ
の資源のハッシュ・エントリのポインタ・フィールド92
は無効にされる。
【0031】本発明の別実施例によれば、ロック・タイ
プを1つだけサポートしている。つまり、「排他的、他
の読取り禁止」ロック・タイプである。この実施例で
は、各資源アドレスのロック・エントリは1つしかない
ので、次エントリ・フィールド814は不要になり、ロッ
ク・タイプ・フィールド811も不要になる。図8〜図10の
フローチャートは大幅に簡略化され、ブロック105のyes
ブランチは直接にブロック123へ移ることになる。
【0032】以上、本発明の好適実施例及びその変形実
施例を参照して本発明を説明してきたが、これらの実施
例は本発明の精神、範囲及び教示事項を逸脱しない範囲
で種々態様に変更及び改良が可能であることはもちろん
である。例えば、ロック・タイプは上述したものとは異
なるものにすることが可能である。従って、本明細に開
示した内容は特許請求の範囲に明確化されている特徴事
項にのみ制限されるものである。
【0033】
【発明の効果】本発明によれば、コンピュータ・システ
ムにおける共用資源をプロセス内でロッキングすること
ができる。さらに詳述すると、本発明において、オペレ
ーション・システムは複数のタスク、すなわちプロセス
の非同期実行を支援し、各プロセスは非同期で実行中の
プログラムによって実行される機能を備えている。本発
明によれば、オペレーティング・システムは磁気記憶デ
バイス、テーブ・ドライブ、プリンタ、ソフトウェア・
モジュール、メッセージ待ち行列などの共用コンピュー
タ資源を一度に1つのプロセスだけが使用できるように
保証するほかに、プロセス内で実行中のプログラムのレ
ベルで共用コンピュータ資源へのアクセスを許可する。
プロセス内で実行中のあるプログラムが共用コンピュー
タ資源をアクセスするとき、そのプロセス内で非同期に
実行中の他のすべてのプログラムだけでなく、コンピュ
ータ・システム内で実行中の他のプロセスも、その共用
資源からロックアウトするようにオペレーティング・シ
ステムに要求する。本発明によれば、排他ロックや共用
ロックといった、種々のロックもサポートされる。
【図面の簡単な説明】
【図1】本発明によるコンピュータ・システムを示すブ
ロック図である。
【図2】複数のプロセスをサポートする機能を備えた従
来のコンピュータ環境における共用コンピュータ資源を
プロセス・レベルでロッキングする例を示す図である。
【図3】同じく、複数のプロセスをサポートする機能を
備えた従来のコンピュータ環境において共用コンピュー
タ資源をプロセス・レベルでロッキングする例を示す図
である。
【図4】単一プロセス内で実行される複数の非同期プロ
グラムをサポートする機能を備えた仮想上のコンピュー
タ環境において共用コンピュータ資源のプロセス・レベ
ルのロッキングが失敗した例を示す図である。
【図5】同じく、単一プロセス内で実行される複数の非
同期プログラムをサポートする機能を備えた仮想上のコ
ンピュータ環境において共用コンピュータ資源のプロセ
ス・レベルのロッキングが失敗した例を示す図である。
【図6】本発明の単一プロセス内で実行される複数の非
同期プログラムをサポートする機能を備えたコンピュー
タ環境において共用コンピュータ資源をプロセス内で、
つまり、プログラム・レベルでロッキングする例を示す
図である。
【図7】本発明のロック・テーブルの構造を示す図であ
る。
【図8】プログラムからの資源使用要求を処理するため
に使用される本発明のフローチャートを示す図である。
【図9】プログラムからの資源使用要求を処理するため
に使用される本発明のフローチャートを示す図である。
【図10】同じく、プログラムからの資源使用要求を処
理するために使用される本発明のフローチャートを示す
図である。
【図11】プログラムからの資源ロック除去要求を処理
するために使用される本発明のフローチャートを示す図
である。
【符号の説明】
10 コンピュータ・システム 11 システム・ユニット 12 プロセッサ 14 メモリ 15 ワークステーション・コントローラ 16 オペレーティング・システム 20 ワークステーション 21 ディスプレイ 28 キーボード 29 インプット・デバイス 31〜34 ウィンドウ 51〜59 プロセス 70 共用資源 71 ロック 72 キー 73 障壁 80 ロック・テーブル 81 ハッシュ・エントリ 91 資源アドレス・フィールド 92 ポインタ・フィールド 511,512,521〜523,591 プログラム 810 ロック・エントリ 811 ロック・タイプ・フィールド 812 所有プロセス 813 所有プログラム 814 次エントリ・フィールド
フロントページの続き (72)発明者 アーサー ダグラス スメット アメリカ合衆国 55906 ミネソタ州 ロチェスター シティ ビュー コート ノースイースト 1410 (72)発明者 ピーター マイケル ウットレン アメリカ合衆国 55906 ミネソタ州 ロチェスター 3アールディ プレイス ノースイースト 2611 (56)参考文献 オペレーティングシステムの構造的ア プローチ(下巻)、日本コンピュータ協 会発行、昭和52年1月15日初版発行、p 736−p757 インターフェース、1988年6月号、第 14巻第6号,CQ出版,p127−p129、

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】1つのプロセス内で実行されている第1非同
    期プログラム及び第2非同期プログラムの間で共用され
    る資源をロックする方法において、 前記1つのプロセス内で実行されている前記第1非同期プ
    ログラムから前記資源に対するロック要求を受け取るス
    テップと、 前記要求のロック・タイプを判定するステップと、 前記共用資源の識別番号及び該共用資源に対するロック
    のロック・タイプを含むロック・テーブルをチェックし
    て前記1つのプロセス内で実行されている前記第2非同期
    プログラムが取得しているロック・タイプを判定するス
    テップと、 (1)前記第2非同期プログラムが取得しているロック・タ
    イプが「排他的、他の読取り許可」タイプであり且つ前
    記ロック要求のロック・タイプが「共用読取り」タイプ
    であるか、(2)前記第2非同期プログラムが取得している
    ロック・タイプが「共用、更新禁止」タイプであり且つ
    前記ロック要求のロックタイプが「共用、更新禁止」若
    しくは「共用読取り」タイプであるか、(3)前記第2非同
    期プログラムが取得しているロック・タイプが「共用、
    更新許可」タイプであり且つ前記ロック要求のロックタ
    イプが「共用読取り」若しくは「共用、更新許可」タイ
    プであるか、又は(4)前記第2非同期プログラムが取得し
    ているロック・タイプが「共用読取り」タイプであり且
    つ前記ロック要求のロックタイプが「排他的、他のプロ
    グラムの読取り禁止」タイプであるとき、前記ロック要
    求を許可するステップと、 を備えたことを特徴とするコンピュータ・システムにお
    ける共用資源のプロセス内ロッキング方法。
  2. 【請求項2】1つのプロセス内で実行されている第1非同
    期プログラム及び第2非同期プログラムの間で共用され
    る資源をロックするコンピュータ・システムにおいて、 前記1つのプロセス内で実行されている前記第1非同期プ
    ログラムから前記資源に対するロック要求を受け取る手
    段と、 前記要求のロック・タイプを判定する手段と、 前記共用資源の識別番号及び該共用資源に対するロック
    のロック・タイプを含むロック・テーブルをチェックし
    て前記1つのプロセス内で実行されている前記第2非同期
    プログラムが取得しているロック・タイプを判定する手
    段と、 (1)前記第2非同期プログラムが取得しているロック・タ
    イプが「排他的、他の読取り許可」タイプであり且つ前
    記ロック要求のロック・タイプが「共用読取り」タイプ
    であるか、(2)前記第2非同期プログラムが取得している
    ロック・タイプが「共用、更新禁止」タイプであり且つ
    前記ロック要求のロックタイプが「共用、更新禁止」若
    しくは「共用読取り」タイプであるか、(3)前記第2非同
    期プログラムが取得しているロック・タイプが「共用、
    更新許可」タイプであり且つ前記ロック要求のロックタ
    イプが「共用読取り」若しくは「共用、更新許可」タイ
    プであるか、又は(4)前記第2非同期プログラムが取得し
    ているロック・タイプが「共用読取り」タイプであり且
    つ前記ロック要求のロックタイプが「排他的、他のプロ
    グラムの読取り禁止」タイプであるとき、前記ロック要
    求を許可する手段と、 を備えたことを特徴とするコンピュータ・システム。
JP5210751A 1992-09-25 1993-08-25 コンピュータ・システムにおける共用資源のプロセス内ロッキング方法及びコンピュータ・システム Expired - Lifetime JP2574991B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US951482 1992-09-25
US07/951,482 US5392433A (en) 1992-09-25 1992-09-25 Method and apparatus for intraprocess locking of a shared resource in a computer system

Publications (2)

Publication Number Publication Date
JPH06161789A JPH06161789A (ja) 1994-06-10
JP2574991B2 true JP2574991B2 (ja) 1997-01-22

Family

ID=25491730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5210751A Expired - Lifetime JP2574991B2 (ja) 1992-09-25 1993-08-25 コンピュータ・システムにおける共用資源のプロセス内ロッキング方法及びコンピュータ・システム

Country Status (2)

Country Link
US (1) US5392433A (ja)
JP (1) JP2574991B2 (ja)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110846A (ja) * 1992-09-25 1994-04-22 Fujitsu Ltd 排他制御方式
US5513349A (en) * 1994-03-24 1996-04-30 International Business Machines Corporation System and method for safing of asynchronous interrupts
US5765151A (en) * 1995-08-17 1998-06-09 Sun Microsystems, Inc. System and method for file system fix-on-panic for a computer operating system
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
JP3674117B2 (ja) * 1995-11-20 2005-07-20 株式会社日立製作所 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体
US5876787A (en) * 1995-11-30 1999-03-02 Alfar International, Ltd. Process of manufacturing a porous carbon material and a capacitor having the same
US5664196A (en) * 1995-12-07 1997-09-02 Emc Corporation Media access scheduler method and apparatus
US5872980A (en) * 1996-01-25 1999-02-16 International Business Machines Corporation Semaphore access control buffer and method for accelerated semaphore operations
US5918243A (en) * 1996-01-30 1999-06-29 International Business Machines Corporation Computer mechanism for reducing DASD arm contention during parallel processing
US5991845A (en) * 1996-10-21 1999-11-23 Lucent Technologies Inc. Recoverable spin lock system
US6512591B1 (en) * 1997-02-19 2003-01-28 Hewlett-Packard Company Multiple peripheral support for a single physical port in a host-based printing system
US6247025B1 (en) 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
JPH1165863A (ja) * 1997-08-26 1999-03-09 Hitachi Ltd 共有資源管理方法
US6026401A (en) * 1997-10-14 2000-02-15 International Business Machines Corporation Locking tool data objects in a framework environment
US6748438B2 (en) 1997-11-17 2004-06-08 International Business Machines Corporation Method and apparatus for accessing shared resources with asymmetric safety in a multiprocessing system
US6092220A (en) * 1997-11-17 2000-07-18 International Business Machines Corporation Method and apparatus for ordered reliable multicast with asymmetric safety in a multiprocessing system
US6182197B1 (en) 1998-07-10 2001-01-30 International Business Machines Corporation Real-time shared disk system for computer clusters
US6401110B1 (en) 1998-11-30 2002-06-04 International Business Machines Corporation Method for managing concurrent processes using dual locking
US6105099A (en) * 1998-11-30 2000-08-15 International Business Machines Corporation Method for synchronizing use of dual and solo locking for two competing processors responsive to membership changes
US6868541B1 (en) * 1998-12-21 2005-03-15 Microsoft Corporation Asynchronous programming environment
US6874144B1 (en) * 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
US6851005B1 (en) * 2000-03-03 2005-02-01 International Business Machines Corporation Apparatus and method for implementing raid devices in a cluster computer system
JP2001306341A (ja) * 2000-04-26 2001-11-02 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
US7487152B1 (en) * 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US9613483B2 (en) 2000-12-27 2017-04-04 Proxense, Llc Personal digital key and receiver/decoder circuit system and method
US6973576B2 (en) * 2000-12-27 2005-12-06 Margent Development, Llc Digital content security system
US7305560B2 (en) * 2000-12-27 2007-12-04 Proxense, Llc Digital content security system
US7472280B2 (en) * 2000-12-27 2008-12-30 Proxense, Llc Digital rights management
US20030115351A1 (en) * 2001-12-14 2003-06-19 Giobbi John J. Digital content distribution system and method
US6950901B2 (en) * 2001-01-05 2005-09-27 International Business Machines Corporation Method and apparatus for supporting parity protection in a RAID clustered environment
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
US6950945B2 (en) * 2001-06-21 2005-09-27 International Business Machines Corporation Apparatus and method for intersystem lock optimization
US7243229B2 (en) * 2001-10-02 2007-07-10 Hitachi, Ltd. Exclusive access control apparatus and method
US6779089B2 (en) * 2002-01-09 2004-08-17 Intel Corporation Locked content addressable memory for efficient access
US6862666B2 (en) * 2002-05-16 2005-03-01 Sun Microsystems, Inc. Hardware assisted lease-based access to memory
US8495131B2 (en) * 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
US6985984B2 (en) * 2002-11-07 2006-01-10 Sun Microsystems, Inc. Multiprocessing systems employing hierarchical back-off locks
US7080213B2 (en) * 2002-12-16 2006-07-18 Sun Microsystems, Inc. System and method for reducing shared memory write overhead in multiprocessor systems
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US7289992B2 (en) * 2003-05-01 2007-10-30 International Business Machines Corporation Method, system, and program for lock and transaction management
US7225448B2 (en) * 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US7225440B2 (en) * 2003-08-14 2007-05-29 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US7120789B2 (en) * 2003-08-14 2006-10-10 International Business Machines Corporation System and method for portable on-demand central processing unit
US20050038945A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for interfacing a portale processing unit with computer system
US7032053B2 (en) * 2003-08-14 2006-04-18 International Business Machines Corporation System and method for loading, executing, and adapting a portable running operation system from a removable module to multiple computer systems
FR2859292A1 (fr) * 2003-08-27 2005-03-04 St Microelectronics Sa Dispositif de controle de l'acces a une memoire securisee, comprenant un circuit synchrome de recherche d'attributs
US8001348B2 (en) * 2003-12-24 2011-08-16 Intel Corporation Method to qualify access to a block storage device via augmentation of the device's controller and firmware flow
US9020854B2 (en) 2004-03-08 2015-04-28 Proxense, Llc Linked account system using personal digital key (PDK-LAS)
AU2005319019A1 (en) 2004-12-20 2006-06-29 Proxense, Llc Biometric personal data key (PDK) authentication
WO2006090403A2 (en) * 2005-02-23 2006-08-31 Hewlett-Packard Development Company, L.P. A method and system for managing a common resource in a computing system
US8036152B2 (en) 2006-01-06 2011-10-11 Proxense, Llc Integrated power management of a client device via system time slot assignment
US11206664B2 (en) 2006-01-06 2021-12-21 Proxense, Llc Wireless network synchronization of cells and client devices on a network
US8078990B2 (en) * 2006-02-01 2011-12-13 Research In Motion Limited Secure device sharing
US7904718B2 (en) 2006-05-05 2011-03-08 Proxense, Llc Personal digital key differentiation for secure transactions
US20080193514A1 (en) * 2006-11-02 2008-08-14 Transcu Ltd. Compostions and methods for iontophoresis delivery of active ingredients through hair follicles
US7883003B2 (en) 2006-11-13 2011-02-08 Proxense, Llc Tracking system using personal digital key groups
US9269221B2 (en) 2006-11-13 2016-02-23 John J. Gobbi Configuration of interfaces for a location detection system and application
US8659427B2 (en) 2007-11-09 2014-02-25 Proxense, Llc Proximity-sensor supporting multiple application services
US8171528B1 (en) 2007-12-06 2012-05-01 Proxense, Llc Hybrid device having a personal digital key and receiver-decoder circuit and methods of use
WO2009079666A1 (en) 2007-12-19 2009-06-25 Proxense, Llc Security system and method for controlling access to computing resources
US8386822B2 (en) * 2008-02-01 2013-02-26 International Business Machines Corporation Wake-and-go mechanism with data monitoring
US8225120B2 (en) * 2008-02-01 2012-07-17 International Business Machines Corporation Wake-and-go mechanism with data exclusivity
US7865705B2 (en) * 2008-02-01 2011-01-04 International Business Machines Corporation Branch target address cache including address type tag bit
US8452947B2 (en) * 2008-02-01 2013-05-28 International Business Machines Corporation Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms
US8732683B2 (en) * 2008-02-01 2014-05-20 International Business Machines Corporation Compiler providing idiom to idiom accelerator
US8171476B2 (en) * 2008-02-01 2012-05-01 International Business Machines Corporation Wake-and-go mechanism with prioritization of threads
US8250396B2 (en) 2008-02-01 2012-08-21 International Business Machines Corporation Hardware wake-and-go mechanism for a data processing system
US8312458B2 (en) * 2008-02-01 2012-11-13 International Business Machines Corporation Central repository for wake-and-go mechanism
US8145849B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Wake-and-go mechanism with system bus response
US8640141B2 (en) * 2008-02-01 2014-01-28 International Business Machines Corporation Wake-and-go mechanism with hardware private array
US8316218B2 (en) * 2008-02-01 2012-11-20 International Business Machines Corporation Look-ahead wake-and-go engine with speculative execution
US8612977B2 (en) * 2008-02-01 2013-12-17 International Business Machines Corporation Wake-and-go mechanism with software save of thread state
US8516484B2 (en) * 2008-02-01 2013-08-20 International Business Machines Corporation Wake-and-go mechanism for a data processing system
US8788795B2 (en) * 2008-02-01 2014-07-22 International Business Machines Corporation Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors
US8341635B2 (en) 2008-02-01 2012-12-25 International Business Machines Corporation Hardware wake-and-go mechanism with look-ahead polling
US8880853B2 (en) * 2008-02-01 2014-11-04 International Business Machines Corporation CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock
US8725992B2 (en) 2008-02-01 2014-05-13 International Business Machines Corporation Programming language exposing idiom calls to a programming idiom accelerator
US8127080B2 (en) * 2008-02-01 2012-02-28 International Business Machines Corporation Wake-and-go mechanism with system address bus transaction master
WO2009102979A2 (en) 2008-02-14 2009-08-20 Proxense, Llc Proximity-based healthcare management system with automatic access to private information
US11120449B2 (en) 2008-04-08 2021-09-14 Proxense, Llc Automated service-based order processing
US20110055841A1 (en) * 2008-06-24 2011-03-03 Yuuki Senno Access control apparatus, access control program, and access control method
US8145723B2 (en) * 2009-04-16 2012-03-27 International Business Machines Corporation Complex remote update programming idiom accelerator
US8230201B2 (en) * 2009-04-16 2012-07-24 International Business Machines Corporation Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system
US8886919B2 (en) * 2009-04-16 2014-11-11 International Business Machines Corporation Remote update programming idiom accelerator with allocated processor resources
US8082315B2 (en) 2009-04-16 2011-12-20 International Business Machines Corporation Programming idiom accelerator for remote update
US9418205B2 (en) 2010-03-15 2016-08-16 Proxense, Llc Proximity-based system for automatic application or data access and item tracking
US9322974B1 (en) 2010-07-15 2016-04-26 Proxense, Llc. Proximity-based system for object tracking
US8857716B1 (en) 2011-02-21 2014-10-14 Proxense, Llc Implementation of a proximity-based system for object tracking and automatic application initialization
WO2012114516A1 (ja) * 2011-02-25 2012-08-30 富士通株式会社 ロック制御装置、ロック制御プログラムおよびロック制御方法
US9405898B2 (en) 2013-05-10 2016-08-02 Proxense, Llc Secure element as a digital pocket

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573736A (en) * 1968-01-15 1971-04-06 Ibm Interruption and interlock arrangement
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
US4435766A (en) * 1981-06-16 1984-03-06 International Business Machines Corporation Nested resource control using locking and unlocking routines with use counter for plural processes
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
JPS60107170A (ja) * 1983-11-15 1985-06-12 Nec Corp マルチプロセッサ制御方式
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4709326A (en) * 1984-06-29 1987-11-24 International Business Machines Corporation General locking/synchronization facility with canonical states and mapping of processors
US4716528A (en) * 1986-02-03 1987-12-29 International Business Machines Corporation Method for managing lock escalation in a multiprocessing, multiprogramming environment
JPH0731662B2 (ja) * 1986-07-15 1995-04-10 富士通株式会社 マルチプロセッサシステム
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
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
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
JPH0318935A (ja) * 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
US5029169A (en) * 1989-07-11 1991-07-02 Bell Communications Research, Inc. Methods and apparatus for fault detection
US5161227A (en) * 1989-11-13 1992-11-03 International Business Machines Corporation Multilevel locking system and method
US5063504A (en) * 1989-12-18 1991-11-05 At&T Bell Laboratories Information control system for reserve locking infrastructure nodes for subsequent exclusive and share locking by the system
US5063503A (en) * 1989-12-18 1991-11-05 At&T Bell Laboratories Information control system for selectively locking an entity with requested intermediate reserve exclusive and share locks
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
インターフェース、1988年6月号、第14巻第6号,CQ出版,p127−p129、
オペレーティングシステムの構造的アプローチ(下巻)、日本コンピュータ協会発行、昭和52年1月15日初版発行、p736−p757

Also Published As

Publication number Publication date
JPH06161789A (ja) 1994-06-10
US5392433A (en) 1995-02-21

Similar Documents

Publication Publication Date Title
JP2574991B2 (ja) コンピュータ・システムにおける共用資源のプロセス内ロッキング方法及びコンピュータ・システム
US4791554A (en) Method and apparatus for preventing deadlock in a data base management system
EP0735473B1 (en) Method and apparatus for managing a database in a distributed object operating environment
US7395383B2 (en) Realtime-safe read copy update with per-processor read/write locks
US7107267B2 (en) Method, system, program, and data structure for implementing a locking mechanism for a shared resource
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US7904436B2 (en) Realtime-safe read copy update with lock-free readers
US6226717B1 (en) System and method for exclusive access to shared storage
CA2027934C (en) Accelerated deadlock detection in congested data transactions
US9672077B2 (en) Reentrant read-write lock algorithm
JPH01211140A (ja) データ資源アクセス方法
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US20070214167A1 (en) Method for fast bulk loading data into a database while bypassing exit routines
US10929201B2 (en) Method and system for implementing generation locks
PL183365B1 (pl) Sposób zarządzania systemem komputerowym opartym na mikroprocesorze
KR19990077481A (ko) 세마포어연산을수행하기위한방법및장치
JPH03161859A (ja) リクエスト管理方法及びアクセス制御システム
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US20020029239A1 (en) Method and system for enhanced concurrency in a computing environment
US20020138706A1 (en) Reader-writer lock method and system
JP5435741B2 (ja) 競合管理を容易にするための型固定性の使用
Stone Database applications of the fetch-and-add instruction
US20090307442A1 (en) Memory Access Control
US7334229B1 (en) Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
JP3814521B2 (ja) データ処理方法および装置