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

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

Info

Publication number
JPH0926910A
JPH0926910A JP7174784A JP17478495A JPH0926910A JP H0926910 A JPH0926910 A JP H0926910A JP 7174784 A JP7174784 A JP 7174784A JP 17478495 A JP17478495 A JP 17478495A JP H0926910 A JPH0926910 A JP H0926910A
Authority
JP
Japan
Prior art keywords
information processing
area
memory
storage area
work area
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
JP7174784A
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 JP7174784A priority Critical patent/JPH0926910A/ja
Priority to US08/675,414 priority patent/US6092157A/en
Publication of JPH0926910A publication Critical patent/JPH0926910A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 複数の処理に共有される共有データ領域が、
他の情報処理装置上に記憶されないよう制御すること
で、システムの実行効率を向上することができる情報処
理装置及びその方法及び情報処理システム及びその制御
方法を提供する。 【解決手段】 例えば、情報処理装置201の物理メモ
リ230の記憶領域中に処理を実行するための作業領域
を確保する必要が生じた場合、作業領域が複数の処理に
共有される共有データ領域であり、かつ記憶領域に確保
できない場合、該作業領域を記憶領域中に確保するため
に記憶領域に記憶される共有データ領域でない領域を、
例えば、情報処理装置301に内蔵される物理メモリ3
40の記憶領域に移出する。その結果、移出されること
によって新たに生じた情報処理装置201の物理メモリ
230の記憶領域に作業領域を確保する。

Description

