JPH01188965A - データ処理方法 - Google Patents

データ処理方法

Info

Publication number
JPH01188965A
JPH01188965A JP63301094A JP30109488A JPH01188965A JP H01188965 A JPH01188965 A JP H01188965A JP 63301094 A JP63301094 A JP 63301094A JP 30109488 A JP30109488 A JP 30109488A JP H01188965 A JPH01188965 A JP H01188965A
Authority
JP
Japan
Prior art keywords
processing unit
page
segment
data
application 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.)
Granted
Application number
JP63301094A
Other languages
English (en)
Other versions
JPH0522259B2 (ja
Inventor
Marion L Blount
マリオン・リイ・ブラント
Anthony Cocchi
アンソニイ・コッチイ
Mark F Mergen
マーク・フレデリック・ミイーゲン
Stephen P Morgan
ステイヴン・ポール・モーガン
Katalin A V Rader
カタリン・アナ・ヴェロニカ・ラダー
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 JPH01188965A publication Critical patent/JPH01188965A/ja
Publication of JPH0522259B2 publication Critical patent/JPH0522259B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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/466Transaction processing
    • 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
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は総括的に言えば、仮想メモリの同一のアドレス
空間を共用する、相互接続された複数個の同じようなデ
ータ処理ユニットからなる仮想メモリのデータ処理シス
テムに関し、より詳細に言えば、システムを構成してい
るコンポーネントのうちの何れか1つのコンポーネント
が故障した結果生じるデータ喪失や、データのコンシス
チンシー(無矛盾)の喪失を最少限にとどめるために、
共用仮想メモリを管理するための方法に間する。
B、従来の技術及びその問題点 単一の独立型の中央処理ユニット(CPU)を含み複数
個の仮想メモリを有するデータ処理システムは従来から
知られている。通常、これらの仮想メモリのデータ処理
システムは、1バイトのデータを記憶し、且つ個々にア
ドレスし得る多数の記憶位置を有する主メモリと、デー
タをブロックで記憶し、ブロックでアドレスする複数個
の記憶位置を含むディスク・ファイルのような2次スト
レージ装置とを使用している。従来のディスク・ファイ
ル装置の説明を簡略化するために、ディスク・ファイル
の各ブロック・アドレスは、例えば2にバイト(実際は
2048バイト)のデータを記憶するものと便宜上仮定
する。仮想メモリは、しばしば単一レベル記憶装置と呼
ばれている概念を含んでいる。単一レベル記憶装置にお
いて、システムがアドレスしつる最大の範囲は通常、主
メモリの実際の容量よりも遥かに大きい。主メモリはベ
ージング機構と、主メモリ中のアプリケーション・プロ
グラム(適用業務プログラム)が必要とするデータを記
録するために共働する2次的な記憶装置とを使用するこ
とによって遥かに大きく見えるようにされている。ベー
ジング機構の機能は、アプリケーション・プログラムに
よってアドレスされたページが主メモリに存在しないと
きは常に、ディスク・ファイルから主メモリへ、データ
のページを転送することにある。このように、主メモリ
にページが存在しないことは「ページ不在」(page
 fault )と呼ばれている。ディスク・ファイル
から主メモリへデータのページを転送することは「ペー
ジ不在」処理と呼ばれている。
また、データの処理能力を増加させるために、複数個の
プロセッサを使用した多重プロセッサ・システム構成も
公知である。多重プロセッサ・システム構成は、°論理
的コミニュケーション・チャンネルを共用する複数の処
理ユニットとして捉えることが出来る。論理的コミニュ
ケーション・チャンネルは、複数の処理ユニットの間で
共用されるメモリであって、1つの処理ユニットから他
の処理ユニットへのメツセージを記憶するためのメモリ
であると考えることが出来る。更に、論理的コミニュケ
ーション・チャンネルは1方の処理ユニットから他方の
処理ユニットへメツセージを転送する際に、メツセージ
を通過させるコミニュケーション・ネットワークの形式
を取ることが出来る。
強結合(tightly−coupled )多重プロ
セッサ・システム構成と称されている従来の多重プロセ
ッサ・システム構成において、構成内のすべての処理ユ
ニットによってアクセスすることが出来るある容量のメ
モリを共用し、そして、各処理ユニットは、その処理ユ
ニットだけしかアクセスすることができず、他の処理ユ
ニットによってはアクセスすることのできない、ある容
量の専用メモリを持っているような多重プロセッサ・シ
ステム構成がある。
強結合多重プロセッサ構成に配列された計算システムは
、共用メモリによる迅速なコミニュケーションの利点を
持っており、また、ディスク・キャッシュとしての共用
メモリをも利用することになる。ページ不在は、強結合
多重プロセッサ構成中の1つの処理ユニットによって実
行されるアプリケーション・プログラムが、主メモリに
存在しないデータのページをアドレスした時に生じる。
ページ不在処理の間において、この多重プロセッサ構成
に接続されている2次ストレージ装置は、共用メモリ中
にデータのページを読込むように命令される。データの
ページが共用メモリに読込まれると、そのデータはこの
多重プロセッサ構成中の任意の処理ユニットによってア
ドレスするととが出来る。
多重プロセッサ構成中の複数の処理ユニットが共通の問
題を処理している場合、「参照の局所性」(1ocal
ity of reference )を経験するよう
な方法で、それらの処理ユニットがデータをアクセスす
るのが普通である。そのデータのページを保持する共用
メモリ中のページ・フレームが、他のデータのページを
保持するよう、多重プロセッサ構成によって再使用され
る前に、この多重プロセッサ構成中の1つの処理ユニッ
トで実行するアプリケーション・プログラムによって仮
想メモリにアクセスすることから生じたページ不在を満
足するために、2次ストレージから検索されて、共用メ
モリに置かれた(読みこまれた)データのページが、こ
の構成中の他の処理ユニットで実行する他のアプリケー
ション・プログラムによってもアクセスされるであろう
可能性がゼロではない時に、「参照の局所性」が使われ
る。多重プロセッサ構成中の他の処理ユニットで実行す
るアプリケーション・プログラムによるアクセスが生じ
た場合に、多重プロセッサ構成は、共用メモリに既に存
在するデータのページによって、ページ不在を解決する
ことによりディスクのアクセスを行わせずに済ますこと
が出来る。゛ 然しながら、共用メモリをディスク・キャッシュとして
用いた時、処理ユニットが、共用メモリをアクセスする
際に、多重プロセッサ構成中の処理ユニットの闇でのア
クセスの競合が、共用メモリによって与えられる利益を
越える程、大きくなった時、強結合多重プロセッサの構
成の実際上の限界がある。例えば、その構成中の他方の
処理ユニットが、データのページの内容の検索を行って
いるときに、1方の処理ユニットがデータの同じページ
の内容の変更を行おうとしている場合がある。このよう
な場合に対処するために通常、2つの処理ユニットはデ
ータについてコンシスチンシーを持つように、他方の処
理ユニットの立場で処理ユニットのうちの1つを監視す
るためのある種の手段が設けられている。強結合多重プ
ロセッサ構成において、複数の処理ユニットに関するデ
ータについてコンシスチンシーを持たせるために、幾つ
かの従来技術がある。これらの方法は、その構成中の他
の処理ユニットが共用メモリへのアクセスを完了するま
で、その構成中の一方の処理ユニットを空転させること
を含んでいる。空転している処理ユニットを更に空転さ
せることは出来ないし、有益な作業も出来ないから、シ
ステム全体として考えたとき、共用メモリへのアクセス
の競合が、多重プロセッサ構成の処理能力を減少する結
果を生じることは避けることが出来ない。これらの理由
によって、単一の強結合多重プロセッサの構成中の処理
ユニットの数は6台を越えることは殆どない。
緊密結合(closely−coupled )多重プ
ロセッサ・システム構成と称される従来の多重プロセッ
サ・システムの構成において、複数個の処理ユニットが
、コミニュケーション・ネットワークを介して接続され
、そして各処理ユニットはそれ自身のメモリに直接にア
クセスすることが出来るが、他のすべての処理ユニット
はそのメモリにはアクセスすることが出来ないように構
成されている。緊密結合多重プロセッサ・システム構成
中の処理ユニットは、コミニュケーション・ネットワー
クを介して、その構成内の他の処理ユニットへメツセー
ジを転送することによって、データを共用することが出
来る。緊密結合多重プロセッサ・システム構成の変形例
において、その多重プロセッサ構成中の処理ユニットの
内の1つの処理ユニットを共用メモリの処理ユニットと
して区別している。共用メモリ処理ユニットに接続され
た主メモリは、共用メモリ処理ユニットによって管理さ
れるディスク型のキャッシュ・メモリとして使用される
何時、そしてどんな構成の下で、共用メモリのどの領域
に対して、複数の処理ユニットのうちのどの処理ユニッ
トがアクセスすべきかを制御するための機能が、共用メ
モリ処理ユニットに割当てられている。共用メモリが高
速度の主メモリと相対的に低速度の2次ストレージ装置
を含む仮想メモリである場合、所定のヒツト率を得るた
めに必要な主メモリの大きさは多重プロセッサ構成によ
って実行される毎秒当りのインストラクションの数に直
接関係する。成る場合に、独立したプロセッサ・ユニッ
トは毎秒当り百方個単位の命令を実行出来るかの目安の
ミツブス(Millions ofInstructi
ons per seconds−M I P S )
によって性能が決められる。若し、2個の4MIPSの
処理能力を持つ処理ユニットと、第3の共用メモリ処理
ユニットとが緊密結合多重プロセッサ構成で使用された
とすれば、この構成に関連した主メモリは、所定のヒツ
ト率を得るために、バイト単位で約80メガバイトのア
ドレスをすることの出来るメモリを持たなければならな
い。共用メモリ中で85%のヒツト率を得るために、大
ざっばに言って、IMIPS当り10メガバイトのアド
レス可能な主メモリが必要である。従って、若しこの緊
密結合多重プロセッサ構成に対して更に4MIPSの処
理ユニットを付加しようとすれば、85%のヒツト率を
維持するために、更に、40メガバイトのアドレス可能
な主メモリを共用メモリに付加しなければならない。然
しながら、緊密結合多重プロセッサ構成を実際に設計す
るに際して、コストと性能のパラメータに関しての損益
分岐点を越えない範囲の結合としなければならないので
、処理ユニットを緊密結合多重プロセッサ構成に付加す
ることは、この点から自ら限界がある。
局所領域(1ocal area )ネットワーク内で
、複数個の独立型パーソナル・コンピュータ、または独
立型のエンジニャリング・ワークステーションを構成す
る技術が最近になって使われるようになった。このよう
な構成は、弱結合(1oosely−coupled 
)多重プロセッサ構成とが、分散システム(distr
ibuted system )構成とが、またはクラ
スタ構成と呼ばれているが、このような構成における任
意のワークステーションは、標準的な通信プロトコルを
使用した他のワークステーションと通信することが出来
る。クラスタ構成を設立するための動機づけは、データ
処理能力をより大きくするためではなく、情報を非電子
的に交換することの代りに電子的に交換するという単純
な利益を得るためであった。然しながら、成る場合には
、個々のワークステーションが、同一のオベレーテング
・システムを走らせ、時には同一のアプリケーション・
プログラムを走らせることもあることが見出された。計
算機協会(As5ociation for Comp
utingMachinery )の「配分された計算
の原理に関する1986年の第5回年次シンポジューム
J(5thAnnual Symposium on 
Pr1nciple of DistrbutedCo
mputing )で報告されたり−(KaiLi)及
びフダク(Paul Hudak )による共用仮想ス
トレージ・システムにおけるメモリの均一性(Memo
ryCoherence in 5hared Ver
tual Storage Systems )と艙す
る文献は、クラスタ構成で接続された複数個の仮想メモ
リのデータ処理ユニットを開示している。この装置にお
いて、すべての処理ユニットは同じオペレーテング・シ
ステムを持ち、そして同じ仮想アドレス空間(5pac
e )をアドレスする。
各処理ユニットは異なったファイルを所有するファイル
の所有装置であり、それらのファイルは、各処理ユニッ
ト自身ののメモリ・システムに記憶されている。アプリ
ケーション・プログラムを実行しているファイルの非所
有装置は、適当な通信リンクを介して他の処理ユニット
のメモリ・システムへのアクセスを獲得し、これは、デ
ータの仮想ページの7フイルの所有装置に対して、要求
装置へ仮想ページを送る要求を発生する。クラスタ構成
中の各処理ユニットは、その構成中の他の処理ユニット
と共に、仮想メモリ・システム内のファイルの組を共用
する。要求により生じたページ不在はファイルの所有装
置によってサービスされる。若し、要求が局部(1oc
al )であれば、即ち所有装置からの要求であれば、
要求されたページは所有装置の2次ストレージ装置から
M接に所有装置の主メモリに転送される。若し、要求が
他の処理ユニットからのものであれば、ページは通信リ
ンクを介して、所有装置の2次ストレージ装置から要求
装置の主メモリへ転送される。要求装置がデータのペー
ジの処理を済ませた後に、データのページの処理を制御
するために、システムのプロトコルが設定される。この
プロトコルは、例えば、所有装置にページを返還する時
に、一方のユニットがそのページに書込みを要求してい
るのに対して、他方のユニットはそのページから読取り
を要求している場合のように、同じページに対する競合
した要求をどのようにして両立させるかを管理すること
とか、または、記憶データを共用するための機能に共通
する他の種々の状況を管理することを取り扱う。
各処理ユニット自身の仮想メモリを、クラスタ中の他の
処理ユニットと共に共用することは、クラスタに対して
利用可能なファイルの合計数が複数個の2次ストレージ
装置の中に分散されるから、2次ストレージ装置の寸法
や容量を減らすことが出来るという利益を生じる。これ
は、ストレージ装置に対するアクセス時間を短縮し、か
つ装置の価格の低減をもたらす、考え得る不利点として
は、データのページの所有装置に対して複数個の他のユ
ニットからの同時的な要求が複数個のディスク装置を順
番にアクセスしなければならないことがある0通常、要
求は重複した態様でサービスされるけれども、ディスク
のアクセスは、処理ユニツトに対して比較的時間の浪費
となる動作であり、また、そのユニットに無関係のアプ
リケーション・プログラムを実行している所有ユニット
の性能に可成りの悪彰響を与えることがあり、2次スト
レージ装置のサービスにも影響を与える。
米国特許出願第128814号(出願口1987年11
月30日)には、共用された仮想メモリを含む、クラス
タ構成のデータ処理システムによって使用される新規な
処理方法が示されており、2次ストレージ装置にアクセ
スを必要とするページ不在(page fault )
の数を顕著に減少させる方法が開示されている。
従来の技術における弱結合多重プロセッサ構成は、慣習
的に、メツセージ通過型のモデル(message p
assing model )に関して構成されており
、この構成において、夫々独立したプロセッサで動作す
る個々のカーネル(kernel )は、広範囲にわた
って共用されている資源(ハードウェア及びソフトウェ
アを含む)を持つ構成を管理する他のプロセッシング・
ユニットに対してサービスを求める要求を含むメツセー
ジを送る。メツセージの通過路は本来的に、プロセッシ
ング・ユニット間の接続路と対応しており、プロセッサ
の接続路は一般に、弱結合構成の性能を向上するための
隘路であると信じられているので、メツセージ通過型の
モデルは信頼性の問題に遭遇することになるし、システ
ムを結合したモデルとしてのメツセージ通過型のモデル
は幾つかの弱点を持っている。
メツセージ通過型のシステム内のプロセッサ間で直接に
共用している複合データ構造(例えば、ポインタを含む
制御ブロック)により惹起される問題は既に知られてい
る通りである。
メツセージ通過型のモデルで与えられた共用の複合デー
タ構造の問題点は、「プログラミング言語及びシステム
」に関する1982年10月のrAc:M会報」第4巻
第4号に記載されたへり一(Herlihy )等によ
る「抽象型データのための数値伝送方法J (A Va
lue Transmission Method F
orAbstract Data Types )と題
する文献に記載されている。この問題は更に、1981
年5月、カーネギ−・メロン大学(Carnegie 
Mellon University )で刊行された
ネルソン(Ne1son )による「遠隔プロシージャ
・コールJ (Remote Procedure C
a1l)と題する学位電文で論議されている。
多重プロセッサ構成内の個々のプロセッシング・ユニッ
トで実行されるオペレーティング・システムの2つのコ
ンポーネントの間のエレメントのリストを共用するため
に、それらのエレメントは送信側コンポーネントにおい
て転送用として適当なフォーマットにパックされねばな
らず、次に、パックされたエレメントは送信側コンポー
ネントから受信側コンポーネントへ転送され、その後、
パックされたエレメントは、受信側においてアンパック
されねばならない。この動作の順序はプロセッサの利用
度の上から見ても、コミニュケーション・チャンネルの
利用度の上から見ても効率的ではない。
この方式の、より重要な弱点として、上述の動作順序は
複雑で且つ取扱いが困難なことである。
メツセージ通過型のモデルの他の欠点は、送信側コンポ
ーネント及び受信側コンポーネントの両方が、不便で複
雑なアーキテクチャを持ち、その結果、コストがかかり
、そしてデパグ作業や、拡張及び保守が困難なことであ
る。代表的な汎用目的のオペレーティング・システムの
カーネルは、多くの対話式のコンポーネントを含む傾向
があるから、メツセージ通過型のモデルに関連する多重
プロセッサ構成のオペレーティング・システムを構成す
る含意(tmplication)は膨大化する傾向が
ある。
強結合多重プロセッサ構成の従来の技術によるオペレー
ティング・システムは、慣習的に、メツセージ通過型の
モデルについては構成されることがなく、その代りに、
強結合多重プロセッサ構成中のプロセッシング・ユニッ
トは、主メモリの成る容量を共用し、プロセッシング・
ユニットのカーネルは、その共用メモリ中の複合データ
構造を共用し、且、つ夫々のプロセッシング・ユニット
自身の間で、プロセッサの目的に対してポインタだけを
通過させる。単一プロセッサ用として開発されたオペレ
ーティング・システムは、強結合多重プロセッサ構成に
おいて効果的に実行するために、オペレーティング・シ
ステムの再書込をすることなく、直列化の領域及びキャ
ッシュのコンシスチンシーを計る領域において成る種の
修正を施すことが可能である。強結合多重プロセッサ構
成において実行するために、メツセージ通過型のモデル
に間して構成されたオペレーティング・システムを修正
することは通常ありえないことであり、且つ、これを行
うのは困難である。このことは、汎用目的のオペレーテ
ィング・システムがメツセージ通過型のモデルよりも、
共用ストレージ型のモデルに、より良く適合するという
想定を裏付けるものである。
IBMのRT−PC仮想メモリ管理ハードウェアは、効
果的な共用仮想メモリを実現する能力を備えており、本
発明の方法を使用するのに好適な環境を与える。IBM
のAIXオベレーテインク・システムは共用仮想メモリ
に適用することができる。仮想メモリ・マネージャは、
メツセージ通過型のモデルに関して構成される必要があ
る。ファイル・システムと、プロセッサ間連絡 (ir+)erprocess communicat
ion )の機能とを含むすべての高位レベルのAIX
オペレーティング・システムは、仮想メモリ・マネージ
ャによって与えられる共用メモリ型のモデルに間して構
成される。共用メモリ構成型のモデルは、単純化を計る
ため性能面を若干犠牲にすることにより、多くの利点を
生じるような態様で、AIXオペレーティング・システ
ムの個々のコンポーネントを実行させることができる。
オペレーティング・システムはそのメモリ中に、その現
在の状態を表わすデータを維持しており、このデータは
、システムの再始動後には存在しないと云う意味から揮
発性のデータである。アトミック・トランザクション(
atomic transaction )を用いてこ
のデータを更新することが必要なので、これは、データ
のコンシスチンシーのない状態を絶対に生じることがな
い。このようなデータの1例は、ファイルを現行のロケ
ーションに関連付けるためのシステム・ディレクトリで
ある。このディレクトリ(登録簿)は、システムが動作
したとき、ディスク上の情報から形成される。それを更
新(update ) L/ている間、またはその更新
ができなかったときは、その情報の中間的な値は使用可
能にされてはならない。
トランザクションとは、アプリケーション・プログラム
によって遂行される仕事の単位であり、このアプリケー
ション・プログラムはクラスタ構成中のプロセッシング
・ユニットの闇で共用されている仮想メモリに記憶され
ているデータをアクセスすること(参照すること、また
は更新すること)ができる、1つのトランザクションは
、クラスタ構成中の1つのプロセッシング・ユニット中
の1つのアプリケーション・プログラムの一連の実行(
thread of execution )によって
遂行される。
与えられた1つのプロセッシング・ユニットで実行され
るトランザクションは、同じプロセッシング・ユニット
で実行される他のトランザクションでアクセスしつるデ
ータをアクセスすることができる。多くの通常のプロセ
ッシング・ユニットは、唯1つの命令の流れ、即ち1つ
の命令スレッド(thread of 1nstruc
tions )だけしか実行しないから、同じプロセッ
シング・ユニットで同時に実行される複数個のトランザ
クションは、同時に同じデータを実際にアクセスするこ
とは生じえないのが通常であるけれども、それにも拘ら
ず、複数のトランザクションが同時に実行され、そして
、クラスタ構成中のプロセッシング・ユニットの間で共
用されている仮想メモリに記憶されているデータを同時
にアクセスすることを想定することには意義がある。
同時に実行される複数のトランザクションは、共用のデ
ータをアクセスできる(少くとも仮想的に)から、若し
、複数のトランザクションが同じデータに関して直列に
(どんな順序でも)実行されたならば達成不可能である
ような状態に、データを更新してデータを配置してしま
うことはあり得ることである。複数個のトランザクショ
ンを同時に実行するためには、タイミングに依存しなけ
ればならないから、上述の方法はタイミングの予測が困
難なので、好ましい状態ではない。同時に発生した複数
個のトランザクションが成る種の(または任意の)直列
順位で実行されたときだけにトランザクションの処理が
達成しつるように、共用されたデータが常に現われるこ
とを保証することが望まれる。このような特性(pr 
o p er t y )は直列化能力(serial
 1zab口1ty)と呼ばれる。直列化能力を保証す
