JPH0622015B2 - データ処理システムの制御方法 - Google Patents
データ処理システムの制御方法Info
- Publication number
- JPH0622015B2 JPH0622015B2 JP63233842A JP23384288A JPH0622015B2 JP H0622015 B2 JPH0622015 B2 JP H0622015B2 JP 63233842 A JP63233842 A JP 63233842A JP 23384288 A JP23384288 A JP 23384288A JP H0622015 B2 JPH0622015 B2 JP H0622015B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- processing unit
- segment
- processor unit
- main memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Air Bags (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は同じ仮想メモリのアドレシング空間を共用する
同じように相互接続された複数個のデータ処理ユニツト
を含む仮想ムメリ・データ処理システムにおいて、夫々
のデータ処理ユニツトによつて行われるデイスクの入出
力のアクセスを減少するための方法に関する。
同じように相互接続された複数個のデータ処理ユニツト
を含む仮想ムメリ・データ処理システムにおいて、夫々
のデータ処理ユニツトによつて行われるデイスクの入出
力のアクセスを減少するための方法に関する。
B.従来の技術 単一の独立型の中央処理ユニツト(CPU)を用いた複
数個の仮想メモリを有するデータ処理システムは従来か
ら知られている。通常、これらの仮想メモリのデータ処
理システムは、1バイトのデータを記憶し、かつ個々に
アドレスし得る多数の記憶位置を有する主メモリと、デ
ータをブロツクで記憶し、ブロツクでアドレスする複数
個の記憶位置を含むデイスク・フアイルのような2次ス
トレージ装置とを使用している。従来のデイスク・フア
イル装置の説明を簡略にするために、デイスク・フアイ
ルの各ブロツク・アドレスは、例えば2Kバイト(実際
は2048バイト)のデータを記憶するものと便宜上仮
定する。仮想メモリは、しばしば単一レベル記憶装置と
呼ばれている概念を含んでいる。単一レベル記憶装置に
おいて、システムの最大アドレス範囲は通常、主メモリ
の実際の容量よりも遥かに大きい。主メモリはページン
グ機構と、主メモリ中のアプリケーシヨン・プログラム
(適用業務プログラム)によつて必要とするデータを保
持するために共働する2次的な記憶装置とを使用するこ
とによつて遥かに大きく見えるようにされている。
数個の仮想メモリを有するデータ処理システムは従来か
ら知られている。通常、これらの仮想メモリのデータ処
理システムは、1バイトのデータを記憶し、かつ個々に
アドレスし得る多数の記憶位置を有する主メモリと、デ
ータをブロツクで記憶し、ブロツクでアドレスする複数
個の記憶位置を含むデイスク・フアイルのような2次ス
トレージ装置とを使用している。従来のデイスク・フア
イル装置の説明を簡略にするために、デイスク・フアイ
ルの各ブロツク・アドレスは、例えば2Kバイト(実際
は2048バイト)のデータを記憶するものと便宜上仮
定する。仮想メモリは、しばしば単一レベル記憶装置と
呼ばれている概念を含んでいる。単一レベル記憶装置に
おいて、システムの最大アドレス範囲は通常、主メモリ
の実際の容量よりも遥かに大きい。主メモリはページン
グ機構と、主メモリ中のアプリケーシヨン・プログラム
(適用業務プログラム)によつて必要とするデータを保
持するために共働する2次的な記憶装置とを使用するこ
とによつて遥かに大きく見えるようにされている。
ページング機構の機能は、アプリケーシヨン・プログラ
ムによつてアドレスされたページが主メモリに存在しな
いときは常に、デイスク・フアイルから主メモリへ、デ
ータのページを転送することにある。これは「ページ不
在」(page fault)と呼ばれている。デイスク・フアイ
ルから主メモリへデータのページを転送することは「ペ
ージ不在」処理と呼ばれている。
ムによつてアドレスされたページが主メモリに存在しな
いときは常に、デイスク・フアイルから主メモリへ、デ
ータのページを転送することにある。これは「ページ不
在」(page fault)と呼ばれている。デイスク・フアイ
ルから主メモリへデータのページを転送することは「ペ
ージ不在」処理と呼ばれている。
デイスクのアクセス時間は、例えば数ミリ秒を必要とす
る程、その処理速度が相対的に遅く、これに反して、主
メモリのアクセス時間は、例えば1マイクロ秒以下のよ
うに処理速度が相対的に早いので、仮想メモリ・データ
処理システムの性能は、デイスクのアクセス回数に直接
的に関係する。従つて、従来の仮想メモリ・システム
は、デイスクのアクセスの回数を減少させ、そして仮想
メモリ中で行なわれる「ヒツト」(当り)の百分率を増
加させる技術を使用している。アプリケーシヨン・プロ
グラムがデータをアドレスした時に、アプリケーシヨン
・プログラムによつてアドレスされたデータが主メモリ
中に存在しているならば、仮想メモリのアドレス中にヒ
ツトが生じる。仮想メモリ・システムのヒツトの比率r
はアドレスした仮想メモリのヒツトの回数を、ヒツトの
回数hにミス(空振り)の回数mを加えた数で割つたも
のである。これを数式で表わせば、 r=h/(h+m) である。
る程、その処理速度が相対的に遅く、これに反して、主
メモリのアクセス時間は、例えば1マイクロ秒以下のよ
うに処理速度が相対的に早いので、仮想メモリ・データ
処理システムの性能は、デイスクのアクセス回数に直接
的に関係する。従つて、従来の仮想メモリ・システム
は、デイスクのアクセスの回数を減少させ、そして仮想
メモリ中で行なわれる「ヒツト」(当り)の百分率を増
加させる技術を使用している。アプリケーシヨン・プロ
グラムがデータをアドレスした時に、アプリケーシヨン
・プログラムによつてアドレスされたデータが主メモリ
中に存在しているならば、仮想メモリのアドレス中にヒ
ツトが生じる。仮想メモリ・システムのヒツトの比率r
はアドレスした仮想メモリのヒツトの回数を、ヒツトの
回数hにミス(空振り)の回数mを加えた数で割つたも
のである。これを数式で表わせば、 r=h/(h+m) である。
また、データの処理能力を増加させるために、複数個の
プロセツサを使用した多重プロセツサ・システム構成も
公知である。多重プロセツサ・システム構成は、論理的
コミニユケーシヨン・チヤンネルを共用する複数の処理
ユニツトとして捉えることが出来る。論理的コミニユケ
ーシヨン・チヤンネルは、複数の処理ユニツトの間で共
用されるメモリであつて、1つの処理ユニツトから他の
処理ユニツトへのメツセージを記憶するためのメモリで
あると考えることが出来る。更に、論理的コミニユケー
シヨン・チヤンネルは1方の処理ユニツトから他方の処
理ユニツトへメツセージを転送する際に、メツセージを
過させるコミニユケーシヨン・ネツトワークの形式を取
ることが出来る。
プロセツサを使用した多重プロセツサ・システム構成も
公知である。多重プロセツサ・システム構成は、論理的
コミニユケーシヨン・チヤンネルを共用する複数の処理
ユニツトとして捉えることが出来る。論理的コミニユケ
ーシヨン・チヤンネルは、複数の処理ユニツトの間で共
用されるメモリであつて、1つの処理ユニツトから他の
処理ユニツトへのメツセージを記憶するためのメモリで
あると考えることが出来る。更に、論理的コミニユケー
シヨン・チヤンネルは1方の処理ユニツトから他方の処
理ユニツトへメツセージを転送する際に、メツセージを
過させるコミニユケーシヨン・ネツトワークの形式を取
ることが出来る。
強結合(tightly-coupled)多重プロセツサ・システム
構成と称されている従来の多重プロセツサ・システム構
成において、構成内のすべての処理ユニツトによつてア
クセスすることが出来るある容量のメモリを共用し、そ
して、各処理ユニツトは、その処理ユニツトだけしかア
クセスすることができず、他の処理ユニツトによつては
アクセスすることのできない、ある容量の専用メモリを
持つているような多重プロセツサ・システム構成があ
る。
構成と称されている従来の多重プロセツサ・システム構
成において、構成内のすべての処理ユニツトによつてア
クセスすることが出来るある容量のメモリを共用し、そ
して、各処理ユニツトは、その処理ユニツトだけしかア
クセスすることができず、他の処理ユニツトによつては
アクセスすることのできない、ある容量の専用メモリを
持つているような多重プロセツサ・システム構成があ
る。
強結合多重プロセツサ構成に配列された計算システム
は、共用メモリによる迅速なコミニユケーシヨンの利点
を持つており、また、デイスク・キヤツシユとしての共
用メモリをも利用することになる。ページ不在は、強結
合多重プロセツサ構成中の1つの処理ユニツトによつて
実行されるアプリケーシヨン・プログラムが、主メモリ
に存在しないデータのページをアドレスした時に生じ
る。ページ不在処理の間において、この多重プロセツサ
構成に接続されている2次ストージ装置は、共用メモリ
中にデータのページを読込むように命される。データの
ページが共用メモリに読込まれると、そのデータはこの
多重プロセツサ構成中の任意の処理ユニツトによつてア
ドレスすることが出来る。
は、共用メモリによる迅速なコミニユケーシヨンの利点
を持つており、また、デイスク・キヤツシユとしての共
用メモリをも利用することになる。ページ不在は、強結
合多重プロセツサ構成中の1つの処理ユニツトによつて
実行されるアプリケーシヨン・プログラムが、主メモリ
に存在しないデータのページをアドレスした時に生じ
る。ページ不在処理の間において、この多重プロセツサ
構成に接続されている2次ストージ装置は、共用メモリ
中にデータのページを読込むように命される。データの
ページが共用メモリに読込まれると、そのデータはこの
多重プロセツサ構成中の任意の処理ユニツトによつてア
ドレスすることが出来る。
多重プロセツサ構成中の複数の処理ユニツトが共通の問
題を処理している場合、「参照の局所性」(locality o
f reference)を経験するような方法で、それらの処理
ユニツトがデータをアクセスするのが普通である。その
データのページを保持する共用メモリ中のページ・フー
ムが、他のデータのページを保持するよう、多重プロセ
ツサ構成によつて再使用される前に、この多重プロセツ
サ構成中の1つの処理ユニツトで実行するアプリケーシ
ヨン・プログラムによつて仮想ムメリにアクセスするこ
とから生じたページ不在を満足するために、2次ストレ
ージから検索されて、共用メモリに置かれた(読みこま
れた)データのページが、この構成中の他の処理ユニツ
トで実行する他のアプリケーシヨン・プログラムによつ
てアクセスされるであろう可能性がゼロではない時に、
「参照の局所性」が使われる。多重プロセツサ構成中の
他の処理ユニツトで実行するアプリケーシヨン・プログ
ラムによるアクセスが生じた場合に、多重プロセツサ構
成は、共用メモリに既に存在するデータのページによつ
て、ページ不在を解決することによりデイスクのアクセ
スを行わずに済ますことが出来る。
題を処理している場合、「参照の局所性」(locality o
f reference)を経験するような方法で、それらの処理
ユニツトがデータをアクセスするのが普通である。その
データのページを保持する共用メモリ中のページ・フー
ムが、他のデータのページを保持するよう、多重プロセ
ツサ構成によつて再使用される前に、この多重プロセツ
サ構成中の1つの処理ユニツトで実行するアプリケーシ
ヨン・プログラムによつて仮想ムメリにアクセスするこ
とから生じたページ不在を満足するために、2次ストレ
ージから検索されて、共用メモリに置かれた(読みこま
れた)データのページが、この構成中の他の処理ユニツ
トで実行する他のアプリケーシヨン・プログラムによつ
てアクセスされるであろう可能性がゼロではない時に、
「参照の局所性」が使われる。多重プロセツサ構成中の
他の処理ユニツトで実行するアプリケーシヨン・プログ
ラムによるアクセスが生じた場合に、多重プロセツサ構
成は、共用メモリに既に存在するデータのページによつ
て、ページ不在を解決することによりデイスクのアクセ
スを行わずに済ますことが出来る。
然しながら、共用メモリをデイスク・キヤツシユとして
用いた時、処理ユニツトが、共用メモリをアクセスする
際に、多重プロセツサ構成中の処理ユニツトの間でのア
クセスの競合が、共用メモリによつて与えられる利益を
越える程、大きくなつた時、強結合多重プロセツサの構
成の実際上の限界がある。例えば、その構成中の他方の
処理ユニツトが、データのページの内容の検索を行つて
いるときに、1方の処理ユニツトがデータの同じページ
の内容の変更を行おうとしている場合がある。このよう
な場合に対処するために通常、2つの処理ユニツトはデ
ータについて調和を持つように、他方の処理ユニツトの
立場で処理ユニツトのうちの1つを監視するためのある
種の手段が設けられている。強結合多重プロセツサ構成
において、複数の処理ユニツトに関するデータについて
調和を持たせるために、幾つかの従来技術がある。これ
らの方法は、その構成中の他の処理ユニツトが共用メモ
リへのアクセスを完了するまで、その構成中の一方の処
理ユニツトは空転させることを含んでいる。空転してい
る処理ユニツトを更に空転させることは出来ないから、
システム全体として考えたとき、共用メモリのアクセス
の競合が、多重プロセツサ構成の処理能力を減少する結
果を生じることは違けることが出来ない。これらの理由
によつて、単一の強結合多重プロセツサの構成中の処理
ユニツトの数は6台を越えることは殆どない。
用いた時、処理ユニツトが、共用メモリをアクセスする
際に、多重プロセツサ構成中の処理ユニツトの間でのア
クセスの競合が、共用メモリによつて与えられる利益を
越える程、大きくなつた時、強結合多重プロセツサの構
成の実際上の限界がある。例えば、その構成中の他方の
処理ユニツトが、データのページの内容の検索を行つて
いるときに、1方の処理ユニツトがデータの同じページ
の内容の変更を行おうとしている場合がある。このよう
な場合に対処するために通常、2つの処理ユニツトはデ
ータについて調和を持つように、他方の処理ユニツトの
立場で処理ユニツトのうちの1つを監視するためのある
種の手段が設けられている。強結合多重プロセツサ構成
において、複数の処理ユニツトに関するデータについて
調和を持たせるために、幾つかの従来技術がある。これ
らの方法は、その構成中の他の処理ユニツトが共用メモ
リへのアクセスを完了するまで、その構成中の一方の処
理ユニツトは空転させることを含んでいる。空転してい
る処理ユニツトを更に空転させることは出来ないから、
システム全体として考えたとき、共用メモリのアクセス
の競合が、多重プロセツサ構成の処理能力を減少する結
果を生じることは違けることが出来ない。これらの理由
によつて、単一の強結合多重プロセツサの構成中の処理
ユニツトの数は6台を越えることは殆どない。
緊密結合(closely-coupled)多重プロセツサ・システ
ム構成と称される従来の多重プロセツサ・システム他の
構成において、複数個の処理ユニツトが、コミニユケー
シヨン・ネツトワークを介して接続され、そして各処理
ユニツトはそれ自身のメモリに直接にアクセスすること
が出来るが、他のすべての処理ユニツトはそのメモリに
はアクセスすることが出来ないように構成されている。
緊密結合多重プロセツサ・システム構成中の処理ユニツ
トは、コミニユケーシヨン・ネツトワークを介して、そ
の構成内の他の処理ユニツトへメツセージを転送するこ
とによつて、データを共用することが出来る。緊密結合
多重プロセツサ・システム構成の変形例において、その
多重プロセツサ構成中の処理ユニツトの内の1つの処理
ユニツトを共用メモリの処理ユニツトとして区別してい
る。共用メモリ処理ユニツトに接続された主メモリは、
共用メモリ処理ユニツトによつて管理されるデイスク型
のキヤツシユ・メモリとして使用される。何時、そして
どんな構成の下で、共用メモリのどの領域に対して、複
数の処理ユニツトのうちのどの処理ユニツトがアクセス
すべきかを制御するための機能が、共用メモリ処理ユニ
ツトに割当てられている。共用メモリが高速度の主メモ
リと相対的に低速度の2次ストレージ装置を含む仮想メ
モリである場合、所定のヒツト率を得るために必要な主
メモリの大きさは多重プロセツサ構成によつて実行され
る毎秒当りのインストラクシヨンの数に直接関係する。
或る場合に、独立したプロセツサ・ユニツトは毎秒当り
百万個単位の命令を実行出来るかの目安のミツプス(Mi
llions of Instructions per seconds−MIPS)によ
つて性能が決められる。若し、2個の4MIPSの処理
能力を持つ処理ユニツトと、第3の共用メモリ処理ユニ
ツトとが緊密結合多重プロセツサ構成で使用されたとす
れば、この構成に関連した主メモリは、所定のヒツト率
を得るために、バイト単位で約80メガバイトのアドレ
スをすることの出来るメモリを持たなければならない。
共用メモリ中で85%のヒツト率を得るために、大ざつ
ばに言つて、1MIPS当り10メガバイトのアドレス
可能な主メモリが必要である。従つて、若しこの緊密結
合多重プロセツサ構成に対して更に4MIPSの処理ユ
ニツトを付加しようとすれば、85%のヒツト率を維持
するために、更に、40メガバイトのアドレス可能な主
メモリを共用メモリに付加しなければならない。然しな
がら、緊密結合多重プロセツサ構成を実際に設計するに
際して、コストと性能のパラメータに関しての損益分岐
点を越えない範囲の結合としなければならないので、処
理ユニツトの緊密結合多重プロセツサ構成に付加するこ
とは、この点から自ら限界がある。
ム構成と称される従来の多重プロセツサ・システム他の
構成において、複数個の処理ユニツトが、コミニユケー
シヨン・ネツトワークを介して接続され、そして各処理
ユニツトはそれ自身のメモリに直接にアクセスすること
が出来るが、他のすべての処理ユニツトはそのメモリに
はアクセスすることが出来ないように構成されている。
緊密結合多重プロセツサ・システム構成中の処理ユニツ
トは、コミニユケーシヨン・ネツトワークを介して、そ
の構成内の他の処理ユニツトへメツセージを転送するこ
とによつて、データを共用することが出来る。緊密結合
多重プロセツサ・システム構成の変形例において、その
多重プロセツサ構成中の処理ユニツトの内の1つの処理
ユニツトを共用メモリの処理ユニツトとして区別してい
る。共用メモリ処理ユニツトに接続された主メモリは、
共用メモリ処理ユニツトによつて管理されるデイスク型
のキヤツシユ・メモリとして使用される。何時、そして
どんな構成の下で、共用メモリのどの領域に対して、複
数の処理ユニツトのうちのどの処理ユニツトがアクセス
すべきかを制御するための機能が、共用メモリ処理ユニ
ツトに割当てられている。共用メモリが高速度の主メモ
リと相対的に低速度の2次ストレージ装置を含む仮想メ
モリである場合、所定のヒツト率を得るために必要な主
メモリの大きさは多重プロセツサ構成によつて実行され
る毎秒当りのインストラクシヨンの数に直接関係する。
或る場合に、独立したプロセツサ・ユニツトは毎秒当り
百万個単位の命令を実行出来るかの目安のミツプス(Mi
llions of Instructions per seconds−MIPS)によ
つて性能が決められる。若し、2個の4MIPSの処理
能力を持つ処理ユニツトと、第3の共用メモリ処理ユニ
ツトとが緊密結合多重プロセツサ構成で使用されたとす
れば、この構成に関連した主メモリは、所定のヒツト率
を得るために、バイト単位で約80メガバイトのアドレ
スをすることの出来るメモリを持たなければならない。
共用メモリ中で85%のヒツト率を得るために、大ざつ
ばに言つて、1MIPS当り10メガバイトのアドレス
可能な主メモリが必要である。従つて、若しこの緊密結
合多重プロセツサ構成に対して更に4MIPSの処理ユ
ニツトを付加しようとすれば、85%のヒツト率を維持
するために、更に、40メガバイトのアドレス可能な主
メモリを共用メモリに付加しなければならない。然しな
がら、緊密結合多重プロセツサ構成を実際に設計するに
際して、コストと性能のパラメータに関しての損益分岐
点を越えない範囲の結合としなければならないので、処
理ユニツトの緊密結合多重プロセツサ構成に付加するこ
とは、この点から自ら限界がある。
局所領域(local area)ネツトワーク内で、複数個の独
立型パーソナル・コンピユータ、または独立型のエンジ
ニヤリング・ワークステーシヨンを構成する技術が最近
になつて使われるようになつた。このような構成は、弱
結合(loosely-coupled)多重プロセツサ構成とか、分
散システム(distributed system)構成とか、またはク
ラスタ構成と呼ばれているが、このような構成における
任意のワークステーシヨンは、標準的な通信プロトコル
を使用した他のワークステーシヨンと通信することが出
来る。クラスタ構成を設立するための動機づけは、デー
タ処理能力をより大きくするためではなく、情報を非電
子的に交換することの代りに電子的に交換するという単
純な利益を得るためであつた。然しながら、或る場合に
は、個々のワークステーシヨンが、同一のオペレーテン
グ・システムを走らせ、時には同一のアプリケーシヨン
・プログラムを走らせることもあることが見出された。
計算機協会(Association for Computing Machinery)
の「配分されれた計算の原理に関する1986年の第5
回年次シンポジユーム」(5th Annual Symposium on Pr
inciple of Distrbuted Computing)で報告されたリー
(Kai Li)及びフダク(Paul Hudak)による共用仮想ス
トレージ・システムにおけるメモリの均一性(Memory C
oherence in Shared Vertual Storage Systems)と題す
る文献は、クラスタ構成で接続された複数個の仮想メモ
リのデータ処理ユニツトを開示している。この装置にお
いて、すべての処理理ユニツトは同じオペレーテング・
システムも持ち、そして同じ仮想アドレス空間(spac
e)をアドレスする。各処理ユニツトは異なつたフアイ
ルを所有するフアイルの所有装置であり、それらのフア
イルは、各処理ユニツト自身ののメモリ・システムに記
憶されている。アプリケーシヨン・プログラムを実行し
ているフアイルの非所有装置は、適当な通信リンクを介
して他の処理ユニツトのメモリ・システムへのアクセス
を獲得し、これは、データの仮想ページのフアイルの所
有装置に対して、要求装置へ仮想ページを送る要求を発
生する。
立型パーソナル・コンピユータ、または独立型のエンジ
ニヤリング・ワークステーシヨンを構成する技術が最近
になつて使われるようになつた。このような構成は、弱
結合(loosely-coupled)多重プロセツサ構成とか、分
散システム(distributed system)構成とか、またはク
ラスタ構成と呼ばれているが、このような構成における
任意のワークステーシヨンは、標準的な通信プロトコル
を使用した他のワークステーシヨンと通信することが出
来る。クラスタ構成を設立するための動機づけは、デー
タ処理能力をより大きくするためではなく、情報を非電
子的に交換することの代りに電子的に交換するという単
純な利益を得るためであつた。然しながら、或る場合に
は、個々のワークステーシヨンが、同一のオペレーテン
グ・システムを走らせ、時には同一のアプリケーシヨン
・プログラムを走らせることもあることが見出された。
計算機協会(Association for Computing Machinery)
の「配分されれた計算の原理に関する1986年の第5
回年次シンポジユーム」(5th Annual Symposium on Pr
inciple of Distrbuted Computing)で報告されたリー
(Kai Li)及びフダク(Paul Hudak)による共用仮想ス
トレージ・システムにおけるメモリの均一性(Memory C
oherence in Shared Vertual Storage Systems)と題す
る文献は、クラスタ構成で接続された複数個の仮想メモ
リのデータ処理ユニツトを開示している。この装置にお
いて、すべての処理理ユニツトは同じオペレーテング・
システムも持ち、そして同じ仮想アドレス空間(spac
e)をアドレスする。各処理ユニツトは異なつたフアイ
ルを所有するフアイルの所有装置であり、それらのフア
イルは、各処理ユニツト自身ののメモリ・システムに記
憶されている。アプリケーシヨン・プログラムを実行し
ているフアイルの非所有装置は、適当な通信リンクを介
して他の処理ユニツトのメモリ・システムへのアクセス
を獲得し、これは、データの仮想ページのフアイルの所
有装置に対して、要求装置へ仮想ページを送る要求を発
生する。
従つて、クラスタ構成中の各処理ユニツトは、その構成
中の処理ユニツトと共に、仮想メモリ・システム内のフ
アイルの組を共用する。要求により生じたページ不在は
フアイルの所有装置によつて示される。若し、要求が局
部(local)であれば、即ち所有装置からの要求であれ
ば、要求されたページは所有装置の2次ストレージ装置
から直接に所有装置の主メモリに転送される。若し、要
求が他の処理ユニツトからのものであれば、ページは通
信リンクを介して、所有装置の2次ストレージ装置から
要求装置の主メモリへ転送される。要求装置がデータの
ページの処理を済ませた後に、データのページの処理を
制御するために、システムのプロトコルが設定される。
このプロトコルは、例えば、所有装置にページを返還す
る時に、一方のユニツトがそのページに書込みを要求し
ているのに対して、他方のユニツトはそのページから読
取りを要求している場合のように、同じページに対する
競合した要求をどのようにして両立させるかを管理する
こととか、または、記憶データを共用するための機能に
共通する他の種々の状況を管理することを取り扱う。
中の処理ユニツトと共に、仮想メモリ・システム内のフ
アイルの組を共用する。要求により生じたページ不在は
フアイルの所有装置によつて示される。若し、要求が局
部(local)であれば、即ち所有装置からの要求であれ
ば、要求されたページは所有装置の2次ストレージ装置
から直接に所有装置の主メモリに転送される。若し、要
求が他の処理ユニツトからのものであれば、ページは通
信リンクを介して、所有装置の2次ストレージ装置から
要求装置の主メモリへ転送される。要求装置がデータの
ページの処理を済ませた後に、データのページの処理を
制御するために、システムのプロトコルが設定される。
このプロトコルは、例えば、所有装置にページを返還す
る時に、一方のユニツトがそのページに書込みを要求し
ているのに対して、他方のユニツトはそのページから読
取りを要求している場合のように、同じページに対する
競合した要求をどのようにして両立させるかを管理する
こととか、または、記憶データを共用するための機能に
共通する他の種々の状況を管理することを取り扱う。
各処理ユニツト自身の仮想メモリを、クラスタ中の他の
処理ユニツトと共に共用することは、クラスタに対して
利用可能なフアイルの合計数が複数個の2次ストレージ
装置の中に分散されるから、2次ストレージ装置の寸法
や容量を減らすことが出来るという利益を生じる。これ
は、ストレージ装置に対するアクセス時間を短縮し、か
つ装置の価格の低減をもたらす。考え得る不利点として
は、データのページの所有装置に対して複数個の他のユ
ニツトからの同時的な要求が複数個のデイスク装置を順
番にアクセスしなければならないことがある。通常、要
求は重複した態様でサービスされるけれども、デイスク
のアクセスは、処理ユニツトに対して比較的時間の浪費
となる動作であり、また、そのユニツトに無関係のアプ
リケーシヨン・プログラムを実行している所有ユニツト
の性能に可成りの悪影響を与えることがあり、2次スト
レージ装置のサービスにも影響を与える。
処理ユニツトと共に共用することは、クラスタに対して
利用可能なフアイルの合計数が複数個の2次ストレージ
装置の中に分散されるから、2次ストレージ装置の寸法
や容量を減らすことが出来るという利益を生じる。これ
は、ストレージ装置に対するアクセス時間を短縮し、か
つ装置の価格の低減をもたらす。考え得る不利点として
は、データのページの所有装置に対して複数個の他のユ
ニツトからの同時的な要求が複数個のデイスク装置を順
番にアクセスしなければならないことがある。通常、要
求は重複した態様でサービスされるけれども、デイスク
のアクセスは、処理ユニツトに対して比較的時間の浪費
となる動作であり、また、そのユニツトに無関係のアプ
リケーシヨン・プログラムを実行している所有ユニツト
の性能に可成りの悪影響を与えることがあり、2次スト
レージ装置のサービスにも影響を与える。
C.発明が解決しようとする問題点 本発明は、2次ストレージ装置に対してアクセスを要求
するページ不在の回数を極めて減少する、共用仮想メモ
リとクラスタ構成を持つデータ処理システムによつて使
用される新規な方法に関する。
するページ不在の回数を極めて減少する、共用仮想メモ
リとクラスタ構成を持つデータ処理システムによつて使
用される新規な方法に関する。
従つて、本発明の目的は仮想メモリ型のデータ処理シス
テム中の2次メモリ装置に対するアクセス動作の回数を
減少させる方法を提供することにある。
テム中の2次メモリ装置に対するアクセス動作の回数を
減少させる方法を提供することにある。
本発明の他の目的は、複数個の相互接続された仮想メモ
リ型の処理ユニツトを有するデータ処理システムを用い
て、ページ不在に対する入出力アクセス動作を最少限の
回数に減少させる方法を提供することにある。
リ型の処理ユニツトを有するデータ処理システムを用い
て、ページ不在に対する入出力アクセス動作を最少限の
回数に減少させる方法を提供することにある。
本発明他の目的は、多重プロセツサのクラスタ構成にお
いて、要求されたページが要求プロセツサ・ユニツトに
存在しない時に生じるページ不在を解決する方法を提供
することにある。
いて、要求されたページが要求プロセツサ・ユニツトに
存在しない時に生じるページ不在を解決する方法を提供
することにある。
D.問題点を解決するための手段 クラスタ構成に相互接続された複数個の仮想メモリ型デ
ータ処理ユニツトを含む共同で使用する仮想メモリを有
するデータ処理システムにおいて、デイスクのI/O動
作を減少するための本発明は、以下に述べる着想に基づ
いてなされたもである。即ち、その着想とは、アクセス
・コーデイネータ(アクセス調整要素)に対してなされ
たデータのページの要求、またはそのデータのページを
所有しているデータ処理ユニツトに対してなされたデー
タのページの読取り、または書込みの要求が、ページ不
在(page fault)を発生した時、若し、そのページのコ
ピーがクラスタ中の他の1つのデータ処理ユニツトの主
メモリ中にあれば、そのページ不在をサービスすること
について、可成りの時間を節約することが出来るという
考えである。この着想を具体的に説明するために、例え
ば、ページ番号Pは処理ユニツトAによつて所有されて
いるフアイルのページであり、そして、そのページを所
有していない例えば処理ユニツトBのような他の非所有
処理ユニツトによるページの要求が、そのページを含む
セグメントのためのシステムのアクセス・コーデイネー
タである処理ユニツトAのページPに対してなされたも
のと仮定する。また、処理ユニツトAに対するそのペー
ジ要求は、ページ不在を処理するための手段を介して、
処理ユニツトAの2次ストレージ装置からページPを得
ることが必要であると仮定する。また、ページPのコピ
ーは、処理ユニツトAから処理ユニツトBに送られてし
まつており、そして、他のページの要求が処理ユニツト
Cから処理ユニツトAになされた時に、ページPのコピ
ーは、処理ユニツトBの主メモリ中にはあるが、処理ユ
ニツトAにはないものと仮定する。このような状況のと
き、処理ユニツトAが、ページPのコピーを処理ユニツ
トCへ送ることを、処理ユニツトBに依頼することが出
来るならば、処理ユニツトAが2次ストレージ装置に対
してI/O動作を行う一連の処理動作を含むページ不在
処理動作は行わなくてもよいことになる。
ータ処理ユニツトを含む共同で使用する仮想メモリを有
するデータ処理システムにおいて、デイスクのI/O動
作を減少するための本発明は、以下に述べる着想に基づ
いてなされたもである。即ち、その着想とは、アクセス
・コーデイネータ(アクセス調整要素)に対してなされ
たデータのページの要求、またはそのデータのページを
所有しているデータ処理ユニツトに対してなされたデー
タのページの読取り、または書込みの要求が、ページ不
在(page fault)を発生した時、若し、そのページのコ
ピーがクラスタ中の他の1つのデータ処理ユニツトの主
メモリ中にあれば、そのページ不在をサービスすること
について、可成りの時間を節約することが出来るという
考えである。この着想を具体的に説明するために、例え
ば、ページ番号Pは処理ユニツトAによつて所有されて
いるフアイルのページであり、そして、そのページを所
有していない例えば処理ユニツトBのような他の非所有
処理ユニツトによるページの要求が、そのページを含む
セグメントのためのシステムのアクセス・コーデイネー
タである処理ユニツトAのページPに対してなされたも
のと仮定する。また、処理ユニツトAに対するそのペー
ジ要求は、ページ不在を処理するための手段を介して、
処理ユニツトAの2次ストレージ装置からページPを得
ることが必要であると仮定する。また、ページPのコピ
ーは、処理ユニツトAから処理ユニツトBに送られてし
まつており、そして、他のページの要求が処理ユニツト
Cから処理ユニツトAになされた時に、ページPのコピ
ーは、処理ユニツトBの主メモリ中にはあるが、処理ユ
ニツトAにはないものと仮定する。このような状況のと
き、処理ユニツトAが、ページPのコピーを処理ユニツ
トCへ送ることを、処理ユニツトBに依頼することが出
来るならば、処理ユニツトAが2次ストレージ装置に対
してI/O動作を行う一連の処理動作を含むページ不在
処理動作は行わなくてもよいことになる。
本発明に従つて、多重プロセツサのクラスタ内の個々の
プロセツサは共通の仮想メモリの複数のセグメントのア
クセスを個々に調整する。仮想メモリの各セグメント
は、論理的に、128000ページ(131072ペー
ジ)を含んでおり、各ページは2000バイト(204
8バイト)を含んでいる。クラスタ中のプロセツサ・ユ
ニツトは、クラスタ中の他のプロセツサ・ユニツトの間
でこれらの仮想メモリを共用している。1つのプロセツ
サ・ユニツトは、特定された仮想メモリのセグメントに
割当てられたデータの所定のフアイルのアクセス・コー
デイネータとして使用される。仮想メモリを使用する他
の複数のプロセツサ・ユニツトは、夫々、「使用側処理
ユニツト」(using processor unit)と呼ばれる。本発
明に従つて、仮想メモリのキヤツシユ(cached)された
ページを調和させてアクセスする方法は、次のような4
つの重要な側面を持つている。
プロセツサは共通の仮想メモリの複数のセグメントのア
クセスを個々に調整する。仮想メモリの各セグメント
は、論理的に、128000ページ(131072ペー
ジ)を含んでおり、各ページは2000バイト(204
8バイト)を含んでいる。クラスタ中のプロセツサ・ユ
ニツトは、クラスタ中の他のプロセツサ・ユニツトの間
でこれらの仮想メモリを共用している。1つのプロセツ
サ・ユニツトは、特定された仮想メモリのセグメントに
割当てられたデータの所定のフアイルのアクセス・コー
デイネータとして使用される。仮想メモリを使用する他
の複数のプロセツサ・ユニツトは、夫々、「使用側処理
ユニツト」(using processor unit)と呼ばれる。本発
明に従つて、仮想メモリのキヤツシユ(cached)された
ページを調和させてアクセスする方法は、次のような4
つの重要な側面を持つている。
(1)ページを所有する権利、即ちページの所有権は、
その使用と共に自動的に変わる。従つて、ページを変更
する権利は、ページを含むセグメントのためのアクセス
・コーデイネータによつて、所定の使用側処理ユニツト
に割当てられ、そして、ページの競合が、そのページを
含むセグメントのためのアクセス・コーデイネータによ
つて取り消されるか、または他のプロセツサ・ユニツト
に割当てられるまで、そのプロセツサ・ユニツトにその
まま留まつている。
その使用と共に自動的に変わる。従つて、ページを変更
する権利は、ページを含むセグメントのためのアクセス
・コーデイネータによつて、所定の使用側処理ユニツト
に割当てられ、そして、ページの競合が、そのページを
含むセグメントのためのアクセス・コーデイネータによ
つて取り消されるか、または他のプロセツサ・ユニツト
に割当てられるまで、そのプロセツサ・ユニツトにその
まま留まつている。
(2)ページの一部の所有権は、ページ全体の所有権で
あることを示唆している。例えば、若し、1つのプロセ
ツサ・ユニツトがそのページの最初のバイトをアクセス
し、そして、その処理ユニツトがその最初のバイトをア
クセスする能力を与えられたとすれば、そのプロセツサ
・ユニツトは、ページ全体をアクセスする能力を与えら
れる。
あることを示唆している。例えば、若し、1つのプロセ
ツサ・ユニツトがそのページの最初のバイトをアクセス
し、そして、その処理ユニツトがその最初のバイトをア
クセスする能力を与えられたとすれば、そのプロセツサ
・ユニツトは、ページ全体をアクセスする能力を与えら
れる。
(3)ページのアクセスを調整すること、即ちアクセス
・コーデイネータの機能は、統計的に割当てられ、その
ページを含むセグメントを調整するプロセツサ・ユニツ
トにより行われる。
・コーデイネータの機能は、統計的に割当てられ、その
ページを含むセグメントを調整するプロセツサ・ユニツ
トにより行われる。
(4)与えらたページに対するアクセス・コーデイネー
タは、プロセツサ・ユニツトが持つている仮想共用メモ
リ・テーブル(Virtual Shared Memory Table−VSM
T)中に、ページのコピーと、個々のプロセツサ・ユニ
ツトが保持しているアクセスする権利(例えば読取のみ
に対する読取り/書込み)と、ページのアクセスを要求
した他のプロセツサ・ユニツトのリストとを記録する。
本発明の方法は、セグメントのどのページが、どの使用
側処理ユニツトのメモリにストアされているかについて
の記録を、セグメントのアクセス・コーデイネータに記
録することを含んでいる。ページのアクセスを要求した
使用側処理ユニツトは、デイスク・ストレージからその
ページを読取るのではなく、それ自身のメモリ・システ
ムにそのページを持つているプロセツサ・ユニツトから
そのページを読取ることによつて、デイスク・ストレー
ジのI/O動作を回避する。このようにして、クラスタ
内の個々のプロセツサ・ユニツトに接続されたそれら自
身のメモリが、それらのプロセツサ・ユニツトの間で、
仮想メモリ的に相互に共用することが出来る。
タは、プロセツサ・ユニツトが持つている仮想共用メモ
リ・テーブル(Virtual Shared Memory Table−VSM
T)中に、ページのコピーと、個々のプロセツサ・ユニ
ツトが保持しているアクセスする権利(例えば読取のみ
に対する読取り/書込み)と、ページのアクセスを要求
した他のプロセツサ・ユニツトのリストとを記録する。
本発明の方法は、セグメントのどのページが、どの使用
側処理ユニツトのメモリにストアされているかについて
の記録を、セグメントのアクセス・コーデイネータに記
録することを含んでいる。ページのアクセスを要求した
使用側処理ユニツトは、デイスク・ストレージからその
ページを読取るのではなく、それ自身のメモリ・システ
ムにそのページを持つているプロセツサ・ユニツトから
そのページを読取ることによつて、デイスク・ストレー
ジのI/O動作を回避する。このようにして、クラスタ
内の個々のプロセツサ・ユニツトに接続されたそれら自
身のメモリが、それらのプロセツサ・ユニツトの間で、
仮想メモリ的に相互に共用することが出来る。
VSMTテーブル中の多数のエントリは、動作した結果
の性能測定と、なされた要求とに従つて、クラスタのI
PL時間、または実行に要する時間によつて決定され
る。VSMTエントリの数は常に、クラスタ内の実アド
レスのページ・フレームの数によつて制限される。例え
ば、若し或るクラスタが16台のプロセツサ・ユニツト
で構成され、夫々のプロセツサ・ユニツトは直接接続さ
れた16メガバイトのメモリを持つているとすれば、そ
のクラスタは合計217個のページ・フレームを持つこと
になる。若し各ページ・フレームのためのエントリが各
プロセツサ・ユニツトのVSMTに割当てられたとすれ
ば、VSMTテーブルのために、11メガ・バイトのス
トレージが、各プロセツサ・ユニツトに割当てられなけ
ればならないことになる。実際問題として、VSMTテ
ーブルの大きさは、そのように大きな容量を、決して必
要としない。ページは既にページ・テーブルにあるか
ら、VSMTテーブルはアクセス・コーデネータの実メ
モリ中のページを表わすために必要がない。クラスタを
介して、所定の時間に実メモリにあるセグメントのペー
ジと、実際に共用されているコード及びデータの両方の
みが、VSMTテーブルに表示する必要があるだけであ
る。従つて、物理的なメモリ・フレームの一部が、所定
の時間に共用されたセグメントのページを含むだけで、
共用されないページを含む他のページ・フレームは、V
SMTテーブルに表示される必要はない。
の性能測定と、なされた要求とに従つて、クラスタのI
PL時間、または実行に要する時間によつて決定され
る。VSMTエントリの数は常に、クラスタ内の実アド
レスのページ・フレームの数によつて制限される。例え
ば、若し或るクラスタが16台のプロセツサ・ユニツト
で構成され、夫々のプロセツサ・ユニツトは直接接続さ
れた16メガバイトのメモリを持つているとすれば、そ
のクラスタは合計217個のページ・フレームを持つこと
になる。若し各ページ・フレームのためのエントリが各
プロセツサ・ユニツトのVSMTに割当てられたとすれ
ば、VSMTテーブルのために、11メガ・バイトのス
トレージが、各プロセツサ・ユニツトに割当てられなけ
ればならないことになる。実際問題として、VSMTテ
ーブルの大きさは、そのように大きな容量を、決して必
要としない。ページは既にページ・テーブルにあるか
ら、VSMTテーブルはアクセス・コーデネータの実メ
モリ中のページを表わすために必要がない。クラスタを
介して、所定の時間に実メモリにあるセグメントのペー
ジと、実際に共用されているコード及びデータの両方の
みが、VSMTテーブルに表示する必要があるだけであ
る。従つて、物理的なメモリ・フレームの一部が、所定
の時間に共用されたセグメントのページを含むだけで、
共用されないページを含む他のページ・フレームは、V
SMTテーブルに表示される必要はない。
VSMTテーブル中のエントリの数を決定するための好
ましい方法は、最初に、少数のエントリを作成し、使用
するにつれて次第に大きくするようにさせることであ
る。
ましい方法は、最初に、少数のエントリを作成し、使用
するにつれて次第に大きくするようにさせることであ
る。
更に、本発明の方法は、2台以上のプロセツサ・ユニツ
トの間で入出力を遂行するための方法である「三角型I
/O動作」を使用している。プロセツサ単位の観点から
は、入出力は、プロセツサである「マスタ・ユニツト」
と、「スレーブ・ユニツト」(制御ユニツト)との間で
遂行される。マスタ・ユニツトはスレーブ・ユニツトに
要求を送り、スレーブ・ユニツトはその要求を処理し、
その要求に応答する。例えば、プロセツサ・ユニツトは
デイスクをセツトするために、或る制御ユニツトに仮想
ページの要求を送るとする。その制御ユニツトは、その
デイスク・ストレージの適当なブロツクを指定すること
によつて処理し、そして、要求したプロセツサ・ユニツ
トにそれらのページを転送する。クラスタ構成におい
て、マスタ・ユニツト及びスレーブ・ユニツトという概
念は明確ではない。例えば、プロセツサ・ユニツトR
は、プロセツサ・ユニツトQに直接に接続されたデイス
ク装置に記録されたページPのための他のプロセツサ・
ユニツトQに要求を送つたとする。プロセツサ・ユニツ
トQは、プロセツサ・ユニツトTに接続されている物理
的なメモリ中の要求されたページのコピーを持つている
他のプロセツサ・ユニツトTへの要求を差し向けること
によつて、デイスクのI/Oを回避するように試みる制
御ユニツトと同じ方法でその要求を処理するかも知れな
い。プロセツサ・ユニツトTは、要求されたページをプ
ロセツサ・ユニツトQを介して送らせないで、要求され
たページをプロセツサ・ユニツトRに送る。このような
考えで、プロセツサ・ユニツトR、Q及びTが、ページ
Pにによつて「三角型I/O動作」に含まれる。本発明
によつて、相互の通信処理は減少され、そしてデイスク
装置に対する2次的なI/O動作が回避される。
トの間で入出力を遂行するための方法である「三角型I
/O動作」を使用している。プロセツサ単位の観点から
は、入出力は、プロセツサである「マスタ・ユニツト」
と、「スレーブ・ユニツト」(制御ユニツト)との間で
遂行される。マスタ・ユニツトはスレーブ・ユニツトに
要求を送り、スレーブ・ユニツトはその要求を処理し、
その要求に応答する。例えば、プロセツサ・ユニツトは
デイスクをセツトするために、或る制御ユニツトに仮想
ページの要求を送るとする。その制御ユニツトは、その
デイスク・ストレージの適当なブロツクを指定すること
によつて処理し、そして、要求したプロセツサ・ユニツ
トにそれらのページを転送する。クラスタ構成におい
て、マスタ・ユニツト及びスレーブ・ユニツトという概
念は明確ではない。例えば、プロセツサ・ユニツトR
は、プロセツサ・ユニツトQに直接に接続されたデイス
ク装置に記録されたページPのための他のプロセツサ・
ユニツトQに要求を送つたとする。プロセツサ・ユニツ
トQは、プロセツサ・ユニツトTに接続されている物理
的なメモリ中の要求されたページのコピーを持つている
他のプロセツサ・ユニツトTへの要求を差し向けること
によつて、デイスクのI/Oを回避するように試みる制
御ユニツトと同じ方法でその要求を処理するかも知れな
い。プロセツサ・ユニツトTは、要求されたページをプ
ロセツサ・ユニツトQを介して送らせないで、要求され
たページをプロセツサ・ユニツトRに送る。このような
考えで、プロセツサ・ユニツトR、Q及びTが、ページ
Pにによつて「三角型I/O動作」に含まれる。本発明
によつて、相互の通信処理は減少され、そしてデイスク
装置に対する2次的なI/O動作が回避される。
E.実施例 第1図は本発明の方法を適用することが出来る多重プロ
セツサ式クラスタ構成のデータ処理システムのブロツク
図である。第1図に示したように、このデータ処理シス
テムは、複数個のプロセツサ・ユニツト10と、スイツ
チ11と、複数個の通信リンク12とで構成されてお
り、各通信リンクは1つのプロセツサ10をスイツチ1
1に接続している。スイツチ11は、任意のプロセツサ
10が他の任意のプロセツサ・ユニツトと通信するのを
制御する機能を持つている。スイツチ機能及び通信リン
クの細部は本発明を理解するために関係がないから、こ
れらの細部についてはこれ以上の説明はしない。本発明
に使用することの出来るスイツチ機能の例は、米国特許
第4635250号、同第4633394号、同第46
30015号及び同第4605928号に開示されてい
る。
セツサ式クラスタ構成のデータ処理システムのブロツク
図である。第1図に示したように、このデータ処理シス
テムは、複数個のプロセツサ・ユニツト10と、スイツ
チ11と、複数個の通信リンク12とで構成されてお
り、各通信リンクは1つのプロセツサ10をスイツチ1
1に接続している。スイツチ11は、任意のプロセツサ
10が他の任意のプロセツサ・ユニツトと通信するのを
制御する機能を持つている。スイツチ機能及び通信リン
クの細部は本発明を理解するために関係がないから、こ
れらの細部についてはこれ以上の説明はしない。本発明
に使用することの出来るスイツチ機能の例は、米国特許
第4635250号、同第4633394号、同第46
30015号及び同第4605928号に開示されてい
る。
第2図は第1図に示された1つのプロセツサ・ユニツト
10の細部を示す図である。プロセツサ・ユニツト10
は、例えばIBMのAIX(IBMの商標)オペレーテ
イング・システムのようなUnix(ATTの商標)オ
ペレーテイング・システムで動作する例えばIBMパー
ソナル・コンピユータRTのような高性能のパーソナル
・コンピユータ、またはエンジニヤリング・ワークステ
ーシヨンである。第2図に示したように、プロセツサ・
ユニツト10はマイクロ・プロセツサ16と、主メモリ
17と、プロセツサ16及びメモリ17と複数個のI/
Oアダプタ、即ち、ポート20A乃至20Eとの間でデ
ータ転送を制御するメモリ管理装置18とで構成されて
いる。ポート20A及び20Bは、デイスプレー型の端
末装置21及び22をシステムに接続するための機能を
持つている。ポート20Cはシステムにプリンタ23を
接続し、そしてポート20Dはシステムにデイスク駆動
装置を接続する。通信ポート20Eはプロセツサ・ユニ
ツト10を通信リンク12に接続する。
10の細部を示す図である。プロセツサ・ユニツト10
は、例えばIBMのAIX(IBMの商標)オペレーテ
イング・システムのようなUnix(ATTの商標)オ
ペレーテイング・システムで動作する例えばIBMパー
ソナル・コンピユータRTのような高性能のパーソナル
・コンピユータ、またはエンジニヤリング・ワークステ
ーシヨンである。第2図に示したように、プロセツサ・
ユニツト10はマイクロ・プロセツサ16と、主メモリ
17と、プロセツサ16及びメモリ17と複数個のI/
Oアダプタ、即ち、ポート20A乃至20Eとの間でデ
ータ転送を制御するメモリ管理装置18とで構成されて
いる。ポート20A及び20Bは、デイスプレー型の端
末装置21及び22をシステムに接続するための機能を
持つている。ポート20Cはシステムにプリンタ23を
接続し、そしてポート20Dはシステムにデイスク駆動
装置を接続する。通信ポート20Eはプロセツサ・ユニ
ツト10を通信リンク12に接続する。
本発明を説明する便宜上、プロセツサ10は全体とし
て、米国特許第4742447号に開示された仮想メモ
リ型のデータ処理システムに対応しているものと仮定す
る。上述の米国特許に記載されているように、プロセツ
サは、16セグメントのレジスタの1つを選するため
に、4個の高位ビツト31乃至28を用いることによつ
て40ビツト仮想アドレスに変換された32ビツトの有
効アドレスを持つている。この32ビツトの有効アドレ
スの各々は、4096個のセグメントの1つを画定する
12ビツトのセグメント・アドレスを記憶している。各
セグメントは256メガバイト(228個)のストレージ
を含でいる。若し、ページが2Kバイトのデータを含ん
でいるものとすれば、セグメントは128ページを含む
ことになる。他方、若し、ページが4Kバイトのデータ
を含んでいるとすれば、セグメントは64Kページを含
み、これを、より正確に言えば、そのセグメントに現在
割当てられたデータのページを識別するために64K個
の仮想アドレスを用いることが出来るということを意味
する。
て、米国特許第4742447号に開示された仮想メモ
リ型のデータ処理システムに対応しているものと仮定す
る。上述の米国特許に記載されているように、プロセツ
サは、16セグメントのレジスタの1つを選するため
に、4個の高位ビツト31乃至28を用いることによつ
て40ビツト仮想アドレスに変換された32ビツトの有
効アドレスを持つている。この32ビツトの有効アドレ
スの各々は、4096個のセグメントの1つを画定する
12ビツトのセグメント・アドレスを記憶している。各
セグメントは256メガバイト(228個)のストレージ
を含でいる。若し、ページが2Kバイトのデータを含ん
でいるものとすれば、セグメントは128ページを含む
ことになる。他方、若し、ページが4Kバイトのデータ
を含んでいるとすれば、セグメントは64Kページを含
み、これを、より正確に言えば、そのセグメントに現在
割当てられたデータのページを識別するために64K個
の仮想アドレスを用いることが出来るということを意味
する。
上述の米国特許第4742447号に記載されているよ
うに、Unix型のオペレーテイング・システムがこの
プロセツサ・ユニツトに用いられているので、アプリケ
ーシヨン・プログラム及びこれらのプログラムによつて
用いられるデータは、Unixフアイル型の構成に従つ
て構成されている。使用されるフアイルは、プロセツサ
・ユニツトの2次ストレージ装置中に記憶されており、
この2次ストレージ装置はデイスク・フアイル装置であ
つてよい。記憶単位、即ちデイスク・フアイルのアドレ
ス可能単位は、デイスクのブロツクであり、説明の便宜
上、この記憶単位はデータの1ページを記憶するものと
仮定する。Unix読取り及び書込みシステムは、主メ
モリとデイスク・ストレージ装置との間のデータ転送を
制御する機能を持つている。
うに、Unix型のオペレーテイング・システムがこの
プロセツサ・ユニツトに用いられているので、アプリケ
ーシヨン・プログラム及びこれらのプログラムによつて
用いられるデータは、Unixフアイル型の構成に従つ
て構成されている。使用されるフアイルは、プロセツサ
・ユニツトの2次ストレージ装置中に記憶されており、
この2次ストレージ装置はデイスク・フアイル装置であ
つてよい。記憶単位、即ちデイスク・フアイルのアドレ
ス可能単位は、デイスクのブロツクであり、説明の便宜
上、この記憶単位はデータの1ページを記憶するものと
仮定する。Unix読取り及び書込みシステムは、主メ
モリとデイスク・ストレージ装置との間のデータ転送を
制御する機能を持つている。
また、仮想メモリ構造において、メモリ管理装置及びペ
ージ不在処理機構は、アプリケーシヨン・プログラムに
よつて実行されロードに関するインストラクシヨン及び
ストアに関するインストラクシヨンのタイプに応じて、
デイスク・フアイルと主メモリの間のページの転送を制
御する機能を有している。上述の米国特許第47424
47号に開示されたシステムにおいて、仮想アドレス空
間のセグメントにフアイルを割当てるためのマツプの機
能を果たすマツプ・ページ範囲サービス(Map Page Ran
ge Service−MPRS)を持つオペレーテイング・シス
テムが与えられている。MPRSは外部ページ・テーブ
ル(External Page Table−XPT)データ構造を用い
ており、その構造において、フアイルのページを含むデ
イスク・ブロツク・アドレスは、割当てられたセグメン
トの仮想アドレスに割当てられる。
ージ不在処理機構は、アプリケーシヨン・プログラムに
よつて実行されロードに関するインストラクシヨン及び
ストアに関するインストラクシヨンのタイプに応じて、
デイスク・フアイルと主メモリの間のページの転送を制
御する機能を有している。上述の米国特許第47424
47号に開示されたシステムにおいて、仮想アドレス空
間のセグメントにフアイルを割当てるためのマツプの機
能を果たすマツプ・ページ範囲サービス(Map Page Ran
ge Service−MPRS)を持つオペレーテイング・シス
テムが与えられている。MPRSは外部ページ・テーブ
ル(External Page Table−XPT)データ構造を用い
ており、その構造において、フアイルのページを含むデ
イスク・ブロツク・アドレスは、割当てられたセグメン
トの仮想アドレスに割当てられる。
また、メモリ管理要素は、データのページがストアされ
ている主メモリの実アドレスを、そのページに割当てら
れた仮想アドレスに相関させるための反転ページ・テー
ブル(Inverted Page Table−IPT)データ構造を用
いる。また、上述の米国特許第4742447号に開示
されたシステムは、オペレーテイング・システムにおけ
る読出し及び書込みのシステム・コール(system cal
l)を、仮想アドレスを有するロード・インストラクシ
ヨン及びストア・インストラクシヨンに変換する方法を
使用しており、この方法は、フアイル中のパラメータ及
びUnixオフセツト・ポインタに影響する。従つて、
すべてのデイスクI/O動作は、上述の米国特許第47
42447号のシステムのメモリ管理及びページ不在処
理機構の制御の下にある。
ている主メモリの実アドレスを、そのページに割当てら
れた仮想アドレスに相関させるための反転ページ・テー
ブル(Inverted Page Table−IPT)データ構造を用
いる。また、上述の米国特許第4742447号に開示
されたシステムは、オペレーテイング・システムにおけ
る読出し及び書込みのシステム・コール(system cal
l)を、仮想アドレスを有するロード・インストラクシ
ヨン及びストア・インストラクシヨンに変換する方法を
使用しており、この方法は、フアイル中のパラメータ及
びUnixオフセツト・ポインタに影響する。従つて、
すべてのデイスクI/O動作は、上述の米国特許第47
42447号のシステムのメモリ管理及びページ不在処
理機構の制御の下にある。
アプリケーシヨン・プログラムのインストラクシヨンを
実行する際のプロセツサ・ユニツト10の動作を簡単に
述べると以下の通りとなる。インストラクシヨンの仮想
アドレスは、バツシユ・アンカー・テーブル(Hash Anc
hor Table−HAT)のインデツクスを与えるために、
適当なハツシユ(hash)アルゴリズムによつてハツシユ
される。HATにおいてインデツクスされたエントリ
(entry−記入項目)は、同じ値にハツシユされた仮想
アドレスの表中の第1エントリを指示するポインタを含
んでいる。若し、その表中のポインタを与える値にハツ
シユするであろう仮想アドレスを持つページが、実メモ
リにあれば、仮想アドレスはその表中にある。データの
ページが記憶されている実メモリのページ・フレーム
は、仮想アドレスを含む表中のエントリから得られる。
若し、仮想アドレスが上記の表になければ、対応するペ
ージは実メモリにはなく、ページ不在が発生する。
実行する際のプロセツサ・ユニツト10の動作を簡単に
述べると以下の通りとなる。インストラクシヨンの仮想
アドレスは、バツシユ・アンカー・テーブル(Hash Anc
hor Table−HAT)のインデツクスを与えるために、
適当なハツシユ(hash)アルゴリズムによつてハツシユ
される。HATにおいてインデツクスされたエントリ
(entry−記入項目)は、同じ値にハツシユされた仮想
アドレスの表中の第1エントリを指示するポインタを含
んでいる。若し、その表中のポインタを与える値にハツ
シユするであろう仮想アドレスを持つページが、実メモ
リにあれば、仮想アドレスはその表中にある。データの
ページが記憶されている実メモリのページ・フレーム
は、仮想アドレスを含む表中のエントリから得られる。
若し、仮想アドレスが上記の表になければ、対応するペ
ージは実メモリにはなく、ページ不在が発生する。
この場合、ページ不在処理機構が動作される。ページ不
在処理機構は、フアイルがマツプされたときに発生する
XPTエントリを参照することによつて、要求された仮
想アドレスを持つページがストアされているデイスク・
ブロツク・アドレスを指定する。XPTはメモリ中にピ
ン(pinned)されていないから、ページ不在処理機構
は、ページ不在処理機構が最初にXPTを参照したとき
に、ページ不在に遭遇する。然しながら、XPTのエン
トリのうちの該当するページがメモリにストアされてい
るならば、元のページ不在をサービス(処置)すること
が出来る。ページは利用可能にされたメモリ中のページ
・フレームに転送され、そして業務の処理動作が再開さ
れる。
在処理機構は、フアイルがマツプされたときに発生する
XPTエントリを参照することによつて、要求された仮
想アドレスを持つページがストアされているデイスク・
ブロツク・アドレスを指定する。XPTはメモリ中にピ
ン(pinned)されていないから、ページ不在処理機構
は、ページ不在処理機構が最初にXPTを参照したとき
に、ページ不在に遭遇する。然しながら、XPTのエン
トリのうちの該当するページがメモリにストアされてい
るならば、元のページ不在をサービス(処置)すること
が出来る。ページは利用可能にされたメモリ中のページ
・フレームに転送され、そして業務の処理動作が再開さ
れる。
上述した仮想メモリ管理動作は、本発明の方法を適用す
ることの出来る第1図に示したプロセツサ・ユニツトに
用いることが出来る仮想メモリ管理機能の単なる一例を
説明しただけであることは注意を向ける必要がある。第
1図に示されたように、夫々のプロセツサ・ユニツト
は、相互のプロセツサ・ユニツト間でデータを転送する
関係で選択的に接続されるようにスイツチ10と通信リ
ンク12とによつて、他のプロセツサ・ユニツトと相互
接続される。既に述べた通り、通信ポート20Eは通
常、スイツチ11に接続される通信リンク12にインタ
ーフエースされている。離隔メモリ管理機能は各プロセ
ツサ・ユニツト10に付加されており、かつポート20
Eと本来のメモリ管理機能装置18との間のインターフ
エースを与える。例えば、プロセツサ・ユニツト10A
の離隔メモリ管理装置の機能は、プロセツサ・ユニツト
10Bの離隔メモリ管理機能からのデータの仮想ページ
Pの要求を処理することにある。プロセツサ10Aがそ
のページ及びフアイルのためのアクセス調整ユニツトと
して任命されたので、要求はプロセツサ10Aに送られ
る。ページPの要求を処理するために、離隔メモリ管理
機能は先ず、要求されたページがユニツト10Aの主メ
モリにあるか否かを決定する。若しページPが主メモリ
にあれば、コピーPbがユニツト10Bに返還され、そ
して、ユニツト10Bの主メモリに要求ページのコピー
があるという事実を、第7図に示されたような仮想共用
メモリ・テーブル(Virtual Shared Memory Table−V
SMT)と称されるデータ構造を記録する。仮想アドレ
スを含むインストラクシヨンがユニツト10Bによつて
実行され、ユニツト10Aに記憶されているフアイルを
含んでいることが認識されたとき、離隔処理要求がユニ
ツト10Bによつて開始される。フアイル、または仮想
ページのアクセス・コーデイネータが認識される態様に
ついては後述する。
ることの出来る第1図に示したプロセツサ・ユニツトに
用いることが出来る仮想メモリ管理機能の単なる一例を
説明しただけであることは注意を向ける必要がある。第
1図に示されたように、夫々のプロセツサ・ユニツト
は、相互のプロセツサ・ユニツト間でデータを転送する
関係で選択的に接続されるようにスイツチ10と通信リ
ンク12とによつて、他のプロセツサ・ユニツトと相互
接続される。既に述べた通り、通信ポート20Eは通
常、スイツチ11に接続される通信リンク12にインタ
ーフエースされている。離隔メモリ管理機能は各プロセ
ツサ・ユニツト10に付加されており、かつポート20
Eと本来のメモリ管理機能装置18との間のインターフ
エースを与える。例えば、プロセツサ・ユニツト10A
の離隔メモリ管理装置の機能は、プロセツサ・ユニツト
10Bの離隔メモリ管理機能からのデータの仮想ページ
Pの要求を処理することにある。プロセツサ10Aがそ
のページ及びフアイルのためのアクセス調整ユニツトと
して任命されたので、要求はプロセツサ10Aに送られ
る。ページPの要求を処理するために、離隔メモリ管理
機能は先ず、要求されたページがユニツト10Aの主メ
モリにあるか否かを決定する。若しページPが主メモリ
にあれば、コピーPbがユニツト10Bに返還され、そ
して、ユニツト10Bの主メモリに要求ページのコピー
があるという事実を、第7図に示されたような仮想共用
メモリ・テーブル(Virtual Shared Memory Table−V
SMT)と称されるデータ構造を記録する。仮想アドレ
スを含むインストラクシヨンがユニツト10Bによつて
実行され、ユニツト10Aに記憶されているフアイルを
含んでいることが認識されたとき、離隔処理要求がユニ
ツト10Bによつて開始される。フアイル、または仮想
ページのアクセス・コーデイネータが認識される態様に
ついては後述する。
上述の動作は、2つのプロセツサ・ユニツトを含む直接
要求及び直接転送の最も簡単な場合の動作である。要求
されたページPaがユニツト10Aの主メモリのページ
にはなく、ユニツト10Bに前に送られたコピーPb
が、10A以外の他のユニツトの主メモリのコピーであ
る場合を仮定すると、含まれる動作はやや多くなる。上
述の場合において、ユニツト10Cがユニツト10Aか
ら同じページのコピーを要求しているものと仮定する。
ユニツト10Aはデイスクに要求ページPのコピーを有
しているけれども、然し、これはページPを検索してそ
れをユニツト10Cに転送するために、相対的に長時間
を要するデイスクI/O動作を必要とする。ユニツト1
0Cからの要求をサービスする際のユニツト10Aの離
隔メモリ管理装置は、先ず、ユニツト10Aの変換ペー
ジ・テーブルをチエツクし、そしてそれがユニツト10
Aの主メモリ中にはないことを決定する。この時点で、
従来のシステムは、ページ不在の処理を行い、デイスク
からページを検索し、それを取り出す。然しながら、本
発明の方法は、要求ページPbの仮想アドレスのための
SVMT構造を単にチエツクするだけであり、そして、
コピーPbがユニツト10Bの主メモリ中にあることを
助言される。従つて、ユニツト10Aの離隔メモリ管理
装置は、ユニツト10Bの離隔メモリ管理装置にメツセ
ージを送り、このメツセージによつて、ユニツト10C
の離隔メモリ管理装置にページPbのコピーを送るよ
う、ユニツト10Bに対して要求する。このような処理
において、ユニツト10Cによる最初の要求は「三角型
I/O動作」(triangular I/O operation)によつてサ
ービスされたと言われる。三角型I/O動作は、データ
のページの転送を含む幾つかのメツセージを含むけれど
も、この動作に費やされる時間は、現在のストレージ及
び通信技術が必要とする時間、即ち、要求されたページ
をユニツト10Bのデイスク・フアイルから検索し取り
出すのに含まれる時間よりも少なくとも2桁以上短縮さ
れる。
要求及び直接転送の最も簡単な場合の動作である。要求
されたページPaがユニツト10Aの主メモリのページ
にはなく、ユニツト10Bに前に送られたコピーPb
が、10A以外の他のユニツトの主メモリのコピーであ
る場合を仮定すると、含まれる動作はやや多くなる。上
述の場合において、ユニツト10Cがユニツト10Aか
ら同じページのコピーを要求しているものと仮定する。
ユニツト10Aはデイスクに要求ページPのコピーを有
しているけれども、然し、これはページPを検索してそ
れをユニツト10Cに転送するために、相対的に長時間
を要するデイスクI/O動作を必要とする。ユニツト1
0Cからの要求をサービスする際のユニツト10Aの離
隔メモリ管理装置は、先ず、ユニツト10Aの変換ペー
ジ・テーブルをチエツクし、そしてそれがユニツト10
Aの主メモリ中にはないことを決定する。この時点で、
従来のシステムは、ページ不在の処理を行い、デイスク
からページを検索し、それを取り出す。然しながら、本
発明の方法は、要求ページPbの仮想アドレスのための
SVMT構造を単にチエツクするだけであり、そして、
コピーPbがユニツト10Bの主メモリ中にあることを
助言される。従つて、ユニツト10Aの離隔メモリ管理
装置は、ユニツト10Bの離隔メモリ管理装置にメツセ
ージを送り、このメツセージによつて、ユニツト10C
の離隔メモリ管理装置にページPbのコピーを送るよ
う、ユニツト10Bに対して要求する。このような処理
において、ユニツト10Cによる最初の要求は「三角型
I/O動作」(triangular I/O operation)によつてサ
ービスされたと言われる。三角型I/O動作は、データ
のページの転送を含む幾つかのメツセージを含むけれど
も、この動作に費やされる時間は、現在のストレージ及
び通信技術が必要とする時間、即ち、要求されたページ
をユニツト10Bのデイスク・フアイルから検索し取り
出すのに含まれる時間よりも少なくとも2桁以上短縮さ
れる。
第1図に示したクラスタ構成において、各ユニツトは同
じオペレーテイング・システムで動作していることと、
クラスタ内では、各フアイルに対するコピーはただ1つ
だけしか存在しないことが好ましいこととは注意を払う
必要がある。各フアイルは、そのフアイルのアクセス・
コーデイネータとして動作するプロセツサ・ユニツトに
割当てられている。フアイルはプロセツサ・ユニツトの
2次ストレージ装置に記憶される。フアイル/アクセス
・コーデイネータの割当ては、駆動パラメータ及び通路
パラメータにフアイルの名前全体を使用するPC−DO
Sオペレーテイング・システムに用いられている規則と
同じように、フアイルに与えた名前によつて設定するこ
とが出来る。上記の代案として、現在のアクセス・コー
デイネータと共にクラスタ中の各フアイルを表にした簡
単なアクセス・コーデイネータ用テーブルを用いること
も出来る。
じオペレーテイング・システムで動作していることと、
クラスタ内では、各フアイルに対するコピーはただ1つ
だけしか存在しないことが好ましいこととは注意を払う
必要がある。各フアイルは、そのフアイルのアクセス・
コーデイネータとして動作するプロセツサ・ユニツトに
割当てられている。フアイルはプロセツサ・ユニツトの
2次ストレージ装置に記憶される。フアイル/アクセス
・コーデイネータの割当ては、駆動パラメータ及び通路
パラメータにフアイルの名前全体を使用するPC−DO
Sオペレーテイング・システムに用いられている規則と
同じように、フアイルに与えた名前によつて設定するこ
とが出来る。上記の代案として、現在のアクセス・コー
デイネータと共にクラスタ中の各フアイルを表にした簡
単なアクセス・コーデイネータ用テーブルを用いること
も出来る。
以下の説明の便宜上、217ページ即ち128Kページ
(131072)を含むセグメントから成る211バイ
ト、即ち2Kバイトを含むデータのページがあるものと
仮定する。クラスタにより用いられる仮想アドレス空間
は各プロセツサ・ユニツトにより使用されるので、2つ
の新しいデータ構造の識別子が用いられる。第6図に示
したローカル・セグメント識別子(Local Segment Iden
tifier−LSID)は、アクセス・コーデイネータを持
つセグメントを識別する。LSIDは12ビツトを含ん
でいる。
(131072)を含むセグメントから成る211バイ
ト、即ち2Kバイトを含むデータのページがあるものと
仮定する。クラスタにより用いられる仮想アドレス空間
は各プロセツサ・ユニツトにより使用されるので、2つ
の新しいデータ構造の識別子が用いられる。第6図に示
したローカル・セグメント識別子(Local Segment Iden
tifier−LSID)は、アクセス・コーデイネータを持
つセグメントを識別する。LSIDは12ビツトを含ん
でいる。
第6図に示されたグローバル・セグメント識別子(Glob
al Segment Identifier−GSID)は、19ビツトを
含み、セグメント内のプロセツサ・ユニツトを識別す
る。GSIDは17ビツトのプロセツサ識別(ID)部
分と、12ビツトのローカル・セグメント識別子LSI
Dを持つている。
al Segment Identifier−GSID)は、19ビツトを
含み、セグメント内のプロセツサ・ユニツトを識別す
る。GSIDは17ビツトのプロセツサ識別(ID)部
分と、12ビツトのローカル・セグメント識別子LSI
Dを持つている。
VSMTデータ構造は、第7図に示されており、各プロ
セツサ・ユニツトによつて使用される反転ページ・テー
ブルの機能と多くの点で同じである。
セツサ・ユニツトによつて使用される反転ページ・テー
ブルの機能と多くの点で同じである。
VSMTの各エントリ(記入項目)は、以下に示すフイ
ールドを含んでいる。
ールドを含んでいる。
状態標識(State Indicator) 4ビツト ローカル・セグメント識別子(Local Segment ID) 24ビツト ローカル・セグメント内の ページ数 16ビツト 最終エントリ標識 1ビツト プロセツサ識別子 8ビツト ハツシユ・チエーンの次のインデツクス (Index of Next Entry on Hash Chain) 31ビツト 既に述べたように、各プロセツサ・ユニツト10で用い
られている反転ページ・テーブルIPTは、ページ・フ
ーム内に記憶されているページの仮想アドレスを、主メ
モリ中のページ・フレームに相関するために機能する。
第5図に示された反転ページ・テーブルは、その主メモ
リ中の各ページ・フレーム毎に1つのエントリを持つて
いる。クラスタ中の各反転ページ・テーブルに含まれて
いるデータ自身は、そのプロセツサ・ユニツトによつて
記憶されているVSMTとは重複していない。プロセツ
サ・ユニツトのためのVSMTの機能はエントリをログ
(経過記録すること)することにあり、それらのエント
リは、そのプロセツサ・ユニツトによつて調整されてい
る仮想ページが、クラスタの他のユニツトに送られたこ
とを反映している。換言すれば、プロセツサ・ユニツト
のVSMTは、そのプロセツサ・ユニツトが調整してい
る仮想ページが、クラスタの他のプロセツサ・ユニツト
に転送されたときに更新される。
られている反転ページ・テーブルIPTは、ページ・フ
ーム内に記憶されているページの仮想アドレスを、主メ
モリ中のページ・フレームに相関するために機能する。
第5図に示された反転ページ・テーブルは、その主メモ
リ中の各ページ・フレーム毎に1つのエントリを持つて
いる。クラスタ中の各反転ページ・テーブルに含まれて
いるデータ自身は、そのプロセツサ・ユニツトによつて
記憶されているVSMTとは重複していない。プロセツ
サ・ユニツトのためのVSMTの機能はエントリをログ
(経過記録すること)することにあり、それらのエント
リは、そのプロセツサ・ユニツトによつて調整されてい
る仮想ページが、クラスタの他のユニツトに送られたこ
とを反映している。換言すれば、プロセツサ・ユニツト
のVSMTは、そのプロセツサ・ユニツトが調整してい
る仮想ページが、クラスタの他のプロセツサ・ユニツト
に転送されたときに更新される。
プロセツサ・ユニツト10のVSMTへのエントリの表
は、第7図に示した通りである。このテーブルのエント
リは、第8図に示したシステム・ハツシユ・アンカー・
テーブル(system hash anchor table)にストアされて
いるインデツクスによつて行われる。このインデツクス
は、そのテーブルの仮想アドレスのセクシヨンが同じ値
にハツシユされるテーブルのセクシヨン中の第1のエン
トリに対するものである。これらのセクシヨンはハツシ
ユ(hash)値セクシヨンと言われる。各ハツシユ値セク
シヨンのローカル・セグメント識別子のエントリは、降
順に並べられる。同じローカル・セグメント識別子LS
IDのエントリは仮想ページ・インデツクスによつて昇
順に並べられる。
は、第7図に示した通りである。このテーブルのエント
リは、第8図に示したシステム・ハツシユ・アンカー・
テーブル(system hash anchor table)にストアされて
いるインデツクスによつて行われる。このインデツクス
は、そのテーブルの仮想アドレスのセクシヨンが同じ値
にハツシユされるテーブルのセクシヨン中の第1のエン
トリに対するものである。これらのセクシヨンはハツシ
ユ(hash)値セクシヨンと言われる。各ハツシユ値セク
シヨンのローカル・セグメント識別子のエントリは、降
順に並べられる。同じローカル・セグメント識別子LS
IDのエントリは仮想ページ・インデツクスによつて昇
順に並べられる。
仮想アドレスのハツシユ値は、例えば、そのページを含
むセグメントのLSIDをページの「仮想ページ・イン
デツクス」でハツシユすることによつて得られる。この
ハツシユ値は、アンカー・テーブル内のインデツクスで
あり、VSMTのハツシユ・エントリのヘツドのポイン
タを与える。
むセグメントのLSIDをページの「仮想ページ・イン
デツクス」でハツシユすることによつて得られる。この
ハツシユ値は、アンカー・テーブル内のインデツクスで
あり、VSMTのハツシユ・エントリのヘツドのポイン
タを与える。
共用されたマツプ・フアイル(shared mapped file)
は、少なくとも2つの仮想メモリ・セグメントで構成さ
れている。少なくとも1つのアプリケーシヨン・プログ
ラムが、オープンしたフアイルを持つている各使用側処
理ユニツト(using processing unit)において、アプ
リケーシヨン・プログラムによつて発生されたオープン
・システム・コール毎に1つのセグメントがあり、そし
て所有側処理ユニツト(owing processing unit)にお
いては、1つのセグメントがある。第9図は共用された
マツプ・フアイルのモデルを示している。
は、少なくとも2つの仮想メモリ・セグメントで構成さ
れている。少なくとも1つのアプリケーシヨン・プログ
ラムが、オープンしたフアイルを持つている各使用側処
理ユニツト(using processing unit)において、アプ
リケーシヨン・プログラムによつて発生されたオープン
・システム・コール毎に1つのセグメントがあり、そし
て所有側処理ユニツト(owing processing unit)にお
いては、1つのセグメントがある。第9図は共用された
マツプ・フアイルのモデルを示している。
使用側処理ユニツト10aのセグメントは、離隔セグメ
ント結合サービス(Bind Remote Segment Service−B
RSS)を用いて所有側処理ユニツト10bのセグメン
トに結合される。所有側処理ユニツト10aのセグメン
トのすべてのページは、マツプ離隔ページ範囲サービス
(Map Remote Page Range Service−MRPRS)を用
いて、所有側処理ユニツトのセグメントへの読取り/書
込みを行うようマツプされる。
ント結合サービス(Bind Remote Segment Service−B
RSS)を用いて所有側処理ユニツト10bのセグメン
トに結合される。所有側処理ユニツト10aのセグメン
トのすべてのページは、マツプ離隔ページ範囲サービス
(Map Remote Page Range Service−MRPRS)を用
いて、所有側処理ユニツトのセグメントへの読取り/書
込みを行うようマツプされる。
フアイルをマツプするために、アプリケーシヨン・プロ
グラムは、最初に、フアイルをオープンする(開始す
る)ためのオープン・システム・コール(open system
call)を発生する。次に、アプリケーシヨン・プログラ
ムはアプリケーシヨン・プログラムの仮想アドレス空間
にフアイルをマツプするためのシマート(shmat)シス
テム・コールを発生する。シマート・システム・コール
はフアイルを仮想メモリにロードするためにマツプ・ペ
ージ範囲サービス(Map Page Range Service−MPR
S)を用いる。アプリケーシヨン・プログラムはロード
・インストラクシヨン、またはストア・インストラクシ
ヨンによつてフアイルへ直接にアクセスすることが出来
る。フアイルをアクセスするために、オペレーテイング
・システムとの間の対話単位は必要としない。アプリケ
ーシヨン・プログラムがフアイルの処理を完了した時、
アプリケーシヨン・プログラムはシマート・システム・
コールを発生することによつて、その仮想アドレス空間
からそのフアイルを除去することが出来る。代案とし
て、クローズ・システム・コールは、要求に応じて、シ
マート・システム・コールを自動的に遂行するので、ア
プリケーシヨン・プログラムはクローズ・システムを単
に発生するだけでもよい。
グラムは、最初に、フアイルをオープンする(開始す
る)ためのオープン・システム・コール(open system
call)を発生する。次に、アプリケーシヨン・プログラ
ムはアプリケーシヨン・プログラムの仮想アドレス空間
にフアイルをマツプするためのシマート(shmat)シス
テム・コールを発生する。シマート・システム・コール
はフアイルを仮想メモリにロードするためにマツプ・ペ
ージ範囲サービス(Map Page Range Service−MPR
S)を用いる。アプリケーシヨン・プログラムはロード
・インストラクシヨン、またはストア・インストラクシ
ヨンによつてフアイルへ直接にアクセスすることが出来
る。フアイルをアクセスするために、オペレーテイング
・システムとの間の対話単位は必要としない。アプリケ
ーシヨン・プログラムがフアイルの処理を完了した時、
アプリケーシヨン・プログラムはシマート・システム・
コールを発生することによつて、その仮想アドレス空間
からそのフアイルを除去することが出来る。代案とし
て、クローズ・システム・コールは、要求に応じて、シ
マート・システム・コールを自動的に遂行するので、ア
プリケーシヨン・プログラムはクローズ・システムを単
に発生するだけでもよい。
マツプされた所定のフアイルのデータを共用すること
は、オープン・フアイルに関連した使用側処理ユニツト
のセグメントを、オープン・フアイルに関連した所有側
処理ユニツトのセグメントに結合することによつてクラ
スタ内で遂行される。仮想メモリのセグメント中にマツ
プされたフアイル(以下マツプ・フアイルという)を持
つ各使用側処理ユニツトは、そのセグメントを実行する
アプリケーシヨン・プログラムがオープンした各マツプ
・フアイル毎に1つのセグメントを持つている。与えら
れた使用側処理ユニツト、または所有側処理ユニツトに
おけるすべてのアプリケーシヨン・プログラムは、同じ
セグメントを論理的に共用する。オープン・フアイルに
関連された所有側処理ユニツトのセグメントは、オープ
ン・フアイルと関連されている使用側処理ユニツトのセ
グメントがリンクされているセグメントである。
は、オープン・フアイルに関連した使用側処理ユニツト
のセグメントを、オープン・フアイルに関連した所有側
処理ユニツトのセグメントに結合することによつてクラ
スタ内で遂行される。仮想メモリのセグメント中にマツ
プされたフアイル(以下マツプ・フアイルという)を持
つ各使用側処理ユニツトは、そのセグメントを実行する
アプリケーシヨン・プログラムがオープンした各マツプ
・フアイル毎に1つのセグメントを持つている。与えら
れた使用側処理ユニツト、または所有側処理ユニツトに
おけるすべてのアプリケーシヨン・プログラムは、同じ
セグメントを論理的に共用する。オープン・フアイルに
関連された所有側処理ユニツトのセグメントは、オープ
ン・フアイルと関連されている使用側処理ユニツトのセ
グメントがリンクされているセグメントである。
クラスタ構成を通じて仮想メモリのセグメントを共用す
るための1つの要件は、独立型の構成とクラスタ構成と
の両方において、マツプ・フアイルが同じ内容となるよ
うに更新されるのを保証することである。このことは、
下記の示唆、即ち、マツプ・フアイルに対して実行され
る各ストア・インストラクシヨンは、クラスタ内で共用
されるマツプ・フアイルの全てのコピーに直ちに適用さ
れるように現われねばならないことを示唆している。こ
れはマツプ・フアイルをアクセスするとき、調和を持た
せるルールを定めることによつて達成される。
るための1つの要件は、独立型の構成とクラスタ構成と
の両方において、マツプ・フアイルが同じ内容となるよ
うに更新されるのを保証することである。このことは、
下記の示唆、即ち、マツプ・フアイルに対して実行され
る各ストア・インストラクシヨンは、クラスタ内で共用
されるマツプ・フアイルの全てのコピーに直ちに適用さ
れるように現われねばならないことを示唆している。こ
れはマツプ・フアイルをアクセスするとき、調和を持た
せるルールを定めることによつて達成される。
これらの調和のルールは、 (1)若し、クラスタ構成内の処理ユニツトで実行して
いる1つ以上のアプリケーシヨン・プログラムが、ペー
ジ中に書込みを行つたとすれば、たつた1台の処理ユニ
ツトしか、セグメントの与えられたページのコピーを持
つことが出来ないこと及び、 (2)若し、クラスタ構成中の任意の処理ユニツトで実
行しているアプリケーシヨン・プログラムが、ページ中
に書き込みをしていなければ、任意数の処理ユニツト
が、セグメントの与えられたページのコピーを持つこと
が出来ること、 というものである。
いる1つ以上のアプリケーシヨン・プログラムが、ペー
ジ中に書込みを行つたとすれば、たつた1台の処理ユニ
ツトしか、セグメントの与えられたページのコピーを持
つことが出来ないこと及び、 (2)若し、クラスタ構成中の任意の処理ユニツトで実
行しているアプリケーシヨン・プログラムが、ページ中
に書き込みをしていなければ、任意数の処理ユニツト
が、セグメントの与えられたページのコピーを持つこと
が出来ること、 というものである。
所有側処理ユニツトと使用側処理ユニツトの仮想メモリ
管理要素(Virtual Memory Manager−VMM)は、これ
らの調和のルールを実施するために協働する。各VMM
は従来のハードウエアのページ保護機構を用いることに
よつてこれらの調和の状態を実現する。共用された仮想
メモリ中の各ページは、それに関連した2つのページ保
護キーを持つ。前者のキーはクリエート・セグメント・
サービス(Create Segment Service−CSS)、または
保護ページ・サービス(Protect Page Service−PS
S)を用いて特定された要求保護キー(requested prot
ection key)である。このキーは、メモリ・アクセスの
どのタイプがそのページに有効かを決めるのに使用され
る。後者のキーは有効保護キー(effective protection
key)である。このキーは共用されるマツプ・フアイル
のデータの調和ルールを実施するために使用される。
管理要素(Virtual Memory Manager−VMM)は、これ
らの調和のルールを実施するために協働する。各VMM
は従来のハードウエアのページ保護機構を用いることに
よつてこれらの調和の状態を実現する。共用された仮想
メモリ中の各ページは、それに関連した2つのページ保
護キーを持つ。前者のキーはクリエート・セグメント・
サービス(Create Segment Service−CSS)、または
保護ページ・サービス(Protect Page Service−PS
S)を用いて特定された要求保護キー(requested prot
ection key)である。このキーは、メモリ・アクセスの
どのタイプがそのページに有効かを決めるのに使用され
る。後者のキーは有効保護キー(effective protection
key)である。このキーは共用されるマツプ・フアイル
のデータの調和ルールを実施するために使用される。
マツプ・フアイル中の各ページは、任意の時間において
3つの独立した調和状態の1つを持つている。これらの
調和状態は、使用側処理ユニツトと所有側処理ユニツト
の両方の共用マツプ・フアイルに適用する。クラスタを
通じて共用されたマツプ・フアイルの与えられたページ
の調和用のルールは、仮想共用メモリ・テーブル(VS
MT)状態フイールド(第7図参照)中に記録される。
VSMTのデータ構造がどのようにして更新されるかに
ついては、後述する。調和の状態は以下の通りである。
3つの独立した調和状態の1つを持つている。これらの
調和状態は、使用側処理ユニツトと所有側処理ユニツト
の両方の共用マツプ・フアイルに適用する。クラスタを
通じて共用されたマツプ・フアイルの与えられたページ
の調和用のルールは、仮想共用メモリ・テーブル(VS
MT)状態フイールド(第7図参照)中に記録される。
VSMTのデータ構造がどのようにして更新されるかに
ついては、後述する。調和の状態は以下の通りである。
「アクセスせず」(NoAccess)の調和状態:この状態に
おいては、ページのコピーは処理ユニツトの主メモリに
はない。アプリケーシヨン・プログラムがベージをアク
セスする全ての場合、ページ不在発生割込み(page fal
t occurred interrupt)信号が発生され、この信号はV
MMに送られる。この状態は、クラスタ中の他の処理ユ
ニツトにあるページのコピーの有効な調和の状態に関し
て付加的な制限を与えない。
おいては、ページのコピーは処理ユニツトの主メモリに
はない。アプリケーシヨン・プログラムがベージをアク
セスする全ての場合、ページ不在発生割込み(page fal
t occurred interrupt)信号が発生され、この信号はV
MMに送られる。この状態は、クラスタ中の他の処理ユ
ニツトにあるページのコピーの有効な調和の状態に関し
て付加的な制限を与えない。
「読取りのみ」(ReadOnly)の調和状態:この状態にお
いて、ページのコピーは、処理ユニツトの主メモリ中に
ある。そして、ページのコピーは主メモリに置かれてい
るので、修正されていない。ページの有効保護キーは読
取りのみである。ページに対するストア・アクセスは、
若し、要求された保護キーが読取り/書込みであれば、
ページ不在発生割込み信号を発生し、この信号はVMM
に送られる。ページに対するストア・アクセスは、若し
要求された保護キーが読取りのみであれば、保護除外発
生割込み信号を発生し、この信号はVMMに送られる。
前者の割込み信号は、アプリケーシヨン・プログラムが
書込みのために、ページのアクセスを行つたことをVM
Mに知らせるのに使用される。後者の割込み信号は、ア
プリケーシヨン・プログラムが書込みのために、ページ
のアクセスを行つたことをVMMに知らせるのに使用さ
れるが、しかし、これはそうすることの許可を持つもの
ではない。これは一般にエラー状態とされ、適当な方法
でエラーを処理するように、エラー操作が遂行されねば
ならない。
いて、ページのコピーは、処理ユニツトの主メモリ中に
ある。そして、ページのコピーは主メモリに置かれてい
るので、修正されていない。ページの有効保護キーは読
取りのみである。ページに対するストア・アクセスは、
若し、要求された保護キーが読取り/書込みであれば、
ページ不在発生割込み信号を発生し、この信号はVMM
に送られる。ページに対するストア・アクセスは、若し
要求された保護キーが読取りのみであれば、保護除外発
生割込み信号を発生し、この信号はVMMに送られる。
前者の割込み信号は、アプリケーシヨン・プログラムが
書込みのために、ページのアクセスを行つたことをVM
Mに知らせるのに使用される。後者の割込み信号は、ア
プリケーシヨン・プログラムが書込みのために、ページ
のアクセスを行つたことをVMMに知らせるのに使用さ
れるが、しかし、これはそうすることの許可を持つもの
ではない。これは一般にエラー状態とされ、適当な方法
でエラーを処理するように、エラー操作が遂行されねば
ならない。
ページが「読取りのみ」の調和状態にある時には、クラ
スタ中の他の処理ユニツトは同じページを、読取りのた
めにアクセスすることが出来る。ページが「読取りの
み」の調和状態にある時は、クラスタ中の他の処理ユニ
ツトは同じページを、書込みのためにアクセスすること
は出来ない。
スタ中の他の処理ユニツトは同じページを、読取りのた
めにアクセスすることが出来る。ページが「読取りの
み」の調和状態にある時は、クラスタ中の他の処理ユニ
ツトは同じページを、書込みのためにアクセスすること
は出来ない。
「読取り書込み」(ReadWrite)の調和状態:この状態
においては、ページのコピーは処理ユニツトの主メモリ
中にある。そして、ページは処理ユニツトの主メモリ中
に記憶されているので、そのページは修正されていな
い。ページの有効保護キーは読取り/書込みである。V
MMに信号を送るページ不在発生割込み信号を発生させ
ることなく、読取りまたは書込みの何れに対しても、ペ
ージのアクセスをすることが出来る。読取りのためのペ
ージのアクセスは、若し、要求された保護キーが、ペー
ジの読取りアクセスを許容しなければ、VMMに信号が
送られる保護例外割込み信号を発生する。書込みのため
のページのアクセスは、若し、要求された保護キーがそ
のページへの書込みアクセスを許容しなければ、VMM
へ信号が送られる保護例外割込み信号を発生する。クラ
スタ内の他の全ての処理ユニツトは、ページが「読取り
書込み」の調和状態にあるときは、読取り書込みのいず
れでも同じページにアクセスすることが出来る。
においては、ページのコピーは処理ユニツトの主メモリ
中にある。そして、ページは処理ユニツトの主メモリ中
に記憶されているので、そのページは修正されていな
い。ページの有効保護キーは読取り/書込みである。V
MMに信号を送るページ不在発生割込み信号を発生させ
ることなく、読取りまたは書込みの何れに対しても、ペ
ージのアクセスをすることが出来る。読取りのためのペ
ージのアクセスは、若し、要求された保護キーが、ペー
ジの読取りアクセスを許容しなければ、VMMに信号が
送られる保護例外割込み信号を発生する。書込みのため
のページのアクセスは、若し、要求された保護キーがそ
のページへの書込みアクセスを許容しなければ、VMM
へ信号が送られる保護例外割込み信号を発生する。クラ
スタ内の他の全ての処理ユニツトは、ページが「読取り
書込み」の調和状態にあるときは、読取り書込みのいず
れでも同じページにアクセスすることが出来る。
幾つかの事態が発生すると、ページの調和状態は、その
事態によつて影響される。それらの事態とは(1)同じ
処理ユニツトで実行している複数個のアプリケーシヨン
・プログラムによつて、ページをアクセスする場合と、
(2)同じ処理ユニツトにおいて除去ページ範囲(Purg
e Page Range-PPRS)を実行する場合と、(3)同
じ処理ユニツトにおいて除去セグメント・サービス(Pu
rge Segment Service-PSS)を実行する場合と、
(4)同じ処理ユニツトにおいてVMMのページ置換メ
カニズムを実行する場合と、(5)クラスタ内の各処理
ユニツトにおけるページの調和状態を変化する場合とで
ある。クラスタ内の各処理ユニツトのVMMの実行は、
これらの状況がページの調和状態の有効なトランジシヨ
ンを生じることを保証するために協働する。VMMによ
つて許容される有効なトランジシヨンは、以下の通りで
ある。
事態によつて影響される。それらの事態とは(1)同じ
処理ユニツトで実行している複数個のアプリケーシヨン
・プログラムによつて、ページをアクセスする場合と、
(2)同じ処理ユニツトにおいて除去ページ範囲(Purg
e Page Range-PPRS)を実行する場合と、(3)同
じ処理ユニツトにおいて除去セグメント・サービス(Pu
rge Segment Service-PSS)を実行する場合と、
(4)同じ処理ユニツトにおいてVMMのページ置換メ
カニズムを実行する場合と、(5)クラスタ内の各処理
ユニツトにおけるページの調和状態を変化する場合とで
ある。クラスタ内の各処理ユニツトのVMMの実行は、
これらの状況がページの調和状態の有効なトランジシヨ
ンを生じることを保証するために協働する。VMMによ
つて許容される有効なトランジシヨンは、以下の通りで
ある。
「アクセスせず」の調和状態から、「読取りのみ」の調
和状態へのトランジシヨン(NoAccess to ReadOnly):
この調和状態のトランジシヨンは、ページの読取りアク
セスから発生して、使用側処理ユニツトのVMMへ送ら
れたページ不在割込み信号によつてトリガされる。ペー
ジ不在割込み信号を受け取つたとき、使用側処理ユニツ
トのVMMは、要求する所有側処理ユニツトVMMへメ
ツセージを送り、所有側処理ユニツトのVMMは、ペー
ジのデータと、読取りのページをアクセスするための許
可とを、使用側処理ユニツトのVMMに要求する。
和状態へのトランジシヨン(NoAccess to ReadOnly):
この調和状態のトランジシヨンは、ページの読取りアク
セスから発生して、使用側処理ユニツトのVMMへ送ら
れたページ不在割込み信号によつてトリガされる。ペー
ジ不在割込み信号を受け取つたとき、使用側処理ユニツ
トのVMMは、要求する所有側処理ユニツトVMMへメ
ツセージを送り、所有側処理ユニツトのVMMは、ペー
ジのデータと、読取りのページをアクセスするための許
可とを、使用側処理ユニツトのVMMに要求する。
そのページに対する前の調和状態を「記憶する」こと
と、ページの調和状態が「アクセスせず」であるときに
発生するページの読取りアクセスの代りに、ページの調
和状態が「読取り書込み」であるときに発生するページ
の書込みアクセスであるかのように、このトランジシヨ
ンを取り扱うことが、ある場合には、使用側処理ユニツ
トにとつては望ましことがある。実際上しばしば生じる
ように、ページの書込みアクセスがページの読取りアク
セスに続く時、プロトコルのこの変更は、2つの調和状
態の変更を阻止する。若し、この変更プロトコルが用い
られたとすれば、ページ不在発生割込み信号を受け取つ
たとき、使用側処理ユニツトのVMMは、所有側処理ユ
ニツトのVMMにメツセージを送り、所有側処理ユニツ
トのVMMが、ページのデータと、書込みのためのアク
セスの許可とを、使用側処理ユニツトのVMMに送るこ
とを要求する。
と、ページの調和状態が「アクセスせず」であるときに
発生するページの読取りアクセスの代りに、ページの調
和状態が「読取り書込み」であるときに発生するページ
の書込みアクセスであるかのように、このトランジシヨ
ンを取り扱うことが、ある場合には、使用側処理ユニツ
トにとつては望ましことがある。実際上しばしば生じる
ように、ページの書込みアクセスがページの読取りアク
セスに続く時、プロトコルのこの変更は、2つの調和状
態の変更を阻止する。若し、この変更プロトコルが用い
られたとすれば、ページ不在発生割込み信号を受け取つ
たとき、使用側処理ユニツトのVMMは、所有側処理ユ
ニツトのVMMにメツセージを送り、所有側処理ユニツ
トのVMMが、ページのデータと、書込みのためのアク
セスの許可とを、使用側処理ユニツトのVMMに送るこ
とを要求する。
「アクセスせず」の調和状態から「読取り書込み」の調
和状態への(NoAccess to ReadWrite)トランジシヨ
ン:この調和状態のトランジシヨンは、ページの書込み
アクセスから発生した使用側処理ユニツトのVMMに送
られるページ不在発生割込み信号によつてトリガされ
る。ページ不在発生割込み信号を受け取つたとき、使用
側処理ユニツトのVMMは、所有側処理ユニツトのVM
Mにメツセージを送り、これにより、所有側処理ユニツ
トのVMMが、ページのデータと、書込みのためのアク
セスの許可とを使用側処理ユニツトのVMMに送ること
を、所有側処理ユニツトに対して要求する。
和状態への(NoAccess to ReadWrite)トランジシヨ
ン:この調和状態のトランジシヨンは、ページの書込み
アクセスから発生した使用側処理ユニツトのVMMに送
られるページ不在発生割込み信号によつてトリガされ
る。ページ不在発生割込み信号を受け取つたとき、使用
側処理ユニツトのVMMは、所有側処理ユニツトのVM
Mにメツセージを送り、これにより、所有側処理ユニツ
トのVMMが、ページのデータと、書込みのためのアク
セスの許可とを使用側処理ユニツトのVMMに送ること
を、所有側処理ユニツトに対して要求する。
「読取りのみ」の調和状態から「書込み読取り」の調和
状態への(ReadOnly to ReadWrite)トランジシヨン:
この調和状態のトランジシヨンは、ページの書込みアク
セスから発生した使用側処理ユニツトのVMMに送られ
るページ不在発生割込み信号によつてトリガされる。ペ
ージ不在発生割込み信号を受け取つたとき、使用側処理
ユニツトのVMMは、所有側処理ユニツトのVMMへメ
ツセージを送り、これによつて、所有側処理ユニツトの
VMMが、ページの書込みを行うためのアクセスの許可
を使用側処理ユニツトのVMMに送ることを、所有側処
理ユニツトに対して要求する。
状態への(ReadOnly to ReadWrite)トランジシヨン:
この調和状態のトランジシヨンは、ページの書込みアク
セスから発生した使用側処理ユニツトのVMMに送られ
るページ不在発生割込み信号によつてトリガされる。ペ
ージ不在発生割込み信号を受け取つたとき、使用側処理
ユニツトのVMMは、所有側処理ユニツトのVMMへメ
ツセージを送り、これによつて、所有側処理ユニツトの
VMMが、ページの書込みを行うためのアクセスの許可
を使用側処理ユニツトのVMMに送ることを、所有側処
理ユニツトに対して要求する。
「読取りのみ」の調和状態から「アクセスせず」の調和
状態への(ReadOnly to NoAccess)トランジシヨン:こ
の調和状態のトランジシヨンは、(a)修正されていな
いページを含むページ・フレームが、データの他のペー
ジを保持するように、使用側処理ユニツトのVMMによ
つて再割当てされた時か、または、(b)修正されてい
ないページが、除外セグメント・サービス(Purge Segm
ent Service-PSS)か、或は除外ページ範囲サービス
(Purge Page Range Service-PPRS)のいずれかを
用いて除外された時か、または、(c)読取り/書込み
のためにマツプされたフアイルを持つ他の使用側処理ユ
ニツトにおいて実行しているアプリケーシヨン・プログ
ラムが、書込みのためのページのアクセスをした場合に
生じる「アクセスせず」に対するページ用の有効保護キ
ーを、使用側処理ユニツトのVMMが変更するように、
所有側処理ユニツトのVMMが要求した時にトリガされ
る。
状態への(ReadOnly to NoAccess)トランジシヨン:こ
の調和状態のトランジシヨンは、(a)修正されていな
いページを含むページ・フレームが、データの他のペー
ジを保持するように、使用側処理ユニツトのVMMによ
つて再割当てされた時か、または、(b)修正されてい
ないページが、除外セグメント・サービス(Purge Segm
ent Service-PSS)か、或は除外ページ範囲サービス
(Purge Page Range Service-PPRS)のいずれかを
用いて除外された時か、または、(c)読取り/書込み
のためにマツプされたフアイルを持つ他の使用側処理ユ
ニツトにおいて実行しているアプリケーシヨン・プログ
ラムが、書込みのためのページのアクセスをした場合に
生じる「アクセスせず」に対するページ用の有効保護キ
ーを、使用側処理ユニツトのVMMが変更するように、
所有側処理ユニツトのVMMが要求した時にトリガされ
る。
「読取り書込み」の調和状態から「アクセスせず」の調
和状態への(ReadWrite to NoAccess)トランジシヨ
ン:この調和状態のトランジシヨンは、(a)修正され
たページを含むページ・フレームが、使用側処理ユニツ
トのVMMによつて置換するために選択された時か、ま
たは、(b)修正されたページが除外セグメント・サー
ビス(PSS)か、或は除外ページ範囲サービス(PP
RS)のいずれかを用いて除外された時か、または、
(c)読取り/書込みのためにマツプされたフアイルを
持つている他の使用側処理ユニツトにおいて実行してい
るアプリケーシヨン・プログラムが、ページの書込みの
アクセスをした場合に生じる「アクセスせず」に対する
ページ用の有効保護キーを、使用側処理ユニツトのVM
Mが変更するように、所有側処理ユニツトのVMMが要
求した時にトリガされる。使用側処理ユニツトのVMM
は、ページに含まれているデータを所有側処理ユニツト
のVMMに送り、そして、使用側処理ユニツトのVMM
が「アクセスせず」のページの調和状態を変更したこと
と、その主メモリからページを除去したことの通知とを
所有側処理ユニツトのVMMに送る。
和状態への(ReadWrite to NoAccess)トランジシヨ
ン:この調和状態のトランジシヨンは、(a)修正され
たページを含むページ・フレームが、使用側処理ユニツ
トのVMMによつて置換するために選択された時か、ま
たは、(b)修正されたページが除外セグメント・サー
ビス(PSS)か、或は除外ページ範囲サービス(PP
RS)のいずれかを用いて除外された時か、または、
(c)読取り/書込みのためにマツプされたフアイルを
持つている他の使用側処理ユニツトにおいて実行してい
るアプリケーシヨン・プログラムが、ページの書込みの
アクセスをした場合に生じる「アクセスせず」に対する
ページ用の有効保護キーを、使用側処理ユニツトのVM
Mが変更するように、所有側処理ユニツトのVMMが要
求した時にトリガされる。使用側処理ユニツトのVMM
は、ページに含まれているデータを所有側処理ユニツト
のVMMに送り、そして、使用側処理ユニツトのVMM
が「アクセスせず」のページの調和状態を変更したこと
と、その主メモリからページを除去したことの通知とを
所有側処理ユニツトのVMMに送る。
「読取り書込み」の調和状態から「読取りのみ」の調和
状態への(ReadWrite to ReadOnly)トランジシヨン:
この調和状態のトランジシヨンは、(a)修正されたペ
ージを含むページ・フレームが、使用側処理ユニツトの
VMMによつて置換するために選択された時か、また
は、(b)修正されたページが、除外セグメント・サー
ビス(PSS)か、或は除外ページ範囲サービス(PP
RS)のいずれかを用いて除外された時か、または、
(c)読取り/書込み用にマツプされたフアイルを持つ
ている他の使用側処理ユニツトで実行しているアプリケ
ーシヨン・プログラムが、ページの書込みのアクセスを
した場合に生じる「アクセスせず」のページのための有
効保護キーを、使用側処理ユニツトのVMMが変更する
ように、所有側処理ユニツトのVMMが要求した時にト
リガされる。使用側処理ユニツトのVMMは、ページに
含まれているデータを所有側処理ユニツトのVMMに送
り、そして、使用側処理ユニツトのVMMが「読取りの
み」のページの調和状態を変更したことと、ページの読
取りのみのアクセスを許容するように有効保護キーをセ
ツトしたことの通知を所有側処理ユニツトのVMMに送
る。
状態への(ReadWrite to ReadOnly)トランジシヨン:
この調和状態のトランジシヨンは、(a)修正されたペ
ージを含むページ・フレームが、使用側処理ユニツトの
VMMによつて置換するために選択された時か、また
は、(b)修正されたページが、除外セグメント・サー
ビス(PSS)か、或は除外ページ範囲サービス(PP
RS)のいずれかを用いて除外された時か、または、
(c)読取り/書込み用にマツプされたフアイルを持つ
ている他の使用側処理ユニツトで実行しているアプリケ
ーシヨン・プログラムが、ページの書込みのアクセスを
した場合に生じる「アクセスせず」のページのための有
効保護キーを、使用側処理ユニツトのVMMが変更する
ように、所有側処理ユニツトのVMMが要求した時にト
リガされる。使用側処理ユニツトのVMMは、ページに
含まれているデータを所有側処理ユニツトのVMMに送
り、そして、使用側処理ユニツトのVMMが「読取りの
み」のページの調和状態を変更したことと、ページの読
取りのみのアクセスを許容するように有効保護キーをセ
ツトしたことの通知を所有側処理ユニツトのVMMに送
る。
所有側処理ユニツトのVMMは、調和状態の有効な組合
せがマツプ・フアイルをアクセスする各ノードにおいて
存在することを保証する。これは、所有側処理ユニツト
の調和の制御アルゴリズムの下で管理された各ページに
対する書込み装置のリストを、所有側処理ユニツトのV
MMに維持させることと、データの与えられたページの
調和状態を変更する要求を、所有側処理ユニツトによつ
て、所有側処理ユニツトから使用側処理ユニツトへ送ら
せることとによつて達成される。使用側処理ユニツトに
よるページの読取りアクセスのすべての要求は、「読取
り書込み」の調和状態から「読取りのみ」への調和状態
の変更をページに書込む要求を、所有側処理ユニツトに
よつて、所有側処理ユニツトから、そのページについて
のアプリケーシヨン・プログラムを実行している使用側
処理ユニツトへ送らせる。使用側処理ユニツトによるペ
ージの書込みアクセスのすべての要求は、「アクセスせ
ず」のページの調和状態に変化する要求を、所有側処理
ユニツトによつて、所有側処理ユニツトから、「読取り
書込み」調和状態のページを持ち、かつそのページにつ
いてのアプリケーシヨン・プログラムを実行している使
用側処理ユニツトへ送らせるか、または、「アクセスせ
ず」のページの調和状態に変化する要求を、所有側処理
ユニツトによつて、所有側処理ユニツトから、「読取り
のみ」調和状態のページを持ち、かつそのページについ
てのアプリケーシヨン・プログラムを実行している使用
側処理ユニツトへ送らせる。
せがマツプ・フアイルをアクセスする各ノードにおいて
存在することを保証する。これは、所有側処理ユニツト
の調和の制御アルゴリズムの下で管理された各ページに
対する書込み装置のリストを、所有側処理ユニツトのV
MMに維持させることと、データの与えられたページの
調和状態を変更する要求を、所有側処理ユニツトによつ
て、所有側処理ユニツトから使用側処理ユニツトへ送ら
せることとによつて達成される。使用側処理ユニツトに
よるページの読取りアクセスのすべての要求は、「読取
り書込み」の調和状態から「読取りのみ」への調和状態
の変更をページに書込む要求を、所有側処理ユニツトに
よつて、所有側処理ユニツトから、そのページについて
のアプリケーシヨン・プログラムを実行している使用側
処理ユニツトへ送らせる。使用側処理ユニツトによるペ
ージの書込みアクセスのすべての要求は、「アクセスせ
ず」のページの調和状態に変化する要求を、所有側処理
ユニツトによつて、所有側処理ユニツトから、「読取り
書込み」調和状態のページを持ち、かつそのページにつ
いてのアプリケーシヨン・プログラムを実行している使
用側処理ユニツトへ送らせるか、または、「アクセスせ
ず」のページの調和状態に変化する要求を、所有側処理
ユニツトによつて、所有側処理ユニツトから、「読取り
のみ」調和状態のページを持ち、かつそのページについ
てのアプリケーシヨン・プログラムを実行している使用
側処理ユニツトへ送らせる。
他の処理ユニツトによつて、それが調整されているペー
ジの処理を反映するために、各処理ユニツトの幾つかの
SVMTを更新するためのプロトコルは、特定のアプリ
ケーシヨンに大きく依存している。或る種のアプリケー
シヨンにおいて、コピーが最早、要求処理ユニツトの主
メモリにないので、アクセス・コーデイネータはそのユ
ニツトを含んだ三角型I/O動作による他の要求をサー
ビス出来ない時を、アクセス・コーデイネータに通知す
ることが、より効果的である。
ジの処理を反映するために、各処理ユニツトの幾つかの
SVMTを更新するためのプロトコルは、特定のアプリ
ケーシヨンに大きく依存している。或る種のアプリケー
シヨンにおいて、コピーが最早、要求処理ユニツトの主
メモリにないので、アクセス・コーデイネータはそのユ
ニツトを含んだ三角型I/O動作による他の要求をサー
ビス出来ない時を、アクセス・コーデイネータに通知す
ることが、より効果的である。
同様に、1台以上の処理ユニツトによつて書込まれるペ
ージを保護するためのプロトコルは、ロツキング・ビツ
トを含んで、多くの従来の保護方法の形式を取ることが
出来る。1987年11月26日に開催されたオペレー
テイング・システムに関するACM特別グループ(ACM
Special Interest Group on Operating Systms)の会報
に記載されたチヤン(A.Chang)等の「801ストレー
ジ:アーキテクチヤ及びプログラミング」(801 Storag
e:Architecture and Programming)と題する文献に記載
された技術を使用することが出来る。
ージを保護するためのプロトコルは、ロツキング・ビツ
トを含んで、多くの従来の保護方法の形式を取ることが
出来る。1987年11月26日に開催されたオペレー
テイング・システムに関するACM特別グループ(ACM
Special Interest Group on Operating Systms)の会報
に記載されたチヤン(A.Chang)等の「801ストレー
ジ:アーキテクチヤ及びプログラミング」(801 Storag
e:Architecture and Programming)と題する文献に記載
された技術を使用することが出来る。
第10図を参照して、代表的な動作を以下に説明する。
第10図は3台の処理ユニツト10a、10b及び10
cと、スイツチ11と、処理ユニツトをスイツチに接続
する3台の通信リンクとで構成されたクラスタのブロツ
ク図である。各処理ユニツトはデイスク装置を仮定した
2次ストレージ装置を有している。個々の処理ユニツト
に接続された2次ストレージ装置にストアされたフアイ
ルの内容を除いて、処理ユニツト10a、10b及び1
0cは同じであると仮定する。以下に、クラスタ構成内
の代表的な動作を第10図乃至第13図を参照して説明
する。これらの動作及びメツセージの流れの説明は、汎
用目的のオペレーテイング・システムのソフトウエアの
仮想メモリ管理コンポーネントの分野の専門家が、本発
明の方法を実施するのに、過度の実験をすることなく実
行することが出来るような程度のレベルで説明されてい
る。
第10図は3台の処理ユニツト10a、10b及び10
cと、スイツチ11と、処理ユニツトをスイツチに接続
する3台の通信リンクとで構成されたクラスタのブロツ
ク図である。各処理ユニツトはデイスク装置を仮定した
2次ストレージ装置を有している。個々の処理ユニツト
に接続された2次ストレージ装置にストアされたフアイ
ルの内容を除いて、処理ユニツト10a、10b及び1
0cは同じであると仮定する。以下に、クラスタ構成内
の代表的な動作を第10図乃至第13図を参照して説明
する。これらの動作及びメツセージの流れの説明は、汎
用目的のオペレーテイング・システムのソフトウエアの
仮想メモリ管理コンポーネントの分野の専門家が、本発
明の方法を実施するのに、過度の実験をすることなく実
行することが出来るような程度のレベルで説明されてい
る。
第11図はクラスタ内の処理ユニツトの1つにストア
(記憶)される新しいフアイルを作成するためのステツ
プを説明するフロー・チヤートである。
(記憶)される新しいフアイルを作成するためのステツ
プを説明するフロー・チヤートである。
第11図のステツプAにおいて、処理ユニツト10aで
実行するアプリケーシヨン・プログラムは、フアイル
「/u/エスモルガン/データベース」を作成するため
にクリエート[sic]システム・コール(create[si
c]system call)を使用する。
実行するアプリケーシヨン・プログラムは、フアイル
「/u/エスモルガン/データベース」を作成するため
にクリエート[sic]システム・コール(create[si
c]system call)を使用する。
ステツプBにおいて、処理ユニツト10aで実行するオ
ペレーテイング・システムはアプリケーシヨン・プログ
ラムからオペレーテイング・システム・コールを横取り
(intercept)する。
ペレーテイング・システムはアプリケーシヨン・プログ
ラムからオペレーテイング・システム・コールを横取り
(intercept)する。
ステツプCにおいて、オペレーテイング・システムは、
「ルート」システムのテイレクトリを検索する。ルート
・システム・デイレクトリはフアイル名のリストを含ん
でおり、夫々のフアイル名はそのフアイルのためのアク
セス・コーデイネータの名前を持つている。説明を簡単
にするために、UNIXのフアイル名の付け方の規則
と、デイレクトリの構成とが使用されるものとするが、
この仮定自身は本発明の方法を実施するための目的とは
直接関係がないことは、この道の専門家であれば容易に
理解出来る。例えば、他のアプリケーシヨン・プログラ
ムが、「/u/エスモルガン/データベース」を作成す
るために使用することが出来る。オペレーテイング・シ
ステムは、「/」に該当するルート・システム・デイレ
クトリを検索し、そして、システム・デイレクトリが
「u」のエントリを含むことと、そのuがデイレクトリ
であることとを見出す。
「ルート」システムのテイレクトリを検索する。ルート
・システム・デイレクトリはフアイル名のリストを含ん
でおり、夫々のフアイル名はそのフアイルのためのアク
セス・コーデイネータの名前を持つている。説明を簡単
にするために、UNIXのフアイル名の付け方の規則
と、デイレクトリの構成とが使用されるものとするが、
この仮定自身は本発明の方法を実施するための目的とは
直接関係がないことは、この道の専門家であれば容易に
理解出来る。例えば、他のアプリケーシヨン・プログラ
ムが、「/u/エスモルガン/データベース」を作成す
るために使用することが出来る。オペレーテイング・シ
ステムは、「/」に該当するルート・システム・デイレ
クトリを検索し、そして、システム・デイレクトリが
「u」のエントリを含むことと、そのuがデイレクトリ
であることとを見出す。
ステツプDにおいて、オペレーテイング・システムはu
デイレクトリを検索し、そのデイレクトリが「エスモル
ガン」のエントリを含んでいることと、そのエスモルガ
ンがデイレクトリであることとを決定する。
デイレクトリを検索し、そのデイレクトリが「エスモル
ガン」のエントリを含んでいることと、そのエスモルガ
ンがデイレクトリであることとを決定する。
ステツプEにおいて、オペレーテイング・システムは、
直接にエスモルガンを検索し、そしてそのデイレクトリ
が「データベース」のエントリを含まないことを見出
す。
直接にエスモルガンを検索し、そしてそのデイレクトリ
が「データベース」のエントリを含まないことを見出
す。
ステツプFにおいて、オペレーテイング・システムは、
フアイル「データベース」のためのアクセス・コーデイ
ネータとして使用するのに、クラスタ中のどの処理ユニ
ツトが最適の装置であるかを決める。オペレーテイング
・システムは、処理ユニツトに関して合理的な選択をす
るために、本発明の方法の実施に不要な動作を選択する
ための或る種のアルゴリズムを使用する。例えばアクセ
ス・コーデイネータの選択は、他のフアイルに対するア
クセス・コーデイネータとしての義務の負擔が最も小さ
い処理ユニツトを、計算に基づいて選択してもよい。オ
ペレーテイング・システムは、他の処理ユニツトに対し
て最も小さな義務が課せられている処理ユニツトを選択
することによつて、アクセス・コーデネーシヨンの機能
(アクセスの調整機能)がその構成中の幾つかの処理ユ
ニツトの間で均等に広がつているものとして、そのシス
テム構成が全体として最上の性能を備えているという想
定をすることが出来る。
フアイル「データベース」のためのアクセス・コーデイ
ネータとして使用するのに、クラスタ中のどの処理ユニ
ツトが最適の装置であるかを決める。オペレーテイング
・システムは、処理ユニツトに関して合理的な選択をす
るために、本発明の方法の実施に不要な動作を選択する
ための或る種のアルゴリズムを使用する。例えばアクセ
ス・コーデイネータの選択は、他のフアイルに対するア
クセス・コーデイネータとしての義務の負擔が最も小さ
い処理ユニツトを、計算に基づいて選択してもよい。オ
ペレーテイング・システムは、他の処理ユニツトに対し
て最も小さな義務が課せられている処理ユニツトを選択
することによつて、アクセス・コーデネーシヨンの機能
(アクセスの調整機能)がその構成中の幾つかの処理ユ
ニツトの間で均等に広がつているものとして、そのシス
テム構成が全体として最上の性能を備えているという想
定をすることが出来る。
ここで、形成されるべきフアイル、u/エスモルガン/
データベースのためのアクセス・コーデイネータとして
選ばれたその構成中の1つの処理ユニツトは、説明の便
宜上、処理ユニツト10cであるとする。
データベースのためのアクセス・コーデイネータとして
選ばれたその構成中の1つの処理ユニツトは、説明の便
宜上、処理ユニツト10cであるとする。
ステツプGにおいて、処理ユニツト10aはフアイルを
作成するために、処理ユニツト10cにメツセージ1を
送る。
作成するために、処理ユニツト10cにメツセージ1を
送る。
ステツプHにおいて、処理ユニツト10aからのメツセ
ージ1を受取ると、処理ユニツト10cは、フアイルが
作成(create)システム・コールの直接ルツク・アツプ
(検索)位相(ステツプC乃至E)において処理ユニツ
ト10aによつて遂行されるのと同様な方法で、幾つか
の共用デイレクトリを検索することによつてその構成内
にフアイルが存在しないことを決定する。
ージ1を受取ると、処理ユニツト10cは、フアイルが
作成(create)システム・コールの直接ルツク・アツプ
(検索)位相(ステツプC乃至E)において処理ユニツ
ト10aによつて遂行されるのと同様な方法で、幾つか
の共用デイレクトリを検索することによつてその構成内
にフアイルが存在しないことを決定する。
ステツプIにおいて、処理ユニツト10cはフアイルを
作成し、そのフアイルにフアイル識別子(File Identif
ier-FID)を割当てる。説明を簡明にするために、フ
アイル識別子は、構成中のフアイルを識別する32ビツ
トの数値であるとする。フアイル識別子は、アクセス・
コーデイネータに対してフアイルを識別するアクセス・
コーデイネータによつて選ばれた数値と、アクセス・コ
ーデイネータ(処理ユニツト10c)のための処理ユニ
ツトの識別子とを連結することによつて構成される。プ
ロセツサ識別子(Processor Identifier-PID)は、
クラスタ構成内の与えられた処理ユニツトを識別する7
ビツトの数値である。
作成し、そのフアイルにフアイル識別子(File Identif
ier-FID)を割当てる。説明を簡明にするために、フ
アイル識別子は、構成中のフアイルを識別する32ビツ
トの数値であるとする。フアイル識別子は、アクセス・
コーデイネータに対してフアイルを識別するアクセス・
コーデイネータによつて選ばれた数値と、アクセス・コ
ーデイネータ(処理ユニツト10c)のための処理ユニ
ツトの識別子とを連結することによつて構成される。プ
ロセツサ識別子(Processor Identifier-PID)は、
クラスタ構成内の与えられた処理ユニツトを識別する7
ビツトの数値である。
ステツプJにおいて、処理ユニツト10cは、構成中の
他の処理ユニツト10a及び10bの各々に、FIDに
よつて識別されるフアイルが作成されたというメツセー
ジ2を送る。メツセージ2はフアイル名と、フアイル識
別子FIDと、アクセス・コーデイネータのプロセツサ
識別子PIDとを含んでいる。
他の処理ユニツト10a及び10bの各々に、FIDに
よつて識別されるフアイルが作成されたというメツセー
ジ2を送る。メツセージ2はフアイル名と、フアイル識
別子FIDと、アクセス・コーデイネータのプロセツサ
識別子PIDとを含んでいる。
ステツプKにおいて、処理ユニツト10cからのメツセ
ージ2を受け取ると、処理ユニツト10aは、フアイル
/u/エスモルガン/データベースが作成されることを
決定し、そして、処理ユニツト10a及び10bの各々
は、新しく作成されたフアイル/u/エスモルガン/デ
ータベースの存在を表示するために、システム・デイレ
クトリのコピーを更新するとともに、フアイルのフアイ
ル識別子FID及びアクセス・コーデイネータのプロセ
ツサ識別子PIDを更新する。
ージ2を受け取ると、処理ユニツト10aは、フアイル
/u/エスモルガン/データベースが作成されることを
決定し、そして、処理ユニツト10a及び10bの各々
は、新しく作成されたフアイル/u/エスモルガン/デ
ータベースの存在を表示するために、システム・デイレ
クトリのコピーを更新するとともに、フアイルのフアイ
ル識別子FID及びアクセス・コーデイネータのプロセ
ツサ識別子PIDを更新する。
ステツプLにおいて、処理ユニツト10aは、フアイル
が作成された処理ユニツトで実行しているアプリケーシ
ヨン・プログラムを通知する。
が作成された処理ユニツトで実行しているアプリケーシ
ヨン・プログラムを通知する。
第12A図及び第12B図は、クラスタ内の処理ユニツ
トで動作されるアプリケーシヨン・プログラムによつ
て、どのようにして現存するフアイルをオープンするか
を説明するためのフローチヤートである。
トで動作されるアプリケーシヨン・プログラムによつ
て、どのようにして現存するフアイルをオープンするか
を説明するためのフローチヤートである。
第12A図のステツプAにおいて、処理ユニツト10a
で実行しているアプリケーシヨン・プログラムは、フア
イル/u/エスモルガン/データベースをオープン(開
始)するために、読取り/書込みアクセスのためのオー
プン・システム・コールを使用する。
で実行しているアプリケーシヨン・プログラムは、フア
イル/u/エスモルガン/データベースをオープン(開
始)するために、読取り/書込みアクセスのためのオー
プン・システム・コールを使用する。
ステツプBにおいて、処理ユニツト10a中で実行して
いるオペレーテイング・システムは、アプリケーシヨン
・プログラムからシステム・コールを横取りする。
いるオペレーテイング・システムは、アプリケーシヨン
・プログラムからシステム・コールを横取りする。
ステツプCにおいて、オペレーテイング・システムは、
ルート・システム・デイレクトリ「/」を検索して、そ
れが「u」のエントリを含んでいることと、uがデイレ
クトリであることとを見出す。
ルート・システム・デイレクトリ「/」を検索して、そ
れが「u」のエントリを含んでいることと、uがデイレ
クトリであることとを見出す。
ステツプDにおいて、オペレーテイング・システムは、
「エスモルガン」のuデイレクトリを検索して、エスモ
ルガンがデイレクトリであることを見出す。
「エスモルガン」のuデイレクトリを検索して、エスモ
ルガンがデイレクトリであることを見出す。
ステツプEにおいて、オペレーテイング・システムは、
「データベース」のエスモルガン・デイレクトリを検索
して、(1)「データベース」はフアイルであること、
(2)フアイルのアクセス・コーデイネータは処理ユニ
ツト10cであること、(3)フアイル識別子FIDは
フアイルに関連していることを決定する。
「データベース」のエスモルガン・デイレクトリを検索
して、(1)「データベース」はフアイルであること、
(2)フアイルのアクセス・コーデイネータは処理ユニ
ツト10cであること、(3)フアイル識別子FIDは
フアイルに関連していることを決定する。
ステツプFにおいて、処理ユニツト10aで実行してい
るオペレーテイング・システムは、フアイル識別子FI
Dを含むメツセージ1を、処理ユニツト10cに送つ
て、FIDで識別されたフアイルが、処理ユニツト10
aで実行しているアプリケーシヨン・プログラムのため
にオープンされるべきことを要求する。
るオペレーテイング・システムは、フアイル識別子FI
Dを含むメツセージ1を、処理ユニツト10cに送つ
て、FIDで識別されたフアイルが、処理ユニツト10
aで実行しているアプリケーシヨン・プログラムのため
にオープンされるべきことを要求する。
ステツプGにおいて、処理ユニツト10aからのメツセ
ージ1を受取ると、処理ユニツト10cは、フアイル記
述子(File Descriptor-FD)の2次ストレージ装置の
記憶位置を決定し、FIDによつて識別されたフアイル
を記述する。処理ユニツト10cは、フアイル識別子F
IDを使用することによつて、フアイル記述子FDを位
置付けて、処理ユニツト10cのフアイル記述子テーブ
ル(File Descriptor Table-FDT)中にインデツクス
する。処理ユニツト10cにあるFDTは、現存する各
フアイルのフアイル記述子を含み、それらのフアイルに
対して、処理ユニツト10cはアクセス・コーデイネー
タとして動作する。フアイル記述子は、与えられたフア
イルの一部である処理ユニツト10cに接続された2次
ストレージ装置のデイスク・ブロツクの数及び位置を判
別する。更に、フアイル記述子は、例えばフアイルの長
さ、アクセスされた最新の時間、フアイルを所有してい
る装置名などの他の情報を含んでいる。フアイル記述子
に含まれている情報の細部は、この道の専門家には自明
であるし、本発明には直接関係がないから、これ以上の
説明はしない。
ージ1を受取ると、処理ユニツト10cは、フアイル記
述子(File Descriptor-FD)の2次ストレージ装置の
記憶位置を決定し、FIDによつて識別されたフアイル
を記述する。処理ユニツト10cは、フアイル識別子F
IDを使用することによつて、フアイル記述子FDを位
置付けて、処理ユニツト10cのフアイル記述子テーブ
ル(File Descriptor Table-FDT)中にインデツクス
する。処理ユニツト10cにあるFDTは、現存する各
フアイルのフアイル記述子を含み、それらのフアイルに
対して、処理ユニツト10cはアクセス・コーデイネー
タとして動作する。フアイル記述子は、与えられたフア
イルの一部である処理ユニツト10cに接続された2次
ストレージ装置のデイスク・ブロツクの数及び位置を判
別する。更に、フアイル記述子は、例えばフアイルの長
さ、アクセスされた最新の時間、フアイルを所有してい
る装置名などの他の情報を含んでいる。フアイル記述子
に含まれている情報の細部は、この道の専門家には自明
であるし、本発明には直接関係がないから、これ以上の
説明はしない。
ステツプHにおいて、処理ユニツト10cは、FIDに
よつて識別されたフアイルは、現在オープンされていな
い、即ちそのフアイルは現在、そのフアイルに関連した
ローカル仮想セグメントを現在持つていないことを決定
する。
よつて識別されたフアイルは、現在オープンされていな
い、即ちそのフアイルは現在、そのフアイルに関連した
ローカル仮想セグメントを現在持つていないことを決定
する。
ステツプIにおいて、処理ユニツト10cは、フアイル
識別子FIDに対する仮想メモリ・セグメントを作成す
るために、セグメント作成サービス(Create Segment S
ervice-CSS)を使用する。その処理の際に、処理ユ
ニツト10cは、フアイル記述子FDを用いてセグメン
トが作成されること、また、作成されるセグメントのた
めの要求された保護キーが読取り/書込みであることを
特定する。CSSは、作成されたセグメントが識別され
るセグメント識別子を返環する。
識別子FIDに対する仮想メモリ・セグメントを作成す
るために、セグメント作成サービス(Create Segment S
ervice-CSS)を使用する。その処理の際に、処理ユ
ニツト10cは、フアイル記述子FDを用いてセグメン
トが作成されること、また、作成されるセグメントのた
めの要求された保護キーが読取り/書込みであることを
特定する。CSSは、作成されたセグメントが識別され
るセグメント識別子を返環する。
ステツプJにおいて、処理ユニツト10cは、処理ユニ
ツト10cが処理ユニツト10aのために、FIDによ
つて識別されたフアイルを成功裡にオープンしたことに
応答して、処理ユニツト10aにメツセージ2を送る。
メツセージ2はFIDによつて識別されたフアイルに関
連するセグメントとしてのセグメント識別子Sを含んで
いる。
ツト10cが処理ユニツト10aのために、FIDによ
つて識別されたフアイルを成功裡にオープンしたことに
応答して、処理ユニツト10aにメツセージ2を送る。
メツセージ2はFIDによつて識別されたフアイルに関
連するセグメントとしてのセグメント識別子Sを含んで
いる。
ステツプKにおいて、処理ユニツト10aは、FIDに
よつて識別されたフアイルが現在オープンしていない、
即ちそのフアイルはそれに関連したローカル仮想セグメ
ントを現在持つていないことを決定する。
よつて識別されたフアイルが現在オープンしていない、
即ちそのフアイルはそれに関連したローカル仮想セグメ
ントを現在持つていないことを決定する。
ステツプLにおいて、処理ユニツト10aは、離隔セグ
メント作成サービス(Create Remote Segment Service-
CRSS)を使用してFIDによつて識別されるフアイ
ルに対してローカル・セグメントSAを作成する。CR
SSはセグメント識別子Sを取り、そして「ダミー」セ
グメントSAを作成する。ダミー・セグメントは、セグ
メント識別子及びセグメント識別子テーブル(Segment
Identifier Table-SIT)エントリを持つが、しかし
外部ページ・テーブル(External Page Table-XPT)
は持たないローカル・セグメントである。
メント作成サービス(Create Remote Segment Service-
CRSS)を使用してFIDによつて識別されるフアイ
ルに対してローカル・セグメントSAを作成する。CR
SSはセグメント識別子Sを取り、そして「ダミー」セ
グメントSAを作成する。ダミー・セグメントは、セグ
メント識別子及びセグメント識別子テーブル(Segment
Identifier Table-SIT)エントリを持つが、しかし
外部ページ・テーブル(External Page Table-XPT)
は持たないローカル・セグメントである。
ステツプMにおいて、処理ユニツト10aは、グローバ
ル・セグメントSにローカル・セグメントSAを結合す
るために、離隔セグメント結合サービス(Bind Remote
Segment Service-BRSS)を使用する。BRSSは、
セグメント識別子S及びSAと、アクセス・コーデイネ
ータ(処理ユニツト10c)のプロセツサ識別子PID
とを用いることによつて、セグメントSAに関連したS
ITテーブルのエントリを修正し、セグメントSAがセ
グメントSに関係していることを表示し、そのアクセス
は処理ユニツトPIDによつて調整される。
ル・セグメントSにローカル・セグメントSAを結合す
るために、離隔セグメント結合サービス(Bind Remote
Segment Service-BRSS)を使用する。BRSSは、
セグメント識別子S及びSAと、アクセス・コーデイネ
ータ(処理ユニツト10c)のプロセツサ識別子PID
とを用いることによつて、セグメントSAに関連したS
ITテーブルのエントリを修正し、セグメントSAがセ
グメントSに関係していることを表示し、そのアクセス
は処理ユニツトPIDによつて調整される。
ステツプNにおいて、処理ユニツト10aは、フアイル
/u/エスモルガン/データベースが成功裡にオープン
されたことを決定し、それをアプリケーシヨン・プログ
ラムに知らせる。
/u/エスモルガン/データベースが成功裡にオープン
されたことを決定し、それをアプリケーシヨン・プログ
ラムに知らせる。
第13図は、クラスタ構成中で共用されている仮想メモ
リに、どのようにしてオープンされたフアイルがロード
されるかを説明する図である。
リに、どのようにしてオープンされたフアイルがロード
されるかを説明する図である。
第13図のステツプAにおいて、処理ユニツト10aで
実行しているアプリケーシヨン・プログラムは、読取り
/書込みのアクセスを行うためと、オープン・フアイル
「/u/エスモルガン/データベース」に関連するロー
カル・セグメントSAをアプリケーシヨン・プログラム
の仮想アドレス空間にマツプするために、シマート(sh
mat)システム・コールを使用する。
実行しているアプリケーシヨン・プログラムは、読取り
/書込みのアクセスを行うためと、オープン・フアイル
「/u/エスモルガン/データベース」に関連するロー
カル・セグメントSAをアプリケーシヨン・プログラム
の仮想アドレス空間にマツプするために、シマート(sh
mat)システム・コールを使用する。
ステツプBにおいて、処理ユニツト10aで実行してい
るオペレーテイング・システムは、アプリケーシヨン・
プログラムからシマート・システム・コールを横取りす
る。
るオペレーテイング・システムは、アプリケーシヨン・
プログラムからシマート・システム・コールを横取りす
る。
ステツプCにおいて、オペレーテイング・システムは、
ローカル・セグメントSAが離隔セグメントSに結合さ
れていることと、そのアクセスは処理ユニツト10cに
よつて調整されることを決定する。処理ユニツト10a
は、現在オープンしているフアイルのセグメントの識別
子と、現在オープンしているフアイルの該当する離隔セ
グメントと、セグメントに関連したアクセス・コーデイ
ネータのプロセツサ識別子とに関して、セグメント識別
子テーブルを検索することによつて、この決定を行う。
ローカル・セグメントSAが離隔セグメントSに結合さ
れていることと、そのアクセスは処理ユニツト10cに
よつて調整されることを決定する。処理ユニツト10a
は、現在オープンしているフアイルのセグメントの識別
子と、現在オープンしているフアイルの該当する離隔セ
グメントと、セグメントに関連したアクセス・コーデイ
ネータのプロセツサ識別子とに関して、セグメント識別
子テーブルを検索することによつて、この決定を行う。
ステツプDにおいて、処理ユニツト10aは、ローカル
・セグメントSAをアプリケーシヨン・プログラムの仮
想アドレス空間にマツプするために、マツプ・ページ範
囲サービス(Map Page Range Service-MPRS)を使
用する。
・セグメントSAをアプリケーシヨン・プログラムの仮
想アドレス空間にマツプするために、マツプ・ページ範
囲サービス(Map Page Range Service-MPRS)を使
用する。
ステツプEにおいて、処理ユニツト10aは、フアイル
/u/エスモルガン/データベースがアプリケーシヨン
・プログラムの仮想アドレス空間に成功裡にマツプされ
たことを決定し、そしてアプリケーシヨン・プログラム
にこれを通知する。
/u/エスモルガン/データベースがアプリケーシヨン
・プログラムの仮想アドレス空間に成功裡にマツプされ
たことを決定し、そしてアプリケーシヨン・プログラム
にこれを通知する。
第14図は、使用側処理ユニツトが構成中のいずれの処
理ユニツトのメモリにもストアされていないページのコ
ピーを入力することを要求したとき、アクセス・コーデ
イネータによつて遂行されるステツプを説明するための
図である。ここで説明の便宜上、以下のように仮定す
る。即ち、その仮定とは、 (1)処理ユニツト10aで実行しているアプリケーシ
ヨン・プログラムは、既にフアイルをオープンしてお
り、そして、アプリケーシヨン・プログラムの仮想アド
レス空間中にマツプ・フアイルを持つているものとし、 (2)処理ユニツト10cはフアイルのアクセス・コー
デイネータとして動作するものとすることである。
理ユニツトのメモリにもストアされていないページのコ
ピーを入力することを要求したとき、アクセス・コーデ
イネータによつて遂行されるステツプを説明するための
図である。ここで説明の便宜上、以下のように仮定す
る。即ち、その仮定とは、 (1)処理ユニツト10aで実行しているアプリケーシ
ヨン・プログラムは、既にフアイルをオープンしてお
り、そして、アプリケーシヨン・プログラムの仮想アド
レス空間中にマツプ・フアイルを持つているものとし、 (2)処理ユニツト10cはフアイルのアクセス・コー
デイネータとして動作するものとすることである。
第14図のステツプAにおいて、処理ユニツト10aで
実行しているアプリケーシヨン・プログラムは、フアイ
ルFを含むセグメントSLのページPを読取るためのア
クセスを行なう。
実行しているアプリケーシヨン・プログラムは、フアイ
ルFを含むセグメントSLのページPを読取るためのア
クセスを行なう。
ステツプBにおいて、アプリケーシヨン・プログラム
は、ページ不在に遭遇する。
は、ページ不在に遭遇する。
ステツプCにおいて、処理ユニツト10aで実行してい
るオペレーテイング・システムは、このページ不在を横
取りし、そして、そのページ不在はアプリケーシヨン・
プログラムによるセグメントSLのページPの読取りア
クセスによつて惹起されたことを決定する。
るオペレーテイング・システムは、このページ不在を横
取りし、そして、そのページ不在はアプリケーシヨン・
プログラムによるセグメントSLのページPの読取りア
クセスによつて惹起されたことを決定する。
ステツプDにおいて、処理ユニツト10aは、セグメン
トSLが、離隔セグメントであること、そして、そのア
クセスが処理ユニツト10cによつて調整されることを
決定する。
トSLが、離隔セグメントであること、そして、そのア
クセスが処理ユニツト10cによつて調整されることを
決定する。
ステツプEにおいて、処理ユニツト10aは、セグメン
トSLが離隔セグメントSRに結合されることを決定す
る。
トSLが離隔セグメントSRに結合されることを決定す
る。
ステツプFにおいて、処理ユニツト10aは、処理ユニ
ツト10cがセグメントSRのページPのコピーを処理
ユニツト10aに送ることを要求するメツセージ1を、
処理ユニツト10cに送る。
ツト10cがセグメントSRのページPのコピーを処理
ユニツト10aに送ることを要求するメツセージ1を、
処理ユニツト10cに送る。
ステツプGにおいて、このメツセージ1を受取ると、処
理ユニツト10cは、セグメントSRのページPのエン
トリに関して、VSMテーブルを検索する。説明を簡明
にするために、以下の仮定、即ちただ1つのエントリだ
けがセグメントSRのページPのVSMテーブル中に存
在しているものとし、処理ユニツト10bがメモリ中の
ページのコピーを持つていることを、エントリが示して
いるものとし、「読取りのみ」の調和状態がページのコ
ピーに関連されているものとする。
理ユニツト10cは、セグメントSRのページPのエン
トリに関して、VSMテーブルを検索する。説明を簡明
にするために、以下の仮定、即ちただ1つのエントリだ
けがセグメントSRのページPのVSMテーブル中に存
在しているものとし、処理ユニツト10bがメモリ中の
ページのコピーを持つていることを、エントリが示して
いるものとし、「読取りのみ」の調和状態がページのコ
ピーに関連されているものとする。
ステツプHにおいて、処理ユニツト10cは、セグメン
トSRが処理ユニツト10b中のセグメントSTに結合
されることを決定する。
トSRが処理ユニツト10b中のセグメントSTに結合
されることを決定する。
ステツプIにおいて、処理ユニツト10cは、処理ユニ
ツト10bがセグメントSTのページPのコピーを処理
ユニツト10aに送ることと、そのページPのコピーは
それに関連した「読取りのみ」調和状態を持つているこ
ととを要求するメツセージ2を処理ユニツト10bに送
る。更に、メツセージ2は、処理ユニツト10aがセグ
メントSTを、セグメントSLとして扱うことを表示す
る。
ツト10bがセグメントSTのページPのコピーを処理
ユニツト10aに送ることと、そのページPのコピーは
それに関連した「読取りのみ」調和状態を持つているこ
ととを要求するメツセージ2を処理ユニツト10bに送
る。更に、メツセージ2は、処理ユニツト10aがセグ
メントSTを、セグメントSLとして扱うことを表示す
る。
第15a図乃至第15b図は、ページのデータが1つの
処理ユニツトから他の処理ユニツトへ転送されている時
に、どのようにして、VSMTがアクセス・コーデイネ
ータによつて更新されるかのステツプの細部を説明する
フロー・チヤートである。説明の便宜上、(1)処理ユ
ニツト10aで実行しているアプリケーシヨン・プログ
ラムは、既にフアイルをオープンしているものとし、
(2)処理ユニツト10cはフアイルのアクセス・コー
デイネータとして使用するものとする。
処理ユニツトから他の処理ユニツトへ転送されている時
に、どのようにして、VSMTがアクセス・コーデイネ
ータによつて更新されるかのステツプの細部を説明する
フロー・チヤートである。説明の便宜上、(1)処理ユ
ニツト10aで実行しているアプリケーシヨン・プログ
ラムは、既にフアイルをオープンしているものとし、
(2)処理ユニツト10cはフアイルのアクセス・コー
デイネータとして使用するものとする。
第15a図のステツプAにおいて、処理ユニツト10a
で実行しているアプリケーシヨン・プログラムは、フア
イルFを含むセグメントSAのページPを読取るための
アクセスを行う。
で実行しているアプリケーシヨン・プログラムは、フア
イルFを含むセグメントSAのページPを読取るための
アクセスを行う。
ステツプBにおいて、アプリケーシヨン・プログラム
は、ページ不在に遭遇する。
は、ページ不在に遭遇する。
ステツプCにおいて、処理ユニツト10aで実行してい
るオペレーテイング・システムは、ページ不在を横取り
し、そのページ不在がアプリケーシヨン・プログラムに
よつて、セグメントSAのページPの横取りアクセスに
よつて発生されたことを決定する。
るオペレーテイング・システムは、ページ不在を横取り
し、そのページ不在がアプリケーシヨン・プログラムに
よつて、セグメントSAのページPの横取りアクセスに
よつて発生されたことを決定する。
ステツプDにおいて、セグメントSAは離隔セグメント
Sに結合されるローカル・セグメントであることと、そ
のアクセスは処理ユニツト10cによつて調整されるこ
ととを、処理ユニツト10aによつて決定される。
Sに結合されるローカル・セグメントであることと、そ
のアクセスは処理ユニツト10cによつて調整されるこ
ととを、処理ユニツト10aによつて決定される。
ステツプEにおいて、処理ユニツト10aは、処理ユニ
ツト10cが処理ユニツト10aにセグメントSのペー
ジPのコピーを送ることを要求するメツセージ1を、処
理ユニツト10cに送る。
ツト10cが処理ユニツト10aにセグメントSのペー
ジPのコピーを送ることを要求するメツセージ1を、処
理ユニツト10cに送る。
ステツプFにおいて、メツセージ1を受取ると、処理ユ
ニツト10cは、セグメントSのページPのエントリに
関してVSMテーブルを検索する。説明の便宜上、
(1)セグメントSのページPのVSMテーブル中にた
だ1つのエントリが存在するものとし、(2)そのエン
トリは、処理ユニツト10bがメモリ中にページのコピ
ーを持つていることを表示しているものとし、(3)
「読取りのみ」の調和状態がページのコピーに関連して
いるものとする。
ニツト10cは、セグメントSのページPのエントリに
関してVSMテーブルを検索する。説明の便宜上、
(1)セグメントSのページPのVSMテーブル中にた
だ1つのエントリが存在するものとし、(2)そのエン
トリは、処理ユニツト10bがメモリ中にページのコピ
ーを持つていることを表示しているものとし、(3)
「読取りのみ」の調和状態がページのコピーに関連して
いるものとする。
ステツプGにおいて、処理ユニツト10cは、処理ユニ
ツト10bが処理ユニツト10aにセグメントSのペー
ジPのコピーを送ることと、ページのコピーがページP
と関連する「読取りのみ」調和状態を持つこととを要求
するメツセージ2を、処理ユニツト10bに送る。
ツト10bが処理ユニツト10aにセグメントSのペー
ジPのコピーを送ることと、ページのコピーがページP
と関連する「読取りのみ」調和状態を持つこととを要求
するメツセージ2を、処理ユニツト10bに送る。
ステツプHにおいて、処理ユニツト10cは、処理ユニ
ツト10aがセグメントSのページPのコピーを送つた
ことと、ページPと関連する「読取りのみ」の調和状態
であることとを表示するVSMテーブルにエントリを付
加する。セグメントSのページPのためのエントリをV
SMテーブルに付加するために、処理ユニツト10cは
以下のステツプを遂行しなければならない。
ツト10aがセグメントSのページPのコピーを送つた
ことと、ページPと関連する「読取りのみ」の調和状態
であることとを表示するVSMテーブルにエントリを付
加する。セグメントSのページPのためのエントリをV
SMテーブルに付加するために、処理ユニツト10cは
以下のステツプを遂行しなければならない。
(H1)若し、VSMテーブル中に、このページのエン
トリが既にあるならば、セグメントSRのページPに対
応するハツシユ・アンカー・テーブル中のエントリと一
致して位置付けるために、セグメントSRとページ数P
のセグメント識別子をハツシユする。
トリが既にあるならば、セグメントSRのページPに対
応するハツシユ・アンカー・テーブル中のエントリと一
致して位置付けるために、セグメントSRとページ数P
のセグメント識別子をハツシユする。
(H2)ハツシユ・チエーンが空であるか否かを決定す
る。計算されたハツシユ値に対してハツシユ・アンカー
・テーブル中の「空」ビツトを検査することによつてこ
の動作を遂行する。上述の場合、ハツシユ・チエーン
は、処理ユニツト10bに位置するセグメントSのペー
ジPのエントリである少なくとも1つのエントリを含ん
でおり、「空」ビツトはクリアされる。
る。計算されたハツシユ値に対してハツシユ・アンカー
・テーブル中の「空」ビツトを検査することによつてこ
の動作を遂行する。上述の場合、ハツシユ・チエーン
は、処理ユニツト10bに位置するセグメントSのペー
ジPのエントリである少なくとも1つのエントリを含ん
でおり、「空」ビツトはクリアされる。
(H3)ハツシユ・チエーンが処理ユニツト10bのセ
グメントSのページPのエントリを見出すまで、計算さ
れたハツシユ値のハツシユ・チエーンに従う。このエン
トリは、VSMテーブルのエントリEとして後述され
る。
グメントSのページPのエントリを見出すまで、計算さ
れたハツシユ値のハツシユ・チエーンに従う。このエン
トリは、VSMテーブルのエントリEとして後述され
る。
(H4)現在は使用されていないVSMテーブルのエン
トリの自由リストを用いることによつて、VSMテーブ
ルのエントリFを割当てる。自由リストからデータ構造
中のエントリを割当てることは、コンピユータ・プログ
ラミングの分野では簡単であり、公知なので、これ以上
の説明はしない。
トリの自由リストを用いることによつて、VSMテーブ
ルのエントリFを割当てる。自由リストからデータ構造
中のエントリを割当てることは、コンピユータ・プログ
ラミングの分野では簡単であり、公知なので、これ以上
の説明はしない。
(H5)エントリF中に該当値を記入する。記入するフ
イールドを列記すると、 (a)処理ユニツト10aを識別する数値を記入するプ
ロセツサ識別子フイールドと、 (b)ページ番号Pを記入するページ番号フイールド
と、 (c)セグメント識別子Sを記入するローカル・セグメ
ント識別子フイールドと、 (d)調和状態「読取りのみ」を識別する数値を記入す
る状態フイールドである。
イールドを列記すると、 (a)処理ユニツト10aを識別する数値を記入するプ
ロセツサ識別子フイールドと、 (b)ページ番号Pを記入するページ番号フイールド
と、 (c)セグメント識別子Sを記入するローカル・セグメ
ント識別子フイールドと、 (d)調和状態「読取りのみ」を識別する数値を記入す
る状態フイールドである。
(H6)計算されたハツシユ値のハツシユ・チエーンに
エントリFを加える。これは、以下の処理によつて行わ
れる。
エントリFを加える。これは、以下の処理によつて行わ
れる。
(a)エントリEの「次のエントリ・インデツクス」フ
イールドをエントリFの「次のエントリ・インデツク
ス」フイールドにコピーし、次に、 (b)エントリFの値を、エントリEの「次のエントリ
・インデツクス」フイールド中にコピーする。ステツプ
H6が終了した後、エントリFは、ハツシユ・チエーン
の計算されたハツシユ値である。
イールドをエントリFの「次のエントリ・インデツク
ス」フイールドにコピーし、次に、 (b)エントリFの値を、エントリEの「次のエントリ
・インデツクス」フイールド中にコピーする。ステツプ
H6が終了した後、エントリFは、ハツシユ・チエーン
の計算されたハツシユ値である。
ステツプIにおいて、処理ユニツト10cからのメツセ
ージ2を受取ると、処理ユニツト10bは、その主メモ
リ中にセグメントSのページPを位置付ける。
ージ2を受取ると、処理ユニツト10bは、その主メモ
リ中にセグメントSのページPを位置付ける。
ステツプJにおいて、処理ユニツト10bは、セグメン
トSのページPを含むメツセージ3を処理ユニツト10
aに送る。また、メツセージ3は、セグメントSのペー
ジPが関連する「読取りのみ」調和状態を持つているこ
とを表示する。
トSのページPを含むメツセージ3を処理ユニツト10
aに送る。また、メツセージ3は、セグメントSのペー
ジPが関連する「読取りのみ」調和状態を持つているこ
とを表示する。
ステツプKにおいて、処理ユニツト10bからのメツセ
ージ3を受取ると、処理ユニツト10aは、その主メモ
リにセグメントSのページPをストアし、ページがセグ
メントSAのページPであることを表示するために、セ
グメントSのページPの仮想アドレスを変更し、そして
ページの有効保護キーを「読取りのみ」にセツトする。
ージ3を受取ると、処理ユニツト10aは、その主メモ
リにセグメントSのページPをストアし、ページがセグ
メントSAのページPであることを表示するために、セ
グメントSのページPの仮想アドレスを変更し、そして
ページの有効保護キーを「読取りのみ」にセツトする。
第16図は使用側処理ユニツトが、主メモリからページ
を追い出す(cast-out)ための要求を送る時に、アクセ
ス・コーデイネータによつて遂行されるステツプを説明
するためのフロー・チヤートである。
を追い出す(cast-out)ための要求を送る時に、アクセ
ス・コーデイネータによつて遂行されるステツプを説明
するためのフロー・チヤートである。
第16図のステツプAにおいて、処理ユニツト10a
は、置き換えるためのセグメントSAのページPを選択
する。これは、例えば、セグメントSAのページPが、
長時間の間、どのアプリケーシヨン・プログラムによつ
てもアクセスされなかつたことを、処理ユニツト10a
で実行しているオペレーテイング・システムの仮想メモ
リ管理(VMM)要素が決定した場合のように、通常の
動作において生じることである。
は、置き換えるためのセグメントSAのページPを選択
する。これは、例えば、セグメントSAのページPが、
長時間の間、どのアプリケーシヨン・プログラムによつ
てもアクセスされなかつたことを、処理ユニツト10a
で実行しているオペレーテイング・システムの仮想メモ
リ管理(VMM)要素が決定した場合のように、通常の
動作において生じることである。
ステツプBにおいて、処理ユニツト10aは、ページP
がセグメントSA中に含まれていること、そして、セグ
メントSAは、離隔セグメントSに結合したローカル・
セグメントであることと、そのアクセスが処理ユニツト
10cによつて調整されることとを決定する。
がセグメントSA中に含まれていること、そして、セグ
メントSAは、離隔セグメントSに結合したローカル・
セグメントであることと、そのアクセスが処理ユニツト
10cによつて調整されることとを決定する。
ステツプCにおいて、処理ユニツト10aは、それ自身
の主メモリからセグメントSのページPを追い出す許可
を要求するメツセージ1を、処理ユニツト10cに送
る。
の主メモリからセグメントSのページPを追い出す許可
を要求するメツセージ1を、処理ユニツト10cに送
る。
ステツプDにおいて、処理ユニツト10aからのメツセ
ージ1を受取ると、処理ユニツト10cはセグメントS
のページPに対応するすべてのエントリについてVSM
テーブルを検索する。説明の便宜上、(1)VSMテー
ブル中に、セグメントSのページPに対応する2つのエ
ントリが存在し、(2)前者のエントリは、処理ユニツ
ト10aのメモリ中に、「読取りのみ」の調和状態にあ
るセグメントSのページPのコピーを持つており、
(3)後者エントリは、処理ユニツト10bのメモリ中
に、「読取りのみ」の調和状態にあるセグメントSのペ
ージPのコピーを持つているものとする。
ージ1を受取ると、処理ユニツト10cはセグメントS
のページPに対応するすべてのエントリについてVSM
テーブルを検索する。説明の便宜上、(1)VSMテー
ブル中に、セグメントSのページPに対応する2つのエ
ントリが存在し、(2)前者のエントリは、処理ユニツ
ト10aのメモリ中に、「読取りのみ」の調和状態にあ
るセグメントSのページPのコピーを持つており、
(3)後者エントリは、処理ユニツト10bのメモリ中
に、「読取りのみ」の調和状態にあるセグメントSのペ
ージPのコピーを持つているものとする。
ステツプEにおいて、(1)クラスタ構成内の処理ユニ
ツトの主メモリ中に、現在、キヤツシユされたページの
コピーがあり、かつ(2)これらのページの両方のコピ
ーは、「読取りのみ」の調和状態にあるので、処理ユニ
ツト10cは、2次ストレージからセグメントSのペー
ジPを再度読取るという性能の著しい劣化をもたらすこ
となく、処理ユニツト10aは、処理ユニツト10cの
主メモリからセグメントSのページPを追い出すことが
出来る許可の決定をする。
ツトの主メモリ中に、現在、キヤツシユされたページの
コピーがあり、かつ(2)これらのページの両方のコピ
ーは、「読取りのみ」の調和状態にあるので、処理ユニ
ツト10cは、2次ストレージからセグメントSのペー
ジPを再度読取るという性能の著しい劣化をもたらすこ
となく、処理ユニツト10aは、処理ユニツト10cの
主メモリからセグメントSのページPを追い出すことが
出来る許可の決定をする。
ステツプFにおいて、処理ユニツト10cは、処理ユニ
ツト10aがそれ自身の主メモリからセグメントSのペ
ージPを追い出してよい旨の応答をするメツセージ2
を、処理ユニツト10aに送る。
ツト10aがそれ自身の主メモリからセグメントSのペ
ージPを追い出してよい旨の応答をするメツセージ2
を、処理ユニツト10aに送る。
ステツプGにおいて、処理ユニツト10cからのメツセ
ージ2を受取ると、処理ユニツト10aは自身の主メモ
リからセグメントSのページPを追い出す。
ージ2を受取ると、処理ユニツト10aは自身の主メモ
リからセグメントSのページPを追い出す。
第17図は、使用側処理ユニツトが自身の主メモリから
ページを追い出すための要求を送り、そして他のいずれ
の処理ユニツトの主メモリにもそのページのコピーが存
在しない場合、アクセス・コーデイネータによつて遂行
されるステツプを説明するためのフロー・チヤートであ
る。
ページを追い出すための要求を送り、そして他のいずれ
の処理ユニツトの主メモリにもそのページのコピーが存
在しない場合、アクセス・コーデイネータによつて遂行
されるステツプを説明するためのフロー・チヤートであ
る。
第17図のステツプAにおいて、処理ユニツト10aで
実行しているオペレーテイング・システムのVMMの1
つの要素が置き換えるための候補としてセグメントSA
のページPを選択する。
実行しているオペレーテイング・システムのVMMの1
つの要素が置き換えるための候補としてセグメントSA
のページPを選択する。
ステツプBにおいて、処理ユニツト10aは、処理ユニ
ツト10aが自身の主メモリからセグメントSのページ
Pを追い出す許可を要求するメツセージ1を、処理ユニ
ツト10cに送る。
ツト10aが自身の主メモリからセグメントSのページ
Pを追い出す許可を要求するメツセージ1を、処理ユニ
ツト10cに送る。
ステツプCにおいて、メツセージ1を受取ると、処理ユ
ニツト10cはセグメントSのページPについてVSM
テーブルを検索する。説明の便宜上、ここで、VSMテ
ーブル中には、セグメントSのページPのエントリは見
出されないものとする。
ニツト10cはセグメントSのページPについてVSM
テーブルを検索する。説明の便宜上、ここで、VSMテ
ーブル中には、セグメントSのページPのエントリは見
出されないものとする。
ステツプDにおいて、処理ユニツト10cは、セグメン
トSのページPを記憶するために、その主メモリ中に十
分な空間を持ち、その目的のためのフレームを割当てる
ことを決定する。
トSのページPを記憶するために、その主メモリ中に十
分な空間を持ち、その目的のためのフレームを割当てる
ことを決定する。
ステツプEにおいて、処理ユニツト10cは、処理ユニ
ツト10aが処理ユニツト10cにページPのコピーを
送ることを要求するメツセージ2を、処理ユニツト10
aに送る。
ツト10aが処理ユニツト10cにページPのコピーを
送ることを要求するメツセージ2を、処理ユニツト10
aに送る。
ステツプFにおいて、処理ユニツト10cからのメツセ
ージ2を受取ると、処理ユニツト10aは、セグメント
SのページPを含むメツセージ3を処理ユニツト10c
に送る。
ージ2を受取ると、処理ユニツト10aは、セグメント
SのページPを含むメツセージ3を処理ユニツト10c
に送る。
ステツプGにおいて、処理ユニツト10cからのメツセ
ージ3を受取ると、処理ユニツト10cは、それ自身の
主メモリにセグメントSのページPを付加する ステツプHにおいて、処理ユニツト10cは、そのVS
Mテーブルを更新して、ページPに関連する「読取りの
み」の調和状態を持つセグメントSのページPが、処理
ユニツト10aの主メモリから、処理ユニツト10cの
主メモリへ移動されたことを表示する。セグメントSの
ページPのエントリに対してVSMテーブルを更新する
ために、処理ユニツト10cは、以下のステツプを遂行
しなければならない。
ージ3を受取ると、処理ユニツト10cは、それ自身の
主メモリにセグメントSのページPを付加する ステツプHにおいて、処理ユニツト10cは、そのVS
Mテーブルを更新して、ページPに関連する「読取りの
み」の調和状態を持つセグメントSのページPが、処理
ユニツト10aの主メモリから、処理ユニツト10cの
主メモリへ移動されたことを表示する。セグメントSの
ページPのエントリに対してVSMテーブルを更新する
ために、処理ユニツト10cは、以下のステツプを遂行
しなければならない。
(H1)若し、VSMテーブルにこのページ番号のエン
トリが既にあれば、セグメント識別子S及びページ番号
Pをハツシユし、セグメントSのページPに対応するハ
ツシユ・アンカー・テーブルのエントリに位置付ける。
トリが既にあれば、セグメント識別子S及びページ番号
Pをハツシユし、セグメントSのページPに対応するハ
ツシユ・アンカー・テーブルのエントリに位置付ける。
(H2)ハツシユ・チエーンが空で有るか否かを決定す
る。計算されたハツシユ値に対してハツシユ・アンカー
・テーブルのエントリ中の「空」ビツトを検査すること
によつて、この決定の処理を行う。この場合、ハツシユ
・チエーンは、処理ユニツト10bにおけるセグメント
SのページPに対する少なくとも1つのエントリを含ん
でいるから、「空」ビツトはクリアにされる。
る。計算されたハツシユ値に対してハツシユ・アンカー
・テーブルのエントリ中の「空」ビツトを検査すること
によつて、この決定の処理を行う。この場合、ハツシユ
・チエーンは、処理ユニツト10bにおけるセグメント
SのページPに対する少なくとも1つのエントリを含ん
でいるから、「空」ビツトはクリアにされる。
(H3)ハツシユ・チエーンが、処理ユニツト10aに
おけるセグメントSのページPのエントリを見出すま
で、処理ユニツト10aは計算されたハツシユ値のハツ
シユ・チエーンに従う。
おけるセグメントSのページPのエントリを見出すま
で、処理ユニツト10aは計算されたハツシユ値のハツ
シユ・チエーンに従う。
(H4)ステツプ4が終了し、エントリEが更新された
後、処理ユニツト10cを識別する数値によつて、エン
トリEのプロセツサ識別子のフイールドを更新する。
後、処理ユニツト10cを識別する数値によつて、エン
トリEのプロセツサ識別子のフイールドを更新する。
第18図は与えられたページが共用されたメモリ処理ユ
ニツトによつてキヤツシユされなければならないことを
アクセス・コーデイネータが決定したとき、アクセス・
コーデイネータによつて遂行されるステツプを説明する
ためのフロー・チヤートである。
ニツトによつてキヤツシユされなければならないことを
アクセス・コーデイネータが決定したとき、アクセス・
コーデイネータによつて遂行されるステツプを説明する
ためのフロー・チヤートである。
第18図のステツプAにおいて、処理ユニツト10aに
おいて実行しているオペレーテイング・システムのVM
Mの1つの要素が置換用の候補として、セグメントSの
ページPを選択する。
おいて実行しているオペレーテイング・システムのVM
Mの1つの要素が置換用の候補として、セグメントSの
ページPを選択する。
ステツプBにおいて、処理ユニツト10aは、処理ユニ
ツト10aが自身のの主メモリからセグメントSのペー
ジPを追い出す許可を要求するメツセージ1を、セグメ
ントSのアクセス・コーデイネータ、即ち処理ユニツト
10cに送る。
ツト10aが自身のの主メモリからセグメントSのペー
ジPを追い出す許可を要求するメツセージ1を、セグメ
ントSのアクセス・コーデイネータ、即ち処理ユニツト
10cに送る。
ステツプCにおいて、メツセージ1を受取ると、処理ユ
ニツト10cはセグメントSのページPに対してVSM
テーブルを検索する。説明の便宜上、ここで、そのVS
Mテーブルには、セグメントSのページPのエントリは
ないものとする。
ニツト10cはセグメントSのページPに対してVSM
テーブルを検索する。説明の便宜上、ここで、そのVS
Mテーブルには、セグメントSのページPのエントリは
ないものとする。
ステツプDにおいて、処理ユニツト10cは、セグメン
トSのページPをキヤツシユするための十分なメモリ空
間を、その主メモリ中に持つていないことを決定する。
トSのページPをキヤツシユするための十分なメモリ空
間を、その主メモリ中に持つていないことを決定する。
ステツプEにおいて、処理ユニツト10cは、処理ユニ
ツト10bがクラスタ構成の共通メモリ・ユニツトとし
て動作することを決定し、そして、処理ユニツト10b
がその主メモリ中のセグメントSのページPのコピーを
キヤツシユすることを要求するメツセージ2を、処理ユ
ニツト10bに送る。
ツト10bがクラスタ構成の共通メモリ・ユニツトとし
て動作することを決定し、そして、処理ユニツト10b
がその主メモリ中のセグメントSのページPのコピーを
キヤツシユすることを要求するメツセージ2を、処理ユ
ニツト10bに送る。
ステツプFにおいて、処理ユニツト10cは、そのVS
Mテーブルにエントリを付加することによつて、処理ユ
ニツト10bがページPに関連する「読取りのみ」の調
和状態であること、セグメントSのページPをコピーを
保持していることを表示する。セグメントSのページP
のエントリをVSMテーブルに付加するために、処理ユ
ニツト10cは下記のステツプを遂行しなければならな
い。
Mテーブルにエントリを付加することによつて、処理ユ
ニツト10bがページPに関連する「読取りのみ」の調
和状態であること、セグメントSのページPをコピーを
保持していることを表示する。セグメントSのページP
のエントリをVSMテーブルに付加するために、処理ユ
ニツト10cは下記のステツプを遂行しなければならな
い。
(F1)若しVSMテーブル中に、このページのエント
リが既に存在しているならば、セグメント識別子S及び
ページ番号Pをハツシユし、そしてセグメントSのペー
ジPに対応するハツシユ・アンカー・テーブルのエント
リに位置付ける。
リが既に存在しているならば、セグメント識別子S及び
ページ番号Pをハツシユし、そしてセグメントSのペー
ジPに対応するハツシユ・アンカー・テーブルのエント
リに位置付ける。
(F2)ハツシユ・チエーンが空であるか否かを決定す
る。計算されたハツシユ値に対してハツシユ・アンカー
・テーブルのエントリ中の「空」ビツトを検査すること
によつてこの処理を遂行する。この場合、ハツシユ・チ
エーンは、処理ユニツト10bにあるセグメントSのペ
ージPに対するエントリである少なくとも1つのエント
リを含んでいるから、「空」ビツトはクリアにされる。
る。計算されたハツシユ値に対してハツシユ・アンカー
・テーブルのエントリ中の「空」ビツトを検査すること
によつてこの処理を遂行する。この場合、ハツシユ・チ
エーンは、処理ユニツト10bにあるセグメントSのペ
ージPに対するエントリである少なくとも1つのエント
リを含んでいるから、「空」ビツトはクリアにされる。
(F3)処理ユニツト10aにおけるセグメントSのペ
ージPのエントリを見出すまで、ハツシユ・チエーンは
処理ユニツト10aは計算されたハツシユ値に従う。
ージPのエントリを見出すまで、ハツシユ・チエーンは
処理ユニツト10aは計算されたハツシユ値に従う。
(F4)ステツプ4が終了し、エントリEが更新された
後、処理ユニツト10bを識別する数値によつて、エン
トリEのプロセツサ識別子のフイールドを更新する。
後、処理ユニツト10bを識別する数値によつて、エン
トリEのプロセツサ識別子のフイールドを更新する。
ステツプGにおいて、処理ユニツト10cからのメツセ
ージ2を受取ると、処理ユニツト10bは、その主メモ
リ中にページ・フレームを割当て、そして、処理ユニツ
ト10aにメツセージ3を送ることにより、処理ユニツ
ト10aは処理ユニツト10bにセグメントSのページ
Pを送ることを要求する。
ージ2を受取ると、処理ユニツト10bは、その主メモ
リ中にページ・フレームを割当て、そして、処理ユニツ
ト10aにメツセージ3を送ることにより、処理ユニツ
ト10aは処理ユニツト10bにセグメントSのページ
Pを送ることを要求する。
ステツプHにおいて、処理ユニツト10cからメツセー
ジ3を受取ると、処理ユニツト10aは、セグメントS
のページPと、そのページに関連する「読取りのみ」の
調和状態とを、処理ユニツト10b送る。
ジ3を受取ると、処理ユニツト10aは、セグメントS
のページPと、そのページに関連する「読取りのみ」の
調和状態とを、処理ユニツト10b送る。
本発明の実施例が仮想メモリに使用される場合について
説明したきたが、本発明は仮想メモリを使用しない複数
個の処理ユニツトを含むクラスタ構成にも同じように適
用することが出来ることは自明であろう。現在、他の処
理ユニツトの主メモリ中にあるデータのコピーを得るた
めのI/Oアクセスに関する問題は、本発明の原理、即
ち、所定のデータを得るために、デイスク・ストレージ
のI/O動作を遂行する代りに、プロセツサによつて主
メモリに送られたデータを、その主メモリから、そのデ
ータを要求した処理ユニツトに転送するという原理によ
つて解決することが出来る。
説明したきたが、本発明は仮想メモリを使用しない複数
個の処理ユニツトを含むクラスタ構成にも同じように適
用することが出来ることは自明であろう。現在、他の処
理ユニツトの主メモリ中にあるデータのコピーを得るた
めのI/Oアクセスに関する問題は、本発明の原理、即
ち、所定のデータを得るために、デイスク・ストレージ
のI/O動作を遂行する代りに、プロセツサによつて主
メモリに送られたデータを、その主メモリから、そのデ
ータを要求した処理ユニツトに転送するという原理によ
つて解決することが出来る。
F.発明の効果 以上説明したように、本発明はクラスタ構成に相互接続
された複数個のデータ処理システム中の共用された仮想
メモリにおいて、デイスクのI/O動作を減少する方法
を与えることによつて、データの処理性能を著しく改善
することが出来る。
された複数個のデータ処理システム中の共用された仮想
メモリにおいて、デイスクのI/O動作を減少する方法
を与えることによつて、データの処理性能を著しく改善
することが出来る。
第1図は本発明を適用することの出来るクラスタ構成に
相互接続された複数個のプロセツサ・ユニツトの機能的
ブロツク図、第2図は第1図に示されているプロセツサ
・ユニツトに含まれている種々の機能を説明するための
ブロツク図、第3図は第2図及び第3図のユニツトに適
用された種々のソフトウエア機能を説明するために、第
1図に示された処理ユニツトの1つを示すブロツク図、
第4図は第2図及び第3図に示した処理ユニツトの仮想
メモリ管理機能によつて用いられた外部ページ・テーブ
ルXPTを示す図、第5図は第2図及び第3図に示した
処理ユニツトの仮想メモリ管理機能によつて用いられる
反転ページ・テーブル構造を示す図、第6図は仮想メモ
リ・セグメントを識別するグローバル・セグメント識別
子及びローカル・セグメント識別子の構造を示す図、第
7図は本発明の方法を使用した仮想共用メモリ・テーブ
ルVSMTを示す図、第8図はハツシユ・アンカー・テ
ーブルを示す図、第9図は共用マツプ・フアイルのモデ
ルと、それに関連したセグメントを示す図、第10図は
本発明の方法によつて遂行される実施例を説明するため
の1つの環境を示す基本的なクラスタ構成のブロツク
図、第11図はクラスタ中において1つの処理ユニツト
にストアされる新しいフアイルを作成するためのステツ
プを説明するための図、第12a図及び第12b図はク
ラスタ内の処理ユニツトで実行しているアプリケーシヨ
ン・プログラムによつて、現存するフアイルを、どのよ
うにしてオープンするかを説明するためのフローチヤー
ト、第13図はクラスタ構成内で共用されている仮想メ
モリに、現存するフアイルを、どのようにしてロードす
るかを説明するためのフローチヤート、第14図は構成
中のどの処理ユニツトの主メモリにもないページのコピ
ーを、使用側処理ユニツトがそのページの入力を要求し
たとき、アクセス・コーデイネータによつて遂行される
ステツプを説明するためのフローチヤート、第15a図
及び第15b図はデータのページが1つの処理ユニツト
から他の処理ユニツトへ転送するとき、アクセス・コー
デイネータによつて、VSMTがどのようにして更新さ
れるかを説明するためのフローチヤート、第16図は使
用処理ユニツトが主メモリからページを写し取る要求を
送り、そして、他の処理ユニツトのメモリにそのページ
のコピーがある場合、アクセス・コーデイネータによつ
て遂行されるステツプを説明するためのフローチヤー
ト、第17図は使用処理ユニツトがその主メモリからペ
ージを写し取る要求を送り、そして他の処理ユニツトの
メモリ中にそのページのコピーがない場合、アクセス・
コーデイネータによつて遂行されるステツプを説明する
ためのフローチヤート、第18図は所定のページが共用
されたメモリ処理ユニツトによつてキヤツシユされねば
ならないことをアクセス・コーデイネータが決定したと
き、アクセス・コーデイネータによつて遂行されるステ
ツプを説明するためのフローチヤートである。 10……プロセツサ・ユニツト、11……スイツチ、1
2……通信リンク、16……マイクロ・プロセツサ、1
7……メモリ、20A乃至20E……ポート、21乃至
23……端末装置。
相互接続された複数個のプロセツサ・ユニツトの機能的
ブロツク図、第2図は第1図に示されているプロセツサ
・ユニツトに含まれている種々の機能を説明するための
ブロツク図、第3図は第2図及び第3図のユニツトに適
用された種々のソフトウエア機能を説明するために、第
1図に示された処理ユニツトの1つを示すブロツク図、
第4図は第2図及び第3図に示した処理ユニツトの仮想
メモリ管理機能によつて用いられた外部ページ・テーブ
ルXPTを示す図、第5図は第2図及び第3図に示した
処理ユニツトの仮想メモリ管理機能によつて用いられる
反転ページ・テーブル構造を示す図、第6図は仮想メモ
リ・セグメントを識別するグローバル・セグメント識別
子及びローカル・セグメント識別子の構造を示す図、第
7図は本発明の方法を使用した仮想共用メモリ・テーブ
ルVSMTを示す図、第8図はハツシユ・アンカー・テ
ーブルを示す図、第9図は共用マツプ・フアイルのモデ
ルと、それに関連したセグメントを示す図、第10図は
本発明の方法によつて遂行される実施例を説明するため
の1つの環境を示す基本的なクラスタ構成のブロツク
図、第11図はクラスタ中において1つの処理ユニツト
にストアされる新しいフアイルを作成するためのステツ
プを説明するための図、第12a図及び第12b図はク
ラスタ内の処理ユニツトで実行しているアプリケーシヨ
ン・プログラムによつて、現存するフアイルを、どのよ
うにしてオープンするかを説明するためのフローチヤー
ト、第13図はクラスタ構成内で共用されている仮想メ
モリに、現存するフアイルを、どのようにしてロードす
るかを説明するためのフローチヤート、第14図は構成
中のどの処理ユニツトの主メモリにもないページのコピ
ーを、使用側処理ユニツトがそのページの入力を要求し
たとき、アクセス・コーデイネータによつて遂行される
ステツプを説明するためのフローチヤート、第15a図
及び第15b図はデータのページが1つの処理ユニツト
から他の処理ユニツトへ転送するとき、アクセス・コー
デイネータによつて、VSMTがどのようにして更新さ
れるかを説明するためのフローチヤート、第16図は使
用処理ユニツトが主メモリからページを写し取る要求を
送り、そして、他の処理ユニツトのメモリにそのページ
のコピーがある場合、アクセス・コーデイネータによつ
て遂行されるステツプを説明するためのフローチヤー
ト、第17図は使用処理ユニツトがその主メモリからペ
ージを写し取る要求を送り、そして他の処理ユニツトの
メモリ中にそのページのコピーがない場合、アクセス・
コーデイネータによつて遂行されるステツプを説明する
ためのフローチヤート、第18図は所定のページが共用
されたメモリ処理ユニツトによつてキヤツシユされねば
ならないことをアクセス・コーデイネータが決定したと
き、アクセス・コーデイネータによつて遂行されるステ
ツプを説明するためのフローチヤートである。 10……プロセツサ・ユニツト、11……スイツチ、1
2……通信リンク、16……マイクロ・プロセツサ、1
7……メモリ、20A乃至20E……ポート、21乃至
23……端末装置。
Claims (2)
- 【請求項1】第1の主記憶と、第1のオペレーティング
・システムと、第1の2次記憶をもつ第1のプロセッサ
・ユニットと、第2の主記憶と、第2のオペレーティン
グ・システムと、第2の2次記憶をもつ第2のプロセッ
サ・ユニットと、第3の主記憶と、第3のオペレーティ
ング・システムと、第3の2次記憶をもつ第3のプロセ
ッサ・ユニットと、上記第1、第2及び第3のプロセッ
サ・ユニットのうちの1つのプロセッサ・ユニットから
別のプロセッサ・ユニットに対する要求に応答して、該
1つのプロセッサ・ユニットの主記憶に格納されている
データを該別のプロセッサ・ユニットの主記憶に転送さ
せるように、上記第1、第2及び第3のプロセッサ・ユ
ニットのうちの任意の2つを選択的に相互接続するスイ
ッチとを有するデータ処理システムにおいて、I/Oア
クセス動作を減少させる方法であって、 (a)上記第1、第2及び第3のオペレーティング・シス
テムによって、次のものを保持する段階と、 (a1)上記データ処理システムに格納されている各々のフ
ァイルのリスト(FDT)、 (a2)該各々のファイルについて、上記第1、第2及び第
3のプロセッサ・ユニットのうちのどれがアクセスを調
整するかの表示子(PID)、 (b)上記第2のプロセッサ・ユニットからの上記第1の
プロセッサ・ユニットに対する特定の情報の要求に応答
して、上記表示子によって識別されたものである上記第
1のプロセッサ・ユニットに格納されているファイルの
うちの1つのファイルをオープンする段階と、 (c)上記第2のプロセッサ・ユニットによる上記要求に
応答して、上記第1のプロセッサ・ユニットの上記第1
の2次記憶から上記第1の主記憶に、上記1つのファイ
ルからの上記特定の情報を転送し、その後、上記第1の
主記憶から第2の主記憶に上記特定の情報を転送し、上
記第1の主記憶から上記特定の情報を棄却する段階と、 (d)その後、上記第3のオペレーティング・システムか
ら上記第1のオペレーティング・システムに対する要求
によって促された、上記第1のオペレーティング・シス
テムから上記第2のオペレーティング・システムへの要
求に応答して、上記第2の主記憶から第3の主記憶に上
記特定の情報を転送する段階を有する、 データ処理システムの制御方法。 - 【請求項2】第1の主記憶と、第1のオペレーティング
・システムと、第1の2次記憶をもつ第1のプロセッサ
・ユニットと、第2の主記憶と、第2のオペレーティン
グ・システムと、第2の2次記憶をもつ第2のプロセッ
サ・ユニットと、第3の主記憶と、第3のオペレーティ
ング・システムと、第3の2次記憶をもつ第3のプロセ
ッサ・ユニットと、上記第1、第2及び第3のプロセッ
サ・ユニットのうちの1つのプロセッサ・ユニットから
別のプロセッサ・ユニットに対する要求に応答して、該
1つのプロセッサ・ユニットの主記憶に格納されている
データを該別のプロセッサ・ユニットの主記憶に転送さ
せるように、上記第1、第2及び第3のプロセッサ・ユ
ニットのうちの任意の2つを選択的に相互接続するスイ
ッチとを有するデータ処理システムにおいて、I/Oア
クセス動作を減少させる方法であって、 (a)上記第2のプロセッサ・ユニットに、上記第2のプ
ロセッサ・ユニットによって調整されつつある識別され
たデータのコピーが現在上記第1のプロセッサ・ユニッ
トの第1の主記憶に保持されていること示す情報を保持
する段階と、 (b)上記第3のプロセッサ・ユニットによる上記識別さ
れたデータを求める上記第2のプロセッサ・ユニットに
対する要求を、上記第2のプロセッサ・ユニットの上記
第2の2次記憶へのI/O動作によってサービスするの
ではなく、上記第1のプロセッサ・ユニットをして上記
識別されたデータのコピーを上記第3のプロセッサ・ユ
ニットの上記第3の主記憶へ転送させることによってサ
ービスする段階を有する、 データ処理システムの制御方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12700087A | 1987-11-30 | 1987-11-30 | |
US127000 | 1998-07-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01144152A JPH01144152A (ja) | 1989-06-06 |
JPH0622015B2 true JPH0622015B2 (ja) | 1994-03-23 |
Family
ID=22427813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63233842A Expired - Lifetime JPH0622015B2 (ja) | 1987-11-30 | 1988-09-20 | データ処理システムの制御方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0319148B1 (ja) |
JP (1) | JPH0622015B2 (ja) |
BR (1) | BR8806294A (ja) |
DE (1) | DE3887843T2 (ja) |
HK (1) | HK7995A (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3922432A1 (de) * | 1989-07-07 | 1991-01-17 | Siemens Ag | Virtueller speicher fuer ein parallelrechnersystem |
GB9001156D0 (en) * | 1990-01-18 | 1990-03-21 | Int Computers Ltd | Memory management in a multiprocessor system |
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
JPH06348658A (ja) * | 1993-06-03 | 1994-12-22 | Nec Corp | マルチプロセッサシステムにおけるメモリ管理方式 |
CN102083484B (zh) | 2008-06-11 | 2014-09-17 | 布拉科诊断公司 | 输注系统的屏蔽组件 |
US7862534B2 (en) | 2008-06-11 | 2011-01-04 | Bracco Diagnostics Inc. | Infusion circuit subassemblies |
US8317674B2 (en) | 2008-06-11 | 2012-11-27 | Bracco Diagnostics Inc. | Shielding assemblies for infusion systems |
US9597053B2 (en) | 2008-06-11 | 2017-03-21 | Bracco Diagnostics Inc. | Infusion systems including computer-facilitated maintenance and/or operation and methods of use |
US8708352B2 (en) | 2008-06-11 | 2014-04-29 | Bracco Diagnostics Inc. | Cabinet structure configurations for infusion systems |
SG11201607096PA (en) | 2014-03-13 | 2016-09-29 | Bracco Diagnostics Inc | Real time nuclear isotope detection |
RU2742349C2 (ru) | 2016-09-20 | 2021-02-05 | Бракко Дайэгностикс Инк. | Система доставки радиоактивных изотопов с некоторым количеством детекторов для регистрации гамма-излучения и бета-излучения |
WO2019191386A1 (en) | 2018-03-28 | 2019-10-03 | Bracco Diagnostics Inc. | Early detection of radioisotope generator end life |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
AU591503B2 (en) * | 1985-08-02 | 1989-12-07 | Wang Laboratories, Inc. | Data distribution apparatus and method |
-
1988
- 1988-09-20 JP JP63233842A patent/JPH0622015B2/ja not_active Expired - Lifetime
- 1988-11-10 EP EP88310567A patent/EP0319148B1/en not_active Expired - Lifetime
- 1988-11-10 DE DE3887843T patent/DE3887843T2/de not_active Expired - Fee Related
- 1988-11-30 BR BR888806294A patent/BR8806294A/pt not_active Application Discontinuation
-
1995
- 1995-01-19 HK HK7995A patent/HK7995A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
HK7995A (en) | 1995-01-27 |
EP0319148A3 (en) | 1990-07-11 |
JPH01144152A (ja) | 1989-06-06 |
DE3887843T2 (de) | 1994-08-11 |
BR8806294A (pt) | 1989-08-15 |
EP0319148A2 (en) | 1989-06-07 |
EP0319148B1 (en) | 1994-02-16 |
DE3887843D1 (de) | 1994-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5239643A (en) | Method for reducing disk I/O accesses in a multi-processor clustered type data processing system | |
US5239647A (en) | Data storage hierarchy with shared storage level | |
US5317728A (en) | Storage management of a first file system using a second file system containing surrogate files and catalog management information | |
US5835908A (en) | Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers | |
EP0323013B1 (en) | Method of operating a multiprocessor system employing a shared virtual memory | |
JP2633488B2 (ja) | 並列処理を実行する方法およびシステム | |
US6681239B1 (en) | Computer system having shared address space among multiple virtual address spaces | |
US5088031A (en) | Virtual machine file control system which translates block numbers into virtual addresses then into real addresses for accessing main storage | |
US7117314B2 (en) | Storage device and method for data sharing | |
US20030079093A1 (en) | Server system operation control method | |
KR100293795B1 (ko) | 분산형데이터베이스시스템및데이터엔티티액세스방법 | |
JPH076115A (ja) | データ処理システムのソフトウェアユーザによるハードウェアデータ移動機能の制御方法、プロセッサ間の操作の同期化方法、及び複数の装置制御ブロックの付与方法 | |
JPH0883253A (ja) | 仮想空間管理方法及び装置 | |
JPH0622015B2 (ja) | データ処理システムの制御方法 | |
JP3406983B2 (ja) | プロセス間メッセージ通信方法 | |
Abrosimov et al. | A Distributed Consistency Server for the CHORUS system | |
JPS5848289A (ja) | バツフアメモリ制御方式 | |
JP2002520731A (ja) | 微細粒子分散仮想共有メモリ | |
US11874767B2 (en) | Memory partitions for processing entities | |
JPH0559463B2 (ja) | ||
JPH0736713A (ja) | プログラム実行管理装置 | |
JPS62163154A (ja) | 仮想論理ボリユ−ム方式 | |
Clark | The facilities and evolution of MVS/ESA | |
JPH086838A (ja) | 分散システム | |
JP2798140B2 (ja) | 仮想空間制御方式 |