【発明の詳細な説明】
【0001】
【発明に属する技術分野】本発明は、少なくとも1つ以
上のプロセッサを含み、回線を介して複数の情報処理装
置に接続され、それぞれの情報処理装置に内蔵されるメ
モリに相互にアクセス可能な情報処理装置及びその方法
及び情報処理システム及びその制御方法に関するもので
ある。
【0002】
【従来の技術】従来、LANなどのデータ伝送速度が低
速な通信回線で結ばれた情報処理装置において、ユーザ
プログラムをプロセスとして生成、起動する際は、該情
報処理装置に内蔵される物理メモリの一部を確保し、確
保した物理メモリ上でプロセスを動作させている。近年
では、仮想記憶機構を持つOS(オペレーティングシス
テム)が登場し、確保しようとする物理メモリが不足し
ている場合であっても、使用率の低い物理ページの内容
を情報処理装置に付随する二次記憶装置または他の情報
処理装置などにページアウトすることで情報処理装置上
の物理メモリに物理ページを確保することも行なってい
る。
【0003】しかしながら、情報処理装置が仮想記憶機
構を持つOSであり、かつ通信回線で結ばれた他の情報
処理装置上の物理メモリが空いていたとしても、その物
理メモリを間接的に利用することはできても直接利用す
ることはできなかった。これは、通信回線のデータ伝送
速度が低速であるため、他の情報処理装置の物理メモリ
を直接利用するようなハードウェア構成をとれなかった
ためである。
【0004】ところが、光ケーブルなど、信頼性もあり
情報処理装置の内部バスにある程度近い性能を持つ通信
媒体が登場してきた。これによれば、ある情報処理装置
の物理メモリを直接他の情報処理装置に利用させるよう
な構成も可能となり、どの情報処理装置からも直接アク
セス可能にすることができるようなシステムが提案され
てきている。
【0005】これは、各情報処理装置に配置されたメモ
リ(またはその一部)が全体で単一のメモリ空間を構成
し、システム全体でNUMA型(Non Uniform Memory Acces
s)型のマルチプロセッサシステムのような形態で動作可
能な情報処理システムである。つまり、ある情報処理装
置から見て自分自身の情報処理装置に配置されたメモリ
へのアクセスは高速で、他の情報処理装置に配置された
メモリへのアクセスは速度は落ちるが、全体で単一のメ
モリ交換を成すためマルチプロセッサシステムとしても
とらえることができる形態である。
【0006】このようなシステムの場合、上述のような
情報処理装置の物理メモリの物理ページを該情報処理装
置に付随する二次記憶装置または他の情報処理装置にペ
ージアウトを行なわなくても、他の情報処理装置上の物
理メモリが空いていれば、その物理メモリの物理ページ
を確保し直接利用することが可能となる(このように他
の情報処理装置の利用する物理ページをリモートページ
と呼び、自分自身の情報処理装置上の利用する物理ペー
ジをローカルページと呼ぶ)。
【0007】
【発明が解決しようとする課題】しかしながら、あるプ
ロセスが動作する情報処理装置上の物理メモリが不足し
た時に、上述のように他の情報処理装置の物理メモリの
物理ページを確保する際に、物理ページに記憶されるデ
ータの内容に関係なく区別せずにリモートページを確保
していくと、以下のような問題点が生じていた。
【0008】例えば、ある情報処理装置がマルチプロセ
ッサシステムであり、その上で動作するプロセスがマル
チスレッドになっていて、複数のスレッドがあるデータ
領域を共有してアクセスするような場合、あるいは複数
のプロセスがある共有のデータ領域を確保し、共有アク
セスを行なっているような場合に、それらの共有のデー
タ領域が複数のプロセッサにキャッシュされると、その
コンシステンシを保つために多くのキャッシュメンテナ
ンス情報(アドレスやコントロール信号など)が内部バ
ス上に流れることになる。つまり、このような共有のデ
ータ領域を含む物理ページをリモートページにしてしま
うと、内部バス上だけでなく情報処理装置間を結ぶ通信
回線上にもキャッシュメンテナンス情報が行き交うこと
になる。その結果、通信回線は内部バスと比較すると通
信コストが大きいため、システムの実行効率が低下して
しまうという問題点があった。
【0009】本発明は上記の問題点に鑑みてなされたも
ので、複数の処理に共有される共有データ領域が、他の
情報処理装置上に記憶されないよう制御することで、シ
ステムの実行効率を向上することができる情報処理装置
及びその方法及び情報処理システム及びその制御方法を
提供することを目的としている。
【0010】
【課題を解決するための手段】上記の目的を達成するた
めの本発明による情報処理装置は以下の構成を備える。
即ち、少なくとも1つ以上のプロセッサを含み、回線を
介して複数の情報処理装置に接続され、それぞれの情報
処理装置に内蔵されるメモリに相互にアクセス可能な情
報処理装置であって、当該装置の前記メモリの記憶領域
の状態を監視する監視手段と、前記記憶領域中に作業領
域を確保する必要が生じた場合、当該作業領域が複数の
処理に共有される共有データ領域で有るか否かを判定す
る判定手段と、前記判定手段の結果、前記作業領域が共
有データ領域であり、かつ前記監視手段の結果、前記記
憶領域に前記作業領域が確保できない場合、当該記憶領
域に記憶される共有データ領域でない領域を前記複数の
情報処理装置に内蔵されるメモリの記憶領域のいずれか
に移出する移出手段と、前記移出手段によって新たに生
じた記憶領域に前記作業領域を確保する確保手段とを備
える。
【0011】また、好ましくは、前記移出手段は、複数
の情報処理装置の内、内蔵されるメモリの使用可能な記
憶領域が最大である情報処理装置へ移出する。また、好
ましくは、前記複数の処理は、複数のプロセッサで並列
的な処理が実行される複数の処理である。また、好まし
くは、前記複数の処理は、一つのプロセッサで並列的な
処理が実行される複数の処理である。
【0012】上記の目的を達成するための本発明による
情報処理方法は以下の構成を備える。即ち、少なくとも
1つ以上のプロセッサを含み、回線を介して複数の情報
処理装置に接続され、それぞれの情報処理装置に内蔵さ
れるメモリに相互にアクセス可能な情報処理方法であっ
て、当該装置の前記メモリの記憶領域の状態を監視する
監視工程と、前記記憶領域中に作業領域を確保する必要
が生じた場合、当該作業領域が複数の処理に共有される
共有データ領域で有るか否かを判定する判定工程と、前
記判定工程の結果、前記作業領域が共有データ領域であ
り、かつ前記監視工程の結果、前記記憶領域に前記作業
領域が確保できない場合、当該記憶領域に記憶される共
有データ領域でない領域を前記複数の情報処理装置に内
蔵されるメモリの記憶領域のいずれかに移出する移出工
程と、前記移出工程によって新たに生じた記憶領域に前
記作業領域を確保する確保工程とを備える。
【0013】上記の目的を達成するための本発明による
情報処理システムは以下の構成を備える。即ち、複数の
情報処理装置が回線を介して接続され、それぞれの情報
処理装置に内蔵されるメモリに相互にアクセス可能な情
報処理システムであって、前記複数の情報処理装置のそ
れぞれに内蔵されるメモリの記憶領域の状態を監視する
監視手段と、前記複数の情報処理装置の一つの情報処理
装置において、当該装置のメモリの記憶領域中に作業領
域を確保する必要が生じた場合、当該作業領域が複数の
処理に共有される共有データ領域で有るか否かを判定す
る判定手段と、前記判定手段の結果、前記作業領域が共
有データ領域であり、かつ前記監視手段の結果、当該装
置の前記記憶領域に前記作業領域が確保できない場合、
当該記憶領域に記憶される共有データ領域でない領域を
前記複数の情報処理装置に内蔵されるメモリの記憶領域
のいずれかに移出する移出手段と前記移出手段によって
新たに生じた当該装置の記憶領域に前記作業領域を確保
する確保手段とを備える。
【0014】上記の目的を達成するための本発明による
情報処理システム制御方法は以下の構成を備える。即
ち、複数の情報処理装置が回線を介して接続され、それ
ぞれの情報処理装置に内蔵されるメモリに相互にアクセ
ス可能な情報処理システム制御方法であって、前記複数
の情報処理装置のそれぞれに内蔵されるメモリの記憶領
域の状態を監視する監視工程と、前記複数の情報処理装
置の一つの情報処理装置において、当該装置のメモリの
記憶領域中に作業領域を確保する必要が生じた場合、当
該作業領域が複数の処理に共有される共有データ領域で
有るか否かを判定する判定工程と、前記判定工程の結
果、前記作業領域が共有データ領域であり、かつ前記監
視工程の結果、当該装置の前記記憶領域に前記作業領域
が確保できない場合、当該記憶領域に記憶される共有デ
ータ領域でない領域を前記複数の情報処理装置に内蔵さ
れるメモリの記憶領域のいずれかに移出する移出工程と
前記移出工程によって新たに生じた当該装置の記憶領域
に前記作業領域を確保する確保工程とを備える。
【0015】上記の構成により、メモリの記憶領域中に
処理を実行するための作業領域を確保する必要が生じた
場合、作業領域が複数の処理に共有される共有データ領
域であり、かつ記憶領域に確保できない場合、該作業領
域を記憶領域中に確保するために記憶領域に記憶される
共有データ領域でない領域を他の情報処理装置に内蔵さ
れるメモリの記憶領域に移出する。その結果、移出され
ることによって新たに生じた記憶領域に作業領域を確保
する。
【0016】
【発明の実施の形態】以下、図面を参照して本発明の好
適な実施の形態を詳細に説明する。図1は本実施の形態
の情報処理システムの構成を示すブロック図である。図
において、101は通信回線であり、光ネットワーク等
の高速にデータを伝送可能な通信回線である。201、
301、401は情報処理装置であり、通信回線101
で結ばれている。
【0017】202、203、302、303、30
4、402、403は情報処理装置201、情報処理装
置301、情報処理装置401に各々1つ以上備えられ
たMMU(不図示)およびキャッシュメモリ(不図示)
を内蔵するCPU(キャッシュ内蔵プロセッサ)であ
る。また、各CPUは、物理メモリ230、330、4
30を相互にアクセス可能に構成されている。但し、あ
る情報処理装置のメモリアクセスを行なうCPUは、他
の情報処理装置に備わる物理メモリへのアクセスより
も、同一情報処理装置内部の物理メモリへのアクセスの
ほうが、通信回線101が介在しないため速くなるよう
な構成が一般的である。
【0018】尚、このときのキャッシュメモリのキャッ
シュ方式はコピーバック方式とする。また、本実施の形
態では、キャッシュメモリがプロセッサに内蔵されてい
る場合であるが、これに限らない。例えば、外部にキャ
ッシュシステムを持つシステムで構成することも容易に
可能である。210、310は情報処理装置201、情
報処理装置301に備えられたユーザインタフェースで
あり、ディスプレイとキーボードから構成されている。
220、420は情報処理装置201、情報処理装置4
01に備えられた二次記憶装置であり、ハードディスク
(HD)装置などで構成されている。また、各二次記憶
装置は、テキストデータや初期化データの読み出し専用
のデータを記憶している。
【0019】尚、ユーザインタフェース210、ユーザ
インタフェース310や二次記憶装置220、二次記憶
装置420は、情報処理装置に装備されていなくてもか
まわない。例えば、ユーザインタフェースが装備されて
いない情報処理装置401などはサーバマシンまたはプ
ロセッサプールとして利用されることになる。102
は、各情報処理装置上で動作するOS(オペレーティン
グシステム)間での非同期な通信を行なうためのCPU
間割込み機構である。
【0020】230、330、430は各情報処理装置
201、301、401の物理メモリであり、全体でひ
とつの単一なメモリ空間を構成している。240、34
0、440は各情報処理装置201、301、401の
ローカルメモリであり、ローカルメモリは、それぞれO
S250、350、450を記憶している。しかし、O
Sは物理メモリ230、330、430の一部の記憶領
域に記憶させることも可能であるので、ローカルメモリ
はあってもなくても本発明の適用の妨げとはならない。
【0021】尚、本実施の形態において、各OS25
0、350、450は、複数のCPUのスケジューリン
グ、仮想記憶管理などを行なう。また、どの情報処理装
置上の物理メモリが、どの物理アドレスになっているか
等の情報処理装置におけるシステム情報を把握している
ものとする。また、このようなOSは、ほぼ同様の機能
を持っているものが各情報処理装置上でそれぞれ動作
し、互いに協調的に働くような構成をとっている。この
結果、各情報処理装置の独立性が向上し、システム全体
の柔軟性も向上する。更に、各OS250、350、4
50は、各情報処理装置上のローカルメモリ240、3
40、440上で動作しても、物理メモリ230、33
0、430上で動作しても構わない。但し、各OS25
0、350、450のデータ領域の一部は、各OSが管
理するメモリ管理の情報やプロセスのスケジューリング
情報を交換可能にするため、物理メモリ230、33
0、430上の情報交換領域260、360、460に
配置してある。
【0022】また、OS250、350、450は、一
般にプロセスが持つ各領域が仮想空間上のどこに配置さ
れているのか、そして、各領域がどのような性質を持っ
ているのか等の情報を把握している。ここでの性質と
は、その物理メモリの物理ページの領域が、 ・「書込みが起こる可能性があるかどうか」 ・「スレッドまたはプロセス間で共有される可能性があ
るかどうか」 といったものである。また、領域に関しては、多くのシ
ステムの場合、プロセスは、 (1) テキスト領域(読出し専用/共有あり)…プロ
グラムコードの領域 (2) 初期化データ領域(読出し専用/共有あり)…
文字列、定数などがローディングされ初期化される領域 (3) 非初期化データ領域(書込みあり/共有あり)
…初期値ゼロのグローバル変数などの領域 (4) ヒープ領域(書込みあり/共有あり)…動的に
拡張されるグローバル変数などの領域 (5) スタック領域(書込みあり/共有なし)…スレ
ッドローカルなスタックのための領域 等からなる。また、プロセス間で共有できる領域を、読
出し専用、書込みあり、の種類を区別して登録利用でき
るシステムもあるので、 (6) プロセス間共有領域(読出し専用/共有あり) (7) プロセス間共有領域(書込みあり/共有あり) となる。
【0023】これらの領域のうち、(書込みあり/共有
あり)となる領域が、マルチプロセッサシステムにおい
て、各プロセッサのキャッシュメモリにキャッシングさ
れると、そのコンシステンシを保つため、多くのキャッ
シュメンテナンス情報が流れることになる。こうした領
域のことを共有データ領域と呼ぶことにする。共有デー
タ領域となる可能性のある領域は、上記の例でいうと領
域(3)、(4)、(7)となる。しかし、領域
(3)、(4)は、プロセスがマルチスレッドでなけれ
ば、複数のプロセッサにキャッシングされることがない
ので共有データ領域とはならない。従って、プロセスが
スレッドを複数生成してマルチスレッドとなることをO
Sが予め知ることができる場合には、領域(3)、
(4)に関しては、マルチスレッドの場合のみ共有デー
タ領域として扱うことができる。
【0024】この情報を予めOSが知るためには、簡単
には、プロセスが自らマルチスレッドになるかそうでな
いかをシステムコールなどによってOSに知らせるよう
に、陽にプログラミングすることで可能となる。もし、
こうした情報をOSが知ることができない場合には、領
域(3)、(4)を共有データ領域として扱う。また、
上述のように領域(3)、(4)を共有データ領域と判
断した場合でも、それらの領域の一部分のみが共有デー
タ領域である場合がある。このような場合、ユーザがそ
の領域を共有データ領域とすることを(システムコール
などにより)陽にOSに知らせるようにプログラミング
することで、OSは、より限定された領域を共有データ
領域として判別することができる。
【0025】また、このようなOSへの通知を、プログ
ラミング言語仕様およびその処理系によって自動的に行
なうことも可能である。このような場合、ユーザは、プ
ログラミング言語の予約語を用いて、ある領域が共有デ
ータ領域であることを宣言的に定義することになる。上
述のように、OSは各プロセスを構成する様々な領域の
内、どの領域が共有データ領域で、どの領域が共有デー
タ領域でないか、といった情報を内部(OS250、O
S350、OS450)に格納しているとする。
【0026】次に、本実施の形態の情報処理システムに
おける処理フローについて、図2、図3のフローチャー
トを用いて説明する。図2、図3は本実施の形態の処理
フローを示すフローチャートである。ステップS1で、
例えば、情報処理装置201上のCPU202で生成さ
れたプロセスが実行を開始する。
【0027】ステップS101で、仮想空間で動作する
プロセスが、ある仮想アドレスをアクセスする。この
際、アクセスした仮想アドレスにすでに物理ページがマ
ップ(物理ページが確保され、その内容が設定され仮想
−物理変換テーブルに設定されている)されているかど
うかを判定する。マップされている場合(ステップS1
01でYES)、ステップS8に進む。マップされてい
ない場合(ステップS101でNO)、ステップS2に
進む。
【0028】尚、仮想ー物理変換テーブルとは、仮想ア
ドレスから物理アドレスへの変換を行うための変換テー
ブルであり、マップされる度に新たな仮想アドレスと物
理アドレスの組み合わせが仮想ー物理変換テーブルに設
定される。ステップS2で、メモリフォールト例外が発
生し、新たな物理ページを確保するために、OS250
に制御が移る。
【0029】ステップS3で、OS250は物理メモリ
230上のフリーの物理ページ数(使用中でない物理ペ
ージ数)を調べ、余裕があるかどうかを判断する。この
判断の規準は、あるしきい値として、例えば、物理メモ
リに存在する全体の物理ページ数の5%と設定し、設定
値よりも多い場合は「余裕あり」、少ない場合は「余裕
なし」というように行なうことで実現できる。上記のよ
うな設定値の条件により、物理メモリ230上の物理ペ
ージに余裕がある場合(ステップS4でYES)、ステ
ップS5に進む。余裕がない場合(ステップS4でN
O)、ステップS10に進む。
【0030】ステップS5で、情報処理装置201内の
物理メモリ230上のフリー物理ページを一つ確保す
る。ステップS6で、確保した物理ページの内容を物理
ページに設定する。設定方法としては、以下のようにし
て行なう。メモリフォールト例外の発生した仮想アドレ
スをもとに、そのアドレスを含む仮想アドレス空間中の
ページの位置を計算し、それに対応する内容を物理ペー
ジに設定する。例えば、設定する内容がテキスト領域や
初期化データ領域の一部だった場合には、その内容は二
次記憶装置220に記憶されているので二次記憶装置2
20から読み出し、確保した物理ページにコピーする。
また、内容が、非初期化データ領域の一部だった場合に
は、確保した物理ページをゼロで初期化する。
【0031】ステップS7で、物理ページに確保した物
理ページの内容の設定が終了すると、仮想−物理変換テ
ーブルに、メモリフォールト例外の発生した仮想アドレ
スを含むページのアドレス(仮想アドレス)から、確保
した物理ページのアドレス(物理アドレス)への変換の
ための情報を設定する。ステップS8で、OS250か
らプロセスに制御が戻り、オンデマンドで物理ページが
確保されたことになる。そして、確保された物理ページ
上でプロセスは実行を再開する。
【0032】以上が、フリーな物理ページ数に余裕のあ
る場合の処理の流れである(これは通常のデマンドペー
ジングと同様である)。次に、フリーな物理ページ数に
余裕がない場合の処理について説明する。ステップS4
で、フリーな物理ページ数に「余裕がない」と判断され
る場合(ステップS4でNO)、ステップS10に進
む。ステップS10で、メモリフォールト例外の発生し
た仮想アドレスを含むページの位置を計算し、そのペー
ジが、共有データ領域であるかどうかを判断する。判断
方法は、OS250内部がすでに持っているプロセスの
各領域情報をもとに判断する。
【0033】共有データ領域である場合(ステップS1
1でYES)、ステップS13に進む。共有データ領域
でない場合(ステップS11でNO)、ステップS12
に進む。ステップS12で、通信回線101で接続され
た情報処理装置301あるいは情報処理装置401から
リモートページを確保する。リモートページの確保方法
は、本出願人が先に出願した特願平5−276370号
において提案した方法と同様である。
【0034】まず、情報処理装置201以外の情報処理
装置301あるいは情報処理装置401上のそれぞれの
フリーな物理ページ数を調べ、フリーな物理ページ数が
もっとも多い情報処理装置を選出する。これは、各OS
250、350、450が各自持っているフリーな物理
ページ数情報を随時情報交換領域260、360、46
0の決められた場所に格納しておき、それぞれのOS2
50、350、450が必要な時に各情報交換領域26
0、360、460を読み出すことで実現できる。
【0035】次に、選出された情報処理装置からリモー
トページを確保する。例えば、選出された情報処理装置
が情報処理装置401であるとする。まず、情報処理装
置201のOS250は、情報処理装置401の物理メ
モリ430から物理ページが必要になったという情報を
情報処理装置401のOS450に伝えるため、情報交
換領域260あるいは情報交換領域460を利用して情
報を書込む。そして、CPU間割込み機構102を用い
て情報処理装置401のOS450を非同期に呼び出
し、結果がくるまで待機する。この待機している間に、
他のCPUにプロセスを割り当てても構わない。
【0036】一方、呼び出された情報処理装置401の
OS450は、情報処理装置201のOS250からの
情報に従って物理ページを物理メモリ430から確保
し、確保された物理ページがOS350の管理下に入る
ように内部状態を設定する。そして、確保した物理ペー
ジに関する情報(物理アドレスなど)を情報交換領域2
60か情報交換領域460に書き込む。更に、CPU間
割込み機構102を用いてOS250を非同期に呼び出
し、物理ページを譲渡する。割込みを受けたOS250
は、待機状態から解放され、リモートページを確保した
ことになる。
【0037】リモートページが確保できたら、次にステ
ップS6に進み、通常のデマンドページングと同様の処
理を続ける。一方、ステップS13で、フリーな物理ペ
ージ数を調べる。フリーな物理ページ数がゼロでない場
合、つまり、まだフリーな物理ページが残っていた場合
には(ステップS14でYES)、ステップS5に進
む。ステップS5で、情報処理装置201の物理メモリ
230のフリーな物理ページを一つ確保し、ステップS
6に進み、通常のデマンドページングと同様の処理を続
ける。
【0038】物理メモリ230のフリーな物理ページ数
がゼロである場合には(ステップS14でYES)、ス
テップS15に進む。ステップS15で、情報処理装置
301あるいは情報処理装置401からリモートページ
を確保する。確保する方法は上述した通りである。ここ
では、情報処理装置301から物理ページを確保したと
する。
【0039】ステップS16で、物理メモリ230の使
用中の物理ページの中で、使用率の低いページでかつ共
有データ領域でない物理ページを選択する。使用率の低
いページの選出方法としては、従来のUNIXなどで用いら
れている近似LRU(Least Recently Used)方式などを
利用することで実現できる。ステップS17で、ステッ
プS16で選出した物理メモリ230の物理ページの内
容を、ステップS15で確保した情報処理装置301の
リモートページにコピーする。コピーが終了すると、ス
テップS18に進み、情報処理装置201の仮想−物理
変換テーブルの設定を切り替えることによって、今ま
で、選出した物理ページを使用するようになっていたも
のを、情報処理装置301のリモートページを使用する
ように切り替える。この処理により、選出した物理メモ
リ230物理ページはフリーとなる。次に、物理メモリ
230のフリーとなった物理ページをもとに、ステップ
S6に進み、通常のデマンドページングと同様の処理を
行なう。
【0040】以上説明したように、本実施の形態によれ
ば、プロセスが実行を進め、物理ページがまだマップさ
れていない領域をアクセスする。そして、メモリフォー
ルト例外が発生すると、フリーな物理ページに余裕があ
るかどうかを判定する。「余裕がない」場合、メモリフ
ォールト例外を起こした領域が、共有データ領域である
かどうかを判定する。判定の結果、共有データ領域であ
る場合、ローカルページを確保する。逆に、共有データ
領域でない場合、リモートページを確保して、適切な内
容を設定してから、仮想−物理変換テーブルを設定し直
して、プロセスの実行を再開する。
【0041】また、共有データ領域であると判断された
が、フリーな物理ページがないためにローカルページを
確保できなかった場合には、使用中であるが使用率が低
くかつ共有データ領域でない物理ページを選択し、選択
された物理ページの内容を、確保したリモートページに
コピーする。そして、仮想−物理変換テーブルを設定し
直すことで使用ページをリモートページに切り替え、フ
リーなローカルページを確保してから、上記の処理を続
行する。
【0042】従って、物理メモリが不足ぎみになった
際、多くのキャッシュメンテナンス情報の通信を発生す
る領域からなる物理ページについては、リモートページ
ではなくローカルページを使用する。一方、キャッシュ
メンテナンス情報が少ない領域からなるページについて
は、リモートページを使用することになる。つまり、領
域の性質を考慮して、使用するページの種類を変えるこ
とによって、通信回線に流れる情報量を減らし、プロセ
スの実行効率を向上図ることができる。
【0043】尚、本実施の形態では、キャッシュメモリ
のキャッシュ方式はコピーバック方式を用いているが、
これに限らない。例えば、ライトスルー方式のキャッシ
ュメモリであっても構わない。この方式の場合、データ
領域が共有されていなくても、書き込みが起こると、無
条件でメモリライトの情報がバス上に流れる。従って、
共有されてなくても書込みが起こる領域に関しては、キ
ャッシュメンテナンス情報が多い領域とみなし、上記の
実施の形態でいう共有データ領域として扱うことで、シ
ステムの実行効率をあげることができる。
【0044】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって実施される場合にも適用で
きることはいうまでもない。この場合、本発明に係るプ
ログラムを格納した記憶媒体が、本発明を構成すること
になる。そして、該記憶媒体からそのプログラムをシス
テム或は装置に読み出すことによって、そのシステム或
は装置が、予め定められた仕方で動作する。
【0045】
【発明の効果】以上の説明からも明らかなように、本発
明によれば、複数の処理に共有される共有データ領域
が、他の情報処理装置上に記憶されないよう制御するこ
とで、システムの実行効率を向上することができる情報
処理装置及びその方法及び情報処理システム及びその制
御方法を提供できる。
【図面の簡単な説明】
【図1】本実施の形態の情報処理システムの構成を示す
ブロック図である。
【図2】本実施の形態の処理フローを示すフローチャー
トである。
【図3】本実施の形態の処理フローを示すフローチャー
トである。
【符号の説明】
101 通信回線 102、301、401 CPU割込み機構 201、301、401 情報処理装置 202、203、302、303、304、402、4
03 CPU 210、310、420 インターフェース 220、420 2次記憶装置 230、330、430 物理メモリ 240、340、440 ローカルメモリ 250、350、450 OS 260、360、460 情報交換領域

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つ以上のプロセッサを含
    み、回線を介して複数の情報処理装置に接続され、それ
    ぞれの情報処理装置に内蔵されるメモリに相互にアクセ
    ス可能な情報処理装置であって、 当該装置の前記メモリの記憶領域の状態を監視する監視
    手段と、 前記記憶領域中に作業領域を確保する必要が生じた場
    合、当該作業領域が複数の処理に共有される共有データ
    領域で有るか否かを判定する判定手段と、 前記判定手段の結果、前記作業領域が共有データ領域で
    あり、かつ前記監視手段の結果、前記記憶領域に前記作
    業領域が確保できない場合、当該記憶領域に記憶される
    共有データ領域でない領域を前記複数の情報処理装置に
    内蔵されるメモリの記憶領域のいずれかに移出する移出
    手段と、 前記移出手段によって新たに生じた記憶領域に前記作業
    領域を確保する確保手段とを備えることを特徴とする情
    報処理装置。
  2. 【請求項2】 前記移出手段は、複数の情報処理装置の
    内、内蔵されるメモリの使用可能な記憶領域が最大であ
    る情報処理装置へ移出することを特徴とする請求項1に
    記載の情報処理装置。
  3. 【請求項3】 前記複数の処理は、複数のプロセッサで
    並列的な処理が実行される複数の処理であることを特徴
    とする請求項1に記載の情報処理装置。
  4. 【請求項4】 前記複数の処理は、一つのプロセッサで
    並列的な処理が実行される複数の処理であることを特徴
    とする請求項1に記載の情報処理装置。
  5. 【請求項5】 少なくとも1つ以上のプロセッサを含
    み、回線を介して複数の情報処理装置に接続され、それ
    ぞれの情報処理装置に内蔵されるメモリに相互にアクセ
    ス可能な情報処理方法であって、 当該装置の前記メモリの記憶領域の状態を監視する監視
    工程と、 前記記憶領域中に作業領域を確保する必要が生じた場
    合、当該作業領域が複数の処理に共有される共有データ
    領域で有るか否かを判定する判定工程と、 前記判定工程の結果、前記作業領域が共有データ領域で
    あり、かつ前記監視工程の結果、前記記憶領域に前記作
    業領域が確保できない場合、当該記憶領域に記憶される
    共有データ領域でない領域を前記複数の情報処理装置に
    内蔵されるメモリの記憶領域のいずれかに移出する移出
    工程と、 前記移出工程によって新たに生じた記憶領域に前記作業
    領域を確保する確保工程とを備えることを特徴とする情
    報処理方法。
  6. 【請求項6】 複数の情報処理装置が回線を介して接続
    され、それぞれの情報処理装置に内蔵されるメモリに相
    互にアクセス可能な情報処理システムであって、 前記複数の情報処理装置のそれぞれに内蔵されるメモリ
    の記憶領域の状態を監視する監視手段と、 前記複数の情報処理装置の一つの情報処理装置におい
    て、当該装置のメモリの記憶領域中に作業領域を確保す
    る必要が生じた場合、当該作業領域が複数の処理に共有
    される共有データ領域で有るか否かを判定する判定手段
    と、 前記判定手段の結果、前記作業領域が共有データ領域で
    あり、かつ前記監視手段の結果、当該装置の前記記憶領
    域に前記作業領域が確保できない場合、当該記憶領域に
    記憶される共有データ領域でない領域を前記複数の情報
    処理装置に内蔵されるメモリの記憶領域のいずれかに移
    出する移出手段と前記移出手段によって新たに生じた当
    該装置の記憶領域に前記作業領域を確保する確保手段と
    を備えることを特徴とする情報処理システム。
  7. 【請求項7】 複数の情報処理装置が回線を介して接続
    され、それぞれの情報処理装置に内蔵されるメモリに相
    互にアクセス可能な情報処理システム制御方法であっ
    て、 前記複数の情報処理装置のそれぞれに内蔵されるメモリ
    の記憶領域の状態を監視する監視工程と、 前記複数の情報処理装置の一つの情報処理装置におい
    て、当該装置のメモリの記憶領域中に作業領域を確保す
    る必要が生じた場合、当該作業領域が複数の処理に共有
    される共有データ領域で有るか否かを判定する判定工程
    と、 前記判定工程の結果、前記作業領域が共有データ領域で
    あり、かつ前記監視工程の結果、当該装置の前記記憶領
    域に前記作業領域が確保できない場合、当該記憶領域に
    記憶される共有データ領域でない領域を前記複数の情報
    処理装置に内蔵されるメモリの記憶領域のいずれかに移
    出する移出工程と前記移出工程によって新たに生じた当
    該装置の記憶領域に前記作業領域を確保する確保工程と
    を備えることを特徴とする情報処理システム制御方法。
