JPH0922398A - 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 - Google Patents

分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法

Info

Publication number
JPH0922398A
JPH0922398A JP17079695A JP17079695A JPH0922398A JP H0922398 A JPH0922398 A JP H0922398A JP 17079695 A JP17079695 A JP 17079695A JP 17079695 A JP17079695 A JP 17079695A JP H0922398 A JPH0922398 A JP H0922398A
Authority
JP
Japan
Prior art keywords
virtual
computer
shared
area
storage space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP17079695A
Other languages
English (en)
Other versions
JP3512910B2 (ja
Inventor
Toshio Okamoto
利夫 岡本
Yoshiyuki Tsuda
悦幸 津田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP17079695A priority Critical patent/JP3512910B2/ja
Priority to US08/676,970 priority patent/US6081833A/en
Publication of JPH0922398A publication Critical patent/JPH0922398A/ja
Application granted granted Critical
Publication of JP3512910B2 publication Critical patent/JP3512910B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 計算機側に複雑で効率の悪い通信プロトコル処理を必要
とせず、計算機間での共有空間のデータ転送を高速に実
行できる、効率のよい分散計算機システムにおける記憶
空間管理方法を提供する。 【課題】 複数の計算機をネットワークにより提供され
る仮想回線で結合してなる分散計算機システムにおける
記憶空間管理方法であって、一方の計算機が管理する仮
想記憶空間または実記憶空間の全部または一部の領域
と、他方の計算機が管理する仮想記憶空間または実記憶
空間の全部または一部の領域とを共有化し、共有化した
前記領域間ごとに前記仮想回線を専用に設定しておき、
共有化した一方の計算機の前記領域と他方の計算機の前
記領域との間でデータ転送を行なうにあたっては、当該
共有化した領域間に専用に設定しておいた前記仮想回線
を用いることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、仮想記憶空間管理
機構を有する複数の計算機システムを相互にATM(非
同期転送モード)等のネットワークを介して接続してな
る分散計算機システムにおける仮想記憶空間管理方法お
よび計算機システムに関する。
【0002】
【従来の技術】近年、計算機性能の向上とネットワーク
技術の進歩により、一連の処理を分割し、複数の計算機
上でプログラムを動作させ、通信しながら協調して処理
を進めていく分散処理が一般化してきている。
【0003】複数の計算機相互を接続して1つの分散計
算機システムをつくる構成は、種々存在する。例えば、
DEC社のVAX−Clusterは、通信チャネルを
介して相互に直接結合した構成で実現されてきた。これ
は、専用の特別のハードウェアで実装されていた。ま
た、高速通信を実現するため、計算機相互の距離は短く
し、計算機相互を隣接させて設置することが必要であっ
た。また、1つのシステムバス上に、複数のプロセッサ
を載せたハードウェア構成のマルチプロセッサシステム
もある。
【0004】一方、近年のネットワーク技術の進歩によ
り、高速なネットワーク装置が標準化され安価に提供さ
れつつある。その代表例が、ATMを利用したネットワ
ークである。このATMネットワークは、高速なスイッ
チ型交換機で実装され、WAN環境からLAN環境にい
たるまで、幅広い範囲で利用できるように、通信プロト
コルが定められている。例えば、呼設定、フロー制御、
ふくそう制御、エラー検出、QoS(Quality
of Service)管理などである。
【0005】このような高速ネットワークに既存の計算
機を相互に接続して構成した分散計算機システムがあ
る。この方式によれば、上述のクラスタ接続やシステム
バスによる方式と異なり、特別なハードウエアが必要な
いので安価に実装できる利点がある。
【0006】しかし、従来の通信方式でATMを利用す
る場合、問題点が生じる。従来の通信方法では、計算機
上の基本ソフトウェアであるOS(オペレーティングシ
ステム)内等で、計算機用のネットワークプロトコル処
理、例えばTCP/IPを用いて通信を行う。例えば、
TCP/IP方式でこのATMを利用すると、ATMは
単なる回線のごとく見なされ、ATMの特質を生かせな
い。計算機内ですべての通信プロトコル処理を行うの
で、処理が重く通信効率が悪いという欠点が生じる。
【0007】次に、従来の仮想記憶空間管理機構につい
て説明する。従来の計算機においては、プログラム内に
書かれた仮想アドレスは、ページテーブル等のアドレス
変換機構によって、物理アドレスに変換され、変換され
た物理アドレスを用いて、計算機内の実メモリがアクセ
スされる。
【0008】以下、従来技術におけるアドレス変換機構
について説明する。計算機内の実メモリは、使用効率を
高めるため、512〜8Kバイトのページと呼ばれる単
位ごとに管理され使用される。個々のページは、「ペー
ジ・フレーム」と呼ばれる。
【0009】実メモリをアクセスするためには、ページ
を特定するために「フレーム番号」が必要であり、ペー
ジ内の位置を特定するために「オフセット」が必要であ
る。従って、実メモリをアクセスするために用いる「物
理アドレス」は、「フレーム番号」と「オフセット」の
組からなる。
【0010】同様に、「仮想アドレス」は、「仮想フレ
ーム番号」と「オフセット」の2つの部分に分割するこ
とができる。仮想アドレスから物理アドレスへの変換の
際、仮想アドレスのオフセット部分は、変換されず、そ
のまま、物理アドレスのオフセット部分となる。
【0011】仮想フレーム番号については、ページテー
ブルの仮想フレーム番号に対応するページテーブル・エ
ントリ内に、変換後の(ページ)フレーム番号が書かれ
ており、ページテーブルを参照することによって、仮想
フレーム番号から(ページ)フレーム番号に変換するこ
とができ、従って、仮想アドレスから物理アドレスへの
変換を行うことができる。
【0012】なお、プログラムの実行に際し、仮想アド
レスから物理アドレスへの変換は頻繁に行われるが、こ
の変換の際に用いるページテーブルが実メモリ上に存在
する場合、変換の都度、実メモリをアクセスしなければ
ならず、変換に時間がかかる。これを解決するため、仮
想アドレスから物理アドレスへの変換に用いたページテ
ーブル・エントリを、プロセッサ内のTLB(Tran
slation Lookaside Buffer)
と呼ばれるページテーブル・エントリ・キャッシュに格
納する技術がある。これにより、その直後に同じ仮想フ
レームを変換する際には、実メモリをアクセスするより
も高速なTLBをアクセスすれば良いことになる。
【0013】次に、実メモリにロードされていない仮想
フレームに属するデータをアクセスする場合について説
明する。ページテーブル・エントリは、「存在ビット」
を持つ。存在ビットが1の場合、対応するページ・フレ
ームは実メモリ上にロードされていることを意味する。
【0014】一方、存在ビットが0の場合、対応するペ
ージ・フレームは実メモリ上にロードされていないこと
を意味する。存在ビットが0のページテーブル・エント
リをアクセスすると、ページ・フォールトが発生し、O
S(オペレーティング・システム)が、対応するページ
・フレームを作成し、データを実メモリ上にロードしな
ければならない。
【0015】このような場合において、例えば、UNI
X OSにおいて、ファイルシステムでのi−node
等のテーブルを参照することによって、該当するデータ
のハードディスク上での位置を特定し、必要な量のデー
タをハードディスクから実メモリへと転送する。
【0016】なお、上記データのハードディスク上での
位置を効率よく知るために、上記データが格納されたハ
ードディスク上でのセクタ番号等の情報を、ページテー
ブル・エントリに書き込むことによって、i−node
等のテーブルを参照するオーバーヘッドを無くすことが
できる。
【0017】次に、自分の計算機にないファイル等の資
源をアクセスする場合について説明する。自分の計算機
にないファイル等の資源のうち、以前に該資源を所有す
る計算機からネットワークを経由して転送した部分につ
いては、実メモリ上にキャッシュされたデータが残って
いる場合、対応するページテーブル・エントリの「存在
ビット」は1であり、ページテーブル・エントリに書か
れたフレーム番号を用いて、実メモリをアクセスし、該
当データにアクセスすることができる。
【0018】しかし、今までに転送していない部分や、
実メモリ上にキャッシュされたデータが残っていない場
合は、対応するページテーブル・エントリの「存在ビッ
ト」は0であり、上記資源を所有する計算機からネット
ワークを経由して対応する部分を転送し実メモリ上にロ
ードしなければならない。
【0019】この場合、今までに転送していない仮想フ
レームをアクセスするごとに、下記の参考文献〜で
解説されているような種々のテーブルを参照し、上記資
源を所有する計算機を特定し、その計算機に対し、対応
するデータの転送を要求するので、効率が悪いといった
問題点があった。
【0020】仮想アドレスから物理アドレスへの変換
については、例えば、「岩波講座マイクロエレクトロニ
クス8:VLSIコンピュータI」(元岡 達編)の
p.219〜p.222に詳しい。 TLBの動作については、例えば、「岩波講座マイク
ロエレクトロニクス8:VLSIコンピュータI」(元
岡 達編)のp.208に詳しい。 ネットワークを経由して、他の計算機にアクセスする
際に行われる手順については、例えば、「オペレーティ
ングシステムの設計II Xinuによるインターネッ
トワークの構築」(啓学出版、ダグラス・カマー著)に
詳しい。
【0021】
【発明が解決しようとする課題】従来は、分散計算機シ
ステムにおいて計算機間が共有する記憶空間の間でデー
タ転送を行なうおうとすると、専用のハードウェアが必
要となり、システム構成上、コストの点や柔軟性の点で
不利であった。また、既存のネットワークを用いて複数
の計算機を接続しただけでは、データ転送に時間がかか
り、効率的な記憶空間の共有が困難であった。
【0022】本発明は、上記事情を考慮してなされたも
のであり、計算機側に複雑で効率の悪い通信プロトコル
処理を必要とせず、計算機間での共有空間のデータ転送
を高速に実行できる、効率のよい分散計算機システムに
おける記憶空間管理方法、計算機及びデータ転送方法を
提供することを目的とする。
【0023】
【課題を解決するための手段】本発明(請求項1)は、
複数の計算機をネットワーク(例えばATMネットワー
ク)により提供される仮想回線で結合してなる分散計算
機システムにおける記憶空間管理方法であって、一方の
計算機が管理する仮想記憶空間または実記憶空間の全部
または一部の領域と、他方の計算機が管理する仮想記憶
空間または実記憶空間の全部または一部の領域とを共有
化し、共有化した前記領域間ごとに前記仮想回線を専用
に設定しておき、共有化した一方の計算機の前記領域と
他方の計算機の前記領域との間でデータ転送を行なうに
あたっては、当該共有化した領域間に専用に設定してお
いた前記仮想回線を用いることを特徴とする。
【0024】本発明(請求項2)は、複数の計算機をネ
ットワークにより提供される仮想回線で結合してなる分
散計算機システムにおける計算機であって、仮想記憶空
間の仮想アドレスと対応する実記憶空間の物理アドレス
またはデータを所有する計算機(オーナー計算機)にア
クセスするための情報とを組にして登録したページテー
ブルを用いて仮想記憶空間を管理する手段と、仮想記憶
空間の全部または一部の領域と、他の計算機が管理する
仮想記憶空間または実記憶空間の全部または一部の領域
とを共有化するため、共有化する領域間ごとに前記仮想
回線を専用に設定することを指示する手段と、前記仮想
回線を専用に設定した前記領域に対応する前記ページテ
ーブルのエントリに、前記データを所有する計算機(オ
ーナー計算機)にアクセスするための情報として、前記
仮想回線の仮想回線識別子を登録する手段と、共有化し
た前記領域間でデータ転送を行なうに先だって前記ペー
ジテーブルの該当するエントリに登録されている前記仮
想回線識別子を参照し、得られた仮想回線識別子を指定
し、当該共有化した領域間に専用に設定された前記仮想
回線を用いてデータ転送を行なう手段とを備えたことを
特徴とする、本発明(請求項3)は、上記発明(請求項
2)において、前記ページテーブルの前記仮想回線識別
子を記入する項目には、デフォルト値として、データと
これを所有する計算機との対応を管理するネームサーバ
に接続するのに用いる仮想回線識別子を記入しておくこ
とを特徴とする。
【0025】本発明(請求項4)は、複数の計算機をネ
ットワークにより提供される仮想回線で結合してなる分
散計算機システムにおける計算機であって、実記憶空間
の全部または一部の領域と、他の計算機が管理する仮想
記憶空間または実記憶空間の全部または一部の領域とを
共有化するため、共有化する領域間ごとに前記仮想回線
を専用に設定する手段と、前記領域を共有化したときに
または共有化した前記領域を処理実体がアクセスする前
に、該領域間に専用に設定した前記仮想回線を用いてデ
ータ転送を行なう手段とを備えたことを特徴とする。
【0026】本発明(請求項5)は、複数の計算機をネ
ットワークにより提供される仮想回線で結合してなる分
散計算機システムにおいて異なる計算機間で共有する仮
想記憶空間の領域間でデータを転送するためのデータ転
送方法であって、一方の計算機が管理する仮想記憶空間
の一部の領域と、他方の計算機が管理する仮想記憶空間
の一部の領域とを共有化するとともに、共有する仮想記
憶空間の1つの領域には複数の実メモリの領域を割当
て、共有化した前記仮想記憶空間の領域間ごとに前記仮
想回線を専用に設定し、前記仮想記憶空間の領域には、
実際に対応させる(マッピングする)実メモリの領域を
順次切り替え、前記仮想記憶空間の領域と現在対応して
いない(マッピングされていない)実メモリの領域間
で、前記仮想回線を用いてデータ転送を行い、データ転
送の完了した実メモリの領域を、前記仮想記憶空間の領
域に対応させる(マッピングする)ことを特徴とする。
【0027】(作用)本発明によれば、複数の計算機を
ネットワーク(例えばATMネットワーク)を介して結
合した分散システムにおいて、仮想記憶空間または実記
憶空間の全部または一部を共有化し、共有領域ごとに専
用に設定しておいた仮想回線を利用して直接、高速なデ
ータ転送を行なうことができるので、計算機側には複雑
で効率の悪い通信プロトコル処理が必要とせず、効率的
な記憶空間の共有が実現できる。つまり、その共有空間
に対して参照や書き込み(read/write)が発
生しても、その都度、呼設定不要で、直にデータ転送が
できる。
【0028】また、呼設定、フロー制御、ふくそう制
御、エラー検出、QoS管理などデータ転送中の制御は
ネットワーク側(例えばATM交換機側)で対応してく
れるので、計算機側はその機能に不足する部分(例えば
データエラーにおける訂正や再送)だけ管理すればいい
ので、計算機側の処理が大幅に軽減する。
【0029】さらに、ATMネットワークのように高速
なネットワークを利用することによって、ある程度の距
離が離れた計算機どうしを結んで分散システムにできる
ので、構成の柔軟性が良い。
【0030】また、本発明によれば、他の計算機に属す
る資源にアクセスする場合、仮想アドレスを物理アドレ
スに変換する際に用いるページテーブルを参照するだけ
で、他の計算機へのコネクションを使用するために必要
な仮想回線識別子(VPI/VCI値等)を得ることが
できる。
【0031】このため、他の計算機に属する資源のう
ち、必要な大きさのデータブロックの転送を要求する場
合、従来のように種々のテーブルを参照することなく、
ページテーブルから得られた仮想回線識別子を用いてデ
ータ転送の要求セルを作成することができ、効率良く要
求セルを作成することができる。
【0032】また、本発明によれば、前記ページテーブ
ルの前記仮想回線識別子を記入する項目にデフォルト値
として、データとこれを所有する計算機(オーナー計算
機)との対応を管理するネームサーバに接続するのに用
いる仮想回線識別子を記入しておけば、データを所有す
る計算機(オーナー計算機)を知る必要が生じた際に、
該当するページテーブル・エントリに書き込まれている
仮想回線識別子を用いて、速やかにネームサーバに問い
合わせを行なうことができる。
【0033】また、本発明によれば、クライアント側の
実記憶空間の全部または一部の領域と、サーバ計算機の
仮想記憶空間または実記憶空間の全部または一部の領域
とを共有化する場合、クライアント側の共有領域には、
すでに実記憶空間(実メモリ)が割り当てられているの
で、ページフォルトは発生しない。この場合、クライア
ント側での実際のアクセスが発生した時にデータ転送す
るのではなく、仮想回線の設定時に、引き続いてデータ
転送を行う(すなわちクライアント側のアクセスとは無
関係である。) したがって、ユーザプログラムやスレッド等の処理実体
が仮想記憶空間にアクセスしたときには、既に実記憶空
間(実メモリ)が割り当てられているので、ページフォ
ルトが発生せず、ページフォルト処理が不要になり、即
座にデータをアクセスできる。したがって、例えば、リ
アルタイム処理等の高速なユーザプログラムの実行が可
能となる。
【0034】また、本発明によれば、クライアント計算
機の仮想記憶空間の一部の領域と、サーバ計算機の仮想
記憶空間の一部の領域とを共有化するとともに、共有す
る仮想記憶空間の1つの領域には複数の実メモリの領域
を割当て、仮想記憶空間の領域と現在対応していない
(マッピングしていない)実記憶空間間で専用の仮想回
線を用いてデータ転送を行うとともに、データ転送の完
了した実メモリの領域を仮想記憶空間の領域に対応させ
る(マッピングする)ように、実メモリの領域を順次切
り替えるので、計算機間で仮想記憶空間の領域の大きさ
単位に連続して高速にデータを転送することができる。
【0035】
【発明の実施の形態】以下、図面を参照しながらこの発
明の実施の形態について説明する。図1に、この実施の
形態に係る分散システム全体の基本構成を示す。この実
施の形態は、複数の計算機間の仮想記憶空間や実記憶空
間(実メモリ)相互を共有化することで分散システムを
構成し、その領域を相互に参照や書き込みを行うことで
通信を行ない、その相互通信にATMを利用するもので
ある。
【0036】図1中、2はATM方式によるスイッチ型
高速LAN(Local AreaNetwork)で
あるATMネットワークである。ATM交換機3に複数
のホスト(計算機)1を結合して分散システムを構成し
ている。
【0037】ATM交換機3には呼設定を制御する呼設
定サーバ4が接続されている。呼設定サーバ4は、AT
Mネットワーク2中に1台だけ設けても良いし、複数台
設けて機能分担させても良い。
【0038】各ホスト(計算機)は、1台または複数台
のATM交換機3を経由して他のホスト(計算機)との
間にコネクション(仮想回線)を設定することができ
る。ホスト1は、少なくとも1つのCPUとRAMなど
のメモリ(実メモリ)を備える計算機であり、ネットワ
ーク中で識別するためのアドレス等のような識別子を与
える単位である。また、各ホスト1は、プログラム,デ
ータ,ファイルなどを記憶しておくディスク装置を備え
ているものとする。
【0039】なお、図1のように、ATMネットワーク
2には、ファイル等の資源とこれを所有する計算機との
対応等を管理するネームサーバ5を接続しても良い。ネ
ームサーバ5は、ATMネットワーク2中に1台だけ設
けても良いし、複数台設けて機能分担させても良い。ま
た、ネームサーバ5は、計算機1の中に設けても良い。
【0040】次に、図2と図3を参照しながら、この実
施の形態に係る計算機1の構成について説明する。図2
は、この実施の形態に係る計算機1内部の要部構成を示
す基本構成図であるとともに、2つの計算機1間をAT
Mの仮想回線で接続した状態を示している。また、図3
には、この計算機1内部の実際の物理構成の一例を示
す。
【0041】図2に示すように、計算機1は、プロセッ
サ15、実メモリ14、仮想アドレス変換部13、ペー
ジテーブル16、ネットワーク・インターフェース制御
部12、ネットワーク・インターフェース11を備えて
いる。
【0042】図3中、17はシステムバスを、18はハ
ードディスク制御部を、19はハードディスクを、15
1はバスインタフェース部を、152はプログラムを実
行するエグゼキューション部を、153はTLB(Tr
anslation Lookaside Buffe
r)を示す。
【0043】図3に示すように、ページテーブル16
は、物理構成上は実メモリ14上に格納され、ページテ
ーブル16の一部がプロセッサ15内のTLB153の
中にキャッシュされる。
【0044】仮想アドレス変換部13は、ページテーブ
ル16を参照して、プログラム等の実行時にアクセスさ
れた仮想アドレスを、これに対応する実メモリ14上の
データへの物理アドレスに変換する。なお、仮想アドレ
ス変換部13は、説明上、図2では物理構成上プロセッ
サ15外に存在するよう示し、図3では省略している
が、実際には、プロセッサ15内に存在させても良い
し、プロセッサ15外に存在させても良い。
【0045】次に、この実施の形態に係るオペレーティ
ングシステム(OS)に関して説明を行う。計算機1に
は、分散システムを構成するために必要なオペレーティ
ングシステム(OS)を搭載している。このOSは、プ
ログラムやデータなどを配置するアドレス空間の管理方
式として仮想記憶空間を提供する。
【0046】図4に、このOSの要部構成を示す。図4
中、21はネットワーク共有メモリ管理部を、22は仮
想記憶空間管理部を、23はネットワークページャを、
24はネットワーク管理部を、221は実メモリ管理部
を、222は仮想メモリ管理部を、16はページテーブ
ルを、241は呼設定部を、242は仮想回線管理部を
示す。なお、図4では、この実施の形態の説明に必要な
部分のみを示しており、そのほかの資源管理(スレッド
管理、割り込み管理、デバイス管理)は、従来の仮想記
憶方式のOSと同等のものでよく説明に不要なので省略
している。
【0047】先に述べたように、実メモリは、「ページ
・フレーム」(以下、フレームと略記する)と呼ばれる
512バイト〜8Kバイトを単位とした領域に分割され
ていて、実メモリ14上に存在するデータにアクセスす
る場合、該当データが含まれているフレームの「フレー
ム番号」と、そのフレームの先頭から該当データまでの
距離を示した「オフセット」を用いてアドレッシングさ
れる。「フレーム番号」と「オフセット」を併せたもの
を「物理アドレス」と呼ぶ。
【0048】一方、プログラム内では、プログラムごと
に一意な「仮想アドレス」と呼ばれるアドレスを用いて
アドレッシングされているため、プログラムの実行時、
「仮想アドレス」から「物理アドレス」へ変換を行なわ
なければならない。
【0049】その変換の方法としては、例えば、次のよ
うな方法を用いる。仮想アドレスを、上位部分(以下、
「仮想フレーム」と呼ぶ)と、下位部分(以下、「オフ
セット」と呼ぶ)の2つの部分に分割し、下位部分の
「オフセット」はそのまま「物理アドレス」の「オフセ
ット」となるようにし、上位部分の「仮想フレーム」を
キーとしてページテーブル16を参照して「物理アドレ
ス」の「フレーム番号」に変換する。すなわち、ページ
テーブル16の仮想フレームに対応するエントリ・ポイ
ントに、予め、フレーム番号を書き込んだ「ページテー
ブル・エントリ」を書き込んでおき、変換時、仮想フレ
ームに対応するエントリ・ポイントに書かれた「ページ
テーブル・エントリ」を参照し、このページテーブル・
エントリに書かれたフレーム番号を読み出すことによっ
て、仮想フレームに対応する実メモリのフレーム番号を
得ることができる。
【0050】また、実メモリ上にデータが存在しない場
合は、対応するページテーブル・エントリの「存在ビッ
ト」を0とすることによって、仮想アドレスから物理ア
ドレスに変換するために、ページテーブル16をアクセ
スする際、ページ・フォルトを発生する(プロセッサ1
5に備わった機能)ことによって、該ページフレームに
属するデータ・ブロックを、ハードディスク等から実メ
モリに転送すると、ページテーブル・エントリに該ペー
ジフレームのフレーム番号を登録する処理ルーチンを起
動することができる。
【0051】ここで、従来の技術においては、仮想アド
レスによって、ATMやEthernet等のネットワ
ークで接続された他の計算機に属する資源にアクセスす
る場合、該他の計算機との間に設定されたコネクション
を使用するために必要な情報は、ページテーブル16に
は書かれておらず、上記情報を得ようとする場合、種々
のテーブルを参照して得なければならず効率が悪かっ
た。
【0052】この実施の形態においては、上記コネクシ
ョンを使用するのに必要なVPI/VCI値といった仮
想回線識別子の情報をページテーブル16に書き込んで
おき、上記資源にアクセスするためページテーブル16
を参照した際に、上記情報をただちに得られるようにす
ることによって、高速化を図っている。
【0053】手順としては、詳細は後述するが、仮想フ
レームに対応するページテーブル・エントリを参照した
結果、ページテーブル・エントリの「存在ビット」が1
の場合は、仮想フレームに対応するページフレームは実
メモリ14中に存在し、ページテーブル・エントリに書
かれたフレーム番号を用いて物理アドレスに変換し、実
メモリ14をアクセスすることができる。一方、ページ
テーブル・エントリの「存在ビット」が0の場合で、ペ
ージテーブル・エントリに該資源を所有する他の計算機
の間に接続されたコネクションを使用するために必要な
VPI/VCI値といった情報が書き込まれている場
合、この書き込まれた情報を用いて、上記資源を所有す
る計算機に対し、仮想アドレスに対応するデータが含ま
れているデータ・ブロックの転送を要求することができ
る。
【0054】仮想記憶空間管理部22は、基本的には、
従来技術のものと同様である。つまり、仮想アドレス変
換部13内のページテーブル16の領域管理と各ページ
テーブル16内のページテーブル・エントリにパラメー
タをセットし、仮想アドレス変換部13により仮想アド
レスから物理アドレスへの変換ができるように設定を行
う。図5は、仮想記憶空間管理部22が扱うページテー
ブル16の一例である。以下、図5を参照しながら、ペ
ージテーブル16の構成例について説明する。
【0055】図5は、「フレーム番号」、「存在ビッ
ト」、「処理中ビット」、「ハードディスクビット」、
「リモートホストビット」等の情報を格納する場合を示
したものである。
【0056】なお、「フレーム番号」と「VPI/VC
I値といった他の計算機間に接続されたコネクションを
使用するのに必要な情報」と「ハードディスク上のセク
ター番号」は、同じ場所(図の中では「フレーム番号」
と名前をつけた場所)に格納されている。「存在ビッ
ト」、「ハードディスクビット」、「リモートホストビ
ット」の値によって、同じ「フレーム番号」の場所に格
納された数値の意味が決まる。
【0057】「存在ビット」は、前述したものと同じで
ある。「処理中ビット」は、仮想フレームに対応するペ
ージテーブル・エントリに該当するページフレームの準
備が終了していない場合に1がセットされる。つまり、
ページテーブル・エントリに、VPI/VCI値等の情
報が書かれて、そのVPI/VCI値等を使用して、資
源を所有する計算機に対し、データの転送を要求し、処
理が未完了の場合や、ディスクからデータを転送の処理
中(未完了)などの場合である。処理中ビットに1をセ
ットすることによって、他のプログラム等が、同じペー
ジテーブル・エントリにアクセスし、再度二重に同じデ
ータの転送を要求することを防止することができる。
【0058】「ハードディスクビット」は、ハードディ
スク19中のデータが格納されているセクタ番号が、
「フレーム番号」欄に書かれていることを示す用途等に
使用することができる。
【0059】「リモートホストビット」は、ページテー
ブル・エントリの「フレーム番号」欄にかかれた数値
が、VPI/VCI値等の情報が書かれていることを示
し、VPI/VCI値等を使用して、資源を所有する計
算機に対し、データの転送を要求する場合などに利用す
る。
【0060】なお、後述するように、データを所有する
リモートホストかあるいはリモートホストを検索するた
めのネーム・サーバ5かを区別するためなどの用途にも
使用できる。
【0061】ネットワーク共有メモリ管理部21は、ユ
ーザプログラムなどからの要求により、ローカルホスト
(自ホスト)側の仮想記憶空間とリモートホスト側の仮
想記憶空間の共有化の設定や管理を行う。
【0062】ネットワーク共有メモリ管理部21の機能
によって、分散システムを構成することができる。つま
り、この機能を利用し、共有領域を設定すると、ユーザ
やアプリケーションプログラムからは、設定された仮想
記憶空間が他のホストと共有され、ここを参照したり、
書き込んだりして利用することを通して他のホストの資
源を利用できる。
【0063】この共有空間はOSが管理して作り出して
いる仮想的なものであるので、実際には、各ホスト1の
上での仮想記憶空間管理部22で実現する。つまり、各
ホスト1ごとに、それぞれに仮想記憶空間を別々に管理
し保持しているが、ネットワーク共有メモリ管理部21
が、仮想記憶空間管理部22の該当する領域のページテ
ーブル・エントリに、予め共有されている旨の設定(仮
想回線の識別子の設定など)をしておく。実際にその領
域にアクセスがあると、仮想記憶空間管理部22から起
動されたネットワークページャ23が、他ホストのネッ
トワークページャ23と通信を行い、データを転送し、
仮想記憶空間の共有を実現する。
【0064】ネットワーク管理部24は、ATMの仮想
回線の管理を行うところであり、ネットワークインター
フェイス制御部12とネットワークインタフェース11
を扱う。
【0065】ネットワークページャ23とは、各計算機
間で共有する領域どうしのデータを実際に転送する機能
であり、ネットワーク共有メモリ管理部21により作成
されたATMの仮想回線を用いてデータ転送する。クラ
イアント側は、仮想記憶空間管理部22から起動され、
サーバ側は、ネットワーク管理部24から起動される。
【0066】以上、この実施の形態に係る分散システム
全体の概要を説明した。以下では、この分散システムの
処理の流れを次の2つに分けて説明する。 (1)共有領域の対応管理と仮想回線の設定 (2)共有領域のデータ転送 上記の(1)は、複数の計算機1間で、共有する領域の
設定とその共有関係を管理する処理である。概略的に
は、共有関係にある領域間で、ATMの呼設定を行い、
仮想回線を張っておく。その仮想回線の識別子を仮想記
憶空間管理部22のページテーブル16に登録してお
き、実際のデータ転送を行うときに利用する。
【0067】上記の(2)は、共有領域領域に対する参
照や書き込みなどのアクセスが実際に発生し、共有する
計算機1どうしでデータの転送が必要になったときに、
ネットワークページャ23を用いてデータを転送する処
理である。上記の(1)の処理で既に仮想回線が張って
あるので、それを用いてデータ転送を行う。
【0068】ところで、共有方法は、共有領域の対象が
仮想記憶空間そのものか、実記憶空間かによって、図6
に示す4種類の共有タイプが考えられる。以下では、こ
の分散システムを、4タイプの共有方法について説明す
る。
【0069】<タイプ1>タイプ1は、クライアント側
の仮想記憶空間の領域とサーバ側の仮想記憶空間の領域
を共有領域ごとにネットワーク接続により共有するもの
である(図7参照)。
【0070】<タイプ2>タイプ2は、クライアント側
の仮想記憶空間の領域とサーバ側の実記憶空間の領域を
共有領域ごとにネットワーク接続により共有するもので
ある(図14参照)。
【0071】<タイプ3>タイプ3は、クライアント側
の実記憶空間の領域とサーバ側の仮想記憶空間の領域を
共有領域ごとにネットワーク接続により共有するもので
ある(図15参照)。
【0072】<タイプ4>タイプ4は、クライアント側
の実記憶空間の領域とサーバ側の実記憶空間の領域を共
有領域ごとにネットワーク接続により共有するものであ
る(図16参照)。
【0073】OSは、共有のタイプに応じて、対応する
領域間でATMの仮想回線を張ることになる。 <タイプ1>最初に、図6のタイプ1について説明す
る。図7に、タイプ1の概要を表す模式図を示す。
【0074】(1)共有領域の対応管理と仮想回線の設
定 まず、タイプ1による仮想回線の設定を説明する。図8
には、フローチャートの一例を示す。
【0075】タイプ1では、クライアント側の未使用の
仮想記憶空間の領域とサーバ側の割当て済みの領域(つ
まり仮想記憶空間とファイル等の資源の対応が存在する
領域)の間を共有化する。
【0076】共有化する仮想記憶空間の領域の指定に
は、例えば、以下の方式がある。 (i)ユーザプログラムが、明示的に、仮想記憶空間を
管理するOSに対して、共有領域の範囲指定とその共有
する相手の計算機とその計算機での仮想記憶空間の領域
を指定する。つまり、実際のその領域の参照または書き
込みなどのアクセスが発生する前に指定する。
【0077】これは、仮想記憶空間にファイルをマッピ
ング(UNIXシステムにおけるmmapシステムコー
ル)して利用する方式における、ファイルシステムの操
作におけるOPEN処理に相当する。共有相手の計算機
名や相手の領域は、プログラムが直接指定する場合もあ
るし、ネームサーバ5等からの指示であってもよい。
【0078】(ii)OSが、あらかじめ、仮想記憶空間
の共有相手の計算機とその相手の計算機上の仮想記憶空
間の領域を知っており(起動時に参照する設定ファイル
に対応方法が示してありまたはOSのなかに組み込まれ
ており)、共有仮想領域が、最初に参照または書き込み
のアクセスをされた時に指定する。上記した(i)と
(ii)は、いずれの場合も共有化処理が起動されるタイ
ミングが異なるだけで処理内容は同じであり、ローカル
(クライアント)側のネットワーク共有メモリ管理部2
1は、共有化する相手の領域を管理するリモート(サー
バ)側の計算機1のネットワーク共有メモリ管理部21
へ共有化開始の手続きを行う。
【0079】最初に、クライアント側の処理について説
明する。図9には、クライアント側のフローチャートの
一例を示す。クライアント側のネットワーク共有メモリ
管理部21は、上記した(i)または(ii)の方法によ
り、次に示す入力フォーマットのデータをシステムコー
ル等で受取る。 <入力フォーマット>ローカル側仮想記憶空間ID、開
始アドレス、サイズ、リモート側ホストID、仮想記憶
空間ID、開始アドレス、その他の情報(共有の種類、
ユーザID、アクセスの制限、QoS情報など) そして、ネットワーク管理部24へ、新しいATMの仮
想回線をリモート側と設立することを依頼する。
【0080】クライアント側ネットワーク管理部24で
は、ATMの呼設定セルを作成し、ATM交換機3へ送
信する。仮想回線が張られると、その仮想回線に割り当
てられたVPI/VCI等の仮想回線の識別子が得られ
る。
【0081】次に、クライアント側のネットワーク共有
メモリ管理部21では、得られた識別子を返り値として
もらい、その値を仮想記憶空間管理部22へ、次に示す
フォーマットで、共有空間であることを伝える。 <入力フォーマット>ローカル側仮想記憶空間ID、開
始アドレス、サイズ、仮想回線識別子、その他の情報
(共有の種類、ユーザID、アクセスの制限、QoS情
報など) 仮想記憶空間管理部22では、必要なページテーブルを
作成し、ページテーブル・エントリを初期化しパラメー
タセットする。
【0082】まず、「存在ビット」を0にする。次に、
該仮想回線を使用するのに必要なVPI/VCI値とい
った識別子を、ページテーブル・エントリの「フレーム
番号」欄に書き込み、「リモートホストビット」を1に
する。
【0083】その他の情報も必要に応じてセットする。
最後に、ネットワーク共有メモリ管理部21は、実際の
データ転送時に動作するネットワークページャ23を初
期化する。
【0084】以上が、クライアント側の処理である。次
に、サーバ側の処理について説明する。図10には、サ
ーバ側の処理の流れを示す。
【0085】サーバ側では、ネットワーク管理部24に
て、ATM交換機3からの呼設定セルが受け付けられ
る。この中の情報にて、共有する仮想記憶空間の領域や
相手(クライアント側)の計算機などがわかる。
【0086】次に、この情報はサーバ側のネットワーク
共有メモリ管理部21へ送られ、共有化の処理が進めら
れる。ただし、その際に、共有する相手によっては、共
有を拒否するようにしてもよい。
【0087】ネットワーク共有メモリ管理部21では、
仮想記憶空間管理部22に、共有領域のページテーブル
・エントリの内容を確認し、すでにファイルやデータ等
の資源が割当て済みの領域であることを確認し、共有に
関する情報を必要であればセットする。
【0088】さらに、ネットワークページャ23(サー
バ側)が未起動であれば(はじめてこの領域が共有化さ
れた場合)、起動し、初期化し、ネットワークページャ
23がこの新しい仮想回線を利用してデータを転送でき
るように諸準備を行う。
【0089】(2)共有領域におけるデータの転送方法 次に、共有領域におけるデータ転送について説明する。
図11には、処理手順の流れの概要を示す。また、図1
2と図13は、仮想記憶空間にアクセスしたときの実行
時の動作を示したフローチャートの一例である。
【0090】仮想アドレスで示されたデータをアクセス
(readまたはwrite)する際、仮想アドレスを
物理アドレスに変換するために、ページテーブル16が
参照されるが、仮想フレームに対応するページテーブル
・エントリの「存在ビット」が1の場合(ステップS
1)、ページテーブル・エントリに書かれた「フレーム
番号」を使用して、物理アドレスを計算し、計算された
物理アドレスを用いて、実メモリ14をアクセスし、求
めるデータにアクセスする(ステップS20)。
【0091】「存在ビット」が0、かつ、「処理中ビッ
ト」が1の場合(ステップS1,S4)、他のプロセス
等が、同じページフレームにアクセスしており、OSで
管理されるページャ処理等が、前記ページフレームに対
応するデータを、実メモリ14へ転送の処理を行ってい
る途中であることを意味しているので、前記OS等のペ
ージャ処理の終了を待って休眠する(ステップS5)。
【0092】前記OS等のページャは、処理を完了する
と、該当ページテーブル・エントリの「処理中ビット」
を0にし、さらに、処理待ちで休眠したプログラムの実
行を再開させる。
【0093】そこで、休眠状態が目覚めると(ステップ
S6)、前記ページテーブル・エントリに、新たに書き
込まれた「フレーム番号」を使用して、物理アドレスを
計算し、計算された物理アドレスを用いて、実メモリ1
4をアクセスし、求めるデータにアクセスする(ステッ
プS20)。
【0094】「存在ビット」が0、かつ、「処理中ビッ
ト」が0、かつ、「ハードディスクビット」が1の場合
(ステップS1,S4,S7)、仮想フレームに対応す
るページテーブル・エントリの「フレーム番号」の欄
は、前記仮想フレームに対応するハードディスク19上
のセクタ番号が書かれている。この状態は、たとえば、
実メモリ14が不足した場合に、この仮想フレームに対
応するページフレームの内容をハードディスク19に一
時退避し、このページフレームを明け渡す場合(スワッ
プ・アウトやページ・アウトなどの場合)に発生する。
【0095】この処理手順は、ページャ処理というが、
まず、前記データを格納するのに必要なページ・フレー
ムを実メモリ14から確保し、それが、他のプロセス等
に使用されないようにロックする(ステップS9)。そ
の値を「フレーム番号」欄に記入し、「ハードディスク
ビット」を0に、「存在ビット」と「処理中ビット」を
1にする(ステップS10)。
【0096】その後、前記セクタ番号を使用して、ハー
ドディスク19から対応するデータブロックを読み出
し、前記確保したページ・フレームへとデータ転送を行
う。データ転送は、ディスクのデバイスドライバによっ
て行なわれ、処理の完了を待って、休眠する(ステップ
S11)。
【0097】デバイスドライバの処理が完了するとOS
等から起動されるので、前記ページャ処理を再開する。
該当ページテーブル・エントリの「処理中ビット」を0
にし、さらに、この処理中ビットのために休眠したプロ
グラムの実行を再開させる(ステップS12)。
【0098】この段階で、実メモリ中にデータブロック
がロードされているので(ステップS2)、前記ページ
テーブル・エントリに、新たに書き込まれた「フレーム
番号」を使用して、物理アドレスを計算し、計算された
物理アドレスを用いて、実メモリ14をアクセスし、求
めるデータにアクセスする(ステップS20)。
【0099】「存在ビット」が0、かつ、「処理中ビッ
ト」が0、かつ、「ハードディスクビット」が0、か
つ、「リモートビット」が1の場合(ステップS1,S
4,S7,S13)、ページャ処理を行なう。仮想フレ
ームに対応するページテーブル・エントリの「フレーム
番号」の欄には、前記(1)の共有化処理で設定した、
仮想フレームに対応する資源を所有するサーバ計算機へ
の通信に必要なVPI/VCI値といった仮想回線の識
別子の情報が書かれているので、前記データを格納する
のに必要なページフレームを確保し、それが他のプロセ
ス等に使用されないようにロックする(ステップS1
5)。その値を「フレーム番号」欄に記入し、「リモー
トビット」を0に、「存在ビット」と「処理中ビット」
を1にする(ステップS16)。
【0100】その後、前記VPI/VCI値といった仮
想回線の識別子の情報を用いて、クライアント側(ロー
カル側)のネットワークページャ23を起動し、データ
転送を依頼する(ステップS17)。処理の完了を待っ
て、休眠する(ステップS18)。
【0101】クライアント側ネットワークページャ23
では、指示された仮想回線識別子を用いて、ネットワー
ク管理部24を通じて、リモート側の計算機のネットワ
ークページャ23に対して、前記データ・ブロックの転
送を要求するセルを作成し送信する。そのセルには、以
下の内容が含まれる。
【0102】開始アドレス、サイズ、データ転送の方向
(クライアント側→サーバ側、サーバ側→クライアント
側)、その他の情報(共有の種類、ユーザIDなど) その後、上記要求セルに応答したデータセルが送られて
くるのでその内容を対応するページフレーム内に書き込
む。
【0103】前記ページャ処理は、上記ネットワークペ
ージャの処理が完了し、処理が再開されると、該当ペー
ジテーブル・エントリの「処理中ビット」を0にし、さ
らに、この処理中ビットのために休眠したプログラムの
実行を再開させる(ステップS19)。
【0104】この段階で、実メモリ中にデータブロック
がロードされているので(ステップS2)、前記ページ
テーブル・エントリに、新たに書き込まれた「フレーム
番号」を使用して、物理アドレスを計算し、計算された
物理アドレスを用いて、実メモリ14をアクセスし、求
めるデータにアクセスする(ステップS20)。
【0105】なお、「存在ビット」が0、かつ、「処理
中ビット」が0、かつ、「リモートビット」が0の場合
(ステップS1,S4,S7)、エラー処理を行う(ス
テップS21)。
【0106】リモート側の計算機のネットワーク管理部
24では、上述のデータ転送要求セルを受け、その仮想
回線の識別子から、この仮想回線を受け持つサーバ側の
ネットワークページャ23を特定し、セルの内容を伝え
る。
【0107】セルの内容が伝わったサーバ側のネットワ
ークページャ23は、上記を転送要求セルを受け、指示
された、仮想記憶空間の開始アドレスからサイズ分をデ
ータブロックを読みとり、その内容をセルに入れてクラ
イアント側へ同じ仮想回線を使って送る。
【0108】なお、データ転送には、AAL5などの適
切なトランスポートプロトコルで、処理されて送られる
ものとする。これは、データの内容の順序やデータの抜
け、データの内容のエラー、データの再送などを行い、
両ネットワークページャ23間でのデータ完全性を保証
するものである。なお、ATMのネットワーク側で既に
ある程度の処理がされているため、計算機側での処理は
軽い。
【0109】上記の実行は、クライアント側で共有され
た仮想記憶空間のデータを参照した場合の動作である
が、逆に、クライアント側で書き込みが発生した場合、
ネットワークページャ23間のデータ転送の方向は逆方
向になる。
【0110】ここで、以上説明した主な処理をクライア
ント側とサーバ側の各部ごとにまとめておく。 ネットワーク共有メモリ管理部21(クライアント
側) 共有化設定要求を受け付ける。
【0111】ネットワーク管理部24へ、共有相手の計
算機との間での仮想回線の呼設定を依頼する。仮想記憶
空間管理部22で管理しているページテーブルの該当す
るエントリに仮想回線識別子等をセットする。
【0112】ネットワーク管理部24(クライアント
側) ATM交換機3との間で呼設定を行い、新しい仮想回線
を設立する。ATMの呼設定時の付加情報機能(呼設定
セル中のusr−usr情報、または、呼設定時にen
d−endホスト間で交換できるusr−usrメッセ
ージセルなど)を利用して、この仮想回線の利用目的等
を相手の計算機へ接続要求時に伝える。この仮想回線
は、この共有化領域のデータ転送に使うための専用であ
る。
【0113】仮想回線のフローコントロール、エラー処
理、ふくそう処理などを行う。 ネットワークページャ23(クライアント側) 仮想記憶空間管理部22から、実際にデータ転送の要求
があるときに呼ばれる。
【0114】仮想記憶空間へのアクセスの種類(rea
dまたはwrite)とそのアドレスから必要な大きさ
の実メモリを確保し、転送に必要な仮想アドレスの開始
位置とサイズ等を相手計算機に要求する。
【0115】readの場合は、相手計算機からデータ
が送られてくるので、それを実メモリ14に格納する。
writeの場合は、転送要求セルを送信した後、デー
タをセルに入れて送信する。
【0116】ネットワーク管理部24(サーバ側) ネットワーク管理部24では、ATM交換機3からの呼
設定要求セルを受けつけ、新しい仮想回線を設立する。
【0117】呼設定時の付加情報によって、新しい回線
の利用目的を知り、ネットワーク共有のための新規仮想
回線の場合、ネットワーク共有メモリ管理部21(サー
バ側)に制御を移す。
【0118】以後、転送要求セルがくると、この仮想回
線を担当するネットワークページャ23に制御を移す。
仮想回線のフローコントロール、エラー処理、ふくそう
処理などを行う。
【0119】ネットワーク共有メモリ管理部21(サ
ーバ側) 新規の仮想記憶空間共有依頼が、ネットワーク管理部2
4からくる。新仮想回線を利用して、相手側(クライア
ント側)のネットワーク共有メモリ管理部21と通信し
初期設定を行う。つまり、共有化するサーバ側の仮想記
憶空間IDと仮想アドレスの開始位置、サイズ等が伝え
られる。これを仮想記憶空間管理部22へ伝え、共有可
能かどうか検査する。
【0120】この共有領域を担当するネットワークペー
ジャ23を起動し、得られた仮想回線の識別子を教え
る。以後、仮想回線からread要求あるいはwrit
e要求があるごとに、その対応する仮想アドレスの領域
に対してデータを読み書きする。
【0121】ネットワークページャ23(サーバ側) ネットワーク管理部24から、実際にデータ転送の要求
があるときに呼ばれる。
【0122】対応する仮想記憶空間の領域のデータ転送
方向(readまたはwrite)と、データ転送する
仮想アドレスの開始位置とサイズ等が相手計算機から伝
えられる。
【0123】readの場合は、相手計算機へ仮想記憶
空間からデータブロックを読みとり、それをセルに入れ
て送信する。writeの場合は、転送要求セルを受信
し、そのセルで指示されている、開始アドレスからサイ
ズ分の大きさの領域に、以後送られてくるセル内のデー
タを該当領域に書き込む。
【0124】この実施の形態によれば、複数の計算機を
ATMネットワークを介して結合した分散システムにお
いて、仮想記憶空間または実記憶空間(実メモリ)の一
部を共有化し、共有領域ごとに専用に設定しておいたA
TMの仮想回線を利用して直接、高速なデータ転送を行
なうことができるので、計算機側には複雑で効率の悪い
通信プロトコル処理が必要とせず、効率的な記憶空間の
共有が実現できる。つまり、その共有空間に対して参照
や書き込み(read/write)が発生しても、そ
の都度、呼設定不要で、ただちにデータ転送ができる。
【0125】また、呼設定,エラー検出,ふくそう制御
などデータ転送中の制御はATM交換機側で大部分対応
してくれるので、計算機側はその機能に不足する部分
(例えばデータエラーにおける訂正や再送)だけ管理す
ればいいので、計算機側の処理が大幅に軽減する。
【0126】さらに、ATM交換機を利用することによ
って、ある程度の距離が離れた計算機どうしを結んで分
散システムにできるので、構成の柔軟性が良い。また、
他の計算機に属する資源にアクセスする場合、仮想アド
レスを物理アドレスに変換する際に用いるページテーブ
ルを参照するだけで、他の計算機へのコネクションを使
用するために必要な仮想回線識別子(VPI/VCI値
等)を得ることができる。
【0127】このため、他の計算機に属する資源のう
ち、必要な大きさのデータブロックの転送を要求する場
合、従来のように種々のテーブルを参照することなく、
ページテーブルから得られた仮想回線識別子を用いて要
求セルを作成することができ、効率良く要求セルを作成
することができる。
【0128】なお、単一仮想記憶空間方式のOSの場
合、仮想記憶空間は各計算機に一つしか存在しないの
で、各計算機の仮想記憶空間すべてを共有化し、どの計
算機からも同じように仮想記憶空間を利用できる構成に
することもできる。この場合、全仮想記憶空間を1つの
共有領域とするのではなく、仮想記憶空間を複数の共有
領域に分割し、それぞれ別々に共有化処理を行っても良
い。
【0129】<タイプ2>次に、図6のタイプ2につい
て説明する。上記したタイプ1では、共有する領域が各
計算機の仮想記憶空間どうしであったが、このタイプ2
では、クライアント側の仮想記憶空間の領域とサーバ側
の実記憶空間(実メモリ)の領域の間を共有化する。
【0130】図14に、タイプ2の概要を表す模式図を
示す。図中、45はクライアント側計算機に備え付けら
れたハードディスクを示す。このタイプ2は、サーバ側
にデータブロックが存在するが、まだ、サーバ側のプロ
グラム等がそのデータブロックを利用しておらず、その
データブロックを仮想記憶空間に張り付けて利用してい
ない状況での利用に適する。あるいは、例えば、サーバ
側では、利用プログラムは存在せず、データブロックを
管理するだけであるような構成での利用に適する。つま
り、共有空間の利用は、サーバ側からは行われず、各ク
ライアント側からだけの利用を想定する。この場合、デ
ータブロックは、サーバ内の磁気ディスク45等に永続
ファイル等として格納されている。
【0131】共有領域の仮想回線の設定は、タイプ1と
ほぼ同様である。ただし、呼設定時に、サーバ側の共有
領域を指定するのに、タイプ1における「仮想記憶空間
ID、開始アドレス、サイズ」に代わり、「実メモリの
開始アドレス、サイズ」によることになる。しかし、サ
ーバ側では、UNIX等の汎用OSにおける実メモリの
管理方法として、通常、実メモリは仮想記憶空間に一時
的に割当て、ディスクの内容(データブロック)を一時
的に蓄えるバッファとして利用する。したがって、この
ようなOSの場合、呼設定時に実メモリのアドレスを直
接明示して指定しても実際的ではない。したがって、デ
ータブロック(つまり永続ファイル)をアドレスの代わ
りにファイル名などで直接指定し、サーバ側では、ネー
ムサーバ5やファイルシステムにより、指定されたファ
イル名からデータブロックが格納されている磁気ディス
クの位置を求める。そして、必要な大きさの実メモリ1
4を確保し、その内容を読みだして実メモリ14へ転送
する。この実メモリ14の領域を共有領域としてサーバ
側のネットワークページャ23が管理する。
【0132】クライアント側の共有領域の読み書きに伴
うデータ転送はタイプ1と同様である。このタイプ2で
は、サーバ側で仮想記憶空間に実メモリを対応され、デ
ータを読み込むページフォルト処理が不要である。ま
た、予め、サーバ側の実メモリにディスク等からデータ
が転送されているので、クライアント側への仮想回線を
介するデータ転送が高速に行える。
【0133】<タイプ3>次に、図6のタイプ3につい
て説明する。上記したタイプ1では、共有する領域が各
計算機の仮想記憶空間どうしであったが、このタイプ3
では、クライアント側の実記憶空間の領域とサーバ側の
仮想記憶空間の領域の間を共有化する。そして、共有化
開始処理を完了したときにまたは共有化した領域をプロ
グラム処理実体がアクセスする前に、あらかじめデータ
転送を行なっておくものである。
【0134】図15に、タイプ3の概要を表す模式図を
示す。 (1)共有領域の仮想回線設定 仮想回線の設定方法は、タイプ1と類似する方法にな
る。
【0135】クライアント側のネットワーク共有メモリ
管理部21は、共有化する相手のリモートの領域を管理
する計算機のネットワーク共有メモリ管理部21へ共有
化開始の手続きを行う。タイプ1では、クライアント側
の共有領域の指定方法として、仮想記憶空間の一部の領
域を指定した。
【0136】この実施の形態でも同様に、クライアント
側の仮想記憶空間の領域を指定しても良い。この場合
は、タイプ1と同様な入力フォーマットで指定する。 <入力フォーマット>ローカル側仮想記憶空間ID、開
始アドレス、サイズ、リモート側ホストID、仮想記憶
空間ID、開始アドレス、その他の情報(共有の種類、
ユーザID、アクセスの制限、QoS情報など) この場合は、クライアント側の仮想記憶空間管理部22
で、指定された仮想記憶空間の領域と同じサイズの実メ
モリを確保し、共有領域用として利用する。
【0137】他の方法として、クライアント側の仮想記
憶空間とは無関係に、実メモリを確保しても良い。この
場合、予め、共有領域に必要な大きさの実メモリを直接
確保する。この方法では、クライアント側のOS等が提
供するシステムコール等を利用し、仮想記憶空間管理部
22内の実メモリ管理部221に対して要求する。
【0138】共有指定は、次のフォーマットで行う。 <入力フォーマット>ローカル側実メモリ開始アドレ
ス、サイズ、リモート側ホストID、仮想記憶空間I
D、開始アドレス、その他の情報(共有の種類、ユーザ
ID、アクセスの制限、QoS情報など) この場合、クライアント側のユーザプログラム等は、実
メモリのアドレスを直に指定してデータを利用する(O
Sが提供する実メモリのアドレスを指定してデータをア
クセスするシステムコール等を利用する)。または、任
意の仮想記憶空間に実メモリをマップして利用する。
【0139】クライアント側のネットワーク共有メモリ
管理部21は、先のフォーマットのデータをシステムコ
ール等で受取る。そして、ネットワーク管理部24へ新
しいATMの仮想回線をリモート側と設立することを依
頼する。
【0140】クライアント側のネットワーク管理部24
では、ATM交換機3へATMの呼設定セルを作成し、
ATM交換機3へ送信する。仮想回線が張られると、そ
の仮想回線に割り当てられたVPI/VCI等の仮想回
線の識別子が得られる。
【0141】次に、クライアント側のネットワーク共有
メモリ管理部21では、実際のデータ転送時に動作する
ネットワークページャ23を初期化する。ネットワーク
管理部24で得られた識別子を返り値としてもらい、そ
の値をネットワークページャ23に伝えて、データ転送
を開始を依頼する。
【0142】以上で、クライアント側の共有化開始時の
処理が終わる。次に、サーバ(リモート)側の処理を説
明する。サーバ側では、ネットワーク管理部24にて、
ATM交換機3からの呼設定セルが受け付けられる。こ
の中の情報にて、共有する仮想記憶空間の領域や相手
(クライアント)の計算機などがわかる。
【0143】次に、この情報をサーバ側のネットワーク
共有メモリ管理部21へ送られ、共有化の処理が進めら
れる。この際、共有する相手によっては、拒否してもよ
い。ネットワーク共有メモリ管理部21では、仮想記憶
空間管理部22に、共有領域のページエントリの内容を
確認し、すでにファイル等の資源が割当済みの領域であ
ることを確認し、共有に関する情報を必要であればセッ
トする。さらに、ネットワークページャ23(サーバ
側)を起動し、このネットワークページャ23がこの新
しい仮想回線を利用してデータを転送できるように諸準
備を行う。
【0144】(2)共有領域におけるデータの転送方法 次に、共有領域におけるデータ転送について説明する。
タイプ1と異なり、クライアント側の共有領域には、す
でに実メモリが割り当てられているので、その領域をプ
ログラム等の処理実体がアクセスしても、ページフォル
トは発生しない。この実施の形態の場合は、クライアン
ト側での実際のアクセスが発生した時にデータ転送する
のではなく、上記仮想回線の設定時に、引き続いてデー
タ転送を行う(すなわちクライアント側のアクセスとは
無関係である)。
【0145】まず、設定時にサーバ側からデータをクラ
イアントに転送しておき、クライアント側の参照アクセ
スの準備を完了させる。その後、クライアント側の書き
込みがあった場合は、別手段(システムコールで指示し
たり、定期的に実行したり、共有領域の解消時に実行し
たりするなど)によりサーバ側へデータ転送を行う。
【0146】クライアント側ネットワークページャ23
では、指示された仮想回線識別子を用いて、ネットワー
ク管理部24を通じて、リモート側の計算機のネットワ
ークページャ23に対して、前記データ・ブロックの転
送を要求するセルを作成し送信する。
【0147】そのセルには、以下の内容が含まれる。開
始アドレス、サイズ、データ転送の方向(クライアント
側→サーバ側、サーバ側→クライアント側)、そのほか
の情報(共有の種類、ユーザIDなど) その後、上記要求セルに応答したデータセルが送られて
くるのでその内容を対応する実メモリ(ページフレー
ム)に書き込む。書き込みが完了すると以後の処理は、
別手段(システムコールで指示したり、定期的に実行し
たり、共有領域の解消時に実行したりするなど)からの
指示によって、サーバ側との間で転送を行う。
【0148】リモート側の計算機のネットワーク管理部
24では、上述のデータ転送要求セル受け、その仮想回
線の識別子から、この仮想回線を受け持つサーバ側のネ
ットワークページャ23を特定し、セルの内容を伝え
る。
【0149】指示されたサーバ側のネットワークページ
ャ23は、上記を転送要求セルを受け、指示された仮想
記憶空間の開始アドレスから該当サイズ分のデータブロ
ックを読みとり、その内容をセルに入れてクライアント
側へ同じ仮想回線を使って送る。
【0150】タイプ3では、複数のページフレーム(実
メモリ)を、予めクライアント側の1つの共有領域に設
定できる。クライアント側では、共有化領域である実メ
モリを仮想記憶空間にマッピングして利用すると、ユー
ザプログラム等が仮想記憶空間にアクセスした時には、
既に実メモリが割り当てられているので、ページフォル
トが発生せず、ページフォルト処理が不要になり、即座
にデータをアクセスできる。したがって、高速なユーザ
プログラムの実行が可能となる。
【0151】なお、データ転送には、AAL5などの適
切なトランスポートプロトコルで、処理されて送られる
ものとする。これは、データの内容の順序やデータの抜
け、データの内容のエラー、データの再送などを行い、
両ネットワークページャ23間でのデータ完全性を保証
するものである。
【0152】ATMのネットワーク側で既にある程度の
処理がされているため、計算機側での処理は軽い。ここ
で、以上説明した主な処理をクライアント側とサーバ側
の各部ごとにまとめておく。
【0153】ネットワーク共有メモリ管理部21(ク
ライアント側) 共有化設定要求を受け付ける。ネットワーク管理部24
へ、共有相手の計算機との間での仮想回線の呼設定を依
頼する。
【0154】指示された実メモリを確保し、または、必
要な大きさの実メモリを確保し、ネットワークページャ
23にデータ転送を依頼する。 ネットワーク管理部24(クライアント側) ATM交換機3との間で呼設定を行い、新しい仮想回線
を設立する。
【0155】ATMの呼設定時の付加情報機能(呼設定
セル中のusr−usr情報、または、呼設定時にen
d−endホスト間で交換できるusr−usrメッセ
ージセルなど)を利用して、この仮想回線の利用目的他
を相手のマシンへ接続要求時に伝える。この仮想回線
は、この共有化領域のデータ転送に使うための専用であ
る。
【0156】仮想回線のフローコントロール、エラー処
理、ふくそう処理などを行う。 ネットワークページャ23(クライアント側) ネットワーク共有メモリ管理部21から、共有領域設定
完了後、呼ばれる。初期化時に知らされている仮想回線
を利用して、転送に必要なアドレスの開始位置とサイズ
等を相手計算機に要求する。
【0157】readの場合は、相手計算機からデータ
が送られてくるので、それを実メモリ14に格納する。
writeの場合は、転送要求セルを送信した後、実メ
モリ14のデータをセルに入れて送信する。
【0158】ネットワーク管理部24(サーバ側) ネットワーク管理部24では、ATM交換機3からの呼
設定要求セルを受けつけ、新しい仮想回線を設立する。
【0159】呼設定時の付加情報によって、新しい回線
の利用目的を知り、ネットワーク共有のための新規仮想
回線の場合、ネットワーク共有メモリ管理部21(サー
バ側)に制御を移す。
【0160】以後、転送要求セルがくると、この仮想回
線を担当するネットワークページャ23に制御を移す。
仮想回線のフローコントロール、エラー処理、ふくそう
処理などを行う。
【0161】ネットワーク共有メモリ管理部21(サ
ーバ側) 新規の仮想記憶空間共有化依頼が、ネットワーク管理部
24からくる。新仮想回線を利用して、相手側(クライ
アント側)のネットワーク共有メモリ管理部21と通信
し初期設定を行う。つまり、共有化するサーバ側の仮想
記憶空間IDと仮想アドレスの開始位置、サイズ等が伝
えられる。これを仮想記憶空間管理部22へ伝え、共有
可能かどうか検査する。
【0162】この共有領域を担当するネットワークペー
ジャ23を起動し、得られた仮想回線の識別子を教え
る。以後、仮想回線から、read要求、write要
求があるごとにその仮想アドレスに対応する領域に対し
てデータを読み書きする。
【0163】ネットワークページャ23(サーバ側) ネットワーク管理部24から、実際にデータ転送の要求
があるときに呼ばれる。
【0164】対応する仮想記憶空間の領域のデータ転送
方向(readまたはwrite)と、データ転送する
仮想アドレスの開始位置とサイズが相手計算機から伝え
られる。
【0165】readの場合は、相手計算機へ仮想記憶
空間からデータブロックを読みとり、それをセルにいれ
て送信する。writeの場合は、転送要求セルを受信
し、そのセルで指示されている、開始アドレスからサイ
ズ分の大きさの領域に、以後送られてくるセル内のデー
タを該当領域に書き込む。
【0166】<タイプ4>次に、図6のタイプ4につい
て説明する。このタイプ4では、クライアント側の実記
憶空間の領域とサーバ側の実記憶空間の領域の間を共有
化する。そして、タイプ3と同様に共有化開始処理を完
了したときにまたは共有化した領域をプログラム処理実
体がアクセスする以前に、データ転送を行なっておくも
のである。
【0167】図16に、タイプ4の概要を表す模式図を
示す。タイプ3におけるサーバ側の共有化対象がタイプ
2におけるサーバ側と同様に実メモリに変わったもので
ある。クライアント側の処理はタイプ3と同様であり、
サーバ側の処理はタイプ2と同様である。
【0168】<タイプ4の応用>次に、上記のタイプ4
に加え、クライアント側とサーバ側で共有領域のデータ
転送の同期を取る実施の形態を説明する。
【0169】図17と図18には、その一例として、サ
ーバ側からクライアント側へ動画像データを転送し、ク
ライアント側で動画像を表示する場合を示している。図
中、78はハードディスクである。
【0170】共有領域の大きさは、仮想記憶空間の大き
さより実メモリの大きさが大きい。実メモリを複数の領
域に分割して管理する。この場合、クライアント側とサ
ーバ側でそれぞれの仮想記憶空間に複数の実メモリ領域
を繰り返し割当てる。
【0171】この実施の形態では、割り当てられた実メ
モリの大きさが仮想記憶空間の大きさの2倍であるとす
る。したがって、実メモリを2つの領域に分割して利用
するものとする。
【0172】クライアント側では、画像表示プログラム
が動作し、サーバ側では、画像データ読み込みプログラ
ムが動作している。クライアント側では、仮想記憶空間
にマッピングされている実メモリ(ページフレームA)
には、既に1つの動画データが入っているので、それを
読みだして表示する。
【0173】その間に、クライアント側では、仮想記憶
空間に張られていない別の実メモリ(ページフレーム
B)が仮想回線を介してサーバ側からデータ転送され
る。転送が終わり、かつ、画像表示プログラムによっ
て、現在仮想記憶空間にぱっピングしている実メモリか
らの画像表示が終わると、画像表示プログラムは、ネッ
トワークページャ23に対して、同一仮想記憶空間に割
り当てられる実メモリの切り替え要求を出す(システム
コールなどで指示する)。
【0174】すると、ネットワークページャ23では、
サーバからのデータ転送が完了していると、その別の実
メモリ(ページフレームB)を、現在張られている実メ
モリ(ページフレームA)に代わって張るように仮想記
憶空間管理部22へ依頼する。
【0175】以上の処理が終わると、クライアント側の
画像表示プログラムでは、新しい画像データの入った実
メモリを同じ仮想記憶空間の領域から読みだして表示す
ることができる。
【0176】クライアント側のネットワークページャ2
3では、実メモリに余裕がある間サーバ側にデータ転送
を要求する。そして、送られてきたデータを空き実メモ
リ(ページフレームA)に転送する。
【0177】サーバ側のネットワークページャ23も、
クライアント側と同様に動作する。つまり、空の実メモ
リ(ページフレームC)が仮想記憶空間に張られてい
る。その仮想記憶空間に対して、サーバ側の画像読み込
みプログラムは、ディスクに蓄えられている画像データ
を順次読み込み、(必要に応じて画像データの加工を行
いながら)その領域へ書き込む。領域分の書き込みが終
了したら、ネットワークページャ23に対して、同一仮
想記憶空間に割り当てられる実メモリの切り替え要求を
出す(システムコールなどで指示する)。
【0178】すると、ネットワークページャ23では、
クライアントへのデータ転送が完了し、かつ、空いた実
メモリ(ページフレームD)が存在していると、現在張
られている実メモリ(ページフレームC)に代わって張
るように仮想記憶空間管理部22へ依頼する。
【0179】この処理が終わると、サーバ側の画像読み
だしプログラムでは、新しい画像データをディスクから
読みだし、同じ仮想記憶空間の領域に書き込む。サーバ
側のネットワークページャ23では、データ転送が終わ
っていない実メモリ(ページフレームC)が存在する限
り、クライアントへデータ転送を行い、空の実メモリを
補充する。
【0180】このようにすれば、計算機間で高速にデー
タを転送することができる。 《ネームサーバについて》ところで、上記した実施の形
態における仮想回線の設定は、共有領域どうしの専用の
仮想回線が設定されていない場合は、前記仮想回線を設
定するように呼設定セルを送信し、仮想回線が設定され
た後、前記仮想回線を使用するのに必要なVPI/VC
I値といった情報を、ページテーブル・エントリに書き
込むものであった。
【0181】しかし、前記資源を所有する計算機の所在
がユーザやプログラムから伝わらず、わからない場合
(例えば、分散ファイルシステムにおけるファイル名を
ユーザが指定して共有領域とした場合;この場合、ファ
イル名は位置透過性であり、実際のファイル資源を所有
する計算機の所在はわからない)は、前記所在を知るた
めに、分散システム全域についてデータ・ブロック等の
資源の所在を管理しているネームサーバ5等に問い合わ
せ、その結果知り得た計算機に対し、必要に応じてコネ
クションを設定し、前記コネクションを使用するのに必
要なVPI/VCI値といった情報を、ページテーブル
・エントリに書き込んでも良い。
【0182】また、予め、自計算機が所有しない資源に
関するページテーブル・エントリには、直接ネームサー
バ5との接続のために仮想回線の識別子をページテーブ
ル16にデフォルト値として記入しておいても良い。こ
の場合、資源を所有する計算機(オーナーを計算機)を
知る必要が生じた際に、図19のフローチャートに示す
ように、オーナー計算機を知るために、該当するページ
テーブル・エントリに書き込まれているVPI/VCI
値等の仮想回線識別子を用いて、ネームサーバに問い合
わせを行う(ステップS31)。ネームサーバ5から、
オーナー計算機や共有化領域の範囲など領域の共有化処
理に必要な情報が返る(ステップS32)。この情報を
利用して、オーナー計算機との間に共有領域の設定をす
るように、ネットワーク共有メモリ管理部21に要求す
る(ステップS33)。
【0183】以降、共有領域の設定処理は同様で、ネッ
トワーク共有メモリ管理部21では、上記オーナー計算
機の共有領域に対する仮想回線を設定し、その仮想回線
のVPI/VCI等の識別子を、共有化範囲の該当する
ページテーブル・エントリに書き込む。その他、ネット
ワークページャの初期化作業も同様に行なう。
【0184】この場合、データ転送時のページャ処理を
若干変更する。すなわち、クライアントでページフォル
トが発生し、ページテーブル・エントリの「存在ビッ
ト」が0、かつ、「処理中ビット」が0、かつ、「ハー
ドディスクビット」が0、かつ、「リモートビット」が
1の場合(図12,13のステップS1,S4,S7,
S13)、仮想フレームに対応するページテーブル・エ
ントリの「フレーム番号」の欄には、その共有領域のデ
ータ転送を行なう仮想回線の識別子が書かれているので
はなく、その共有領域の所在を管理するネーム・サーバ
5等への通信に必要なVPI/VCI値といった情報
(この値は、データ転送用のVPI/VCI値とは異な
る特別な値であるので、それと判明する)が書き込まれ
ているので、前記VPI/VCI値といった情報を用い
て、前記共有領域のオーナー計算機や共有領域の範囲な
どを問い合わせるセルを作成/送信し、前記ネームサー
バ5等からの返答を待つ。
【0185】前記ネーム・サーバ5からの返答を受信し
た場合、前記返答中に書かれている前記資源を所有する
計算機への通信に必要な情報から、共有領域の設定処理
を行う(ステップS31〜S33)。
【0186】それ以降の処理は、図12,13のステッ
プS14からの処理と同様である。本発明は、上述した
実施の形態に限定されるものではなく、その技術的範囲
において種々変形して実施することができる。
【0187】
【発明の効果】本発明によれば、複数の計算機をネット
ワーク(例えばATMネットワーク)を介して結合した
分散システムにおいて、仮想記憶空間または実記憶空間
の全部または一部を共有化し、共有領域ごとに専用に設
定しておいた仮想回線を利用して直接、高速なデータ転
送を行なうことができるので、計算機側には複雑で効率
の悪い通信プロトコル処理が必要とせず、効率的な記憶
空間の共有が実現できる。つまり、その共有空間に対し
て参照や書き込み(read/write)が発生して
も、その都度、呼設定不要で、直にデータ転送ができ
る。
【0188】また、呼設定、フロー制御、ふくそう制
御、エラー検出、QoS管理などデータ転送中の制御は
ネットワーク側(例えばATM交換機側)で対応してく
れるので、計算機側はその機能に不足する部分(例えば
データエラーにおける訂正や再送)だけ管理すればいい
ので、計算機側の処理が大幅に軽減する。
【0189】さらに、ATMネットワークのように高速
なネットワークを利用することによって、ある程度の距
離が離れた計算機どうしを結んで分散システムにできる
ので、構成の柔軟性が良い。
【0190】また、本発明によれば、他の計算機に属す
る資源にアクセスする場合、仮想アドレスを物理アドレ
スに変換する際に用いるページテーブルを参照するだけ
で、他の計算機へのコネクションを使用するために必要
な仮想回線識別子(VPI/VCI値等)を得ることが
できる。
【0191】このため、他の計算機に属する資源のう
ち、必要な大きさのデータブロックの転送を要求する場
合、従来のように種々のテーブルを参照することなく、
ページテーブルから得られた仮想回線識別子を用いてデ
ータ転送の要求セルを作成することができ、効率良く要
求セルを作成することができる。
【0192】また、本発明によれば、前記ページテーブ
ルの前記仮想回線識別子を記入する項目にデフォルト値
として、データとこれを所有する計算機(オーナー計算
機)との対応を管理するネームサーバに接続するのに用
いる仮想回線識別子を記入しておけば、データを所有す
る計算機(オーナー計算機)を知る必要が生じた際に、
該当するページテーブル・エントリに書き込まれている
仮想回線識別子を用いて、速やかにネームサーバに問い
合わせを行なうことができる。
【0193】また、本発明によれば、クライアント側の
実記憶空間の全部または一部の領域と、サーバ計算機の
仮想記憶空間または実記憶空間の全部または一部の領域
とを共有化する場合、クライアント側の共有領域には、
すでに実記憶空間(実メモリ)が割り当てられているの
で、ページフォルトは発生しない。この場合、クライア
ント側での実際のアクセスが発生した時にデータ転送す
るのではなく、仮想回線の設定時に、引き続いてデータ
転送を行う(すなわちクライアント側のアクセスとは無
関係である。) したがって、ユーザプログラムやスレッド等の処理実体
が仮想記憶空間にアクセスしたときには、既に実記憶空
間(実メモリ)が割り当てられているので、ページフォ
ルトが発生せず、ページフォルト処理が不要になり、即
座にデータをアクセスできる。したがって、例えば、リ
アルタイム処理等の高速なユーザプログラムの実行が可
能となる。
【0194】また、本発明によれば、クライアント計算
機の仮想記憶空間の一部の領域と、サーバ計算機の仮想
記憶空間の一部の領域とを共有化するとともに、共有す
る仮想記憶空間の1つの領域には複数の実メモリの領域
を割当て、仮想記憶空間の領域と現在対応していない
(マッピングしていない)実記憶空間間で専用の仮想回
線を用いてデータ転送を行うとともに、データ転送の完
了した実メモリの領域を仮想記憶空間の領域に対応させ
る(マッピングする)ように、実メモリの領域を順次切
り替えるので、計算機間で仮想記憶空間の領域の大きさ
単位に連続して高速にデータを転送することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る分散システム全体を
示す基本構成図
【図2】この実施の形態に係る計算機内部の要部構成を
示す基本構成図
【図3】この実施の形態に係る計算機内部の物理構成の
一例を示す物理構成図
【図4】この実施の形態に係るOSの要部構成を示す図
【図5】この実施の形態に係るページテーブルの一例を
示す図
【図6】記憶空間の共有方法のバリエーションを表す図
【図7】クライアント側の仮想記憶空間の領域とサーバ
側の仮想記憶空間の領域を共有するタイプ1の概要を表
す模式図
【図8】共有領域の対応管理と仮想回線の設定の手順を
示す図
【図9】共有領域設定時のクライアント側の動作を示す
フローチャート
【図10】共有領域設定時のサーバ側の動作を示すフロ
ーチャート
【図11】共有領域におけるデータの転送の手順を示す
【図12】仮想記憶空間にアクセスしたときの動作を示
すフローチャート
【図13】仮想記憶空間にアクセスしたときの動作を示
すフローチャート
【図14】クライアント側の仮想記憶空間の領域とサー
バ側の物理空間の領域を共有するタイプ2の概要を表す
模式図
【図15】クライアント側の物理空間の領域とサーバ側
の仮想記憶空間の領域を共有するタイプ3の概要を表す
模式図
【図16】クライアント側の物理空間の領域とサーバ側
の物理空間の領域を共有するタイプ4の概要を表す模式
【図17】タイプ4に加えクライアント側とサーバ側で
共有領域のデータ転送の同期を取る場合を説明するため
の図
【図18】タイプ4に加えクライアント側とサーバ側で
共有領域のデータ転送の同期を取る場合を説明するため
の図
【図19】資源を所有する計算機が分からない場合の処
理の流れを示すフローチャート
【符号の説明】
1…計算機、2…ATMネットワーク、3…ATM交換
機、4…呼設定サーバ、5…ネームサーバ、11…ネッ
トワークインタフェース、12…ネットワークインタフ
ェース制御部、13…仮想アドレス変換部、14…実メ
モリ、15…プロセッサ、16…ページテーブル、17
…システムバス、18…ハードディスク制御部、19…
ハードディスク、21…ネットワーク共有メモリ管理
部、22…仮想記憶空間管理部、23…ネットワークペ
ージャ、24…ネットワーク管理部、151…バスイン
タフェース部、152…エグゼキューション部、153
…TLB、221…実メモリ管理部、222…仮想メモ
リ管理部、241…呼設定部、242…仮想回線管理部

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】複数の計算機をネットワークにより提供さ
    れる仮想回線で結合してなる分散計算機システムにおけ
    る記憶空間管理方法であって、 一方の計算機が管理する仮想記憶空間または実記憶空間
    の全部または一部の領域と、他方の計算機が管理する仮
    想記憶空間または実記憶空間の全部または一部の領域と
    を共有化し、 共有化した前記領域間ごとに前記仮想回線を専用に設定
    しておき、 共有化した一方の計算機の前記領域と他方の計算機の前
    記領域との間でデータ転送を行なうにあたっては、当該
    共有化した領域間に専用に設定しておいた前記仮想回線
    を用いることを特徴とする記憶空間管理方法。
  2. 【請求項2】複数の計算機をネットワークにより提供さ
    れる仮想回線で結合してなる分散計算機システムにおけ
    る計算機であって、 仮想記憶空間の仮想アドレスと対応する実記憶空間の物
    理アドレスまたはデータを所有する計算機にアクセスす
    るための情報とを組にして登録したページテーブルを用
    いて仮想記憶空間を管理する手段と、 仮想記憶空間の全部または一部の領域と、他の計算機が
    管理する仮想記憶空間または実記憶空間の全部または一
    部の領域とを共有化するため、共有化する領域間ごとに
    前記仮想回線を専用に設定することを指示する手段と、 前記仮想回線を専用に設定した前記領域に対応する前記
    ページテーブルのエントリに、前記データを所有する計
    算機にアクセスするための情報として、前記仮想回線の
    仮想回線識別子を登録する手段と、 共有化した前記領域間でデータ転送を行なうに先だって
    前記ページテーブルの該当するエントリに登録されてい
    る前記仮想回線識別子を参照し、得られた仮想回線識別
    子を指定し、当該共有化した領域間に専用に設定された
    前記仮想回線を用いてデータ転送を行なう手段とを備え
    たことを特徴とする計算機。
  3. 【請求項3】前記ページテーブルの前記仮想回線識別子
    を記入する項目には、デフォルト値として、データとこ
    れを所有する計算機との対応を管理するネームサーバに
    接続するのに用いる仮想回線識別子を記入しておくこと
    を特徴とする請求項2に記載の計算機。
  4. 【請求項4】複数の計算機をネットワークにより提供さ
    れる仮想回線で結合してなる分散計算機システムにおけ
    る計算機であって、 実記憶空間の全部または一部の領域と、他の計算機が管
    理する仮想記憶空間または実記憶空間の全部または一部
    の領域とを共有化するため、共有化する領域間ごとに前
    記仮想回線を専用に設定する手段と、 前記領域を共有化したときにまたは共有化した前記領域
    を処理実体がアクセスする前に、該領域間に専用に設定
    した前記仮想回線を用いてデータ転送を行なう手段とを
    備えたことを特徴とする計算機。
  5. 【請求項5】複数の計算機をネットワークにより提供さ
    れる仮想回線で結合してなる分散計算機システムにおい
    て異なる計算機間で共有する仮想記憶空間の領域間でデ
    ータを転送するためのデータ転送方法であって、 一方の計算機が管理する仮想記憶空間の一部の領域と、
    他方の計算機が管理する仮想記憶空間の一部の領域とを
    共有化するとともに、共有する仮想記憶空間の1つの領
    域には複数の実メモリの領域を割当て、 共有化した前記仮想記憶空間の領域間ごとに前記仮想回
    線を専用に設定し、 前記仮想記憶空間の領域には、実際に対応させる実メモ
    リの領域を順次切り替え、 前記仮想記憶空間の領域と現在対応していない実メモリ
    の領域間で、前記仮想回線を用いてデータ転送を行い、 データ転送の完了した実メモリの領域を、前記仮想記憶
    空間の領域に対応させることを特徴とするデータ転送方
    法。
JP17079695A 1995-07-06 1995-07-06 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 Expired - Fee Related JP3512910B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP17079695A JP3512910B2 (ja) 1995-07-06 1995-07-06 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US08/676,970 US6081833A (en) 1995-07-06 1996-07-08 Memory space management method, data transfer method, and computer device for distributed computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17079695A JP3512910B2 (ja) 1995-07-06 1995-07-06 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法

Publications (2)

Publication Number Publication Date
JPH0922398A true JPH0922398A (ja) 1997-01-21
JP3512910B2 JP3512910B2 (ja) 2004-03-31

Family

ID=15911519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17079695A Expired - Fee Related JP3512910B2 (ja) 1995-07-06 1995-07-06 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法

Country Status (2)

Country Link
US (1) US6081833A (ja)
JP (1) JP3512910B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9742874B2 (en) 2011-10-18 2017-08-22 Fujitsu Limited Control device, and method for transfer control

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224745B2 (ja) * 1996-07-09 2001-11-05 株式会社日立製作所 高信頼化ネットワークシステム及びサーバ切り替え方法
US6591303B1 (en) * 1997-03-07 2003-07-08 Sun Microsystems, Inc. Method and apparatus for parallel trunking of interfaces to increase transfer bandwidth
US6678769B1 (en) * 1998-02-24 2004-01-13 Canon Kabushiki Kaisha Control apparatus and method for managing a logical connection between source and destination nodes
JPH11261566A (ja) * 1998-03-09 1999-09-24 Fujitsu Ltd 画像伝送装置
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
AU7685500A (en) * 1999-10-15 2001-04-23 Omron Corporation Network system, control method, control apparatus, and multiprocessor
US6826613B1 (en) * 2000-03-15 2004-11-30 3Com Corporation Virtually addressing storage devices through a switch
JP2002189607A (ja) * 2000-12-22 2002-07-05 Nec Corp メモリ管理方法及び情報処理装置
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US20030191761A1 (en) * 2002-04-04 2003-10-09 International Business Machines Corporation Methods and apparatus for remote file access
WO2003102919A1 (en) * 2002-05-31 2003-12-11 Onkyo Corporation Network type content reproduction system
US7111303B2 (en) * 2002-07-16 2006-09-19 International Business Machines Corporation Virtual machine operating system LAN
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
AU2003291014A1 (en) 2002-11-14 2004-06-15 Isilon Systems, Inc. Systems and methods for restriping files in a distributed file system
GB0306536D0 (en) * 2003-03-21 2003-04-23 Marconi Comm Ltd "Paths in telecommunications networks"
US7251815B2 (en) * 2003-04-29 2007-07-31 International Business Machines Corporation Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
JP4012517B2 (ja) 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
CA2572616A1 (en) * 2004-07-07 2006-02-09 Yottayotta, Inc. Systems and methods for providing distributed cache coherence
GB2418326B (en) * 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US8051425B2 (en) * 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
US8238350B2 (en) * 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US20060230118A1 (en) * 2005-04-12 2006-10-12 Digi Chain Information Co., Ltd. Share memory service system and method of web service oriented applications
US20070005933A1 (en) * 2005-06-29 2007-01-04 Kopec Brian J Preventing multiple translation lookaside buffer accesses for a same page in memory
US7917474B2 (en) * 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7551572B2 (en) 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7797283B2 (en) * 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US8499277B2 (en) * 2006-03-29 2013-07-30 Mitsubishi Electric Corporation Programming support apparatus, programming support method, program for causing computer to implement the method, and recording medium containing the program
US7774645B1 (en) * 2006-03-29 2010-08-10 Emc Corporation Techniques for mirroring data within a shared virtual memory system
US7680987B1 (en) * 2006-03-29 2010-03-16 Emc Corporation Sub-page-granular cache coherency using shared virtual memory mechanism
US7756898B2 (en) * 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US20080005528A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space
US20080005728A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
US20080127220A1 (en) * 2006-06-30 2008-05-29 Robert Paul Morris Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application
US20080005727A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity
US8539056B2 (en) * 2006-08-02 2013-09-17 Emc Corporation Systems and methods for configuring multiple network interfaces
US7680836B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7676691B2 (en) * 2006-08-18 2010-03-09 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7822932B2 (en) * 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7899800B2 (en) 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7590652B2 (en) 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7680842B2 (en) * 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7953704B2 (en) * 2006-08-18 2011-05-31 Emc Corporation Systems and methods for a snapshot of data
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
US7793069B2 (en) * 2006-12-20 2010-09-07 International Business Machines Corporation Indexing for dynamic address translation
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) * 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) * 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US7779048B2 (en) * 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
US7900015B2 (en) * 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
JP2008276326A (ja) * 2007-04-25 2008-11-13 Hitachi Ltd 記憶制御装置及び記憶制御装置の仮想メモリ制御方法
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US7882068B2 (en) 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US9102962B2 (en) * 2007-10-16 2015-08-11 Shiu Nan Chen Production method for solid cultured active mushroom mycelium and fruit-body metabolites (AMFM) products thereof
US7870345B2 (en) 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
US7984324B2 (en) 2008-03-27 2011-07-19 Emc Corporation Systems and methods for managing stalled storage devices
US7953709B2 (en) 2008-03-27 2011-05-31 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7949636B2 (en) * 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
JP2010211421A (ja) * 2009-03-09 2010-09-24 Canon Inc 管理装置、システム、制御方法、プログラム及び記録媒体
US8374480B2 (en) * 2009-11-24 2013-02-12 Aten International Co., Ltd. Method and apparatus for video image data recording and playback
KR20110095050A (ko) * 2010-02-18 2011-08-24 삼성전자주식회사 공유 라이브러리 디버깅 장치
US8805952B2 (en) * 2012-01-04 2014-08-12 International Business Machines Corporation Administering globally accessible memory space in a distributed computing system
WO2013186889A1 (ja) * 2012-06-14 2013-12-19 三菱電機株式会社 I/oデバイス、プログラマブルロジックコントローラ及び演算方法
KR20140035082A (ko) * 2012-09-13 2014-03-21 삼성전자주식회사 메모리 관리방법
US10327017B2 (en) * 2013-02-18 2019-06-18 Texas Instruments Incorporated Systems and methods for video processing
JP2015143945A (ja) * 2014-01-31 2015-08-06 富士通株式会社 ストレージ制御装置、ストレージ装置および制御プログラム
KR20170019762A (ko) * 2015-08-12 2017-02-22 삼성전자주식회사 파일 시스템을 제어하는 전자 장치 및 그 동작 방법
CN112565474B (zh) * 2019-09-25 2024-02-06 无锡江南计算技术研究所 面向分布式共享spm的批量数据传输方法
US11947801B2 (en) * 2022-07-29 2024-04-02 Intel Corporation In-place memory copy during remote data transfer in heterogeneous compute environment
WO2024073864A1 (en) * 2022-10-02 2024-04-11 Intel Corporation Distributed address translation services

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111389A (en) * 1987-10-29 1992-05-05 International Business Machines Corporation Aperiodic mapping system using power-of-two stride access to interleaved devices
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9742874B2 (en) 2011-10-18 2017-08-22 Fujitsu Limited Control device, and method for transfer control