るような方法で、複数のトランザクションが共用データ
へ同時にアクセスするのを調整する技術は、同時勧化(
concurrency )制御技術と称される。
プロセッシング・ユニットの資源(ハードウェア及びソ
フトウェアの両方を含む)の効果的使用を与えるような
方法で同時勧化を制御することが望まれる。直列化能力
を保証するための簡単な方法は、トランザクションを直
列に(ある順序で)実行することである。トランザクシ
ョンは、そのときに主メモリに存在しないかもしれない
仮想メモリのページのような直ちに入手できない資源へ
のアクセスを必要とするので、これは非能率的である。
このような場合、プロセッシング・ユニツエ トは、進行中のトランザクションが完了するまで、他の
トランザクションの実行は開始されないので、そのプロ
セッシング・ユニットは空転せざるを得ない。同時勧化
を制御する上述のアプローチは好ましくないという他の
理由があるが、ここではこれ以上の説明はしない。必要
な資源が入手可能になるまで、有益な仕事を続ける1つ
またはそれ以上の他の同時勧化トランザクションを指名
(dispatch )することが好ましい。同時に勧
化するトランザクションの直列化能力を保証するために
、適当な同時勧化制御アルゴリズムが、しばしば用いら
れ、これによりトランザクション・ディスパッチャ−で
は容易に予測することのできない時間で資源が人手可能
になる。
同時勧化制御技術による1つのアプローチは、1つのト
ランザクションによってアクセスされた共用データをロ
ックし、そして、衝突(confltct)を起こすよ
うな状態で同時に発生した他のトランザクションが同じ
データをロックするのを阻止することである。通常、こ
のアプローチは、ロック・マネージャと言われる抽象的
なエンティティ(abstract entity )
によって与えられる2つのタイプのロックが使用される
。即ち、一方のタイプは読取りロック、他方のタイプは
書込みロックであり、前者のロックは、トランザクショ
ンがロックにより保護されるデータを読取る権利を持つ
ことを表示し、後者のロックは読取り/書込みの権利を
持つことを表示する。
1つのトランザクションが成る共用データを保護する読
取りロックを保持し、他のトランザクションが同じデー
タに対して書込みロックを要求しているときか、または
、1つのトランザクションが成る共用データを保護する
書込みロックを保持し、他のトランザクションが同じデ
ータに対して、読取りロックか書込みロックの何れかを
要求しているときに、衝突が発生する。同じデータを保
護する読取りロックは、衝突を生じることなく、同時勧
化の複数のトランザクションに与えられる。
1つまたはそれ以上のトランザクションで保持されたロ
ックと衝突するであろうロックを要求するトランザクシ
ョンは、衝突が解決される(即ち、他のトランザクショ
ンが、それらの衝突ロックを解放する時)まで、待機し
なければならない。
公知の解決原理として、2位相ロッキング・プロトコル
(two phase lockingprotoco
l )があり、これは複数のロックの中でどのロックも
が解放されないうちに、トランザクションによって必要
とされるすべてのロックが捕獲されるというものであり
、このプロトコルによって、直列化能力は十分に保証さ
れる。
2つ以上の同時に発生したトランザクションの組の各々
が、その船中の他のトランザクションと衝突するような
態様でデータをロックして待機している状態は、デッド
ロックと称される。トランザクションの組の中のトラン
ザクションどうしが待ち状態なので、その待ち状態のト
ランザクションは、その組の中の他のトランザクション
が待機しているロックを解放することはできない、デッ
ドロックの発生が開始すると、デッドロックされた組の
すべてのメンバーは有効な仕事を遂行することはできず
、また、デッドロックされた船中にはないトランザクシ
ョンの組によっても有効な仕事は遂行することはできず
、更に、デッドロックの組のメンバーによって保持され
ているロックと衝突する要求をロックする。当業者はこ
の状態を「フリンジ・トランザクションの組J(set
offringe transactions )と呼
んでいる。
このデッドロック及びその結果が続くのを阻止するため
に、2位相ロックキング・プロトコルを使用している多
くのコンピュータ・システムは、デッドロックの存在を
定期的にチエツクして、若し、デッドロックが発見され
れば、デッドロックの組の中の1つ以上のトランザクシ
ョンを打ち切る。トランザクションを打ち切るというこ
とは、修正されたデータに対する全ての更新はパックア
ウト(back out )されねばならず、また全て
のロックは解放されねばならないことを意味する。
トランザクションが打ち切られる実際上の他の例として
、システムの誤動作や、トランザクションのプログラム
・エラーや、トランザクションのプログラム・デザイン
や、オペレータの介入などによってトランザクションが
打ち切られる場合がある。このような場合、トランザク
ションが終点まで到達する前に、トランザクションが打
ち切られるので、トランザクションによって行われた更
新は「アトミック」で現われること、換言すれば、全て
の更新が同時に適用されるか、または全ての更新は適用
しないかの何れかということが必要である。この規則が
適用されたならば、共用データは常に無矛盾の状態(c
onsistent 5tate )に保たれねばなら
ず、そして、各トランザクションには、他のすべてのト
ランザクションによって作られたすべての更新が見える
か、または他のすべてのトランザクションによって作ら
れたすべての更新が見えないかのいずれかである。
トランザクションがその終点に達した時、トランザクシ
ョンは、確約サービス、即ちコミット・サービス(co
mmit 5ervice)を使用することによって、
他のトランザクションに対して、その更新が可視である
(visible)ことを要求する。若し、オペレーテ
ィング・システムがそのトランザクションに対して肯定
的に応答したとすれば、トランザクションのすべての更
新が適用されるが、若し、そうでなければ、トランザク
ションのすべての更新は適用されない。何れの場合でも
、トランザクションのすべてのロックは解放される。全
ての更新をパックアウトさせ、そして全てのロックを解
放させるために、トランザクションはコミット・サービ
スではなく、パックアウト・サービスを使用する。
ロッキングに基づく同時勧化制御メカニズムによって与
えられるデータに関するコンシスチンシーについて基本
的に異なった5種類の重要な等級(degree )が
ある(1981年の大規模データベースに関する第7回
国際会議(7th InternationalCon
ference on Very Large Dat
abases )のグレー(Gray)による「トラン
ザクションの概念と、その長所及び短所J (The 
Transaction Concept:Virtu
res and Lim1tations)と題する文
献を参照)。
それらの等級は、 「自由アクセス」:読取り機構は与えられた目的データ
(c)bject )を自由に参照できる。書込み機構
は与えられた目的データを自由に更新できる。
「等級0」:読取り機構は与えられた目的データを自由
に参照できる。書込み機構は、与えられた目的データを
更新する前に、そのデータをロックしなければならない
。書込み機構は他の書込み機構と衝突する。
「等級1」:読取り機構は与えられた目的データを自由
に参照できる。書込み機構は、与えられた目的データを
更新する前に、そのデータをロックしなければならない
。書込み機構は他の書込み機構と衝突する。2位相書込
みロッキングが実施される。
「等級2」:読取り機構は、与えられた目的データを参
照する前にそのデータをロックしなければならない。読
取り機構は書込み機構と衝突する。
書込み機構は他の書込み機構と衝突する。2位相書込み
ロッキングが実施される。
「等級3」:読取り機構は、与えられた目的データを参
照する前にそのデータをロックしなければならない。書
込み機構は、与えられたデータを更新する前に、゛その
データをロックしなければならない、読取り機構は書込
み機構と衝突する。2位相ロッキングが実施される。
AIXオペレーテインク・システムはクラスタ・ストレ
ージと呼ばれる共用仮想メモリの形式を使用し、共用仮
想メモリは、アトミックである、直列化された更新(u
pdate )の意味(semant 1cs)を与え
、そして、オペレーティング・システムの幾つかのコン
ポーネントと、サブシステム及びアプリケーション・プ
ログラム01.とに対して等級8のコンシスチンシーを
与える。
オペレーティング・システムは直列化された更新の意味
を達成するためにロッキングを使用する。
ロッキングを実施するためのメカニズムはチャン(Ch
ang )等による「801ストレージのアーキテクチ
ャ及びプログラミングJ (801storage:A
rchitecture and Programmi
ng )と題する文献に記載されている。このロッキン
グ・メカニズムは配分されたクラスタの環境における機
能を拡張することができる。現在使用されているロック
・マネージャの例は、AIXオベレーテインク・システ
ムの「配分されたサービスLPPJにおいて実現されて
いる。
C0問題点を解決するための手段 本発明は、システムが再構成される時とか、またはトラ
ンザクションが初期の開始点から再試行される時に、バ
イパスされる処理スレッド(processtng t
hread )中の成る処理の障害から生じたデータの
喪失や、トランザクションが故意に打ち切られた場合に
生じるデータの喪失を回避するために、仮想メモリを有
し、クラスタ構成にされたデータ処理システムを管理す
る方法である。
本発明の方法は、1つのプロセッシング・ユニットによ
って遂行される、識別されたトランザクションによって
影響されるデータ構造のコピーを維持し、そして、トラ
ンザクションがコミット(確約)された時だけそのコピ
ーを更新する。従って、トランザクションが開始された
時点で存在した情報がコピーとして入手できるので、何
等かの理由によって打ち切られねばならなかったトラン
ザクションを再試行することができる。各トランザクシ
ョンを処理する際に、どのプロセッシング・ユニットが
、どのファイルに責任を持っているか、主たるアクセス
・コーデイネータの変更データ構造のコピーに対してど
のプロセッシング・ユニットが、バックアップの責任を
持っているかというシステム・アウエアネスを維持する
ために、本発明に従って種々のデータ構造が設定される
本発明は、複数のプロセッサ同士が通信リンクによって
相互に結合され、上記複数のプロセッサのそれぞれが、
当該プロセッサに開運づけられた物理的なメモリ、及び
仮想メモリ変換機構を具備してなるデータ処理システム
におけるデータのアベイラビリティ、つまりはシステム
・アベイラビリティを維持する方法であって、 (a)コア内部の揮発性データを、上記複数のプロセッ
サが一様にアドレッシングできるように、仮想アドレス
空間にマツプし、 (b)任意のプロセッサによる上記データへのアクセス
を制御するプロセッサを指定し、(c)上記データを更
新するトランザクションを行うトランザクション・プロ
セッサに対して、上記データへのアクセスを認め、 (d)上記更新されたデータを、トランザクション・プ
ロセッサのメモリ及び他の1つのプロセッサのメモリに
維持する ことを特徴とする。
上記ステップ(a)における仮想アドレス空間は、上記
複数のプロセッサによって共用されるものであってもよ
い。あるいは、上記データを複数の仮想アドレス空間に
マツプし、上記データの構造体に与えられるアドレスを
同一にしてもよい。
トランザクション・プロセッサが制御プロセッサ以外の
プロセッサであるときには、制御プロセッサが、上記ス
テップ(d)における他の1つのプロセッサとなる。
上記ステップ(d)を詳しく説明すると、以下のとおり
である。
(dl)上記データの更新に先立って、上記トランザク
ション・プロセッサとは異なるプロセッサのメモリに、
上記データを維持する。
(d2)上記トランザクション・プロセッサによってト
ランザクションがコミットされた後に、トランザクショ
ン・プロセッサのメモリ及び他の1つのプロセッサのメ
モリに、更新後のデータを維持する。
(d3)上記トランザクション・プロセッサによってト
ランザクションがコミットされた後、上記更新に先立っ
て維持されたデータを破棄する。
以後のトランザクションでは、更新後のデータが新たに
更新対象となって、上記(dl)〜(d3)のステップ
が繰り返される。このようにして、アトミック・トラン
ザクションが実行される。
なお、ステップ(a)でいうコア内部(in−core
)とは、メイ〉・メE l/ l’:あるデータ、シ丘
仄って0PUrK直侮7グじ又でテ3データのこY−Σ
壱つ。
かつてメモリがコアによってできていた時代があったこ
とに由来する語であるけれども、現在ではコア・メモリ
に限らず、広く一般に、上記の意味で用いられている。
(以下余白) D、実施例 第7図は3個のプロセッシング・ユニット10a、10
b及び10cと、スイッチ11と、スイッチに対しでプ
ロセッシング・ユニットを接続するためのコミニュケー
ション・リンク12とを含むクラスタ構成のブロック図
を示している。各プロセッシング・ユニットは、プロセ
ッシング・ユニットに直接接続されているディスク・ス
トレージ装置とみなすことのできる2次ストレージ装置
を有している0個々のプロセッシング・ユニットに接続
されている2次ストレージ装置に記憶されているファイ
ルの内容を除いて、プロセッシング・ユニット10a、
10b及び10cは同一であるのが好ましい。第8図乃
至第19図は、クラスタ構成における本発明の1実施例
の動作を説明する流れ図である。これらの動作の記載や
、メツセージの流れに関する記載は、汎用目的のオペレ
ーティング・システムの分野で仮想メモリ・マネージャ
のコンポーネントのソフトウェアを取り扱う専門家であ
れば、本発明の方法を実施するために過度な実験を行う
ことなく、本発明を実施することのできる程度のレベル
で記載されている。
第8図は与えられたプロセッシング・ユニットで実行さ
れるアプリケーション・プログラムが、クラスタ・スト
レージのセグメントをオーブンし、ファイルを作成する
時、そのプロセッシング・ユニットで実行されるオペレ
ーティング・システムによって遂行されるステップを説
明する流れ図である。
第8図のステップAにおいて、プロセッシング・ユニッ
ト10aで実行しているアプリケーション・プログラム
は、OCREAT、ORDWR及びOTEMPというオ
プション(任意選択)を使って”/u/smorgan
/5tatus ”というファイル名を持つクラスタ・
ストレージ・ファイルに対してオーブン・システム・コ
ールを発生する。説明を簡明にするために、ファイルの
名称の付は方についてのUNIXの規則と、UNtXの
ディレクトリ構成とを使用するものとする。
勿論、この前提条件、または以下の説明で用いられる前
提条件は本発明を実施するための必須要件ではないこと
は容易に理解されるだろう。QCREATオプションは
、ファイルが存在していない場合、オペレーティング・
システムがアプリケーション・プログラムのためにファ
イルを作成することを意味する。Q  RDWRオプシ
ョンは、アプリケーション・プログラムがファイルに対
する読取り/書込みアクセスを得ようとしていることを
意味する。OTEMPオプションは、そのファイルがク
ラスタ・ストレージ・ファイルであることを意味する。
ステップBにおいて、プロセッシング・ユニット10a
で実行しているオペレーティング・システムは、アプリ
ケーション・プログラムからのシステム・コールをイン
ターセプトする。
ステップCにおいて、オペレーティング・システムは、
ルート・システム・ディレクトリ「/」を検査し、その
ディレクトリがruJについてのエントリを含んでいる
ことと、「u」がディレクトリであることとを見出す。
ステップDにおいて、オペレーティング・システムは”
smorgan″のruJディレクトリを検査し、そし
てsmorgan”がディレクトリであることを確定す
る。
ステップEにおいて、オペレーティング・システムは”
5tatus″を求めて”smorgan”のディレク
トリを検査し、”5tatus″のエントリが存在しな
いことを確定する。
ステップFにおいて、オペレーティング・システムは、
ファイル名”/ u / s m o r g a n
 / 5tatus”に対して、クラスタ・ストレージ
