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

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

Info

Publication number
JPH1063525A
JPH1063525A JP8222760A JP22276096A JPH1063525A JP H1063525 A JPH1063525 A JP H1063525A JP 8222760 A JP8222760 A JP 8222760A JP 22276096 A JP22276096 A JP 22276096A JP H1063525 A JPH1063525 A JP H1063525A
Authority
JP
Japan
Prior art keywords
information processing
memory area
physical memory
measurement
distributed
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
JP8222760A
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 JP8222760A priority Critical patent/JPH1063525A/ja
Publication of JPH1063525A publication Critical patent/JPH1063525A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ハードウェア分散共有メモリ機構を利用した
分散タスク/スレッド機構によって実現する分散並列処
理の実行効率を向上することができる情報処理装置、情
報処理システム及びその制御方法を提供する。 【解決手段】 計算機201及び計算機202に分散配
置された複数のタスクで構成される分散タスクを生成
し、分散タスクに使用される計算機201の物理メモリ
230に対するアクセスの頻度を計測する。計測結果に
基づいて、分散タスクに使用される物理メモリ230の
物理メモリ領域の配置を再配置する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウェア分散
共有メモリ機構により複数の情報処理装置が接続され、
それぞれの物理メモリを相互に直接利用することが可能
な情報処理装置、情報処理システム及びその制御方法に
関するものである。
【0002】
【従来の技術】従来、ワークステーションのような計算
機の高性能化、そしてネットワークの高速化に伴い、ネ
ットワークでつながれた複数台のワークステーション
を、より密な状態で結合しクラスタ化して(ワークステ
ーションクラスタ)、高度な並列処理に利用しようとす
る方式が提案されてきた。特開平8ー30512号、特
開平8ー30469号、特開平8ー30472号などで
は、仮想記憶オペレーティングシステム(OS)を対象
として、ネットワークでつながれた複数台の計算機にま
たがるタスク(分散タスク)を生成可能とし、そのタス
ク内部で、複数台の計算機上のプロセッサを活用して複
数のスレッドを並列実行させる方式(分散タスク/スレ
ッドモデル)を提案した。
【0003】タスクは、通常、プログラムテキスト、デ
ータなどのプログラム実行資源の割り当ての単位であ
る。そして、スレッドはそのタスク内部に生成、実行さ
れるもので、プログラム実行の単位であり、プロセッサ
資源の割り当て単位となる。つまり、通常のタスク/ス
レッドモデルは、マルチプロセッサ構成の計算機におい
てプロセッサ資源を有効利用可能とするモデルとなる。
分散タスク/スレッドモデルはこれを拡張したものであ
り、従来一つの計算機内部で閉じて存在していたタスク
を複数の計算機にまたがって存在可能としたものであ
る。従って、この分散タスク/スレッドモデルは、タス
クの内部で動作するスレッドが、複数の計算機上の複数
のプロセッサを有効活用して動作できるようになるモデ
ルである。
【0004】この分散タスク/スレッドモデルの実現方
式を簡単に説明すると次のようになる。まず、ソフトウ
ェアによるソフト分散共有メモリ機構(ソフト分散共有
メモリ)を実現する。これは、分散共有メモリ管理を行
なうソフトウェアが、メモリをページ単位で管理し、キ
ャッシュシステムのようにそれぞれの計算機上にページ
のコピーを保持する。そして、それらのコピーされたペ
ージへの書込みなどが発生すると、キャッシュシステム
と同様に、それらのコンシステンシ保持動作を行なうこ
とでソフト分散共有メモリ機構を実現する。このコンシ
ステンシ保持処理の際、従来のネットワーク通信で用い
られるパケット通信方式を利用して、例えば、ページの
内容を計算機間で転送することでコピーページを更新す
る、といったことを行なう。
【0005】そして、このソフト分散共有メモリ機構を
使って、複数台の計算機上に生成した複数のタスクのメ
モリ空間(プログラムテキストやデータ空間)を共有
し、それらのタスクグループを一つの大きなタスク、分
散タスクとして扱えるように管理し、そのタスク内部に
複数のスレッドを生成、並列実行可能とすることで分散
タスク/スレッドモデルを実現する。
【0006】一方、近年、光ケーブルなど信頼性もあり
計算機の内部バスにある程度近い帯域幅を持つ通信媒体
の登場で、物理メモリを直接他の計算機に見せるような
構成も可能となりつつあり、各計算機に配置されたメモ
リを(またはその一部を)全体で単一のメモリ空間とし
て、どの計算機からでも直接アクセス可能にすることが
できるようなシステムが提案されてきている。つまり、
高速高信頼性の通信媒体で結ばれた複数台の計算機が、
システム全体でNUMA型(Non Uniform MemoryAccess)
型のマルチプロセッサシステムのような形態になるモデ
ルである。このようなハードウェアによって、複数の計
算機間で分散共有メモリを実現する機構を、前述のソフ
ト分散共有メモリ機構と区別して、ハード分散共有メモ
リ機構と呼ぶことにする。
【0007】そして、特願平8ー138635号では、
ハード分散共有メモリ機構を利用して、分散タスク/ス
レッド機構を実現することで、個々の計算機の独立性を
保ちつつ、かつハード分散共有メモリ機構を活かした並
列分散処理を実現する方式が提案されている。
【0008】
【発明が解決しようとする課題】しかしながら、上述の
ハード分散共有メモリ機構を活かした並列分散処理を実
現する方式においては、分散タスクを構成する物理メモ
リはページ単位で管理されている(物理ページと呼
ぶ)。そして、それらは複数の計算機上のいずれかのメ
モリから固定的に割り当てられたタスクにマップされて
しまう。すると、例えば、ある計算機M1上の物理メモ
リから固定的に割り当てられたある物理ページP1を、
ある別の計算機M2上のプロセッサで実行されるあるス
レッドTh2が頻繁にアクセスするような状況が生じる
と、スレッドTh2の実行効率が著しく低下し、システ
ム全体の実行効率も低下するおそれがあった。これは、
同一計算機内のメモリへのアクセス(ローカルアクセス
と呼ぶ)に比べ、他計算機上のメモリへのアクセス(リ
モートアクセスと呼ぶ)は、計算機間を結ぶ通信が介在
するため遅くなり、その頻度が高くなると処理速度が低
下するためである。
【0009】つまり、分散タスクを構成する複数の物理
ページが、それぞれある計算機上の物理メモリから固定
的に割り当てられてしまうために起こる問題である。本
発明は上記の問題点に鑑みてなされたものであり、ハー
ドウェア分散共有メモリ機構を利用した分散タスク/ス
レッド機構によって実現する分散並列処理の実行効率を
向上することができる情報処理装置、情報処理システム
及びその制御方法を提供することを目的としている。
【0010】
【課題を解決するための手段】上記の目的を達成するた
めの本発明による情報処理装置は以下の構成を備える。
即ち、ハードウェア分散共有メモリ機構により複数の情
報処理装置と物理メモリを相互に共有可能に接続された
情報処理装置であって、当該情報処理装置及び前記複数
の情報処理装置に分散配置された複数のタスクで構成さ
れる分散タスクを生成する生成手段と、前記生成手段で
生成された分散タスクに使用される物理メモリ領域に対
するアクセスの頻度を計測する計測手段と、前記計測手
段の計測結果に基づいて、前記分散タスクに使用される
物理メモリ領域の配置を再配置する再配置手段とを備え
る。
【0011】また、好ましくは、前記計測手段は、前記
物理メモリ領域に対する当該情報処理装置及び前記複数
の情報処理装置からのアクセスの頻度をそれぞれ計測す
る。また、好ましくは、前記再配置手段は、前記計測手
段の計測結果が所定条件を満足するか否かを判定する判
定手段を備え、前記判定手段の判定の結果、前記所定条
件を満足する場合に、前記分散タスクに使用される物理
メモリ領域の配置を再配置する。物理メモリ領域の配置
を再配置することで、情報処置装置における実行効率を
向上することができるからである。
【0012】また、好ましくは、前記所定条件は、所定
期間内の前記物理メモリ領域に対する前記複数の情報処
理装置からのアクセスの頻度が、所定値以上でありかつ
当該情報処理装置からのアクセスの頻度以上である。ま
た、好ましくは、前記再配置手段は、前記判定手段の判
定の結果、前記計測手段の計測結果が前記所定条件を満
足する場合、前記物理メモリ領域の配置を当該情報処理
装置以外の情報処理装置の物理メモリ領域へ再配置す
る。
【0013】また、好ましくは、前記再配置手段による
再配置の実行中は、再配置対象の物理メモリ領域に対応
する仮想メモリ領域に対する処理を排他的にロックする
ロック手段とを更に備える。また、好ましくは、前記分
散タスクの実行中に、ページフォルトが発生した場合、
該ページフォルトの発生した仮想メモリ領域に対する処
理を排他的にロックするロック手段と、前記仮想メモリ
領域に対応する物理メモリ領域が確保されているか否か
を判断する第1判断手段と、前記第1判断手段の判断の
結果、前記仮想メモリ領域に対応する物理メモリ領域が
確保されていない場合、該仮想メモリ領域に対応する物
理メモリ領域が指定されているか否かを判断する第2判
断手段と、前記第2判断手段の判断結果に基づいて、前
記計測手段による計測を実行するための所定条件を設定
する設定手段とを更に備え、前記第1判断手段及び前記
第2判断手段の判断、前記設定手段の設定は、前記ロッ
ク手段のロック期間中に実行される。
【0014】また、好ましくは、前記ロック手段のロッ
ク解除後に、前記設定手段で設定された所定条件に基づ
いて前記計測手段による計測を開始する。また、好まし
くは、前記設定手段は、前記第2判断手段の判断の結
果、前記仮想メモリ領域に対応する物理メモリ領域が指
定されていない場合、該仮想メモリ領域に対応する物理
メモリ領域を確保し、その確保された物理メモリ領域に
対し前記計測手段による計測を実行するための所定条件
を設定する。
【0015】また、好ましくは、前記設定手段は、前記
第2判断手段の判断の結果、前記仮想メモリ領域に対応
する物理メモリ領域が指定されている場合、その指定さ
れている物理メモリ領域に対し前記計測手段による計測
を実行するための所定条件を設定する。上記の目的を達
成するための本発明による情報処理システムは以下の工
程を備える。即ち、ハードウェア分散共有メモリ機構に
より複数の情報処理装置が物理メモリを相互に共有可能
に接続された情報処理システムであって、前記複数の情
報処理装置に分散配置された複数のタスクで構成される
分散タスクを生成する生成手段と、前記生成手段で生成
された分散タスクに使用される物理メモリ領域に対する
アクセスの頻度を計測する計測手段と、前記計測手段の
計測結果に基づいて、前記分散タスクに使用される物理
メモリ領域の配置を再配置する再配置手段とを備える。
【0016】上記の目的を達成するための本発明による
情報処理システムの制御方法は以下の工程を備える。即
ち、ハードウェア分散共有メモリ機構により複数の情報
処理装置が物理メモリを相互に共有可能に接続された情
報処理システムの制御方法であって、前記複数の情報処
理装置に分散配置された複数のタスクで構成される分散
タスクを生成する生成工程と、前記生成工程で生成され
た分散タスクに使用される物理メモリ領域に対するアク
セスの頻度を計測する計測工程と、前記計測工程の計測
結果に基づいて、前記分散タスクに使用される物理メモ
リ領域の配置を再配置する再配置工程とを備える。
【0017】上記の目的を達成するための本発明による
コンピュータ可読メモリは以下の工程を備える。即ち、
ハードウェア分散共有メモリ機構により複数の情報処理
装置と物理メモリを相互に共有可能に接続された情報処
理装置のためのプログラムコードが格納されたコンピュ
ータ可読メモリであって、当該情報処理装置及び前記複
数の情報処理装置に分散配置された複数のタスクで構成
される分散タスクを生成する生成工程のプログラムコー
ドと、前記生成工程で生成された分散タスクに使用され
る物理メモリ領域に対するアクセスの頻度を計測する計
測工程のプログラムコードと、前記計測工程の計測結果
に基づいて、前記分散タスクに使用される物理メモリ領
域の配置を再配置する再配置工程のプログラムコードと
を備える。
【0018】
【発明の実施の形態】以下、図面を参照して本発明の好
適な実施形態を詳細に説明する。図1は本発明の実施形
態に係る情報処理システムの構成を示すブロック図であ
る。図1において、101は光ネットワークなどの高速
な通信回線、201、301、401は通信回線101
で結ばれた複数台の計算機である。202、203、3
02、303、304、402、403は計算機20
1、301、401に各々1つ以上備えられたMMU
(メモリ管理ユニット)内蔵型のプロセッサ(以下、単
にプロセッサあるいはCPUという)である。270、
370、470は計算機210、310、410の内部
バスであり、280、380、480は内部バスの情報
を通信回線101上に流せるように変換を行なうバスイ
ンターフェースである。CPUは内部にキャッシュを備
えていても、また、外部に2次キャッシュを備えるよう
になっていても、またキャッシュを備えていなくても構
わない。
【0019】290、390、490は、計算機21
0、310、410上でバス上に流れるメモリアクセス
を検知し、アクセス頻度を計測し、ある設定にしたがっ
てオペレーティングシステム(OS)に通知を行なうア
クセス頻度計測装置である。210、310は計算機2
01、301に備えられたユーザインターフェースとし
てのディスプレイ及びキーボードである。220、42
0は計算機201、401に備えられたハードディスク
(HD)装置などの2次記憶装置である。
【0020】ディスプレイ及びキーボード210、31
0や2次記憶装置220、420は計算機に装備されて
いなくてもかまわない。例えば、ディスプレイ及びキー
ボードが装備されていない計算機401などは、サーバ
マシンまたはプロセッサプールとして利用されることに
なる。250、350、450は、計算機201、30
1、401上でそれぞれ独立して動作可能なOSであ
る。102は、各計算機上で動作するOS間での非同期
な通信を行なうためのCPU割込機構であり、260、
360、460は、各計算機上で 動作するOS間での
通信を行なうための情報交換領域である。
【0021】230、330、430は全体でひとつの
単一なメモリ空間を成す物理メモリ、240、340、
440は各計算機用のローカルメモリである。ローカル
メモリは主にOSなどのために必要となるが、物理メモ
リ230、330、430の一部で代用可能であるた
め、あってもなくても本発明の適用の妨げとはならな
い。各プロセッサは物理メモリ230、330、430
をアクセス可能に構成されている。但し、メモリアクセ
スを行うプロセッサと同一計算機内部の物理メモリへの
アクセスよりも、他の計算機に属する物理メモリへのア
クセスの方が、通信回線101が介在するため遅くなる
ような構成が一般的である。
【0022】尚、本発明において、OS250、35
0、450は、各計算機上のローカルメモリ240、3
40、440上で動作しても、物理メモリ230、33
0、430上で動作しても構わない。次に本実施形態の
計算機システムにおけるOSや分散タスクの関係につい
て、図2を用いて説明する。
【0023】図2は本実施形態のOSや分散タスクの関
係を示す概念図である。図1で示したように、各計算機
201、301、401は通信回線101により相互に
接続されているものとする。250、350、450は
それぞれの計算機上で動作する仮想記憶方式を採用した
OSである。251、351、451はカーネル部であ
り、OS内部で、タスクやスレッドの制御、仮想記憶処
理、メモリやプロセッサ資源の管理、I/O資源の管理
など、そして、ハード分散共有メモリ機構を利用して、
自計算機上の物理メモリを共有メモリとして登録・削除
する処理、登録済みの他計算機上の共有メモリを参照す
る処理などを行なう。
【0024】252、352、452は分散共有メモリ
管理サーバ部であり、OS内部で、上記の共有メモリの
登録・削除・参照機構を利用して、複数の計算機上に存
在する複数のタスクのメモリ空間(プログラムテキス
ト、データなど)の共有を実現する。253、353、
453は分散タスク管理サーバ部であり、OS内部で、
分散共有メモリ管理サーバ部252、352、452に
よりメモリ空間を共有している複数のタスクを一つの分
散タスクとして管理し、その中に複数のスレッドを生
成、並列実行を可能として、複数の計算機上の複数のプ
ロセッサ資源を有効活用する。
【0025】以上のように、基本的には各計算機ごとに
個々にOSを動作させ、それらが協調動作するような構
成をとることで、個々の計算機の独立性を保つつとも
に、分散処理に適応する。11、12、13、14は、
分散タスクを構成するため、分散共有メモリ管理サーバ
部252、352、452によりメモリ空間を共有し、
分散タスク管理サーバ部253、353、453により
まとめて管理される通常のタスクである。21、22
は、分散共有メモリ管理サーバ部252、352、45
2によりメモリ空間を共有した複数のタスクが、分散タ
スク管理サーバ部253、353、453によりまとめ
られ、一つの大きなタスクとして管理される分散タスク
である。31、32、33、34、35、36、37は
分散タスク管理サーバ部253、353、453により
管理され、各タスク内部に生成、並列実行されるスレッ
ドである。
【0026】本実施形態では、カーネル部、分散共有メ
モリ管理サーバ部、分散タスク管理サーバ部がOS内部
に含まれる例を示したが、MachOS(カーネギーメロン
大学)のようにマイクロカーネル構成を採用しているO
Sであれば、カーネル部はマイクロカーネルに相当し、
分散共有メモリ管理サーバ部、分散タスク管理サーバ部
は、マイクロカーネル上で生成、実行されるタスクとい
うマイクロカーネルとは独立したプログラムモジュール
の形態で実現されても構わない。このように、本実施形
態では、これらのモジュールの実現形態について特に制
限を設けるものではない。
【0027】次に、ハード分散共有メモリ機構を利用し
ての分散タスク生成、実行の方法について説明してい
く。本実施形態では、デマンドページング方式の場合に
ついて説明する。この方式の場合、タスク生成時には物
理メモリ(通常、ページと呼ばれる単位で扱われるため
以下では物理ページと呼ぶ)は割り当てられない。プロ
グラム実行単位であるスレッドの生成及びスレッドの実
行が開始され、物理ページが存在しない仮想アドレスを
アクセスするとページフォールトが発生する。この方式
では、このタイミングで始めて物理ページを確保し、確
保した物理ページに必要な内容(プログラムテキストま
たはデータまたは全てゼロ)を書き込み、タスクの仮想
アドレス空間にマップして当該スレッドを続行させてい
く。
【0028】次に、おもに分散タスク管理サーバ部が主
体で行なう、本実施形態の分散タスク生成、スレッド生
成・実行処理について、図3を用いて説明する。また、
ページフォールト発生以降のページフォールト処理によ
り、タスクのメモリ空間を共有する処理について、図4
を用いて説明する。尚、図3、図4で示す各処理では、
図2で示した分散タスク21の場合を例として示す。
【0029】図3は本実施形態の分散タスク管理サーバ
部で実行される処理を示すフローチャートである。ステ
ップS101で、ユーザからの要求を受けた分散タスク
管理サーバ部が分散タスク21の生成を開始する。本実
施形態では、分散タスク管理サーバ部253がユーザか
らの要求を受けたものとして説明する。続いて、ステッ
プS102で、分散タスク管理サーバ部253は、カー
ネル部351、251に要求して、分散タスク21を構
成するタスク11、12を生成する。
【0030】ここで、タスクとは、その内部で複数のス
レッドが実行できるようにするための共通の実行環境
(プログラムテキストやデータなど)のことをさす。従
って、タスクの生成とは、OSがその環境をユーザから
の指定に従って準備する。また、そのタスクを管理する
管理ブロックをOS内部で作り、管理を開始することで
ある。
【0031】一般的に、カーネル部は、自計算機内部に
のみタスクを生成することができる。このタスク生成機
能を持つカーネル部が、他計算機上の分散タスク管理サ
ーバ部からのタスク生成要求を直接受けられる構成にな
っている場合には、例えば、分散タスク管理サーバ部2
53がユーザからのタスク生成要求を受けると、タスク
11についてはカーネル部251に、タスク12につい
てはカーネル部351にタスクの生成を直接要求して、
タスク11、12を生成する。
【0032】一方、カーネル部が他計算機上の分散タス
ク管理サーバからのタスク生成要求を直接受けられる構
成になってない場合には、例えば、分散タスク管理サー
バ部253がユーザからのタスク生成要求を受けた場合
において、タスク11についてはカーネル部251にタ
スクの生成を直接要求し、タスク12については分散タ
スク管理サーバ部353を経由してカーネル部351に
タスクの生成を要求して、タスク11、12を生成す
る。
【0033】分散タスク管理サーバ部353を経由する
方法としては、通常、カーネル部から提供される計算機
間のネットワーク通信手段を利用して、分散タスク管理
サーバ部間で通信して要求を行なってもよいし、また、
それが不可能な場合には、情報交換領域260、360
そしてCPU間割込機構102などを利用した非同期通
信により、分散タスク管理サーバ部間で通信して要求を
行ってもよい。このように各計算機上の分散タスク管理
サーバ部はお互いに協調動作をしながら処理を進めてい
く。
【0034】次に、ステップS103で、分散タスク管
理サーバ部253は、カーネル部251に要求して、こ
れら生成したタスク11、12に対するページフォール
ト処理を、分散共有メモリ管理サーバ部が行うように割
り当てる。即ち、タスク11については、分散共有メモ
リ管理サーバ部252が、タスク12については、分散
共有メモリ管理サーバ部352が、ページフォルト処理
を行なうように設定する。これにより、タスク11、1
2でページフォールトが発生すると、制御が分散共有メ
モリ管理サーバ部252、352にそれぞれ移ることに
なる。
【0035】次に、ステップS104で、分散タスク管
理サーバ部は253、カーネル部251に要求して、ス
レッド31、32、33、34を生成、実行する。タス
クの生成と同様に、スレッド31、32についてはカー
ネル部251に、スレッド33、34についてはカーネ
ル部351に要求してスレッドの生成及び実行を行う。
【0036】尚、スレッドは、タスクの内部で実際にプ
ログラムを実行する実行の単位のことで、固有の環境と
して、通常、スタック領域とプロセッサのコンテキスト
情報を有する。以上で分散タスク21の生成処理が終了
となる。この分散タスク生成の際、分散タスクを構成す
るタスクをどの計算機上にいくつ生成するか、どのタス
ク内にスレッドをいくつ生成するか、といったことは、
ユーザが直接指定しても、また分散タスク管理サーバ部
などが自動的に判断しても構わない。本実施形態ではこ
れらを特に制限しない。
【0037】次に、分散タスク内部のスレッドの生成及
び実行において、まだ物理ページがマップされていない
仮想アドレスをアクセスしたためページフォールトが発
生し、分散共有メモリ管理サーバ部に制御が移ってか
ら、実際に共有メモリページが分散タスクのメモリ空間
にマップされるまでの処理について、図4を用いて説明
する。
【0038】図4は本実施形態の共有メモリページが分
散タスクのメモリ空間にマップされるまでの処理を示す
フローチャートである。ステップS201で、分散タス
ク内部で実行中のスレッドがページフォールトを発生す
ると、分散共有メモリ管理サーバ部によるページフォー
ルト処理が開始される。例えば、スレッド31、32に
おいて、ページフォルトが発生すると分散共有メモリ管
理サーバ部252によるページフォルト処理が開始さ
れ、スレッド33、34が発生すると分散共有メモリ管
理サーバ部352によるページフォルト処理が開始され
る。ここでは、スレッド31でページフォルトが発生し
た場合を例に示す。即ち、分散共有メモリ管理サーバ部
252によるページフォルト処理を例に挙げて説明す
る。
【0039】ページフォールト処理が開始されると、次
にステップS202で、分散共有メモリ管理サーバ部2
52は、ページフォールトが発生した仮想アドレスが属
するページ(仮想ページと呼ぶ)に対する処理を排他的
にロックする。これは、後述する物理ページの再配置処
理と排他的に行わなければならないためである。次にス
テップS203で、分散共有メモリ管理サーバ部252
は、ページフォールトが発生したページに対する物理ペ
ージが、すでにどこかの計算機上で確保され、分散タス
クを構成するいずれかのタスクにマップされているかど
うか確認する。
【0040】ここで、各分散共有メモリ管理サーバ部
は、各分散タスクごとに、使用される仮想メモリ領域に
対応する物理ページとしてすでに確保されている物理ペ
ージと、それを参照するときにその物理ページを特定す
るためのキーを管理する分散タスク管理テーブルを備え
ている。従って、その分散タスク管理テーブルなどを参
照することで、ステップS203における確認は可能と
なる。尚、この分散タスク管理テーブルは、各分散タス
クごとに存在し、協調動作する複数の分散共有メモリ管
理サーバ部のいずれかの内部に存在し、どの分散共有メ
モリ管理サーバ部からでも参照可能とする。
【0041】ここで、キーとは、ある物理ページが
(a)どの計算機上のものなのかをどの計算機からでも
特定することが可能で、(b)メモリ上のどこ(アドレ
ス)にあるのかを特定することが可能なものである。例
えば、計算機Aがキーによって他の計算機(計算機B)
上の物理ページを確保する場合には、キーによって特定
された計算機(計算機B)から実際の物理アドレスの通
知を受け、これにより、アクセス権を得ることになる。
即ち、このキーとともにアクセスが要求されると、計算
機Bは当該キーの示す物理アドレスを計算機Aに通知す
ると共に、当該物理ページに対し計算機Aからも共有ア
クセスされるものとして管理すべく設定を行う。また、
物理アドレスの通知を受けた計算機Aでは、そのアドレ
スを自OS内部の仮想記憶管理部に設定することによ
り、自OSが管理する仮想記憶空間内で当該物理ページ
をアクセスすることが可能となる。
【0042】従って、自計算機内の分散共有メモリ管理
サーバ部に参照したい管理テーブルが存在しない場合に
は、それが存在する分散共有メモリ管理サーバ部から、
通常カーネル部から提供される計算機間のネットワーク
通信手段を利用して必要な情報を送ってもらえばよい。
または、情報交換領域260、360、そして、CPU
間割込機構102などを利用した通信によって、必要な
情報を送ってもらっても構わない。
【0043】次にステップS204で、物理ページの有
無を確認した結果、対応する物理ページが存在していな
いとわかった場合には、いずれかの計算機上より物理ペ
ージを確保するためにステップS205に進む。また、
いずれかの計算機上にすでに当該物理ページが存在し、
いずれかのタスクにマップされているとわかった場合に
はステップS221に進む。
【0044】ステップS205では、後述する図5に示
す物理ページの再配置処理のステップS308により使
用すべき物理ページがすでに指定されているかどうかを
調べる。この指定情報も上述の分散タスク管理テーブル
に記録されており、それを参照することで判断可能とな
る。次にステップS206で、物理ページの指定を確認
した結果、対応する物理ページが指定されていないとわ
かった場合には、いずれかの計算機上より物理ページを
確保するためにステップS207に進む。また、対応す
る物理ページが指定されていた場合には、ステップS2
31に進む。尚、ステップS231以降の処理の流れに
ついては後述する。
【0045】ステップS207に進むと、どの計算機か
ら物理ページを確保するかを決定する。例えば、スレッ
ド31が動作する計算機201上の物理メモリ230が
もっともアクセス速度が早いので、基本的には物理メモ
リ230から物理ページを確保するように決定する。し
かし、この決定は、予めユーザによって分散タスク生成
時に指定されていた場合には、その指定された計算機上
の物理メモリから確保しても構わない。また、物理メモ
リ230にフリーな領域が不足しているような場合に
は、他の計算機上の物理メモリから確保しても構わな
い。本実施形態では、この決定方法を特に制限しない。
【0046】どの計算機から物理ページを確保するかが
決定されると、次に、ステップS208で、分散共有メ
モリ管理サーバ部252は、カーネル部に要求して、物
理ページを共有メモリとして確保し、その物理ページを
参照する際、その物理ページを一意に特定するためのキ
ーを得る。この際、物理ページを、自計算機である計算
機201から確保すると決定された場合には、カーネル
部251に直接物理ページの確保を要求する。また、計
算機201以外の計算機、例えば、計算機301から物
理ページを確保すると決定された場合には、その計算機
301上の分散共有メモリ管理サーバ部352を経由し
て、その計算機301上のカーネル部351に物理ペー
ジの確保を要求する。
【0047】分散共有メモリ管理サーバ部352を経由
する方法としては、通常、カーネル部から提供される計
算機間のネットワーク通信手段を利用して、分散共有メ
モリ管理サーバ部間で通信して要求を行なえば良い。ま
た、他の方法として、情報交換領域260、360、そ
してCPU間割込機構102などを利用した通信によ
り、分散共有メモリ管理サーバ部間で通信して要求を行
なうようにしてもよい。
【0048】物理ページ確保の要求を受けたカーネル部
は、計算機内部のフリー状態の物理ページを確保し、そ
のページを他の計算機から参照可能な共有ページとし
て、カーネル内部の共有物理ページを管理するテーブル
に登録し、参照の際にページを特定するためのキーとな
る値を決定する。キーはシステム内で対象となる物理ペ
ージを一意に特定することが可能な値であり、また、そ
の物理ページが存在する計算機をも一意に特定すること
が可能なものとする。そして、確保した物理ページとキ
ーを分散共有メモリ管理サーバ部252に返す。次にス
テップS209で、分散共有メモリ管理サーバ部252
は、返された物理ページの情報とキーを、分散共有メモ
リ管理サーバ部252内部の分散タスク管理テーブルに
登録する。次にステップS210で、分散共有メモリ管
理サーバ部252は、確保した物理ページに必要な内容
を埋める。即ち、対応する仮想空間の領域にしたがっ
て、プログラムテキストまたはデータまたはゼロ値を物
理ページに埋める。ここで、埋める内容がプログラムテ
キストまたはデータだった場合には、ファイルシステム
などから対応する内容を読み出してその値を物理ページ
に書き込んでいく。
【0049】次にステップS211で、確保した物理ペ
ージに対するアクセス頻度を計測するように、アクセス
頻度計測装置290によるアクセス頻度の計測に必要な
設定値を設定する。アクセス頻度計測装置は、アドレス
により一意に指定された物理ページに対して、指定され
たある一区切りの時間の間に、何回どの計算機上のプロ
セッサからアクセスされたかを計測する。そして、アク
セス回数が指定されたあるしきい値を越えたらOSに対
してCPU割込機構による割込みなどの手段で通知する
ものとする。そこで、アクセス頻度を計測するために、
実際に確保した物理ページを一意に特定するアドレス情
報と、計測する一区切りの時間と、しきい値を設定値と
してアクセス頻度計測装置290に設定する。
【0050】次にステップS212で、分散共有メモリ
管理サーバ部252は、カーネル部251に要求して、
内容を埋めた物理ページを、ページフォールトを起こし
たタスク11の対応する仮想アドレス空間の仮想ページ
にマップする。次にステップS213で、ステップS2
02でロックしていたページフォールトが発生した仮想
アドレスが属するページに対する処理を解除するため
に、そのロックされている処理をアンロックする。
【0051】そして、最後にステップS214で、分散
共有メモリ管理サーバ部252は、カーネル部251に
要求して、ページフォールトを起こしたスレッド31の
実行を再開する。次にステップS204で、物理ページ
の有無を確認した結果すでに存在しているとわかった場
合について説明する。すでに物理ページが存在している
場合とは、分散タスク21を構成するタスク11以外の
タスク、本実施形態の場合には、タスク12の仮想アド
レス空間の対応する仮想ページにすでに物理ページがマ
ップさせていることを意味する。つまり、この場合、タ
スク11の仮想アドレス空間の同じ仮想ページに対し
て、上記の物理ページをマップする処理を行なうこと
で、タスク11とタスク12で同じメモリを共有させる
ことが可能となる。以下にその処理について説明してい
く。
【0052】ステップS204で、ページフォルトの発
生した物理ページに対応する物理ページが存在するとわ
かると、ステップS221に進む。ステップS221に
おいて、分散共有メモリ管理サーバ部252は、分散共
有メモリ管理サーバ部252内部に存在する分散タスク
管理テーブルを参照して、対応する物理ページのキーを
獲得する。
【0053】次に、ステップS222で、獲得したキー
を引数にカーネル部251に要求して、すでに他の計算
機(例えば、計算機301)上に存在している上記の物
理ページを参照する。これは、通常、自計算機上の物理
メモリについては、直接自計算機上のカーネル部に要求
して確保すれば直接扱える(Read/Write可
能)ようになるのに対して、他計算機上の物理メモリに
ついては直接扱えないためである。そして、これを可能
にするため、自計算機上のカーネル部に要求して、物理
メモリを参照して直接扱えるようにする手続きを行な
う。
【0054】例えば、参照要求を受けたカーネル部25
1は、キーをもとに上記物理ページが存在する計算機で
ある計算機301を特定し、計算機301上のカーネル
部351と通信を行い、上記物理ページのアクセス権と
物理アドレス情報などを得て、直接その物理ページを扱
えるようにする。尚、カーネル部相互の通信は、通常、
カーネル部が持つネットワーク通信機能、または、情報
交換領域260、360そしてCPU間割込機構102
などを利用した通信機構を利用して行われる。そして、
分散共有メモリ管理サーバ部252に対して、その物理
ページを参照可能( Read/Write可能)なよ
うに設定する。
【0055】次に、ステップS222に進み、分散共有
メモリ管理サーバ部252は、参照可能にした物理ペー
ジを、カーネル部251に要求して、タスク11の対応
する仮想アドレス空間の仮想ページにマップし、ステッ
プS213でアンロックして、最後にステップS214
で、スレッド31の実行を再開する。以上の処理を行な
うことにより、異なる計算機上に動作する複数のタスク
でメモリ空間を共有できるようになり、これを利用し
て、複数のタスクをまとめて、複数の計算機に跨る一つ
の分散タスクとして扱うことが可能となる。また、アク
セス頻度計測装置を設けることで、以下に述べるような
状況を検知することが可能となる。
【0056】まず、上述のフローチャートにおいて、例
えば、スレッド31がある仮想ページVirtual-Aをアク
セスしたとする。そして、その仮想ページVirtual-A
が、まだ、マップされていないためにページフォールト
が発生し、かつ対応する物理ページが存在していなかっ
たとすると、処理はステップS205、S206、S2
07と進む。そして、計算機201からある物理ページ
を確保することが決定し、ステップS208で物理ペー
ジPhysical-Aを確保したとする。
【0057】その後、同一分散タスク内のスレッド33
が、仮想ページVirtual-Aと同一の仮想アドレス空間を
アクセスすると、ページフォールトが発生する。そし
て、この場合、すでに物理ページPhysical-Aが存在して
いるので、ステップS221に進み、物理ページPhysic
al-Aを参照することになる。この場合、スレッド31と
スレッド33が、物理ページPhysical-Aを共有アクセス
することになる。
【0058】また同様に、同一分散タスク内のスレッド
34も、仮想ページVirtual-Aと同一の仮想アドレス空
間をアクセスすると、同様に物理ページPhysical-Aを参
照することになる。この結果、スレッド31とスレッド
33とスレッド34が物理ページPysical-Aを共有アク
セスすることになる。
【0059】ここで、スレッド31からの物理ページPh
ysical-Aに対するアクセスが計算機201内部でおさま
る高速なアクセス(ローカルアクセス)であるのに対
し、スレッド33、スレッド34からのアクセスは、計
算機301上のプロセッサから計算機201上の物理メ
モリへのアクセス(リモートアクセス)となる。そし
て、このリモートアクセスは、通信回線101を介在し
て行われるためローカルアクセスよりも遅くなる。その
ため、このリモートアクセスのアクセス頻度が高いほど
スレッドの実行効率が低下する。
【0060】上記の例で、スレッド33、スレッド34
からのリモートアクセスのアクセス頻度が高かった場合
を考えてみる。このような場合、もし、リモートアクセ
スのアクセス頻度が、スレッド31からのローカルアク
セスのアクセス頻度よりも高いようであれば、計算機2
01上の物理ページPhysical-Aを使用し続けるよりも、
計算機301上の物理ページを使用するように、物理ペ
ージの割り当てを変更した方が全体的な実行効率を上げ
ることができる。なぜなら、このような変更を行うこと
で、アクセス頻度の低いスレッド31からのアクセスが
低速なアクセスであるリモートアクセスとなり、アクセ
ス頻度の高いスレッド33、スレッド34からのアクセ
スが高速なアクセスであるローカルアクセスとなるの
で、リモートアクセスのアクセス頻度をより小さくこと
ができるからである。
【0061】そこで、本実施形態では、ある物理ページ
にアクセスする各スレッドのアクセス頻度を計測するア
クセス頻度計測装置を設け、そのアクセス頻度に応じ
て、物理ページの割り当てを変更する。この結果、リモ
ートアクセスのアクセス頻度が最小限になるような物理
ページの割り当てを実現することができるので、システ
ム全体の実行効率を向上することができる。つまり、ス
テップS211のアクセス頻度計測装置290における
設定を行なうことで、物理ページの割り当ての変更を実
現することができる。
【0062】次に、アクセス頻度計測装置がOSに対し
て実行する処理について詳細に説明していく。尚、アク
セス頻度計測装置に対しては、上述したように、アクセ
ス頻度の計測対象である物理ページを一意に特定するア
ドレス情報と、計測する一区切りの時間と、しきい値を
設定値として設定する。
【0063】ここで、アドレス情報とは、物理ページの
先頭アドレス(物理メモリアドレス)である。例えば、
物理ページPhysical-Aの先頭アドレスが0001000
0(16進数)だった場合にはその値を指定する。する
と、例えば、ページサイズが4Kバイトのシステムであ
れば、物理ページPhysical-Aは00010000(16
進数)〜00010FFF(16進数)となり、その範
囲のメモリに対するアクセスが計測対象となる。また、
アクセス頻度計測装置は、内部のレジスタに、または物
理メモリ上に、図6に示すよなアクセス回数計測用テー
ブルを持ち、指定された物理ページに対するアクセスの
アクセス回数を、アクセス元の計算機ごとにカウントし
ていく。
【0064】更に、アクセス頻度計測装置は、計算機内
部バス上に流れる情報をスヌープすることによりアクセ
ス情報を得る。この時、計算機内部バス上には、アクセ
ス対象のアドレス値が流れるのが一般的である。本実施
形態では、このアドレス値とともにアクセス元となる計
算機を一意に特定する情報も流れるものとする。アクセ
ス頻度計測装置は、このアドレス値とアクセスもと計算
機情報を得て、図6に示すアクセス回数計測用テーブル
中のアドレス情報と比較し、対応する物理ページがあれ
ば、テーブル中の対応するアクセス回数をインクリメン
トしていく。
【0065】また、計測する一区切りの時間およびしき
い値は、経験的に決めたものでよく、本実施形態ではそ
れを限定しない。一般には、リモートアクセスの性能や
プロセッサの処理能力やキャッシュの有無を考慮する。
そして、しきい値としては、ある値以上にリモートアク
セスが発生するとプロセッサの処理効率が大きく低下す
ることになる場合、そのある値を検知できるような値を
しきい値として設定するのが好ましい。
【0066】例えば、一区切りの時間を10ミリ秒、し
きい値を100と設定した場合には、1秒ごとに図6に
示すアクセス回数計測用テーブル中の各リモートアクセ
ス回数と設定されたしきい値とを比較する。そして、リ
モートアクセス回数がしきい値100を越え、かつこの
回数がローカルアクセス回数を上回っている場合にはO
Sに通知を行ない、各リモートアクセス回数の値をゼロ
に初期化する。一方の条件に合わない場合は、初期化だ
けを行なう。また、単純にローカルアクセス回数を上回
る場合としないで、ローカルアクセス回数の1/2を上
回る場合とするように、任意の割合を設定してもよい。
これは、プロセッサがリモートアクセスを行なうと、そ
の処理効率がローカルアクセスと比較して低くなり、単
位時間当たりの処理数も少なくなるため、単位時間当た
りのアクセス数を直接比較したのでは対等な頻度の比較
にはならないことを考慮した場合の例である。
【0067】そして、アクセス頻度計測装置は設定され
た設定値に従う条件によって、上述の条件にあった物理
ページがどの物理ページか、また条件にあったリモート
アクセスを行った計算機がどの計算機かをOSへ通知す
る。 尚、OSヘの通知は、CPU割込機構による割込
を用いるのが一般的である。次にアクセス頻度計測装置
からの通知を受けた際のOS内部の分散共有メモリ管理
サーバ部が行なう物理ページの再配置処理について、図
5を用いて説明する。
【0068】図5は本実施形態のアクセス頻度計測装置
からの通知を受けた際のOS内部の分散共有メモリ管理
サーバ部が行なう物理ページの再配置処理を示すフロー
チャートである。ここでは、上述の例と同様に、スレッ
ド31とスレッド33が同じ仮想ページVirtual-Aをア
クセスしたため、その仮想ページに対してマップされた
計算機201上の物理ページPhysical-Aを共有アクセス
しているとする。そして、スレッド31、スレッド33
が処理を進めるうち、スレッド33からのアクセス(リ
モートアクセス)頻度が高くなったため、アクセス頻度
計測装置290により検出され、OS250内部の分散
共有メモリ管理サーバ部252に割込により通知がいっ
た場合、以下の処理が実行される。
【0069】まず、ステップS301で、アクセス頻度
計測装置290からの通知を受けるまで別の処理をして
いるOS250内部の分散共有メモリ管理サーバ部25
2が割込みにより通知を受けるとステップS302に進
む。ステップS302では、通知された物理ページに対
応する仮想ページ、本実施形態の場合は仮想ページVirt
ual-Aに対する処理を排他的にロックする。
【0070】次にステップS303で、物理ページに対
するマップを解除する。つまり、本実施形態の場合に
は、タスク11、タスク12へのマップが解除される。
そのたため、それ以降に発生したタスク11、タスク1
2からの仮想ページVirtual-Aヘのアクセスはページフ
ォールトを引き起こすことになる。尚、以下説明する物
理ページの再配置処理中に、このページフォールトが起
こり、図4で説明したようなステップS201のページ
フォールト処理が開始されても、ステップS202の処
理でそのページフォールト処理が排他的にロックされ
て、後述するステップS309の処理のアンロックが行
なわれるまで待たされることになる。
【0071】次にステップS304で、物理ページの再
配置先の計算機を決定する物理ページの再配置処理を実
行する。アクセス頻度計測装置290により検出され通
知されたリモートアクセスを行った計算機、本実施形態
の場合は計算機301が再配置先となる。次にステップ
S305で、分散共有メモリ管理サーバ部はカーネル部
に要求して、再配置先の計算機上の物理メモリを確保す
る。本実施形態の場合は、物理メモリ330から新しい
フリー状態の物理ページ(この物理ページを物理ページ
Physical-Bと呼ぶ)を確保する。その物理ページPhysic
al-Bを参照する際、その物理ページPhysical-Bを一意に
特定するためのキーを得る。この処理は、上述の図4の
フローチャートのステップS208と同様にして行な
う。
【0072】次にステップS306で、再配置処理によ
って新しく確保した物理ページに、通知された物理ペー
ジの内容をコピーする。本実施形態の場合は、物理ペー
ジPhysical-Aの内容をコピーする。次にステップS30
7で、カーネル部に要求して、コピー元の物理ページを
フリー状態にする。本実施形態の場合は、物理ページPh
ysical-Aをフリー状態にする。
【0073】次にステップS308で、もし対応する仮
想ページに対して次にページフォールトが発生した場合
には、再配置処理によって新しく確保した物理ページを
使用するように設定する。本実施形態の場合は、仮想ペ
ージVirtual-Aに対して次にページフォールトが発生し
た場合には、再配置処理によって新しく確保した物理ペ
ージPhysical-Bを使用するように設定する。つまり、物
理ページPhysical-Bの情報と、物理ページPhysical-Bを
一意に特定するためのキーを、分散共有メモリ管理サー
バ252内に上述した分散タスク管理テーブルに指定情
報として登録しておく。
【0074】最後にステップS309で、通知された物
理ページに対応する仮想ページに対する処理のロックを
解除するために、そのロックされている処理をアンロッ
クする。本実施形態の場合は、仮想ページVirtual-Aに
対する処理のロックを解除するために、そのロックされ
ている処理をアンロックする。以上、図5のフローチャ
ートに示した処理を行なうことで、もし、この処理以降
にスレッド31やスレッド33が、仮想ページVirtual-
Aを再びアクセスするとページフォールトが発生する。
この場合、図4のフローチャートに示した処理を実行中
のステップS206で、使用すべき物理ページがすでに
指定されていると判断され、ステップS231に進むこ
とになる。
【0075】ここで、説明をしていなかった図4のフロ
ーチャートのステップS231における処理について、
説明する。ステップS231では、ステップS209と
同様に、指定された物理ページを対応したタスクの対応
した仮想ページにマップすることを管理するために、物
理ページ情報とそれを一意に特定するキーを、分散共有
メモリ管理サーバ部内部の分散タスク管理テーブルに登
録する。本実施形態の場合には、物理ページPhysical-B
の情報とそれを一意に特定するキーを、分散共有メモリ
管理サーバ部内部の分散タスク管理テーブルに登録す
る。このとき、物理ページPhysical-Bにはすでに内容が
コピーされているので、そのままの状態でステップS2
11に進むことになる。
【0076】以上説明したように、本実施形態によれ
ば、仮想ページVirtual-Aに対してマップされる物理ペ
ージが、計算機201上の物理ページPhysical-Aから、
計算機301上の物理ページPhysical-Bに変更されるこ
とになる。つまり、ある物理ページへの共有アクセスの
うち、リモートアクセスの頻度が高く、かつそれに比べ
てローカルアクセスの頻度が低いような状況を検知し、
最適な物理ページを使用するように割当てを変更するこ
とが可能となる。
【0077】また、ハード分散共有メモリ機構を有する
複数台の計算機システムにおいて、複数台の計算機にま
たがる形で分散タスクが生成、実行可能となる。そし
て、分散タスクを構成するある物理ページに対するリモ
ートアクセスの頻度が高くなり、スレッドの実行効率が
著しく低下するような状況を検知する。そして、この検
知によって、その物理ページを使用し続けるよりも、別
の計算機上の物理メモリからあらたに物理ページを確保
し分散タスクに割り当て直した方が良いかどうかを判断
する。判断の結果、割り当て直した方が良いと判断され
る場合には、それにしたがって分散タスクに割り当てる
物理ページの再配置を行なうことで、システム全体の実
行効率を高めることができる、という効果を奏する。
【0078】尚、本発明は、複数の機器(例えば、ホス
トコンピュータ、インタフェース機器、リーダ、プリン
タ等)から構成されるシステムに適用しても、一つの機
器からなる装置(例えば、複写機、ファクシミリ装置
等)に適用してもよい。また、本発明の目的は、前述し
た実施形態の機能を実現するソフトウェアのプログラム
コードを記録した記憶媒体を、システムあるいは装置に
供給し、そのシステムあるいは装置のコンピュータ(ま
たはCPUやMPU)が記憶媒体に格納されたプログラ
ムコードを読出し実行することによっても、達成される
ことは言うまでもない。
【0079】この場合、記憶媒体から読出されたプログ
ラムコード自体が上述した実施の形態の機能を実現する
ことになり、そのプログラムコードを記憶した記憶媒体
は本発明を構成することになる。プログラムコードを供
給するための記憶媒体としては、例えば、フロッピディ
スク、ハードディスク、光ディスク、光磁気ディスク、
CD−ROM、CD−R、磁気テープ、不揮発性のメモ
リカード、ROMなどを用いることができる。
【0080】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施の形態の機能
が実現される場合も含まれることは言うまでもない。
【0081】更に、記憶媒体から読出されたプログラム
コードが、コンピュータに挿入された機能拡張ボードや
コンピュータに接続された機能拡張ユニットに備わるメ
モリに書き込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0082】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図7のメモリマップ例に示す各モジュールを
記憶媒体に格納することになる。すなわち、少なくとも
「生成モジュール」、「計測モジュール」および「再配
置モジュール」の各モジュールのプログラムコードを記
憶媒体に格納すればよい。
【0083】尚、「生成モジュール」は、当該情報処理
装置及び前記複数の情報処理装置に分散配置された複数
のタスクで構成される分散タスクを生成する。「計測モ
ジュール」は、生成された分散タスクに使用される物理
メモリ領域に対するアクセスの頻度を計測する。「再配
置モジュール」は、計測結果に基づいて、分散タスクに
使用される物理メモリ領域の配置を再配置する。
【0084】
【発明の効果】以上説明したように、本発明によれば、
ハードウェア分散共有メモリ機構を利用した分散タスク
/スレッド機構によって実現する分散並列処理の実行効
率を向上することができる情報処理装置、情報処理シス
テム及びその制御方法を提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る情報処理システムの構
成を示すブロック図である。
【図2】本実施形態のOSや分散タスクの関係を示す概
念図である。
【図3】本実施形態の分散タスク管理サーバ部で実行さ
れる処理を示すフローチャートである。
【図4】本実施形態の共有メモリページが分散タスクの
メモリ空間にマップされるまでの処理を示すフローチャ
ートである。
【図5】本実施形態のアクセス頻度計測装置からの通知
を受けた際のOS内部の分散共有メモリ管理サーバ部が
行なう物理ページの再配置処理を示すフローチャートで
ある。
【図6】本実施形態のアクセス回数計測用テーブルを示
す図である。
【図7】本発明の実施形態を実現するプログラムコード
を格納した記憶媒体のメモリマップの構造を示す図であ
る。
【符号の説明】
101 通信回線 102 CPU間割込機構 201、301、401 計算機 202、203、302、303、304、402、4
03 プロセッサ 270、370、470 内部バス 280、380、480 バスインターフェース 290、390、490 アクセス頻度計測装置 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、33、34、35、36、37 スレッド

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 ハードウェア分散共有メモリ機構により
    複数の情報処理装置と物理メモリを相互に共有可能に接
    続された情報処理装置であって、 当該情報処理装置及び前記複数の情報処理装置に分散配
    置された複数のタスクで構成される分散タスクを生成す
    る生成手段と、 前記生成手段で生成された分散タスクに使用される物理
    メモリ領域に対するアクセスの頻度を計測する計測手段
    と、 前記計測手段の計測結果に基づいて、前記分散タスクに
    使用される物理メモリ領域の配置を再配置する再配置手
    段とを備えることを特徴とする情報処理装置。
  2. 【請求項2】 前記計測手段は、前記物理メモリ領域に
    対する当該情報処理装置及び前記複数の情報処理装置か
    らのアクセスの頻度をそれぞれ計測することを特徴とす
    る請求項1に記載の情報処理装置。
  3. 【請求項3】 前記再配置手段は、前記計測手段の計測
    結果が所定条件を満足するか否かを判定する判定手段を
    備え、 前記判定手段の判定の結果、前記所定条件を満足する場
    合に、前記分散タスクに使用される物理メモリ領域の配
    置を再配置することを特徴とする請求項2に記載の情報
    処理装置。
  4. 【請求項4】 前記所定条件は、所定期間内の前記物理
    メモリ領域に対する前記複数の情報処理装置からのアク
    セスの頻度が、所定値以上でありかつ当該情報処理装置
    からのアクセスの頻度以上であることを特徴とする請求
    項3に記載の情報処理装置。
  5. 【請求項5】 前記再配置手段は、前記判定手段の判定
    の結果、前記計測手段の計測結果が前記所定条件を満足
    する場合、前記物理メモリ領域の配置を当該情報処理装
    置以外の情報処理装置の物理メモリ領域へ再配置するこ
    とを特徴とする請求項4に記載の情報処理装置。
  6. 【請求項6】 前記再配置手段による再配置の実行中
    は、再配置対象の物理メモリ領域に対応する仮想メモリ
    領域に対する処理を排他的にロックするロック手段とを
    更に備えることを特徴とする請求項1に記載の情報処理
    装置。
  7. 【請求項7】 前記分散タスクの実行中に、ページフォ
    ルトが発生した場合、該ページフォルトの発生した仮想
    メモリ領域に対する処理を排他的にロックするロック手
    段と、 前記仮想メモリ領域に対応する物理メモリ領域が確保さ
    れているか否かを判断する第1判断手段と、 前記第1判断手段の判断の結果、前記仮想メモリ領域に
    対応する物理メモリ領域が確保されていない場合、該仮
    想メモリ領域に対応する物理メモリ領域が指定されてい
    るか否かを判断する第2判断手段と、 前記第2判断手段の判断結果に基づいて、前記計測手段
    による計測を実行するための所定条件を設定する設定手
    段とを更に備え、 前記第1判断手段及び前記第2判断手段の判断、前記設
    定手段の設定は、前記ロック手段のロック期間中に実行
    されることを特徴とする請求項1に記載の情報処理装
    置。
  8. 【請求項8】 前記ロック手段のロック解除後に、前記
    設定手段で設定された所定条件に基づいて前記計測手段
    による計測を開始することを特徴とする請求項7に記載
    の情報処理装置。
  9. 【請求項9】 前記設定手段は、前記第2判断手段の判
    断の結果、前記仮想メモリ領域に対応する物理メモリ領
    域が指定されていない場合、該仮想メモリ領域に対応す
    る物理メモリ領域を確保し、その確保された物理メモリ
    領域に対し前記計測手段による計測を実行するための所
    定条件を設定することを特徴とする請求項7に記載の情
    報処理装置。
  10. 【請求項10】 前記設定手段は、前記第2判断手段の
    判断の結果、前記仮想メモリ領域に対応する物理メモリ
    領域が指定されている場合、その指定されている物理メ
    モリ領域に対し前記計測手段による計測を実行するため
    の所定条件を設定することを特徴とする請求項7に記載
    の情報処理装置。
  11. 【請求項11】 ハードウェア分散共有メモリ機構によ
    り複数の情報処理装置が物理メモリを相互に共有可能に
    接続された情報処理システムであって、 前記複数の情報処理装置に分散配置された複数のタスク
    で構成される分散タスクを生成する生成手段と、 前記生成手段で生成された分散タスクに使用される物理
    メモリ領域に対するアクセスの頻度を計測する計測手段
    と、 前記計測手段の計測結果に基づいて、前記分散タスクに
    使用される物理メモリ領域の配置を再配置する再配置手
    段とを備えることを特徴とする情報処理システム。
  12. 【請求項12】 ハードウェア分散共有メモリ機構によ
    り複数の情報処理装置が物理メモリを相互に共有可能に
    接続された情報処理システムの制御方法であって、 前記複数の情報処理装置に分散配置された複数のタスク
    で構成される分散タスクを生成する生成工程と、 前記生成工程で生成された分散タスクに使用される物理
    メモリ領域に対するアクセスの頻度を計測する計測工程
    と、 前記計測工程の計測結果に基づいて、前記分散タスクに
    使用される物理メモリ領域の配置を再配置する再配置工
    程とを備えることを特徴とする情報処理システムの制御
    方法。
  13. 【請求項13】 前記計測工程は、前記物理メモリ領域
    に対する前記複数の情報処理装置からのアクセスの頻度
    をそれぞれ計測することを特徴とする請求項12に記載
    の情報処理システムの制御方法。
  14. 【請求項14】 前記再配置工程は、前記計測工程の計
    測結果が所定条件を満足するか否かを判定する判定工程
    を備え、 前記判定工程の判定の結果、前記所定条件を満足する場
    合に、前記分散タスクに使用される物理メモリ領域の配
    置を再配置することを特徴とする請求項13に記載の情
    報処理システムの制御方法。
  15. 【請求項15】 前記所定条件は、所定期間内の各情報
    処理装置が有する物理メモリ領域に対するアクセスの頻
    度の内、当該情報処理装置以外の情報処理装置からのア
    クセスの頻度が、所定値以上でありかつ当該情報処理装
    置からのアクセスの頻度以上であることを特徴とする請
    求項14に記載の情報処理システムの制御方法。
  16. 【請求項16】 前記再配置工程は、前記判定工程の判
    定の結果、前記計測工程の計測結果が前記所定条件を満
    足する場合、該所定条件を満足する情報処理装置の物理
    メモリ領域の配置を該情報処理装置以外の情報処理装置
    の物理メモリ領域へ再配置することを特徴とする請求項
    15に記載の情報処理システムの制御方法。
  17. 【請求項17】 前記再配置工程による再配置の実行中
    は、再配置対象の物理メモリ領域に対応する仮想メモリ
    領域に対する処理を排他的にロックするロック工程とを
    更に備えることを特徴とする請求項12に記載の情報処
    理システムの制御方法。
  18. 【請求項18】 前記分散タスクの実行中に、ページフ
    ォルトが発生した場合、該ページフォルトの発生した仮
    想メモリ領域に対する処理を排他的にロックするロック
    工程と、 前記仮想メモリ領域に対応する物理メモリ領域が確保さ
    れているか否かを判断する第1判断工程と、 前記第1判断工程の判断の結果、前記仮想メモリ領域に
    対応する物理メモリ領域が確保されていない場合、該仮
    想メモリ領域に対応する物理メモリ領域が指定されてい
    るか否かを判断する第2判断工程と、 前記第2判断工程の判断結果に基づいて、前記計測工程
    による計測を実行するための所定条件を設定する設定工
    程とを更に備え、 前記第1判断工程及び前記第2判断工程の判断、前記設
    定工程の設定は、前記ロック工程のロック期間中に実行
    されることを特徴とする請求項12に記載の情報処理シ
    ステムの制御方法。
  19. 【請求項19】 前記ロック工程のロック解除後に、前
    記設定工程で設定された所定条件に基づいて前記計測工
    程による計測を開始することを特徴とする請求項18に
    記載の情報処理システムの制御方法。
  20. 【請求項20】 前記設定工程は、前記第2判断工程の
    判断の結果、前記仮想メモリ領域に対応する物理メモリ
    領域が指定されていない場合、該仮想メモリ領域に対応
    する物理メモリ領域を確保し、その確保された物理メモ
    リ領域に対し前記計測工程による計測を実行するための
    所定条件を設定することを特徴とする請求項18に記載
    の情報処理システムの制御方法。
  21. 【請求項21】 前記設定工程は、前記第2判断工程の
    判断の結果、前記仮想メモリ領域に対応する物理メモリ
    領域が指定されている場合、その指定されている物理メ
    モリ領域に対し前記計測工程による計測を実行するため
    の所定条件を設定することを特徴とする請求項18に記
    載の情報処理システムの制御方法。
  22. 【請求項22】 ハードウェア分散共有メモリ機構によ
    り複数の情報処理装置と物理メモリを相互に共有可能に
    接続された情報処理装置のためのプログラムコードが格
    納されたコンピュータ可読メモリであって、 当該情報処理装置及び前記複数の情報処理装置に分散配
    置された複数のタスクで構成される分散タスクを生成す
    る生成工程のプログラムコードと、 前記生成工程で生成された分散タスクに使用される物理
    メモリ領域に対するアクセスの頻度を計測する計測工程
    のプログラムコードと、 前記計測工程の計測結果に基づいて、前記分散タスクに
    使用される物理メモリ領域の配置を再配置する再配置工
    程のプログラムコードとを備えることを特徴とするコン
    ピュータ可読メモリ。