Also Published As

Publication number Publication date
US6081833A (en) 2000-06-27
JP3512910B2 (ja) 2004-03-31

Similar Documents

Publication Publication Date Title
JP3512910B2 (ja) 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US7222150B1 (en) Network server card and method for handling requests received via a network interface
Welch et al. Pseudo devices: User-level extensions to the Sprite file system
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
US7577816B2 (en) Remote translation mechanism for a multinode system
EP0889623B1 (en) System and method for efficient remote disk I/O
JPS6118053A (ja) デ−タ処理システム
JP2945757B2 (ja) 多重装置オペレーティングシステムのアーキテクチャ
EP0889622B1 (en) Apparatus and method for remote buffer allocation and management for message passing between network nodes
US20060230148A1 (en) TCP forwarding of client requests of high-level file and storage access protocols in a network file server system
JPH1185710A (ja) サーバ装置およびファイル管理方法
JP2004506980A (ja) コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
US20040268017A1 (en) Virtual write buffers for accelerated memory and storage access
JPH0816536A (ja) マルチプロセッサシステム
JPH0926929A (ja) 効率のよいデータ転送メカニズムに関する方法及び装置
JP4208506B2 (ja) 高性能記憶装置アクセス環境
US8041761B1 (en) Virtual filer and IP space based IT configuration transitioning framework
US6963905B1 (en) System and method including a communication interface for transferring information between at least two processes
JP2000076152A (ja) 分散ファイルシステムならびに同システムにおけるファイル共有方法及び同方法がプログラムされ記録される記録媒体
JPH06309251A (ja) 高速の通信アダプタを実装した計算機
CN116866429A (zh) 一种数据访问方法及相关装置
JPH08307451A (ja) データ伝送システム及び方法
JP2664827B2 (ja) 実時間情報転送制御方法
EP1396790A2 (en) Remote translation mechanism of a virtual address from a source a node in a multi-node system
JP3877186B2 (ja) 並列計算機

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080116

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090116

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100116

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110116

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140116

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees