JPH02228744A - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JPH02228744A JPH02228744A JP2007274A JP727490A JPH02228744A JP H02228744 A JPH02228744 A JP H02228744A JP 2007274 A JP2007274 A JP 2007274A JP 727490 A JP727490 A JP 727490A JP H02228744 A JPH02228744 A JP H02228744A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- virtual
- processing
- segment
- message
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2043—Error 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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 maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/825—Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- 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/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99955—Archiving or backup
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、一般に同じ仮想記憶アドレス指定空間を共有
する相互接続された複数の同様なデータ処理装置を含む
仮想記憶データ処理システムに関する。具体的には、本
発明は、メッセージ・キューや、緊密結合されたマルチ
プロセッサ「回復可能共有仮想記憶」データ処理システ
ムにおけるシステム機能などの信頼できる共有データ構
造を実施するシステム及び方法に関する。
する相互接続された複数の同様なデータ処理装置を含む
仮想記憶データ処理システムに関する。具体的には、本
発明は、メッセージ・キューや、緊密結合されたマルチ
プロセッサ「回復可能共有仮想記憶」データ処理システ
ムにおけるシステム機能などの信頼できる共有データ構
造を実施するシステム及び方法に関する。
B、従来の技術
従来技術は、単一スタンドアロン中央演算処理装置(C
PU)を使用したいくつかの仮想記憶データ処理システ
ムを開示している。こうしたシステムは、一般にそれぞ
れJ、バイトのデータを記憶する複数の個別にアドレス
可能な記憶位置をもつ主記憶装置、及びそれぞれ1ブロ
ツクのデータを記憶する複数のブロック・アドレス可能
記憶位置を含むディスク・ファイルなどの2次記憶装置
を使用する。仮想記憶の概念は、ときには1段記憶と呼
ばれるものに関係している。1段記憶では、システムの
最大アドレス範囲が、一般に主記憶装置の実容量よりも
はるかに大きい。主記憶装置は、主記憶装置内のアプリ
ケーション・プログラムが必要とするデータを協働して
保持するベージング機構及び2次記憶装置の使用によっ
て、はるかに大きく見えるようになる。ベージング機構
の機能は、アプリケーション・プログラムによってアド
レスされたページが主記憶装置にないとき、2次記憶装
置から主記憶装置にデータのページを転送することであ
る。これはページ・フォールトと呼ばれる。2次記憶装
置から主記憶装置にデータのページを転送することは、
ページ・フォールト処理と呼ばれる。
PU)を使用したいくつかの仮想記憶データ処理システ
ムを開示している。こうしたシステムは、一般にそれぞ
れJ、バイトのデータを記憶する複数の個別にアドレス
可能な記憶位置をもつ主記憶装置、及びそれぞれ1ブロ
ツクのデータを記憶する複数のブロック・アドレス可能
記憶位置を含むディスク・ファイルなどの2次記憶装置
を使用する。仮想記憶の概念は、ときには1段記憶と呼
ばれるものに関係している。1段記憶では、システムの
最大アドレス範囲が、一般に主記憶装置の実容量よりも
はるかに大きい。主記憶装置は、主記憶装置内のアプリ
ケーション・プログラムが必要とするデータを協働して
保持するベージング機構及び2次記憶装置の使用によっ
て、はるかに大きく見えるようになる。ベージング機構
の機能は、アプリケーション・プログラムによってアド
レスされたページが主記憶装置にないとき、2次記憶装
置から主記憶装置にデータのページを転送することであ
る。これはページ・フォールトと呼ばれる。2次記憶装
置から主記憶装置にデータのページを転送することは、
ページ・フォールト処理と呼ばれる。
従来技術はまた、データ処理能力を増大させるために時
々使用されるいくつかの異なるマルチプロセッサ・シス
テム構成を開示している。マルチプロセッサ・システム
構成は、論理通信チャネルを共有する複数の処理装置と
考えられる。論理通信チャネルは、ある処理装置から別
の処理装置へのメツセージが置かれる、処理装置間で共
有される記憶域の形を取ることがある。さらに、論理通
信チャネルは、メツセージをある処理装置から別の処理
装置に移すための通信ネットワーク(共存バスを含む)
の形を取ることもある。
々使用されるいくつかの異なるマルチプロセッサ・シス
テム構成を開示している。マルチプロセッサ・システム
構成は、論理通信チャネルを共有する複数の処理装置と
考えられる。論理通信チャネルは、ある処理装置から別
の処理装置へのメツセージが置かれる、処理装置間で共
有される記憶域の形を取ることがある。さらに、論理通
信チャネルは、メツセージをある処理装置から別の処理
装置に移すための通信ネットワーク(共存バスを含む)
の形を取ることもある。
緊密結合マルチプロセッサ・システム構成と呼ばれる従
来技術のあるマルチプロセッサ・システム構成では、構
成内の処理装置は、ある量の記憶域を共有し、構成内の
どの処理装置もそれにアクセスできる。ただし、各処理
装置は、その処理装置だけがアクセスできるある量の専
用記憶域をもつこともある。
来技術のあるマルチプロセッサ・システム構成では、構
成内の処理装置は、ある量の記憶域を共有し、構成内の
どの処理装置もそれにアクセスできる。ただし、各処理
装置は、その処理装置だけがアクセスできるある量の専
用記憶域をもつこともある。
緊密結合マルチプロセッサ構成で配置されたコンピュー
タ・システムは、共有記憶域を介して高速通信ができる
という利点を有し、また共有記憶域をディスク・キャッ
シュとしても利用することができる。ページ・フォール
トが発生するのは、緊密結合マルチプロセッサ構成の処
理装置の1つで実行中のアプリケージ式ン・プログラム
が、主記憶装置にないデータ・ページをアドレスすると
きである。ページ・フォールト処理中に、その構成に接
続された適切な2次記憶装置が、適切なデータ・ページ
を共存記憶域に入れるように指令される。そのデータ・
ページが共有記憶域に入れられると、構成内のどの処理
装置もそれにアドレスできる。
タ・システムは、共有記憶域を介して高速通信ができる
という利点を有し、また共有記憶域をディスク・キャッ
シュとしても利用することができる。ページ・フォール
トが発生するのは、緊密結合マルチプロセッサ構成の処
理装置の1つで実行中のアプリケージ式ン・プログラム
が、主記憶装置にないデータ・ページをアドレスすると
きである。ページ・フォールト処理中に、その構成に接
続された適切な2次記憶装置が、適切なデータ・ページ
を共存記憶域に入れるように指令される。そのデータ・
ページが共有記憶域に入れられると、構成内のどの処理
装置もそれにアドレスできる。
しかし、構成内の処理装置間での共有記憶域に対するア
クセスの競合が、ディスク・キャッシュとして使用する
際に共有記憶域がもたらす利点を上回るとき、緊密結合
マルチプロセッサ構成の実際上の限界に達する。たとえ
ば、構成内のある処理装置が、同じデータ・ページの内
容の検査を試みている間に、他の処理装置がデータ・ペ
ージの内容を変更しようと試みることがある。通常は、
この構成に、2つの処理装置にデータが一貫したビュー
で見えるように、一方の処理装置のために他方の処理装
置を締め出す何らかの機構を設けなければならない。緊
密結合マルチプロセッサ構成内の処理装置に一貫したデ
ータのビューを押しつける様々な方法が従来技術には存
在する。
クセスの競合が、ディスク・キャッシュとして使用する
際に共有記憶域がもたらす利点を上回るとき、緊密結合
マルチプロセッサ構成の実際上の限界に達する。たとえ
ば、構成内のある処理装置が、同じデータ・ページの内
容の検査を試みている間に、他の処理装置がデータ・ペ
ージの内容を変更しようと試みることがある。通常は、
この構成に、2つの処理装置にデータが一貫したビュー
で見えるように、一方の処理装置のために他方の処理装
置を締め出す何らかの機構を設けなければならない。緊
密結合マルチプロセッサ構成内の処理装置に一貫したデ
ータのビューを押しつける様々な方法が従来技術には存
在する。
こうした従来技術の方法は、他方の処理装置が共有記憶
域へのアクセスを完了するまで、構成内の一方の処理装
置を遊ばせるものである。遊んでない処理装置は遊休状
態であり得す、育苗な作業を実行する。したがって、共
有記憶域に対するアクセスの競合の結果、構成を全体と
して考えるとき、不可避的に構成の処理能力が若干失わ
れる。
域へのアクセスを完了するまで、構成内の一方の処理装
置を遊ばせるものである。遊んでない処理装置は遊休状
態であり得す、育苗な作業を実行する。したがって、共
有記憶域に対するアクセスの競合の結果、構成を全体と
して考えるとき、不可避的に構成の処理能力が若干失わ
れる。
これらの理由から単一の緊密結合マルチプロセッサ構成
内の処理装置の数が6台を超えることは稀である。
内の処理装置の数が6台を超えることは稀である。
緊密結合または「クラスタ式」マルチプロセッサ構成と
呼ばれる従来技術のあるマルチプロセッサ・システム構
成では、複数の処理装置が通信ネットワークを介して接
続され、各処理装置は直接それ自体の記憶装置にアクセ
スし、他のどの処理装置もその記憶装置にアクセスでき
ない。緊密結合マルチプロセッサ構成内の処理装置は、
通信ネットワークを介して構成内の他の処理装置にメツ
セージを送ることにより、データを共有できる。
呼ばれる従来技術のあるマルチプロセッサ・システム構
成では、複数の処理装置が通信ネットワークを介して接
続され、各処理装置は直接それ自体の記憶装置にアクセ
スし、他のどの処理装置もその記憶装置にアクセスでき
ない。緊密結合マルチプロセッサ構成内の処理装置は、
通信ネットワークを介して構成内の他の処理装置にメツ
セージを送ることにより、データを共有できる。
緊密結合マルチプロセッサ構成のある変形では、構成内
の処理装置の1つが共存記憶処理装置として動作する。
の処理装置の1つが共存記憶処理装置として動作する。
共有記憶処理装置に接続された主記憶装置は、共有記憶
処理装置によって管理されるディスク・キャッシュとし
て使用される。共有記憶処理装置には、他の処理装置の
どれが、どの時点でどんな条件下で共存記憶域のどの区
域にアクセスできるかを制御する機能も指定されている
。
処理装置によって管理されるディスク・キャッシュとし
て使用される。共有記憶処理装置には、他の処理装置の
どれが、どの時点でどんな条件下で共存記憶域のどの区
域にアクセスできるかを制御する機能も指定されている
。
最近では、従来技術は、スタンドアロンのパーソナル・
コンピュータまたはスタンドアロンのエンジニアリング
・ワーク・ステージ1ンをローカル・エリア・ネットワ
ークに構成し始めた。こうした構成、いわゆる柔軟結合
マルチプロセッサ構成または分散システム構成では、ど
のワーク・ステーシロンも標準の通信プロトコルを用い
て他のワーク・ステーションと通信できる。こうした柔
軟結合構成を確立するための動機は、必ずしもより高い
データ処理能力ではなく、非電子にではなく電子的に情
報を交換する便宜のためにすぎない。
コンピュータまたはスタンドアロンのエンジニアリング
・ワーク・ステージ1ンをローカル・エリア・ネットワ
ークに構成し始めた。こうした構成、いわゆる柔軟結合
マルチプロセッサ構成または分散システム構成では、ど
のワーク・ステーシロンも標準の通信プロトコルを用い
て他のワーク・ステーションと通信できる。こうした柔
軟結合構成を確立するための動機は、必ずしもより高い
データ処理能力ではなく、非電子にではなく電子的に情
報を交換する便宜のためにすぎない。
しかし、多くの状況では、個々のワーク・ステーション
が同じオペレーテング・システムを走行させることが見
られる。
が同じオペレーテング・システムを走行させることが見
られる。
1986年の第5回分散コンピユーテイング原理に関す
る計算機シンポジウム年金(5th AnnualAs
socfatfon for Computing M
achinery Symposiumon Pr1
nciples of Distributing
Computing) で提出された、カイ・’
J −(Kai Li)及びボール・フダク(Paul
Hudak)の論文「共有仮想記憶システムにおける
メモリの整合性(Memory Coherencei
n 5hared Virtual Storage
Systems) Jは1クラスタ式構成で相互接続さ
れた複数の仮想メモリ・データ処理装置を開示している
。この構成では、すべての装置が同じオペレーティング
・システムを有し、同じ仮想アドレス空間をアドレスす
る。
る計算機シンポジウム年金(5th AnnualAs
socfatfon for Computing M
achinery Symposiumon Pr1
nciples of Distributing
Computing) で提出された、カイ・’
J −(Kai Li)及びボール・フダク(Paul
Hudak)の論文「共有仮想記憶システムにおける
メモリの整合性(Memory Coherencei
n 5hared Virtual Storage
Systems) Jは1クラスタ式構成で相互接続さ
れた複数の仮想メモリ・データ処理装置を開示している
。この構成では、すべての装置が同じオペレーティング
・システムを有し、同じ仮想アドレス空間をアドレスす
る。
各装置は、異なる1組のファイルを所有し、それらのフ
ァイルはその所有装置の記憶システムに記憶される。ア
プリケージ1ン・プログラムを走行させる非所有装置は
、適切な通信リンクを介して他の装置の記憶システムへ
のアクセスを獲得して、ファイル所存装置に仮想データ
・ページを要求し、それが要求側に戻される。したがっ
て、クラスタ式構成内の各処理装置は、その仮想記憶シ
ステム中の1組のファイルを構成内の他の装置と共有す
る。
ァイルはその所有装置の記憶システムに記憶される。ア
プリケージ1ン・プログラムを走行させる非所有装置は
、適切な通信リンクを介して他の装置の記憶システムへ
のアクセスを獲得して、ファイル所存装置に仮想データ
・ページを要求し、それが要求側に戻される。したがっ
て、クラスタ式構成内の各処理装置は、その仮想記憶シ
ステム中の1組のファイルを構成内の他の装置と共有す
る。
ACM Transactions on Compu
ting Systems 4(2)、1988年5
月刊に発表されたR、フィツジェラルド(Fitzge
rald)及びR,F、ラシード(Rashid)
の論文「アクセントにおける仮想メモリ管理の統合及び
処理量通信(The Integrationof V
irtual Memory Management
and InterprocessComn+unic
ation in Accent) Jは1カーネギ−
1メロン大学で開発されたアクセント・オペレーティン
グ・システムを記載している。アクセント・オペレーテ
ィング・システムは、カーネル働サービスを実施するた
め、大容量データ転送でデータ・コピーではなく記憶マ
ツピング技術を使用するように、仮想記憶管理とカーネ
ル内の処理量通信を統合する。
ting Systems 4(2)、1988年5
月刊に発表されたR、フィツジェラルド(Fitzge
rald)及びR,F、ラシード(Rashid)
の論文「アクセントにおける仮想メモリ管理の統合及び
処理量通信(The Integrationof V
irtual Memory Management
and InterprocessComn+unic
ation in Accent) Jは1カーネギ−
1メロン大学で開発されたアクセント・オペレーティン
グ・システムを記載している。アクセント・オペレーテ
ィング・システムは、カーネル働サービスを実施するた
め、大容量データ転送でデータ・コピーではなく記憶マ
ツピング技術を使用するように、仮想記憶管理とカーネ
ル内の処理量通信を統合する。
共有仮想記憶域を使用するマルチプロセッサ・システム
では、2つの広く見られる問題がある。
では、2つの広く見られる問題がある。
1つは、部分的障害の発生、及びその結果生じるシステ
ムによる信頼性のレベルである。もう1つの問題は、そ
のサービスを分散するためにカーネル内で必要な専用コ
ードがより複雑になり、その量が増えることである。
ムによる信頼性のレベルである。もう1つの問題は、そ
のサービスを分散するためにカーネル内で必要な専用コ
ードがより複雑になり、その量が増えることである。
単一プロセッサ・システムが「崩壊」シ、または障害を
起こすと、システムによって供給されるサービスとサー
ビスのユーザが共に崩壊して、全体的障害が起こる。分
散構成では、1つのプロセッサが崩壊しても、他のプロ
セッサはそのままであり、崩壊したプロセッサによって
提供されるサービスが障害を生じたことをそれらのユー
ザが知って、部分的障害が発生する。有益な作業を再開
するには、システムはまずそれ自体を一貫した状態にし
なければならないが、これは困難な課題である。その結
果、大半のマルチプロセッサ・オペレーティング・シス
テムは、1981年12月の第8回オペレーティング・
システムの原理に関するシンポジウムの報告集(Pro
ceedings of the EighthSy+
+posium On Operating Syst
em Pr1nciplts)で発表されたJ、F、パ
ートレット(Bart 1ett )の論文「非停止カ
ーネル(Won−Stop Kernel) Jで論じ
られているように、最初から(または検査点から)影響
を受けたアプリケーションを「殺し」で再開するか、あ
るいはアプリケーションまたはサブシステムあるいはそ
の両方がそれら自体の部分的障害を処理しようとしてい
ると仮定し、したがって、はとんどまたはまったく援助
を行なわないかのどちらかである。クラスタ式システム
の1つの目標は、透過性である。すなわち、ユーザ及び
アプリケ−シロン・プログラムが、複数のプロセッサ・
ユニットが存在することを知る必要がないようにするこ
とである。したがって、クラスタ式システムにおける部
分的障害の効果を排除または最小にするための処置を講
じなければならない。
起こすと、システムによって供給されるサービスとサー
ビスのユーザが共に崩壊して、全体的障害が起こる。分
散構成では、1つのプロセッサが崩壊しても、他のプロ
セッサはそのままであり、崩壊したプロセッサによって
提供されるサービスが障害を生じたことをそれらのユー
ザが知って、部分的障害が発生する。有益な作業を再開
するには、システムはまずそれ自体を一貫した状態にし
なければならないが、これは困難な課題である。その結
果、大半のマルチプロセッサ・オペレーティング・シス
テムは、1981年12月の第8回オペレーティング・
システムの原理に関するシンポジウムの報告集(Pro
ceedings of the EighthSy+
+posium On Operating Syst
em Pr1nciplts)で発表されたJ、F、パ
ートレット(Bart 1ett )の論文「非停止カ
ーネル(Won−Stop Kernel) Jで論じ
られているように、最初から(または検査点から)影響
を受けたアプリケーションを「殺し」で再開するか、あ
るいはアプリケーションまたはサブシステムあるいはそ
の両方がそれら自体の部分的障害を処理しようとしてい
ると仮定し、したがって、はとんどまたはまったく援助
を行なわないかのどちらかである。クラスタ式システム
の1つの目標は、透過性である。すなわち、ユーザ及び
アプリケ−シロン・プログラムが、複数のプロセッサ・
ユニットが存在することを知る必要がないようにするこ
とである。したがって、クラスタ式システムにおける部
分的障害の効果を排除または最小にするための処置を講
じなければならない。
独立したプロセッサからなるクラスタ式システムでは、
通信が必ず必要であり、したがってプロトコルが必要に
なり、特殊な処理及び他の関連機能が設けられることも
ある。特殊機能の必要性をなりシ、あるいは減少させる
単一の機構が見つかったなら、現在は分散されているシ
ステム・サービスの実施が単純になり、各特殊機能に努
力を注ぐのではなく、基礎となる機構を最適化すること
が可能になる。
通信が必ず必要であり、したがってプロトコルが必要に
なり、特殊な処理及び他の関連機能が設けられることも
ある。特殊機能の必要性をなりシ、あるいは減少させる
単一の機構が見つかったなら、現在は分散されているシ
ステム・サービスの実施が単純になり、各特殊機能に努
力を注ぐのではなく、基礎となる機構を最適化すること
が可能になる。
従来技術の分散データ処理システムでは、特定の機能を
必要とするシステム内の1つのl i カ、分散システ
ム内の他の処理装置に自分のために仕事を実行するよう
要求することは普通であった。
必要とするシステム内の1つのl i カ、分散システ
ム内の他の処理装置に自分のために仕事を実行するよう
要求することは普通であった。
実際には、1つのプロセッサが、その特定の作業機能を
指定されたシステム内の異なるプロセッサ・ユニットに
サービス要求を発送し、したがって、その仕事を実行す
るのに利用できる必要なデータ構造を持っていた。こう
した「機能発送」実施態様は、複雑なコード構造の使用
を必要とし、したがって部分的障害からの回復が困難で
あった。
指定されたシステム内の異なるプロセッサ・ユニットに
サービス要求を発送し、したがって、その仕事を実行す
るのに利用できる必要なデータ構造を持っていた。こう
した「機能発送」実施態様は、複雑なコード構造の使用
を必要とし、したがって部分的障害からの回復が困難で
あった。
さらに、従来技術で開示された柔軟結合マイクロプロセ
ッサ構成は、従来、個々のプロセッサ・ユニット上で走
行する個々のカーネルが、サービス要求を含むメツセー
ジを、構成全体の共存資源を管理する構成内の他のプロ
セッサ・ユニットに送るという、メツセージ・バス通信
モデルの周囲で設計されていた。こうしたメツセージ・
バス・モデルに頼るのは、疑いもなく、メツセージ・バ
スが、当然のことながら処理装置間の基礎的通信接続に
対応するからである。
ッサ構成は、従来、個々のプロセッサ・ユニット上で走
行する個々のカーネルが、サービス要求を含むメツセー
ジを、構成全体の共存資源を管理する構成内の他のプロ
セッサ・ユニットに送るという、メツセージ・バス通信
モデルの周囲で設計されていた。こうしたメツセージ・
バス・モデルに頼るのは、疑いもなく、メツセージ・バ
スが、当然のことながら処理装置間の基礎的通信接続に
対応するからである。
メツセージ・バス実施態様で複雑なデータ構造を共有す
るのが難しいことは周知であり、ACMTransac
tions on Programming Lang
uage SystemsVol、4、No、4 (1
982年10月)に発表されたM、ヘルリヒ(Herl
ihy)及びB、リスコツ(Lfskov )の論文「
抽象データ形式用の値伝送方法(A Value Tr
ansmission Method forAbst
ract Data Types) Jに記載されてい
る。上記論文を引用により°本明細書に合体する。メツ
セージ・バス・モデルの難点は、1981年5月にカー
ネギ−・メロン大学から出版されたB、ネルソン(He
lson)の博士論文「遠隔プロシージャ呼出しくRe
mote Procedure Ca1l) Jに論じ
られている@上記論文も引用により本明細書に合体する
。
るのが難しいことは周知であり、ACMTransac
tions on Programming Lang
uage SystemsVol、4、No、4 (1
982年10月)に発表されたM、ヘルリヒ(Herl
ihy)及びB、リスコツ(Lfskov )の論文「
抽象データ形式用の値伝送方法(A Value Tr
ansmission Method forAbst
ract Data Types) Jに記載されてい
る。上記論文を引用により°本明細書に合体する。メツ
セージ・バス・モデルの難点は、1981年5月にカー
ネギ−・メロン大学から出版されたB、ネルソン(He
lson)の博士論文「遠隔プロシージャ呼出しくRe
mote Procedure Ca1l) Jに論じ
られている@上記論文も引用により本明細書に合体する
。
それとは対照的に、緊密結合マイクロプロセッサ構成用
の従来技術のオペレーティング・システムは、従来より
メツセージ・バス・モデルの周りで実施されていなかっ
た。そうではなくて、構成内の処理装置が、ある量の主
記憶域を共有し、カーネルが主記憶装置内の複雑なデー
タ構造を共有し、こうした構造を指すポインタだけをカ
ーネル間でバスする。元々単一プロセッサ用に開発され
たオペレーティング・システムを、書き直すのではなく
、直列化領域とキャッシュの整合性に若干の修正を加え
て修正する七、それがこうした緊密結合マルチプロセッ
サ構成で効率的に実行されることは自明である。メツセ
ージ−バス・モデルの周りに構成されたオペレーティン
グ・システムを、こうした緊密結合マルチプロセッサ構
成で実行されるように修正するのは、異常かつ困難であ
る。
の従来技術のオペレーティング・システムは、従来より
メツセージ・バス・モデルの周りで実施されていなかっ
た。そうではなくて、構成内の処理装置が、ある量の主
記憶域を共有し、カーネルが主記憶装置内の複雑なデー
タ構造を共有し、こうした構造を指すポインタだけをカ
ーネル間でバスする。元々単一プロセッサ用に開発され
たオペレーティング・システムを、書き直すのではなく
、直列化領域とキャッシュの整合性に若干の修正を加え
て修正する七、それがこうした緊密結合マルチプロセッ
サ構成で効率的に実行されることは自明である。メツセ
ージ−バス・モデルの周りに構成されたオペレーティン
グ・システムを、こうした緊密結合マルチプロセッサ構
成で実行されるように修正するのは、異常かつ困難であ
る。
関連の米国特許出願第07/126820号には、共有
仮想記憶緊密結合マルチプロセッサ・データ処理システ
ムにおける「回復可能共を仮想記憶(R8VS)Jまた
は「クラスタ式」記憶の新規なシステム及び方法が開示
されている。こうしたシステムは、トランザクションの
打切りによるデータの損失を最小にする新規な方法を利
用することによって、水平成長も可能な「高可用性」デ
ータ処理システムを提供するという目標を達成する。
仮想記憶緊密結合マルチプロセッサ・データ処理システ
ムにおける「回復可能共を仮想記憶(R8VS)Jまた
は「クラスタ式」記憶の新規なシステム及び方法が開示
されている。こうしたシステムは、トランザクションの
打切りによるデータの損失を最小にする新規な方法を利
用することによって、水平成長も可能な「高可用性」デ
ータ処理システムを提供するという目標を達成する。
水平成長とは、プロセッサ・ユニットをクラスタ式シス
テムに追加して、1組のプログラムを処理する時間が短
縮される、あるいはシステムの応答時間を大幅に拡張す
ることなく、より多くのプログラムが同時に処理可能に
なるという意味で、高性能を実現することであると定義
できる。
テムに追加して、1組のプログラムを処理する時間が短
縮される、あるいはシステムの応答時間を大幅に拡張す
ることなく、より多くのプログラムが同時に処理可能に
なるという意味で、高性能を実現することであると定義
できる。
「トランザクション」とは、クラスタ式構成内の処理装
置間で共有される仮想記憶域に記憶されたデータを更新
するアプリケ−シロン・プログラムによって実行される
、作業単位である。トランザクションは、クラスタ式構
成内の単一処理装置上で唯一プログラムを走行させる単
一処理の実行のスレッドの下で走行する。上記の関連特
許出願で開示された新規なシステムは、1つのプロセッ
サによって実行される識別されたトランザクションの影
響を受けるデータ構造のコピーを維持し、トランザクシ
ョンがコミットされたとき、異なるプロセッサ上にある
コピーの更新だけを行なう。
置間で共有される仮想記憶域に記憶されたデータを更新
するアプリケ−シロン・プログラムによって実行される
、作業単位である。トランザクションは、クラスタ式構
成内の単一処理装置上で唯一プログラムを走行させる単
一処理の実行のスレッドの下で走行する。上記の関連特
許出願で開示された新規なシステムは、1つのプロセッ
サによって実行される識別されたトランザクションの影
響を受けるデータ構造のコピーを維持し、トランザクシ
ョンがコミットされたとき、異なるプロセッサ上にある
コピーの更新だけを行なう。
したがって、トランザクションの開始時に存、在した通
りの情報が他のプロセッサに記憶されたコピー中で利用
可能なので、何らかの理由で打ち切らなければならなか
ったトランザクシリンが再試行できる。
りの情報が他のプロセッサに記憶されたコピー中で利用
可能なので、何らかの理由で打ち切らなければならなか
ったトランザクシリンが再試行できる。
上記の関連特許出願は、ある形の共有仮想記憶域を使用
し、原子的直列化更新意味論を実現し、読み書き直列化
可能性とも呼ばれる第3度の整合性をもたらす、IBM
AIXオペレーティング・システム(AIXはIB
Mコーポレーションの登録商標)に基づく本発明の実施
態様を開示している。トランザクションは、所与のトラ
ンザクションによる変更がすべて見えるようになるか、
またはまったく見えないようになり、トランザクション
がコミットされるまでいつでもすべての変更をアントウ
ーすることが可能であるという点で原子的である。トラ
ンザクションは、上記の関連特許出願に記載されたハー
ドウェア・ロッキング・サポートにより、複数のトラン
ザクションが「同時に」実行されることがあっても、そ
の結果は、トランザクションがある順序で順次実行され
た場合と同じになるという点で、直列化可能である。
し、原子的直列化更新意味論を実現し、読み書き直列化
可能性とも呼ばれる第3度の整合性をもたらす、IBM
AIXオペレーティング・システム(AIXはIB
Mコーポレーションの登録商標)に基づく本発明の実施
態様を開示している。トランザクションは、所与のトラ
ンザクションによる変更がすべて見えるようになるか、
またはまったく見えないようになり、トランザクション
がコミットされるまでいつでもすべての変更をアントウ
ーすることが可能であるという点で原子的である。トラ
ンザクションは、上記の関連特許出願に記載されたハー
ドウェア・ロッキング・サポートにより、複数のトラン
ザクションが「同時に」実行されることがあっても、そ
の結果は、トランザクションがある順序で順次実行され
た場合と同じになるという点で、直列化可能である。
A CM Transaction on Comp
uting Systems)1988年2月号に発表
されたA、チャン(Chang)及びM6メルゲン(M
ergen) の論文「801記憶装置:アーキテク
チャ及びプログラミング(801Storage :
Architecture andProgrammi
ng) Jは、「データベース記憶域」という概念を記
載している。R8VSまたはクラスタ式記憶装置につい
て理解するには、データベース記憶域について若干理解
するのが有用である。
uting Systems)1988年2月号に発表
されたA、チャン(Chang)及びM6メルゲン(M
ergen) の論文「801記憶装置:アーキテク
チャ及びプログラミング(801Storage :
Architecture andProgrammi
ng) Jは、「データベース記憶域」という概念を記
載している。R8VSまたはクラスタ式記憶装置につい
て理解するには、データベース記憶域について若干理解
するのが有用である。
ファイルやデータ構造などのオブジェクトは、仮想記憶
セグメントにマツプされる。オブジェクトのすべてのユ
ーザは、当然のことながら共有可能な、同じ仮想アドレ
スでそれにアクセスする。
セグメントにマツプされる。オブジェクトのすべてのユ
ーザは、当然のことながら共有可能な、同じ仮想アドレ
スでそれにアクセスする。
1つまたは複数のこうしたオブジェクトに対する動作が
、トランザクションとして行なわれる。トランザクショ
ンは、データベース記憶域にアクセスするとき、必要に
応じて記憶域に対する読取りロックまたは書込みロック
を暗示的に獲得する。
、トランザクションとして行なわれる。トランザクショ
ンは、データベース記憶域にアクセスするとき、必要に
応じて記憶域に対する読取りロックまたは書込みロック
を暗示的に獲得する。
そのロックが他のトランザクションの保持するロックと
衝突する場合、そのトランザクションは待たされる。最
終的に、そのトランザクションは終了し、コミットまた
はアントウーを呼び出すことによって完了する。前者の
場合は、トランザクションの更新が2次記憶装置への書
込みによって永続的になるが、後者の場合は、その更新
は廃棄される。どちらの場合も、ロックは解除され、そ
れを待っていた処理があれば続行できるようになる。
衝突する場合、そのトランザクションは待たされる。最
終的に、そのトランザクションは終了し、コミットまた
はアントウーを呼び出すことによって完了する。前者の
場合は、トランザクションの更新が2次記憶装置への書
込みによって永続的になるが、後者の場合は、その更新
は廃棄される。どちらの場合も、ロックは解除され、そ
れを待っていた処理があれば続行できるようになる。
しかし、データベース記憶域とは違って、回復可能共有
仮想記憶域(R8VS)は、計算データを記憶するよう
に設計されている。このデータは、クラスタ全体が崩壊
する場合には必要でなく、システムが動作を開始し継続
するときに構成される。
仮想記憶域(R8VS)は、計算データを記憶するよう
に設計されている。このデータは、クラスタ全体が崩壊
する場合には必要でなく、システムが動作を開始し継続
するときに構成される。
回復共有仮想記憶域(R8VS)は、クラスタ全体が崩
壊する場合には必要とされない計算データを記憶するよ
うに設計される。すなわち、変更が見えるようになると
き、それらは、データベース記憶域に対する変更のよう
に2次記憶装置に書き込まれることはない。少なくとも
2つのページ・コピーがクラスタ中の様々なプロセラ・
す内に存在している限り、そのデータ・ページは回復可
能である。
壊する場合には必要とされない計算データを記憶するよ
うに設計される。すなわち、変更が見えるようになると
き、それらは、データベース記憶域に対する変更のよう
に2次記憶装置に書き込まれることはない。少なくとも
2つのページ・コピーがクラスタ中の様々なプロセラ・
す内に存在している限り、そのデータ・ページは回復可
能である。
上記の関連特許出願はまた、ファイル構造、すなわち、
トランザクションがコミットされるときに2次記憶装置
に書き込まれる構造に基づ〈実施態様も開示している。
トランザクションがコミットされるときに2次記憶装置
に書き込まれる構造に基づ〈実施態様も開示している。
上記特許出願は、部分的障害の場合、または2次記憶装
置に書き込まれていないデータ構造に対して、回復可能
共有仮想記憶域(R8VS)を適用して「共有データ構
造」の回復可能性を確保する方法は扱っていない。
置に書き込まれていないデータ構造に対して、回復可能
共有仮想記憶域(R8VS)を適用して「共有データ構
造」の回復可能性を確保する方法は扱っていない。
共有データ構造には、メッセージ・キュー、セマフォア
、共有メモリ・セグメントなどの処理量通信(IPS)
機構用のデータ構造、並びにコア内iノード表、オーブ
ン・ファイル表、(局所ディレクトリ用及び遠隔ディレ
クトリ用の)ディレクトリ・キャッシュなどのファイル
・システム・データ構造、及びSNA接続表などのサブ
システム大域データが含まれる。
、共有メモリ・セグメントなどの処理量通信(IPS)
機構用のデータ構造、並びにコア内iノード表、オーブ
ン・ファイル表、(局所ディレクトリ用及び遠隔ディレ
クトリ用の)ディレクトリ・キャッシュなどのファイル
・システム・データ構造、及びSNA接続表などのサブ
システム大域データが含まれる。
メッセージ・キューは、UNIX (AT&Tベル研究
所の登録商標)オペレーティング・システムに基づくオ
ペレーティング・システム、またはそれから誘導された
オペレーティング・システムでの処理量通信に有用な機
構をもたらす。処理は、まずメッセージ・キューを作成
し、そのキューを用いてメツセージを交換することによ
り通信できる。この機構を使用するため、1組のシステ
ム・コールが設けられている。
所の登録商標)オペレーティング・システムに基づくオ
ペレーティング・システム、またはそれから誘導された
オペレーティング・システムでの処理量通信に有用な機
構をもたらす。処理は、まずメッセージ・キューを作成
し、そのキューを用いてメツセージを交換することによ
り通信できる。この機構を使用するため、1組のシステ
ム・コールが設けられている。
メツセージ・キュ一実施態様に関連する最近の従来技術
の開発は、異なる手法を取っている。UNIXの開発は
主に、AT&Tによる「システムV」と呼ばれる仕事及
び、カリフォルニア大学バークレー校による「バークレ
ー」と呼ばれる仕事が中心であった。どちらのバージロ
ンも、ある形の処理量通信が組み込まれている。バーク
レーは「データ・ダラム」及び「仮想クラスタ」と呼ば
れるIPCの2つのバージロンを提供しており、そのど
ちらも「ソケット」という概念に基づいている。198
6年2月にCommunications of th
eACMに発表されたB、D、フライシs (Flei
sch)の論文rLOcUsにおける分散システムVI
PC:設計と実施の回想(Distributed S
ystem VIPCin LOCLIS: A De
sign and ImplementationRe
trospective) Jによると、「バークレー
IPCは「長距離」環境に最適である」。他方、[シス
テムVJIPCは、計算の単一システム・イメージが得
られるように作成されている。具体的には、上記の論文
は、システムV IPCの分散を記載している。LO
GUSシステムでは、たとえば、異なるプロセッサ上で
走行する処理間でメッセージ・キューを共有することが
可能である。しかし、プロセッサの1つが崩壊した場合
、そのプロセッサ上のキュー中のメツセージが失われる
。ただし、そのキューの識別は失われない。すなわち、
部分的障害の場合には、分散システムの存在が、生き残
った処理に見えるようになる。障害に出会ったときメッ
セージ・キューを回復可能にするため、LOCUSシス
テムでは特別の処置を講じている。
の開発は、異なる手法を取っている。UNIXの開発は
主に、AT&Tによる「システムV」と呼ばれる仕事及
び、カリフォルニア大学バークレー校による「バークレ
ー」と呼ばれる仕事が中心であった。どちらのバージロ
ンも、ある形の処理量通信が組み込まれている。バーク
レーは「データ・ダラム」及び「仮想クラスタ」と呼ば
れるIPCの2つのバージロンを提供しており、そのど
ちらも「ソケット」という概念に基づいている。198
6年2月にCommunications of th
eACMに発表されたB、D、フライシs (Flei
sch)の論文rLOcUsにおける分散システムVI
PC:設計と実施の回想(Distributed S
ystem VIPCin LOCLIS: A De
sign and ImplementationRe
trospective) Jによると、「バークレー
IPCは「長距離」環境に最適である」。他方、[シス
テムVJIPCは、計算の単一システム・イメージが得
られるように作成されている。具体的には、上記の論文
は、システムV IPCの分散を記載している。LO
GUSシステムでは、たとえば、異なるプロセッサ上で
走行する処理間でメッセージ・キューを共有することが
可能である。しかし、プロセッサの1つが崩壊した場合
、そのプロセッサ上のキュー中のメツセージが失われる
。ただし、そのキューの識別は失われない。すなわち、
部分的障害の場合には、分散システムの存在が、生き残
った処理に見えるようになる。障害に出会ったときメッ
セージ・キューを回復可能にするため、LOCUSシス
テムでは特別の処置を講じている。
キューは、一義的「ハンドル」によって参照される。ハ
ンドルの値には、識別子及び「ブート・カウント」すな
わちシステムが起動した回数が含まれ、それらは、ハン
ドルが使用されるときに検査される。ハンドルを割当て
て指定する「ネーム・サーバ」が常に利用可能でなけれ
ばならないので、最初のハンドルが障害を起こした場合
に第2のハンドルを起動させる機構が、オペレーティン
グ・システムのカーネル内に存在する。
ンドルの値には、識別子及び「ブート・カウント」すな
わちシステムが起動した回数が含まれ、それらは、ハン
ドルが使用されるときに検査される。ハンドルを割当て
て指定する「ネーム・サーバ」が常に利用可能でなけれ
ばならないので、最初のハンドルが障害を起こした場合
に第2のハンドルを起動させる機構が、オペレーティン
グ・システムのカーネル内に存在する。
ネーム・サーバとカーネルは通信しなければならず、そ
れは区別されたキューを介して行なわれる。メツセージ
は、通常の機構を用いてカーネルからネーム・サーバに
送られる。ネーム・サーバからの返答は、カーネルによ
って傍受される。カーネルは、区別されたキューのハン
ドルを認識し、ネーム・サーバのマシンからの返答をそ
のタライアンドが存在するマシンに経路設定する。ネー
ム・サーバを含むプロセッサ・ユニットが崩壊すると、
新しいネーム会サーバ・プロセッサ中ユニットが選ばれ
る。ネーム・サーバのデータベースの複数の部分が、ク
ラスタ内の各プロセッサ・ユニットで複製されており、
新しいネーム・サーバはデータベース全体を再構築し、
生き残ったプロセッサ・ユニットにボーりングすること
により、障害を起こしたプロセッサ・ユニットにあった
ものを再構築する。これは、かなり複雑で長ったらしい
手順である。また、障害を起こしたプロセッサ・ユニッ
トに存在したキューだけが失われることに留意されたい
。
れは区別されたキューを介して行なわれる。メツセージ
は、通常の機構を用いてカーネルからネーム・サーバに
送られる。ネーム・サーバからの返答は、カーネルによ
って傍受される。カーネルは、区別されたキューのハン
ドルを認識し、ネーム・サーバのマシンからの返答をそ
のタライアンドが存在するマシンに経路設定する。ネー
ム・サーバを含むプロセッサ・ユニットが崩壊すると、
新しいネーム会サーバ・プロセッサ中ユニットが選ばれ
る。ネーム・サーバのデータベースの複数の部分が、ク
ラスタ内の各プロセッサ・ユニットで複製されており、
新しいネーム・サーバはデータベース全体を再構築し、
生き残ったプロセッサ・ユニットにボーりングすること
により、障害を起こしたプロセッサ・ユニットにあった
ものを再構築する。これは、かなり複雑で長ったらしい
手順である。また、障害を起こしたプロセッサ・ユニッ
トに存在したキューだけが失われることに留意されたい
。
C0発明が解決しようとする課題
上記の機構は、あるレベルの信頼性を提供するのには有
効であるが、ずっと高い信頼性をもつシステムが望まれ
ている。特に、より高い信頼性を提供するために複雑な
1組の専用機構゛を必要としないシステムが望まれてい
る。したがって、プロセッサ障害の場合にデータ構造の
存在を保持するだけでなく、障害時にデータ構造内で任
意のデータをもセーブする、メッセージ・キューなどの
共有データ構造を実施するための機構を開発することが
望ましい。具体的には、回復可能仮想記憶域(R8VS
)の概念をメッセージ・キュー及びその他の共有データ
構造の実施態様に適合させることにより、極めて信頼・
性の高いある形のデータ構造を実施することが望ましい
。そうすると、より高い信頼性を達成するために、個々
のデータ構造用の特殊な機構を実施する必要はなくなる
。
効であるが、ずっと高い信頼性をもつシステムが望まれ
ている。特に、より高い信頼性を提供するために複雑な
1組の専用機構゛を必要としないシステムが望まれてい
る。したがって、プロセッサ障害の場合にデータ構造の
存在を保持するだけでなく、障害時にデータ構造内で任
意のデータをもセーブする、メッセージ・キューなどの
共有データ構造を実施するための機構を開発することが
望ましい。具体的には、回復可能仮想記憶域(R8VS
)の概念をメッセージ・キュー及びその他の共有データ
構造の実施態様に適合させることにより、極めて信頼・
性の高いある形のデータ構造を実施することが望ましい
。そうすると、より高い信頼性を達成するために、個々
のデータ構造用の特殊な機構を実施する必要はなくなる
。
00課題を解決するための手段
本発明は、緊密結合マルチプロセッサ回復可能共存仮想
記憶(R8VS)データ処理システムにおいて、メッセ
ージ・キューなどシステム全体にわたる共有データ構造
の信頼性を確保するためのシステムと方法を提供するも
のである。上記のデータ処理システムでは、複数のプロ
セッサはそれぞれ仮想機構域を共存し、同じ仮想記憶ア
ドレスにより複数の記憶セグメントのそれぞれにアクセ
スできる。このシステムは、様々なプロセッサ上で各ペ
ージのコピーを少なくとも2つ保持し、これらのコピー
は、こうしたページを修正するトランザクションの完了
後に初めて更新される。これらのコピーは、実際には、
こうしたシステム内で同時に更新され、一方のプロセッ
サは、所与のデータ構造に対するリード・プロセッサと
呼ばれ、他方のプロセッサはこうしたデータ構造用のバ
ックアップ・プロセッサと呼ばれる。
記憶(R8VS)データ処理システムにおいて、メッセ
ージ・キューなどシステム全体にわたる共有データ構造
の信頼性を確保するためのシステムと方法を提供するも
のである。上記のデータ処理システムでは、複数のプロ
セッサはそれぞれ仮想機構域を共存し、同じ仮想記憶ア
ドレスにより複数の記憶セグメントのそれぞれにアクセ
スできる。このシステムは、様々なプロセッサ上で各ペ
ージのコピーを少なくとも2つ保持し、これらのコピー
は、こうしたページを修正するトランザクションの完了
後に初めて更新される。これらのコピーは、実際には、
こうしたシステム内で同時に更新され、一方のプロセッ
サは、所与のデータ構造に対するリード・プロセッサと
呼ばれ、他方のプロセッサはこうしたデータ構造用のバ
ックアップ・プロセッサと呼ばれる。
このシステムは、リード・プロセッサが所有する仮想記
憶セグメントに記憶された識別表を含む。
憶セグメントに記憶された識別表を含む。
この表は、オペレーティング・システムの回復可能共有
仮想記憶層が他のプロセッサをリードプロセッサのバッ
クアップ・プロセッサに指定するという、メッセージ・
キューなど、複数の共有データ構造のいずれか1つを見
つけるための情報を含む。修正された共有データ構造表
の一貫したコピーがバックアップ・プロセッサに記憶さ
れて、トランザクションの完了時、すなわち、トランザ
クションがコミットされた時に自動的に更新される。
仮想記憶層が他のプロセッサをリードプロセッサのバッ
クアップ・プロセッサに指定するという、メッセージ・
キューなど、複数の共有データ構造のいずれか1つを見
つけるための情報を含む。修正された共有データ構造表
の一貫したコピーがバックアップ・プロセッサに記憶さ
れて、トランザクションの完了時、すなわち、トランザ
クションがコミットされた時に自動的に更新される。
システム内の複数のプロセッサのいずれが1っでの処理
によって開始されるシステム・コールに応えて、そのプ
ロセッサのオペレーティング・システムは、メッセージ
・キューなどの共有データ構造上でトランザクションを
開始する。それには、要求側プロセッサが所有する新し
いメッセージ・キューを作成すること、処理から、同じ
または別のプロセッサが所有する仮想記憶セグメント内
の1つのメッセージ・キューにメツセージを送ること、
同じまたは別のプロセッサが所有する仮想記憶セグメン
ト内のメッセージ・キューからメツセージを受信するこ
と、または既存のメッセージ・キューを除去することが
含まれる。トランザクションが完了すると、システム・
コールを発行スルプロセッサがCOMMITを呼び出し
て、データ構造の修正がコミットされ、こうしたデータ
構造のコピーが、そのデータ構造を所有するプロセッサ
及びそのバックアップ・プロセッサに記憶される。
によって開始されるシステム・コールに応えて、そのプ
ロセッサのオペレーティング・システムは、メッセージ
・キューなどの共有データ構造上でトランザクションを
開始する。それには、要求側プロセッサが所有する新し
いメッセージ・キューを作成すること、処理から、同じ
または別のプロセッサが所有する仮想記憶セグメント内
の1つのメッセージ・キューにメツセージを送ること、
同じまたは別のプロセッサが所有する仮想記憶セグメン
ト内のメッセージ・キューからメツセージを受信するこ
と、または既存のメッセージ・キューを除去することが
含まれる。トランザクションが完了すると、システム・
コールを発行スルプロセッサがCOMMITを呼び出し
て、データ構造の修正がコミットされ、こうしたデータ
構造のコピーが、そのデータ構造を所有するプロセッサ
及びそのバックアップ・プロセッサに記憶される。
コミットされると、オペレーティング・システムのR8
VS層はまた、リード・プロセッサが所有する仮想記憶
セグメントに記憶された表中の識別情報を更新し、こう
したコピーがリード・プロセッサに対するバックアップ
・プロセッサに記憶される。
VS層はまた、リード・プロセッサが所有する仮想記憶
セグメントに記憶された表中の識別情報を更新し、こう
したコピーがリード・プロセッサに対するバックアップ
・プロセッサに記憶される。
E6実施例
第1図は、本発明の方法が有利に適用できる、クラスタ
に構成されたマルチプロセッサ・データ処理システムの
構成図である。第1図に示すように、このデータ処理シ
ステムは、複数のプロセッサ・ユニット10、交換機1
1及び複数の通信リンク12を含み、各リンク12はそ
れぞれ1つのプロセッサ・ユニット10を交換機11に
接続する。交換機110機能は、任意のプロセッサ・ユ
ニット10が他の任意のプロセッサ・ユニットと通信で
きるようにすることである。交換機と通信リンクの特定
の詳細は、本発明を理解するのに重要であるとは考えら
れないので、詳細な説明は行なわれない。利用できる交
換機構成の例は、米国特許第4835250号及び第4
805928号明細書に出ている。
に構成されたマルチプロセッサ・データ処理システムの
構成図である。第1図に示すように、このデータ処理シ
ステムは、複数のプロセッサ・ユニット10、交換機1
1及び複数の通信リンク12を含み、各リンク12はそ
れぞれ1つのプロセッサ・ユニット10を交換機11に
接続する。交換機110機能は、任意のプロセッサ・ユ
ニット10が他の任意のプロセッサ・ユニットと通信で
きるようにすることである。交換機と通信リンクの特定
の詳細は、本発明を理解するのに重要であるとは考えら
れないので、詳細な説明は行なわれない。利用できる交
換機構成の例は、米国特許第4835250号及び第4
805928号明細書に出ている。
第2図は、第1図に示したプロセッサ・ユニツトの1つ
を詳細に示す。プロセッサ・ユニット10は、高機能パ
ーソナル・コンピュータや801アーキテクチヤをもち
IBM RTシステムなどIBM AIXオペレー
ティング・システムを走行させるエンジニアリング・ワ
ーク・ステージ日ンでもよい。ただし、他のアーキテク
チャ及びオペレーティング・システムも本発明を実施す
る際に使用できることに留意されたい。
を詳細に示す。プロセッサ・ユニット10は、高機能パ
ーソナル・コンピュータや801アーキテクチヤをもち
IBM RTシステムなどIBM AIXオペレー
ティング・システムを走行させるエンジニアリング・ワ
ーク・ステージ日ンでもよい。ただし、他のアーキテク
チャ及びオペレーティング・システムも本発明を実施す
る際に使用できることに留意されたい。
第2図に示すように、プロセッサ・ユニット10は、プ
ロセッサ16、主記憶装置17、プロセッサ16と主記
憶装置17の間でのデータ転送を制御する記憶制御装置
18、及び複数の入出力アダプタまたはポート2OA−
20Eを含む。ボート2OAと20Bは、表示装置型端
末21と22をシステムに接続する。ポート20Cはプ
リンタ23をシステムに接続し、ボート20Dはディス
ク・ドライブ24をシステムに接続する。通信ボート2
0Eはプロセッサ・ユニット10を通信リンクに接続す
るのに使用される。
ロセッサ16、主記憶装置17、プロセッサ16と主記
憶装置17の間でのデータ転送を制御する記憶制御装置
18、及び複数の入出力アダプタまたはポート2OA−
20Eを含む。ボート2OAと20Bは、表示装置型端
末21と22をシステムに接続する。ポート20Cはプ
リンタ23をシステムに接続し、ボート20Dはディス
ク・ドライブ24をシステムに接続する。通信ボート2
0Eはプロセッサ・ユニット10を通信リンクに接続す
るのに使用される。
この説明では、プロセッサ・ユニット10は、一般に、
相互参照する米国特許出願箱O6/819458号明細
書に詳細に記載されている仮想記憶データ処理システム
に対応する。上記出願を引用により本明細書に合体する
。上記出願に記載されているように、プロセッサは、3
2ビツトの有効アドレスをもち、このアドレスは、高位
4ピッ1− (31−28)を用いて、それぞれが40
96個の固有の仮想記憶セグメントのうちの1つを定義
する12ビツト仮想記憶セグメント・アドレスを記憶す
る、16個のセグメント・レジスタのうちの1つを選択
することにより、40ビツト仮想アドレスに変換される
。各仮想記憶セグメントは、256メガバイトの仮想記
憶域(2”28)を含む。1ページが2にのデータを含
む場合、仮想記憶セグメントは128にページを含む。
相互参照する米国特許出願箱O6/819458号明細
書に詳細に記載されている仮想記憶データ処理システム
に対応する。上記出願を引用により本明細書に合体する
。上記出願に記載されているように、プロセッサは、3
2ビツトの有効アドレスをもち、このアドレスは、高位
4ピッ1− (31−28)を用いて、それぞれが40
96個の固有の仮想記憶セグメントのうちの1つを定義
する12ビツト仮想記憶セグメント・アドレスを記憶す
る、16個のセグメント・レジスタのうちの1つを選択
することにより、40ビツト仮想アドレスに変換される
。各仮想記憶セグメントは、256メガバイトの仮想記
憶域(2”28)を含む。1ページが2にのデータを含
む場合、仮想記憶セグメントは128にページを含む。
1ページが4にバイトのデータを含む場合は、仮想記憶
セグメントは64にページをもつ。正確に言うと、その
仮想記憶セグメントに現在割り当てられているデータ・
ページを識別するのに使用される64にの仮想ページ・
アドレスをもつ。
セグメントは64にページをもつ。正確に言うと、その
仮想記憶セグメントに現在割り当てられているデータ・
ページを識別するのに使用される64にの仮想ページ・
アドレスをもつ。
相互参照された上記の特許出願に記載されているように
、このプロセッサ・ユニットでは、アプリケ−シロン・
プログラム及びそれらのプログラムが使用するデータが
AIXファイル・システム型構成に従って構成されるよ
うに、IBMAIXオペレーテオペレーティングが使用
される。
、このプロセッサ・ユニットでは、アプリケ−シロン・
プログラム及びそれらのプログラムが使用するデータが
AIXファイル・システム型構成に従って構成されるよ
うに、IBMAIXオペレーテオペレーティングが使用
される。
以下の説明では、1データ・ページが2112すなわち
4にパイ) (409Et)を含み、仮想記憶セグメン
トが2116すなわち84にページから成ると仮定する
。
4にパイ) (409Et)を含み、仮想記憶セグメン
トが2116すなわち84にページから成ると仮定する
。
ブラウンド(Blount)他の名義で同時に出願され
た関連米国特許出願(Ar1−87−051)に記載さ
れたlMC5プロトコルなどの特殊通信プロトコルが、
マシン間通信の効率を高めるために開発されており、ク
ラスタ内の仮想記憶域の整合性を確保するページャ・プ
ロトコルがある。
た関連米国特許出願(Ar1−87−051)に記載さ
れたlMC5プロトコルなどの特殊通信プロトコルが、
マシン間通信の効率を高めるために開発されており、ク
ラスタ内の仮想記憶域の整合性を確保するページャ・プ
ロトコルがある。
801記憶制御装置(SCU)18は、物理的ロッキン
グに対するある形のハードウェア支援を行なうことが好
ましい。各4にバイト・ページは1行128バイトの3
2行に分割される。ある処理が最初にある行を参照しよ
うと試みたとき、5CU18がプロセッサ16に割り込
む。この割り込みは「ロック・フォールト」と呼ばれ、
AIXオペレーティング・システムが、その処理の一部
に対する明示的相互作用なしにロッキング機能及びジ日
−ナリング機能を呼び出すのに使用する。
グに対するある形のハードウェア支援を行なうことが好
ましい。各4にバイト・ページは1行128バイトの3
2行に分割される。ある処理が最初にある行を参照しよ
うと試みたとき、5CU18がプロセッサ16に割り込
む。この割り込みは「ロック・フォールト」と呼ばれ、
AIXオペレーティング・システムが、その処理の一部
に対する明示的相互作用なしにロッキング機能及びジ日
−ナリング機能を呼び出すのに使用する。
ロック・フォールトは行ごとに発生するが、プロセッサ
16は、ページ全体の読取りロックまたは書込みロック
を許可す、る権利を獲得する。プロセッサ16がこの権
利を獲得すると、そのプロセッサ16で実行中の個々の
処理は、そのプロセッサにあるロック・マネージャから
行レベルのロックを獲得する。トランザクションがその
更新をコミットすると、影響を受けるすべてのページの
以前のコピーが、他のすべてのプロセッサ16中で無効
になる。その後のページ・フォールトが、更新済みコピ
ーを他のプロセッサの記憶装置に入れることができる。
16は、ページ全体の読取りロックまたは書込みロック
を許可す、る権利を獲得する。プロセッサ16がこの権
利を獲得すると、そのプロセッサ16で実行中の個々の
処理は、そのプロセッサにあるロック・マネージャから
行レベルのロックを獲得する。トランザクションがその
更新をコミットすると、影響を受けるすべてのページの
以前のコピーが、他のすべてのプロセッサ16中で無効
になる。その後のページ・フォールトが、更新済みコピ
ーを他のプロセッサの記憶装置に入れることができる。
前述の回復可能性はすべてのクラスタ記憶セグメントに
とって望ましいが、それらのすべてがデータベース意味
論を、したがってロッキングを必要とするわけではない
。たとえば、所与のメッセージ・キューを記述する制御
構造へのアクセスは、ロッキング及びロギングを使用す
るトランザクションを用いてそのアクセスを行なうこと
により同期されるが、データが回復可能である必要はな
いものの、メツセージ自体はロッキング制御を必要とし
ない。
とって望ましいが、それらのすべてがデータベース意味
論を、したがってロッキングを必要とするわけではない
。たとえば、所与のメッセージ・キューを記述する制御
構造へのアクセスは、ロッキング及びロギングを使用す
るトランザクションを用いてそのアクセスを行なうこと
により同期されるが、データが回復可能である必要はな
いものの、メツセージ自体はロッキング制御を必要とし
ない。
R8VSまたはクラスタ記憶装置の実施は、801以外
のアーキテクチャでも行なえることに留意されたい。実
際に、どんな汎用コンピュータ・ハードウェアでも使用
できる。整合性を確保するためには、何らかの形のロッ
キング(ハードウェアまたはソフトウェア)が、必ずし
も不可欠ではないが、有用である。たとえば、クラスタ
記憶装置は、H,T、クング(Kung)及びJ、T、
ロビンソン(Robinson )の論文「並列制御の
楽観的方法J ; A CM Transaction
s on Database Systems6(2)
(1981年6月)に記載されているような楽観的並列
制御機構で実施できる。いつ更新が行なわれたかを検出
する何らかの方法も有用である。こうした検出システム
は、ハードウェア支援記憶保護機構に基づいて実施でき
、またはおそらく、ロード命令及び記憶命令ではなく特
殊サブ。
のアーキテクチャでも行なえることに留意されたい。実
際に、どんな汎用コンピュータ・ハードウェアでも使用
できる。整合性を確保するためには、何らかの形のロッ
キング(ハードウェアまたはソフトウェア)が、必ずし
も不可欠ではないが、有用である。たとえば、クラスタ
記憶装置は、H,T、クング(Kung)及びJ、T、
ロビンソン(Robinson )の論文「並列制御の
楽観的方法J ; A CM Transaction
s on Database Systems6(2)
(1981年6月)に記載されているような楽観的並列
制御機構で実施できる。いつ更新が行なわれたかを検出
する何らかの方法も有用である。こうした検出システム
は、ハードウェア支援記憶保護機構に基づいて実施でき
、またはおそらく、ロード命令及び記憶命令ではなく特
殊サブ。
ルーチンを用いてすべての更新を収集(funnel)
し、どの更新がどのプロセッサによっていつ行なわれた
かを記録することによって実施される。801アーキテ
クチヤは、システム全体のロッキング機能及びロギング
機能を実施するのに適したハードウェア支援記憶保護機
構をもたらす。
し、どの更新がどのプロセッサによっていつ行なわれた
かを記録することによって実施される。801アーキテ
クチヤは、システム全体のロッキング機能及びロギング
機能を実施するのに適したハードウェア支援記憶保護機
構をもたらす。
回復可能共有仮想記憶装置(R8VS)をどのように使
えばマルチプロセッサ・クラスタ型処理システム内で共
存データ構造の可用性を維持することができるかを説明
するために、ある形の共有クラスタ・データ構造、メッ
セージ・キューの実施態様を説明するのが有益である。
えばマルチプロセッサ・クラスタ型処理システム内で共
存データ構造の可用性を維持することができるかを説明
するために、ある形の共有クラスタ・データ構造、メッ
セージ・キューの実施態様を説明するのが有益である。
AIXオペレーティング・システムでは、4つの基本シ
ステム・コールを使って、メッセージ・キューMSGG
ET1MSGCTL、MSGSNDlMSGRCVを作
成し使用する。それらのコールは、以下のトランザクシ
ョンを実施するのに使用される。
ステム・コールを使って、メッセージ・キューMSGG
ET1MSGCTL、MSGSNDlMSGRCVを作
成し使用する。それらのコールは、以下のトランザクシ
ョンを実施するのに使用される。
MSGGET −キューを作成する。
既存のキューに対するメツ
セージ・キューIDを戻す。
MSGCTL −キューの状況を問い合わせる。
キューの許可を変更する。
キューを削除する。
MSGSND −メツセージをキューに入れる。
MSGRC■ −キューからメツセージを除去する。
R8VSでメッセージ・キューを実施する際には、関連
米国特許出願第07/12E3820号に記載されてい
るR8VS特性を利用する。上記出願を引用により本明
細書に合体する。具体的に言うと、R8VSセグメント
の内容が、単一プロセッサの障害など致命的でないクラ
スタ障害の後も存続するものと仮定する。また、それを
行なう適切な許可をもつクラスタ内のどの処理も、所与
のR8VSセグメントに接続できるものと仮定する。
米国特許出願第07/12E3820号に記載されてい
るR8VS特性を利用する。上記出願を引用により本明
細書に合体する。具体的に言うと、R8VSセグメント
の内容が、単一プロセッサの障害など致命的でないクラ
スタ障害の後も存続するものと仮定する。また、それを
行なう適切な許可をもつクラスタ内のどの処理も、所与
のR8VSセグメントに接続できるものと仮定する。
アクセスされたデータが、その処理が実行中であるプロ
セッサの記憶装置にない場合は、必要なページをそのプ
ロセッサのメモリに転送するためにカーネル間で交換さ
れるすべてのメツセージは、カーネルのRSVS層で実
施される。また、トランザクションが完了したとき、オ
ペレーティング・システムのRSVS層が、そのトラン
ザクション中に修正されたすべてのページのバックアッ
プ・コピーを更新するものと仮定する。
セッサの記憶装置にない場合は、必要なページをそのプ
ロセッサのメモリに転送するためにカーネル間で交換さ
れるすべてのメツセージは、カーネルのRSVS層で実
施される。また、トランザクションが完了したとき、オ
ペレーティング・システムのRSVS層が、そのトラン
ザクション中に修正されたすべてのページのバックアッ
プ・コピーを更新するものと仮定する。
第5図は、第3A図に示すメッセージ・キュー情報表(
MSGQIT)がシステム起動時にどのように作成され
るかを示す流れ図である。MSGQUITには、MAS
GQUITへのアクセスを制御する制御情報と、各メッ
セージ・キューのMSGQUIT項目が含まれる。第3
B図に示した制御情報の書式には、「ロック・ワード」
、及びMSGQUITで識別される記憶メッセージ・キ
ューの数が含まれる。MSGQU I Tの各項目の書
式を、第3C図に示す。
MSGQIT)がシステム起動時にどのように作成され
るかを示す流れ図である。MSGQUITには、MAS
GQUITへのアクセスを制御する制御情報と、各メッ
セージ・キューのMSGQUIT項目が含まれる。第3
B図に示した制御情報の書式には、「ロック・ワード」
、及びMSGQUITで識別される記憶メッセージ・キ
ューの数が含まれる。MSGQU I Tの各項目の書
式を、第3C図に示す。
ステップ26(第5図)で、クラスタ起動時、すなわち
初期プログラム・ローディング(IPL)中に、起動さ
れるシステムの最初のプロセッサが、データを見つける
ための共有データ構造の識別子を記憶するR8VSセグ
メントを作成する。
初期プログラム・ローディング(IPL)中に、起動さ
れるシステムの最初のプロセッサが、データを見つける
ための共有データ構造の識別子を記憶するR8VSセグ
メントを作成する。
ステップ28で、リード・プロセッサ、たとえばユニッ
トIOAのオペレーティング・システムが、MSGQU
ITのR8vSセグメントよりを指定する。MSGQU
IT表のR8VSセグメン)IDは、事前定義でき、ま
たはファイル・システムのファイルから検索できる。1
つのファイルにいくつかのこうした大域システムIDが
保持できる。R8VSセグメントの所有装置はクラスタ
・リーダであり、バックアップ・プロセッサ、たとえば
ユニット10Bがこのリード・プロセッサ10Aに割り
当てられる。
トIOAのオペレーティング・システムが、MSGQU
ITのR8vSセグメントよりを指定する。MSGQU
IT表のR8VSセグメン)IDは、事前定義でき、ま
たはファイル・システムのファイルから検索できる。1
つのファイルにいくつかのこうした大域システムIDが
保持できる。R8VSセグメントの所有装置はクラスタ
・リーダであり、バックアップ・プロセッサ、たとえば
ユニット10Bがこのリード・プロセッサ10Aに割り
当てられる。
ステップ30で、MSGQUITセグメントをロックし
た後、MSGQUITがすべて空の項目を含むように書
式化される。MSGQUITの項目の書式を、第3C図
に示す。各項目のUSECOUNTカウント・フィール
ドはOnに設定される。キューの最大数が記入される。
た後、MSGQUITがすべて空の項目を含むように書
式化される。MSGQUITの項目の書式を、第3C図
に示す。各項目のUSECOUNTカウント・フィール
ドはOnに設定される。キューの最大数が記入される。
これは、システム管理担当者が指定するシステム・パラ
メータである。
メータである。
ステップ32で、10A中のオペレーティング・システ
ムが00MMIT″を発行する。R3VS層は、ステッ
プ30で変更されたバックアップ・プロセッサ10B内
のすべてのページのコピーをとり、獲得されたすべての
ロックを解放する。メッセージ・キュー・システムはこ
れで動作可能である。
ムが00MMIT″を発行する。R3VS層は、ステッ
プ30で変更されたバックアップ・プロセッサ10B内
のすべてのページのコピーをとり、獲得されたすべての
ロックを解放する。メッセージ・キュー・システムはこ
れで動作可能である。
AIXオペレーティング・システムの以前のバージロン
と同様に、4つの基本システム・コールによって、回復
可能共有仮想メモリ・システム中のメッセージ・キュー
MSGGET1MSGCTL1MSGSND1MSGR
CV(7)作成及び使用が可能になる。メッセージ・キ
ュー自体は、MSGQUITを含むセグメントとは異な
る他のR8VSセグメントに置くことが好ましい。
と同様に、4つの基本システム・コールによって、回復
可能共有仮想メモリ・システム中のメッセージ・キュー
MSGGET1MSGCTL1MSGSND1MSGR
CV(7)作成及び使用が可能になる。メッセージ・キ
ュー自体は、MSGQUITを含むセグメントとは異な
る他のR8VSセグメントに置くことが好ましい。
新しいメッセージ・キューが作成されると、そのヘッダ
が、そのキューを作成した処理がある、プロセッサのカ
ーネルによって作成されたセグメントに置かれる。これ
は、第3D図に示すMSGQヘッダすなわちMSGQH
DRセグメントである。MSGQHDRセグメントの項
目を、第3E図に示す。さらに、メッセージ・キューに
記憶された各メツセージのテキストが、第3F図に示す
MSGTXTセグメントと呼ばれる別のセグメントに置
かれる。
が、そのキューを作成した処理がある、プロセッサのカ
ーネルによって作成されたセグメントに置かれる。これ
は、第3D図に示すMSGQヘッダすなわちMSGQH
DRセグメントである。MSGQHDRセグメントの項
目を、第3E図に示す。さらに、メッセージ・キューに
記憶された各メツセージのテキストが、第3F図に示す
MSGTXTセグメントと呼ばれる別のセグメントに置
かれる。
第6A図と第6B図は、MSGGETシステム・コール
を実行する際にオペレーティング・システムが実行する
ステップを示す流れ図である。
を実行する際にオペレーティング・システムが実行する
ステップを示す流れ図である。
MSGGETシステム・コールは、既存のキューのメッ
セージ・キュー識別子(MSGQUID)を検索し、ま
たは新しいキューを作成するのに使用される。このコー
ルは、以下の構造をもつ。
セージ・キュー識別子(MSGQUID)を検索し、ま
たは新しいキューを作成するのに使用される。このコー
ルは、以下の構造をもつ。
MSGQUID =MSGGET(KEY、MSGFL
AG)第6A図のステップ42で、本発明のMSGGE
Tシステム・コールのR8VS実施態様のステップをよ
り詳細に考察すると、たとえばプロセッサ・ユニット1
0Bで実行中の処理が、MSGGETシステム・コール
を発行する。
AG)第6A図のステップ42で、本発明のMSGGE
Tシステム・コールのR8VS実施態様のステップをよ
り詳細に考察すると、たとえばプロセッサ・ユニット1
0Bで実行中の処理が、MSGGETシステム・コール
を発行する。
ステップ43で、プロセッサ・ユニットIOBノオペレ
ーティング・システムが、第3B図に示したMSGQU
ITセグメントの制御情報行の「ロック・ワード」に書
き込むことにより、MSGQUITをロックする。クラ
スタ内のどこかで別の処理がすでにそのロックを有する
場合、この処理は待機し、後でR8VSによって開始さ
れる。
ーティング・システムが、第3B図に示したMSGQU
ITセグメントの制御情報行の「ロック・ワード」に書
き込むことにより、MSGQUITをロックする。クラ
スタ内のどこかで別の処理がすでにそのロックを有する
場合、この処理は待機し、後でR8VSによって開始さ
れる。
MSGQIT全体に対する「大域ロック」は、クラスタ
記憶装置へのアクセス中に通常獲得される行ロックに追
加して行なわれる。この大域ロックの目的は、異なるプ
ロセッサ内の2つ・の処理がそれぞれMSGQUITの
未使用のすなわち「空いた」項目に書き込もうと試みる
場合に、大域ロックがなければ発生する恐れのあるデッ
ドロックを回避することである。
記憶装置へのアクセス中に通常獲得される行ロックに追
加して行なわれる。この大域ロックの目的は、異なるプ
ロセッサ内の2つ・の処理がそれぞれMSGQUITの
未使用のすなわち「空いた」項目に書き込もうと試みる
場合に、大域ロックがなければ発生する恐れのあるデッ
ドロックを回避することである。
ステップ44で、プロセッサ・ユニットIOBのオペレ
ーティング・システムがMSGQUITを走査する。M
SGQUITが走査されるとき、そのユニットのオペレ
ーティング・システムのカーネルのR878層は、MS
GQU工Tセグメントの参照されたページの読取りロッ
クを獲得する。
ーティング・システムがMSGQUITを走査する。M
SGQUITが走査されるとき、そのユニットのオペレ
ーティング・システムのカーネルのR878層は、MS
GQU工Tセグメントの参照されたページの読取りロッ
クを獲得する。
ステップ46で、ユニット10Bのオペレーティング・
システムが、キーがMSGQUITで見つかったかどう
か判定する。キーが見つかった場合、プロセッサIOB
はステップ50を実行する。ステップ50で、ユニット
IOBのオペレーティング・システムが、MSGFLA
GのPRI VATEビットがセットされているかどう
か判定する。
システムが、キーがMSGQUITで見つかったかどう
か判定する。キーが見つかった場合、プロセッサIOB
はステップ50を実行する。ステップ50で、ユニット
IOBのオペレーティング・システムが、MSGFLA
GのPRI VATEビットがセットされているかどう
か判定する。
セットされている場合、ステップ52で、ユニツ)10
Bのオペレーティング・システムが、′fCOMMIT
”を呼び出してロックを解放し、PERMISSION
DENIEDエラー標識を処理に戻す。MSGFL
AGのPRIVATEビットがセットされていない場合
は、トランザクションが続行する。MSGQUIDは、
MSGQUITアレイ中のメッセージ・キューのMSG
UIT項目のオフセットと、ステップ53の項目のUS
ECOUNTを組み合わせることによって作成される。
Bのオペレーティング・システムが、′fCOMMIT
”を呼び出してロックを解放し、PERMISSION
DENIEDエラー標識を処理に戻す。MSGFL
AGのPRIVATEビットがセットされていない場合
は、トランザクションが続行する。MSGQUIDは、
MSGQUITアレイ中のメッセージ・キューのMSG
UIT項目のオフセットと、ステップ53の項目のUS
ECOUNTを組み合わせることによって作成される。
MSGQUIDの書式を第4図に示す。
ステップ54で、プロセッサ10Bのオペレーティング
・システムが、“COMMIT″を呼び出してロック・
ワードに対して獲得されたロックと、読み込まれたMS
GQUIT項目を解放する。
・システムが、“COMMIT″を呼び出してロック・
ワードに対して獲得されたロックと、読み込まれたMS
GQUIT項目を解放する。
ステップ54で、MSGQUIDがMSGGETの呼出
し側に戻される。
し側に戻される。
ステップ58で、一致するキー項目が見つからない場合
、ユニット10Bのオペレーティング・システムが、M
SGFLAGのCREATEビットがセットされている
かどうか判定する。
、ユニット10Bのオペレーティング・システムが、M
SGFLAGのCREATEビットがセットされている
かどうか判定する。
ステップ57で、CREATEビットがセットされてい
ない場合、ユニット10Bのオペレーティング・システ
ムがCOMMITを呼び出してロックを解放し、エラー
標識を処理に戻す。CREATEビットがセットされて
いる場合は、新しいメッセージ・キューが、ユニットI
OBのオペレーティング・システムによって作成される
。新しいキューは、そのシステム・コールを実行したプ
ロセッサであるユニットIOBが所有する。これは、そ
のヘッダとデータが、10Bが所存するセグメントに置
かれることを意味する。
ない場合、ユニット10Bのオペレーティング・システ
ムがCOMMITを呼び出してロックを解放し、エラー
標識を処理に戻す。CREATEビットがセットされて
いる場合は、新しいメッセージ・キューが、ユニットI
OBのオペレーティング・システムによって作成される
。新しいキューは、そのシステム・コールを実行したプ
ロセッサであるユニットIOBが所有する。これは、そ
のヘッダとデータが、10Bが所存するセグメントに置
かれることを意味する。
第3C図は、MSGQUITアレイ中の項目のレイアウ
トを示す。ステップ58で、空き/未使用フラグが「空
き」に設定された未使用項目が1つ見つかり、そのフラ
グが「使用済み」に設定される。UNSECOUNTフ
ィールドが1だけ増分される。これは、その項目の以前
のユーザが、キューにアクセスするのを防止するためで
ある。
トを示す。ステップ58で、空き/未使用フラグが「空
き」に設定された未使用項目が1つ見つかり、そのフラ
グが「使用済み」に設定される。UNSECOUNTフ
ィールドが1だけ増分される。これは、その項目の以前
のユーザが、キューにアクセスするのを防止するためで
ある。
「キー」の値がその項目に置かれている。
ステップ59で、ユニット10Bのオペレーティング・
システムが、作成されたキューがユニット10Bが所有
する最初のキューであるかどうかを判定する。ユニット
10Bが所有するキューが他にはない場合、または同じ
メモリ・セグメントに存在し得るキューの最大数(25
8)にすでに達している場合、ステップ60で、ユニー
/)IOBのオペレーティング・システムが2つの新し
いR8VSセグメントを作成する。1つ・はキュー・ヘ
ッダ(MSGQHDRセグメント)を保持し、他の1つ
はメツセージ・テキスト(MSGTXTセグメント)を
保持するためのものである。こうしたセグメント内の2
58個の項目の割振り表が、プロセッサ10Bのメモリ
内に構築される。プロセッサIOBが崩壊した場合は、
この割振り情報がMSGQUIT項目のデータから再構
築できる。10Bが新しいセグメントの所有位置である
。バックアップ位置、たとえばユニットIOAが選択さ
れる。
システムが、作成されたキューがユニット10Bが所有
する最初のキューであるかどうかを判定する。ユニット
10Bが所有するキューが他にはない場合、または同じ
メモリ・セグメントに存在し得るキューの最大数(25
8)にすでに達している場合、ステップ60で、ユニー
/)IOBのオペレーティング・システムが2つの新し
いR8VSセグメントを作成する。1つ・はキュー・ヘ
ッダ(MSGQHDRセグメント)を保持し、他の1つ
はメツセージ・テキスト(MSGTXTセグメント)を
保持するためのものである。こうしたセグメント内の2
58個の項目の割振り表が、プロセッサ10Bのメモリ
内に構築される。プロセッサIOBが崩壊した場合は、
この割振り情報がMSGQUIT項目のデータから再構
築できる。10Bが新しいセグメントの所有位置である
。バックアップ位置、たとえばユニットIOAが選択さ
れる。
ステップ62で、ユニットIOHのオペレーティング・
システムが、新しいMSGQHDRセグメントまたは既
存のMSGQHDRセグメント中にキュー・ヘッダを割
り振りまたは作成し、MSGTXTセグメントの対応す
るテキスト領域を初期設定する。現在の処理が、クラス
タ内でこれらの動作を実行している唯一の処理である。
システムが、新しいMSGQHDRセグメントまたは既
存のMSGQHDRセグメント中にキュー・ヘッダを割
り振りまたは作成し、MSGTXTセグメントの対応す
るテキスト領域を初期設定する。現在の処理が、クラス
タ内でこれらの動作を実行している唯一の処理である。
というのは、その処理がMSGQUITセグメントに対
する大域書込みロックを依然として保持しているからで
ある。
する大域書込みロックを依然として保持しているからで
ある。
MSGTXTセグメントは、キュー当りIMノ(イトの
領域に分割され、256個のキューがこのセグメントを
共有する。テキスト領域の空間がどのようにメツセージ
に割り振られ管理されるかの詳細は当業者に周知である
。後でわかるように、各テキスト領域は、同時に1つの
プロセッサによってだけアクセスされるので、それ以上
のロッキング機構の必要はない。
領域に分割され、256個のキューがこのセグメントを
共有する。テキスト領域の空間がどのようにメツセージ
に割り振られ管理されるかの詳細は当業者に周知である
。後でわかるように、各テキスト領域は、同時に1つの
プロセッサによってだけアクセスされるので、それ以上
のロッキング機構の必要はない。
ステップ68で、ユニットIOBのカーネルがMSGQ
UITを更新する。カーネルは、MAGQHDR及びM
SGTXTセグメントのIDと、キュー・ヘッダに接続
されたページ番号を記入する。ステップ70で、ユニッ
ト10Bのオペレーティング・システムが、″COMM
IT″コールを発行して、R8vSセグメント内の変更
されたページの両方のコピーを更新する。COMMIT
コールにより、その処理によって保持される、メッセー
ジ・キュー・データ構造に対するすべてのロックが解除
される。ステップ72で、ステップ53に記載したよう
にMSGQUIDが構築され、それを要求した処理に戻
される。
UITを更新する。カーネルは、MAGQHDR及びM
SGTXTセグメントのIDと、キュー・ヘッダに接続
されたページ番号を記入する。ステップ70で、ユニッ
ト10Bのオペレーティング・システムが、″COMM
IT″コールを発行して、R8vSセグメント内の変更
されたページの両方のコピーを更新する。COMMIT
コールにより、その処理によって保持される、メッセー
ジ・キュー・データ構造に対するすべてのロックが解除
される。ステップ72で、ステップ53に記載したよう
にMSGQUIDが構築され、それを要求した処理に戻
される。
要約すると、ユーザがキーを指定して、関心のあるメッ
セージ・キューを識別する。システムがMSGQUIT
セグメント内の表を走査する。キーに関連する既存のキ
ューがある場合、そのMSGQUIDが戻される。そう
でない場合は、FLAGのCREATEビットがセット
されていれば、新しいキューが作成され、そのMSGQ
UIDが呼出し画処理に戻される。新しいメッセージ・
キューが作成されると、それに関する情報が、そこでM
SGGETが呼び出される処理装置のカーネルが所有す
るR8VSセグメント、すなわちMSGQHDRに置か
れる。
セージ・キューを識別する。システムがMSGQUIT
セグメント内の表を走査する。キーに関連する既存のキ
ューがある場合、そのMSGQUIDが戻される。そう
でない場合は、FLAGのCREATEビットがセット
されていれば、新しいキューが作成され、そのMSGQ
UIDが呼出し画処理に戻される。新しいメッセージ・
キューが作成されると、それに関する情報が、そこでM
SGGETが呼び出される処理装置のカーネルが所有す
るR8VSセグメント、すなわちMSGQHDRに置か
れる。
プロセッサIOBがMSGGETコールの実行中に崩壊
する場合、そのプロセッサが3つのR8VSセグメント
に対して加えたすべての変更が失われる。これは望まし
いことである。というのは、MSGGETコールは完了
しなかったからである。
する場合、そのプロセッサが3つのR8VSセグメント
に対して加えたすべての変更が失われる。これは望まし
いことである。というのは、MSGGETコールは完了
しなかったからである。
R8VS層は、MSGGET)−ルがプロセッサ10B
で変更したページの未変更バージョンのバックアップ・
コピーをもち、プロセッサtOBが保持するロックを解
放する。その後、生き残ったプロセッサ内の他のMSG
ETコールが走行でき、整合性のないデータは生じない
。
で変更したページの未変更バージョンのバックアップ・
コピーをもち、プロセッサtOBが保持するロックを解
放する。その後、生き残ったプロセッサ内の他のMSG
ETコールが走行でき、整合性のないデータは生じない
。
プロセッサIOBがMSGGETコールの実行後に崩壊
する場合、生き残ったプロセッサ内にすべての更新済み
データ構造のコピーがあるので、新しく作成されたメッ
セージ・キューは失われない。
する場合、生き残ったプロセッサ内にすべての更新済み
データ構造のコピーがあるので、新しく作成されたメッ
セージ・キューは失われない。
メッセージ・キューは、ヘッダ領域とメツセージ領域か
ら構成される。ヘッダ領域には、次のようなキュー状況
情報が含まれる。所有者、グループ及び他のすべてのそ
れを含めて、キュー作成者、キュー所有者、そのキュー
にアクセスした最後の処理、そのキューに対する最後の
更新の時間スタンプ、及びそのキューに対するアクセス
許可の処理rDである。ヘッダには、いつでもキュー中
で許されるバイトの最大数を示す数と、キュー中に現在
ある最初と最後のメツセージを指すポインタも含まれる
。
ら構成される。ヘッダ領域には、次のようなキュー状況
情報が含まれる。所有者、グループ及び他のすべてのそ
れを含めて、キュー作成者、キュー所有者、そのキュー
にアクセスした最後の処理、そのキューに対する最後の
更新の時間スタンプ、及びそのキューに対するアクセス
許可の処理rDである。ヘッダには、いつでもキュー中
で許されるバイトの最大数を示す数と、キュー中に現在
ある最初と最後のメツセージを指すポインタも含まれる
。
新しいメッセージ・キューが作成されるとき、そのヘッ
ダはページ境界から始まる。そのため、同じセグメント
内で表される異なるキューが、異なるプロセッサで実行
中の処理によって同時にアクセスされるとき、性能が改
良される。というのは、R8VSはいつでも唯一の処理
にページに書き込ませ、またメッセージ・キューへのア
クセスの結果、キュー・ヘッダ中の状況情報が更新され
るからである。
ダはページ境界から始まる。そのため、同じセグメント
内で表される異なるキューが、異なるプロセッサで実行
中の処理によって同時にアクセスされるとき、性能が改
良される。というのは、R8VSはいつでも唯一の処理
にページに書き込ませ、またメッセージ・キューへのア
クセスの結果、キュー・ヘッダ中の状況情報が更新され
るからである。
メツセージ自体は、メツセージ・テキスト・セグメント
と呼ばれる第3のRSVSセグメントに置かれる。メツ
セージは、 <message header、text>対として
書式化される。メツセージ・ヘッダは、メツセージ・タ
イプ、メツセージ中のバイト数、及びキュー内の次のメ
ツセージ・ヘッダ(がある場合、それ)を指すポインタ
の各フィールドを含む、固定長データ構造である。タイ
プ接頭辞は、処理が特定のタイプのメツセージを選択で
きるようにする。そうすると、処理は、メツセージがキ
ューに到着した順序以外の順序でキューからメツセージ
を抽出できる。
と呼ばれる第3のRSVSセグメントに置かれる。メツ
セージは、 <message header、text>対として
書式化される。メツセージ・ヘッダは、メツセージ・タ
イプ、メツセージ中のバイト数、及びキュー内の次のメ
ツセージ・ヘッダ(がある場合、それ)を指すポインタ
の各フィールドを含む、固定長データ構造である。タイ
プ接頭辞は、処理が特定のタイプのメツセージを選択で
きるようにする。そうすると、処理は、メツセージがキ
ューに到着した順序以外の順序でキューからメツセージ
を抽出できる。
MSGCTLシステム・コールは、メッセージ・キュー
に対する様々な制御動作を実行するのに使用される。制
御動作には、キュー上の状況情報を照会し、キューへの
アクセス許可を変更し、システムからメッセージ・キュ
ーを除去することが含まれる。MSGCTLは以下の形
を取る。
に対する様々な制御動作を実行するのに使用される。制
御動作には、キュー上の状況情報を照会し、キューへの
アクセス許可を変更し、システムからメッセージ・キュ
ーを除去することが含まれる。MSGCTLは以下の形
を取る。
MSGCTL(MSGQUID、C14D、BUF)た
だし、CMDはMSGCTLによって実行される動作を
示す。
だし、CMDはMSGCTLによって実行される動作を
示す。
第7A図と第7B図は、両者あいまって、MSCGTL
システム・コールを実行する際にオペレーティング・シ
ステムが実行するステップを示す流れ図を構成する。ス
テップ74(第7A図)で、プロセッサ・ユニット、た
とえばプロセッサ10Cの処理が、プロセッサIOBが
所有するキュー向けにMSGCTLシステム・コールを
発行する。
システム・コールを実行する際にオペレーティング・シ
ステムが実行するステップを示す流れ図を構成する。ス
テップ74(第7A図)で、プロセッサ・ユニット、た
とえばプロセッサ10Cの処理が、プロセッサIOBが
所有するキュー向けにMSGCTLシステム・コールを
発行する。
ステップ75で、プロセッサIOCのオペレーティング
・システムが、MSCQUIDの0FFSETフイール
ドで指定されたMSCQUIT項目を読み取り、MSG
QUIT項目とMSGIDのUSECOUNTフィール
ドが一致するかどうかを確認する。一致しない場合、M
SGQUIDで識別されるキューはもはや存在しない。
・システムが、MSCQUIDの0FFSETフイール
ドで指定されたMSCQUIT項目を読み取り、MSG
QUIT項目とMSGIDのUSECOUNTフィール
ドが一致するかどうかを確認する。一致しない場合、M
SGQUIDで識別されるキューはもはや存在しない。
COMMITが呼び出されて、MASGQUIT項目に
対する獲得されたロックを解放し、エラー標識が呼出し
側に戻される。
対する獲得されたロックを解放し、エラー標識が呼出し
側に戻される。
ステップ76で、プロセッサIOCのオペレーティング
・システムがCMDを読み取り、MSGCTLによって
実行される動作を決定する。
・システムがCMDを読み取り、MSGCTLによって
実行される動作を決定する。
ステップ77で、CMD=状況コマンドのグループ5T
ART、5TAT2またはMTAである場合、プロセッ
サ10Cのオペレーティング・システムは、MSGQH
DRセグメントIDを使って見つかったキュー・ヘッダ
とMSGQUIT項目中のページ番号を読み取る。他の
処理がこのヘッダを変更している場合、呼出し側処理は
、読取りロックを得るために待機しなければならない。
ART、5TAT2またはMTAである場合、プロセッ
サ10Cのオペレーティング・システムは、MSGQH
DRセグメントIDを使って見つかったキュー・ヘッダ
とMSGQUIT項目中のページ番号を読み取る。他の
処理がこのヘッダを変更している場合、呼出し側処理は
、読取りロックを得るために待機しなければならない。
その処理が読取りロックを得ると、ヘッダの一貫したビ
ューが見える。すなわち、その中の情報が変更されてい
ない。IOCのオペレーティング・システムは、要求さ
れた情報をヘッダからBUFにコピーする。
ューが見える。すなわち、その中の情報が変更されてい
ない。IOCのオペレーティング・システムは、要求さ
れた情報をヘッダからBUFにコピーする。
ステップ78で、ユニットIOCのオペレーティング・
システムは、”COMMIT’“を呼び出し、ステップ
75及び77でユニット10Cが獲得した読取りロック
が解除される。ステップ79で、ユニット10Cのオペ
レーティング・システムが復帰する。
システムは、”COMMIT’“を呼び出し、ステップ
75及び77でユニット10Cが獲得した読取りロック
が解除される。ステップ79で、ユニット10Cのオペ
レーティング・システムが復帰する。
ステップ80で、CMDがキューを破壊するコマンドで
あるIPCRMIDに等しい場合、プロセッサ10Cの
オペレーティング・システムは、ステップ75で、その
ロック・ワードに書き込むことにより、見つかったキュ
ー・ヘッダに対する書込みロックを獲得する。そのオペ
レーティング・システムは、呼出し側処理がキューを削
除する許可をもち、キュー・ヘッダを未使用とマークす
ることを確認する。時々、プロセッサIOBの処理は、
そのMSGHDRセグメント中のすべてのキュー・ヘッ
ダを読取り、他のプロセッサ内で解放されたヘッダの割
当て表を更新する。ステップ82ではユニットIOCの
オペレーティング・システムは、ステップ75で見つか
ったMSGQUIT項目のフラグを「空き」に設定する
ことにより、キューを削除する。この動作はMSGQU
ITセグメントに対する口・ツクを必要としないことに
留意されたい。ステップ84でCOMMITを呼び出す
と、ステップ78及び80でユニット10Cが獲得した
書込みロックが解除される。
あるIPCRMIDに等しい場合、プロセッサ10Cの
オペレーティング・システムは、ステップ75で、その
ロック・ワードに書き込むことにより、見つかったキュ
ー・ヘッダに対する書込みロックを獲得する。そのオペ
レーティング・システムは、呼出し側処理がキューを削
除する許可をもち、キュー・ヘッダを未使用とマークす
ることを確認する。時々、プロセッサIOBの処理は、
そのMSGHDRセグメント中のすべてのキュー・ヘッ
ダを読取り、他のプロセッサ内で解放されたヘッダの割
当て表を更新する。ステップ82ではユニットIOCの
オペレーティング・システムは、ステップ75で見つか
ったMSGQUIT項目のフラグを「空き」に設定する
ことにより、キューを削除する。この動作はMSGQU
ITセグメントに対する口・ツクを必要としないことに
留意されたい。ステップ84でCOMMITを呼び出す
と、ステップ78及び80でユニット10Cが獲得した
書込みロックが解除される。
第7A図に示したMSGCTL )ランザクシロンのス
テップ76に戻ると、コマンドが、あるキューに対する
1組のアクセス許可を更新する工PCSETである場合
、ステップ86で、プロセッサ10Cのオペレーティン
グ・システムが、ステップ78と同様にプロセッサIO
Bが所有するMSQGHDRセグメント中で更新される
キュー・ヘッダに対する書込みロックを獲得する。
テップ76に戻ると、コマンドが、あるキューに対する
1組のアクセス許可を更新する工PCSETである場合
、ステップ86で、プロセッサ10Cのオペレーティン
グ・システムが、ステップ78と同様にプロセッサIO
Bが所有するMSQGHDRセグメント中で更新される
キュー・ヘッダに対する書込みロックを獲得する。
ステップ88で、プロセッサ10Cのオペレーティング
・システムが、メッセージ・キュー・ヘツダ中のアクセ
ス許可情報を更新する。
・システムが、メッセージ・キュー・ヘツダ中のアクセ
ス許可情報を更新する。
ステップ90で、ユニット10Cのオペレーティング・
システムが”COMMIT’を呼び出す。
システムが”COMMIT’を呼び出す。
上記と同様に、COMMIT動作は、キュー・ヘッダを
含むページの両方の実コピーを自動的に更新し、ステッ
プ75及び86で獲得されたロックを解放する。
含むページの両方の実コピーを自動的に更新し、ステッ
プ75及び86で獲得されたロックを解放する。
MSGSNDとMSCRCVは、メッセージ・キューを
用いてメツセージを交換するために使用される。MSG
SNDシステム・コールは、メツセージを送るために、
すなわち、メツセージをメッセージ・キュー 14sGsND(MSGQID、にSGP、5IZE、
MSGFLAG)に入れるために使用される。
用いてメツセージを交換するために使用される。MSG
SNDシステム・コールは、メツセージを送るために、
すなわち、メツセージをメッセージ・キュー 14sGsND(MSGQID、にSGP、5IZE、
MSGFLAG)に入れるために使用される。
MSGRCVシステム・コールは、メツセージを受は取
る、すなわち、次のキューからメツセージを取り出す。
る、すなわち、次のキューからメツセージを取り出す。
IJs(1:RCV (MSGQIIID、)(SGP
、5IZE、TYPE、MSGFLAG)ただし、MS
GQUIDはメッセージ・キュー識別子である。MSG
Pは、MSGSNDの場合にメツセージ・テキストを含
むデータ構造を指す、またはMSGRCVに対してテキ
ストが記憶される場所を示すポインタである。5IZE
はメツセージのサイズである。MSGFLAGは、シス
テム・コールが完了できない場合に取られる処置を定義
するフラグである。
、5IZE、TYPE、MSGFLAG)ただし、MS
GQUIDはメッセージ・キュー識別子である。MSG
Pは、MSGSNDの場合にメツセージ・テキストを含
むデータ構造を指す、またはMSGRCVに対してテキ
ストが記憶される場所を示すポインタである。5IZE
はメツセージのサイズである。MSGFLAGは、シス
テム・コールが完了できない場合に取られる処置を定義
するフラグである。
ステップ92(第8A図)で、処理装置、たとエバユニ
ット10Gのオペレーティング・システムがMSGSN
Dシステム・コールを発行して、同じまたは異なるプロ
セッサ、たとえばユニット10Bが所存するメッセージ
・キューにメツセージを送るとき、R8vSトランザク
ションが開始される。ステップ94で、ユニット10C
のオペレーティング・システムが、ステップ75及び7
8に記載したように、キュー・ヘッダを見つけてロック
する。
ット10Gのオペレーティング・システムがMSGSN
Dシステム・コールを発行して、同じまたは異なるプロ
セッサ、たとえばユニット10Bが所存するメッセージ
・キューにメツセージを送るとき、R8vSトランザク
ションが開始される。ステップ94で、ユニット10C
のオペレーティング・システムが、ステップ75及び7
8に記載したように、キュー・ヘッダを見つけてロック
する。
ステップ96で、ユニットIOCのオペレーティング・
システムが、メッセージ・キューが満杯かどうか判定す
る。満杯でない場合、ステップ98で、ユニット10C
のオペレーティング・システムが、メツセージ・テキス
トをMSGTCTセグメントにコピーし、テキスト・セ
グメントのヘッダを更新し、MSGQHDRセグメント
中のキュー・ヘッダを更新する。
システムが、メッセージ・キューが満杯かどうか判定す
る。満杯でない場合、ステップ98で、ユニット10C
のオペレーティング・システムが、メツセージ・テキス
トをMSGTCTセグメントにコピーし、テキスト・セ
グメントのヘッダを更新し、MSGQHDRセグメント
中のキュー・ヘッダを更新する。
ステップ100で、ユニット10Gのオペレーティング
・システムが、rcOMMITJを呼び出す。これは、
MSQGHDR及びMSGTXTセグメントに対して加
えられた変更をバックアップし、ステップ94で獲得さ
れたロックを解放する。ステップ98ではMSGTXT
セグメントのロックは獲得されないことに留意されたい
。というのは、同期は、キュー・ヘッダ中のロック・ワ
ードを用いて行なわれるからである。しかし、ロギング
は、変更がバックアップされるようにMSGTXTセグ
メントに対して行なわれる。
・システムが、rcOMMITJを呼び出す。これは、
MSQGHDR及びMSGTXTセグメントに対して加
えられた変更をバックアップし、ステップ94で獲得さ
れたロックを解放する。ステップ98ではMSGTXT
セグメントのロックは獲得されないことに留意されたい
。というのは、同期は、キュー・ヘッダ中のロック・ワ
ードを用いて行なわれるからである。しかし、ロギング
は、変更がバックアップされるようにMSGTXTセグ
メントに対して行なわれる。
ステップ96でプロセッサ10Cのオペレーティング・
システムが、メッセージ・キューが満杯であると判定し
た場合、ステップ101(第8B図)で、ユニット10
Cのオペレーティング・システムは、MSGFLAGの
IPCN0WAITビツトが設定されているかどうか判
定する。IPCNOWAITに設定されている場合、ス
テップ102で、ユニット10Gのオペレーティング・
システムがCOMMITを呼び出して、エラー・メツセ
ージを処理に戻す。IPCN0WAITビツトが設定さ
れていない場合、トランザクシeンを続行する。
システムが、メッセージ・キューが満杯であると判定し
た場合、ステップ101(第8B図)で、ユニット10
Cのオペレーティング・システムは、MSGFLAGの
IPCN0WAITビツトが設定されているかどうか判
定する。IPCNOWAITに設定されている場合、ス
テップ102で、ユニット10Gのオペレーティング・
システムがCOMMITを呼び出して、エラー・メツセ
ージを処理に戻す。IPCN0WAITビツトが設定さ
れていない場合、トランザクシeンを続行する。
ステップ103で、オペレーティング・システムが「打
切り」を呼び出して、MSGQUIT項目に対して獲得
されたロックとキュー・ヘッダを解放する。それが行な
われなかった場合、たとえばキューからメツセージを取
り出してそれを満杯にしない処理を含めて、他の処理は
キューにアクセスできない。
切り」を呼び出して、MSGQUIT項目に対して獲得
されたロックとキュー・ヘッダを解放する。それが行な
われなかった場合、たとえばキューからメツセージを取
り出してそれを満杯にしない処理を含めて、他の処理は
キューにアクセスできない。
ステップ104で、ユニットIOCのオペレーティング
・システムが、MSGSNDシステム・コールを発行す
るユニットIOCの処理を、所定の時間「休眠させる」
。“好ましい実施例では、ユニット10Cのオペレーテ
ィング・システムが、ステップ106で、定期的に「覚
醒してJ最初がらMSGSNDシステム・コールを再試
行するようにプログラミングされる。この休眠及び覚醒
処理は、そのキューがもはや満杯でなくなるまで連続し
て行なわれる。
・システムが、MSGSNDシステム・コールを発行す
るユニットIOCの処理を、所定の時間「休眠させる」
。“好ましい実施例では、ユニット10Cのオペレーテ
ィング・システムが、ステップ106で、定期的に「覚
醒してJ最初がらMSGSNDシステム・コールを再試
行するようにプログラミングされる。この休眠及び覚醒
処理は、そのキューがもはや満杯でなくなるまで連続し
て行なわれる。
定期的に覚醒して再試行する単純な方法の他に、クラス
タ間覚醒を実行するためのいくつかの代替方法が可能で
ある。たとえば、メッセージ・キューからメツセージを
除去するプロセッサ・ユニットが、メッセージ・キュー
からメツセージが除去されたことをクラスタ内の他のす
べてのプロセッサに知らせる信号を送る。こうした信号
を受信すると、プロセッサは、休眠中のその処理をすべ
て覚醒させる。というのは、メッセージ・キューが満杯
であり、これらの処理はメツセージをキューに入れるも
のだからである。理論的には、この種の1機構は、ポー
リングよりずっと効率がよい。しかし、部分的障害から
回復できるこの種の効率のよい機構を実施するのはずっ
と困難である。
タ間覚醒を実行するためのいくつかの代替方法が可能で
ある。たとえば、メッセージ・キューからメツセージを
除去するプロセッサ・ユニットが、メッセージ・キュー
からメツセージが除去されたことをクラスタ内の他のす
べてのプロセッサに知らせる信号を送る。こうした信号
を受信すると、プロセッサは、休眠中のその処理をすべ
て覚醒させる。というのは、メッセージ・キューが満杯
であり、これらの処理はメツセージをキューに入れるも
のだからである。理論的には、この種の1機構は、ポー
リングよりずっと効率がよい。しかし、部分的障害から
回復できるこの種の効率のよい機構を実施するのはずっ
と困難である。
定期的覚醒手法は、「非ブロツク化事象」、すなわちキ
ューからのメツセージ除去が、覚醒信号を送出する前に
崩壊するプロセッサ中で発生する場合、最終的にすべて
の休眠処理がそのことを知るという意味で、「障害耐性
」があるという利点がある。
ューからのメツセージ除去が、覚醒信号を送出する前に
崩壊するプロセッサ中で発生する場合、最終的にすべて
の休眠処理がそのことを知るという意味で、「障害耐性
」があるという利点がある。
処理が非ブロツク化事象の発生を待って休眠している間
にメッセージ・キューがシステムから除去される場合、
その中で処理が休眠しているコールは、ステップ75で
処理が覚醒したとき失敗する。MSGQUIDが使用カ
ウントを含むので、同じMSGQUIDをもつ他のキュ
ーはその間に作成できない。
にメッセージ・キューがシステムから除去される場合、
その中で処理が休眠しているコールは、ステップ75で
処理が覚醒したとき失敗する。MSGQUIDが使用カ
ウントを含むので、同じMSGQUIDをもつ他のキュ
ーはその間に作成できない。
MSGRCV動作は、MSGSND動作とほとんどの点
で同様である。MSGSNDの場合と同様に、キュー・
ヘッダとメツセージ・テキストが見つけられる。キュー
がメツセージまたは正しいタイプのメツセージを持たな
い場合、コールが打ち切られ、待たされることがある。
で同様である。MSGSNDの場合と同様に、キュー・
ヘッダとメツセージ・テキストが見つけられる。キュー
がメツセージまたは正しいタイプのメツセージを持たな
い場合、コールが打ち切られ、待たされることがある。
テキストがMSGTXTセグメントからユーザのバッフ
ァにコピーされ、メツセージ・ヘッダ及びキュー・ヘッ
ダが更新される。次いでCOMMITが呼び出される。
ァにコピーされ、メツセージ・ヘッダ及びキュー・ヘッ
ダが更新される。次いでCOMMITが呼び出される。
要約すると、メツセージに対しである動作を実行する、
たとえばメツセージをキューに入れる処理は、メッセー
ジ・キューを含む回復可能共有仮想記憶セグメントに対
して単純なトランザクションを実行する。こうしたメッ
セージ・キューに関連する情報が、クラスタ全体にわた
る3つのR8VSセグメントですべて表される。トラン
ザクションは、その動作の実行を希望する処理があるプ
ロセッサ・ユニットで実行され、したがってトランザク
ションがクラスタ内で走行しているという事実を隠す。
たとえばメツセージをキューに入れる処理は、メッセー
ジ・キューを含む回復可能共有仮想記憶セグメントに対
して単純なトランザクションを実行する。こうしたメッ
セージ・キューに関連する情報が、クラスタ全体にわた
る3つのR8VSセグメントですべて表される。トラン
ザクションは、その動作の実行を希望する処理があるプ
ロセッサ・ユニットで実行され、したがってトランザク
ションがクラスタ内で走行しているという事実を隠す。
トランザクションが完了して始めて、メッセージ・キュ
ー・システムの新しい状態が、プロセッサが所有する仮
想記憶セグメント及びそのバックアップ・プロセッサ内
の仮想記憶セグメントのコピーに記憶されることがコミ
ットされる。
ー・システムの新しい状態が、プロセッサが所有する仮
想記憶セグメント及びそのバックアップ・プロセッサ内
の仮想記憶セグメントのコピーに記憶されることがコミ
ットされる。
メッセージ・キューを用いて通信する2つの処理が異な
るプロセッサ、たとえば10Aと100にある場合、そ
れらの処理はそのことを知らない。
るプロセッサ、たとえば10Aと100にある場合、そ
れらの処理はそのことを知らない。
それらt;I) M S G S N D =7− ル
トM S G RCV =l −ルは局所で動作し、R
878層は必要なカーネル・レベルの通信の手配をする
。他の場合で2つの処理が1つのプロセッサ、たとえば
ユニットIOBで実行される場合、それらの処理は、い
かなる形でも変更される必要はなく、以前のように実行
されることになる。
トM S G RCV =l −ルは局所で動作し、R
878層は必要なカーネル・レベルの通信の手配をする
。他の場合で2つの処理が1つのプロセッサ、たとえば
ユニットIOBで実行される場合、それらの処理は、い
かなる形でも変更される必要はなく、以前のように実行
されることになる。
さらに、2つのプロセッサ・ユニットIOA及び10C
内で走行中に、プロセッサの1つ、たとえばユニットI
OAが崩壊した場合、ユニット10C中の生き残った処
理は、崩壊前にユニット10A中の処理から送られたす
べてのメツセージを受信でき、崩壊時にユニットIOA
から送信中の部分メツセージは受信しないことになる。
内で走行中に、プロセッサの1つ、たとえばユニットI
OAが崩壊した場合、ユニット10C中の生き残った処
理は、崩壊前にユニット10A中の処理から送られたす
べてのメツセージを受信でき、崩壊時にユニットIOA
から送信中の部分メツセージは受信しないことになる。
この実施態様は、行及びページ境界上の異なるキューに
対するデータ構造のレイアウトを提案するものである。
対するデータ構造のレイアウトを提案するものである。
これは、異なるキューに対するコール間の干渉を防止す
るためであり、この技術によって、R878層のベージ
ング及びロッキング・トラフィックの量が減少する。こ
れは、よりコンパクトな構成よりも多くの仮想記憶域を
使用するが、妥当なトレードオフと思われる。
るためであり、この技術によって、R878層のベージ
ング及びロッキング・トラフィックの量が減少する。こ
れは、よりコンパクトな構成よりも多くの仮想記憶域を
使用するが、妥当なトレードオフと思われる。
回復可能共有仮想域(R3VS)に基づく共存データ構
造の1つの形であるメッセージ・キューに対する実施態
様についての上記の説明は、通信する処理間での明示的
なメツセージのバスに依存する実施態様に比べて、トラ
ンザクシVンが呼出し側プロセッサによって実行されず
、メッセージ・キューを含むプロセッサに送られ、次い
でそこで実行されて、その結果が発信側プロセッサに戻
されるという、大きな利点をもたらす。メッセージ・キ
ューの回復可能共存仮想域(R8VS)による実施態様
は、関連特許出願(AT9−87−051)に記載され
たマシン間通信システムを使うと機能拡張される。その
結果、すべてのメツセージ・バス力、°オペレーティン
グ・システムの非常に小さい部分に含まれるようになる
。すなわち、オペレーティング・システムの残りの部分
が、単一プロセッサ用のオペレーティング・システムと
同じくらい単純に実施できる。
造の1つの形であるメッセージ・キューに対する実施態
様についての上記の説明は、通信する処理間での明示的
なメツセージのバスに依存する実施態様に比べて、トラ
ンザクシVンが呼出し側プロセッサによって実行されず
、メッセージ・キューを含むプロセッサに送られ、次い
でそこで実行されて、その結果が発信側プロセッサに戻
されるという、大きな利点をもたらす。メッセージ・キ
ューの回復可能共存仮想域(R8VS)による実施態様
は、関連特許出願(AT9−87−051)に記載され
たマシン間通信システムを使うと機能拡張される。その
結果、すべてのメツセージ・バス力、°オペレーティン
グ・システムの非常に小さい部分に含まれるようになる
。すなわち、オペレーティング・システムの残りの部分
が、単一プロセッサ用のオペレーティング・システムと
同じくらい単純に実施できる。
本発明では、メッセージ・キューに対する動作を実施し
、他のシステム・サービスを実施する「2段階コミット
」も不要となる。すなわち、システム・サービスが、明
示的「メツセージ・バス」によって実施される場合より
も、少しの作業で実施でき、効率的に実行でき、低いコ
ストで修正及び維持できる。さらに、このようにしてシ
ステム・サービスを実施すると、システム拳サービスの
実施が極めて簡単になる。機能を維持し、オペレーティ
ング・システムに機能を追加することも簡単になる。
、他のシステム・サービスを実施する「2段階コミット
」も不要となる。すなわち、システム・サービスが、明
示的「メツセージ・バス」によって実施される場合より
も、少しの作業で実施でき、効率的に実行でき、低いコ
ストで修正及び維持できる。さらに、このようにしてシ
ステム・サービスを実施すると、システム拳サービスの
実施が極めて簡単になる。機能を維持し、オペレーティ
ング・システムに機能を追加することも簡単になる。
以上の説明では、回復可能共有仮想記憶域をどのように
使用すれば、マルチプロセッサのクラスタ内でAIXメ
ッセージ・キューを信頼できるものにすることができる
か、すなわちクラスタ内の1つの単一プロセッサが故障
した場合でさえ、キュー及びそれに含まれたメツセージ
が存続できるかを示したが、当業者には明らかなように
、他のシステム機能及び共存データ構造も信頼できるも
のにすることができ、また本発明の精神と特許請求の範
囲を逸脱せずに、本発明に他の様々な修正を加えること
ができる。
使用すれば、マルチプロセッサのクラスタ内でAIXメ
ッセージ・キューを信頼できるものにすることができる
か、すなわちクラスタ内の1つの単一プロセッサが故障
した場合でさえ、キュー及びそれに含まれたメツセージ
が存続できるかを示したが、当業者には明らかなように
、他のシステム機能及び共存データ構造も信頼できるも
のにすることができ、また本発明の精神と特許請求の範
囲を逸脱せずに、本発明に他の様々な修正を加えること
ができる。
第1図は、本発明の方法が有利に適用できるクラスタ構
成で相互接続された複数のプロセッサ・ユニットの機能
構成図である。 第2図は、ユニットの1つに組み込まれている様々な機
能を示す、第1図に示すプロセッサ・ユニットの1つの
構成図である。。 第3A図は、メッセージ・キュー情報表(MSGQUI
T)の書式を示す図である。 第3B図は、MSGQUITへのアクセスを制御する制
御情報の書式を示す図である。 第3C図は、メッセージ・キュー情報表(MSGQUI
T)の項目の書式を示す図である。 第3D図は、メッセージ・キュー・ヘッダヲ含むMSG
QHDRセグメントを示す図である。 第3E図は、メッセージ・キュー・ヘッダ項目の書式を
示す図である。 第3F図は、メツセージ・テキストを含むMSGTXT
セグメントを示す図である。MSGQHDRセグメント
とそのMSGTXTセグメントの間、及びそれぞれの項
目間には1対1の対応がある。 第4図は、メッセージ・キュー識別子(MSGQU I
D)の書式を示す図である。 第5図は、メッセージ・キュー情報表を作成するために
オペレーティング・システムが実行するステップを記述
する流れ図である。 第8A、図及び第6B図は、rMSGGETJシステム
・コールが発行されるとき、所与の処理装置で実行中の
回復可能共有仮想システムが実行するステ、プを記述す
る流れ図である。MSGGETシステム・コールは、メ
ッセージ・キューを作成し、またはそれにアクセスする
ために使用される。 第7A図及び第7B図は、「MSGTL」システム・コ
ールが発行されるとき、所与の処理装置で実行中の回復
可能共有仮想メモリ・システムが実行するステップを記
述する流れ図である。MSCGTLシステム・コールは
、メッセージ・キューの状況を照会し、そのアクセス許
可を変更し、またはそれを破壊するのに使用される。 第8A図と第8B図は、rMsGsNDJシステム・コ
ールが発行されるとき、所与の処理装置で実行中の回復
可能共有仮想メモリ・システムが実行するステップを記
述する流れ図である。MSGSNDシステム・コールは
、メツセージをメッセージ・キューに入れるのに使用さ
れる。 10・・・・フロセッサ・ユニット、16・・・・プロ
セッサ、17・・・・主記憶装置、18・・・・記憶制
御装置(SCU)、20・・・・ポート、21.22・
・・・端末、23・・・・プリンタ、24・・・・ディ
スク・ドライブ。 出願人 インターナシ1ナル・ビジネス・マシーンズ
番コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) 3】 第 B 図 第 C 図 第 B 図 第 B 図 第 図 第 8A 図 第 B 図
成で相互接続された複数のプロセッサ・ユニットの機能
構成図である。 第2図は、ユニットの1つに組み込まれている様々な機
能を示す、第1図に示すプロセッサ・ユニットの1つの
構成図である。。 第3A図は、メッセージ・キュー情報表(MSGQUI
T)の書式を示す図である。 第3B図は、MSGQUITへのアクセスを制御する制
御情報の書式を示す図である。 第3C図は、メッセージ・キュー情報表(MSGQUI
T)の項目の書式を示す図である。 第3D図は、メッセージ・キュー・ヘッダヲ含むMSG
QHDRセグメントを示す図である。 第3E図は、メッセージ・キュー・ヘッダ項目の書式を
示す図である。 第3F図は、メツセージ・テキストを含むMSGTXT
セグメントを示す図である。MSGQHDRセグメント
とそのMSGTXTセグメントの間、及びそれぞれの項
目間には1対1の対応がある。 第4図は、メッセージ・キュー識別子(MSGQU I
D)の書式を示す図である。 第5図は、メッセージ・キュー情報表を作成するために
オペレーティング・システムが実行するステップを記述
する流れ図である。 第8A、図及び第6B図は、rMSGGETJシステム
・コールが発行されるとき、所与の処理装置で実行中の
回復可能共有仮想システムが実行するステ、プを記述す
る流れ図である。MSGGETシステム・コールは、メ
ッセージ・キューを作成し、またはそれにアクセスする
ために使用される。 第7A図及び第7B図は、「MSGTL」システム・コ
ールが発行されるとき、所与の処理装置で実行中の回復
可能共有仮想メモリ・システムが実行するステップを記
述する流れ図である。MSCGTLシステム・コールは
、メッセージ・キューの状況を照会し、そのアクセス許
可を変更し、またはそれを破壊するのに使用される。 第8A図と第8B図は、rMsGsNDJシステム・コ
ールが発行されるとき、所与の処理装置で実行中の回復
可能共有仮想メモリ・システムが実行するステップを記
述する流れ図である。MSGSNDシステム・コールは
、メツセージをメッセージ・キューに入れるのに使用さ
れる。 10・・・・フロセッサ・ユニット、16・・・・プロ
セッサ、17・・・・主記憶装置、18・・・・記憶制
御装置(SCU)、20・・・・ポート、21.22・
・・・端末、23・・・・プリンタ、24・・・・ディ
スク・ドライブ。 出願人 インターナシ1ナル・ビジネス・マシーンズ
番コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) 3】 第 B 図 第 C 図 第 B 図 第 B 図 第 図 第 8A 図 第 B 図
Claims (4)
- (1)通信リンクにより相互接続された複数の処理装置
を有するデータ処理システムであって、上記複数の処理
装置の各々により共有可能であり、複数の仮想記憶セグ
メントを有し、該セグメントの各々が上記処理装置の任
意のものから同じ仮想アドレスによりアクセス可能な仮
想記憶装置と、 仮想ページの少なくとも2つのコピーを、各々異なった
処理装置上に保持する手段と、 変更された上記ページの各々に関する上記コピーの各々
を自動的に更新する手段と、 システム中の複数のメッセージ・キューに関する情報を
有する、仮想記憶セグメント中に記憶されたメッセージ
・キュー・テーブルと、 第1の処理装置中のプロセスによって形成されたメッセ
ージ・キューを、上記第1の処理装置によって形成され
た仮想記憶セグメント中に置く手段とを含むデータ処理
システム。 - (2)通信リンクにより相互接続された複数の処理装置
を有するデータ処理システムにおいて、システム全体に
わたるデータ構造の信頼性を保証するためのシステムで
あつて、 複数の処理装置の間で仮想記憶を共有する手段と、 上記処理装置の各々から同じアドレスによって上記仮想
記憶の複数の仮想記憶セグメントの各々にアクセスする
手段と、 要求元プロセスによって仮想記憶セグメント中にメッセ
ージを置く手段と、 上記置かれたメッセージに関する受信側処理装置により
周期的に上記仮想記憶セグメントを調査する手段とを有
するシステム。 - (3)通信リンクにより相互接続された複数の処理装置
を有し、上記各処理装置が仮想記憶セグメントを共有し
、上記各セグメントが上記処理装置の任意のものから同
じ仮想アドレスによりアクセス可能なデータ処理システ
ムにおいて、システム全体にわたるデータ構造の信頼性
を保証するためのシステムであつて、 複数のシステム全体にわたるデータ構造に関する識別情
報を有し、システムの起動時に処理装置の1つによって
形成される、仮想記憶セグメント中に記憶されたテーブ
ルと、 上記テーブルを含む仮想記憶セグメントを所有する処理
装置に関してバックアップ処理装置を割当て、上記テー
ブルのコピーを上記バック・アップ処理装置中に記憶す
る手段と、 上記識別情報を使用する処理装置による最初のシステム
・コールの発行時に、上記テーブルを含む仮想記憶セグ
メントを上記処理装置に取り付ける手段と、 システム・コールの成功終了時に、仮想セグメント中に
記憶された上記テーブルの全てのコピーを更新する手段
とを有するシステム。 - (4)通信リンクにより相互接続された複数の処理装置
を有するデータ処理システムにおいて、システム全体に
わたるデータ構造の信頼性を保証するためのシステムで
あって、 複数の処理装置の各々により仮想記憶を共有する手段と
、 上記処理装置の任意のものから仮想アドレスによって上
記仮想記憶の複数の仮想記憶セグメントの各々にアクセ
スする手段と、 複数のデータ構造に関する識別情報を第1の仮想記憶セ
グメント中に記憶するための第1の処理装置により形成
されたテーブルと、 上記第1の処理装置に少なくとも1つのバック・アップ
処理装置を割当てる手段と、 上記バック・アップ処理装置に第1の処理装置中の上記
テーブルをコピーする手段と、 上記複数の処理装置の任意のものの中のプロセスから、
処理装置により所有されているデータ構造に対して原子
的なトランザクションを実行するシステム・コールを発
行する手段と、 上記データ構造を所有している上記処理装置に対してバ
ック・アップ処理装置を割当てる手段と、トランザクシ
ョンの成功終了時にデータ構造の全てのコピーを更新す
る手段とを有するシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US298384 | 1989-01-18 | ||
| US07/298,384 US5222217A (en) | 1989-01-18 | 1989-01-18 | System and method for implementing operating system message queues with recoverable shared virtual storage |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02228744A true JPH02228744A (ja) | 1990-09-11 |
| JPH0557619B2 JPH0557619B2 (ja) | 1993-08-24 |
Family
ID=23150268
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007274A Granted JPH02228744A (ja) | 1989-01-18 | 1990-01-18 | データ処理システム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5222217A (ja) |
| EP (1) | EP0381644A3 (ja) |
| JP (1) | JPH02228744A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07239812A (ja) * | 1994-02-28 | 1995-09-12 | Sanyo Electric Co Ltd | 情報処理装置 |
Families Citing this family (120)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5390302A (en) * | 1991-02-21 | 1995-02-14 | Digital Equipment Corporation | Transaction control |
| US5426747A (en) * | 1991-03-22 | 1995-06-20 | Object Design, Inc. | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system |
| US5892953A (en) * | 1991-04-15 | 1999-04-06 | International Business Machines Corporation | Corrective service facility |
| JP3189903B2 (ja) * | 1991-06-03 | 2001-07-16 | 富士通株式会社 | ケーパビリティの退避・復元機構を持つ装置 |
| JPH0812616B2 (ja) * | 1991-09-11 | 1996-02-07 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オペレーティングシステムカーネル用受動回復方法およびシステム |
| US5499367A (en) * | 1991-11-15 | 1996-03-12 | Oracle Corporation | System for database integrity with multiple logs assigned to client subsets |
| EP0551009B1 (en) * | 1992-01-08 | 2001-06-13 | Emc Corporation | Method for synchronizing reserved areas in a redundant storage array |
| JPH0619785A (ja) * | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
| WO1994000816A1 (en) * | 1992-06-18 | 1994-01-06 | Andor Systems, Inc. | Remote dual copy of data in computer systems |
| GB2276739A (en) * | 1993-03-30 | 1994-10-05 | Ibm | System for storing persistent and non-persistent queued data. |
| US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
| US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
| US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
| EP1031928B1 (en) | 1993-06-04 | 2005-05-18 | Network Appliance, Inc. | A method for providing parity in a raid sub-system using non-volatile memory |
| 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 |
| JP3188071B2 (ja) * | 1993-10-14 | 2001-07-16 | 富士通株式会社 | ディスクキャッシュ装置 |
| GB9323241D0 (en) * | 1993-11-11 | 1994-01-05 | Int Computers Ltd | Message handler |
| US5588147A (en) * | 1994-01-14 | 1996-12-24 | Microsoft Corporation | Replication facility |
| US5796999A (en) * | 1994-04-15 | 1998-08-18 | International Business Machines Corporation | Method and system for selectable consistency level maintenance in a resilent database system |
| US5649092A (en) * | 1994-04-21 | 1997-07-15 | Unisys Corporation | Fault tolerant apparatus and method for maintaining one or more queues that are shared by multiple processors |
| US6029205A (en) * | 1994-12-22 | 2000-02-22 | Unisys Corporation | System architecture for improved message passing and process synchronization between concurrently executing processes |
| US5555396A (en) * | 1994-12-22 | 1996-09-10 | Unisys Corporation | Hierarchical queuing in a system architecture for improved message passing and process synchronization |
| US5602998A (en) * | 1994-12-22 | 1997-02-11 | Unisys Corporation | Dequeue instruction in a system architecture for improved message passing and process synchronization |
| US5797005A (en) * | 1994-12-30 | 1998-08-18 | International Business Machines Corporation | Shared queue structure for data integrity |
| CA2167632A1 (en) | 1995-01-23 | 1996-07-24 | Leonard R. Fishler | Apparatus and method for efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system |
| JP3253473B2 (ja) * | 1995-01-27 | 2002-02-04 | 富士通株式会社 | 二重化された共用メモリの等価性回復処理方法および装置 |
| 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 |
| US6633897B1 (en) * | 1995-06-30 | 2003-10-14 | International Business Machines Corporation | Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler |
| JPH0962586A (ja) * | 1995-08-25 | 1997-03-07 | Fujitsu Ltd | 情報処理装置及び情報処理装置におけるデータ処理方法 |
| US5778168A (en) * | 1995-09-11 | 1998-07-07 | Sun Microsystems, Inc. | Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device |
| US5978894A (en) * | 1995-11-27 | 1999-11-02 | Hitachi, Ltd. | Method of interprocessor data transfer using a network, virtual addresses and paging, a buffer, flags, data transfer status information and user accessible storage areas in main memory |
| US5906658A (en) * | 1996-03-19 | 1999-05-25 | Emc Corporation | Message queuing on a data storage system utilizing message queuing in intended recipient's queue |
| US6412017B1 (en) | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
| US5805786A (en) * | 1996-07-23 | 1998-09-08 | International Business Machines Corporation | Recovery of a name server managing membership of a domain of processors in a distributed computing environment |
| US6049809A (en) * | 1996-10-30 | 2000-04-11 | Microsoft Corporation | Replication optimization system and method |
| US6353834B1 (en) * | 1996-11-14 | 2002-03-05 | Mitsubishi Electric Research Laboratories, Inc. | Log based data architecture for a transactional message queuing system |
| EP0854423A1 (en) | 1997-01-20 | 1998-07-22 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Data partitioning and duplication in a distributed data processing system |
| US5933838A (en) * | 1997-03-10 | 1999-08-03 | Microsoft Corporation | Database computer system with application recovery and recovery log sequence numbers to optimize recovery |
| US6029204A (en) * | 1997-03-13 | 2000-02-22 | International Business Machines Corporation | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries |
| US5864851A (en) * | 1997-04-14 | 1999-01-26 | Lucent Technologies Inc. | Method and system for managing replicated data with enhanced consistency and concurrency |
| US6516351B2 (en) | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
| US6633922B1 (en) | 1997-12-15 | 2003-10-14 | International Business Machines Corporation | Object access mechanism that dynamically switches between multiple distributed access models |
| US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
| US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
| US6289432B1 (en) | 1998-03-25 | 2001-09-11 | International Business Machines Corporation | Sharing segments of storage by enabling the sharing of page tables |
| US6202067B1 (en) * | 1998-04-07 | 2001-03-13 | Lucent Technologies, Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
| US6279011B1 (en) | 1998-06-19 | 2001-08-21 | Network Appliance, Inc. | Backup and restore for heterogeneous file server environment |
| US6269381B1 (en) | 1998-06-30 | 2001-07-31 | Emc Corporation | Method and apparatus for backing up data before updating the data and for restoring from the backups |
| US6366986B1 (en) * | 1998-06-30 | 2002-04-02 | Emc Corporation | Method and apparatus for differential backup in a computer storage system |
| US6182197B1 (en) | 1998-07-10 | 2001-01-30 | International Business Machines Corporation | Real-time shared disk system for computer clusters |
| US6286110B1 (en) * | 1998-07-30 | 2001-09-04 | Compaq Computer Corporation | Fault-tolerant transaction processing in a distributed system using explicit resource information for fault determination |
| US6574591B1 (en) | 1998-07-31 | 2003-06-03 | Network Appliance, Inc. | File systems image transfer between dissimilar file systems |
| US6119244A (en) * | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
| US6247024B1 (en) * | 1998-09-25 | 2001-06-12 | International Business Machines Corporation | Method and system for performing deferred file removal in a file system |
| US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
| JP2000181890A (ja) * | 1998-12-15 | 2000-06-30 | Fujitsu Ltd | マルチプロセッサ交換機及びその主プロセッサ切替方法 |
| JP4294142B2 (ja) * | 1999-02-02 | 2009-07-08 | 株式会社日立製作所 | ディスクサブシステム |
| US6411981B1 (en) | 1999-03-12 | 2002-06-25 | Compaq Computer Corporation | Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer |
| US6336173B1 (en) | 1999-04-01 | 2002-01-01 | International Business Machines Corporation | Storing and tracking multiple copies of data in data storage libraries |
| US6336172B1 (en) | 1999-04-01 | 2002-01-01 | International Business Machines Corporation | Storing and tracking multiple copies of data in a data storage library system |
| US6473829B1 (en) | 1999-05-28 | 2002-10-29 | International Business Machines Corporation | Data storage device providing communication between processing units |
| US6961749B1 (en) | 1999-08-25 | 2005-11-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
| US6343324B1 (en) * | 1999-09-13 | 2002-01-29 | International Business Machines Corporation | Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices |
| US6976260B1 (en) * | 1999-09-24 | 2005-12-13 | International Business Machines Corporation | Method and apparatus for serializing a message queue in a multiprocessing environment |
| TW454120B (en) | 1999-11-11 | 2001-09-11 | Miralink Corp | Flexible remote data mirroring |
| US6523078B1 (en) | 1999-11-23 | 2003-02-18 | Steeleye Technology, Inc. | Distributed locking system and method for a clustered system having a distributed system for storing cluster configuration information |
| US6883120B1 (en) | 1999-12-03 | 2005-04-19 | Network Appliance, Inc. | Computer assisted automatic error detection and diagnosis of file servers |
| US6715034B1 (en) | 1999-12-13 | 2004-03-30 | Network Appliance, Inc. | Switching file system request in a mass storage system |
| US6769027B1 (en) * | 2000-01-31 | 2004-07-27 | Avaya Technology Corp. | System and method for using multi-headed queues for bookmarking in backup/recover scenarios |
| US7346910B1 (en) * | 2000-05-26 | 2008-03-18 | International Business Machines Incorporation | Administration of groups of computer programs, data processing systems, or system resources |
| US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
| US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
| US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
| US6816941B1 (en) | 2000-10-23 | 2004-11-09 | International Business Machines Corporation | Method and system for efficiently importing/exporting removable storage volumes between virtual storage systems |
| US6993523B1 (en) | 2000-12-05 | 2006-01-31 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency in a data base page |
| US6721739B1 (en) | 2000-12-05 | 2004-04-13 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple pages |
| US6751636B1 (en) | 2000-12-05 | 2004-06-15 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple instances of a database |
| US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
| JP3690295B2 (ja) * | 2001-03-15 | 2005-08-31 | 日本電気株式会社 | ディスクアレイ制御装置 |
| WO2002078292A1 (en) * | 2001-03-26 | 2002-10-03 | Duaxes Corporation | Protocol duplexer and protocol duplexing method |
| US6668264B1 (en) | 2001-04-03 | 2003-12-23 | Network Appliance, Inc. | Resynchronization of a target volume with a source volume |
| US7274706B1 (en) * | 2001-04-24 | 2007-09-25 | Syrus Ziai | Methods and systems for processing network data |
| US6901533B2 (en) * | 2001-08-23 | 2005-05-31 | International Business Machines Corporation | Reconstructing memory residents queues of an inactive processor |
| US20030110232A1 (en) * | 2001-12-11 | 2003-06-12 | International Business Machines Corporation | Distributing messages between local queues representative of a common shared queue |
| US7185033B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
| US7181482B2 (en) * | 2002-08-01 | 2007-02-20 | Oracle International Corporation | Buffered message queue architecture for database management systems |
| US7185034B2 (en) * | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with guaranteed at least once delivery |
| US7203706B2 (en) | 2002-08-01 | 2007-04-10 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue |
| US8365193B2 (en) * | 2003-08-14 | 2013-01-29 | Oracle International Corporation | Recoverable asynchronous message driven processing in a multi-node system |
| US7457796B2 (en) * | 2004-07-08 | 2008-11-25 | International Business Machines Corporation | Method using virtual replicated tables in a cluster database management system |
| US7703098B1 (en) | 2004-07-20 | 2010-04-20 | Sun Microsystems, Inc. | Technique to allow a first transaction to wait on condition that affects its working set |
| US8074030B1 (en) * | 2004-07-20 | 2011-12-06 | Oracle America, Inc. | Using transactional memory with early release to implement non-blocking dynamic-sized data structure |
| US7610200B2 (en) * | 2004-08-30 | 2009-10-27 | Lsi Corporation | System and method for controlling sound data |
| US7792274B2 (en) * | 2004-11-04 | 2010-09-07 | Oracle International Corporation | Techniques for performing multi-media call center functionality in a database management system |
| US7779418B2 (en) * | 2004-12-30 | 2010-08-17 | Oracle International Corporation | Publisher flow control and bounded guaranteed delivery for message queues |
| US7818386B2 (en) * | 2004-12-30 | 2010-10-19 | Oracle International Corporation | Repeatable message streams for message queues in distributed systems |
| US7970803B2 (en) | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
| US7873683B2 (en) * | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
| US8959125B2 (en) * | 2005-07-01 | 2015-02-17 | 226008 Ontario Inc. | File system having inverted hierarchical structure |
| US7809777B2 (en) * | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data integrity |
| US7720925B1 (en) * | 2005-08-03 | 2010-05-18 | Oracle America, Inc. | Multiple message receive routine for network packets |
| US7568013B1 (en) * | 2005-08-03 | 2009-07-28 | Sun Microsystems, Inc. | Multiple message send routine for network packets |
| US8196150B2 (en) * | 2005-10-07 | 2012-06-05 | Oracle International Corporation | Event locality using queue services |
| US20080059510A1 (en) * | 2006-08-31 | 2008-03-06 | Daniel Cardamore | Multimedia system framework having layer consolidating access to multiple media devices |
| US7908276B2 (en) * | 2006-08-25 | 2011-03-15 | Qnx Software Systems Gmbh & Co. Kg | Filesystem having a filename cache |
| US8566503B2 (en) * | 2006-08-25 | 2013-10-22 | Qnx Software Systems Limited | Multimedia filesystem having unified representation of content on diverse multimedia devices |
| US20080147747A1 (en) * | 2006-12-14 | 2008-06-19 | Dan Cardamore | Media system having synchronization with preemptive prioritization of synchronization order |
| US9027025B2 (en) * | 2007-04-17 | 2015-05-05 | Oracle International Corporation | Real-time database exception monitoring tool using instance eviction data |
| JP4475598B2 (ja) | 2007-06-26 | 2010-06-09 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
| US8886675B2 (en) * | 2008-01-23 | 2014-11-11 | Sap Se | Method and system for managing data clusters |
| US20090276654A1 (en) * | 2008-05-02 | 2009-11-05 | International Business Machines Corporation | Systems and methods for implementing fault tolerant data processing services |
| US9128895B2 (en) * | 2009-02-19 | 2015-09-08 | Oracle International Corporation | Intelligent flood control management |
| US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
| US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
| US8458530B2 (en) | 2010-09-21 | 2013-06-04 | Oracle International Corporation | Continuous system health indicator for managing computer system alerts |
| CA2867302A1 (en) | 2012-03-14 | 2013-09-19 | Convergent .Io Technologies Inc. | Systems, methods and devices for management of virtual memory systems |
| US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
| US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
| US10540217B2 (en) | 2016-09-16 | 2020-01-21 | Oracle International Corporation | Message cache sizing |
| CN109086144B (zh) | 2017-06-14 | 2022-04-05 | 阿里巴巴集团控股有限公司 | 一种进程之间的通信方法和装置 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5833972B2 (ja) * | 1979-11-12 | 1983-07-23 | 富士通株式会社 | 計算機システム間通信方式 |
| US4313162A (en) * | 1979-12-14 | 1982-01-26 | Burroughs Corporation | I/O Subsystem using data link processors |
| CH637228A5 (fr) * | 1980-03-27 | 1983-07-15 | Willemin Machines Sa | Dispositif de commande d'une machine ou d'une installation. |
| US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
| US4525800A (en) * | 1981-06-01 | 1985-06-25 | General Electric Co. | Enhanced reliability data storage system with second memory for preserving time-dependent progressively updated data from destructive transient conditions |
| US4430700A (en) * | 1981-07-31 | 1984-02-07 | Norand Corporation | System and method for communication between nodes of a closed loop local communication path |
| US4432057A (en) * | 1981-11-27 | 1984-02-14 | International Business Machines Corporation | Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system |
| US4543627A (en) * | 1981-12-14 | 1985-09-24 | At&T Bell Laboratories | Internal communication arrangement for a multiprocessor system |
| EP0092895B1 (en) * | 1982-04-28 | 1988-05-11 | International Computers Limited | Data processing system |
| US4777595A (en) * | 1982-05-07 | 1988-10-11 | Digital Equipment Corporation | Apparatus for transferring blocks of information from one node to a second node in a computer network |
| WO1984002409A1 (en) * | 1982-12-09 | 1984-06-21 | Sequoia Systems Inc | Memory backup system |
| US4872106A (en) * | 1983-04-06 | 1989-10-03 | New Forney Corp. | Industrial process control system with back-up data processors to take over from failed primary data processors |
| US4620276A (en) * | 1983-06-02 | 1986-10-28 | International Business Machines Corporation | Method and apparatus for asynchronous processing of dynamic replication messages |
| US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
| US4718002A (en) * | 1985-06-05 | 1988-01-05 | Tandem Computers Incorporated | Method for multiprocessor communications |
| 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 |
| US4887076A (en) * | 1987-10-16 | 1989-12-12 | Digital Equipment Corporation | Computer interconnect coupler for clusters of data processing devices |
-
1989
- 1989-01-18 US US07/298,384 patent/US5222217A/en not_active Expired - Lifetime
-
1990
- 1990-01-15 EP EP19900850015 patent/EP0381644A3/en not_active Ceased
- 1990-01-18 JP JP2007274A patent/JPH02228744A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07239812A (ja) * | 1994-02-28 | 1995-09-12 | Sanyo Electric Co Ltd | 情報処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5222217A (en) | 1993-06-22 |
| JPH0557619B2 (ja) | 1993-08-24 |
| EP0381644A2 (en) | 1990-08-08 |
| EP0381644A3 (en) | 1991-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02228744A (ja) | データ処理システム | |
| JP2558052B2 (ja) | 仮定コミット2フェーズコミットプロトコルを用いるトランザクション処理システム及びその動作方法 | |
| Haskin et al. | Recovery management in QuickSilver | |
| US7072894B2 (en) | Data management application programming interface handling mount on multiple nodes in a parallel file system | |
| JP3145236B2 (ja) | フォールトトレラントコンピューティング装置 | |
| JP2675955B2 (ja) | データ処理システム | |
| US6192514B1 (en) | Multicomputer system | |
| US4480304A (en) | Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment | |
| EP1015983B1 (en) | Data sharing method and computer architecture | |
| US5860115A (en) | Requesting a dump of information stored within a coupling facility, in which the dump includes serviceability information from an operating system that lost communication with the coupling facility | |
| US20030079093A1 (en) | Server system operation control method | |
| JPH01188965A (ja) | データ処理方法 | |
| US6862595B1 (en) | Method and apparatus for implementing a shared message queue using a list structure | |
| US6424988B2 (en) | Multicomputer system | |
| JPH04310148A (ja) | データの単位を高速度でアクセスする方法 | |
| CN111209142A (zh) | 跨数据库的事务管理方法、装置、设备及存储介质 | |
| US5790868A (en) | Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment | |
| CA2177022A1 (en) | Customer information control system and method with temporary storage queuing 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 | |
| EP0724223B1 (en) | Remote duplicate database facility with database replication support for online line DDL operations | |
| US8589362B1 (en) | Cluster metadata recovery | |
| US20020138704A1 (en) | Method and apparatus fault tolerant shared memory | |
| EP0096199A2 (en) | Method and apparatus for logging journal data in a computing apparatus | |
| EP0049423B1 (en) | Multiprocessor system | |
| US7711721B2 (en) | Apparatus, system, and method for suspending a request during file server serialization reinitialization |