JPH10301834A - 共用メモリの管理方法 - Google Patents
共用メモリの管理方法Info
- Publication number
- JPH10301834A JPH10301834A JP10108266A JP10826698A JPH10301834A JP H10301834 A JPH10301834 A JP H10301834A JP 10108266 A JP10108266 A JP 10108266A JP 10826698 A JP10826698 A JP 10826698A JP H10301834 A JPH10301834 A JP H10301834A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- hold
- read
- allocated
- 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.)
- Pending
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
-
- 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/466—Transaction processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
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)
- Multi Processors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】
【課題】 メモリに含まれているデータが各種の競合プ
ロセスによって共用されており、各プロセスが一般に複
数の競合タスクによって構成されている共用メモリにお
けるデータの管理方法を提供する。 【解決手段】 本方法は知られている二つの型式のアク
セス、ポインタによるアクセスおよび変数によるアクセ
スを組み合わせる。 これら二つの型式のアクセスはロ
ック、「ホールド」、「読取りロック」および「書込み
ロック」を管理する特定の規則によって両立するように
なされる。ソフトウェアプラットフォーム、特に遠隔通
信システムに使用されるものへの適用。
ロセスによって共用されており、各プロセスが一般に複
数の競合タスクによって構成されている共用メモリにお
けるデータの管理方法を提供する。 【解決手段】 本方法は知られている二つの型式のアク
セス、ポインタによるアクセスおよび変数によるアクセ
スを組み合わせる。 これら二つの型式のアクセスはロ
ック、「ホールド」、「読取りロック」および「書込み
ロック」を管理する特定の規則によって両立するように
なされる。ソフトウェアプラットフォーム、特に遠隔通
信システムに使用されるものへの適用。
Description
【0001】
【発明の属する技術分野】本発明は複数のプロセスが同
時に実行されるコンピュータのメインメモリである共用
メモリにおけるデータの管理に関する。
時に実行されるコンピュータのメインメモリである共用
メモリにおけるデータの管理に関する。
【0002】
【従来の技術】各プロセス自体は一般に、複数の基本タ
スクで構成されており、これらのタスクはデータの読取
りまたはその変更に関してデータにアクセスする際に競
合することがある。このような管理方法は「データマネ
ージャ」と呼ばれるソフトウェアによって実現される。
コンピュータは容量が限定されているが、すべてのロケ
ーションが直接、したがってきわめて高速にアクセス可
能であるメインメモリと、容量がはるかに大きいが、ト
ラックを選択し、トラック上の所望のロケーションが読
取りヘッドに面した位置へくるまで待つ必要があるた
め、アクセスがはるかに遅い大容量メモリとを含んでい
る。従来、コンピュータのオペレーティングシステムは
所与の瞬間に実際に必要なデータだけをメインメモリに
ロードし、ローディングは、データが一般にアプリケー
ションによって順次使用されるということを使用してい
る予想機構によって、ハードディスクへのアクセスを加
速するという印象を与える、キャッシュメモリと呼ばれ
る、特殊な小型メモリを通して行われる。従来のデータ
マネージャはそれ故、データがキャッシュメモリを通過
することを考慮して最適化されていた。
スクで構成されており、これらのタスクはデータの読取
りまたはその変更に関してデータにアクセスする際に競
合することがある。このような管理方法は「データマネ
ージャ」と呼ばれるソフトウェアによって実現される。
コンピュータは容量が限定されているが、すべてのロケ
ーションが直接、したがってきわめて高速にアクセス可
能であるメインメモリと、容量がはるかに大きいが、ト
ラックを選択し、トラック上の所望のロケーションが読
取りヘッドに面した位置へくるまで待つ必要があるた
め、アクセスがはるかに遅い大容量メモリとを含んでい
る。従来、コンピュータのオペレーティングシステムは
所与の瞬間に実際に必要なデータだけをメインメモリに
ロードし、ローディングは、データが一般にアプリケー
ションによって順次使用されるということを使用してい
る予想機構によって、ハードディスクへのアクセスを加
速するという印象を与える、キャッシュメモリと呼ばれ
る、特殊な小型メモリを通して行われる。従来のデータ
マネージャはそれ故、データがキャッシュメモリを通過
することを考慮して最適化されていた。
【0003】半導体メモリ技術に行われた進歩によっ
て、大容量のデータを取り扱うアプリケーションの場合
であっても、コンピュータにおいて実行されるプロセス
のすべてによって共用されるすべてのデータを受けるの
に十分な容量を有しているメインメモリを提供すること
が可能となった。ハードディスクはこの場合、すべての
データの更新された複製物をメインメモリに維持するこ
とによってデータをバックアップする働きをするだけで
ある。すべてのデータをメインメモリにロードすること
は、データを順次使用しないアプリケーションに特に有
利である。というのは、キャッシュメモリはそのような
アプリケーションに対してはわずかな利点をもたらすだ
けである。このことは遠隔通信の交換を制御するアプリ
ケーションに特に当てはまる。したがって、メインメモ
リに全体的にロードされたデータを管理するように最適
化されたデータマネージャを設計する必要がある。
て、大容量のデータを取り扱うアプリケーションの場合
であっても、コンピュータにおいて実行されるプロセス
のすべてによって共用されるすべてのデータを受けるの
に十分な容量を有しているメインメモリを提供すること
が可能となった。ハードディスクはこの場合、すべての
データの更新された複製物をメインメモリに維持するこ
とによってデータをバックアップする働きをするだけで
ある。すべてのデータをメインメモリにロードすること
は、データを順次使用しないアプリケーションに特に有
利である。というのは、キャッシュメモリはそのような
アプリケーションに対してはわずかな利点をもたらすだ
けである。このことは遠隔通信の交換を制御するアプリ
ケーションに特に当てはまる。したがって、メインメモ
リに全体的にロードされたデータを管理するように最適
化されたデータマネージャを設計する必要がある。
【0004】オブジェクト指向データベースで使用され
るデータマネージャが知られており、リレーショナルデ
ータベースで使用されるデータマネージャも知られてい
る。
るデータマネージャが知られており、リレーショナルデ
ータベースで使用されるデータマネージャも知られてい
る。
【0005】データにアクセスするのには二つの型式、
読取りアクセスと書込みアクセスがある。アクセスの各
型式に対して、データマネージャと基本タスクの間で情
報を転送するには二つの転送モードがある。値による転
送モードとポインタによる転送モードである。
読取りアクセスと書込みアクセスがある。アクセスの各
型式に対して、データマネージャと基本タスクの間で情
報を転送するには二つの転送モードがある。値による転
送モードとポインタによる転送モードである。
【0006】変数の値の読取りアクセスまたは書込みア
クセスの場合、値による転送モードが変数の現行値を含
んでいるメモリロケーションにおける変数の値を読み取
るか、このロケーションに書き込むことからなっている
のに対し、ポインタによる転送モードは「ポインタ」と
呼ばれるアドレスを、読取りまたは書込みを要求したタ
スクに供給することからなっており、ポインタは読み取
られるべき値が置かれているメモリロケーションまたは
値を書き込むべきメモリロケーションを指定し、タスク
はポインタを所有している限り、ロケーションでの読取
りまたは書込みと無関係となる。タスクがポインタモー
ドにおいて変数にアクセスした場合、「ホールド」と呼
ばれるロックを、前記タスクに関して、前記変数の現行
値を含んでいるメモリロケーションに割り振って、各タ
スクから見たデータの一貫性を維持できることが知られ
ている。ホールドが解除されない限り、ホールドは前記
変数の現行値に対するアクセスの排他的権利である。
クセスの場合、値による転送モードが変数の現行値を含
んでいるメモリロケーションにおける変数の値を読み取
るか、このロケーションに書き込むことからなっている
のに対し、ポインタによる転送モードは「ポインタ」と
呼ばれるアドレスを、読取りまたは書込みを要求したタ
スクに供給することからなっており、ポインタは読み取
られるべき値が置かれているメモリロケーションまたは
値を書き込むべきメモリロケーションを指定し、タスク
はポインタを所有している限り、ロケーションでの読取
りまたは書込みと無関係となる。タスクがポインタモー
ドにおいて変数にアクセスした場合、「ホールド」と呼
ばれるロックを、前記タスクに関して、前記変数の現行
値を含んでいるメモリロケーションに割り振って、各タ
スクから見たデータの一貫性を維持できることが知られ
ている。ホールドが解除されない限り、ホールドは前記
変数の現行値に対するアクセスの排他的権利である。
【0007】
【発明が解決しようとする課題】ポインタによる転送モ
ードはオブジェクト指向のデータマネージャで知られて
いるものである。これには高速アクセスが可能になると
いう利点がある。これにより、データをプログラミング
言語の変数として処理することが可能となる。しかし、
オブジェクトデータマネージャにはマルチタスクトラン
ザクションが得られないか(したがって、競合がな
い)、あるいはオブジェクトにおけるロックが行えない
か(競合が起こるとページがロックされ、ページが全て
ログにコピーされる。このレベルの細分性はしたがっ
て、コストの増加を招く)のいずれかの欠点がある。
ードはオブジェクト指向のデータマネージャで知られて
いるものである。これには高速アクセスが可能になると
いう利点がある。これにより、データをプログラミング
言語の変数として処理することが可能となる。しかし、
オブジェクトデータマネージャにはマルチタスクトラン
ザクションが得られないか(したがって、競合がな
い)、あるいはオブジェクトにおけるロックが行えない
か(競合が起こるとページがロックされ、ページが全て
ログにコピーされる。このレベルの細分性はしたがっ
て、コストの増加を招く)のいずれかの欠点がある。
【0008】値による転送モードはアクセスの競合を管
理することなく、使用することができる。アクセスの競
合は基礎となるデータマネージャによって適用される
「トランザクション」プロトコルによって管理される。
理することなく、使用することができる。アクセスの競
合は基礎となるデータマネージャによって適用される
「トランザクション」プロトコルによって管理される。
【0009】複数の変数に関連しており、同一の要求内
のタスクによって要求される一組の読取り操作および/
または書込み操作を「トランザクション」と呼ぶ。トラ
ンザクションにおいて、各操作を値による転送モードま
たはポインタによる転送モードのいずれかによって行う
ことができる。トランザクションは次の三つのステージ
に分解することができる。
のタスクによって要求される一組の読取り操作および/
または書込み操作を「トランザクション」と呼ぶ。トラ
ンザクションにおいて、各操作を値による転送モードま
たはポインタによる転送モードのいずれかによって行う
ことができる。トランザクションは次の三つのステージ
に分解することができる。
【0010】− 開始ステージ。このステージにおい
て、データマネージャは単一のトランザクション識別子
を、トランザクションを開始したタスクに供給し、この
識別子がトランザクションの記述子を含んでいるメモリ
ロケーションを指定する。
て、データマネージャは単一のトランザクション識別子
を、トランザクションを開始したタスクに供給し、この
識別子がトランザクションの記述子を含んでいるメモリ
ロケーションを指定する。
【0011】− アクセスステージ。このステージにお
いて、読取り操作または書込み操作が、トランザクショ
ンを開始したタスクによって実行されるが、このトラン
ザクション以外のユーザには不可視のままであり、また
このステージにおいては、読取りロックおよび書込みロ
ックと呼ばれる権利が対象となるメモリロケーションに
関して、このトランザクションに割り振られる。知られ
ているひとつの方法において、トランザクションが書込
みアクセスを行った場合、変数の新しい値を「ログ」と
呼ばれるメモリロケーションに一時的に入力し、その変
数に対するトランザクションに割り振る。このログにア
クセスできるのは上記のトランザクションだけである。
いて、読取り操作または書込み操作が、トランザクショ
ンを開始したタスクによって実行されるが、このトラン
ザクション以外のユーザには不可視のままであり、また
このステージにおいては、読取りロックおよび書込みロ
ックと呼ばれる権利が対象となるメモリロケーションに
関して、このトランザクションに割り振られる。知られ
ているひとつの方法において、トランザクションが書込
みアクセスを行った場合、変数の新しい値を「ログ」と
呼ばれるメモリロケーションに一時的に入力し、その変
数に対するトランザクションに割り振る。このログにア
クセスできるのは上記のトランザクションだけである。
【0012】− 終了または検査ステージ。このステー
ジにおいて、読取りおよび書込みが検証される。上記の
知られている方法において、新しい値(トランザクショ
ンに割り振られたログに含まれている)がそれぞれの現
行値を含んでいるロケーションに入力され、すべてのタ
スクに可視となる。読み取り対象の値が実際に読み取ら
れる。
ジにおいて、読取りおよび書込みが検証される。上記の
知られている方法において、新しい値(トランザクショ
ンに割り振られたログに含まれている)がそれぞれの現
行値を含んでいるロケーションに入力され、すべてのタ
スクに可視となる。読み取り対象の値が実際に読み取ら
れる。
【0013】変数の現行値または新しい値を含んでいる
メモリロケーションにロックを割り振って、データの一
貫性を損ないかねない他の操作を妨げることができる。
ロックをデータのテーブル全体に割り振ることができ
る。次の二つの型式のロックがある。
メモリロケーションにロックを割り振って、データの一
貫性を損ないかねない他の操作を妨げることができる。
ロックをデータのテーブル全体に割り振ることができ
る。次の二つの型式のロックがある。
【0014】− 所与のメモリロケーションに関する所
与のトランザクションに割り振られた読取りロックは、
トランザクションに割り振られた非排他的読取りであっ
て、前記トランザクションがメモリロケーションに記憶
されている値を読み取ることを許可し、メモリロケーシ
ョンへの書込みを望んでいる他のトランザクションが検
査されないようにする。
与のトランザクションに割り振られた読取りロックは、
トランザクションに割り振られた非排他的読取りであっ
て、前記トランザクションがメモリロケーションに記憶
されている値を読み取ることを許可し、メモリロケーシ
ョンへの書込みを望んでいる他のトランザクションが検
査されないようにする。
【0015】− 所与のメモリロケーションに関する所
与のトランザクションに割り振られてた書込みロック
は、そのトランザクションに割り振られた排他的書込み
であり、前記トランザクションだけがメモリロケーショ
ンに値を書込むのを許可する。
与のトランザクションに割り振られてた書込みロック
は、そのトランザクションに割り振られた排他的書込み
であり、前記トランザクションだけがメモリロケーショ
ンに値を書込むのを許可する。
【0016】ある種のシステムにおいては、優先順位を
変数に割り振って、二つのトランザクションがその変数
に対して二つの異なる操作を行うために競合している場
合に、一方の型式の動作(読取りまたは書込み)に他の
型式を上回る優先順位を与えることができる。高い優先
順位の操作を要求したトランザクションは、上記変数に
対する「優先」トランザクションといわれる。
変数に割り振って、二つのトランザクションがその変数
に対して二つの異なる操作を行うために競合している場
合に、一方の型式の動作(読取りまたは書込み)に他の
型式を上回る優先順位を与えることができる。高い優先
順位の操作を要求したトランザクションは、上記変数に
対する「優先」トランザクションといわれる。
【0017】読取りロックまたは書込みロックは打切り
可能または打切り不能のいずれかである。
可能または打切り不能のいずれかである。
【0018】− 打切り可能であれば、打切り可能なロ
ックを処理しているトランザクションと競合しているト
ランザクションが高い優先順位を持っている場合、これ
は解除される。この場合、ロックを処理するトランザク
ションは打ち切られる。
ックを処理しているトランザクションと競合しているト
ランザクションが高い優先順位を持っている場合、これ
は解除される。この場合、ロックを処理するトランザク
ションは打ち切られる。
【0019】− 打切り不能であれば、打切り可能なロ
ックを処理しているトランザクションと競合しているト
ランザクションが高い優先順位を持っている場合、これ
は解除されない。この場合、ロックを処理するトランザ
クションは打ち切られない。
ックを処理しているトランザクションと競合しているト
ランザクションが高い優先順位を持っている場合、これ
は解除されない。この場合、ロックを処理するトランザ
クションは打ち切られない。
【0020】打切り可能なロックを処理しているトラン
ザクションが妥当とされた場合、打ち切り可能なロック
は打ち切り不能状態になる。同時に、競合トランザクシ
ョンの打ち切り可能ロックは解除され、競合トランザク
ションは打ち切られる。
ザクションが妥当とされた場合、打ち切り可能なロック
は打ち切り不能状態になる。同時に、競合トランザクシ
ョンの打ち切り可能ロックは解除され、競合トランザク
ションは打ち切られる。
【0021】トランザクションプロトコルの中には、ト
ランザクションを実行するのを可能とするとともに、
「ACID」と呼ばれる次の四つの特性を保証するもの
がある。
ランザクションを実行するのを可能とするとともに、
「ACID」と呼ばれる次の四つの特性を保証するもの
がある。
【0022】− アトム性(トランザクションが要求し
たアクセスがすべて処理されるか、どれも処理されな
い)。
たアクセスがすべて処理されるか、どれも処理されな
い)。
【0023】− 一貫性(すべてのデータがある安定状
態から他の安定状態になる)。
態から他の安定状態になる)。
【0024】− 分離(トランザクションの終前に、変
数の新しい値をトランザクション外で見ることができ
る)。
数の新しい値をトランザクション外で見ることができ
る)。
【0025】− 耐久性(トランザクションが妥当とさ
れると、変数の新しい値はこれらが格納されているステ
ーションの障害に耐えるようになるが、これは前記の新
しい値がディスク、または動作状態にある他のステーシ
ョンにバックアップされるからである)。
れると、変数の新しい値はこれらが格納されているステ
ーションの障害に耐えるようになるが、これは前記の新
しい値がディスク、または動作状態にある他のステーシ
ョンにバックアップされるからである)。
【0026】− シリアル化(複数のトランザクション
が並列に生じた場合、その結果はこれらが順次生じたの
と同じものとなる)。
が並列に生じた場合、その結果はこれらが順次生じたの
と同じものとなる)。
【0027】フランス国特許出願第2727222号は
このようなトランザクションプロトコルを記載してい
る。知られているデータマネージャは「ACID」特性
を保証するものであるが、ポインタによるアクセスを提
供しないという欠点がある。従来技術はそれ故、完全に
満足できる方法を提供しない。
このようなトランザクションプロトコルを記載してい
る。知られているデータマネージャは「ACID」特性
を保証するものであるが、ポインタによるアクセスを提
供しないという欠点がある。従来技術はそれ故、完全に
満足できる方法を提供しない。
【0028】本発明の目的はポインタによるアクセスを
提供することによりデータに対するきわめて高速なアク
セスを平均して獲得し、しかもトランザクション中の
「ACID」特性を保証する、共用メモリにおけるデー
タの管理方法を提供することである。
提供することによりデータに対するきわめて高速なアク
セスを平均して獲得し、しかもトランザクション中の
「ACID」特性を保証する、共用メモリにおけるデー
タの管理方法を提供することである。
【0029】
【課題を解決するための手段】本発明はメモリに含まれ
ているデータが各種の競合プロセスによって共用されて
おり、各プロセスが一般に複数の競合タスクによって構
成されている共用メモリにおけるデータの管理方法であ
って、以下を特徴とする方法を提供する。
ているデータが各種の競合プロセスによって共用されて
おり、各プロセスが一般に複数の競合タスクによって構
成されている共用メモリにおけるデータの管理方法であ
って、以下を特徴とする方法を提供する。
【0030】トランザクション外で、 − 読取り対象の各変数に対して、読取り操作が「ホー
ルド」と呼ばれるロックを読取り対象の変数に割り振
り、前記変数にホールドが割り振られていない場合に、
該ホールドが前記変数へのアクセスを防止すること、あ
るいは先行するホールドが前記変数に割り振られている
場合に、先行するホールドが解除されるまで待ってか
ら、新しいホールドを前記変数に割り振ることからなっ
ており、しかも前記変数の現行値を含んでいるメモリゾ
ーンを指定するポインタを前記読取り操作を要求したプ
ロセスに供給するか、あるいは変数の現行値を供給し、
これをアトム的な態様で前記読取り操作を要求したタス
クに属するメモリロケーションにコピーし、その後ホー
ルドを解除するかのいずれかからなっており、また − 書込み対象の各変数に対して、書込み操作が −− 変数の現行値にホールドが割り振られている場合
に、ホールドが解除されるまで待ち、 −− 変数にホールドが割り当てられていないか、もは
や割り振られなくなった場合に、変数を書き込むのに必
要な時間の間ホールドを変数に割り振り、 −−− 書込みロックがある場合に、ホールドを解除
し、書込みロックが解除するのを待ち、次いで新しいホ
ールドを変数に割り振り、また −−− 書込みロックがないか、もはや書込みロックさ
れていなくなった場合に、 −−−− 読取りロックがある場合、前記読取り操作を
要求したタスクが書込みタスクよりも高い優先順位を有
しているのであれば、読取りロックが解除されるまで待
つか、あるいは読取りロックを解除し、これが属してい
るトランザクションを打ち切り、また −−−− 読取りロックがないか、もはや読取りロック
がされていなくなった場合に、他の書込みを防止する打
切り不能書込みロックを割り振るステップからなってお
り、また書込み操作が変数の現行値を含んでいるメモリ
ゾーンを指定するポインタを、前記読取り操作を要求し
たタスクへ供給すること、あるいは各変数に対して新し
い値を供給して、書き込み、新しい値を前記ログにコピ
ーし、打切り不能書込みロックを解除し、最後に前記ホ
ールドを解除することからなっており、またトランザク
ション内部で、 − 読取り対象の各変数に対して、読取り操作が −− ログがトランザクションに対する変数に割り振ら
れていない場合に、 −−− 変数にホールドが割り振られている場合に、ホ
ールドが解除されるまで待ち、 −−− 変数にホールドが割り当てられていないか、も
はや割り振られなくなった場合に、変数を読み取るのに
必要な時間の間ホールドを変数に割り振り、 −−−− 打切り不能書込みロックが変数に割り振られ
ていない場合に、打切り可能な読取りロックを変数に割
り振り、読取りタスクが書込みタスクよりも高い優先順
位を有している場合に、この打切り可能読取りロックは
トランザクション内にない書込みを防止し、そうでない
場合には、前記打切り可能ロックが解除され、 −−−− 書込みロックが変数に割り振られている場合
に、ホールドを解除し、打切り不能書込みロックが解除
されるのを待ち、その後先行する操作を繰り返すステッ
プを行うことからなっており、また読取り操作が読取り
対象の各変数に対するポインタを、前記読取り操作を要
求したタスクに供給し、このポインタが変数の値を含ん
でいるログを指定すること、あるいは変数の値を供給
し、これをアトム的な態様で、前記読取り操作を要求し
たプロセスに属するメモリゾーンに属するメモリゾーン
にコピーし、次いでホールドを解除することからなって
おり、 −− ログがこのトランザクションに対する変数に割り
振られていない場合に、 −−− 変数にホールドが割り振られている場合に、ホ
ールドが解除されるまで待ち、 −−− 変数にホールドが割り当てられていないか、も
はや割り振られなくなった場合に、変数を読み取るのに
必要な時間の間ホールドを変数に割り振り、読取り操作
が読取り対象の変数に対するポインタを、前記読取り操
作を要求したタスクに供給し、このポインタが前記変数
の値を含んでいるメモリゾーンを指定すること、あるい
はログから読み取った変数の値を供給し、これをアトム
的な態様で、前記読取り操作を要求したプロセスに属す
るメモリゾーンににコピーし、次いでホールドを解除す
ることからなっており、 − 書込み対象の各変数に対して、書込み操作が −− このトランザクションにログがない場合には、 −−− 前記変数の値にホールドが割り振られている場
合に、ホールドが解除されるまで待ち、 −−− 変数の現行値にホールドが割り振られていない
か、もはや割り振られなくなった場合に、新しい値を書
込むのに必要な時間の間変数の現行値にホールドを割り
振り、 −−−− 書込みロックがある場合に、ホールドを解除
し、書込みロックが解除されるのを待ち、次いで新しい
ホールドを割り振り、 −−−− 書込みロックがないか、もはや書込みロック
が行われなくなった場合に、他の書込みを防止する打切
り可能な書込みロックを割り振り、トランザクションが
打ち切られた場合に、ロックを解除し、またログを変数
に割り振り、前記ログにホールドを割り振り、変数の現
行値をログに書き込み、変数の現行値に以前に割り振ら
れた第一のホールドを解除するプロセスからなってお
り、書込み操作がポインタを書き込み対象の各変数に供
給し、このポインタがログを指定すること、あるいは新
しい値をログにコピーし、次いでホールドを解除するこ
とからなっており、 −− このトランザクションにログが存在してない場合
には、 −−− 変数の新しい値を含んでいるログにホールドが
割り振られている場合に、ホールドが解除されるまで待
ち、 −−− 変数の新しい値を含んでいるログにホールドが
割り振られていないか、もはや割り振られなくなった場
合に、前記ログにホールドを割り振り、書込み操作がロ
グを指定するポインタを供給すること、あるいは書込み
対象の各変数に対して新しい値を供給し、新しい値をロ
グにコピーし、その後ホールドを解除することからなっ
ている。
ルド」と呼ばれるロックを読取り対象の変数に割り振
り、前記変数にホールドが割り振られていない場合に、
該ホールドが前記変数へのアクセスを防止すること、あ
るいは先行するホールドが前記変数に割り振られている
場合に、先行するホールドが解除されるまで待ってか
ら、新しいホールドを前記変数に割り振ることからなっ
ており、しかも前記変数の現行値を含んでいるメモリゾ
ーンを指定するポインタを前記読取り操作を要求したプ
ロセスに供給するか、あるいは変数の現行値を供給し、
これをアトム的な態様で前記読取り操作を要求したタス
クに属するメモリロケーションにコピーし、その後ホー
ルドを解除するかのいずれかからなっており、また − 書込み対象の各変数に対して、書込み操作が −− 変数の現行値にホールドが割り振られている場合
に、ホールドが解除されるまで待ち、 −− 変数にホールドが割り当てられていないか、もは
や割り振られなくなった場合に、変数を書き込むのに必
要な時間の間ホールドを変数に割り振り、 −−− 書込みロックがある場合に、ホールドを解除
し、書込みロックが解除するのを待ち、次いで新しいホ
ールドを変数に割り振り、また −−− 書込みロックがないか、もはや書込みロックさ
れていなくなった場合に、 −−−− 読取りロックがある場合、前記読取り操作を
要求したタスクが書込みタスクよりも高い優先順位を有
しているのであれば、読取りロックが解除されるまで待
つか、あるいは読取りロックを解除し、これが属してい
るトランザクションを打ち切り、また −−−− 読取りロックがないか、もはや読取りロック
がされていなくなった場合に、他の書込みを防止する打
切り不能書込みロックを割り振るステップからなってお
り、また書込み操作が変数の現行値を含んでいるメモリ
ゾーンを指定するポインタを、前記読取り操作を要求し
たタスクへ供給すること、あるいは各変数に対して新し
い値を供給して、書き込み、新しい値を前記ログにコピ
ーし、打切り不能書込みロックを解除し、最後に前記ホ
ールドを解除することからなっており、またトランザク
ション内部で、 − 読取り対象の各変数に対して、読取り操作が −− ログがトランザクションに対する変数に割り振ら
れていない場合に、 −−− 変数にホールドが割り振られている場合に、ホ
ールドが解除されるまで待ち、 −−− 変数にホールドが割り当てられていないか、も
はや割り振られなくなった場合に、変数を読み取るのに
必要な時間の間ホールドを変数に割り振り、 −−−− 打切り不能書込みロックが変数に割り振られ
ていない場合に、打切り可能な読取りロックを変数に割
り振り、読取りタスクが書込みタスクよりも高い優先順
位を有している場合に、この打切り可能読取りロックは
トランザクション内にない書込みを防止し、そうでない
場合には、前記打切り可能ロックが解除され、 −−−− 書込みロックが変数に割り振られている場合
に、ホールドを解除し、打切り不能書込みロックが解除
されるのを待ち、その後先行する操作を繰り返すステッ
プを行うことからなっており、また読取り操作が読取り
対象の各変数に対するポインタを、前記読取り操作を要
求したタスクに供給し、このポインタが変数の値を含ん
でいるログを指定すること、あるいは変数の値を供給
し、これをアトム的な態様で、前記読取り操作を要求し
たプロセスに属するメモリゾーンに属するメモリゾーン
にコピーし、次いでホールドを解除することからなって
おり、 −− ログがこのトランザクションに対する変数に割り
振られていない場合に、 −−− 変数にホールドが割り振られている場合に、ホ
ールドが解除されるまで待ち、 −−− 変数にホールドが割り当てられていないか、も
はや割り振られなくなった場合に、変数を読み取るのに
必要な時間の間ホールドを変数に割り振り、読取り操作
が読取り対象の変数に対するポインタを、前記読取り操
作を要求したタスクに供給し、このポインタが前記変数
の値を含んでいるメモリゾーンを指定すること、あるい
はログから読み取った変数の値を供給し、これをアトム
的な態様で、前記読取り操作を要求したプロセスに属す
るメモリゾーンににコピーし、次いでホールドを解除す
ることからなっており、 − 書込み対象の各変数に対して、書込み操作が −− このトランザクションにログがない場合には、 −−− 前記変数の値にホールドが割り振られている場
合に、ホールドが解除されるまで待ち、 −−− 変数の現行値にホールドが割り振られていない
か、もはや割り振られなくなった場合に、新しい値を書
込むのに必要な時間の間変数の現行値にホールドを割り
振り、 −−−− 書込みロックがある場合に、ホールドを解除
し、書込みロックが解除されるのを待ち、次いで新しい
ホールドを割り振り、 −−−− 書込みロックがないか、もはや書込みロック
が行われなくなった場合に、他の書込みを防止する打切
り可能な書込みロックを割り振り、トランザクションが
打ち切られた場合に、ロックを解除し、またログを変数
に割り振り、前記ログにホールドを割り振り、変数の現
行値をログに書き込み、変数の現行値に以前に割り振ら
れた第一のホールドを解除するプロセスからなってお
り、書込み操作がポインタを書き込み対象の各変数に供
給し、このポインタがログを指定すること、あるいは新
しい値をログにコピーし、次いでホールドを解除するこ
とからなっており、 −− このトランザクションにログが存在してない場合
には、 −−− 変数の新しい値を含んでいるログにホールドが
割り振られている場合に、ホールドが解除されるまで待
ち、 −−− 変数の新しい値を含んでいるログにホールドが
割り振られていないか、もはや割り振られなくなった場
合に、前記ログにホールドを割り振り、書込み操作がロ
グを指定するポインタを供給すること、あるいは書込み
対象の各変数に対して新しい値を供給し、新しい値をロ
グにコピーし、その後ホールドを解除することからなっ
ている。
【0031】このようなことを特徴とするこの方法は、
ポインタによって変数にアクセスすることを可能とする
とともに、変数が複数のタスクに関連できる場合に、競
合を管理することを可能とするものであるため、データ
に対して平均して高速なアクセスを獲得する。上述の規
則は二つの異なるタスクが読取りアクセスと書込みアク
セスをそれぞれ要求しているか、同一の変数に対して二
つの書込みアクセスを要求している場合に、存在してい
る競合を解決する。
ポインタによって変数にアクセスすることを可能とする
とともに、変数が複数のタスクに関連できる場合に、競
合を管理することを可能とするものであるため、データ
に対して平均して高速なアクセスを獲得する。上述の規
則は二つの異なるタスクが読取りアクセスと書込みアク
セスをそれぞれ要求しているか、同一の変数に対して二
つの書込みアクセスを要求している場合に、存在してい
る競合を解決する。
【0032】このようなことを特徴とする方法は、アク
セスがポインタによる場合にはホールドによるか、ある
いはアクセスが値による場合には読取りロックまたは書
込みロックによるかのいずれかによりアクセスに対して
アトム性を提供する効果がある。
セスがポインタによる場合にはホールドによるか、ある
いはアクセスが値による場合には読取りロックまたは書
込みロックによるかのいずれかによりアクセスに対して
アトム性を提供する効果がある。
【0033】このようなことを特徴とする方法はそれ
故、ホールドがアトム性を提供し、ロックが一貫性を提
供し、ログが分離を提供し、各値の修正の妥当性検査を
行うプロトコルが耐久性を提供するため、トランザクシ
ョンに望まれる四つの特性(アトム性、一貫性、分離、
および耐久性)を保証する。
故、ホールドがアトム性を提供し、ロックが一貫性を提
供し、ログが分離を提供し、各値の修正の妥当性検査を
行うプロトコルが耐久性を提供するため、トランザクシ
ョンに望まれる四つの特性(アトム性、一貫性、分離、
および耐久性)を保証する。
【0034】添付図面を参照して行う、本発明のデータ
マネージャの例についての以下の説明から、本発明はよ
りよく理解され、他の詳細が明らかとなるであろう。
マネージャの例についての以下の説明から、本発明はよ
りよく理解され、他の詳細が明らかとなるであろう。
【0035】
【発明の実施の形態】下記の表は本発明に従い、二つの
トランザクションの間に競争が生じた場合に適用される
規則をまとめたものである。第一のロックは第一のトラ
ンザクションにすでに割り振られており、第2のロック
は同一の変数に関して、第二のトランザクションに割り
振られようとしているものであり、表は第2のロックの
割振りが可能である(YES)であるか、拒否される
(NO)かすることを示している。
トランザクションの間に競争が生じた場合に適用される
規則をまとめたものである。第一のロックは第一のトラ
ンザクションにすでに割り振られており、第2のロック
は同一の変数に関して、第二のトランザクションに割り
振られようとしているものであり、表は第2のロックの
割振りが可能である(YES)であるか、拒否される
(NO)かすることを示している。
【0036】
【表1】
【0037】トランザクションの終了時に、第一のトラ
ンザクションに割り振られた第一のロックと第2のトラ
ンザクションに割り振られた第2のロックとの間の競合
が、二つのトランザクションのそれぞれの優先順位の関
数として解決され、これらの優先順位は各変数に対して
あらかじめ定められている。打切り可能書込みロックが
打切り不能書込みロックに変換される場合に合わせて設
定された規則に応じて、この方法を実施するのには、二
つの別個の態様がある。
ンザクションに割り振られた第一のロックと第2のトラ
ンザクションに割り振られた第2のロックとの間の競合
が、二つのトランザクションのそれぞれの優先順位の関
数として解決され、これらの優先順位は各変数に対して
あらかじめ定められている。打切り可能書込みロックが
打切り不能書込みロックに変換される場合に合わせて設
定された規則に応じて、この方法を実施するのには、二
つの別個の態様がある。
【0038】下記の表は本発明のインプリメンテーショ
ンロックの可能性をまとめたものである。
ンロックの可能性をまとめたものである。
【0039】
【表2】
【0040】図1から図4は本発明方法のこのインプリ
メンテーションに対応しているデータマネージャがどの
ように動作するかを示す。
メンテーションに対応しているデータマネージャがどの
ように動作するかを示す。
【0041】図1はトランザクション外での読取りに対
するデータマネージャによって行われるステップ1の経
過を示す。値による、あるいはポインタによる変数の読
取りは、読取りを要求したタスクが同じ要求内で他のア
クセスを要求していない場合、トランザクション外で行
われる。
するデータマネージャによって行われるステップ1の経
過を示す。値による、あるいはポインタによる変数の読
取りは、読取りを要求したタスクが同じ要求内で他のア
クセスを要求していない場合、トランザクション外で行
われる。
【0042】まず、データマネージャは、この変数に割
り振られたホールドが存在しているかどうかをテストす
ることからなるステップ10を行う。
り振られたホールドが存在しているかどうかをテストす
ることからなるステップ10を行う。
【0043】− ホールドが存在している場合には、ス
テップ16はその変数に割り振られているホールドが解
除されるのを待つことからなっている。
テップ16はその変数に割り振られているホールドが解
除されるのを待つことからなっている。
【0044】− 前記変数に割り振られているホールド
が存在していないか、もはや存在しなくなった場合、ス
テップ11はホールドを前記変数に割り振ることからな
っており、このホールドが他のタスクによるアクセスを
防止するものであるから、データが他のタスクによって
改変されないことが保証され、ステップ12は読取りが
ポインタによる読取りであるかどうかをテストすること
からなる。
が存在していないか、もはや存在しなくなった場合、ス
テップ11はホールドを前記変数に割り振ることからな
っており、このホールドが他のタスクによるアクセスを
防止するものであるから、データが他のタスクによって
改変されないことが保証され、ステップ12は読取りが
ポインタによる読取りであるかどうかをテストすること
からなる。
【0045】−− 読取りがポインタによる場合、ステ
ップ15は変数の現行値を含んでいるメモリロケーショ
ンを指定するポインタを、読取り操作を要求したタスク
に供給することからなっており、また −− 読取りがポインタによるものではなく、値による
読取りである場合には、ステップ13は変数の現行値を
アトム的な態様で、読取りを要求したタスクに固有のメ
モリロケーションにコピーすることからなっており、最
後に、ステップ14はステップ11によって割り振られ
たホールドを解除することからなっている。
ップ15は変数の現行値を含んでいるメモリロケーショ
ンを指定するポインタを、読取り操作を要求したタスク
に供給することからなっており、また −− 読取りがポインタによるものではなく、値による
読取りである場合には、ステップ13は変数の現行値を
アトム的な態様で、読取りを要求したタスクに固有のメ
モリロケーションにコピーすることからなっており、最
後に、ステップ14はステップ11によって割り振られ
たホールドを解除することからなっている。
【0046】図2はトランザクション内の読取りを行う
データマネージャによって行われるステップの流れ図で
ある。値による、あるいはポインタによる変数の読取り
は、読取りを要求したタスクが同じ要求内で他のアクセ
スを要求している場合、トランザクション内で行われ
る。
データマネージャによって行われるステップの流れ図で
ある。値による、あるいはポインタによる変数の読取り
は、読取りを要求したタスクが同じ要求内で他のアクセ
スを要求している場合、トランザクション内で行われ
る。
【0047】ステップ20はまず、前記変数の新しい値
を一時的に記憶するログが変数に割り振られているかど
うかをテストすることからなっている。
を一時的に記憶するログが変数に割り振られているかど
うかをテストすることからなっている。
【0048】− このようなログが存在している場合、
データマネージャはトランザクション外での読取りにつ
いて図1を参照して上述したステップ1の経過と同一の
ステップ1’の経過を行う。
データマネージャはトランザクション外での読取りにつ
いて図1を参照して上述したステップ1の経過と同一の
ステップ1’の経過を行う。
【0049】− その変数に割り振られたログが存在し
ない場合、ステップ21は変数の現行値に割り振られた
ホールドが存在しているかどうかをテストすることから
なる。
ない場合、ステップ21は変数の現行値に割り振られた
ホールドが存在しているかどうかをテストすることから
なる。
【0050】−− 変数の現行値にホールドが割り振ら
れている場合、ステップ30はホールドが解除されるま
で待つことからなっており、 −− 前記変数の現行値に割り振られているホールドが
存在していないか、もはや割り振られなくなった場合、
ステップ22は変数を読み取るのに必要な時間の間前記
変数の現行値にホールドを割り振ることからなってお
り、このホールドが他のタスクによるアクセスを防止す
るため、この操作のアトム性を保証し、ステップ23は
この変数の現行値に割り振られた打切り不能書込みロッ
クが存在しているかどうかをテストすることからなって
おり、 −−− 変数の現行値に割り振られた打切り不能書込み
ロックが存在している場合、ステップ29はホールドを
解除し、書込みロックの設定が打切り不能書込みロック
の存在と両立しないものであるから(表1、左列参照)
打切り不能書込みロックが解除されるのを待ち、ステッ
プ21、22、23、さらには恐らくステップ30を再
度開始し、また −−− 打切り不能書込みロックが存在していない場
合、それでも打切り可能書込みロックがあり、ステップ
24は、読取りを要求したタスクが競合書込みタスクの
どれよりも高い優先順位を有していることを条件とし
て、変数の現行値に打切り可能読取りロックを割り振る
ことからなっており(表1に示すように、打切り可能書
込みロックが存在している場合、打切り可能または打切
り不能読取りロックの割振りが可能である)、ステップ
25は読取りがポインタによる読取りであるか、値によ
る読取りであるかを判断することからなっており、 −−−− ポインタによる読取りである場合、ステップ
28は読取り対象の変数に対するポインタを読取り操作
を要求したタスクに供給することからなっており、ポイ
ンタは前記変数の現行値を含んでいるメモリロケーショ
ンを指定し、 −−−− 値による読取りである場合、ステップ26は
変数の現行値を供給し、これをアトム的な態様で、読取
り操作を要求したタスク固有のメモリロケーションにコ
ピーし、最後にホールドを解除することからなってい
る。
れている場合、ステップ30はホールドが解除されるま
で待つことからなっており、 −− 前記変数の現行値に割り振られているホールドが
存在していないか、もはや割り振られなくなった場合、
ステップ22は変数を読み取るのに必要な時間の間前記
変数の現行値にホールドを割り振ることからなってお
り、このホールドが他のタスクによるアクセスを防止す
るため、この操作のアトム性を保証し、ステップ23は
この変数の現行値に割り振られた打切り不能書込みロッ
クが存在しているかどうかをテストすることからなって
おり、 −−− 変数の現行値に割り振られた打切り不能書込み
ロックが存在している場合、ステップ29はホールドを
解除し、書込みロックの設定が打切り不能書込みロック
の存在と両立しないものであるから(表1、左列参照)
打切り不能書込みロックが解除されるのを待ち、ステッ
プ21、22、23、さらには恐らくステップ30を再
度開始し、また −−− 打切り不能書込みロックが存在していない場
合、それでも打切り可能書込みロックがあり、ステップ
24は、読取りを要求したタスクが競合書込みタスクの
どれよりも高い優先順位を有していることを条件とし
て、変数の現行値に打切り可能読取りロックを割り振る
ことからなっており(表1に示すように、打切り可能書
込みロックが存在している場合、打切り可能または打切
り不能読取りロックの割振りが可能である)、ステップ
25は読取りがポインタによる読取りであるか、値によ
る読取りであるかを判断することからなっており、 −−−− ポインタによる読取りである場合、ステップ
28は読取り対象の変数に対するポインタを読取り操作
を要求したタスクに供給することからなっており、ポイ
ンタは前記変数の現行値を含んでいるメモリロケーショ
ンを指定し、 −−−− 値による読取りである場合、ステップ26は
変数の現行値を供給し、これをアトム的な態様で、読取
り操作を要求したタスク固有のメモリロケーションにコ
ピーし、最後にホールドを解除することからなってい
る。
【0051】図3はトランザクション外での書込みに対
するデータマネージャによって行われるステップを示
す。値による、あるいはポインタによる変数の書込み
は、書込みを要求したタスクが同じ要求内で他のアクセ
スを要求していない場合、トランザクション外で行われ
る。
するデータマネージャによって行われるステップを示
す。値による、あるいはポインタによる変数の書込み
は、書込みを要求したタスクが同じ要求内で他のアクセ
スを要求していない場合、トランザクション外で行われ
る。
【0052】ステップ30はまず変数に割り振られたホ
ールドが存在しているかどうかをテストすることからな
っており、 − ホールドがある場合、ステップ41はホールドが解
除されるのを待ち、次いでステップ30を再度開始し、 − ホールドが存在していないか、もはや存在しなくな
った場合、ステップ31はホールドを前記変数に割り振
ることからなっており、ステップ32は前記変数に割り
振られた打切り可能書込みロックが存在しているか、打
切り不能書込みロックが存在しているかを判断すること
からなっており、 −− 書込みロックがある場合、ステップ40はステッ
プ31によって割り振られたホールドを解除し、次いで
書込みロックが解除されるのを待つとともに、ステップ
30、31、32および場合によってはステップ41を
繰り返すことからなり、また −− 書込みロックが存在していないか、もはや存在し
なくなった場合、ステップ33は打切り可能読取りロッ
クがあるか、打切り不能読取りロックがあるかを判定す
ることからなり、 −−− 読取りロックがない場合、ステップ34は打切
り不能書込みロックを前記変数に割り振り、このロック
が他のものによる書込みまたは読取りを防止することか
らなり、ステップ35は書込みが値による書込みである
か、ポインタによる書込みであるかを判断することから
なっており、 −−−− 値による書込みの場合には、ステップ36の
経過は書き込み操作を要求したタスクに属するメモリロ
ケーション内にある新しい値を変数に割り振られたメモ
リロケーションにコピーし、次いで書込みロックを解除
し、次いでホールドを解除することからなり、また −−−− 書込みがポインタによる書込みである場合、
ステップ37は変数の現行値を含んでいるメモリゾーン
を指定するポインタを、書込み操作を要求したタスクに
供給し、このタスクが新しい値をこのロケーションに入
力することからなり、 −−− 少なくとも一つの読み取りロックがある場合、
ステップ42はロックが打切り可能であるか否かをテス
トし、 −−−− 打切り可能ロックがある場合、すなわち少な
くとも一つの競合読取りタスクがある場合、ステップ3
8は少なくとも一つの競合読取りタスクが他の読取りタ
スクより高い優先順位を有しているかどうかを判断する
ことからなり(表2の第2の列におかれている規則を適
用する)、 −−−− 少なくとも一つの競合タスクが他の書込みタ
スクよりも高い優先順位を有している場合、ステップ4
0が行われ(ホールドを撤回し、読取りロックが解除さ
れるのを待つ)、また −−−−− 競合読取りタスクが優先順位を有していな
い場合、ステップ39の経過は競合タスクに割り振られ
ている各打切り可能読取りロックを解除し、読取りロッ
クが属しているトランザクションを打ち切ることからな
り(表2に準拠して)、ステップ34が行われ(打切り
不能書込みロックがセットされる)、 −−−− 読取りロックが打切り不能である場合、ステ
ップ40が行われる。
ールドが存在しているかどうかをテストすることからな
っており、 − ホールドがある場合、ステップ41はホールドが解
除されるのを待ち、次いでステップ30を再度開始し、 − ホールドが存在していないか、もはや存在しなくな
った場合、ステップ31はホールドを前記変数に割り振
ることからなっており、ステップ32は前記変数に割り
振られた打切り可能書込みロックが存在しているか、打
切り不能書込みロックが存在しているかを判断すること
からなっており、 −− 書込みロックがある場合、ステップ40はステッ
プ31によって割り振られたホールドを解除し、次いで
書込みロックが解除されるのを待つとともに、ステップ
30、31、32および場合によってはステップ41を
繰り返すことからなり、また −− 書込みロックが存在していないか、もはや存在し
なくなった場合、ステップ33は打切り可能読取りロッ
クがあるか、打切り不能読取りロックがあるかを判定す
ることからなり、 −−− 読取りロックがない場合、ステップ34は打切
り不能書込みロックを前記変数に割り振り、このロック
が他のものによる書込みまたは読取りを防止することか
らなり、ステップ35は書込みが値による書込みである
か、ポインタによる書込みであるかを判断することから
なっており、 −−−− 値による書込みの場合には、ステップ36の
経過は書き込み操作を要求したタスクに属するメモリロ
ケーション内にある新しい値を変数に割り振られたメモ
リロケーションにコピーし、次いで書込みロックを解除
し、次いでホールドを解除することからなり、また −−−− 書込みがポインタによる書込みである場合、
ステップ37は変数の現行値を含んでいるメモリゾーン
を指定するポインタを、書込み操作を要求したタスクに
供給し、このタスクが新しい値をこのロケーションに入
力することからなり、 −−− 少なくとも一つの読み取りロックがある場合、
ステップ42はロックが打切り可能であるか否かをテス
トし、 −−−− 打切り可能ロックがある場合、すなわち少な
くとも一つの競合読取りタスクがある場合、ステップ3
8は少なくとも一つの競合読取りタスクが他の読取りタ
スクより高い優先順位を有しているかどうかを判断する
ことからなり(表2の第2の列におかれている規則を適
用する)、 −−−− 少なくとも一つの競合タスクが他の書込みタ
スクよりも高い優先順位を有している場合、ステップ4
0が行われ(ホールドを撤回し、読取りロックが解除さ
れるのを待つ)、また −−−−− 競合読取りタスクが優先順位を有していな
い場合、ステップ39の経過は競合タスクに割り振られ
ている各打切り可能読取りロックを解除し、読取りロッ
クが属しているトランザクションを打ち切ることからな
り(表2に準拠して)、ステップ34が行われ(打切り
不能書込みロックがセットされる)、 −−−− 読取りロックが打切り不能である場合、ステ
ップ40が行われる。
【0053】図4はトランザクション内の書込みを行う
データマネージャによって行われるステップの流れ図で
ある。値による、あるいはポインタによる変数の書込み
は、書込みを要求したタスクが同じ要求内で他のアクセ
スを要求している場合、トランザクション内で行われ
る。
データマネージャによって行われるステップの流れ図で
ある。値による、あるいはポインタによる変数の書込み
は、書込みを要求したタスクが同じ要求内で他のアクセ
スを要求している場合、トランザクション内で行われ
る。
【0054】第一のステップ50は問題の変数に割り振
られたログが問題の書き込みトランザクションに関して
存在しているかどうかを判断することからなる。
られたログが問題の書き込みトランザクションに関して
存在しているかどうかを判断することからなる。
【0055】− このようなログが存在していない場
合、ステップ51は変数の現行値に割り振られたホール
ドが存在しているかどうかを判断することからなる。
合、ステップ51は変数の現行値に割り振られたホール
ドが存在しているかどうかを判断することからなる。
【0056】−− ホールドが存在していないか、もは
や存在しなくなった場合、ステップ52は変数の現行値
にホールドを割り振ることからなっており、このホール
ドは操作をアトム性にし、次いで書き込みロックが変数
に割り振られた書込みロックが存在しているかどうかを
判断することからなるステップ53を行うことからな
り、−−− 書込みロックがない場合、ステップ54の
経過は打切り可能である(問題のトランザクションが他
のトランザクションと競合している場合)書込みロック
を、問題のトランザクションに対する変数の新しい値に
割り振り(表1の規則により、これが可能である)、次
いでログをこの現行値に割り振り、ホールドをこのログ
に割り振り、このホールドが変数の現行値のログアトム
へのコピーを行い、次いで変数の現行値をログへコピー
し、現行値に割り振られているホールドを解除し、最後
にステップ55が書込み操作がポインタによる書込み操
作であるか、値による書込み操作であるかを判断し、 −−−− 値による書込み操作である場合、ステップ5
6の経過は変数の新しい値をログにコピーし、次いでロ
グに割り振られたホールドを解除することからなり、ま
た −−−− ポインタによる書込み操作である場合、ステ
ップ57はログを指定するポインタを書込みタスクに供
給し、このポインタによってログに新しい値を書き込む
ことが可能となり、次いでトランザクションが妥当とさ
れると、新しい値が現行値のメモリロケーションへ転送
され、また −−− 変数の現行値に割り振られた打切り可能または
打切り不能書込みロックがすでに存在している場合、ス
テップ58はホールドを解除し、ロックが解除されるの
を待ち、ステップ51を再度開始し、また −− ステップ51で変数の現行値に割り振られたホー
ルドが存在していると判断された場合、ステップ59は
ステップ51を再度開始することによってホールドが撤
回されるのを待ち、また − ステップ50で問題のトランザクションに対して変
数を割り当てたログが存在していると判断された場合、
ステップ61は前記ログに割り振られたホールドが存在
しているかどうかを判断することからなり、 −− 前記ログに割り振られたホールドが存在している
場合、ステップ67は操作61を繰り返すことによりホ
ールドが撤回されるまで待つことからなっており、また −− 前記ログに割り振られたホールドが存在していな
い場合、ステップ62はホールドをログに割り振り、こ
のホールドがログに対するアクセスを防止することから
なっており、次いでステップ63は書込み操作がポイン
タによるものであるか、値によるものであるかを判断
し、 −−− 値による書込み操作である場合、ステップ64
の経過は変数に対する新しい値を供給し、次いで新しい
値をログにコピーし、次いでホールドを解除することか
らなり、また −−− ポインタによる書込み操作である場合、ステッ
プ66はログを指定するポインタを書込みタスクに供給
して、前記タスクが新しい値をこれに書込めるようにす
る。
や存在しなくなった場合、ステップ52は変数の現行値
にホールドを割り振ることからなっており、このホール
ドは操作をアトム性にし、次いで書き込みロックが変数
に割り振られた書込みロックが存在しているかどうかを
判断することからなるステップ53を行うことからな
り、−−− 書込みロックがない場合、ステップ54の
経過は打切り可能である(問題のトランザクションが他
のトランザクションと競合している場合)書込みロック
を、問題のトランザクションに対する変数の新しい値に
割り振り(表1の規則により、これが可能である)、次
いでログをこの現行値に割り振り、ホールドをこのログ
に割り振り、このホールドが変数の現行値のログアトム
へのコピーを行い、次いで変数の現行値をログへコピー
し、現行値に割り振られているホールドを解除し、最後
にステップ55が書込み操作がポインタによる書込み操
作であるか、値による書込み操作であるかを判断し、 −−−− 値による書込み操作である場合、ステップ5
6の経過は変数の新しい値をログにコピーし、次いでロ
グに割り振られたホールドを解除することからなり、ま
た −−−− ポインタによる書込み操作である場合、ステ
ップ57はログを指定するポインタを書込みタスクに供
給し、このポインタによってログに新しい値を書き込む
ことが可能となり、次いでトランザクションが妥当とさ
れると、新しい値が現行値のメモリロケーションへ転送
され、また −−− 変数の現行値に割り振られた打切り可能または
打切り不能書込みロックがすでに存在している場合、ス
テップ58はホールドを解除し、ロックが解除されるの
を待ち、ステップ51を再度開始し、また −− ステップ51で変数の現行値に割り振られたホー
ルドが存在していると判断された場合、ステップ59は
ステップ51を再度開始することによってホールドが撤
回されるのを待ち、また − ステップ50で問題のトランザクションに対して変
数を割り当てたログが存在していると判断された場合、
ステップ61は前記ログに割り振られたホールドが存在
しているかどうかを判断することからなり、 −− 前記ログに割り振られたホールドが存在している
場合、ステップ67は操作61を繰り返すことによりホ
ールドが撤回されるまで待つことからなっており、また −− 前記ログに割り振られたホールドが存在していな
い場合、ステップ62はホールドをログに割り振り、こ
のホールドがログに対するアクセスを防止することから
なっており、次いでステップ63は書込み操作がポイン
タによるものであるか、値によるものであるかを判断
し、 −−− 値による書込み操作である場合、ステップ64
の経過は変数に対する新しい値を供給し、次いで新しい
値をログにコピーし、次いでホールドを解除することか
らなり、また −−− ポインタによる書込み操作である場合、ステッ
プ66はログを指定するポインタを書込みタスクに供給
して、前記タスクが新しい値をこれに書込めるようにす
る。
【図1】トランザクション内にない読取りに関与するス
テップの流れ図である。
テップの流れ図である。
【図2】トランザクション内の読取りに関与するステッ
プの流れ図である。
プの流れ図である。
【図3】トランザクション内にない書込みに関与するス
テップの流れ図である。
テップの流れ図である。
【図4】トランザクション内の書込みに関与するステッ
プの流れ図である。
プの流れ図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドミニク・ギド フランス国、92310・セーブル、リユ・ベ ルナール・パリシー・15 (72)発明者 ベノワ・ポール−デユボワ−テーヌ フランス国、92340・ブール・ラ・レーヌ、 リユ・ドウ・ラ・フオンテーヌ・グルロ・ 29
Claims (1)
- 【請求項1】 メモリに含まれているデータが各種の競
合プロセスによって共用されており、各プロセスが一般
に複数の競合タスクによって構成されている共用メモリ
におけるデータの管理方法であって、 トランザクション外で、 − 読取り対象の各変数に対して、読取り操作が「ホー
ルド」と呼ばれるロックを読取り対象の変数に割り振り
(11)、前記変数にホールドが割り振られていない場
合に、該ホールドが前記変数へのアクセスを防止するこ
と、あるいは先行するホールドが前記変数に割り振られ
ている場合に、先行するホールドが解除されるまで待っ
てから、新しいホールドを前記変数に割り振ることから
なっており、しかも前記変数の現行値を含んでいるメモ
リゾーンを指定するポインタを前記読取り操作を要求し
たプロセスに供給する(15)か、あるいは変数の現行
値を供給(13)し、これをアトム的な態様で前記読取
り操作を要求したタスクに属するメモリロケーションに
コピーし、その後ホールドを解除するかのいずれかから
なっており、また − 書込み対象の各変数に対して、書込み操作が −− 変数の現行値にホールドが割り振られている場合
に、ホールドが解除されるまで待ち(41)、 −− 変数にホールドが割り当てられていないか、もは
や割り振られなくなった場合に、変数を書き込むのに必
要な時間の間ホールドを変数に割り振り(31)、 −−− 書込みロックがある場合に、ホールドを解除
(40)し、書込みロックが解除するのを待ち、次いで
新しいホールドを変数に割り振り、また −−− 書込みロックがないか、もはや書込みロックさ
れていなくなった場合に、 −−−− 読取りロックがある場合、前記読取り操作を
要求したタスクが書込みタスクよりも高い優先順位を有
しているのであれば、読取りロックが解除されるまで待
つ(40)か、あるいは読取りロックを解除(39)
し、これが属しているトランザクションを打ち切り、ま
た −−−− 読取りロックがないか、もはや読取りロック
がされていなくなった場合に、他の書込みを防止する打
切り不能書込みロックを割り振る(34)ステップから
なっており、また書込み操作が変数の現行値を含んでい
るメモリゾーンを指定するポインタを、前記読取り操作
を要求したタスクへ供給する(37)こと、あるいは各
変数に対して新しい値を供給(36)して、書き込み、
新しい値を前記ログにコピーし、打切り不能書込みロッ
クを解除し、最後に前記ホールドを解除することからな
っており、またトランザクション内部で、 − 読取り対象の各変数に対して、読取り操作が −− ログがトランザクションに対する変数に割り振ら
れていない場合に、 −−− 変数にホールドが割り振られている場合に、ホ
ールドが解除されるまで待ち(30)、 −−− 変数にホールドが割り当てられていないか、も
はや割り振られなくなった場合に、変数を読み取るのに
必要な時間の間ホールドを変数に割り振り(22)、 −−−− 打切り不能書込みロックが変数に割り振られ
ていない場合に、打切り可能な読取りロックを変数に割
り振り(24)、読取りタスクが書込みタスクよりも高
い優先順位を有している場合に、この打切り可能読取り
ロックはトランザクション内にない書込みを防止し、そ
うでない場合には、前記打切り可能ロックが解除され、 −−−− 書込みロックが変数に割り振られている場合
に、ホールドを解除(29)し、打切り不能書込みロッ
クが解除されるのを待ち、その後先行する操作(21,
22,23,30)を繰り返すステップを行うことから
なっており、また読取り操作が読取り対象の各変数に対
するポインタを、前記読取り操作を要求したタスクに供
給(28)し、このポインタが変数の値を含んでいるロ
グを指定すること、あるいは変数の値を供給(26)
し、これをアトム的な態様で、前記読取り操作を要求し
たプロセスに属するメモリゾーンに属するメモリゾーン
にコピーし、次いでホールドを解除(27)することか
らなっており、 −− ログがこのトランザクションに対する変数に割り
振られていない場合に、 −−− 変数にホールドが割り振られている場合に、ホ
ールドが解除されるまで待ち(16)、 −−− 変数にホールドが割り当てられていないか、も
はや割り振られなくなった場合に、変数を読み取るのに
必要な時間の間ホールドを変数に割り振り(11)、 読取り操作が読取り対象の変数に対するポインタを、前
記読取り操作を要求したタスクに供給(15)し、この
ポインタが前記変数の値を含んでいるメモリゾーンを指
定すること、あるいはログから読み取った変数の値を供
給(13)し、これをアトム的な態様で、前記読取り操
作を要求したプロセスに属するメモリゾーンににコピー
し、次いでホールドを解除(14)することからなって
おり、 − 書込み対象の各変数に対して、書込み操作が −− このトランザクションにログがない場合には、 −−− 前記変数の値にホールドが割り振られている場
合に、ホールドが解除されるまで待ち(59)、 −−− 変数の現行値にホールドが割り振られていない
か、もはや割り振られなくなった場合に、新しい値を書
込むのに必要な時間の間変数の現行値にホールドを割り
振り(52)、 −−−− 書込みロックがある場合に、ホールドを解除
(58)し、書込みロックが解除されるのを待ち、次い
で新しいホールドを割り振り(52)、 −−−− 書込みロックがないか、もはや書込みロック
が行われなくなった場合に、他の書込みを防止する打切
り可能な書込みロックを割り振り(54)、トランザク
ションが打ち切られた場合に、ロックを解除し、またロ
グを変数に割り振り(54)、前記ログにホールドを割
り振り、ホールドを前記ログに割り振り(54)、変数
の現行値をログに書き込み(54)、変数の現行値に以
前に割り振られた第一のホールドを解除(54)するプ
ロセスからなっており、 書込み操作がポインタを書き込み対象の各変数に供給
(57)し、このポインタがログを指定すること、ある
いは新しい値をログにコピー(56)し、次いでホール
ドを解除することからなっており、 −− このトランザクションにログが存在してない場合
には、 −−− 変数の新しい値を含んでいるログにホールドが
割り振られている場合に、ホールドが解除されるまで待
ち(67)、 −−− 変数の新しい値を含んでいるログにホールドが
割り振られていないか、もはや割り振られなくなった場
合に、前記ログにホールドを割り振り(62)、 書込み操作がログを指定するポインタを供給(66)す
ること、あるいは書込み対象の各変数に対して新しい値
を供給(67)し、新しい値をログにコピーし、その後
ホールドを解除(65)することからなっていることを
特徴とする方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9704744 | 1997-04-17 | ||
| FR9704744A FR2762418B1 (fr) | 1997-04-17 | 1997-04-17 | Procede de gestion d'une memoire partagee |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10301834A true JPH10301834A (ja) | 1998-11-13 |
Family
ID=9506029
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10108266A Pending JPH10301834A (ja) | 1997-04-17 | 1998-04-17 | 共用メモリの管理方法 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US6009426A (ja) |
| EP (1) | EP0872796B1 (ja) |
| JP (1) | JPH10301834A (ja) |
| CN (1) | CN1174323C (ja) |
| AT (1) | ATE262696T1 (ja) |
| CA (1) | CA2233407A1 (ja) |
| DE (1) | DE69822541T2 (ja) |
| FR (1) | FR2762418B1 (ja) |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3756352B2 (ja) * | 1999-06-29 | 2006-03-15 | 富士通株式会社 | コンパイラ装置およびコンパイラを記録したコンピュータ読み取り可能な記録媒体 |
| WO2001022273A1 (en) * | 1999-09-24 | 2001-03-29 | Sun Microsystems, Inc. | Mechanism for enabling session information to be shared across multiple processes |
| US6574749B1 (en) * | 1999-10-29 | 2003-06-03 | Nortel Networks Limited | Reliable distributed shared memory |
| US6735765B1 (en) * | 1999-12-07 | 2004-05-11 | Storage Technology Corporation | Sharing data between operating systems |
| GB2364143A (en) | 2000-06-30 | 2002-01-16 | Nokia Corp | Resource allocation |
| US6810470B1 (en) * | 2000-08-14 | 2004-10-26 | Ati Technologies, Inc. | Memory request interlock |
| CN1326073C (zh) * | 2001-04-02 | 2007-07-11 | 佳能株式会社 | 用于建立计算机文字信息的索引和进行检索的方法和系统 |
| US7496646B2 (en) * | 2001-09-21 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | System and method for management of a storage area network |
| US6748479B2 (en) * | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
| US7752281B2 (en) * | 2001-11-20 | 2010-07-06 | Broadcom Corporation | Bridges performing remote reads and writes as uncacheable coherent operations |
| US7227870B2 (en) * | 2001-11-20 | 2007-06-05 | Broadcom Corporation | Systems including packet interfaces, switches, and packet DMA circuits for splitting and merging packet streams |
| US7394823B2 (en) * | 2001-11-20 | 2008-07-01 | Broadcom Corporation | System having configurable interfaces for flexible system configurations |
| US6912602B2 (en) * | 2001-11-20 | 2005-06-28 | Broadcom Corporation | System having two or more packet interfaces, a switch, and a shared packet DMA circuit |
| US7206879B2 (en) * | 2001-11-20 | 2007-04-17 | Broadcom Corporation | Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems |
| CN1307558C (zh) * | 2001-12-29 | 2007-03-28 | 中兴通讯股份有限公司 | 通信系统中分系统间的虚拟内存分配管理方法 |
| US7246119B2 (en) * | 2002-03-08 | 2007-07-17 | Kabushiki Kaisha Toshiba | Method and implementation of session-based file locking for network applications |
| US7841514B2 (en) | 2002-03-29 | 2010-11-30 | Walker Digital, Llc | Digital advertisement board in communication with point-of-sale terminals |
| AU2003303127A1 (en) * | 2002-03-29 | 2004-08-10 | Walker Digital, Llc | Method and apparatus for managing and providing offers |
| US20030204444A1 (en) * | 2002-03-29 | 2003-10-30 | Van Luchene Andrew S. | Method and apparatus for managing and providing offers |
| US7003631B2 (en) * | 2002-05-15 | 2006-02-21 | Broadcom Corporation | System having address-based intranode coherency and data-based internode coherency |
| US6965973B2 (en) | 2002-05-15 | 2005-11-15 | Broadcom Corporation | Remote line directory which covers subset of shareable CC-NUMA memory space |
| US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
| US6993631B2 (en) * | 2002-05-15 | 2006-01-31 | Broadcom Corporation | L2 cache maintaining local ownership of remote coherency blocks |
| CN1300703C (zh) * | 2003-11-05 | 2007-02-14 | 松下电器产业株式会社 | 调节电路及其具有它的功能处理电路 |
| JP4742498B2 (ja) * | 2004-01-09 | 2011-08-10 | ソニー株式会社 | データ通信システム、データ処理装置、そのプログラムおよびその方法 |
| US20050203903A1 (en) * | 2004-03-10 | 2005-09-15 | Rajan Rajeev B. | System and method for locking and isolation in a storage platform |
| US20050216611A1 (en) * | 2004-03-29 | 2005-09-29 | Martinez Alberto J | Method and apparatus to achieve data pointer obfuscation for content protection of streaming media DMA engines |
| DE102004017050A1 (de) * | 2004-04-07 | 2005-10-27 | Robert Bosch Gmbh | Datenkonsistenz in Datenverarbeitungsanlagen |
| US7937709B2 (en) | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
| US7823150B2 (en) | 2005-01-25 | 2010-10-26 | International Business Machines Corporation | Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object |
| US7870545B2 (en) * | 2005-12-16 | 2011-01-11 | Intel Corporation | Protecting shared variables in a software transactional memory system |
| CN100392599C (zh) * | 2006-01-10 | 2008-06-04 | 杭州东信灵通电子实业公司 | 通用进程间通信实现方法 |
| CN100454241C (zh) * | 2006-02-28 | 2009-01-21 | 华为技术有限公司 | 一种在共享内存中存储c++对象的方法及装置 |
| US20070283319A1 (en) * | 2006-04-01 | 2007-12-06 | Mza Associates Corporation | Software development framework using component-based architecture |
| CN100365632C (zh) * | 2006-04-05 | 2008-01-30 | 华为技术有限公司 | 实现内存数据和数据库数据事务一致性的处理方法 |
| US7840947B2 (en) * | 2006-06-09 | 2010-11-23 | Oracle America, Inc. | Delayed breakpoints |
| US8316352B2 (en) * | 2006-06-09 | 2012-11-20 | Oracle America, Inc. | Watchpoints on transactional variables |
| US7647454B2 (en) * | 2006-06-12 | 2010-01-12 | Hewlett-Packard Development Company, L.P. | Transactional shared memory system and method of control |
| US7861093B2 (en) * | 2006-08-30 | 2010-12-28 | International Business Machines Corporation | Managing data access via a loop only if changed locking facility |
| US7723601B2 (en) | 2007-03-22 | 2010-05-25 | Qualcomm Incorporated | Shared buffer management for processing audio files |
| US8140497B2 (en) * | 2007-12-31 | 2012-03-20 | Oracle America, Inc. | System and method for implementing nonblocking zero-indirection transactional memory |
| US20100017581A1 (en) * | 2008-07-18 | 2010-01-21 | Microsoft Corporation | Low overhead atomic memory operations |
| US20100064280A1 (en) * | 2008-09-09 | 2010-03-11 | International Business Machines Corporation | Systems and methods for implementing test applications for systems using locks |
| US20110093745A1 (en) * | 2009-10-20 | 2011-04-21 | Aviad Zlotnick | Systems and methods for implementing test applications for systems using locks |
| US8595446B2 (en) * | 2009-11-25 | 2013-11-26 | Oracle America, Inc. | System and method for performing dynamic mixed mode read validation in a software transactional memory |
| CN103034649B (zh) * | 2011-09-30 | 2015-07-15 | 阿里巴巴集团控股有限公司 | 一种实现数据存储和搜索的方法和系统 |
| CN102426536B (zh) * | 2011-10-26 | 2014-04-09 | 深圳市亚特尔科技有限公司 | 一种多任务间数据通信的实现方法及系统 |
| CN103019829A (zh) * | 2012-12-31 | 2013-04-03 | 哈尔滨工业大学 | 用签名实现的多核程序内存竞争记录及重演方法 |
| US9286206B2 (en) * | 2013-07-30 | 2016-03-15 | Kabushiki Kaisha Toshiba | Memory system |
| US10331500B2 (en) * | 2017-04-05 | 2019-06-25 | Cavium, Llc | Managing fairness for lock and unlock operations using operation prioritization |
| US10445096B2 (en) | 2017-04-05 | 2019-10-15 | Cavium, Llc | Managing lock and unlock operations using traffic prioritization |
| CN108572876B (zh) * | 2018-03-07 | 2020-11-20 | 北京神州绿盟信息安全科技股份有限公司 | 一种读写锁的实现方法及装置 |
| CN111240826B (zh) * | 2019-12-27 | 2022-07-08 | 江苏艾佳家居用品有限公司 | 适用于3d模型资源的大规模展示的内存管理方法 |
| CN113009876A (zh) * | 2021-02-26 | 2021-06-22 | 共享智能铸造产业创新中心有限公司 | 系统集成时的数据确信方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0318935A (ja) * | 1989-06-15 | 1991-01-28 | Hitachi Ltd | データリストに対するアクセスの直列化方式 |
| US5721943A (en) * | 1993-10-14 | 1998-02-24 | International Business Machines Corporation | Negotiable locks for concurrent access of control data by multiple programs |
| FR2727222B1 (fr) * | 1994-11-21 | 1996-12-27 | Cit Alcatel | Protocole transactionnel, et systeme pour la mise en oeuvre de ce protocole |
| US5761659A (en) * | 1996-02-29 | 1998-06-02 | Sun Microsystems, Inc. | Method, product, and structure for flexible range locking of read and write requests using shared and exclusive locks, flags, sub-locks, and counters |
| US5832484A (en) * | 1996-07-02 | 1998-11-03 | Sybase, Inc. | Database system with methods for parallel lock management |
-
1997
- 1997-04-17 FR FR9704744A patent/FR2762418B1/fr not_active Expired - Fee Related
- 1997-04-21 US US08/844,635 patent/US6009426A/en not_active Expired - Fee Related
-
1998
- 1998-04-16 CA CA002233407A patent/CA2233407A1/fr not_active Abandoned
- 1998-04-16 DE DE69822541T patent/DE69822541T2/de not_active Expired - Fee Related
- 1998-04-16 EP EP98400941A patent/EP0872796B1/fr not_active Expired - Lifetime
- 1998-04-16 AT AT98400941T patent/ATE262696T1/de not_active IP Right Cessation
- 1998-04-16 CN CNB981069541A patent/CN1174323C/zh not_active Expired - Fee Related
- 1998-04-17 JP JP10108266A patent/JPH10301834A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| DE69822541T2 (de) | 2005-01-27 |
| DE69822541D1 (de) | 2004-04-29 |
| FR2762418A1 (fr) | 1998-10-23 |
| EP0872796A1 (fr) | 1998-10-21 |
| CA2233407A1 (fr) | 1998-10-17 |
| CN1197955A (zh) | 1998-11-04 |
| FR2762418B1 (fr) | 1999-06-11 |
| US6009426A (en) | 1999-12-28 |
| CN1174323C (zh) | 2004-11-03 |
| EP0872796B1 (fr) | 2004-03-24 |
| ATE262696T1 (de) | 2004-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10301834A (ja) | 共用メモリの管理方法 | |
| US5522077A (en) | Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers | |
| JP3689336B2 (ja) | データベースにおける並行したトランザクションのストリームを調停するための方法およびシステム | |
| US5946711A (en) | System for locking data in a shared cache | |
| US8560524B2 (en) | Allocating priorities to prevent deadlocks in a storage system | |
| US6240413B1 (en) | Fine-grained consistency mechanism for optimistic concurrency control using lock groups | |
| US5410697A (en) | Concurrency management using version identification of shared data as a supplement to use of locks | |
| EP0442715B1 (en) | Transaction processing system and method with reduced locking | |
| US5668958A (en) | Heterogeneous filing system with common API and reconciled file management rules | |
| US6119118A (en) | Method and system for extending file system metadata | |
| US6510437B1 (en) | Method and apparatus for concurrent thread synchronization | |
| JP2559959B2 (ja) | 複数の非同期的プロセスによりレコードを更新する方法 | |
| US6411983B1 (en) | Mechanism for managing the locking and unlocking of objects in Java | |
| JP3674117B2 (ja) | 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体 | |
| US6105085A (en) | Lock mechanism for shared resources having associated data structure stored in common memory include a lock portion and a reserve portion | |
| US6625710B2 (en) | System, method, and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system | |
| US5999976A (en) | Parallel file system and method with byte range API locking | |
| EP0817041A2 (en) | Method for reserving resources | |
| JPH1165863A (ja) | 共有資源管理方法 | |
| JPH0628053B2 (ja) | マルチプロセッサシステムの資源の割当制御方法 | |
| JPH05134915A (ja) | 共用データシステムにおけるデータ資源のロツキング方法及びシステム間のデータロツク管理方法 | |
| JPH01188965A (ja) | データ処理方法 | |
| US9274819B2 (en) | Performing garbage collection using a virtual thread in operating system without kernel thread support | |
| JPH07262071A (ja) | データベースシステム及び負荷分散制御方法 | |
| JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 |