JPH09319653A - 情報処理装置、情報処理システム及びその制御方法 - Google Patents

情報処理装置、情報処理システム及びその制御方法

Info

Publication number
JPH09319653A
JPH09319653A JP8138635A JP13863596A JPH09319653A JP H09319653 A JPH09319653 A JP H09319653A JP 8138635 A JP8138635 A JP 8138635A JP 13863596 A JP13863596 A JP 13863596A JP H09319653 A JPH09319653 A JP H09319653A
Authority
JP
Japan
Prior art keywords
memory area
information processing
distributed
physical memory
task
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.)
Withdrawn
Application number
JP8138635A
Other languages
English (en)
Inventor
Shigeo Suzuki
茂夫 鈴木
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP8138635A priority Critical patent/JPH09319653A/ja
Publication of JPH09319653A publication Critical patent/JPH09319653A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】ハードウエア分散共有メモリ機構を利用した分
散タスク/スレッド機構を実現し、個々の計算機の独立
性を保ちつつ、かつハード分散共有メモリ機構を活かし
て効率のよい分散並列処理を実現する。 【解決手段】計算機201、301、401はハードウエア分散
共有メモリ機構により物理メモリを相互に共有可能に接
続されている。例えば、分散タスク21の生成において、
分散タスク管理サーバ部253は、カーネル部251、351に
要求を発行し、タスク11及びタスク12を生成する。そし
て、例えば、計算機201によるスレッド31、32の生成、
実行において、使用する仮想メモリ領域に対応する物理
メモリ領域を、計算機201、301、401のいずれかの物理
メモリより確保する。そして、確保された物理メモリ領
域と当該仮想メモリ領域とを対応づけ、この物理メモリ
領域をハードウエア分散共有メモリ機構を用いてアクセ
スする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウエア分散
メモリ機構により複数台の情報処理装置が接続され、そ
れぞれのメモリを互いに直接利用することが可能な情報
処理装置、情報処理システム及びその制御方法に関する
ものである。
【0002】
【従来の技術】従来、ワークステーションのような計算
機の高性能化、そしてネットワークの高速化に伴い、ネ
ットワークでつながれた複数台のワークステーション
を、より密な形態で結合しクラスタ化して(ワークステ
ーションクラスタ)、高度な並列処理に利用しようとす
る方式が提案されてきた。出願特許(File No.137922,1
37945,137949)などでは、仮想記憶オペレーティングシ
ステム(OS)を対象として、ネットワークでつながれ
た複数台の計算機にまたがるタスク(分散タスク)を生
成可能とし、そのタスク内部で、複数台の計算機上のプ
ロセッサを活用して複数のスレッドを並列実行させる方
式(分散タスク/スレッドモデル)を提案した。
【0003】タスクは、通常,プログラムテキスト、デ
ータなどのプログラム実行資源の割当ての単位である。
そして、スレッドはそのタスク内部に生成、実行される
もので、プログラム実行の単位であり、プロセッサ資源
の割当て単位となる。つまり、通常のタスク/スレッド
モデルは、マルチプロセッサ構成の計算機においてプロ
セッサ資源を有効利用可能とするモデルとなる。また、
分散タスク/スレッドモデルはこれを拡張したものであ
り、従来一つの計算機内部で閉じて存在していたタスク
を複数の計算機にまたがって存在可能としたものであ
る。従って、この分散タスク/スレッドモデルは、タス
クの内部で動作するスレッドが、複数の計算機上の複数
のプロセッサを有効活用して動作できるようになるモデ
ルである。
【0004】この分散タスク/スレッドモデルの実現方
式を簡単に説明すると次のようになる。
【0005】まず、ソフトウェアによる分散共有メモリ
機構(ソフト分散共有メモリ)を実現する。これは、分
散共有メモリ管理を行なうソフトウェアが、メモリをペ
ージ単位で管理し、キャッシュシステムのようにそれぞ
れの計算機上にページのコピーを保持する。そして、そ
れ等のコピーされたページへの書込みなどが発生する
と、キャッシュシステムと同様に、それ等のコンシステ
ンシ保持動作を行なうことで分散共有メモリ機構を実現
する。このコンシステンシ保持処理の際、従来のネット
ワーク通信で用いられるパケット通信方式を利用して、
例えば、ページの内容を計算機間で転送することでコピ
ーページを更新する、といったことを行なう。
【0006】そして、このソフト分散共有メモリ機構を
使って、複数台の計算機上に生成した複数のタスクのメ
モリ空間(プログラムテキストやデータ空間)を共有
し、それ等のタスクグループを一つの大きなタスク、分
散タスクとして扱えるように管理し、そのタスク内部に
複数のスレッドを生成、並列実行可能とすることで分散
タスク/スレッドモデルを実現する。
【0007】一方、近年光ケーブルなどのような信頼性
もあり計算機の内部バスにある程度近い帯域幅を持つ通
信媒体の登場で物理メモリを直接他の計算機に見せるよ
うな構成も可能となりつつあり、各計算機に配置された
メモリを(またはその一部を)全体で単一のメモリ空間
として、どの計算機からでも直接アクセス可能にするこ
とができるようなシステムが提案されてきている。つま
り、高速高信頼性の通信媒体で結ばれた複数台の計算機
が、システム全体でNUMA型(Non Uniform Memory Ac
cess)型のマルチプロセッサシステムのような形態にな
るモデルである。このようなハードウェアによって、複
数の計算機間で分散共有メモリを実現する機構を、前述
のソフトウェアによる分散共有メモリ機構と区別して、
ハードウェア分散共有メモリ機構と呼ぶことにする。
【0008】
【発明が解決しようとする課題】しかしながら、上述の
ようなハードウエア分散共有メモリ機構を持つ複数台の
計算機の上に、従来のワークステーション用などのOS
をそのまま実装しようとすると、(1)複数台の計算機
全体で一つの計算機として扱い、ただ一つのOSがどこ
かの計算機上に、または複数の計算機上に分割して存在
し、その一つのOSが全体を管理する方式、または、
(2)個々の計算機上に従来通り一つ一つOSが存在
し、基本的にはそれぞれのOSがそれぞれの計算機のみ
を管理し、必要な際に通信回線を介して通信する方式、
のいずれかになってしまう。
【0009】(1)の方式の場合、システム全体が一つ
の並列計算機のように扱われるため、各計算機上のプロ
セッサを有効活用した並列処理が可能となる反面、シス
テム動作中に任意の計算機を自由にON/OFF、或は
システムに対して付加/削除することが難しいなど、個
々の計算機の独立性が失われ、分散処理には向かない。
また、その反対に(2)の方式の場合には、個々の計算
機に独立性があり、分散処理には向いているものの、従
来のOSそのままでは、ハード分散共有メモリ機構を活
用することができず、効率のよい並列処理が実現できな
いという問題がある。
【0010】また、前述のパケット通信を利用したソフ
ト分散共有メモリによる分散タスク/スレッド機構を、
そのままハード分散共有メモリ機構を持つ複数台の計算
機上に実装することも考えられるが、他計算機のメモリ
はコピーページを介してアクセスすることになり、直接
的な他計算機のメモリへのアクセスが可能なハードウエ
ア分散共有メモリ機構を活用することはできない。
【0011】本発明は、上記の問題点に鑑みてなされた
ものであり、ハードウエア分散共有メモリ機構を利用し
た分散タスク/スレッド機構を実現し、個々の計算機の
独立性を保ちつつ、かつハード分散共有メモリ機構を活
かして効率のよい分散並列処理を実現する情報処理装
置、情報処理システム及びその制御方法を提供すること
を目的とする。
【0012】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の情報処理装置は以下の構成を備える。即
ち、ハードウエア分散共有メモリ機構により複数の外部
情報処理装置と物理メモリを相互に共有可能に接続され
た情報処理装置であって、当該情報処理装置及び前記複
数の外部情報処理装置に分散配置された複数のタスクで
構成される分散タスクを生成する生成手段と、前記分散
タスクの実行のために使用する仮想メモリ領域に対応す
る物理メモリ領域を、当該情報処理装置及び前記複数の
外部情報処理装置の物理メモリより確保する確保手段
と、前記確保手段で確保された物理メモリ領域と前記仮
想メモリ領域との対応を管理する管理手段と、前記分散
タスクの各タスクの実行において発生する仮想メモリ領
域の使用に応じて、前記管理手段によって対応付けられ
た物理メモリ領域を前記ハードウエア分散共有メモリ機
構を用いてアクセスするアクセス手段とを備える。
【0013】また、上記の目的を達成するための本発明
の情報処理システムは以下の構成を備える。即ち、ハー
ドウエア分散共有メモリ機構により複数の情報処理装置
が物理メモリを相互に共有可能に接続された情報処理シ
ステムであって、前記複数の情報処理装置に分散配置さ
れた複数のタスクで構成される分散タスクを生成する生
成手段と、前記複数の情報処理装置の夫々において、前
記分散タスクの実行のために使用する仮想メモリ領域に
対応する物理メモリ領域を、該複数の情報処理装置の備
える物理メモリより確保する確保手段と、前記複数の情
報処理装置の夫々において、前記確保手段で確保された
物理メモリ領域と前記仮想メモリ領域との対応を管理す
る管理手段と、前記複数の情報処理装置の夫々におい
て、前記分散タスクの各タスクの実行において発生する
仮想メモリ領域の使用に応じて、前記管理手段によって
対応付けられた物理メモリ領域を前記ハードウエア分散
共有メモリ機構を用いてアクセスするアクセス手段とを
備える。
【0014】また、上記の目的を達成するための本発明
の情報処理システムにおける制御方法はハードウエア分
散共有メモリ機構により複数の情報処理装置が物理メモ
リを相互に共有可能に接続された情報処理システムにお
ける制御方法であって、当該情報処理装置及び前記複数
の外部情報処理装置に分散配置された複数のタスクで構
成される分散タスクを生成する生成工程と、前記分散タ
スクの実行のために使用する仮想メモリ領域に対応する
物理メモリ領域を、当該情報処理装置及び前記複数の外
部情報処理装置の物理メモリより確保する確保工程と、
前記確保工程で確保された物理メモリ領域と前記仮想メ
モリ領域とを対応づける管理する管理工程と、前記分散
タスクの各タスクの実行において発生する仮想メモリ領
域の使用に応じて、前記管理工程によって対応付けられ
た物理メモリ領域を前記ハードウエア分散共有メモリ機
構を用いてアクセスするアクセス工程とを備える。
【0015】
【発明の実施の形態】以下、添付の図面を参照して、本
発明の好適な実施形態を説明する。
【0016】[第1の実施形態]図1は第1の実施形態
による計算機システムの構成を説明するブロック図であ
る。図において、101は光ネットワークなどの高速な
通信回線、201,301,401は通信回線101で
結ばれた複数台の計算機である。202,203,30
2,303,304,402,403は、計算機20
1,301,401に各々1つ以上備えられたMMU
(メモリ管理ユニット)内蔵型のプロセッサ(以下、単
にプロセッサ或はCPUという)である。210,31
0は計算機201,301に備えられたユーザインター
フェイスとしてのディスプレイ及びキーボードである。
220,420は、夫々計算機201,401に備えら
れたハードディスク(HD)装置などの2次記憶装置で
ある。
【0017】ディスプレイ及びキーボード210,31
0や2次記憶装置220,420は計算機に必ずしも装
備されていなくても構わない。例えばディスプレイ及び
キーボードが装備されていない計算機401などはサー
バマシンまたはプロセッサプールとして利用されること
になる。
【0018】250,350,450は、計算機20
1,301,401上でそれぞれ独立して動作可能なO
Sである。102は、各計算機上で動作するOS間の非
同期な通信を行なうためのCPU間割込み機構である。
260,360,460は、各計算機上で動作するOS
間での通信を行なうための情報交換領域である。
【0019】230,330,430は全体で一つの単
一なメモリ空間を成す物理メモリ、240,340,4
40は各計算機用のローカルメモリである。ローカルメ
モリは主にOSなどのために必要となるが、物理メモリ
230,330,430の一部で代用可能であるため、
あってもなくても本発明の適用の妨げとはならない。各
プロセッサは物理メモリ230,330,430をアク
セス可能に構成されている。ただし、メモリアクセスを
行なうプロセッサと同一計算機内部の物理メモリへのア
クセスよりも、他の計算機に属する物理メモリへのアク
セスの方が、通信回線101が介在するため遅くなるよ
うな構成が一般的である。
【0020】なお、本実施形態において、OS250,
350,450は、各計算機上のローカルメモリ24
0,340,440上で動作しても、物理メモリ23
0,330,430上で動作しても構わないことは上述
した通りである。
【0021】図2は、第1の実施形態によるOSや分散
タスクの関係を示す概念図である。図1で示したよう
に、各計算機201,301,401は通信回線101
により相互に接続されているものとする。250,35
0,450はそれぞれの計算機上で動作する仮想記憶方
式を採用したOSである。
【0022】251,351,451はカーネル部であ
り、OS内部で、タスクやスレッドの制御、仮想記憶処
理、メモリやプロセッサ資源の管理、I/O資源の管理
など、そしてハード分散共有メモリ機構を利用して、自
計算機上の物理メモリを共有メモリとして登録・削除す
る処理、登録済みの他計算機上の共有メモリを参照する
処理などを行なう。
【0023】252,352,452は分散共有メモリ
管理サーバ部であり、OS内部で、上記の共有メモリの
登録・削除・参照機構を利用して、複数の計算機上に存
在する複数のタスクのメモリ空間(プログラムテキス
ト、データなど)の共有を実現する。
【0024】253,353,453は分散タスク管理
サーバ部であり、OS内部で、分散共有メモリ管理サー
バ部252,352,452によりメモリ空間を共有し
ている複数のタスクを一つの分散タスクとして管理し、
その中で複数のスレッドの生成、並列実行を可能とし
て、複数の計算機上の複数のプロセッサ資源を有効活用
する。
【0025】以上のように、基本的には各計算機ごとに
個々にOSを動作させ、それらが協調動作するような構
成を取ることで、個々の計算機の独立性を保つととも
に、分散処理にも適応する。
【0026】11,12,13,14は分散タスクを構
成するため、分散共有メモリ管理サーバ部252,35
2,452によりメモリ空間を共有し、分散タスク管理
サーバ部253,353,453によりまとめて管理さ
れる通常のタスクである。21,22は、分散共有メモ
リ管理サーバ部252,352,452によりメモリ空
間を共有した複数のタスクが、分散タスク管理サーバ部
253,353,453によりまとめられ、一つの大き
なタスクとして管理される分散タスクである。31,3
2,33,34,35,36,37は、分散タスク管理
サーバ部により管理され、各タスク内部に生成、並列実
行されるスレッドである。
【0027】本実施形態では、カーネル部、分散共有メ
モリ管理サーバ部、分散タスク管理サーバ部がOS内部
に含まれる例を示したが、MachOS(カーネギーメ
ロン大学)のようにマイクロカーネル構成を採用してい
るOSであれば、カーネル部はマイクロカーネルに相当
し、分散共有メモリ管理サーバ部及び分散タスク管理サ
ーバ部は、マイクロカーネル上で生成、実行されるタス
クというマイクロカーネルとは独立したプログラムモジ
ュールの形態で実現されても構わない。このように、本
実施形態では、これらのモジュールの実現形態について
は特に制限を設けるものではない。
【0028】次に、ハード分散共有メモリ機構を利用し
て、複数の計算機上の複数のタスクのメモリ空間をどの
ように共有するか、という点について説明する。
【0029】本実施形態では、デマンドページング方式
の場合について説明する。この方式の場合、タスク生成
時には物理メモリ領域(通常ページと呼ばれる単位で扱
われるため以下では物理ページと呼ぶ)は割り当てられ
ない。このため、プログラム実行単位であるスレッドの
生成及びスレッドの実行が開始され、物理ページが存在
しない仮想アドレスをアクセスするとページフォールト
が発生する。本方式では、このタイミングで始めて、物
理ページを確保し、確保した物理ページに必要な内容
(プログラムテキストまたはデータ、或は全てゼロ)を
書き込み、タスクの仮想アドレス空間にマップして当該
スレッドを続行させていく。
【0030】図3は、主に分散タスク管理サーバ部が主
体で行なう、分散タスク生成、スレッド生成・実行処理
の流れを示すフローチャートである。また、図4は、ペ
ージフォールト発生以降のページフォールト処理によ
り、タスクのメモリ空間を共有する処理の流れを示すフ
ローチャートである。なお、各フローチャートともに、
図2で示した分散タスク21の場合を例として示してあ
る。
【0031】ステップS101では、ユーザからの要求
を受けた分散タスク管理サーバ部が分散タスク21の生
成を開始する。本例では、分散タスク管理サーバ部25
3がユーザからの要求を受けたものとして説明する。続
いて、ステップS102において、分散タスク管理サー
バ部253は、カーネル部351,251に要求して、
分散タスク21を構成するタスク11,12を生成す
る。
【0032】ここで、タスクとは、その内部で複数のス
レッドが実行できるようにするための、共通の実行環境
(プログラムテキストやデータなど)のことをさす。従
って、タスクの生成とは、OSがその環境をユーザから
の指定に従って準備し、またそのタスクを管理する管理
ブロックをOS内部で作り、管理を開始することであ
る。
【0033】一般的に、カーネル部は、自計算機内部に
のみタスクを生成することができる。このタスク生成機
能を持つカーネル部が、他計算機上の分散タスク管理サ
ーバ部からのタスク生成要求を直接受けられる構成にな
っている場合には、例えば分散タスク管理サーバ部25
3がユーザからのタスク生成要求を受けると、タスク1
1についてはカーネル部251に、タスク12について
はカーネル部351にタスクの生成を直接要求して、タ
スク11、12を生成する。
【0034】一方、カーネル部が他計算機上の分散タス
ク管理サーバからのタスク生成要求を直接受けられる構
成になっていない場合には、例えば分散タスク管理サー
バ部253がユーザからの要求を受けた場合において、
タスク11についてはカーネル部251にタスク生成を
直接要求し、タスク12については分散タスク管理サー
バ部353を経由してカーネル部351にタスク生成を
要求してタスク11、12の生成を行うことになる。分
散タスク管理サーバ部353を経由する方法としては、
通常、カーネル部から提供される計算機間のネットワー
ク通信手段を利用して、分散タスク管理サーバ部間で通
信して要求を行なってもよいし、またそれが不可能な場
合には、情報交換領域260,360そしてCPU間割
込み機構102などを利用した非同期通信により、分散
タスク管理サーバ部間で通信して要求を行なってもよ
い。このように各計算機上の分散タスク管理サーバ部は
お互いに協調動作をしながら処理を進めていく。
【0035】次に、ステップS103において、分散タ
スク管理サーバ部はカーネル部に要求して、これら生成
したタスク11,12に対するページフォールト処理
を、分散共有メモリ管理サーバ部が行なうように割り当
てる。即ち、タスク11については、分散共有メモリ管
理サーバ部252が、タスク12については、分散共有
メモリ管理サーバ部352が、ページフォールト処理を
行なうように設定する。これにより、タスク11,12
でページフォールトが発生すると、制御が分散共有メモ
リ管理サーバ部252,352に移ることになる。
【0036】次に、ステップS104において、分散タ
スク管理サーバ部253は、カーネル部に要求して、ス
レッド31,32,33を生成、実行する。タスクの生
成と同様に、スレッド31,32についてはカーネル部
251に、スレッド33についてはカーネル部351に
要求してスレッドの生成及び実行を行う。
【0037】なお、スレッドは、タスクの内部で実際に
プログラムを実行する実行の単位のことで、固有の環境
として、通常、スタック領域とプロセッサのコンテキス
ト情報を有する。従って、スレッドの生成とは、OSが
これらの環境をユーザからの指定に従って準備し、また
そのスレッドを管理する管理ブロックをOS内部でつく
り、管理を開始することである。
【0038】以上で分散タスク21の生成処理の流れが
終了となる。この分散タスク生成の際、分散タスクを構
成するタスクをどの計算機上にいくつ生成するか、どの
タスク内にスレッドをいくつ生成するか、といったこと
は、ユーザが直接指定しても、また分散タスク管理サー
バ部などが自動的に判断しても構わない。本実施形態で
はこれらを特に制限しない。
【0039】次に、分散タスク内部のスレッドの生成及
び実行において、まだ物理ページが存在していない仮想
アドレスをアクセスしたためにページフォールトが発生
し、分散共有メモリ管理サーバ部に制御が移ってから、
実際に共有メモリページが分散タスクのメモリ空間にマ
ップされるまでの処理の流れについて、図4のフローチ
ャートを参照して説明する。
【0040】ステップS201で、分散タスク内部で実
行中のスレッドがページフォールトを発生すると、分散
共有メモリ管理サーバ部によるページフォールト処理が
開始される。例えば、スレッド31,32においてペー
ジフォールトが発生すると分散共有メモリ管理サーバ部
252によるページフォールト処理が開始され、スレッ
ド33でページフォールトが発生すると分散共有メモリ
管理サーバ部352によるページフォールト処理が開始
される。ここではスレッド31でページフォールトが発
生した場合を例に示す。即ち、分散共有メモリ管理サー
バ部252によるページフォールト処理を例に挙げて説
明する。
【0041】ページフォールト処理が開始されると、ス
テップS202で、分散共有メモリ管理サーバ部252
は、フォールトが発生したページに対応する物理ページ
が既にどこかの計算機上で確保され、分散タスクを構成
するいずれかのタスクにマップされているかどうか確認
する。
【0042】ここで、各分散共有メモリ管理サーバ部
は、各分散タスクごとに、使用される仮想メモリ領域に
対応する物理ページとしてすでに確保されている物理ペ
ージと、それを参照するときにその物理ページを特定す
るためのキーを管理する分散タスク管理テーブルを備え
ている。従って、その分散タスク管理テーブルなどを参
照することで、ステップS202における確認は可能と
なる。なお、この分散タスク管理テーブルは、各分散タ
スクごとに存在し、協調動作する複数の分散共有メモリ
管理サーバ部のいずれかの内部に存在し、どの分散共有
メモリ管理サーバ部からでも参照可能とする。
【0043】ここで、キーとは、ある物理ページが
(a)どの計算機上のものなのかをどの計算機からでも
特定することが可能で、(b)メモリ上のどこ(アドレ
ス)にあるのかを特定することが可能なものである。例
えば計算機Aがキーによって他の計算機(計算機B)上
の物理ページを確保する場合には、キーによって特定さ
れた計算機(計算機B)から実際の物理アドレスの通知
を受け、これによりアクセス権を得ることになる。すな
わち、このキーとともにアクセスが要求されると、計算
機Bは当該キーの示す物理アドレスを計算機Aに通知す
ると共に、当該物理ページ計算機Aからも共有アクセス
されるものとして管理するべく設定を行う。また、物理
アドレスの通知を受けた計算機Aでは、そのアドレスを
自OS内部の仮想記憶管理部に設定することにより、自
OSが管理する仮想記憶空間内で当該物理ページをアク
セスすることが可能となる。
【0044】従って、自計算機内の分散共有メモリ管理
サーバ部に参照したい管理テーブルが存在しない場合に
は、それが存在する分散共有メモリ管理サーバ部から、
通常カーネル部から提供される計算機間のネットワーク
通信手段を利用して必要な情報を送ってもらえばよい。
または、情報交換領域260,360そしてCPU間割
込み機構102などを利用した通信によって、必要な情
報を送ってもらっても構わない。
【0045】次にステップS203で、物理ページの有
無を確認した結果、対応する物理ページが存在していな
いとわかった場合には、いずれかの計算機上より物理ペ
ージを確保するためにステップS204に進む。また、
いずれかの計算機上にすでに当該物理ページが存在し、
いずれかのタスクにマップされているとわかった場合に
はステップS221に進む。
【0046】ステップS204に進むと、どの計算機か
ら物理ページを確保するかを決定する。この決定は、あ
らかじめユーザによって分散タスク生成時に指定されて
いても構わないし、分散共有メモリ管理サーバ部または
分散タスク管理サーバ部によって自動的に行なわれても
構わない。本実施形態ではこの決定方法を特に制限しな
い。
【0047】どの計算機から物理ページを確保するかが
決定されると、次にステップS205において、分散共
有メモリ管理サーバ部252は、カーネル部に要求し
て、物理ページを共有メモリとして確保し、その物理ペ
ージを参照する際、その物理ページを一意に特定するキ
ーを得る。この際、物理ページを、自計算機である計算
機201から確保すると決定された場合には、カーネル
部251に直接物理ページの確保を要求する。また、計
算機201以外の計算機、例えば計算機301から物理
ページを確保すると決定された場合には、その計算機3
01上の分散共有メモリ管理サーバ部352を経由し
て、その計算機301上のカーネル部351に物理ペー
ジの確保を要求する。
【0048】分散共有メモリ管理サーバ部352を経由
する方法としては、通常カーネル部から提供される計算
機間のネットワーク通信手段を利用して、分散共有メモ
リ管理サーバ部間で通信して要求を行なえばよい。ま
た、他の方法として、情報交換領域260,360そし
てCPU間割込み機構102などを利用した通信によ
り、分散共有メモリ管理サーバ部間で通信して要求を行
なうようにしてもよい。
【0049】物理ページ確保の要求を受けたカーネル部
は、計算機内部のフリー状態の物理ページを確保し、そ
のページを他の計算機から参照可能な共有ページとし
て、カーネル内部の共有物理ページを管理するテーブル
に登録し、参照の際にページを特定するためのキーとな
る値を決定する。キーはシステム内で対象となる物理ペ
ージを一意に特定することが可能な値であり、また、そ
の物理ページが存在する計算機をも一意に特定すること
が可能なものとする。そして確保した物理ページとキー
を分散共有メモリ管理サーバ部252に返す。
【0050】次にステップS206で、分散共有メモリ
管理サーバ部252は、返された物理ページの情報とキ
ーを分散共有メモリ管理サーバ部252内部の分散タス
ク管理テーブルに登録する。次にステップS207で、
分散共有メモリ管理サーバ部252は、確保した物理ペ
ージに必要な内容を埋める。即ち、対応する仮想空間の
領域にしたがって、プログラムテキストまたはデータま
たはゼロ値を物理ページに埋める。ここで、埋める内容
がプログラムテキストまたはデータだった場合には、フ
ァイルシステムなどから対応する内容を読み出してその
値を物理ページに書き込んでいく。
【0051】次にステップS208で、分散共有メモリ
管理サーバ部252は、カーネル部251に要求して、
内容を埋めた物理ページを、ページフォールトを起こし
たタスク11の対応する仮想アドレス空間にマップす
る。そして最後にステップS209で分散共有メモリ管
理サーバ部252は、カーネル部251に要求して、ペ
ージフォールトを起こしたスレッド31の実行を再開さ
せる。
【0052】次にステップS203で、物理ページの有
無を確認した結果すでに存在しているとわかった場合に
ついて説明する。すでに物理ページが存在している場合
とは、分散タスク21を構成するタスク11以外のタス
ク、本例の場合にはタスク12の仮想アドレス空間の対
応するページにすでに物理ページがマップさせているこ
とを意味する。つまり、この場合、タスク11の仮想ア
ドレス空間の同じページに対して、上記の物理ページを
マップする処理を行なうことで、タスク11とタスク1
2で同じメモリを共有させることが可能となる。以下に
その処理の流れを示す。
【0053】ステップS203で、ページフォールトの
発生した物理ページに対応する物理ページが存在すると
わかると、ステップS221に進む。ステップS221
において、分散共有メモリ管理サーバ部252は、分散
共有メモリ管理サーバ部内部に存在する分散タスク管理
テーブルを参照して、対応する物理ページのキーを獲得
する。
【0054】次に、ステップS222で、獲得したキー
を引数にカーネル部251に要求して、すでに他の計算
機(例えば計算機301)上に存在している上記の物理
ページを参照する。これは、通常、自計算機上の物理メ
モリについては、直接自計算機上のカーネル部に要求し
て確保すれば直接扱える(Read/Write可能)
ようになるのに対して、他計算機上の物理メモリについ
ては直接扱えないためであり、これを可能にするため、
自計算機上のカーネル部に要求して、その物理メモリを
参照して直接扱えるようにする手続を行なうものであ
る。
【0055】例えば、参照要求を受けたカーネル部25
1は、キーをもとに上記物理ページが存在する計算機で
ある計算機301を特定し、計算機301上のカーネル
部351と通信を行い、上記物理ページのアクセス権と
物理アドレス情報などを得て、直接その物理ページを扱
えるようにする。なお、カーネル部相互の通信は、通常
カーネル部が持つネットワーク通信機能、または、情報
交換領域260,360そしてCPU間割込み機構10
2などを利用した通信機構を利用して行われる。そし
て、分散共有メモリ管理サーバ部252に対して、その
物理ページを参照可能(Read/Write可能)な
ように設定する。
【0056】次に、ステップS208に進み、分散共有
メモリ管理サーバ部252は、参照可能にした物理ペー
ジを、カーネル部251に要求して、タスク11の対応
する仮想アドレスにマップし、最後に、ステップS20
9で、スレッド31の実行を再開する。
【0057】以上のように、第1の実施形態において
は、分散タスク生成、実行の際に、デマンドページング
方式による物理ページの確保が行われる。即ち、分散タ
スクを生成する処理を開始すると、まず複数の計算機上
に、分散タスクを構成する複数のタスクをそれぞれ生成
し、前記複数のタスク内部でページフォールトが発生し
た際に後述するページフォールト処理に移行するように
設定し、前記複数のタスク内部に、複数のスレッドを生
成、実行する。そして、上記スレッドのいずれかがペー
ジフォールトを発生した際、ページフォールト処理を開
始する。
【0058】ページフォールト処理では、対応する物理
ページが、前記分散タスクを構成する前記複数のタスク
のうちいずれかにすでにマップされているかどうかを確
認し、まだいずれのタスクにもマップされていない場合
には、前記複数の計算機のうち一つを決定し、その計算
機上の物理ページを共有メモリとして確保し、参照の際
に前記物理ページを一意に特定するキーとなる値を決定
し、それらを分散タスク管理テーブルに登録する。そし
て、確保した物理ページに対応する内容(プログラムテ
キスト、データなど)を設定し、内容が設定された物理
ページを、当該ページフォールトの発生したタスクの対
応する仮想アドレス空間にマップし、当該ページフォー
ルトを発生したスレッドの生成、実行を再開する。
【0059】また、上記スレッドのいずれかがページペ
ージフォールトを発生した際に開始されたページフォー
ルト処理において、対応する物理ページが、前記分散タ
スクを構成する前記複数のタスクのいずれかに既にマッ
プされていた場合には、分散タスク管理テーブルを参照
してマップされていた物理ページのキーを獲得して、獲
得されたキーをもとに対応する物理ページへの直接的な
アクセス(ハードウエア分散共有メモリ機構を用いたア
クセス)を可能にする。そして、この獲得した物理ペー
ジを、当該ページフォールトの発生したタスクの対応を
する仮想アドレス空間にマップし、当該ページフォール
トを発生したスレッドの生成、実行を再開する。
【0060】以上の処理を行なうことにより、異なる計
算機上に動作する複数のタスクでメモリ空間を共有でき
るようになり、これを利用して、複数のタスクをまとめ
て、複数の計算機に跨る一つの分散タスクとして扱うこ
とが可能となる。
【0061】従って、本発明によれば、ハード分散共有
メモリ機構を利用した分散タスク/スレッド機構が実現
可能で、個々の計算機の独立性を保ちつつ、ハード分散
共有メモリを活かして効率のよい分散並列処理を実現す
ることが可能となる。
【0062】[第2の実施形態]上述した第1の実施形
態では、デマンドページング方式の場合を説明した。第
2の実施形態では、タスク生成時に、全てのメモリ空間
に物理メモリをマップしてしまう方式の場合について説
明する。なお、このような方式を非デマンドページング
方式と呼ぶことにする。この場合ページフォールトは発
生しなくなるので、第1の実施形態でページフォールト
処理を行なっていた分散共有メモリ管理サーバ252,
352,452は不要となる。従って、第2の実施形態
によるOSや分散タスクの関係は、図2から分散共有メ
モリ管理サーバを抜いた状態になる。以下では、分散タ
スク21を例として、第2の実施形態による処理の流れ
を示す。
【0063】図5は、分散タスク管理サーバ部が主体で
行なう、分散タスク生成、スレッド生成・実行処理の流
れを示すフローチャートである。
【0064】ステップS301で、ユーザからの要求に
従い、分散タスク管理サーバ部により分散タスクの生成
を開始する。ここでは、分散タスク管理サーバ部253
により分散タスク21の生成を開始するものとする。続
いて、ステップS302において、分散タスク管理サー
バ部はカーネル部に要求して、分散タスク21を構成す
るタスク11,12を生成する。このタスク11,12
の生成方法に関しては第1の実施形態と同様である。
【0065】次にステップS303において、分散タス
ク管理サーバ部は、どの計算機上の物理メモリを使用し
て分散タスクを構成するかを決定する。この決定は、あ
らかじめユーザによって、分散タスク生成時に指定され
ていても構わないし、分散タスク管理サーバ部によって
自動的に行なわれても構わない。本実施形態ではこの決
定方法を特に限定しない。また、分散タスクの全メモリ
空間をある一つの計算機上の物理メモリで構成しても構
わないし、また、適当に分割した単位またはページ単位
でメモリ空間を分割し、それぞれ異なる計算機上の物理
メモリを割り当てるようにしても構わない。
【0066】次に、ステップS304において、分散タ
スク管理サーバ部は、上記の決定にしたがって、カーネ
ル部に要求して、タスクを構成するのに必要なだけの物
理メモリを共有メモリとして確保するとともに、他の計
算機上の物理メモリを用いる場合はその物理メモリを特
定するキーを獲得する。例えば、分散タスク管理サーバ
部253は、自計算機である計算機201上の物理メモ
リを確保する際には、直接カーネル部251に要求して
物理メモリの確保を行う。また、計算機201以外の計
算機、例えば計算機301の物理メモリを確保する際に
は、計算機301上の分散タスク管理サーバ部353を
経由して、カーネル部351に対して要求を行い、物理
メモリを確保するとともに、そのキーを獲得する。
【0067】次に、ステップS305において、もし、
ステップS304で計算機201以外の計算機、例えば
計算機301の物理メモリを確保していた場合に、分散
タスク管理サーバ部253は、キーを引数にカーネル部
251に要求して、上記物理メモリを参照して直接扱え
る(Read/Write可能)ようにする。この処理
も第1の実施形態と同様である。
【0068】次に、分散タスク管理サーバ部253は、
ステップS306で、直接扱えるようになった物理メモ
リに対して、対応する内容を第1の実施形態の場合と同
様に埋める。
【0069】次に、ステップS307で、分散タスク管
理サーバ部は、カーネル部に要求して、内容を埋めた物
理メモリを、分散タスクを構成する複数のタスクにそれ
ぞれマップする。タスク11に対しては、直接カーネル
部251に要求して、タスク12に対しては、分散タス
ク管理サーバ部353を経由してカーネル部351に要
求してマップを行う。
【0070】次に、ステップS308において、分散タ
スク管理サーバ部は、カーネル部に要求して、スレッド
31,32,33を生成、実行する。このスレッド3
1,32,33の生成、実行に関しては、第1の実施形
態と同様である。
【0071】以上で第2の実施形態における分散タスク
21の生成実行処理が終了となる。この分散タスク生成
実行の際、分散タスクを構成するタスクをどの計算機上
に生成するか、とか、どのタスク内にスレッドをいくつ
生成するか、といったことは、ユーザが直接指定して
も、また分散タスク管理サーバ部などが自動的に判断し
ても構わない。本実施形態ではこれらを特に制限しな
い。
【0072】以上説明した第2の実施形態による処理手
順をまとめると次のようになる。即ち、分散タスクを生
成する処理を開始すると、まず複数の計算機上に、分散
タスクを構成する複数のタスクをそれぞれ生成し、この
分散タスクを構成する物理メモリを複数の計算機上にど
のように配置するかを決定する。配置が決定された物理
メモリは、各計算機上の物理メモリとして確保し、参照
の際に物理メモリを一意に特定するためのキーとなる値
を決定する。ここで、確保された物理メモリのうち、参
照の手続を行なわないと直接的に扱うことができない物
理メモリがあった場合には、決定されたキーをもとに対
応する物理メモリを参照して直接アクセス可能とする。
そして、確保した、または、確保し参照した物理メモリ
に、対応する内容(プログラムテキスト、データなど)
を設定し、上記内容を設定した物理メモリを、上記複数
のタスクの仮想アドレス空間にそれぞれマップし、上記
複数のタスク内部に、複数のスレッドを生成、実行す
る。
【0073】以上説明したように、上記各実施形態によ
れば、分散タスクを構成するために複数の計算機上に生
成する複数のタスクのメモリ空間を、ハード分散共有メ
モリ機構を利用して共有することが可能となる。そし
て、これを利用して、それら複数のタスクを一つの分散
タスクとして管理し、その分散タスク内部に複数のスレ
ッドを生成し、複数の計算機上の複数のプロセッサを活
用して並列実行することも可能となる。従って、ハード
分散共有メモリ機構を利用した分散タスク/スレッド機
構が実現でき、個々の計算機の独立性を保ちつつ、かつ
ハード分散共有メモリ機構を活かして効率のよい分散並
列処理を実現できる、という効果を奏する。
【0074】なお、本発明は、複数種類の機器(例えば
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用してもよ
い。
【0075】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0076】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0077】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0078】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0079】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0080】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図6のメモリマップ例に示す各モジュールを
記憶媒体に格納することになる。
【0081】すなわち、少なくとも「生成処理モジュー
ル」、「確保処理モジュール」、「管理処理モジュー
ル」および「アクセス処理モジュール」の各モジュール
のプログラムコードを記憶媒体に格納すればよい。
【0082】ここで、生成処理モジュールは、自身の情
報処理装置及びハードウエア分散共有メモリ機構によっ
て接続された複数の外部情報処理装置に分散配置される
複数のタスクで構成される分散タスクを生成する生成処
理を実現するためのプログラムモジュールである。ま
た、確保処理モジュールは、上記分散タスクの実行のた
めに使用する仮想メモリ領域に対応する物理メモリ領域
を、当該情報処理装置及び上記複数の外部情報処理装置
の物理メモリより確保する確保処理を実行するためのプ
ログラムモジュールである。また、管理処理モジュール
は、上記確保処理で確保された物理メモリ領域と前記仮
想メモリ領域とを対応づける管理処理を実現するプログ
ラムモジュールである。更にアクセス処理モジュール
は、上記分散タスクの各タスクの実行において発生する
仮想メモリ領域の使用に応じて、上記管理処理によって
対応付けられた物理メモリ領域を、上記ハードウエア分
散共有メモリ機構を用いて直接的にアクセスするアクセ
ス処理を実現するためのプログラムモジュールである。
【0083】
【発明の効果】以上説明したように、本発明にれば、ハ
ードウエア分散共有メモリ機構を利用した分散タスク/
スレッド機構を実現し、個々の計算機の独立性を保ちつ
つ、かつハード分散共有メモリ機構を活かして効率のよ
い分散並列処理を実現することが可能となる。
【0084】また、本発明によれば、分散タスクの実行
において物理メモリ領域が対応付けられていない仮想メ
モリ領域の使用が発生した場合に、当該仮想メモリ領域
に物理メモリ領域の対応づけを行うので、分散タスクが
生成されるとすぐにスレッド生成及び実行を開始する事
が可能となる。
【0085】また、本発明によれば、使用すべき仮想メ
モリ領域に対応する物理メモリ領域が、外部の他の情報
処理装置のいずれかに確保されていると判断された場
合、当該仮想メモリ領域をその物理メモリ領域へ対応づ
けることが可能となる。このため、当該分散タスク内で
共通の仮想メモリ領域がシステム内で唯一の物理メモリ
領域に対応付けられることになり、各タスクで当該物理
メモリ領域を共有することが可能となる。
【0086】また、本発明によれば、生成された分散タ
スクの実行に先立って、該分散タスクが使用する全仮想
メモリ領域に対応する物理メモリ領域を確保するので、
当該分散タスクが実行されてからはページフォールト等
の発生が無くなり、高速な処理が実現できる。
【0087】
【図面の簡単な説明】
【図1】第1の実施形態による計算機システムの構成を
説明するブロック図である。
【図2】第1の実施形態によるOSや分散タスクの関係
を示す概念図である。
【図3】主に分散タスク管理サーバ部が主体で行なう、
分散タスク生成、スレッド生成・実行処理の流れを示す
フローチャートである。
【図4】ページフォールト発生以降のページフォールト
処理により、タスクのメモリ空間を共有する処理の流れ
を示すフローチャートである。
【図5】分散タスク管理サーバ部が主体で行なう、分散
タスク生成、スレッド生成・実行処理の流れを示すフロ
ーチャートである。
【図6】本発明に関わる制御プログラムの構造的特徴を
表す図である。
【符号の説明】
101 通信回線 102 CPU間割込み機構 201,301,401 計算機 202,203,302,303,304,402,4
03 プロセッサ 210,310 ディスプレイ及びキーボード 220,420 2次記憶装置 230,330,430 物理メモリ 240,340,440 ローカルメモリ 250,350,450 OS 260,360,460 情報交換領域 251,351,451 カーネル部 252,352,452 分散共有メモリ管理サーバ部 253,353,453 分散タスク管理サーバ部 11,12,13,14 タスク 21,22 分散タスク 31,32,34,35,36,37 スレッド

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 ハードウエア分散共有メモリ機構により
    複数の外部情報処理装置と物理メモリを相互に共有可能
    に接続された情報処理装置であって、 当該情報処理装置及び前記複数の外部情報処理装置に分
    散配置された複数のタスクで構成される分散タスクを生
    成する生成手段と、 前記分散タスクの実行のために使用する仮想メモリ領域
    に対応する物理メモリ領域を、当該情報処理装置及び前
    記複数の外部情報処理装置の物理メモリより確保する確
    保手段と、 前記確保手段で確保された物理メモリ領域と前記仮想メ
    モリ領域との対応を管理する管理手段と、 前記分散タスクの各タスクの実行において発生する仮想
    メモリ領域の使用に応じて、前記管理手段によって対応
    付けられた物理メモリ領域を前記ハードウエア分散共有
    メモリ機構を用いてアクセスするアクセス手段とを備え
    ることを特徴とする情報処理装置。
  2. 【請求項2】 前記管理手段によって管理されていない
    仮想メモリ領域の使用が発生した場合、前記複数の外部
    情報処理装置において当該仮想メモリ領域に対応する物
    理メモリ領域が確保されているか否かを判断する判断手
    段を更に備え、 前記管理手段は、前記判断手段によって、当該仮想メモ
    リ領域に対応する物理メモリ領域が確保されていると判
    断された場合、その物理メモリ領域を当該仮想メモリ領
    域に対応する物理メモリ領域として対応付けることを特
    徴とする請求項1に記載の情報処理装置。
  3. 【請求項3】 前記判断手段は、前記アクセス手段の実
    行においてページフォールトが発生した場合に実行され
    ることを特徴とする請求項2に記載の情報処理装置。
  4. 【請求項4】 前記判断手段によって、前記仮想メモリ
    領域に対応する物理メモリ領域がいずれの外部情報処理
    装置によっても確保されていないと判断された場合、前
    記確保手段を実行する制御手段を更に備えることを特徴
    とする請求項2に記載の情報処理装置。
  5. 【請求項5】 前記判断手段は、前記分散タスクで使用
    される複数の仮想メモリ領域に対応づけられた複数の物
    理メモリ領域と、各物理メモリ領域を特定するための特
    定情報とを対応づける管理テーブルを参照して、前記実
    行手段が使用する仮想メモリ領域に対応する物理メモリ
    領域が存在するか否かを判断し、 前記管理手段は、前記判断手段によって、当該仮想メモ
    リ領域に対応する物理メモリ領域が確保されていると判
    断された場合、前記管理テーブルの特定情報に基づいて
    その物理メモリ領域を獲得し、当該仮想メモリ領域に対
    応する物理メモリ領域として対応付けることを特徴とす
    る請求項2に記載の情報処理装置。
  6. 【請求項6】 前記管理手段は、前記実行手段において
    使用する仮想メモリ領域のアドレスを対応する物理メモ
    リ領域のアドレスへ変換することを特徴とする請求項1
    乃至5のいずれかに記載の情報処理装置。
  7. 【請求項7】 前記分散タスクの実行とは、該分散タス
    クの各タスク内にスレッドを生成し、生成された各スレ
    ッドを実行するものであることを特徴とする請求項1乃
    至6のいずれかに記載の情報処理装置。
  8. 【請求項8】 前記確保手段は、前記生成手段によって
    生成された分散タスクの実行に先立って、該分散タスク
    が使用する全仮想メモリ領域に対応する物理メモリ領域
    を確保することを特徴とする請求項1に記載の情報処理
    装置。
  9. 【請求項9】 ハードウエア分散共有メモリ機構により
    複数の情報処理装置が物理メモリを相互に共有可能に接
    続された情報処理システムであって、 前記複数の情報処理装置に分散配置された複数のタスク
    で構成される分散タスクを生成する生成手段と、 前記複数の情報処理装置の夫々において、前記分散タス
    クの実行のために使用する仮想メモリ領域に対応する物
    理メモリ領域を、該複数の情報処理装置の備える物理メ
    モリより確保する確保手段と、 前記複数の情報処理装置の夫々において、前記確保手段
    で確保された物理メモリ領域と前記仮想メモリ領域との
    対応を管理する管理手段と、 前記複数の情報処理装置の夫々において、前記分散タス
    クの各タスクの実行において発生する仮想メモリ領域の
    使用に応じて、前記管理手段によって対応付けられた物
    理メモリ領域を前記ハードウエア分散共有メモリ機構を
    用いてアクセスするアクセス手段とを備えることを特徴
    とする情報処理システム。
  10. 【請求項10】 ハードウエア分散共有メモリ機構によ
    り複数の情報処理装置が物理メモリを相互に共有可能に
    接続された情報処理システムにおける制御方法であっ
    て、 当該情報処理装置及び前記複数の外部情報処理装置に分
    散配置された複数のタスクで構成される分散タスクを生
    成する生成工程と、 前記分散タスクの実行のために使用する仮想メモリ領域
    に対応する物理メモリ領域を、当該情報処理装置及び前
    記複数の外部情報処理装置の物理メモリより確保する確
    保工程と、 前記確保工程で確保された物理メモリ領域と前記仮想メ
    モリ領域とを対応づける管理工程と、 前記分散タスクの各タスクの実行において発生する仮想
    メモリ領域の使用に応じて、前記管理工程によって対応
    付けられた物理メモリ領域を前記ハードウエア分散共有
    メモリ機構を用いてアクセスするアクセス工程とを備え
    ることを特徴とする制御方法。
  11. 【請求項11】 前記管理工程によって管理されていな
    い仮想メモリ領域の使用が発生した場合、前記複数の外
    部情報処理装置において当該仮想メモリ領域に対応する
    物理メモリ領域が確保されているか否かを判断する判断
    工程を更に備え、 前記管理工程は、前記判断工程によって、当該仮想メモ
    リ領域に対応する物理メモリ領域が確保されていると判
    断された場合、その物理メモリ領域を当該仮想メモリ領
    域に対応する物理メモリ領域として対応付けることを特
    徴とする請求項10に記載の制御方法。
  12. 【請求項12】 前記判断工程は、前記アクセス工程の
    実行においてページフォールトが発生した場合に実行さ
    れることを特徴とする請求項11に記載の制御方法。
  13. 【請求項13】 前記判断工程によって、前記仮想メモ
    リ領域に対応する物理メモリ領域がいずれの外部情報処
    理装置によっても確保されていないと判断された場合、
    前記確保工程を実行する制御工程を更に備えることを特
    徴とする請求項11に記載の制御方法。
  14. 【請求項14】 前記判断工程は、前記分散タスクで使
    用される複数の仮想メモリ領域に対応づけられた複数の
    物理メモリ領域と、各物理メモリ領域を特定するための
    特定情報とを対応づける管理テーブルを参照して、前記
    実行工程が使用する仮想メモリ領域に対応する物理メモ
    リ領域が存在するか否かを判断し、 前記管理工程は、前記判断工程によって、当該仮想メモ
    リ領域に対応する物理メモリ領域が確保されていると判
    断された場合、前記管理テーブルの特定情報に基づいて
    その物理メモリ領域を獲得し、当該仮想メモリ領域に対
    応する物理メモリ領域として対応付けることを特徴とす
    る請求項11に記載の制御方法。
  15. 【請求項15】 前記管理工程は、前記実行工程におい
    て使用する仮想メモリ領域のアドレスを対応する物理メ
    モリ領域のアドレスへ変換することを特徴とする請求項
    10乃至14のいずれかに記載の制御方法。
  16. 【請求項16】 前記分散タスクの実行とは、該分散タ
    スクの各タスク内にスレッドを生成し、生成された各ス
    レッドを実行するものであることを特徴とする請求項1
    0乃至15のいずれかに記載の制御方法。
  17. 【請求項17】 前記確保工程は、前記生成工程によっ
    て生成された分散タスクの実行に先立って、該分散タス
    クが使用する全仮想メモリ領域に対応する物理メモリ領
    域を確保することを特徴とする請求項10に記載の制御
    方法。
  18. 【請求項18】 ハードウエア分散共有メモリ機構によ
    り複数の情報処理装置が物理メモリを相互に共有可能に
    接続された情報処理装置のためのプログラムコードが格
    納されたコンピュータ可読メモリであって、 当該情報処理装置及び前記複数の外部情報処理装置に分
    散配置された複数のタスクで構成される分散タスクを生
    成する生成工程のコードと、 前記分散タスクの実行のために使用する仮想メモリ領域
    に対応する物理メモリ領域を、当該情報処理装置及び前
    記複数の外部情報処理装置の物理メモリより確保する確
    保工程のコードと、 前記確保工程で確保された物理メモリ領域と前記仮想メ
    モリ領域とを対応づける管理工程のコードと、 前記分散タスクの各タスクの実行において発生する仮想
    メモリ領域の使用に応じて、前記管理工程によって対応
    付けられた物理メモリ領域を前記ハードウエア分散共有
    メモリ機構を用いてアクセスするアクセス工程のコード
    とを備えることを特徴とするコンピュータ可読メモリ。
JP8138635A 1996-05-31 1996-05-31 情報処理装置、情報処理システム及びその制御方法 Withdrawn JPH09319653A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8138635A JPH09319653A (ja) 1996-05-31 1996-05-31 情報処理装置、情報処理システム及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8138635A JPH09319653A (ja) 1996-05-31 1996-05-31 情報処理装置、情報処理システム及びその制御方法

Publications (1)

Publication Number Publication Date
JPH09319653A true JPH09319653A (ja) 1997-12-12

Family

ID=15226658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8138635A Withdrawn JPH09319653A (ja) 1996-05-31 1996-05-31 情報処理装置、情報処理システム及びその制御方法

Country Status (1)

Country Link
JP (1) JPH09319653A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675191B1 (en) 1999-05-24 2004-01-06 Nec Corporation Method of starting execution of threads simultaneously at a plurality of processors and device therefor
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
US7328437B2 (en) 2002-10-24 2008-02-05 International Business Machines Corporation Management of locks in a virtual machine environment
US8589937B2 (en) 2003-04-29 2013-11-19 International Business Machines Corporation Shared file system cache in a virtual machine or LPAR environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675191B1 (en) 1999-05-24 2004-01-06 Nec Corporation Method of starting execution of threads simultaneously at a plurality of processors and device therefor
US7328437B2 (en) 2002-10-24 2008-02-05 International Business Machines Corporation Management of locks in a virtual machine environment
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
US7784053B2 (en) 2003-04-29 2010-08-24 International Business Machines Corporation Management of virtual machines to utilize shared resources
US8589937B2 (en) 2003-04-29 2013-11-19 International Business Machines Corporation Shared file system cache in a virtual machine or LPAR environment

Similar Documents

Publication Publication Date Title
CN107690622B9 (zh) 实现硬件加速处理的方法、设备和***
US10747673B2 (en) System and method for facilitating cluster-level cache and memory space
US8972991B2 (en) Systems and methods for exposing processor topology for virtual machines
EP2851807B1 (en) Method and system for supporting resource isolation under multi-core architecture
US8312201B2 (en) Managing memory allocations loans
US8112611B2 (en) Allocating resources to partitions in a partitionable computer
US20170075818A1 (en) Memory management method and device
US7971026B2 (en) Information processing apparatus and access control method
JP2004326754A (ja) 共用リソースを使用するための仮想計算機の管理
JP2000330806A (ja) 計算機システム
CN113674133A (zh) Gpu集群共享显存***、方法、装置及设备
US7689765B2 (en) Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
JPWO2009069326A1 (ja) ネットワークブートシステム
US20090182893A1 (en) Cache coherence in a virtual machine managed system
WO2010097925A1 (ja) 情報処理装置
US6598049B1 (en) Data structure identifying method and recording medium
US7793051B1 (en) Global shared memory subsystem
CN107832097B (zh) 数据加载方法及装置
JPH09319653A (ja) 情報処理装置、情報処理システム及びその制御方法
JPH1063525A (ja) 情報処理装置、情報処理システム及びその制御方法
CN110447019B (zh) 存储器分配管理器及由其执行的用于管理存储器分配的方法
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
JP2017033375A (ja) 並列計算システム、マイグレーション方法、及びマイグレーションプログラム
García-Guirado et al. Energy-efficient cache coherence protocols in chip-multiprocessors for server consolidation

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030805