JP7174784A 1995-07-11 1995-07-11 情報処理装置及びその方法及び情報処理システム及びその制御方法 Withdrawn JPH0926910A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7174784A JPH0926910A (ja) 1995-07-11 1995-07-11 情報処理装置及びその方法及び情報処理システム及びその制御方法
US08/675,414 US6092157A (en) 1995-07-11 1996-07-02 Processing method, apparatus and system for memory management using shared memories with common data areas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7174784A JPH0926910A (ja) 1995-07-11 1995-07-11 情報処理装置及びその方法及び情報処理システム及びその制御方法

Publications (1)

Publication Number Publication Date
JPH0926910A true JPH0926910A (ja) 1997-01-28

Family

ID=15984616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7174784A Withdrawn JPH0926910A (ja) 1995-07-11 1995-07-11 情報処理装置及びその方法及び情報処理システム及びその制御方法

Country Status (2)

Country Link
US (1) US6092157A (ja)
JP (1) JPH0926910A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6353836B1 (en) 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US7930278B2 (en) 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6633891B1 (en) * 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6601147B1 (en) * 1999-03-31 2003-07-29 International Business Machines Corporation Computer system and method for maintaining an integrated shared buffer memory in a group of interconnected hosts
US6850938B1 (en) * 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
US7444636B2 (en) * 2002-07-15 2008-10-28 Hewlett-Packard Development Company, L.P. Method and system of determining attributes of a functional unit in a multiple processor computer system
US6823442B1 (en) * 2003-05-12 2004-11-23 3Pardata, Inc. Method of managing virtual volumes in a utility storage server system
US7865570B2 (en) * 2005-08-30 2011-01-04 Illinois Institute Of Technology Memory server
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
CN106980595B (zh) * 2014-12-05 2019-08-13 三星半导体(中国)研究开发有限公司 共享物理内存的多处理器通信系统及其通信方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU598101B2 (en) * 1987-02-27 1990-06-14 Honeywell Bull Inc. Shared memory controller arrangement
US5613068A (en) * 1994-06-17 1997-03-18 International Business Machines Corporation Method for transferring data between processors on a network by establishing an address space for each processor in each other processor's