・ファイル識別子(C1uster Storage 
FileIdentif 1er−CSFID )と、
クラスタ・ストレージ・ファイル記述子(C1uste
r Storage FileDescriptor−
CSFD)とを発生する。ここで説明を簡単にするため
、クラスタ・ストレージ・ファイル識別子はこのクラス
タ構成において、クラスタ・ストレージ・ファイルを識
別する32ビツトの整数であると仮定する。クラスタ・
ストレージ・ファイル識別子は、アクセス・コーデイネ
ータ(プロセッシング・ユニット10a)用のプロセッ
シング・ユニット識別子を連結することによって形成さ
れ、そしてその内容は、アクセス・コーデイネータによ
って選択された数字であって、アクセス・コーデイネー
タにとってのクラスタ・ストレージ・ファイルを識別す
る数字を含んでいる。プロセッサ識別子は、クラスタ構
成内の与えられたプロセッシング・ユニットt−識別す
る7ビツトの整数である。オペレーティング・システム
は、プロセッシング・ユニット10aにあるクラスタ・
ストレージ・ファイル記述子テーブル(C5FDT)中
にインデックスするために、クラスタ・ストレージ・フ
ァイル識別子C3FIDを用いることによって、クラス
タ・ストレージ・ファイル記述子C3FDを作成する。
プロセッシング・ユニット10aにあるC5FDTは、
存在する各クラスタ・ストレージ・ファイルに対するク
ラスタ・ストレージ・ファイル記述子を含んでおり、プ
ロセッシング・ユニット10aは、その記述子を含むク
ラスタ・ストレージ・ファイルに対してアクセス・コー
デイネータとして動作する。クラスタ・ストレージ・フ
ァイル記述子は、与えられたクラスタ・ストレージ・フ
ァイルと関連した共用仮想メモリ・セグメントヲ識別す
る。加えて、クラスタ・ストレージ・ファイル記述子は
、ファイルの長さとか、そのファイルに最も最近にアク
セスした時間とか、ファイルの所有者の名前などのファ
イルに関する他の情報を含んでいる。ファイル、” /
 u / s morgan/5tatus″がプロセ
ッシング・ユニット10aでオープン・コールを実行し
た結果として作成された時、プロセッシング・ユニット
10aはそのファイルのためのアクセス・コーデイネー
タとして自分自身を選択する。
ステップGにおいて、オペレーティング・システムは、
クラスタ・ストレージ・ファイル識別子C3FIDによ
って識別されたクラスタ・ストレージ・ファイルの仮想
メモリ・セグメントを作成するために、セグメント作成
サービス(CreateSegment 5ervic
e−CSS )を側層する。この動作を遂行する際に、
プロセッシング・ユニット10aは、セグメントがクラ
スタ・ストレージ・ファイル記述子C3FDを使用して
作成されるべきことと、作成されるべきセグメント用の
要求された保護キーが読取り/書込みであることとを特
定する。セグメント作成サービスC8Sは新しく作成さ
れたクラスタ・ストレージのセグメント用の外部ページ
・テーブル(External Page Table
−XPT )を作成する。
外部ページ・テーブルXPT中の各エントリは、クラス
タ・ストレージのセグメント中の仮想ページに対応し、
そしてプロセッシング・ユニットのページ付与用の空間
(5pace )に位置するディスク・アドレスを指示
(ポイント)している、若し、クラスタ・ストレージの
セグメントの与えられた仮想ページが、仮想メモリ・マ
ネージャ(VMM)のページ置換アルゴリズムによって
選択されたならば、そのページはその対応したXPTエ
ントリによって指示されたディスクのブロックにコピー
される。
ステップHにおいて、プロセッシング・ユニット10a
は、C3FIDによって識別されたクラスタ・ストレー
ジ・ファイルを作成するプロセッシング・ユニット10
bにメツセージ1を送る。
メツセージ1は、クラスタ・ストレージ・ファイルの名
前、クラスタ・ストレージ・ファイル識別子C3FID
及びアクセス・コーデイネータのプロセッサ識別子PI
Dを含んでいる。
ステップIにおいて、プロセッシング・ユニット10b
がプロセッシング・ユニット10aからメツセージ1を
受は取ると、プロセッシング・ユニット10bは、新し
く作成されたファイル”/u/smorgan/5ta
tus″の存在を表示するとともに、−そのファイルの
クラスタ・ストレージ・ファイル識別子C3FID及び
アクセス・コーデイネータのプロセッサ識別子PIDを
表示するために、システム・ディレクトリのコピーを更
新する。
ステップJにおいて、プロセッシング・ユニット10a
で実行しているオペレーティング・システムは、ファイ
ル”/u/smo rgan/s tatus”が作成
されたことを、プロセッシング・ユニット10aで実行
しているアプリケーション・プログラムに通知する。
第9図はオーブンされたクラスタ・ストレージ・ファイ
ルが、゛どのようにして、クラスタ構成中で共用されて
いる仮想メモリにロードされるかを説明するための流れ
図を示している。
第9図のステップAにおいて、プロセッシング・ユニッ
ト10aで実行されるアプリケーション・プログラムは
、オーブンされたクラスター・ストレージ・ファイル、
” / u / s m o r g a n / 5
tatus″に関連したローカル・セグメントSを、読
取り/書込みアクセス用のアプリケーション・プログラ
ムの仮想アドレス空間内にマツプするためにシマート(
schmat )システム・コールを用いる。
ステップBにおいて、プロセッシング・ユニット10a
で実行されるオペレーティング・システムは、アプリケ
ーション・プログラムからのシステム・コールをインタ
ーセプトする。
ステップCにおいて、オペレーティング・システムは、
Sがローカル・セグメントであることを決定する。プロ
セッシング・ユニット10aはセグメント識別テーブル
SITを検査することによって、この決定を行う。
ステップDにおいて、プロセッシング・ユニット10a
はマツプ・ページ範囲サービス(MapPage Ra
nge Service−MPR3)を用いて、セグメ
ントSの内容をアプリケーション・プログラムの仮想ア
ドレス空間中にマツプする。
ステップEにおいて、プロセッシング・ユニット10a
は、ファイル″/ u / s m o r g a 
n /5tatus″がアプリケーション・プログラム
の仮想アドレス空間中に成功裡にマツプされたことを決
定し、そしてアプリケーション・プログラムにこれを通
知する。
第10図は、クラスタ構成中のただ1つのプロセッシン
グ・ユニットがクラスタ・ストレージのセグメントをオ
ーブンした時に、オーブンされマツプされた現存するク
ラスタ・ストレージのセグメントに対して、どのように
してトランザクションが実行され、そしてコミットされ
るかを説明するための流れ図である。説明を簡単にする
ために、以下の前提条件を設ける。即ち、それらの前提
は(1)セグメントSは、プロセッシング・ユニット1
0aで実行するアプリケーション・プログラムによって
行われる読取り/書込みアクセス(RWA)のためにマ
ツプされたクラスタ・ストレージのセグメントであり、
(2)セグメントSは、仮想メモリ中の丁度2つのペー
ジ、即ちページ1及びページ2を現在含んでおり、(3
)ページ1及びページ2の両方は現在、主メモリに記憶
されており、(4)ページ1及びページ2が主メモリに
記憶されてから後に、ページ1及びページ2の両方は修
正されたものとする、という前提条件である。
第10図のステップAにおいて、プロセッシング・ユニ
ット10aで実行するアプリケーション・プログラムは
セグメントSのページ1中へのストアを試みている。ア
プリケーション・プログラムは、セグメントSに関する
ロックを未だ保持していないので、ページ1にストアす
る試みはロック・ミスを発生する。
ステップBにおいて、プロセッシング・ユニット10a
のオペレーティング・システムはロック・ミスをインタ
ーセプトする。
ステップCにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aで実行しているすべて
のアプリケーション・プログラムがセグメントSのペー
ジ1に関するロックを保持していないことを確定する。
ステップDにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aがセグメントSのアク
セス・コーデイネータであることを確定する。
ステップ已において、オペレーティング・システムは、
他のすべてのプロセッシング・ユニットがセグメントS
をアクセスしていないことを確定する。
ステップFにおいて、オペレーティング・システムは、
セグメントSのページ1に関する書込みロックを、アプ
リケーション・プログラムに対して付与(許可)する。
この動作を遂行するために、オペレーティング・システ
ムは、 (1)現在のページ1の状態のコピーを作るためのペー
ジ・フレームを割り当て、 (2)ページ・フレームのための拡張ストレージ(Ex
tension Storage−ES )の仮想アド
レスを割り振り、 (3)ロック・テーブル(Lock Table−LT
 )中にそのページのためのエントリ(記入項目)を割