JP8222760A 1996-08-23 1996-08-23 情報処理装置、情報処理システム及びその制御方法 Withdrawn JPH1063525A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8222760A JPH1063525A (ja) 1996-08-23 1996-08-23 情報処理装置、情報処理システム及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8222760A JPH1063525A (ja) 1996-08-23 1996-08-23 情報処理装置、情報処理システム及びその制御方法

Publications (1)

Publication Number Publication Date
JPH1063525A true JPH1063525A (ja) 1998-03-06

Family

ID=16787481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8222760A Withdrawn JPH1063525A (ja) 1996-08-23 1996-08-23 情報処理装置、情報処理システム及びその制御方法

Country Status (1)

Country Link
JP (1) JPH1063525A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782492B1 (en) 1998-05-11 2004-08-24 Nec Corporation Memory error recovery method in a cluster computer and a cluster computer
JP2006003972A (ja) * 2004-06-15 2006-01-05 Nec Corp プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
WO2006059543A1 (ja) * 2004-12-01 2006-06-08 Sony Computer Entertainment Inc. スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
JP2006235761A (ja) * 2005-02-22 2006-09-07 Nec Corp 分散共有メモリ装置およびメモリアクセス方法
JP2008033932A (ja) * 2006-07-28 2008-02-14 Hewlett-Packard Development Co Lp Numaコンピュータシステムにおけるローカリティドメインおよびスレッドアフィニティに基づいてコードを再コンパイルするためのシステムおよび方法
JP2011238278A (ja) * 2011-07-22 2011-11-24 Hitachi Ltd 仮想計算機の制御方法
JP2014178889A (ja) * 2013-03-14 2014-09-25 Fujitsu Ltd 情報処理装置、プログラムおよび記憶領域獲得方法
JP2016510472A (ja) * 2013-03-14 2016-04-07 インテル コーポレイション ソフトウェア・モジュールの並行動作

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782492B1 (en) 1998-05-11 2004-08-24 Nec Corporation Memory error recovery method in a cluster computer and a cluster computer
JP2006003972A (ja) * 2004-06-15 2006-01-05 Nec Corp プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP4535784B2 (ja) * 2004-06-15 2010-09-01 日本電気株式会社 プロセス配置装置、プロセス配置方法及びプロセス配置プログラム
JP2006155480A (ja) * 2004-12-01 2006-06-15 Sony Computer Entertainment Inc スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
WO2006059543A1 (ja) * 2004-12-01 2006-06-08 Sony Computer Entertainment Inc. スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US7913257B2 (en) 2004-12-01 2011-03-22 Sony Computer Entertainment Inc. Scheduling method, scheduling apparatus and multiprocessor system
US8166482B2 (en) 2004-12-01 2012-04-24 Sony Computer Entertainment Inc. Scheduling method, scheduling apparatus and multiprocessor system
JP2006235761A (ja) * 2005-02-22 2006-09-07 Nec Corp 分散共有メモリ装置およびメモリアクセス方法
JP4725130B2 (ja) * 2005-02-22 2011-07-13 日本電気株式会社 分散共有メモリ装置およびメモリアクセス方法
JP2008033932A (ja) * 2006-07-28 2008-02-14 Hewlett-Packard Development Co Lp Numaコンピュータシステムにおけるローカリティドメインおよびスレッドアフィニティに基づいてコードを再コンパイルするためのシステムおよび方法
US8453132B2 (en) 2006-07-28 2013-05-28 Hewlett-Packard Development Company, L.P. System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems
JP2011238278A (ja) * 2011-07-22 2011-11-24 Hitachi Ltd 仮想計算機の制御方法
JP2014178889A (ja) * 2013-03-14 2014-09-25 Fujitsu Ltd 情報処理装置、プログラムおよび記憶領域獲得方法
JP2016510472A (ja) * 2013-03-14 2016-04-07 インテル コーポレイション ソフトウェア・モジュールの並行動作