Also Published As

Publication number Publication date
US6092157A (en) 2000-07-18

Similar Documents

Publication Publication Date Title
US4742450A (en) Method to share copy on write segment for mapped files
JP3546678B2 (ja) マルチos構成方法
US8370533B2 (en) Executing flash storage access requests
EP0431467B1 (en) Multiprocessor system having distributed shared resources and dynamic global data replication
US5659798A (en) Method and system for initiating and loading DMA controller registers by using user-level programs
US4730249A (en) Method to operate on large segments of data in a virtual memory data processing system
KR100992034B1 (ko) 동적 논리적 파티션 기능을 갖는 컴퓨팅 환경에서의 컴퓨터메모리 관리
USRE36462E (en) Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
EP0106669B1 (en) Operating system supervisor
US6907494B2 (en) Method and system of managing virtualized physical memory in a memory controller and processor system
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
KR100515229B1 (ko) 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템
JPH1185618A (ja) 仮想メモリ変換を制御する方法
US5392409A (en) I/O execution method for a virtual machine system and system therefor
JPH0926910A (ja) 情報処理装置及びその方法及び情報処理システム及びその制御方法
US5893159A (en) Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system
US6457107B1 (en) Method and apparatus for reducing false sharing in a distributed computing environment
US6745296B2 (en) System and method for providing cacheable smram
JPH1173365A (ja) データ移動操作を最適化する方法
CN108845969B (zh) 适用于不完全对称多处理微控制器的操作控制方法及操作系统
EP1103898A2 (en) Microprocessor and memory
CN115481072A (zh) 核间数据传输方法、多核芯片及机器可读存储介质
JPH1185547A (ja) 仮想クラスタ構成方法
JPH02244253A (ja) 分散共有メモリを持つマルチプロセッサシステム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021001