り当て、 (4)新しく割り振られたESの仮想アドレスを、その
ページ・フレームに対して割当て、(5)セグメントS
のページ1をページ・フレームにコピーし、 (6)アプリケーション・プログラムがセグメントSの
ページ1に関するロックを保持していることを表示する
ために、ロック・テーブルLTのエントリに記入を行い
、 (7)そのページのコピーのES仮想アドレスを、ペー
ジ1のLTのエントリにコピーし、(8)アプリケーシ
ョン・プログラムによって保持されているロックのリス
ト中に、そのページについてのロック・テーブルLTの
エントリを連結(chain )する。
トランザクションを打ち切る必要がある場合、拡張スト
レージES中のページのコピーは、ページの内容を回復
するのに用いられる。アプリケーション・プログラムに
よって保持されているロック・テーブルのエントリのチ
ェーン(連鎖)は、トランザクションを処理している時
に、アプリケーション・プログラムによって変更された
仮想ページのセット内容を「覚えておく」ために用いら
れる。
ステップGにおいて、オペレーティング・システムは、
ロックに関する情報を、そのページの反転ページ・テー
ブル(Inverted Page Table−IP
T )のエントリにコピーし、そして、アプリケーショ
ン・プログラムのストア命令を再試行するためのアプリ
ケーション・プログラムをスケジュールする。
ステップHにおいて、アプリケーション・プログラムは
そのストア命令を再試行し、それを成功裡に完結する; ステップIにおいて、アプリケーション・プログラムは
セグメントSのベージ2へのストアを試みる。
ステップJにおいて、オペレーティング・システムはセ
グメントSのベージ2に対して、ステップB乃至ステッ
プGで行った動作と同じ動作を遂行する。
ステップKにおいて、アプリケーション・プログラムは
そのストア命令を再試行して、それを成功裡に完結する
ステップLにおいて、アプリケーション・プログラムは
コミット・サービスを呼び出して、走っているトランザ
クションをコミットしたいことを表示する。
ステップMにおいて、オペレーティング・システムはコ
ミット要求をインターセプトする。
ステップNにおいて、オペレーティング・システムはア
プリケーション・プログラムにより保有されていた各ロ
ックを解放(free )する。この動作を遂行するた
めに、アプリケーション・プログラムによってロックさ
れたベージ毎に、オペレーティング・システムは、(1
)もしそのベージがアプリケーション・プログラムによ
って修正されたことをそのベージのロック・テーブル(
1、T)のエントリが表示したならば、そのベージのL
Tのエントリによってポイントされた拡張ストレージE
Sのベージ(若しあれば)を解放し、(2)アプリケー
ション・プログラムによって保持されているロックのリ
ストから、そのベージのLTのエントリを非連結(un
chain )にし、(3)そのベージのために割り振
られたロック・テーブルのエントリを解放する動作を遂
行する。
ステップOにおいて、オペレーティング・システムは、
トランザクションが成功裡に完了されたことを、アプリ
ケーション・プログラムに通知する。
第11図はクラスタ構成中のただ1つのプロセッシング
・ユニットがクラスタ・ストレージのセグメントをオー
ブンした時、オーブンされマツプされた現存するクラス
タ・ストレージのセグメントに対して、トランザクショ
ンがどのように実行され、そして打ち切られるかを説明
する流れ図である。説明を簡明にするために、 (1)セグメントSはプロセッシング・ユニット10a
で実行されているアプリケーション・プログラムによる
読取り/書込みアクセス(RWA)用にマツプされたク
ラスタ・ストレージのセグメントであり、 (2)セグメントSは現在、仮想メモリに2つのベージ
、即ちベージ1及びベージ2だけを含んでおり、 (3)ベージ1及びベージ2の両方とも現在、主メモリ
中に存在しており、 (4)ベージ1及びベージ2が主メモリに転送されてか
ら後に、それらの両方とも修正を受けているものとする
第11図のステップAにおいて、プロセッシング・ユニ
ット10aで実行されているアプリケーション・プログ
ラムは、セグメントSのベージ1にストアを試みている
。アプリケーション・プログラムは、セグメントSに関
するロックを未だ保持していないから、ベージ1へのス
トアの動作は、ロック・ミスを発生する。
ステップBにおいて、プロセッシング・ユニット10a
のオペレーティング・システムは、ロック・ミスをイン
ターセプトする。
ステップCにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aで実行しているすべて
のアプリケーション・プログラムが、セグメントSのベ
ージ1に関するロックを保持していないことを確定する
ステップDにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aがセグメントSのアク
セス・コーデイネータであることを確定する。
ステップEにおいて、オペレーティング・システムは、
他のプロセッシング・ユニットがセグメントSをアクセ
スしていないことを確定する。
ステップFにおいて、オペレーティング・システムは、
セグメントSのページ1に関する書込みロックを、アプ
リケーション・プログラムに対して付与する。
この動作を遂行するために、オペレーティング・システ
ムは、 (1)現在の状態のページ1のコピーを作るためのペー
ジ・フレームを割り当て、 (2)ページ・フレームのための、拡張ストレージ(E
S)の仮想アドレスを割り振り、(8)ロック・テーブ
ル(LT)中に、そのページのための、エントリ(記入
項目)を割り当て、(4)そのページ・フレームに対し
て、新しく割り振られたES仮想アドレスを割り当て、
(5)セグメントSのページ1の内容をページ・フレー
ム中にコピーし、 (6)アプリケーション・プログラムが、セグメントS
のページ1に関するロックを保持していることを表示す
るために、LTのエントリに記入を行い、 (7)そのページのコピーのBS仮想アドレスを、ペー
ジのLTのエントリにコピーし、(8)アプリケーショ
ン・プログラムによって保持されているロックのリスト
中に、そのページについてのLTのエントリを、連結(
chain )する。
トランザクションを打ち切る必要がある場合、拡張スト
レージES中のページのコピーは、ページの内容を回復
するのに使用される。アプリケーション・プログラムに
よって保持されているロック・テーブルのエントリの鎖
は、トランザクションを処理している時に、アプリケー
ション・プログラムによって変更された仮想ページの組
の内容を「覚えておく」ために使用することができる。
ステップGにおいて、オペレーティング・システムはロ
ックに関する情報をページ用の反転ページ・テーブルI
PTにコピーし、そして、アプリケーション・プログラ
ムがそのストア命令を再試行するためのスケジュールを
たてる。
ステップHにおいて、アプリケーション・プログラムは
ストア命令を再試行して、それを成功裡に完了する。
ステップrにおいて、アプリケーション・プログラムは
セグメントSのページ2にストアを試みる。
ステップJにおいて、オペレーティング・システムはス
テップB乃至ステップGで遂行した動作と同様な動作を
セグメントSのページ2に対して遂行する。
ステップKにおいて、アプリケーション・プログラムは
そのストア命令を再試行し、それを成功裡に完了する。
ステップLにおいて、アプリケーション・プログラムは
パックアウト・サービスを呼出して、走っているトラン
ザクションを打ち切りたいことを表示する。
ステップMにおいて、オペレーティング・システムは打
ち切り要求(abort request )に割り込
む。
ステップNにおいて、オペレーティング・システムはア
プリケーション・プログラムによって保持されていた各
ロックを解放する。この動作を遂行するために、オペレ
ーティング・システムは、アプリケーション・プログラ
ムによりロックされた各ページに対して、以下の動作を
行う。即ち、(1)アプリケーション・プログラムによ
って保持されているロックに対応する各ロック・テーブ
ル(LT)・エントリを検査する。
(2)主メモリ中にあって、LTが存在し、アプリケー
ション・プログラムによって修正されたことを表示する
すべてのページの内容を破棄する。
(3)LTが存在し、アプリケーション・プログラムに
よってページが修正されたことを表示する各ページに対
して、そのロック・テーブル(LT)のエントリによっ
てポイントされた拡張ストレージESのページを、主メ
モリにストアする。
(4)ESベージを、それが前の内容を表わすページに
開運した仮想アドレスにリネームする。
(5)アプリケーション・プログラムによって保持され
ていたロックのリストからそのページのLTのエントリ
を非結合(unchain )にする。
(6)そのページ用に割り振られたロック・テーブルの
エントリを解放する。
ステップ0において、オペレーティング・システムはト
ランザクションが打ち切られたことをアプリケーション
・プログラムに通知する。
第12図はアクセス・コーデイネータとは異なったプロ
セッシング・ユニットで走っているアプリケーション・
プログラムによって、既に存在するクラスタ・ストレー
ジ・ファイルが、どのようにしてオーブンされるかを説
明するための流れ図である。
第12図のステップAにおいて、プロセッシング・ユニ
ット10bにおいて実行されているアプリケーション・
プログラムはオプションOCREAT、ORDWR及び
Q  TEMPを使って” / u / s m o 
r g a n / s t a t u s ”とい
うファイル名を持つファイルをオーブンするために、オ
ーブン・システム・コールを使用する。
ステップBにおいて、プロセッシング・二ニット10b
で実行されるオペレーティング・システムはアプリケー
ション・プログラムからシステム・コールに割り込む。
ステップCにおいて、オペレーティング・システムはル
ート・システム・ディレクトリ「/」ヲ検査して、その
ルート・システム・ディレクトリがruJというエント
リを含んでいること、そしてruJはディレクトリであ
ることを見出す。
ステップDにおいて、オペレーティング・システムはり
ディレクトリを検査して”smorgan”を探し、s
morganがディレクトリであることを決定する。
ステップEにおいて、オペレーティング・システムは”
5tatus″を求めてsmorgan”のディレクト
リを検査し、そして以下のことを確定する。
(1)5tatus″はクラスタ・ストレージ・ファイ
ルであること、 (2)5tatus″は既に存在していること、 (3)プロセッシング・ユニット10aは、アクセス・
コーデイネータであること、 (4)C5FIDはそのクラスタ・ストレージ・ファイ
ル識別子であること。
ステップFにおいて、プロセッシング・ユニット10b
において実行しているオペレーティング・システムはク
ラスタ・ストレージ・ファイル識別子C3FIDtr:
含んでいるメツセージ1をプロセッシング・ユニット1
0aに送り、そして、C8F■Dによって識別されたク
ラスタ・ストレージ・ファイルが、プロセッシング・ユ
ニット10bで実行されるアプリケーション・プログラ
ムのためにオーブンされることを要求する。
ステップGにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bからメツセージ1を
受は取ったとき、プロセッシング・ユニット10aは、
C3FIDによって識別されたクラスタ・ストレージ・
ファイルを表わすクラスタ・ストレージ・ファイル記述
子C3FIDを突きとめる(ロケートする)。プロセッ
シング・ユニット10aはクラスタ・ストレージ・ファ
イル識別子C3FIDを使用することによって、クラス
タ・ストレージ・ファイル記述子C3FDを突きとめて
、プロセッシング・ユニット10aにあるクラスタ・ス
トレージ・ファイル記述子テーブル(C5FDT)中に
ストレージ・ファイル記述子C3FDをインデックス(
索引付け)する。
ステップHにおいて、プロセッシング・ユニット10a
は、C3F I Dによって識別されたクラスタ・スト
レージ・ファイルが現在オーブンされていること、即ち
クラスタ・ストレージ・ファイルはそれに関連する仮想
セグメントSを持っていることを確定する。
ステップIにおいて、プロセッシング・ユニット10a
は、C3F I Dによって識別されたクラスタ・スト
レージ・ファイルが、バックアップ・アクセス・コーデ
イネータをまだ持たないことを確定し、プロセッシング
・ユニット10bをバックアップ・アクセス・コーデイ
ネータとして選択し、クラスタ・ストレージ・ファイル
記述子C5FDの中にこのことを記録する。
ステップJにおいて、プロセッシング・ユニット10a
が、プロセッシング・ユニット10bのためにC8F”
lDによって識別されたクラスタ・ストレージ・ファイ
ルを成功裡にオーブンしたことと、プロセッシング・ユ
ニット10bが、C3FIDによって識別されたクラス
タ・ストレージ・ファイルのためのバックアップ・アク
セス・コーデイネータであることとに応答して、プロセ
ッシング・ユニット10aは、プロセッシング・ユニッ
ト10bにメツセージ2を送る。メツセージ2はC3F
IDによって識別されたクラスタ・ストレージ・ファイ
ルに関連した共用仮想メモリのセグメントとしてセグメ
ント識別子Sf!:識別する。
ステップKにおいて、プロセッシング・ユニツ)10a
からのメツセージ2を受は取ると、プロセッシング・ユ
ニット10bは遠隔セグメント作成サービス(Crea
te Remote Segment 5ervice
−CRSS )を用いて、C3FIDにより識別された
クラスタ・ストレージ・ファイルに対してローカル・セ
グメントSBを作成する。遠隔セグメント作成サーばス
CR55はセグメント識別子Sを取り、そして「ダミー
」セグメントSBt作成する。ダミー・セグメントSB
は、セグメント識別子及びセグメント識別子テーブル(
SIT)のエントリを持つローカル・セグメントである
。CR55は新しく作成されたクラスタ・ストレージの
セグメントのための外部ベージ・テーブル(XPT’)
を作成する。XPT中の各エントリは、クラスタ・スト
レージのセグメント中の仮想ベージに対応し、そして、
プロセッシング・ユニットのベージング空間に位置する
ディスク・ストレージのアドレスを指示(ポイント)す
る、若し、クラスタ・ストレージのセグメントの与えら
れた仮想ページが、仮想メモリ・マネージャ(Virt
ual MemoryManager−VMM )のベ
ージ置換アルゴリズムによって選択されたならば、その
ベージは対応するXPTエントリによって指示されたデ
ィスク・ブロックにコピーされる。
ステップLにおいて、プロセッシング・二ニット10b
は遠隔セグメント結合サービス(BindRemote
 Segment 5ervice−BRSS )を使