Similar Documents

Publication Publication Date Title
US10552337B2 (en) Memory management and device
KR100992034B1 (ko) 동적 논리적 파티션 기능을 갖는 컴퓨팅 환경에서의 컴퓨터메모리 관리
KR100457146B1 (ko) 비정형 메모리 액세스 데이터 프로세싱 시스템을 위한 인터럽트 아키텍쳐
US9454478B2 (en) System and method for controlling resource revocation in a multi-guest computer system
US5884077A (en) Information processing system and method in which computer with high load borrows processor of computer with low load to execute process
US4742450A (en) Method to share copy on write segment for mapped files
US7644252B2 (en) Multi-processor system and memory accessing method
CN108701058B (zh) 虚拟化传感器
US8433888B2 (en) Network boot system
US8312201B2 (en) Managing memory allocations loans
US7971026B2 (en) Information processing apparatus and access control method
US6877158B1 (en) Logical partitioning via hypervisor mediated address translation
CN112099941A (zh) 实现硬件加速处理的方法、设备和系统
JP2004192612A (ja) 区分化されたデータ処理システムにおける電力節減
JPWO2010097925A1 (ja) 情報処理装置
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
US7793051B1 (en) Global shared memory subsystem
JPH1063525A (ja) 情報処理装置、情報処理システム及びその制御方法
US20220318042A1 (en) Distributed memory block device storage
JPH09319653A (ja) 情報処理装置、情報処理システム及びその制御方法
US7979660B2 (en) Paging memory contents between a plurality of compute nodes in a parallel computer
JPH07129518A (ja) 計算機システム
JPH04291660A (ja) プロセッサ間通信方法およびそのための並列プロセッサ
US6928492B1 (en) Computer I/O device access method
JP2003316589A (ja) 実記憶利用方法

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: 20031104