用して、ローカル・セグメントSBをグローバル・セグ
メント、即ち大域セグメントSに結合する。BRSSは
、セグメントS及びSBと、アクセス・コーデイネータ
(プロセッシング・ユニット10a)のプロセッシング
・ユニット識別子PIDとを取り、そしてセグメントS
BがセグメントSに関係していることを表示するために
、セグメントSBと関連しているSITエントリを修正
する。セグメントSのアクセスはプロセッシング・ユニ
ット識別子PIDにより調整される。
ステップMにおいて、プロセッシング・ユニット10b
は、クラスタ・ストレージ・ファイル“/ u / s
 m o r g a n / s t a t u 
s ”が成功裡にオーブンされたことを確定し、それを
アプリケーション・プログラムに通知する。
第13図はクラスタ構成中の2つのプロセッシング・ユ
ニットが、クラスタ・ストレージのセグメントをオーブ
ンした時、オーブンされマツプされた現存するクラスタ
・ストレージのセグメントに対するトランザクションが
、アクセス・コーデイネータとして動作するプロセッシ
ング・ユニット上で、どのようにして実行され、そして
コミットされるかを説明する流れ図である。説明を簡明
にするために、以下のような前提条件を設ける。
即ち、 (1)セグメントSは、プロセッシング・ユニット10
aで実行されるアプリケーション・プログラムと、プロ
セッシング・ユニット10bで実行されるアプリケーシ
ョン・プログラムとによる読取り/書込みアクセスのた
めにマツプされたクラスタ・ストレージのセグメントで
あること、(2)セグメントSは現在、ベージ1とベー
ジ2の丁度2つのベージを含んでいること、(3)ベー
ジ1及びベージ2の両方は現在、プロセッシング・ユニ
ット10aの主メモリに記憶されていること、 (4)ベージ1及びベージ2の両方は、それらがプロセ
ッシング・ユニット10aの主メモリに入れられてから
後に、修正を受けていることとする。
第13図のステップAにおいて、プロセッシング・ユニ
ット10aで実行しているアプリケーション・プログラ
ムはセグメントSのページ1にストアの動作を行ってい
る。アプリケーション・プログラムはセグメントSに関
するロックを未だ保持していないから、ページ1にスト
アする動作は、ロック・ミスを発生する。
ステップBにおいて、プロセッシング・ユニット10a
のオペレーティング・システムはロック・ミスをインタ
ーセプトする。
ステップCにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aで実行しているすべて
のアプリケーション・プログラムがセグメントSのペー
ジ1に関するロックを保持していないことを確定する。
ステップDにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aがセグメントSのアク
セス・コーデイネータであることを確定する。
ステ、ツブEにおいて、オペレーティング・システムは
、プロセッシング・ユニット10bがセグメントSをア
クセスしたが、プロセッシング・ユニット10bがセグ
メントSに関するロックを保持していないことを確定す
る。
ステップFにおいて、オペレーティング・システムは、
セグメントSのページ1に関する書込みロックを、プロ
セッシング・ユニット10aで実行しているアプリケー
ション・プログラムに付与する。この動作を達成するた
めに、オペレーティング・システムは、次の動作を行う
。即ち、(1)ページ1の現在の状態のコピーを作るた
めのページ・フレームを割り当て、 (2)ページ・フレームのための拡張ストレージ(ES
)の仮想アドレスを割り振り、(3)ロック・テーブル
(LT )中に、そのページのエントリ(記入項目)を
割り当て、(4)そのページ・フレームに対して、新し
く割り振られたES仮想アドレスを割り当て、(5)セ
グメントSのページ1の内容をページ・フレーム中にコ
ピーし、 (6)アプリケーション・プログラムが、セグメントS
のダージ1に関するロックを保持していることを表示す
るために、LTのエントリに記入し、 (7)そのページのコピーのES仮想アドレスを、当該
ページのLTのエントリにコピーし、(8)アプリケー
ション・プログラムによって保持されているロックのリ
スト中に、そのページについてのLTのエントリを、連
結(chain )する。
トランザクションを打ち切る必要がある場合、拡張スト
レージES中のページのコピーは、ページの内容を回復
するのに使用される。アプリケーション・プログラムに
よって保持されているロック・テーブルのエントリの鎖
は、トランザクションを処理しているときに、アプリケ
ーション・プログラムによって変更された仮想アドレス
の組の内容を「覚えておく」ために使用することができ
る。
ステップGにおいて、オペレーティング・システムはロ
ックに関する情報をページ用の反転ページ・テーブルI
PTにコピーし、そして、アプリケーション・プログラ
ムがそのストア命令を再試行するためのスケジュールを
たてる。
ステップHにおいて、アプリケーション・プログラムは
ストア命令を再試行して、それを成功裡に完結する。
ステップ■において、アプリケーション・プログラムは
セグメントSのページ2にストアを試みる。
ステップJにおいて、オペレーティング・システムはス
テップB乃至ステップGで遂行した動作と同様な動作を
セグメントSのページ2に対して遂行する。
ステップKにおいて、アプリケーション・プログラムは
そのストア命令を再試行し、それを成功裡に完結する。
ステップLにおいて、アプリケーション・プログラムは
コミット・サービスを呼び出して、そのアプリケーショ
ン・プログラムで走っているトランザクションをコミッ
トしたいことを表示する。
ステップMにおいて、オペレーティング・システムはコ
ミット・サービスをインターセプトする。
ステップNにおいて、プロセッシング・ユニット10b
がアプリケーション・プロプラムによって更新されたこ
とを、若し、そのページのロック・テーブル(LT)の
エントリが表示したならば、アプリケーション・プログ
ラムによってロックされたページ毎に、オペレーティン
グ・システムは、バックアップ・アクセスコーデイネー
タ(プロセッシング・ユニット10b)にメツセージを
送り、プロセッシング・ユニット10bに対して、拡張
ストレージ(ES )にそのページをコピーすることを
要求する。
ステップOにおいて、プロセッシング・ユニット10b
がプロセッシング・ユニット10aによって修正された
最後のページを受は取ると、プロセッシング・ユニット
10bは、その拡張ストレージBSから、それらの適切
な仮想メモリのセグメント中に、個々のページを移動し
、次に、プロセッシング・ユニット10bは、プロセッ
シング・ユニット10bがそのページをES中に、移動
したことを通知するメツセージを、プロセッシング・ユ
ニット10aに送る。
ステップPにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bからの通知を受取っ
た時、プロセッシング・ユニット10aは次の動作を行
う。
(1)アプリケーション・プログラムにより保持されて
いるロックのリストから、アプリケーション・プログラ
ムによりロックされていた各ページについてのLTのエ
ントリを連結解除(unchain )する。
(2)そのページに割り振られたロック・テーブルのエ
ントリを解放する。
ステップQにおいて、オペレーティング・システムは、
トランザクションが成功裡に完結したことをアプリケー
ション・プログラムに通知する。
第14図はクラスタ構成中の2つのプロセッシング・ユ
ニットがクラスタ・ストレージのセグメントをオーブン
したとき、オーブンされ、マツプされた現存するクラス
タ・ストレージのセグメントに対するトランザクション
が、アクセス・コーデイネータとして動作するプロセッ
シング・ユニット上で、どのようにして実行され、そし
て打ち切られるかを説明する流れ図である。説明を簡明
にするために、以下の前提を設ける。即ち、(1)セグ
メントSは、プロセッシング・ユニット10aで実行す
るアプリケーション・プログラムと、プロセッシング・
ユニット10bで実行するアプリケーション・プログラ
ムとによる読取り/書込みアクセス(RWA)のために
マツプされたクラスタ・ストレージのセグメントであり
、(2)セグメントSは、仮想メモリ中の丁度2つのペ
ージ、即ちページ1及びページ2を現在含んでおり、 (3)ページ1及びページ2の両方は現在、プロセッシ
ング・ユニット10aの主メモリに記憶されており、 (4)ページ1及びページ2がプロセッシング・ユニッ
ト10aの主メモリに記憶されてから、ページ1及びペ
ージ2の両方は修正されているものとするという前提で
ある。
第14図のステップAにおいて、プロセッシング・ユニ
ット10aで実行するアプリケーション・プログラムは
セグメントSのページ1中へのストアを試みている。ア
プリケーション・プログラムは、セグメントSに関する
ロックを未だ保持していないので、ページ1にストアす
る試みはロック・ミスを発生する。
ステップBにおいて、プロセッシング・ユニット10a
のオペレーティング・システムはロック・ミスをインタ
ーセプトする。
ステップCにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aで実行される他のすべ
てのアプリケーション・プログラムがセグメントSのペ
ージ1に関するロックを保持していないことを確定する
ステップDにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aがセグメントSのアク
セス・コーデイネータであることを確定する。
ステップピにおいて、オペレーティング・システムは、
プロセッシング・ユニット10bがセグメントSをアク
セスするのだけれども、プロセッシング・ユニット10
bは現在セグメントSについてのロックを保持していな
いことを確定する。
ステップFにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aで実行しているアプリ
ケーション・プログラムに対して、セグメントSのペー
ジ1に関する書込みロックを付与する。この動作を遂行
するために、オペレーティング・システムは、 (1)ページ1の現在の収態のコピーが作られるための
ページ・フレームを割り当て、(2)そのページ・フレ
ームに対して、拡張ストレージ(ES)の仮想アドレス
を割り振り、(3)ロック・テーブル(LT)中に、そ
のページについてのエントリ(記入項目)t′割り当て
、(4)そのページ・フレームに対して、新しく割り振
られたES仮想アドレスを割り当て、(5)セグメント
Sのページ1の内容をページ・フレームにコピーし、 (6)アプリケーション・プログラムがセグメントSの
ページ1に関するロックを保持していることを表示する
ために、LTのエントリに記入し、(7)そのページの
コピーのES仮想アドレスを、該ページについてのLT
のエントリにコピーし、 (8)アプリケーション・プログラムによって保持され
ているロックのリスト中に、そのページについてのLT
のエントリを、連結(chain )する。
トランザクションを打ち切る必要がある場合、拡張スト
レージBS中のページのコピーは、ページの内容を回復
するのに用いられる。アプリケーション・プログラムに
よって保有されているロック・テーブルのエントリのチ
ェーン(連鎖)は、トランザクションを処理している時
に、アプリケーション・プログラムによって変更された
仮想ページのセットの内容を「覚えておく」ために用い
られる。
ステップGにおいて、オペレーティング・システムは、
ロックに関する情報を、そのページの反転ページ・テー
ブルIPTのエントリ′にコピーし、そして、アプリケ
ーション・プログラムのストア命令を再試行するために
、アプリケーション・プログラムがそのストア命令を再
試行するようにスケジュールする。
ステップHにおいて、アプリケーション・プログラムは
そのストア命令を再試行し、それを成功裡に完了する。
ステップ■において、アプリケーション・プログラムは
セグメントSのページ2のストアの動作を試みる。
ステップJにおいて、オペレーティング・システムはセ
グメントSのページ2に対して、ステップB乃至ステッ
プGで遂行した動作と同じ動作を遂行する。
ステップKにおいて、アプリケーション・プログラムは
そのストア命令を再試行して、それを成功裡に完了する
ステップLにおいて、アプリケーション・プログラムは
、パックアウト・サービスを呼び出して、走っているト
ランザクションを打ち切りたいことを表示する。
ステップMにおいて、オペレーティング・システムは打
ち切り要求をインターセプトする。
ステップNにおいて、オペレーティング・システムはア
プリケーション・プログラムによって保持されていたロ
ックを解放する。この動作を遂行するために、オペレー
ティング・システムは、アプリケーション・プログラム
によりロックされている各ページに対して、以下の動作
を行う。即ち、オペレーティング・システムは、 (1)アプリケーション・プログラムによって保持され
ていたロックに対応する各ロック・テーブル(LT)・
エントリを検査する。
(2)主メモリ中にあって、LTが存在し、アプリケー
ション・プログラムによって修正されたことを表示する
すべてのベージの内容を破棄する。
(3)LTが存在し、アプリケーション・プログラムに
よってベージが修正されたことを表示するベージ毎5、
そのロック・テーブル(LT)のエントリによって指示
された拡張ストレージESのベージを、主メモリに持っ
て来る。
(4>isページを、それが前の内容を表わすベージに
開運した仮想アドレスにリネームする。
(5)アプリケーション・プログラムによって保持され
ていたロックのリストから、そのベージについてのLT
のエントリを非結合(unchain )にする。
(6)そのベージ用に割り振られたロック・テーブルの
エントリを解放する。
ステップ0において、オペレーティング・システムはト
ランザクションが打ち切られたことをアプリケーション
・プログラムに通知する。
第15図はクラスタ構成中の2つのプロセッシング・ユ
ニットがクラスタ・ストレージのセグメントをオーブン
したとき、オーブンされマツプされだ現存するクラスタ
・ストレージのセグメントに対するトランザクションが
、バックアップ・アクセス・コーデイネータとして動作
するプロセッシング・ユニットに関して、どのようにし
て実行され、そしてコミットされるかを説明する流れ図
である。説明を簡明にするために、以下の前提を設ける
。即ち、 (1)セグメントSは、プロセッシング・ユニット10
aで実行するアプリケーション・プログラム及びプロセ
ッシング・ユニット10bで実行するアプリケーション
・プログラムによって行われる読取り/書込みアクセス
(RWA)のためにマツプされたクラスタ・ストレージ
のセグメントであり、 (2)セグメントSは、仮想メモリ中の丁度2つのベー
ジ、即ちベージ1及びベージ2を現在含んでおり、 (3)ベージ1及びベージ2の両方は現在、プロセッシ
ング・ユニット10bの主メモリに記憶されており、 (4)ベージ1及びベージ2はプロセッシング・ユニッ
ト10bの主メモリに記憶されてから後に、ベージ1及
びベージ2の両方は修正されているものとするという前
提条件である。
第15図のステップAにおいて;プロセッシング・ユニ
ット10bにおいて実行されるアプリケーション・プロ
グラムはセグメントSのベージ1中へのストアを試みて
いる。アプリケーション・プログラムは、セグメントS
に関するロックを未だ保持していないので、ベージ1に
ストアする試みはロック・ミスを発生する。
ステップBにおいて、プロセッシング・ユニット10b
のオペレーティング・システムはロック・ミスをインタ
ーセプトする。
ステップCにおいて、オペレーティング・システムは、
プロセッシング・ユニット10bで実行される他のすべ
てのアプリケーション・プログラムがセグメントSのベ
ージ1に関してロックを保持していないことを確定する
ステップDにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aがセグメントSのアク
セス・コーデイネータであることを確定する。
ステップEにおいて、プロセッシング・ユニット10b
はプロセッシング・ユニット10aにメツセージ1t!
:送ることにより、プロセッシング・ユニット10aが
セグメントSのベージ1に関す−る書込みロックをプロ
セッシング・ユニット10bに対して付与することを、
要求する。
ステップFにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bからメツセージ1を
受取ると、プロセッシング・ユニット10aは、クラス
タ構成中の他のプロセッシング・ユニットがセグメント
Sのベージ1に関するロックを、現在保持していないこ
とを確定する。
ステップGにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10bにメツセージ2を
送ることにより、プロセッシング・ユニット10aがセ
グメントSのベージ1に関する書込みロックをプロセッ
シング・ユニット10bに付与したことを、通知する。
ステップHにおいて、プロセッシング・ユニット10b
のオペレーティング・システムは、プロセツシングパユ
ニット10bで実行されているアプリケーション・プロ
グラムに対して、セグメントSのページ1に関する書込
みロックを付与する。
この動作を遂行するために、オペレーティング・システ
ムは、 (1)ページ1の現在の状態のコピーが作られるための
ページ・フレームを割り当て、(2)そのページ・フレ
ームに対して拡張ストレージ(BS)の仮想アドレスを
割り振り、(3)ロック・テーブル(LT)中に、その
ページについてのエントリ(記入項目)を割り当て、(
4)そのページ・フレームに対して、新しく割り振られ
たBSの仮想アドレスを割り当て、(5)セグメントS
のページ1の内容をページ・フレームにコピーし、 (6)アプリケーション・プログラムが、セグメントS
のページ1に関するロックを保持していることを表示す
るために、LTのエントリに記入し、 (7)そのページのコピーのES仮想アドレスを、その
ページについてのLTのエントリにコピーし、 (8)アプリケーション・プログラムによって保持され
ているロックのリスト中に、そのページについてのLT
のエントリを、連結(chain)する。
トランザクションを打ち切る必要がある場合、拡張スト
レージES中のページのコピーは、ページの内容を回復
するのに用いられる。アプリケーション・プログラムに
よって保有されているロック・テーブルのエントリのチ
ェーン、即ち鎖は、トランザクションを処理している時
に、アプリケーション・プログラムによって変更された
仮想ページのセットの内容を「覚えておく」ために用い
られる。
ステップIにおいて、オペレーティング・システムは、
ロックに関する情報を、そのページの反転ページ・テー
ブルIPTのエントリにコピーし、そして、アプリケー
ション・プログラムがストア命令を再試行するようにス
ケジュールする。
ステップJにおいて、アプリケーション・プログラムは
そのストア命令を再試行し、それを成功裡に完結する。
ステップKにおいて、アプリケーション、プログラムは
セグメントSのページ2へのストア動作を行う。
ステップLにおいて、オペレーティング・システムはセ
グメントSのページ2に対して、ステップB乃至ステッ
プJで行った動作と同じ動作を遂行する。
ステップMにおいて、アプリケーション・プログラムは
そのストア命令を再試行して、それを成功裡に完結する
ステップNにおいて、アプリケーション・プログラムは
コミット・サービスを呼び出して、走っているトランザ
クションをコミットしたいことを表示する。
ステップOにおいて、オペレーティング・システムはコ
ミット要求をインターセプトする。
ステップPにおいて、アプリケーション・プログラムに
よってロックされたページ毎に、プロセッシング・ユニ
ット10bのオペレーティング・システムは、アクセス
・コーデイネータであるプロセッシング・ユニット10
aにメツセージを送り、これにより、若し、そのページ
についてのロック・テーブル(LT)がそのページがア
プリケーション・プログラムによって更新されたという
ことを表示しているならば、プロセッシング・ユニット
10aがそのページを拡張ストレージ(ES)にコピー
することを、プロセッシング・ユニット10aに対して
要求する。
ステップQにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bによって修正された
最後のページを受取ると、プロセッシング・ユニット1
0aは、そのESから、修正された個々のページをその
適切な仮想メモリのセグメントに移動し、次に、プロセ
ッシング・ユニット10bにメツセージを送り、プロセ
ツシング・ユニット10aがそのBSにそのベージを移
動したことを通知する。
ステップRにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bからの通知を受取っ
た時、プロセッシング・ユニット10aは次の動作を行
う。
(1)アプリケーション・プログラムにより保持されて
いたロックのリストから、アプリケーション・プログラ
ムによりロックされていた各ベージのLTエントリを連
結解除し、そして、(2)そのベージに割り当てられた
ロック・テーブルのエントリを解放する。
ステップSにおいて、オペレーティング・システムは、
トランザクションが成功裡に完結したことをアプリケー
ション・プログラムに通知する。
第16図は、クラスタ構成中の2つのプロセッシング・
ユニットがクラスタ・ストレージのセグメントをオーブ
ンしたとき、オーブンされマツプされた現存のクラスタ
・ストレージのセグメントに対するトランザクションが
、バックアップ・アクセス・コーデイネータとして動作
するプロセッシング・ユニットに関して、どのようにし
て実行され、そして打ち切られるかを説明する流れ図で
ある。説明を簡明にするために、以下の前提を設ける。
即ち、 (1)セグメントSは、プロセッシング・ユニット10
aで実行するアプリケーション・プログラム及びプロセ
ッシング・ユニット10bで実行するアプリケーション
・プログラムによって行われる読取り/書込みアクセス
(RWA)のためにマツプされたクラスタ・ストレージ
のセグメントであり、 (2)セグメントSは、仮想メモリ中の丁度2つのベー
ジ、即ちベージ1及びベージ2を現在含んでおり、 (3)ベージ1及びベージ2の両方は現在、プロセッシ
ング・ユニット10bの主メモリに記憶されており、 (4)ベージ1及びベージ2はプロセッシング・ユニッ
ト10bの主メモリに記憶されてから、ベージ1及びベ
ージ2の両方は修正されているものとするという前提条
件である。
第16図のステップAにおいて、プロセッシング・ユニ
ット10bで実行するアプリケーション・プログラムは
セグメントSのベージ1中へのストアを試みている。ア
プリケーション・プログラムは、セグメントSに関する
ロックを未だ保持していないので、ベージ1にストアす
る試みはロック・ミスを発生する。
ステップBにおいて、プロセッシング・ユニット10a
のオペレーティング・システムはロック・ミスをインタ
ーセプトする。
ステップCにおいて、オペレーティング・システムは、
プロセッシング・ユニット10bで実行される他のすべ
てのアプリケーション・プログラムがセグメントSのベ
ージ1に関するロックを保持していないことを確定する
ステップDにおいて、オペレーティング・システムは、
プロセッシング・ユニット10aがセグメントSのアク
セス・コーデイネータであることを確定する。
ステップEにおいて、プロセッシング・ユニット10b
は、プロセッシング・ユニット10aにメツセージ1を
送り、プロセッシング・ユニット10aがプロセッシン
グ・ユニット10bにベージ1の書込みロックを付与す
ることを要求する。
ステップFにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bからメツセージ1を
受取ると、プロセッシング・ユニット10aは、クラス
タ構成中の他のプロセッシング・ユニットがセグメント
Sのベージ1のロックを、現在保持していないことを確
定する。
ステップGにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10bに対してメツセー
ジ2を送り、プロセッシング・ユニット10aがセグメ
ントSのベージ1に書込みロックを付与したことに応答
する。
ステップHにおいて、プロセッシング・ユニット10b
のオペレーティング・システムは、プロセッシング・ユ
ニット10bで実行されているアブリケーション・プロ
グラムに対して、セグメントSのページ1に関する書込
みロックを付与する。
この動作を遂行するために、オペレーティング・システ
ムは、゛ (1)ページ1の現在状態のコピーが作られるためのペ
ージ・フレームを割り当て、 (2)ページ・フレームのための拡張ストレージ(ES
)の仮想アドレスを割り振り、(3)ロック・テーブル
(LT)中に、そのページのエントリ(記入項目)を割
り当て、(4)そのページ・フレームに対して、新しく
割り振られたES仮想アドレスを割り当て、(5)セグ
メントSのページ1の内容をページ・フレーム中にコピ
ーし、 (6)アプリケーション・プログラムが、セグメントS
のページ1に関するロックを保持していることを表示す
るために、LTのエントリに記入し、 (7)そのページのコピーのES仮想アドレスを、その
ページについてのLTのエントリにコピー(8)アプリ
ケーション・プログラムによって保持されているロック
のリスト中に、そのページについてのLTのエントリを
、連結(chain )する。
トランザクションを打ち切る必要がある場合、拡張スト
レージES中のページのコピーは、ページの内容を回復
するのに用いられる。アプリケーション・プログラムに
よって保有されているロック・テーブルのエントリのチ
ェーンは、トランザクションを処理している時に、アプ
リケーション・プログラムによって変更された仮想ペー
ジのセット内容を「覚えておく」ために用いられる。
ステップlにおいて、オペレーティング・システムは、
ロックに関する情報を、そのページの反転ページ・テー
ブルIPTのエントリにコピーし、そして、アプリケー
ション・プログラムが、ストア命令を再試行するように
スケジュールする。
ステップJにおいて、アプリケーション・プログラムは
そのストア命令を再試行し、それを成功裡に完結する。
ステップKにおいて、アプリケーション・プログラムは
セグメントSのページ2にストアの動作を行う。
ステップじにおいて、オペレーティング・システムはセ
グメントSのページ2に対して、ステップB乃至ステッ
プHで行った動作と同じ動作を遂行する。
ステップMにおいて、アプリケーション・プログラムは
そのストア命令を再試行して、それを成功裡に完結する
ステップNにおいて、アプリケーション・プログラムは
、走っているトランザクションを打ち切りたいことを表
示し、バックアップ・サービスを呼び出す。
ステップ0において、オペレーティング・システムは打
ち切り要求をインターセプトする。
ステップPにおいて、オペレーティング・システムはア
プリケーション・プログラムによって保持されていたロ
ックを解放する。この動作を遂行するために、オペレー
ティング・システムは、アプリケーション・プログラム
によりロックされていた各ページに対して、以下の動作
を行う。即ち、(1)アプリケーション・プログラムに
よって保持されていたロックに対応する各ロック・テー
ブル(LT)・エントリを検査する。
(2)主メモリ中にあり、LT中に存在するページであ
って、アプリケーション・プログラムによって修正され
たことが表示されたすべてのページの内容を破棄する。
(3)LT中に存在し、アプリケーション・プログラム
によってページが修正されたことが表示されたページの
各々について、ロック・テーブル(LT)のエントリに
よって指示されている拡張ストレージBSのページを、
主メモリに持ち込む。
(4)BSページを、それが前の内容を表わすページに
関連した仮想アドレスにリネームする。
(5)アプリケーション・プログラムによって保持され
ていたロックのリストから、そのページのLTについて
のエントリを非結合(uncha in )にする。
(6)そのページのために割り当てられたロック・テー
ブルのエントリを解放する。
ステップQにおいて、オベレーテインク・システムはト
ランザクションが打ち切られたことをアプリケーション
・プログラムに通知する。
3個またはそれ以上のプロセッシング・ユニットが同じ
クラスタ・ストレージのセグメントをオーブンし、そし
て、アクセス・コーデイネータとして動作するプロセッ
シング・ユニットにおいて実行するアプリケーション・
プログラムが、トランザクションを実行した後、それを
コミットするクラスタ構成においては、第13図におい
て説明した動作と類似の動作が遂行される。主な相違点
は、2つの付加的な動作が加えられるということである
。一方のステップは、第13図のステップのステップF
とステップGの間に加えられる。このステップにおいて
、バックアップ・アクセス・コーデイネータがバックア
ップ・ロック・テーブル(Backup Lock T
able−BLT )中にそれらのロックをストアする
ことができるように、アクセス・コーデイネータは、ア
クセス・コーデイネータ及びバックアップ・アクセス・
コーデイネータ以外のプロセッシング・ユニットによっ
て実行されるアプリケーション・−プログラムによって
保持されているロックのリストを、バックアップ・アク
セス・コーデイネータに送る。このBLTは、クラスタ
構成内の個々のプロセッシング・ユニットの仮想メモリ
中に、どのクラスタ・ストレージのセグメントのページ
がストアされたかを確定するために、回復動作の闇で使
用される。どのようにして、このBLTが回復を促進す
るために用いられるかについては、以下に細述する。他
方のステップは、第18図のステップのQ及び凡の間で
付加されている。このステップにおいて、アクセス・コ
ーデイネータは、アクセス・コーデイネータ及びバック
アップ・アクセス・コーデイネータ以外のプロセッシン
グ・ユニットによって実行されるアプリケーション・プ
ログラムによって解放されるロックのリストを、バック
アップ・アクセス・コーデイネータに送るので、バック
アップ・アクセス・コーデイネータはバックアップ・ロ
ック・テーブルBLT中からそれらのロックを取り除く
ことができる。
3個またはそれ以上のプロセッシング・ユニットが同じ
クラスタ・ストレージのセグメントをオーブンし、そし
て、アクセス・コーデイネータとして動作するプロセッ
シング・ユニットにおいて実行するアプリケーション・
プログラムがトランザクションを実行した後に、それを
打ち切るクラスタ構成においては、第14図において説
明した動作と類似の動作が遂行される。主な相違点は、
2つの付加的な動作が加えられるということである。
一方のステップは、第14図のステップのステップFと
ステップGの間に加えられる。このステップにおいて、
バックアップ・アクセス・コーデイネータがバックアッ
プ・ロック・テーブルBLT中にそれらのロックをスト
アすることができるように、アクセス・コーデイネータ
は、アクセス・コーデイネータ及びバックアップ・アク
セス・コーデイネータ以外のプロセッシング・ユニット
によって実行されるアプリケーション・プログラムによ
って保持されているロックのリストを、バックアップ・
アクセス・コーデイネータに送る。このBLTは、クラ
スタ構成内の個々のプロセッシング・ユニットの仮想メ
モリ中に、どのクラスタ・ストレージのセグメントのペ
ージがストアされたかを確定するために、回復動作の間
で使用される。
どのようにして、このBLTが回復を促進するように用
いられるかについては、以下に細述する。
他方のステップは、第14図のステップのN及びOの間
で付加されている。このステップにおいて、アクセス・
コーデイネータは、アクセス・コーデイネータ及びバッ
クアップ・アクセス・コーデイネータ以外のプロセッシ
ング・ユニットによって実行されるアプリケーション・
プログラムによって解放されるロックのリストを、バッ
クアップ・アクセス・コーデイネータに送るので、バッ
クアップ・アクセス・コーデイネータはバックアップ・
ロック・テーブルBLT中からそれらのロックを取り除
くことができる。
3個またはそれ以上のプロセッシング・ユニットが同じ
クラスタ・ストレージのセグメントをオーブンし、そし
て、バックアップ・アクセス・コーデイネータどして動
作するプロセッシング・ユニットにおいて実行するアプ
リケーション・プログラムがトランザクションを実行し
た後、それをコミットするクラスタ構成においては、第
15図において説明した動作と類似の動作が遂行される
3個またはそれ以上のプロセッシング・ユニットが同じ
クラスタ・ストレージのセグメントをオーブンし、そし
て、バックアップ・アクセス・コーデイネータとして動
作するプロセッシング・ユニットにおいて実行するアプ
リケーション・プログラムがトランザクションを実行後
、それを打ち切るクラスタ構成においては、第16図に
おいて説明した動作と類似の動作が遂行される。
3個またはそれ以上のプロセッシング・ユニットが同じ
クラスタ・ストレージのセグメントをオーブンし、そし
て、アクセス・コーデイネータとしても、またはバック
アップ・アクセス・コーデイネータとしても動作してい
ないプロセッシング・ユニットにおいて実行するアプリ
ケーション・プログラムがトランザクションを実行した
後、それをコミットするクラスタ構成においては、第1
5図において説明した動作と類似の動作が遂行される。
3個またはそれ以上のプロセッシング・ユニットが同じ
クラスタ・ストレージのセグメントをオーブンし、そし
て、アクセス・コーデイネータとしても、またはバック
アップ・アクセス・コーデイネータとしても動作してい
ないプロセッシング・ユニットにおいて実行するアプリ
ケーション・プログラムがトランザクションを実行した
後に、それを打ち切るクラスタ構成においては、第16
図において説明した動作と類似の動作が遂行される。
第17図はアクセス・コーデイネータとしても、または
、バックアップ・アクセス・コーデイネータとしても動
作していないプロセッシング・ユニットが誤動作を生じ
た時、クラスタ・ストレージのセグメントについて、ど
のように誤動作の回復が達成されるかを説明するための
流れ図である。
プロセッシング・ユニット10aはアクセス・コーデイ
ネータであり、プロセッシング・ユニット10bはバッ
グアップ・アクセス・コーデイネータであり、プロセッ
シング・ユニット10cが故障したものとする。
第17図のステップAにおいて、アクセス・コーデイネ
ータとして動作しているプロセッシング・ユニット10
aは、アクセス・コーデイネータとして動作していない
プロセッシング・ユニット10Cが誤動作を生じたこと
を確定する。
ステップBにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10c中の仮想メモリの
クラスタ・ストレージ・セグメントのページの組を確定
するために、ロック・テーブルLTを走査する。
ステップCにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10bがアクセスコーデ
イネータであることを確定する。
ステップDにおいて、プロセッシング・二ニット10a
は、プロセッシング・ユニット10c以外のプロセッシ
ング・ユニットの仮想メモリ中に複写されたクラスタ・
ストレージのセグメント内のページの組を確定するため
に、そのロック・テーブルLTを走査する。この実施例
においては、その仮想メモリ中にクラスタ・セグメント
のページを保持する可能性のあるただ1つのプロセッシ
ング・ユニット10bがある。
ステップEにおいて、プロセッシング・ユニット10a
は2つのページの組を比較して、プロセッシング・ユニ
ット10cの仮想メモリ中にはあったけれども、プロセ
ッシング・ユニット10bの仮想メモリ中にはないクラ
スタ・ストレージのセグメントのページを確定する。プ
ロセッシング・ユニット10aだけが、その仮想メモリ
中のこれらの残りのページのコピーを持っている。その
後の故障に対して備えるために、プロセッシング・ユニ
ット10aは、バックアップ・アクセス・コーデイネー
タの仮想メモ、り中にこれらのページを複写しなければ
ならない。
ステップFにおいて、これらのページ毎に、プロセッシ
ング・ユニット10aは、バックアップ・アクセス・コ
ーデイネータ、即ちプロセッシング・ユニット1σbに
メツセージを送ることによって、プロセッシング・ユニ
ット10bがそれらの各ページをその仮想メモリにコピ
ーすることを要求する。
ステップGにおいて、プロセッシング・ユニット10b
がプロセッシング・ユニット10aから、最後のページ
を受は取ったとき、プロセッシング・ユニット10bは
、プロセッシング・ユニット10aにメツセージを送り
、プロセッシング・ユニット10bがそれらの各ページ
を仮想メモリにコピーしたことを通知する。
ステップHにおいて、プロセッシング・ユニット10a
がプロセッシング・ユニット10bからの通知を受取る
と、プロセッシング・ユニット10aはプロセッシング
・ユニット10cについてのすべてのLTエントリを解
放する。
第18図はアクセス・コーデイネータとして動作してい
るプロセッシング・ユニットが誤動作な起こした時、ク
ラスタ・ストレージのセグメントについて、どのように
して誤動作の回復が行われるかを説明するための流れ図
である。プロセッシング・ユニット10aはアクセスコ
ーデイネータであるが故障し、プロセッシング・ユニッ
ト10bはバックアップ・アクセス・コーデイネータで
あり、プロセッシング・ユニット10cが新しいバック
アップ・アクセス・コーデイネータとして選ばれる様子
を示している。
第18図のステップAにおいて、バックアップ・アクセ
ス・コーデイネータとして動作しているプロセッシング
・ユニットであるプロセッシング・ユニット10bは、
アクセス・コーデイネータとして動作しているプロセッ
シング・ユニット10aが故障したことを確定する。
ステップBにおいて、プロセッシング・ユニット10b
は、プロセッシング・ユニット10aの仮想メモリ中に
あったクラスタ・ストレージのセグメントのページの組
を確定するために、そのバックアップ・ロック・テーブ
ル(BLT)を走査する。
ステップCにおいて、プロセッシング・ユニット10b
は、新しいバックアップ・アクセス・コーデイネータと
してプロセッシング・ユニット10Cを選択する。一般
に、現在のバックアップ・アクセス・コーデイネータを
除いて、任意の残りのプロセッシング・ユニットを新し
いバックアップ・アクセス・コーデイネータとして選択
することができる。
ステップDにおいて、プロセッシング・ユニット10b
は、プロセッシング・ユニット10aに存在していたペ
ージの組が、プロセッシング・ユニット10a以外のど
のプロセッシング・ユニットのメモリ中に複写されてい
たかを確定するために、そのBLTを走査する。この実
施例においては、プロセッシング・ユニット10b1ま
たはプロセッシング・ユニット10cがその仮想メモリ
中にクラスタ・セグメントのページのコピーを持ってい
る可能性がある。
ステップEにおいて、プロセッシング・ユニット10b
は以下の2つのページの組を比較により確定する。それ
らの2つのページの組とは、(1)プロセッシング・ユ
ニット10aが故障した時に、プロセッシング・ユニッ
ト10aと、プロセッシング・ユニット10bの仮想メ
モリの中には存在していたが、プロセッシング・ユニッ
ト10cの仮想メモリ中には存在していなかったクラス
タ・ストレージのセグメントのページの組と、 (2)プロセッシング・ユニット10aが故障した時に
、プロセッシング・ユニット10aと、プロセッシング
・ユニット10Cの仮想メモリの中には存在していたが
、プロセッシング・ユニット10bの仮想メモリ中には
存在していなかったクラスタ・ストレージのセグメント
のページの組である。
ステップFにおいて、プロセッシング・ユニット10a
とプロセッシング・ユニット10cの仮想メモリ中には
存在したが、プロセッシング・ユニット10bの仮想メ
モリには存在しなかったべ一ジ毎に、プロセッシング・
ユニット10bは、プロセッシング・ユニット10cに
メツセージを送ることによって、プロセッシング・ユニ
ット10Cがプロセッシング・ユニット10bに該ペー
ジのコピーを送ることを要求する。
ステップGにおいて、プロセッシング・ユニット10C
からの最後のページを受取ったとき、プロセッシング・
ユニット10bは、プロセッシング・ユニット10aと
プロセッシング・ユニット10bの仮想メモリ中には存
在したが、プロセッシング・ユニット10cの仮想メモ
リには存在しなかったページの各々につき、プロセッシ
ング・ユニット10cにメツセージを送ることにより、
プロセッシング・ユニット10cが当該ページをその仮
想メモリにコピーすることを要求する。
ステップHにおいて、プロセッシング・ユニット10b
からの最後のページを受取ったとき、プロセッシング・
ユニット10cはメツセージをプロセッシング・ユニッ
ト10bに送り、プロセッシング・ユニット10cがペ
ージを仮想メモリに移動したことを通知する。
ステップ■において、プロセッシング・ユニット10c
からの応答を受取ったとき、プロセッシング・ユニット
10bは故障したプロセッシング・ユニット10aにつ
いてのLTのすべてのエントリを解放する。
第19図はバックアップ・アクセス・コーデイネータと
して動作しているプロセッシング・ユニットが故障した
時に、クラスタ・ストレージのセグメントに対して、ど
のようにして誤動作の回復が行われるかを説明するため
の流れ図である。ユニット10aがアクセス・コーデイ
ネータであり、ユニット10bがバックアップ・アクセ
ス・コーデイネータであるが故障し、ユニット10Cが
新しいバックアップ・アクセス・コーデイネータに選ば
れるものとする。
第19図のステップAにおいて、アクセス・コーデイネ
ータとして動作しているプロセッシング・ユニット10
aは、バックアップ・アクセス・コーデイネータとして
動作しているプロセッシング・ユニット10bが故障し
たことを確定する。
ステップBにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10bの仮想メモリ中に
あったクラスタ・ストレージのセグメントのページの組
を確定するために、そのロック・テーブル(LT)を走
査する。
ステップCにおいて、プロセッシング・ユニット10a
は、新しいバックアップ・アクセス・コーデイネータと
してプロセッシング・ユニット10Cを選択する。一般
に、現在のバックアップ・アクセス・コーデイネータを
除いて、任意の残りのプロセッシング・ユニットを新し
いバックアップ・アクセス・コーデイネータとして選択
することができる。
ステップDにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10bに存在していたペ
ージの組が、プロセッシング・ユニット10b以外のプ
ロセッシング・ユニットのメモリ中に複写されていたか
を確定するために、そのLTを走査する。この実施例に
おいては、プロセッシング・ユニット10a、またはプ
ロセッシング・ユニット10cがその仮想メモリ中にク
ラスタ・セグメントのページのコピーを持っている可能
性がある。
ステップ已において、プロセッシング・ユニット10b
は以下の2つのページの組の比較の結果として、確定す
る。それらのページの組は、(1)プロセッシング・ユ
ニット10aが故障した時に、プロセッシング・ユニッ
ト10bと、プロセッシング・ユニット10cの仮想メ
モリ中には存在していたが、プロセッシング・ユニット
10aの仮想メモリ中には存在していなかったクラスタ
・ストレージのセグメントのページの組と、(2)プロ
セッシング・ユニット10aが故障した時に、プロセッ
シング・ユニット10aと、プロセッシング・ユニット
10bの仮想メモリ中には存在していたが、プロセッシ
ング・ユニット10cの仮想メモリ中には存在していな
かったクラスタ・ストレージのセグメントのページの組
とである。
ステップFにおいて、プロセッシング・ユニット10a
は、プロセッシング・ユニット10aとプロセッシング
・ユニット10cの仮想メモリ中には存在しだが、プロ
セッシング・ユニット10aの仮想メモリには存在しな
いページ毎に、プロセッシング・ユニット10cにメツ
セージを送ることによって、プロセッシング・ユニット
10cがプロセッシング・ユニット10aに該ページの
コピーを送ることを要求する。
ステップGにおいて、プロセッシング・ユニット10c
からの最後のページを受取ったとき、プロセッシング・
ユニット10aは、プロセッシング・ユニット10aと
プロセッシング・ユニット10bの仮想メモリに存在し
たが、プロセッシング・ユニット10cには存在しなか
ったページ毎に、プロセッシング・ユニット10cにメ
ツセージを送ることによって、プロセッシング・ユニッ
ト10cが該ページをその仮想メモリにコピーすること
を要求する。
ステップHにおいて、プロセッシング・ユニツ)10a
からの最後のページを受取ったとき、プロセッシング・
ユニット10cはメツセージをプロセッシング・ユニッ
ト10aに送り、プロセッシング・ユニット10cがペ
ージを仮想メモリに移動したことを通知する。
ステップIにおいて、プロセッシング・ユニツ)−10
cからの応答を受取ったとき、プロセッシング・ユニッ
ト10aは故障したプロセッシング・ユニット10bに
ついてのすべてのLTエントリを解放する。
E8発明の詳細 な説明したように、本発明は、仮想メモリを有する多重
プロセッサ・システムにおいて、アプリケーション・プ
ログラムにより同時に実行されるトランザクションが、
どんな理由で打ち切られたとしても、データの喪失やデ
ータのコンシスチンシーの喪失を発生することのないデ
ータ処理システムを簡単な構成によって与えることが出
来る。
【図面の簡単な説明】 第1図は本発明を適用するためのクラスタ構成に相互接
続されている複数個のプロセッシング・ユニットの機能
的ブロック図、第2図は第1図に示した1つのプロセッ
シング・ユニットに含まれている種々め機能を説明する
ためのブロック図、第3図は第1図及び第2図に示した
プロセッシング・ユニットに適用されるソフトウェア機
能を説明するためのブロック図、第4図は第2図及び第
3図に示されたユニットの仮想メモリ・マネージャの機
能により適用される外部ページ・テーブル(XPT)デ
ータ構造を説明するための図、第5図は第2図及び第3
図に示したユニットの仮想メモリ・マネージャの機能に
より適用される反転ページ・テーブルのデータ構造を説
明するための図、第6図は仮想メモリのセグメントt′
識別する大域セグメント識別子及び局部セグメント識別
子のデータ構造を示す図、第7図は3つのプロセッシン
グ・ユニット、1つのスイッチ、3つのコミニュケーシ
ョン・リンクを持ち、各プロセッシング・ユニットは2
次ストレージを持ったクラスタ構成を示すブロック図、
第8図は与えられたプロセッシング・ユニットで実行さ
れるアプリケーション・プログラムがクラスタ・ストレ
ージのセグメントを作成し、そしてオーブンする時、そ
のプロセッシング・ユニットで実行されるオベレーテイ
ンク・システムにより遂行されるステップを説明するた
めの流れ図、第9図はオーブンされたクラスタ・ストレ
ージ・ファイルが、クラスタ構成中で共用された仮想メ
モリにどのようにしてロードされるかを説明するための
流れ図、第10図はクラスタ構成中のただ1つのプロセ
ッシング・ユニットがクラスタ・ストレージのセグメン
トをオーブンした時、オーブンされマツプされた現存す
るクラスタ・ストレージのセグメントに対して、どのよ
うにして、トランザクションがが実行され、そしてコミ
ットされるかを説明するための流れ図、第11図はクラ
スタ構成中のただ1つのプロセッシング・ユニットがク
ラスタ・ストレージのセグメントをオーブンした時、オ
ーブンされマツプされた現存するクラスタ・ストレージ
のセグメントに対するトランザクションがどのように実
行され、そして打ち切られるかを説明するための流れ図
、第12図はアクセス・コーデイネータとは異なったプ
ロセッシング・ユニットで走っているアプリケーション
・プロプラムによって、存在するクラスタ・ストレージ
・ファイルが、どのようにしてオーブンされるかを説明
するための流れ図、第13図はクラスタ構成中の2つの
プロセッシング・ユニットがクラスタ・ストレージのセ
グメントをオーブンした時、オーブンされマツプされた
現存するクラスタ・ストレージのセグメントに対するト
ランザクションが、アクセス・コーデイネータとして動
作するプロセッシング・ユニットに対して、どのように
して実行され、そしてコミットされるかを説明するため
の流れ図、第14図はクラスタ構成中の2つのプロセッ
シング・ユニットがクラスタ・ストレージのセグメント
をオーブンした時、オーブンされマツプされた現存する
クラスタ・ストレージのセグメントに対するトランザク
ションが、アクセス・コーデイネータとして動作するプ
ロセッシング・ユニットに対して、どのようにして実行
され、そして打ち切られるかを説明するための流れ図、
第15図はクラスタ構成中の2つのプロセッシング・ユ
ニットがクラスタ・ストレージのセグメントをオーブン
した時、オーブンされマツプされた現存するクラスタ・
ストレージのセグメントに対するトランザクションが、
バックアップ・アクセス・コーデイネータとして動作す
るプロセッシング・ユニットに対して、どのようにして
実行され、そしてコミットされるかを説明するための流
れ図、第16図はクラスタ構成中の2つのプロセッシン
グ・ユニットがクラスタ・ストレージのセグメントをオ
ーブンした時、オーブンされマツプされた現存するクラ
スタ・ストレージのセグメントに対するトランザクショ
ンが、バックアップ・アクセス・コーデイネータとして
動作するプロセッシング・ユニットに対して、どのよう
にして実行され、そして打ち切られるかを説明するため
の流れ図、第17図はアクセス・コーデイネータとして
も、またはバックアップ・アクセス・コーデイネータと
してのいずれでも動作していないプロセッシング・ユニ
ットが誤動作を生じた時、クラスタ・ストレージのセグ
メントに対して、どのように誤動作の回復が達成される
かを説明するための流れ図、第18図はアクセス・コー
デイネータとして動作しているプロセッシング・ユニッ
トが誤動作を起こした時、クラスタ・ストレージのセグ
メントに対して、どのようにして誤動作の回復が行われ
るかを説明するための流れ図、第19図はバックアップ
・アクセス・コーデイネータとして動作しているプロセ
ッシング・ユニットが誤動作を起こした時、クラスタ・
ストレージのセグメントに対して、どのようにして誤動
作の回復が行われるかを説明するための流れ図である。 10a、10b、10c・・・・プロセッシング・ユニ
ット、11・・・・スイッチ、12・・・・コミニュケ
ーション・リンク、14・・・・2次ストレージ装置、
16・・・・主メモリ、20・・・・人出力ボート、2
4・・・・ディスク装置。

Claims (1)

  1. 【特許請求の範囲】 複数のプロセッサ同士が通信リンクによつて相互に結合
    され、上記複数のプロセッサのそれぞれが、当該プロセ
    ッサに関連づけられた物理的なメモリ、及び仮想メモリ
    変換機構を具備してなるデータ処理システムにおけるデ
    ータ処理方法であつて、 (a)コア内部の揮発性データを、上記複数のプロセッ
    サが一様にアドレッシングできるように、仮想アドレス
    空間にマップし、 (b)任意のプロセッサによる上記データへのアクセス
    を制御するプロセッサを指定し、(c)上記データを更
    新するトランザクションを行うトランザクション・プロ
    セッサに対して、上記データへのアクセスを認め、 (d)上記更新されたデータを、トランザクション・プ
    ロセッサのメモリ及び他の1つのプロセッサのメモリに
    維持する ことを特徴とする方法。
JP63301094A 1987-11-30 1988-11-30 データ処理方法 Granted JPH01188965A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12682087A 1987-11-30 1987-11-30
US126820 1993-09-24

Publications (2)

Publication Number Publication Date
JPH01188965A true JPH01188965A (ja) 1989-07-28
JPH0522259B2 JPH0522259B2 (ja) 1993-03-29

Family

ID=22426862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63301094A Granted JPH01188965A (ja) 1987-11-30 1988-11-30 データ処理方法

Country Status (5)

Country Link
US (1) US5197148A (ja)
EP (1) EP0323013B1 (ja)
JP (1) JPH01188965A (ja)
BR (1) BR8806305A (ja)
DE (1) DE3854384T2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410700A (en) * 1991-09-04 1995-04-25 International Business Machines Corporation Computer system which supports asynchronous commitment of data
CA2078312A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
DE69231873T2 (de) * 1992-01-08 2002-04-04 Emc Corp Verfahren zur Synchronisierung von reservierten Bereichen in einer redundanten Speicheranordnung
WO1994000816A1 (en) * 1992-06-18 1994-01-06 Andor Systems, Inc. Remote dual copy of data in computer systems
US5815656A (en) * 1992-09-23 1998-09-29 International Business Machines Corporation Method of validating memory structures in data processing systems
US5276878A (en) * 1992-10-07 1994-01-04 International Business Machines Corporation Method and system for task memory management in a multi-tasking data processing system
EP0613083B1 (en) * 1993-02-25 2002-01-23 Sun Microsystems, Inc. Transaction management in object oriented systems
US5802391A (en) * 1993-03-16 1998-09-01 Ht Research, Inc. Direct-access team/workgroup server shared by team/workgrouped computers without using a network operating system
JP2963298B2 (ja) * 1993-03-26 1999-10-18 富士通株式会社 二重化共有メモリにおける排他制御命令のリカバリ方法および計算機システム
US5485573A (en) * 1993-07-16 1996-01-16 Unisys Corporation Method and apparatus for assisting in the determination of the source of errors in a multi-host data base management system
EP0709779B1 (en) * 1994-10-31 2001-05-30 International Business Machines Corporation Virtual shared disks with application-transparent recovery
US5550973A (en) * 1995-03-15 1996-08-27 International Business Machines Corporation System and method for failure recovery in a shared resource system having a moving write lock
US5761403A (en) * 1995-05-17 1998-06-02 Nec Corporation Failure recovery system and failure recovery method in loosely coupled multi-computer system, and medium for storing failure recovery program
US5682537A (en) * 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US5724501A (en) * 1996-03-29 1998-03-03 Emc Corporation Quick recovery of write cache in a fault tolerant I/O system
US6226665B1 (en) * 1996-09-19 2001-05-01 Microsoft Corporation Application execution environment for a small device with partial program loading by a resident operating system
US5909682A (en) * 1996-12-30 1999-06-01 Mci Worldcom, Inc. Real-time device data management for managing access to data in a telecommunication system
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US6301643B1 (en) 1998-09-03 2001-10-09 International Business Machines Corporation Multi-environment data consistency
US6269432B1 (en) * 1998-10-23 2001-07-31 Ericsson, Inc. Distributed transactional processing system having redundant data
US6631478B1 (en) * 1999-06-18 2003-10-07 Cisco Technology, Inc. Technique for implementing high performance stable storage hierarchy in a computer network
US6587962B1 (en) * 1999-10-20 2003-07-01 Hewlett-Packard Development Company, L.P. Write request protection upon failure in a multi-computer system
TW454120B (en) * 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring
US6971044B2 (en) * 2001-04-20 2005-11-29 Egenera, Inc. Service clusters and method in a processing system with failover capability
US7231430B2 (en) * 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
US20040153746A1 (en) * 2002-04-24 2004-08-05 Talagala Nisha D. Mechanisms for embedding and using integrity metadata
US7051155B2 (en) * 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US7020805B2 (en) * 2002-08-15 2006-03-28 Sun Microsystems, Inc. Efficient mechanisms for detecting phantom write errors
US7103811B2 (en) * 2002-12-23 2006-09-05 Sun Microsystems, Inc Mechanisms for detecting silent errors in streaming media devices
US7133883B2 (en) * 2002-12-23 2006-11-07 Sun Microsystems, Inc. General techniques for diagnosing data corruptions
US20040123032A1 (en) * 2002-12-24 2004-06-24 Talagala Nisha D. Method for storing integrity metadata in redundant data layouts
US7353432B1 (en) 2003-11-25 2008-04-01 Sun Microsystems, Inc. Maintaining high data integrity
US7350034B2 (en) * 2005-06-20 2008-03-25 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems
US8799680B2 (en) 2005-09-15 2014-08-05 Microsoft Corporation Transactional sealed storage
US7552306B2 (en) * 2005-11-14 2009-06-23 Kabushiki Kaisha Toshiba System and method for the sub-allocation of shared memory
DE102007062974B4 (de) * 2007-12-21 2010-04-08 Phoenix Contact Gmbh & Co. Kg Signalverarbeitungsvorrichtung
US10089220B1 (en) * 2013-11-01 2018-10-02 Amazon Technologies, Inc. Saving state information resulting from non-idempotent operations in non-volatile system memory
JP6405851B2 (ja) * 2014-09-30 2018-10-17 富士通株式会社 予兆検知支援プログラム、方法、装置、及び予兆検知プログラム、
CN105242856B (zh) * 2015-10-29 2019-02-15 维沃移动通信有限公司 一种移动终端多系统间共享数据的方法和移动终端
US11874796B1 (en) 2019-09-27 2024-01-16 Amazon Technologies, Inc. Efficient garbage collection in optimistic multi-writer database systems
US11080262B1 (en) * 2019-09-27 2021-08-03 Amazon Technologies, Inc. Optimistic atomic multi-page write operations in decoupled multi-writer databases
EP3964959A1 (en) * 2020-09-03 2022-03-09 ARM Limited Data processing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
EP0092895B1 (en) * 1982-04-28 1988-05-11 International Computers Limited Data processing system
DE3382152D1 (de) * 1982-12-09 1991-03-07 Sequoia Systems Inc Sicherstellungsspeichersystem.
US4779188A (en) * 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
US4991081A (en) * 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4758951A (en) * 1985-04-09 1988-07-19 Tektronix, Inc. Method for translating virtual addresses into real addresses
US4710870A (en) * 1985-07-10 1987-12-01 Bell Communications Research, Inc. Central computer backup system utilizing localized data bases
US5047917A (en) * 1985-07-12 1991-09-10 The California Institute Of Technology Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
US5060150A (en) * 1987-01-05 1991-10-22 Motorola, Inc. Process creation and termination monitors for use in a distributed message-based operating system

Also Published As

Publication number Publication date
EP0323013B1 (en) 1995-08-30
DE3854384D1 (de) 1995-10-05
EP0323013A3 (en) 1991-03-20
US5197148A (en) 1993-03-23
DE3854384T2 (de) 1996-03-28
BR8806305A (pt) 1989-08-15
EP0323013A2 (en) 1989-07-05
JPH0522259B2 (ja) 1993-03-29

Similar Documents

Publication Publication Date Title
JPH01188965A (ja) データ処理方法
US4480304A (en) Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US4399504A (en) Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US5321841A (en) System for determining the rights of object access for a server process by combining them with the rights of the client process
US6108654A (en) Method and system for locking resources in a computer system
US9996401B2 (en) Task processing method and virtual machine
US5222217A (en) System and method for implementing operating system message queues with recoverable shared virtual storage
US5129084A (en) Object container transfer system and method in an object based computer operating system
US5946711A (en) System for locking data in a shared cache
JP2575543B2 (ja) 同時アクセス管理方法
US4914570A (en) Process distribution and sharing system for multiple processor computer system
JP2575541B2 (ja) 分散キャッシュの階層無効化方法
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
US5598562A (en) System and method for adding new waitable object types to object oriented computer operating system
EP0428006B1 (en) Multilevel locking system and method
US5136712A (en) Temporary object handling system and method in an object based computer operating system
CA2436517C (en) Method and apparatus for data processing
WO1996003704A1 (en) Computer method and apparatus for asynchronous ordered operations
KR20070049155A (ko) 파일 서버 재초기화 장치, 방법 및 컴퓨터 프로그램
JPH0954754A (ja) 疎結合並列処理環境における顧客情報制御システム及び方法
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
EP0747814A1 (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
EP0747812A2 (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
JPH01144152A (ja) データ処理システムの制御方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees