JP3385957B2 - 分散システム、メモリ管理装置及び方法、並びに記録媒体 - Google Patents
分散システム、メモリ管理装置及び方法、並びに記録媒体Info
- Publication number
- JP3385957B2 JP3385957B2 JP05232598A JP5232598A JP3385957B2 JP 3385957 B2 JP3385957 B2 JP 3385957B2 JP 05232598 A JP05232598 A JP 05232598A JP 5232598 A JP5232598 A JP 5232598A JP 3385957 B2 JP3385957 B2 JP 3385957B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- reference weight
- receiving
- weight
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Computer And Data Communications (AREA)
Description
モリ管理装置及び方法、並びに記録媒体に関し、特に分
散コンピューティングのためのメモリ管理に関するもの
である。
モリ管理装置及びメモリ管理方法は、分散システムにお
いて自動メモリ管理、ガーベージコレクションを単一の
メモリ空間のみにとどまらず、複数のメモリ空間におい
て実現するという目的のために考案された。
ger Verlag、LN CS259の第176〜
187項の「Distributed Garbage
Collection Using Referen
ce Counting」と題されたBevan, D.
I.による論文に示されるように、重み付き参照カウ
ント法を用いた自動メモリ管理装置は、異なるメモリ空
間のオブジェクトの参照、すなわちリモート参照を行う
オブジェクトに、「参照重み」なる数値を付加すること
によってメモリを管理していた。
ブジェクトが生成される場合には、リモート参照を受け
る被参照オブジェクトは、総参照重みというオブジェク
トに固有の数値の初期値(2のべき乗)を設定し、リモ
ート参照をする参照オブジェクトは、部分参照重みとい
う被参照オブジェクトへのリモート参照に固有の数値を
設定する。これにより、リモート参照が「生成」され
る。
期値を「64」とすると、被参照オブジェクト11は、
総参照重み「64」を所有し、被参照オブジェクト11
をリモート参照する参照オブジェクト10は、被参照オ
ブジェクト11に対する部分参照重み「64」を所有す
る。
オブジェクトが、第3のオブジェクトに被参照オブジェ
クトの情報を通信メッセージにより与える場合には、参
照オブジェクトは、自らの所有していた部分参照重みを
半減させ、半分を新たな部分参照重みとして更新する。
参照オブジェクトは、残り半分の参照重みを第3のオブ
ジェクトへの通信メッセージに含める。
ジに含まれている参照重みを受け取って、受けとった参
照重みを自らの部分参照重みとして格納する。これによ
り、参照オブジェクトは、被参照オブジェクトへの参照
を行うことができ、リモート参照は、参照オブジェクト
から第3のオブジェクトへ「分配」されたこととなる。
配」してもらう第3のオブジェクトが、重みを分配する
参照オブジェクトと被参照オブジェクトのメモリ空間と
は異なるメモリ空間に存在するという点に、リモート参
照の「生成」とは差異がある。また、リモート参照の
「分配」において、総参照重みは不変であるので、総参
照重みは、参照オブジェクトが所有する部分重みの和
と、分散システム上に流れる全ての通信メッセージに含
まれるオブジェクトに関する参照重みの和に常に等しく
なっている。
ト10が被参照オブジェクト11の情報をオブジェクト
12へ受け渡す場合、図81に示すように、参照オブジ
ェクト10は、所有していた部分参照重み「64」を半
減させ、「32」とする。参照オブジェクト10は、減
じた重み「32」を通信メッセージに含めてオブジェク
ト12へ送信する。この通信メッセージを受けとったオ
ブジェクト12は、図82に示すように、自己の部分参
照重みを「32」とし、参照オブジェクトとなる。
空間上で不要となった場合には、所有する部分参照重み
の情報を含めた参照削除メッセージを被参照オブジェク
トに対して送信する。これが、リモート参照の「削除」
である。これにより、不要なメモリ領域を回収し、再利
用できる。
「32」を所有している参照オブジェクト10が不要と
判別されると、その参照先である被参照オブジェクト1
1に対して、参照重み「32」を含めた参照削除メッセ
ージを送信する。その参照削除メッセージを受信した被
参照オブジェクト11は、図84に示すように、受けと
った参照重み「32」を総参照重みから減じて更新す
る。
みが「0」になったときに、他のメモリ空間から参照す
るオブジェクトがなくなったと判断できる。さらに、そ
の自らの存在するメモリ領域からの参照もなければ、そ
の被参照オブジェクトの領域を回収することができる。
ェクトは、リモート参照を「分配」することができな
い。この場合には、当該参照オブジェクトは、新たに間
接リモート参照する間接オブジェクトを生成し、生成し
た間接オブジェクトに間接的にリモート参照をさせる。
「1」となった参照オブジェクト20がオブジェクト2
2へリモート参照を「分配」する場合、参照オブジェク
ト20は、図86に示すように、間接オブジェクト23
を生成する。間接オブジェクト34は、参照オブジェク
ト20の部分参照重み「1」を継承する。間接オブジェ
クト23は、被参照オブジェクト21への参照を保持
し、総参照重み「64」を格納する。参照オブジェクト
20は、被参照オブジェクト21から間接オブジェクト
23に対してのリモート参照に更新し、部分参照重み
「64」とする。
2へ重み「32」を含めたメッセージを送信することに
より参照重みを分配する。この参照重みを受けとったオ
ブジェクト22は、図87に示すように、部分参照重み
「32」として間接オブジェクト23へのリモート参照
を行うことができる。
来例の自動メモリ管理装置(以下、従来技術という)
は、次のような問題点があった。
トなどのデータ領域自体が計算機間を移動する場合に、
メモリ管理が不可能なことである。
異なる実行環境へと、オブジェクトの実行環境を移動さ
せ、またオブジェクトの実行を再開する、いわゆるエー
ジェントと呼ばれる技術が研究されている。
トのデータ領域自体、またエージェントの占めるメモリ
領域自体が実行環境を変更する、すなわち、移動する。
ブジェクト領域が移動する分散システムにおいて、オブ
ジェクトが移動しても、そのオブジェクトを移動前から
参照していたオブジェクトが継続して移動したオブジェ
クトを参照できるための自動メモリ管理が必要である。
のデータ領域は、生成されたメモリ空間上に駐在するこ
とが前提となっていた。このため、従来技術は、移動オ
ブジェクトの存在自体を考慮しておらず、メモリ管理が
不可能であった。
ットワークにおける通信量が増大することである。
ークで構築される分散システムにおいて、オブジェクト
が異なる計算機のデータ領域を遠隔地の計算機から参照
する頻度が増加している。この傾向は、第1の問題点で
述べたようなエージェント移動、オブジェクト移動技術
により、さらに増している。
動により、保持しているデータの参照先に、実際にはデ
ータの実体が存在せず、さらなる参照先をたどって初め
てデータの実体を参照できるという状況が頻繁に発生す
る。
ためには、参照要求の通信メッセージを参照先の計算機
に送信し、要求データを返送してもらうことが必要とな
る。このため、オブジェクトがデータの実体を参照する
ために、多段階な通信のやりとりが発生してしまう。
きる限り直接の参照先に更新すればよい。しかし、従来
技術では、参照先の更新のために必要となる通信量を削
減することが困難であった。
クトを管理するために用いられる参照重みが枯渇するこ
と(参照重みの値が小さくなり、他のオブジェクトに分
配できなくなることをいう。以下、同じ)である。
クトに対する参照が増加すると、参照重みは参照が削除
されない限り減るばかりで、返却されないからである。
算機におけるメモリ不足が発生することである。
接オブジェクトが生成される。重みの枯渇する頻度が高
い場合には、メモリ上に間接オブジェクトが多く生成さ
れることになり、メモリ不足が発生する。
グラムの高速実行が妨げられたり、あるいは、応用プロ
グラムが停止されてしまうことである。
重みが枯渇した際に間接オブジェクトが生成されるが、
間接オブジェクトが多く生成されると、参照オブジェク
トと間接オブジェクトとの間のメッセージの送受信が多
くなるからである。
タ領域の実行環境の移動を許す分散システムにおいて
も、移動を許さない分散システムと同様に、矛盾なく動
作するメモリ管理装置及び方法を提供することにある。
けるメモリ管理のための通信量を削減できるメモリ管理
装置及び方法を提供することにある。
を管理するために用いる参照重みが枯渇する可能性を削
減できるメモリ管理装置及び方法を提供することにあ
る。
においてメモリが不足することを削減できるメモリ管理
装置及び方法を提供することにある。
メモリ管理を実現することが可能な複数の計算機をネッ
トワークで結合した分散システムを提供することにあ
る。
メモリ管理を実現するプログラムを記憶したコンピュー
タ読み取り可能な記録媒体を提供することにある。
め、本発明の第1の観点にかかる分散システムは、複数
のモジュールを備え、他のモジュールに存在するオブジ
ェクトを参照する参照元オブジェクトと前記参照元オブ
ジェクトから参照される参照先オブジェクトとをそれぞ
れ部分参照重みと総参照重みとによって管理する分散シ
ステムであって、前記複数のモジュールのうちの少なく
とも1つのモジュールは、該モジュール内に存在するオ
ブジェクトに関する情報を他のモジュールに送信する第
1の送信手段と、他のモジュールから送信された前記オ
ブジェクトに関する情報の返信及び部分参照重みを設定
するための第1の付加参照重みを受信する第1の受信手
段と、前記第1の受信手段が受信した前記第1の付加参
照重みを部分参照重みとして設定して、前記オブジェク
トを、他のオブジェクトからの参照要求を前記オブジェ
クトに関する情報の送信先に転送するための中継オブジ
ェクトに変換する第1の中継オブジェクト生成手段と、
を備え、前記複数のモジュールのうちの少なくとも他の
1つのモジュールは、他のモジュールの第1の送信手段
から送信されたオブジェクトに関する情報を受信する第
2の受信手段と、前記第2の受信手段が受信した前記オ
ブジェクトに関する情報に基づいて、総参照重みとして
所定の値を設定して、参照先オブジェクトを生成する参
照先オブジェクト生成手段と、前記第2の受信手段が受
信した前記オブジェクトに関する情報に対する返信と共
に、前記総参照重みに対応する値を有する前記第1の付
加参照重みを、前記第1の受信手段に送信する送信手段
と、を備えることを特徴とする。
観点にかかる分散システムは、ネットワークを介して結
合された複数の計算機によって構成され、複数のモジュ
ールを備え、他のモジュールに存在するオブジェクトを
参照する参照元オブジェクトと前記参照元オブジェクト
から参照される参照先オブジェクトとをそれぞれ部分参
照重みと総参照重みとによって管理する分散システムで
あって、前記複数の計算機のうちの少なくとも1つの計
算機は、該計算機内に存在するオブジェクトに関する情
報を含む該モジュールに関する情報を前記ネットワーク
を介して他の計算機に送信する第1の送信手段と、他の
計算機に生成されたモジュールから送信された前記モジ
ュールに関する情報に対する返信及び部分参照重みを設
定するための第1の付加参照重みを受信する第1の受信
手段と、前記第1の受信手段が受信した前記第1の付加
参照重みを部分参照重みとして設定して、該モジュール
内のオブジェクトを、他のオブジェクトからの参照要求
を前記モジュールに関する情報の送信先に転送するため
の中継オブジェクトに変換する第1の中継モジュール生
成手段と、を備え、前記複数の計算機のうちの少なくと
も他の1つの計算機は、他の計算機の第1の送信手段か
ら送信されたモジュールに関する情報を受信する第2の
受信手段と、前記第2の受信手段が受信した前記モジュ
ールに関する情報に基づいて、総参照重みとして所定の
値を設定した参照先オブジェクトを有するモジュールを
生成するモジュール生成手段と、前記第2の受信手段が
受信した前記モジュールに関する情報に対する返信と共
に、前記総参照重みに対応する値を有する前記第1の付
加参照重みを、前記第1の受信手段に受信する第2の送
信手段と、を備えることを特徴とする。
観点にかかるメモリ管理装置は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理装置であって、前記参照元オブジェクトが
前記参照先オブジェクトを参照するときに、前記参照元
オブジェクトが有する部分参照重みが所定の範囲にある
かどうかを判別する部分参照重み判別手段と、前記部分
参照重み判別手段が所定の範囲にないと判別したとき
に、前記参照先オブジェクトへの参照要求と共に、所定
の値を有する第1の付加参照重みを前記参照先オブジェ
クトが存在する他のモジュールに送信する第1の送信手
段と、他のモジュールが有する第1の送信手段から送信
された送信要求及び第1の付加参照重みを受信する第1
の受信手段と、前記第1の受信手段が受信した前記第1
の付加参照重みに従って、前記参照先オブジェクトが有
する総参照重みを更新する第1の総参照重み更新手段
と、前記第1の受信手段が受信した前記参照要求に対す
る返答と共に、前記第1の受信手段が受信した前記第1
の付加参照重みに対応する値を有する第2の付加参照重
みを前記参照要求を送信した他のモジュールに送信する
第2の送信手段と、他のモジュールが有する第2の送信
手段が送信した返答及び第2の付加参照重みを受信する
第2の受信手段と、前記第2の受信手段が受信した前記
第2の付加参照重みに従って、前記参照元オブジェクト
が有する部分参照重みを更新する部分参照重み更新手段
と、を備え、前記部分参照重み判別手段は、前記部分参
照重みが所定の上限値よりも大きいかどうかを判別する
第2の判別手段をさらに備え、前記第1の送信手段は、
前記第2の判別手段が所定の上限値よりも小さいと判別
したときに、負の値を有する第1の付加参照重みを、前
記参照要求と共に送信し、前記第1の総参照重み更新手
段は、前記第1の受信手段が受信した負の値を有 する第
1の付加参照重みを加算することによって、前記参照先
オブジェクトが有する総参照重みを更新することを特徴
とする。
判別手段は、前記部分参照重みが所定の下限値よりも小
さいかどうかを判別する第1の判別手段をさらに備えて
もよい。この場合、前記第1の送信手段は、前記第1の
判別手段が所定の下限値よりも小さいと判別したとき
に、正の値を有する第1の付加参照重みを、前記参照要
求と共に送信し、前記第1の総参照重み更新手段は、前
記第1の受信手段が受信した正の値を有する第1の付加
参照重みを加算することによって、前記参照先オブジェ
クトが有する総参照重みを更新するものとすることがで
きる。
元オブジェクトが不要となったかどうかを判別するゴミ
オブジェクト判別手段と、前記ゴミオブジェクト判別手
段が不要と判別したときに、前記参照元オブジェクトか
らの参照を削除するための参照削除要求と共に、前記参
照元オブジェクトが有する部分参照重みに対応する第3
の付加参照重みを前記参照先オブジェクトが存在するモ
ジュールに送信する第3の送信手段と、他のモジュール
が有する第3の送信手段から送信された参照削除要求及
び第3の付加参照重みを受信する第3の受信手段と、前
記第3の受信手段が受信した前記第3の付加参照重みに
従って、前記参照先オブジェクトが有する総参照重みを
更新する第2の総参照重み更新手段と、前記ゴミオブジ
ェクト判別手段が不要と判別したときに、前記参照元オ
ブジェクトのメモリ領域を回収する第1のメモリ領域回
収手段と、を備えるものとすることができる。
に、前記参照先オブジェクトが他のモジュールに存在す
る参照元オブジェクトから参照されておらず、かつ同一
のモジュールに存在する他のオブジェクトからも参照さ
れていないかどうかを判別する参照状態判別手段と、前
記参照状態判別手段が、前記参照オブジェクトが前記参
照元オブジェクトからも前記他のオブジェクトからも参
照されていないと判別したときに、前記参照先オブジェ
クトのメモリ領域を回収する第2のメモリ回収手段と、
を備えてもよい。
観点にかかるメモリ管理装置は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理装置であって、自モジュール内に存在する
オブジェクトに関する情報を他のモジュールに送信する
第1の送信手段と、他のモジュールが有する第1の送信
手段から送信されたオブジェクトに関する情報を受信す
る第1の受信手段と、前記第1の受信手段が受信した前
記オブジェクトに関する情報に基づいて、総参照重みと
して所定の値を設定して、参照先オブジェクトを生成す
る第1の参照先オブジェクト生成手段と、前記第1の受
信手段が受信した前記オブジェクトに関する情報に対す
る返信と共に、前記総参照重みに対応する値を有する第
1の付加参照重みを、前記オブジェクトに関する情報を
送信したモジュールに送信する第2の送信手段と、他の
モジュールが有する第2の送信手段から送信されたオブ
ジェクトに関する情報に対する返信及び部分参照重みを
設定するための第1の付加参照重みを受信する第2の受
信手段と、前記第2の受信手段が受信した前記第1の付
加参照重みを部分参照重みとして設定して、前記オブジ
ェクトを、他のオブジェクトからの参照要求を前記第1
の参照先オブジェクト生成手段によって生成された参照
先オブジェクトに転送するための中継オブジェクトに変
換する第1の中継オブジェクト生成手段と、を備えるこ
とを特徴とする。
成手段によって変換された中継オブジェクトは、オブジ
ェクトの実体をもたなくてもよい。
先オブジェクト生成手段によって生成された前記参照先
オブジェクトに関する情報を他のモジュールに送信する
第3の送信手段と、他のモジュールが有する第3の送信
手段から送信された参照先オブジェクトに関する情報を
受信する第3の受信手段と、前記第3の受信手段が受信
した前記参照先オブジェクトに関する情報に基づいて、
総参照重みとして所定の値を設定して、参照先オブジェ
クトを生成する第2の参照先オブジェクト生成手段と、
前記第3の受信手段が受信した前記参照先オブジェクト
に関する情報に対する返信と共に、前記総参照重みに対
応する値を有する第2の付加参照重みを、前記オブジェ
クトに関する情報を送信したモジュールに送信する第4
の送信手段と、他のモジュールが有する第4の送信手段
から送信された参照先オブジェクトに関する情報に対す
る返信及び部分参照重みを設定するための第2の付加参
照重みを受信する第4の受信手段と、前記第4の受信手
段が受信した前記第2の付加参照重みを部分参照重みと
して設定して、前記参照先オブジェクトを、他のオブジ
ェクトからの転送要求を前記第2の参照先オブジェクト
生成手段によって生成された参照先オブジェクトに転送
するための中継オブジェクトに変換する第2の中継オブ
ジェクト生成手段と、を備えるものとすることができ
る。
よって変換された第2の中継オブジェクトは、オブジェ
クトの実体をもたなくてもよい。
の中継オブジェクト生成手段によって生成された中継オ
ブジェクトが他のオブジェクトからの参照要求を受信し
たときに、所定の値を有する第3の付加参照重みを付加
して前記参照要求を前記第1の参照先オブジェクトを有
するモジュールに転送する第5の送信手段と、他のモジ
ュールの第5の送信手段から転送された参照要求及び第
3の付加参照重みを受信する第5の受信手段と、前記第
5の受信手段が受信した前記第3の付加参照重みに従っ
て、前記第1の参照先オブジェクト生成手段が生成した
参照先オブジェクトが有する総参照重みを更新する総参
照重み更新手段と、前記第5の受信手段が受信した参照
要求に対応する返信と共に、前記第3の付加参照重みに
対応する値を有する第4の付加参照重みと、前記参照先
オブジェクトが存在するモジュールと特定するための特
定情報とを、送信する第6の送信手段と、他のモジュー
ルの第6の送信手段から送信された返信、第4の付加参
照重み及び特定情報を受信する第6の受信手段と、前記
第6の受信手段が受信した前記第4の付加参照重みに従
って最初に参照要求を発したオブジェクトの部分参照重
みを更新し、さらに該オブジェクトの参照先を前記特定
情報に従って更新する参照先更新手段と、前記第6の返
信手段が受信した前記第4の付加参照重みに対応する値
を有する第5の付加参照重みを、前記中継オブジェクト
からの参照を削除するための参照削除要求と共に、前記
参照先オブジェクトを有するモジュールに送信する第7
の送信手段と、他のモジュールの第7の送信手段から送
信された参照削除要求及び第5の付加参照重みを受信す
る第7の受信手段と、前記第7の受信手段が受信した前
記第5の付加参照重みに従って、前記参照先オブジェク
トの総参照重みを更新する総参照重み更新手段と、を備
えるものとすることができる。
に、前記中継オブジェクトが他のオブジェクトから参照
されているかどうかを判別する中継判別手段と、前記中
継判別手段が他のオブジェクトから参照されていないと
判別したときに、前記中継オブジェクトのメモリ領域を
回収するメモリ領域回収手段と、を備えるものとするこ
とができる。
観点にかかるメモリ管理装置は、ネットワークを介して
他のメモリ管理装置と結合され、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理装置であって、該メモリ管理装置内に存在
するオブジェクトに関する情報を含むモジュールに関す
る情報を前記ネットワークを介して他の計算機に送信す
る第1の送信手段と、他のメモリ管理装置の第1の送信
手段から送信されたモジュールに関する情報を受信する
第1の受信手段と、前記第1の受信手段が受信した前記
モジュールに関する情報に基づいて、総参照重みとして
所定の値を設定した参照先オブジェクトを有するモジュ
ールを生成する第1のモジュール生成手段と、前記第1
の受信手段が受信した前記モジュールに関する情報に対
する返信と共に、前記総参照重みに対応する値を有する
前記第1の付加参照重みを、前記第1の受信手段に受信
する第2の送信手段と、他のメモリ管理装置の第2の送
信手段から送信されたモジュールに関する情報に対する
返信及び部分参照重みを設定するための第1の付加参照
重みを受信する第2の受信手段と、前記第2の受信手段
が受信した前記第1の付加参照重みを部分参照重みとし
て設定して、該モジュール内のオブジェクトを、他のオ
ブジェクトからの参照要求を前記モジュールに関する情
報の送信先に転送するための中継オブジェクトに変換し
て中継モジュールを生成する第1の中継モジュール生成
手段と、を備えることを特徴とする。
手段によって変換された中継オブジェクトは、オブジェ
クトの実体をもたなくてもよい。
のモジュール生成手段によって生成された、前記参照先
オブジェクトに関する情報を含むモジュールに関する情
報を、前記ネットワークを介してさらに他の計算機に送
信する第3の送信手段と、他の計算機が有する第3の送
信手段から送信された前記モジュールに関する情報を受
信する第3の受信手段と、前記第3の受信手段が受信し
た前記モジュールに関する情報に基づいて、総参照重み
として所定の値を設定した参照先オブジェクトを有する
モジュールを生成する第2のモジュール生成手段と、前
記第3の受信手段が受信した前記モジュールに関する情
報に対する返信と共に、前記総参照重みに対応する値を
有する第2の付加参照重みを、前記モジュールに関する
情報を送信したモジュールに送信する第4の送信手段
と、他の計算機が有する第4の送信手段が送信した前記
返信及び前記第2の付加参照重みを受信する第4の受信
手段と、前記第4の受信手段が受信した前記第2の付加
参照重みを設定して、前記第1のモジュール生成手段に
よって生成されたモジュール内に含まれる前記参照先オ
ブジェクトを、他のオブジェクトからの転送要求を前記
第2のモジュール生成手段によって生成されたモジュー
ル内に含まれる参照先オブジェクトに転送するための中
継オブジェクトに変換して中継モジュールを生成する第
2の中継モジュール生成手段と、を備えてもよい。
手段によって変換された中継オブジェクトは、オブジェ
クトの実体をもたなくてもよい。
ュール内のすべての中継オブジェクトが他のオブジェク
トから参照されているかどうかを判別する中継判別手段
と、前記中継判別手段がすべての中継オブジェクトが他
のオブジェクトから参照されていないと判別したとき
に、前記中継モジュールのメモリ領域を回収するメモリ
領域回収手段と、を備えるものとすることができる。
観点にかかるメモリ管理方法は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理方法であって、自モジュール内に存在する
オブジェクトに関する情報を他のモジュールに送信する
第1の送信ステップと、前記第1の送信ステップで送信
されたオブジェクトに関する情報を受信する第1の受信
ステップと、前記第1の受信ステップで受信した前記オ
ブジェクトに関する情報に基づいて、総参照重みとして
所定の値を設定して、参照先オブジェクトを生成する参
照先オブジェクト生成ステップと、前記第1の受信ステ
ップで受信した前記オブジェクトに関する情報に対する
返信と共に、前記総参照重みに対応する値を有する第1
の付加参照重みを、前記オブジェクトに関する情報を送
信したモジュールに送信する第2の送信ステップと、前
記第2の送信ステップで送信された前記オブジェクトに
関する情報に対する返信及び部分参照重みを設定するた
めの前記第1の付加参照重みを受信する第2の受信ステ
ップと、前記第2の受信ステップで受信した前記第1の
付加参照重みを部分参照重みとして設定して、前記オブ
ジェクトを、他のオブジェクトからの参照要求を前記第
1の参照先オブジェクト生成手段によって生成された参
照先オブジェクトに転送するための中継オブジェクトに
変換する第1の中継オブジェクト生成ステップと、を含
むことを特徴とする。
ェクト生成ステップで生成された前記参照先オブジェク
トに関する情報を他のモジュールに送信する第3の送信
ステップと、前記第3の送信ステップで送信された前記
参照先オブジェクトに関する情報を受信する第3の受信
ステップと、前記第3の受信ステップで受信した前記参
照先オブジェクトに関する情報に基づいて、総参照重み
として所定の値を設定して、参照先オブジェクトを生成
する第3の参照先オブジェクト生成ステップと、前記第
3の受信ステップで受信した前記参照先オブジェクトに
関する情報に対する返信と共に、前記総参照重みに対応
する値を有する第2の付加参照重みを、前記オブジェク
トに関する情報を送信したモジュールに送信する第4の
送信ステップと、前記第4の送信ステップで送信された
前記返信及び前記第2の付加参照重みを受信する第4の
受信ステップと、前記第4の受信ステップで受信した前
記第2の付加参照重みを部分参照重みとして設定して、
前記参照先オブジェクトを、他のオブジェクトからの転
送要求を前記第2の参照先オブジェクト生成ステップで
生成された参照先オブジェクトに転送するための中継オ
ブジェクトに変換する第2の中継オブジェクト生成ステ
ップと、をさらに含むものとすることができる。
中継オブジェクト生成ステップで生成された中継オブジ
ェクトが他のオブジェクトからの参照要求を受信したと
きに、所定の値を有する第3の付加参照重みに付加して
前記参照要求を前記第1の参照先オブジェクトに転送す
る第5の送信ステップと、前記第5の送信ステップで送
信された前記参照要求及び前記第3の付加参照重みを受
信する第5の受信ステップと、前記第5の受信ステップ
で受信した前記第3の付加参照重みに従って、前記第1
の参照先オブジェクト生成手段が生成した参照先オブジ
ェクトが有する総参照重みを更新する総参照重み更新手
段と、前記第5の受信ステップで受信した参照要求に対
する返信と共に、前記第3の付加参照重みに対応する値
を有する第4の付加参照重みと、前記参照先オブジェク
トが存在するモジュールを特定するための特定情報と
を、送信する第6の送信ステップと、前記第6の送信ス
テップで送信された前記返信、前記第4の付加参照重み
及び前記特定情報を受信する第6の受信ステップと、前
記第6の受信ステップで受信した前記付加参照重みに従
って最初に参照要求を発したオブジェクトの部分参照重
みを更新し、さらに該オブジェクトの参照先を前記特定
情報に従って更新する参照先更新ステップと、前記第6
の受信ステップで受信した前記第4の付加参照重みに対
応する値を有する第5の付加参照重みを、前記参照先オ
ブジェクトを有するモジュールに送信する第7の送信ス
テップと、前記第7の送信ステップで送信された参照削
除要求及び第5の付加参照重みを受信する第7の受信ス
テップと、前記第7の受信ステップで受信した前記第5
の付加参照重みに従って、前記参照先オブジェクトの総
参照重みを更新する総参照重み更新ステップと、を含む
ものとすることもできる。
前記中継オブジェクトが他のオブジェクトから参照され
ているかどうかを判別する中継判別ステップと、前記中
継判別ステップで他のオブジェクトから参照されていな
いと判別したときに、前記中継オブジェクトのメモリ領
域を回収するメモリ領域回収ステップと、を含むものと
してもよい。
観点にかかるメモリ管理方法は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理方法であって、オブジェクトに関する情報
を含むモジュールに関する情報を、該モジュールが存在
する計算機とは異なる他の計算機の送信する第1の送信
ステップと、前記第1の送信ステップで送信されたモジ
ュールに関する情報を受信する情報を受信する第1の受
信ステップと、前記第1の受信ステップで受信した前記
モジュールに関する情報に基づいて、総参照重みとして
所定の値を設定した参照先オブジェクトを有するモジュ
ールを生成するモジュール生成ステップと、前記第1の
受信ステップで受信した前記モジュールに関する情報に
対する返信と共に、前記総参照重みに対応する値を有す
る前記第1の付加参照重みを、前記第1の受信手段に受
信する第2の送信ステップと、前記第2の送信ステップ
で送信されたモジュールに関する情報に対する返信及び
部分参照重みを設定するための第1の付加参照重みを受
信する第2の受信ステップと、前記第2の受信ステップ
で受信した前記第1の付加参照重みを部分参照重みとし
て設定して、該モジュール内のオブジェクトを、他のオ
ブジェクトからの参照要求を前記モジュールに関する情
報の送信先に転送するための中継オブジェクトに変換し
て中継モジュールを生成するする第1の中継モジュール
生成ステップと、を含むことを特徴とする。
のモジュール生成ステップで生成された、前記参照先オ
ブジェクトに関する情報を含むモジュールに関する情報
を、前記ネットワークを介してさらに他の計算機に送信
する第3の送信ステップと、他の計算機が有する第3の
送信ステップで送信された前記モジュールに関する情報
を受信する第3の受信ステップと、前記第3の受信ステ
ップで受信した前記モジュールに関する情報に基づい
て、総参照重みとして所定の値を設定した参照先オブジ
ェクトを有するモジュールを生成する第2のモジュール
生成ステップと、前記第3の受信ステップで受信した前
記モジュールに関する情報に対する返信と共に、前記総
参照重みに対応する値を有する第2の付加参照重みを、
前記モジュールに関する情報を送信したモジュールに送
信する第4の送信ステップと、他の計算機が有する第4
の送信ステップ送信した前記返信及び前記第2の付加参
照重みを受信する第4の受信ステップと、前記第4の受
信ステップ受信した前記第2の付加参照重みを設定し
て、前記第1のモジュール生成ステップで生成されたモ
ジュール内に含まれる前記参照先オブジェクトを、他の
オブジェクトからの転送要求を前記第2のモジュール生
成ステップで生成されたモジュール内に含まれる参照先
オブジェクトに転送するための中継オブジェクトに変換
して中継モジュールを生成する第2の中継モジュール生
成ステップと、を含むものとすることができる。
観点にかかる記録媒体は、他のモジュールに存在するオ
ブジェクトを参照する参照元オブジェクトと前記参照元
オブジェクトから参照される参照先オブジェクトをそれ
ぞれ部分参照重みと総参照重みとによって管理するプロ
グラムを記憶したコンピュータ読み取り可能な記録媒体
であって、自モジュール内に存在するオブジェクトに関
する情報を他のモジュールに送信する第1の送信ステッ
プと、前記第1の送信ステップで送信されたオブジェク
トに関する情報を受信する第1の受信ステップと、前記
第1の受信ステップで受信した前記オブジェクトに関す
る情報に基づいて、総参照重みとして所定の値を設定し
て、参照先オブジェクトを生成する参照先オブジェクト
生成ステップと、前記第1の受信ステップで受信した前
記オブジェクトに関する情報に対する返信と共に、前記
総参照重みに対応する値を有する第1の付加参照重み
を、前記オブジェクトに関する情報を送信したモジュー
ルに送信する第2の送信ステップと、前記第2の送信ス
テップで送信された前記オブジェクトに関する情報に対
する返信及び部分参照重みを設定するための前記第1の
付加参照重みを受信する第2の受信ステップと、前記第
2の受信ステップで受信した前記第1の付加参照重みを
部分参照重みとして設定して、前記オブジェクトを参照
元オブジェクトに変換する参照元オブジェクト生成ステ
ップと、を実現するプログラムを記憶することを特徴と
する。
生成ステップで生成された前記参照先オブジェクトに関
する情報を他のモジュールに送信する第3の送信ステッ
プと、前記第3の送信ステップで送信された前記参照先
オブジェクトに関する情報を受信する第3の受信ステッ
プと、前記第3の受信ステップで受信した前記参照先オ
ブジェクトに関する情報に基づいて、総参照重みとして
所定の値を設定して、参照先オブジェクトを生成する第
3の参照先オブジェクト生成ステップと、前記第3の受
信ステップで受信した前記参照先オブジェクトに関する
情報に対する返信と共に、前記総参照重みに対応する値
を有する第2の付加参照重みを、前記オブジェクトに関
する情報を送信したモジュールに送信する第4の送信ス
テップと、前記第4の送信ステップで送信された前記返
信及び前記第2の付加参照重みを受信する第4の受信ス
テップと、前記第4の受信ステップで受信した前記第2
の付加参照重みを部分参照重みとして設定して、前記参
照先オブジェクトを、他のオブジェクトからの転送要求
を前記第2の参照先オブジェクト生成ステップで生成さ
れた参照先オブジェクトに転送するための中継オブジェ
クトに変換する第2の中継オブジェクト生成ステップ
と、を実現するプログラムをさらに記憶するものとする
ことができる。
ブジェクト生成ステップで生成された中継オブジェクト
が他のオブジェクトからの参照要求を受信したときに、
所定の値を有する第3の付加参照重みに付加して前記参
照要求を前記第1の参照先オブジェクトに転送する第5
の送信ステップと、前記第5の送信ステップで送信され
た前記参照要求及び前記第3の付加参照重みを受信する
第5の受信ステップと、前記第5の受信ステップで受信
した前記第3の付加参照重みに従って、前記第1の参照
先オブジェクト生成手段が生成した参照先オブジェクト
が有する総参照重みを更新する総参照重み更新ステップ
と、前記第5の受信ステップで受信した参照要求に対す
る返信と共に、前記第3の付加参照重みに対応する値を
有する第4の付加参照重みと、前記参照先オブジェクト
が存在するモジュールを特定するための特定情報とを、
送信する第6の送信ステップと、前記第6の送信ステッ
プで送信された前記返信、前記第4の付加参照重み及び
前記特定情報を受信する第6の受信ステップと、前記第
6の受信ステップで受信した前記付加参照重みに従って
最初に参照要求を発したオブジェクトの部分参照重みを
更新し、さらに該オブジェクトの参照先を前記特定情報
に従って更新する参照先更新ステップと、前記第6の受
信ステップで受信した前記第4の付加参照重みに対応す
る値を有する第5の付加参照重みを、前記参照先オブジ
ェクトを有するモジュールに送信する第7の送信ステッ
プと、前記第7の送信ステップで送信された参照削除要
求及び第5の付加参照重みを受信する第7の受信ステッ
プと、前記第7の受信ステップで受信した前記第5の付
加参照重みに従って、前記参照先オブジェクトの総参照
重みを更新する総参照重み更新ステップと、を実現する
プログラムを記憶するものとすることもできる。
継オブジェクトが他のオブジェクトから参照されている
かどうかを判別する中継判別ステップと、前記中継判別
ステップで他のオブジェクトから参照されていないと判
別したときに、前記中継オブジェクトのメモリ領域を回
収するメモリ領域回収ステップと、を実現するプログラ
ムを記憶するものとすることもできる。
観点にかかる記録媒体は、他のモジュールに存在するオ
ブジェクトを参照する参照元オブジェクトと前記参照元
オブジェクトから参照される参照先オブジェクトをそれ
ぞれ部分参照重みと総参照重みとによって管理するプロ
グラムを記憶したコンピュータ読み取り可能な記録媒体
であって、オブジェクトに関する情報を含むモジュール
に関する情報を、該モジュールが存在する計算機とは異
なる他の計算機の送信する第1の送信ステップと、前記
第1の送信ステップで送信されたモジュールに関する情
報を受信する情報を受信する第1の受信ステップと、前
記第1の受信ステップで受信した前記モジュールに関す
る情報に基づいて、総参照重みとして所定の値を設定し
た参照先オブジェクトを有するモジュールを生成するモ
ジュール生成ステップと、前記第1の受信ステップで受
信した前記モジュールに関する情報に対する返信と共
に、前記総参照重みに対応する値を有する前記第1の付
加参照重みを、前記第1の受信手段に受信する第2の送
信ステップと、前記第2の送信ステップで送信されたモ
ジュールに関する情報に対する返信及び部分参照重みを
設定するための第1の付加参照重みを受信する第2の受
信ステップと、前記第2の受信ステップで受信した前記
第1の付加参照重みを部分参照重みとして設定して、該
モジュール内のオブジェクトを、他のオブジェクトから
の参照要求を前記モジュールに関する情報の送信先に転
送するための中継オブジェクトに変換して中継モジュー
ルを生成する第1の中継モジュール生成ステップと、を
実現するプログラムを記憶することを特徴とする。
ュール生成ステップで生成された、前記参照先オブジェ
クトに関する情報を含むモジュールに関する情報を、前
記ネットワークを介してさらに他の計算機に送信する第
3の送信ステップと、他の計算機が有する第3の送信ス
テップで送信された前記モジュールに関する情報を受信
する第3の受信ステップと、前記第3の受信ステップで
受信した前記モジュールに関する情報に基づいて、総参
照重みとして所定の値を設定した参照先オブジェクトを
有するモジュールを生成する第2のモジュール生成ステ
ップと、前記第3の受信ステップで受信した前記モジュ
ールに関する情報に対する返信と共に、前記総参照重み
に対応する値を有する第2の付加参照重みを、前記モジ
ュールに関する情報を送信したモジュールに送信する第
4の送信ステップと、他の計算機が有する第4の送信ス
テップ送信した前記返信及び前記第2の付加参照重みを
受信する第4の受信ステップと、前記第4の受信ステッ
プ受信した前記第2の付加参照重みを設定して、前記第
1のモジュール生成ステップで生成されたモジュール内
に含まれる前記参照先オブジェクトを、他のオブジェク
トからの転送要求を前記第2のモジュール生成ステップ
で生成されたモジュール内に含まれる参照先オブジェク
トに転送するための中継オブジェクトに変換して中継モ
ジュールを生成する第2の中継モジュール生成ステップ
と、を実現するプログラムを記憶するものとすることが
できる。
明の実施の形態について、説明する。
形態に適用されている分散システムの構成を示すブロッ
ク図である。図1を参照すると、この分散システム1
は、分散環境下に存在する計算機100、101、10
2、103が通信回線104を経由してネットワークで
結合されて構成されている。
示す機能ブロック図である。計算機101〜103も、
同様の機能構成を有している。図2に示すように、計算
機100は、中央制御装置(CPU)105、通信装置
106とプログラム制御により動作するモジュール11
0を備えている。
実行する演算を実際に行う装置である。
されており、これを経由してネットワーク上の計算機1
01〜103に対する通信メッセージの送信、受信が行
われる。計算機同士の通信は、互いの計算機が同じ通信
プロトコルを用いることにより成立する。通信装置10
6による通信メッセージの送信、受信により、計算機1
00は、他の計算機101〜103上に存在するオブジ
ェクトを参照したり、または他の計算機101〜103
から内部に存在するオブジェクトから参照されることが
できる。
のモジュール100から成る装置である。データ処理装
置107は、中央制御装置105とは別個に設けられた
サブプロセッサとメモリによって構成しても、実際には
中央制御装置105がメモリ上のプログラムを実行する
ものとして構成するものとしてもよい。
111、実行手段112、リモートアクセス管理手段1
13、ヒープメモリ領域114、ヒープメモリ管理手段
115、被参照テーブル116、参照テーブル117及
び参照重み管理手段118から構成される。
100の個々の実行手段112を順次動作させるための
制御をする。
0とオブジェクト参照実行手段121とから成り、モジ
ュール制御手段111から伝達された応用プログラムの
個々の実行を中央制御装置105と連携して行う。実行
手段112が他の計算機101〜103に対して実行要
求をしたり、逆に他の計算機101〜103から実行要
求されたりする場合には、リモートアクセス管理手段1
13が連携して実行される。
行する手段であり、メソッド実行場所が自らのモジュー
ル110上ならば直ちに実行し、リモートであるならリ
モートアクセス管理手段113にメソッド実行要求通信
メッセージを作成させ、通信装置106から通信回線1
04を経由して実行に指定されたモジュールに送信す
る。
オブジェクトを参照する時、オブジェクト参照実行手段
121が起動させる。オブジェクト参照実行手段121
は、参照すべきオブジェクトがヒープメモリ領域114
内に存在するか否かを調べる。もし存在すれば、オブジ
ェクト参照手段121は、そのままヒープメモリ領域1
14中のオブジェクトを参照する。存在しなければ、オ
ブジェクト参照手段121は、リモートアクセス管理手
段113にオブジェクト参照要求メッセージを作成さ
せ、通信装置106を通して、参照先のモジュールに対
して通信させる。
モジュールとの通信メッセージの送受信を管理する。リ
モートアクセス管理手段113は、全てのオブジェクト
の情報のやりとりするために、送受信するメッセージの
型に応じて「参照重み」なる値をそのメッセージに付加
することにより管理する。
手段112からの要求を受け、必要なデータを元にあら
かじめ定められた規格に従って通信メッセージを作成
し、通信装置106に伝達する。リモートアクセス管理
手段113は、通信メッセージを作成する際に、オブジ
ェクトに関する情報に加えて、参照重み管理手段118
の支援を受けて参照重みを設定する。
した実行要求メッセージを他のモジュールに転送する場
合には、参照重み管理手段118の支援の下にその受信
メッセージに含まれる要求重みに適切な参照重みを与
え、再度、その参照重みを与えた実行要求メッセージを
作成して転送する。
た、通信装置106が受信した通信メッセージをあらか
じめ定められた規格に従って読みとり、実行手段112
に伝達する。
10が他のモジュールとは独立に所有するメモリ領域で
あり、この領域内にオブジェクトを記憶するための領域
(オブジェクト領域)が割り当てられる。
モリ領域114を管理する。すなわち、ヒープメモリ管
理手段115は、実行手段112からの要求によって必
要となったオブジェクトを記憶するための領域をヒープ
メモリ領域114内に確保し、また、不要となったオブ
ジェクト(ゴミオブジェクト)のメモリ領域を識別して
回収し、再利用する(ガーベージコレクション)。
のモジュールのオブジェクトに対してリモート参照して
いるオブジェクトが不要になったと判別すると、リモー
トアクセス管理手段113に命じて参照先のモジュール
に参照削除メッセージを生成させる。
内のオブジェクトからリモート参照されるモジュール1
10内のオブジェクトに関する情報が格納されるテーブ
ルである。被参照テーブル116は、後述するように、
ヒープメモリ領域114内に格納されるものすることが
とできる。
内のオブジェクトが他のモジュールに存在するオブジェ
クトをリモート参照している場合に、その参照先のオブ
ジェクトに関する情報が格納されるテーブルである。参
照テーブル115は、後述するように、ヒープメモリ領
域114内に格納されるものとすることができる。
の所有する被参照テーブル116、参照テーブル117
の参照重みの管理をし、枯渇や余剰を防ぐ手段である。
る時のヒープメモリ領域114のイメージを示す図であ
る。
ブジェクトが存在する。
ソッド132とを備え、ヒープメモリ領域114内に確
保されるメモリ領域の最小単位となる。オブジェクト1
30は、分散システム1上で唯一のものであり、オブジ
ェクト130の存在する計算機100のネットワーク上
のIPアドレスとオブジェクト識別子OIDとによって
一意に識別される。
大域変数などの実行環境を整備し、実際の実行を可能と
する情報からなり、メソッド132の参照によってメソ
ッド実行手段120が生成、実行される。
7の領域を指すポインタである。
内のオブジェクトからモジュール110内のオブジェク
トがリモート参照されている場合、オブジェクト130
の情報、具体的には、OID134、総参照重み13
5、参照ポインタ136を格納する。
0のオブジェクト130が他のモジュール内のオブジェ
クトをリモート参照している場合に、オブジェクト13
0領域内の参照ポインタ133からたどられるテーブル
である。参照テーブル117には、リモート参照してい
るオブジェクトのOID137と参照オブジェクトの部
分参照重み138とそのオブジェクトが存在する計算機
のネットワーク上のIPアドレス139とが格納されて
いる。
の重みであり、これによって、分散システム1上でオブ
ジェクトを参照しているオブジェクトが管理される。
114中のオブジェクト130領域を指すポインタであ
る。
のオブジェクトをリモート参照しているオブジェクト
が、その参照先オブジェクトに対して所有する参照重み
であり、総参照重み135と同様に、分散システム1上
のオブジェクトを管理するために用いられる。
104上を流れる通信メッセージの形式をを示す図であ
る。図4に示すように、通信メッセージ160は、宛先
部150、型部151、オブジェクト部155、その他
の部分から成る。
に相当するもので、メッセージの送信先の宛先(IPア
ドレスなど)を格納する。
な種類のメッセージであるか(参照要求であるか、メソ
ッド要求の返信であるかなど)を定める型情報を格納す
る。
の情報を格納する部分であり、具体的には、参照重み部
152、OID部153、フラグ部154、その他のデ
ータから構成される。
0内の各オブジェクトに付加される付加参照重みを格納
する。付加参照重みは、オブジェクトの管理情報として
用いられる。通信メッセージ160の受信側のモジュー
ルは、通信メッセージの型部151によって定まる通信
メッセージの種類に依存した方法で、付加参照重みを取
り扱う。例えば、通信メッセージ160が参照削除メッ
セージであれば、付加参照重みは、参照削除を要求され
たオブジェクトが自らの総参照重みから減らすべき参照
重みを意味する。
IDを格納する。
ラグは、オブジェクト部155に相当するオブジェクト
が、モジュール内に存在したものである(ローカル)
か、モジュール外のオブジェクトを参照するオブジェク
ト(リモート)であるかを識別するための識別子であ
る。
オブジェクトの所有するデータ、リモートオブジェクト
であれば、その参照先のオブジェクトの情報などが格納
される。
0の動作について、説明する。なお、この実施の形態で
は、計算機101〜103も、計算機100と同様に動
作する。
の動作を示すフローチャートである。リモートアクセス
管理手段113は、実行手段112の実行中に何らかの
事象が発生すると(ステップS1)、発生した事象がど
のような事象であったかどうかを判別する(ステップS
2)。実行手段112の実行中に発生する事象には、以
下のものが挙げられる。
ミリモートオブジェクトの発見 2.他のモジュールからの参照削除メッセージの受信 3.リモートオブジェクトへの参照要求の発生 4.他のモジュールからのオブジェクト参照要求メッセ
ージの受信 5.リモートオブジェクトに対するメソッドの実行 6.他のモジュールからのメソッド実行要求メッセージ
の受信 7.他のモジュールからの返信メッセージの受信 8.部分参照重みの枯渇 9.参照重み補充要求メッセージの受信
ップS2で判別した事象の種別に応じて、次のような処
理をそれぞれ実行し、或いは他の手段に実行させる。以
下、リモートアクセス管理手段113が実行する、或い
は他の手段に実行させる処理について、発生した事象毎
に分けて説明する。
リ管理手段115によるゴミリモートオブジェクトの発
見」であると判別された場合に実行される処理を示すフ
ローチャートである。
ラム実行中に、ヒープメモリ管理手段115が、別のモ
ジュールのオブジェクトをリモート参照するのみで、実
体をもたないオブジェクト(リモートオブジェクト)を
不要なゴミオブジェクトとして判別すると、その旨がリ
モートアクセス管理手段113に知らされる。(ステッ
プA1)。
ートオブジェクト領域の参照ポインタを通じてオブジェ
クトの参照テーブルの情報を調べ、参照先オブジェクト
の存在するモジュールへ送信すべき参照削除メッセージ
の作成を開始する(ステップA2)。
は、前記通信メッセージにおける前記オブジェクトの参
照先オブジェクトの情報として、前記参照テーブル11
7のOID、IPアドレスなどの情報を格納する。さら
に、リモートアクセス管理手段113は、参照重み管理
手段118を呼び出して、参照重み部に格納すべき付加
参照重みの値を決定させる。
ブルの部分参照重みの値をリモートアクセス管理手段1
13に伝え、リモートアクセス管理手段113は、参照
重み管理手段118から伝えられた値を付加参照重みと
してメッセージに格納する(ステップA3)。
は、前記参照先オブジェクトを所有するモジュールに対
して、ステップA2、A3で生成した参照削除メッセー
ジを通信装置106を通して送信する(ステップA
4)。
報の格納が完了した後、ヒープメモリ管理手段115に
より、不要となったヒープメモリ領域114中の前記リ
モートオブジェクト領域は回収され、前記参照テーブル
領域中の前記リモートオブジェクトに関する領域は再利
用されることになる(ステップA5)。
ールからの参照削除メッセージの受信」であると判別さ
れた場合に実行される処理を示すフローチャートであ
る。
るモジュールが、前記オブジェクトをリモート参照する
モジュールからの、前記オブジェクトに対する参照削除
メッセージを通信装置106から受信すると(ステップ
B1)、リモートアクセス管理手段113が起動する。
した参照削除メッセージに含まれているオブジェクトの
OIDと付加参照重みを読み込み、読み込んだOIDの
オブジェクトに対応する被参照テーブル116の領域を
調べる。リモートアクセス管理手段113は、被参照テ
ーブル116の総参照重みから、付加参照重みの値分を
減じ、減じた結果を新たな総参照重みとして格納する
(ステップB2)。
は、前記オブジェクトの総参照重みが「0」であるか否
かを調べる(ステップB3)。総参照重みが「0」でな
ければ、このフローチャートの処理を終了する。
ップB5)、リモートアクセス管理手段113は、他の
モジュールに存在するオブジェクトから、何一つとして
リモート参照されなくなったとみなし、オブジェクトへ
の参照ポインタを取り外し(ステップB6)、被参照テ
ーブル内のそのオブジェクトの領域をクリアして、再利
用できるようにする(ステップB7)。ヒープメモリ領
域114内において、前記オブジェクトを参照するロー
カルオブジェクトが何一つなくなれば、その後、ヒープ
メモリ管理手段115によって、前記オブジェクト領域
は回収される。
ブジェクトへの参照要求の発生」であると判別された場
合に実行される処理を示すフローチャートである。
21が、リモートオブジェクトに対して参照要求をする
場合、リモートアクセス管理手段113が呼び出され
る。
ートオブジェクトが直接参照するリモート参照先オブジ
ェクト(ここでは、対象オブジェクトと呼ぶ)の存在す
るモジュールに対する参照要求メッセージの作成を開始
する(ステップC1)。
は、前記対象オブジェクトに付加する、付加参照重みの
値を決定するために、参照重み管理手段118を呼び出
す。
の均衡化をはかるため、多ければ、参照先へ参照重みを
返却し、少なければ、参照重みの補充要求するように、
参照重みを制御する。参照重み管理手段118は、前記
メッセージ中に格納する前記対象オブジェクトの部分参
照重みと、あらかじめ定められた下限値とを比較する
(ステップC2)。
限値より小さければ(ステップC3)、参照重み管理手
段118は、正の既定値をリモートアクセス管理手段1
13に知らせる。リモートアクセス管理手段113は、
知らされた正の既定値を付加参照重みとしてメッセージ
に格納する(ステップC4)。付加参照重みが正の場合
は、オブジェクトへの参照要求メッセージに、付加参照
重み分の参照重みの補充要求が多重化される。
前記下限値以上であれば(ステップC5)、参照重み管
理手段118は、さらに、あらかじめ定められた上限値
とを比較する(ステップC6)。
らば(ステップC7)、参照重み管理手段118は、部
分参照重みに負の既定値を加えて更新する(ステップC
8)。そして、参照重み管理手段118は、対象オブジ
ェクトへの付加参照重みとして、前記負の既定値をリモ
ートアクセス手段113に知らせる。リモートアクセス
手段113は、知らされた負の既定値を付加参照重みと
してメッセージに格納する(ステップC9)。負の付加
参照重みは、参照重みの返却要求を意味する。すなわ
ち、参照要求と同時に、参照重みの返却を、単一のメッ
セージ送信によって行う。
照重みが上限値以下ならば(ステップC11)、参照重
み管理手段118は、付加参照重みにすべき値として
「0」をリモートアクセス制御手段113に知らせる。
リモートアクセス制御手段113は、知らされた「0」
を付加参照重みとしてメッセージに格納して(ステップ
C12)、前記対象オブジェクトのリモート参照先へ送
信する(ステップC10)。
ールからのオブジェクト参照要求メッセージの受信」で
あると判別された場合に実行される処理を示すフローチ
ャートである。
ブジェクト参照要求メッセージを受信すると、リモート
アクセス管理手段113が呼び出される。リモートアク
セス管理手段113は、メッセージの型を読みとり、参
照要求であることを知る(ステップD1)。
は、参照重み管理手段118を呼び出す。参照重み管理
手段118は、前記受信メッセージに格納されている参
照要求をされたオブジェクト(ここでは、対象オブジェ
クトと呼ぶ)の付加参照重みを調べる(ステップD
2)。
ば(ステップD3)、前記付加参照重みの値分の参照重
み補充要求がされたことになり、参照重み管理手段11
8は、後に返信メッセージ、あるいは、さらに転送する
参照要求メッセージを作成する時に使用するために、参
照重み補充要求分を表す変数reqを用意し、これに前記
受信メッセージの前記対象オブジェクトの付加参照重み
を格納する(ステップD4)。
れば(ステップD5)、前記対象オブジェクトの総参照
重みに前記付加参照重みの値分を加えて、更新する(ス
テップD6)。すなわち、前記付加参照重みが「0」よ
り小さければ、参照重みは返却される。次に、参照重み
管理手段118は、後の返信メッセージ、あるいは、さ
らに転送する参照要求メッセージ作成時に使用するため
に、変数reqを用意して、これに「0」を格納する(ス
テップD7)。
要求分を知らされたリモートアクセス管理手段113
は、前記対象オブジェクトがローカルかリモートかを調
べる(ステップD8)。
9)、前記対象オブジェクトのリモート参照先オブジェ
クトに対して、参照要求を転送するために、新たな参照
要求メッセージを作成を開始する(ステップD10)。
その新たなメッセージに格納される、前記対象オブジェ
クトの参照先オブジェクトに付加する付加参照重みとし
て、変数reqの値と既定値を加えた値を格納し(ステッ
プD11)、参照要求メッセージを送信する(ステップ
D18)。
クトがローカルであれば(ステップD12)、リモート
アクセス管理手段113は、参照重み管理手段118を
呼び出して、前記対象オブジェクトの総参照重みに変数
reqの値を加えて更新させる(ステップD13)。さら
に、リモートアクセス管理手段113は、オブジェクト
参照実行手段121を呼び出して、要求された参照を求
める処理を実行させた後、その結果を返信する返信メッ
セージの作成を開始する(ステップD14)。
は、前記返信メッセージにおいて前記対象オブジェクト
の最新の情報と共に付加される付加参照重みに、変数re
qの値を格納する(ステップD15)。
ブジェクト参照実行手段121が得た、参照要求に対す
る結果となる参照のオブジェクト(ここでは、返値オブ
ジェクトと呼ぶ)の総参照重みの更新をする。さらに、
もし、前記返値オブジェクトが被参照テーブルになけれ
ば、参照重み管理手段118は、確保して新たに登録し
た後に、既定値分の参照重みを加える(ステップD1
6)。
は、前記返信メッセージにおける前記返値オブジェクト
の付加参照重みとして、既定値を格納し(ステップD1
7)、返信メッセージを完成し、参照要求をしたオブジ
ェクトが存在するモジュールに送信する(ステップD1
8)。
オブジェクトに対するメソッドの実行」であると判別さ
れた場合に実行される処理を示すフローチャートであ
る。
リモートオブジェクトに対してメソッド実行呼び出しを
行った場合、リモートアクセス管理手段113によるメ
ソッド実行要求メッセージの作成が開始される。リモー
トアクセス管理手段113は、メソッド実行要求を表す
あらかじめ定められた規格通りにメッセージを作成す
る。
参照重み管理手段118は、前記呼び出しを受けたリモ
ートオブジェクト(以下では、対象オブジェクトと呼
ぶ)の情報を前記実行要求メッセージに格納するための
処理を行う。メソッド実行呼び出しを受ける対象オブジ
ェクトに対する処理は、参照要求を受ける対象オブジェ
クトに対する処理と本質的には同様であり、広い意味で
は、メソッド実行は、参照要求に含めて考えることもで
きる。(後述するステップE1〜E10の処理は、リモ
ートオブジェクトへの参照要求メッセージでの操作と実
質、同様である。)
ジェクトの部分参照重みが、あらかじめ定められた下限
値より小さいか否かを調べ(ステップE1)、もし、前
記下限値より小さければ(ステップE2)、リモートア
クセス管理手段113は、対象オブジェクトの付加参照
重みに、正の既定値を格納する(ステップE3)。
象オブジェクトの部分参照重みが、前記下限値以上であ
れば(ステップE4)、余剰の部分参照重みを返却する
ために、前記対象オブジェクトの部分参照重みが、あら
かじめ定められた上限値より大きいか否かを調べる。
(ステップE5)。
(ステップE9)、参照重み管理手段118は値「0」
をリモートアクセス管理手段113に知らせ、リモート
アクセス管理手段113は、前記対象オブジェクトの付
加参照重みに「0」を格納する(ステップE10)。一
方、前記部分参照重みが既定値より大きければ(ステッ
プE6)、参照重み管理手段118は、リモートアクセ
ス管理手段113に負の既定値を知らせ、それを受けた
リモートアクセス管理手段113は、前記部分参照重み
に負の既定値を加えて更新し(ステップE7)、前記付
加参照重みに負の既定値を格納する(ステップE8)。
は、呼び出された前記メソッドの引数となるオブジェク
ト群(以下では、引数オブジェクトと呼ぶ)が存在する
場合に、前記実行要求メッセージに前記引数オブジェク
トの情報を格納する処理を行う。まず、リモートアクセ
ス手段113は、前記引数オブジェクトがモジュール内
に存在するか(ローカル)か、あるいは、モジュール外
に存在するか(リモート)かを調べる(ステップE1
1)。
あれば(ステップE12)、リモートアクセス管理手段
113は、そのリモート参照先が前記対象オブジェクト
の参照先と同一か否かを調べる(ステップE13)。も
し、同一であれば(ステップE14)、前記引数オブジ
ェクトに付加する付加参照重みとして、「0」を格納す
る(ステップE15)。
ブジェクトと対象オブジェクトの参照先が異なれば(ス
テップE16)、リモートアクセス管理手段113は、
参照重み管理手段118を呼び出し、参照重みの分配を
させる。参照重み管理手段118は、前記引数オブジェ
クトの部分参照重みの値を調べる(ステップE17)。
いならば(ステップE19)、リモートアクセス管理手
段113は、後述する図15のステップJに移り(ステ
ップE20)、参照重み補充要求メッセージを作成し
て、リモート参照先へ送信、返信メッセージを受信し、
部分参照重みを補充する(ステップE21)。
照重みが1より大きいならば(ステップE18)、参照
重み管理手段118は、何もせずに次の処理へ移る。そ
して、参照重み管理手段118は、部分参照重みを分割
して更新する(ステップE22)。リモートアクセス管
理手段113は、前記引数オブジェクトの付加参照重み
として、ステップE22において、減少した参照重み分
を格納する(ステップE23)。
オブジェクトがローカルであれば(ステップE24)、
参照重み管理手段118は、前記引数オブジェクトの総
参照重みに既定値を加えて更新する(ステップE2
5)。リモートアクセス管理手段113は、前記引数オ
ブジェクトの付加参照重みとして、既定値を格納する
(ステップE26)。
メソッドにおける全ての引数オブジェクトに対して、付
加参照重みの格納が終了したか否かを調べる(ステップ
E27)。
8)、ステップE11に戻り、同様の処理を繰り返す。
一方、終了していれば(ステップE29)、前記メソッ
ド実行要求メッセージの作成を完了し、送信する(ステ
ップE30)。
ュールからのメソッド実行要求メッセージの受信」であ
ると判別された場合に実行される処理を示すフローチャ
ートである。メソッド実行を呼び出された対象オブジェ
クトに対する処理は、参照要求を受けた対象オブジェク
トに対する処理と本質的には同じである。
らのメッセージを受信し、メッセージに含まれている情
報を読みとると、リモートアクセス管理手段113が呼
び出される(ステップF1)。
したメッセージに格納されているメソッドを呼び出され
たオブジェクト(ここでは、対象オブジェクトと呼ぶ)
の付加参照重みの値を調べる(ステップF2)。
ば(ステップF5)、リモートアクセス管理手段113
は、参照重み管理手段118を呼び出し、前記対象オブ
ジェクトの総参照重みに前記付加参照重みを加えて更新
させる(ステップF6)。そして、参照重み管理手段1
18は、後に、前記対象オブジェクトに関する参照重み
の処理を行うために、参照重み要求分を示す変数reqを
用意し、これに「0」を格納する(ステップF7)。
ジェクトの付加参照重みが「0」より大きければ(ステ
ップF3)、リモートアクセス管理手段113は、参照
重み補充要求を受けて、参照重み要求分を示す変数req
を用意し、前記付加参照重みを格納する(ステップF
4)。
は、前記対象オブジェクトがローカルであるか否かを調
べる(ステップF8)。もし、リモートであれば(ステ
ップF9)、リモートアクセス管理手段113は、前記
対象オブジェクトのリモート参照先オブジェクトに対し
てさらなるメソッド要求を転送するために、メソッド要
求メッセージの作成を開始する(ステップF10)。
は、前記メソッド実行要求メッセージにおける対象オブ
ジェクトの参照先オブジェクトに付加する付加参照重み
として、変数reqの値と既定値の和を格納する(ステッ
プF11)。ここにおける変数reqは、受信したメソッ
ド実行要求メッセージによって要求された参照重みを表
す。
は、転送すべき前記メソッド実行要求メッセージに、メ
ソッドの引数となる引数オブジェクトの情報を格納する
処理を行う。この時、リモートアクセス管理手段113
は、前記受信メッセージにおける前記引数オブジェクト
の付加参照重みの値を調べる(ステップF12)。
なれば(ステップF13)、リモートアクセス管理手段
113は、前記引数オブジェクトの付加参照重みに、受
信メッセージにおける前記引数オブジェクトの付加参照
重みを格納する(ステップF14)。
数オブジェクトの付加参照重みの値が「0」と等しけれ
ば(ステップF15)、図11のステップHに処理を移
す。
引数オブジェクトが、ローカルであるか否かを調べる
(図13のステップH1)。もし、ローカルであれば
(ステップH2)、参照重み管理手段118を呼び出し
て、前記引数オブジェクトの総参照重みに既定値を加え
て更新させ(ステップH3)、転送するメソッド要求メ
ッセージの前記引数オブジェクトの付加参照重みに既定
値を加える(ステップH4)。
トがリモートであった場合(ステップH5)、リモート
アクセス管理手段113は、前記対象オブジェクトとリ
モート参照先が同じか否かを調べる(ステップH6)。
モートアクセス管理手段113は、前記引数オブジェク
トの付加参照重みに「0」を格納する(ステップH1
6)。一方、前記対象オブジェクトとリモート参照先が
異なれば(ステップH7)、リモートアクセス管理手段
113は、参照重み管理手段118を呼び出して、参照
重みを分配する処理を実行させる。
ジェクトの部分参照重みが「1」より大きいか調べる
(ステップH8)。もし、前記部分参照重みが「1」以
下であれば(ステップH10)、リモートアクセス手段
113は、リモート参照先に対して参照重み補充要求メ
ッセージを作成して送信し(ステップH13、図15の
ステップJ)。返信メッセージを受信して、部分参照重
みの補充を行う(ステップH14)。
重みが1より大きければ(ステップH9)、参照重み管
理手段118は、ステップH11へ処理を移し、前記部
分参照重みを分割し(ステップH11)、リモートアク
セス管理手段113は、前記引数オブジェクトの付加参
照重みに、前記部分参照重みの減少分を格納する(ステ
ップH12)。
設定をした後、リモートアクセス管理手段113は、全
ての引数オブジェクトにおいて処理が終了したか否かを
調べる(ステップF17)。
F17に戻り、全ての引数オブジェクトの処理を完了す
るまで繰り返す(ステップF19)。全ての引数オブジ
ェクトの処理を完了すれば(ステップF18)、リモー
トアクセス管理手段113は、作成した前記メソッド実
行要求メッセージを前記対象オブジェクトのリモート参
照先のモジュールへ送信する(ステップF31)。
象オブジェクトがローカルであれば(ステップF2
0)、このモジュール内で、メソッド実行手段120に
より、前記メソッドの実行が開始される。その際に、前
記メソッドの引数となる引数オブジェクトの参照重みが
更新される。
引数オブジェクトの付加参照重みを調べ(ステップF2
1)、もし、「0」であれば(ステップF22)、ステ
ップF25に処理を移し、「0」でなければ(ステップ
F23)、前記引数オブジェクトの部分参照重みの更新
を行うために、ステップG(図12)に処理を移す。
ップGにおいて、まず、被参照テーブル116中に前記
引数オブジェクトが登録されているか否かを調べる(ス
テップG1)。
リモートアクセス管理手段113は、参照重み管理手段
118を呼び出して、前記引数オブジェクトの総参照重
みから、前記付加参照重みの値を減じて更新させる(ス
テップG3)。これにより、リモート参照されるオブジ
ェクトが自らに対して、リモート参照を生成することを
防ぐ。
ジェクトが被参照テーブル116中に登録されていなけ
れば(ステップG4)、リモートアクセス管理手段11
3は、前記引数オブジェクトに対してリモート参照する
リモートオブジェクトがヒープメモリ領域114内に存
在するか否かを調べる(ステップG5)。
れば(ステップG6)、リモートアクセス管理手段11
3は、ヒープメモリ管理手段115を呼び出し、リモー
トオブジェクト領域を新たに確保し、リモートオブジェ
クトを生成させる(ステップG7)。さらに、リモート
アクセス管理手段113は、前記引数オブジェクトのO
ID、IPアドレスなどの値を設定し(ステップG1
2)、参照重み管理手段118を呼び出して、受信した
前記付加参照重みを部分参照重みに格納させる(ステッ
プG13)。
ジェクトが既にリモートとして存在すれば(ステップG
8)、リモートアクセス管理手段113は、前記引数オ
ブジェクトの参照先情報が変わっているかどうか調べる
(ステップG9)。
照重み管理手段118は、前記引数オブジェクトの部分
参照重みに前記受信メッセージの前記引数オブジェクト
の付加参照重みを加えて更新する(ステップG15)。
一方、前記引数オブジェクトの参照先情報が変わってい
れば(ステップG10)、リモートオブジェクトが保持
していた参照先に対する参照削除メッセージを作成し
て、送信する(ステップG11)。次に、参照重み管理
手段118は、OID、IPアドレスを格納し(ステッ
プG12)、前記部分参照重みを受信メッセージの前記
引数オブジェクトの付加参照重みとして格納する(ステ
ップG13)。
ップF21からステップF24の処理を全ての引数オブ
ジェクトに対して処理を終了したか否かを調べる(ステ
ップF25)。もし、終了していなければ(ステップF
26)、全てを終了するまで繰り返す。
重み管理手段118は、前記対象オブジェクト情報の総
参照重みに変数reqの値を加えて更新する(ステップF
28)。次に、リモートアクセス管理手段113は、前
記メソッドを実行した結果を格納した返信メッセージの
作成を開始し(ステップF29)、前記対象オブジェク
トの付加参照重みとして、変数reqの値を格納する(ス
テップF30)。そして、メッセージ作成を完了し、返
信メッセージを送信する(ステップF31)。
ュールからの返信メッセージの受信」であると判別され
た場合に実行される処理を示すフローチャートである。
すると、リモートアクセス管理手段113は、メッセー
ジに格納される型を読み込み、返信であることを確認す
る(ステップI1)。
は、前記メッセージ中に格納される、前記返信メッセー
ジの元のメッセージを送信したオブジェクト(ここで、
対象オブジェクトと呼ぶ)の最新情報と、モジュール内
の前記対象オブジェクト情報を比較して、同一か否かを
調べる(ステップI2)。
3)、リモートアクセス管理手段113は、自らの存在
するモジュール内の前記対象オブジェクト情報を更新す
る必要はなく、後に、さらなる返信メッセージの転送す
る際の、前記対象オブジェクトの付加参照重みの格納処
理のために用いる変数weightを用意し、これに前記受信
メッセージの前記対象オブジェクトに付加された付加参
照重みを格納する(ステップI4)。
ジェクトが更新されていれば(ステップI5)、リモー
トアクセス管理手段113は、所有しているリモート参
照先の情報は無意味となったので、図6のステップAに
移り、参照削除メッセージを作成して、送信する(ステ
ップI6)。
は、参照重み管理手段118を呼び出して、前記対象オ
ブジェクトの部分参照重みに、新たな部分参照重みとし
て既定値を格納させ(ステップI7)、前記対象オブジ
ェクトのIPアドレスなどの最新情報を格納させる(ス
テップI8)。さらに、後の処理のために、変数weight
を用意し、これに、前記対象オブジェクトの付加参照重
みから既定値を減じた値を格納する(ステップI9)。
は、自らの存在するモジュールが、最初にメッセージを
送信した元であるか否かを調べる(ステップI10)。
もし、自らの存在するモジュールが要求元であれば(ス
テップI11)、返信をそれ以上に転送する必要はな
く、処理は終了する。
ではなく、受信した要求メッセージをさらに転送してい
たならば、リモートアクセス管理手段113は、返信メ
ッセージを、また、逆方向に前記要求メッセージを送信
してきた相手モジュールに返送することになる。リモー
トアクセス管理手段113は、さらなる返信の転送を行
うためのメッセージの作成を開始する(ステップI1
2)。
メッセージにおける前記対象オブジェクトの付加参照重
みとして、以前の処理で確保された変数weightの値を格
納する(ステップI13)。
は、メッセージの型を調べ(ステップI14)、もし、
オブジェクト参照要求メッセージに対する返信以外のも
のであったなら(ステップI15)、ここで作成を完了
し、前記メッセージを送信する(ステップI18)。
ップI16)、リモートアクセス管理手段113は、返
り値としての参照(この参照先のオブジェクトを、ここ
では返値オブジェクトと呼ぶ)を前記メッセージに格納
し、前記返値オブジェクトの付加参照重みとして、前記
受信した返信メッセージの前記返値オブジェクトの付加
参照重みの値をそのまま格納し(ステップI17)、作
成した前記返信メッセージを送信する(ステップI1
8)。
重みの枯渇」であると判別された場合に実行される処理
を示すフローチャートである。
ジェクトがリモート参照を分配する際に、そのオブジェ
クトの部分参照重みの値が1以下のため、参照重みを分
割することができなくなった場合に、リモートアクセス
管理手段113は、前記リモートオブジェクトのリモー
ト参照先に対して、参照重み補充要求をするために、メ
ッセージの作成を開始する(ステップJ1)。
参照重み補充要求メッセージに格納される前記リモート
オブジェクトの参照先オブジェクト情報への付加参照重
みとして、規定値を格納して(ステップJ2)、作成し
た前記メッセージを送信する(ステップJ3)。
補充要求メッセージの受信」であると判別された場合に
実行される処理を示すフローチャートである。
と、リモートアクセス管理手段113は、前記メッセー
ジを読みとり、参照重み補充要求であることを確認する
(ステップK1)。
みを要求されているオブジェクトの総参照重みを、前記
受信メッセージの前記オブジェクトの付加参照重み分だ
け増加させ、更新する(ステップK2)。
は、参照重み補充要求に対する返信メッセージを作成を
開始し(ステップK3)、そのメッセージ中に格納する
前記オブジェクトの付加参照重みに前記受信メッセージ
における前記オブジェクトの付加参照重みの値をそのま
ま格納し(ステップK4)、作成した前記メッセージを
送信する(ステップK5)。
施の形態にかかる分散システム1における動作を、具体
例に基づいて説明する。
らの参照要求メッセージを受信し、オブジェクト181
の情報を返信すると仮定する。
2にオブジェクト181に関する領域を確保して、OI
D183にオブジェクト181、総参照重み184に参
照重みの既定値(ここでは、「8」とする。)、参照ポ
インタ185にオブジェクト181のヒープメモリ領域
でのメモリアドレスを格納する。
ージにオブジェクト181のOID、モジュール180
のIPアドレス、参照重み「8」を付加参照重みとして
格納して、モジュール170に返送する(図17)。
信して、まず、リモートオブジェクト171をヒープメ
モリ領域に確保する。そして、受信した返信メッセージ
をもとに、参照テーブル172内にオブジェクト171
用の領域を確保し、OID173にオブジェクト「18
1」、IPアドレス175にモジュール180の計算機
のIPアドレス、部分参照重み174に受信した付加参
照重み「8」を格納する。そして、オブジェクト171
の参照ポインタ176にテーブル172のオブジェクト
171の領域のメモリアドレスを格納し、オブジェクト
181へのリモート参照を生成する(図18)。
190からモジュール170に対してメソッド実行要求
メッセージが送信され、モジュール170がオブジェク
ト171の情報を返信メッセージに含めて返信すると仮
定する。
て、オブジェクト171のOID173の値「181」
をメッセージに格納する。そして、モジュール170
は、部分参照重み174を半減させて、「4」を新たな
部分参照重み174として再格納し、残りの参照重み
「4」を付加参照重みとして返信メッセージを作成し、
モジュール190に返信メッセージを送信する(図1
9)。
0は、リモートオブジェクト191をヒープメモリ領域
に確保し、自らの参照テーブル192内にオブジェクト
191の領域を確保する。そして、モジュール190
は、受信した返信メッセージに含まれていたオブジェク
ト181に関する情報より、OID193にオブジェク
ト180、部分参照重み194に受信した付加参照重み
「4」、IPアドレスにモジュール180のIPアドレ
スを格納する。これにより、モジュール170は、自ら
が所有していたモジュール180のオブジェクト181
に関する参照重みを、モジュール190のオブジェクト
191に分配した(図20)。
ートオブジェクト171、191からリモート参照され
ていることになるが、オブジェクト171、191がそ
れぞれ所有する部分参照重みの和は、オブジェクト18
1が所有する総参照重みに等しく、総参照重み184に
よって、オブジェクト181の全てのリモート参照が管
理されている。
管理手段が、オブジェクト191をゴミオブジェクトと
判別したとすると、モジュール190のリモートアクセ
ス管理手段は、オブジェクト191の参照先であるモジ
ュール180に対して、部分参照重み194の値「4」
とOID193の値「181」を参照削除メッセージに
格納して送信する。そして、モジュール190のヒープ
メモリ管理手段は、オブジェクト191の領域を回収
し、参照テーブル192上のオブジェクト191の領域
をクリアする(図21)。
180のリモートアクセス管理手段は、受信メッセージ
のOIDを調べ、被参照テーブル182の総参照重み1
84の値から「4」を減じて「4」とする(図22)。
70がオブジェクト171を通して、オブジェクト18
1に参照要求メッセージを送信すると仮定する。ここに
おいて、図8のステップC2における部分参照重みの下
限値を「5」と仮定すると、モジュール170の参照重
み管理手段は、既定値(ここでは「8」と仮定する)
を、オブジェクト181の付加参照重みに格納した参照
要求メッセージをモジュール180に送信する(図2
3)。
ジを受信したモジュール180は、被参照テーブル18
2中に、オブジェクト181の領域が存在することを確
認して、受信したメッセージ中に含まれる付加参照重み
「8」を総参照重み184に加えて新たに「12」を格
納する。そして、要求された参照重み分を参照要求メッ
セージに対する返信メッセージの付加参照重みとして
「8」を格納して返信する(図24)。
信して、その付加参照重み「8」を自らの部分参照重み
174に加えて更新し、「12」とする(図25)。
定する部分参照重みの上限値(図8のステップC6)を
「40」、その際に付加参照重みに格納される負の既定
値を「−20」と仮定する。その後、オブジェクト17
1の部分参照重み、オブジェクト181の総参照重みが
増加し、それぞれ「50」になり、次にオブジェクト1
71がモジュール180に対して参照要求メッセージを
送信する場合を考察する(図26)。
値を越えたので、モジュール170の参照重み管理手段
は、参照要求メッセージに付加参照重みとして「−2
0」を、モジュール180に送信する(図27)。
は、受信した付加参照重みを総参照重み184に加え
る。すなわち、モジュール180は、総参照重み184
の値「50」から参照重み「20」を減じて「30」と
する(図28)。
管理手段は、オブジェクト171をゴミオブジェクトと
判別したとすると、参照削除メッセージをモジュール1
80に送信する。オブジェクト171はヒープメモリ管
理手段によって回収され、参照テーブル172のオブジ
ェクト171の領域もクリアされる(図29)。
180は、受信メッセージのOIDに従って被参照テー
ブル182の総参照重み184から「30」を減じる。
総参照み184が「0」となったので、参照テーブル1
82中のオブジェクト181の領域はクリアされる。そ
の後、オブジェクト181の領域は、もし、モジュール
180内の他のオブジェクトからも参照されなくなれ
ば、ヒープメモリ管理手段によって回収される(図3
0)。
る。
8がオブジェクトの情報がやりとりされる際に付加する
付加参照重みを、オブジェクトの部分参照重みの値に応
じて動的に定めている。これにより、部分参照重みが不
足しそうな場合、参照要求メッセージやメソッド要求メ
ッセージに付加させて、参照重みの補充を要求し、返信
メッセージから要求した参照重みを受けとり、参照重み
を増加させることができる。
性が少なくなり、参照を分配することができる。しか
も、重みを増加させるために、余分な通信を発生させて
いない。部分参照重みが増え過ぎた場合も同様で、付加
参照重みに負の値を設定することにより、参照重みを返
却することができ、総参照重みが増加し過ぎることをも
防いでいる。
る機会を削減できる。
の情報を得るために送信する参照要求メッセージや、メ
ソッド要求メッセージに、オブジェクトの情報に加えて
付加参照重みを含めるだけで、オブジェクトの参照先を
常に最新のものに更新することができる。しかも、参照
先を更新するのに、余分な通信を発生させていない。こ
れにより、間接的なリモート参照による多段階の通信
や、メッセージを転送することになるモジュールの仲介
を削減している。
接続を削減することができ、実行速度が向上し、ネット
ワーク上の負荷も削減することができる。
ている余分なメモリ領域を削減することができる。
いて、分散システムの構成は、図1に示す第1の実施の
形態のものと実質的に同一であるが、分散システムを構
成する各計算機の構成が、第1の実施の形態のものと異
なる。
1000の機能構成を示す機能ブロック図である。図3
1に示すように、この実施の形態にかかる計算機100
0では、モジュール1010の実行手段1011が、図
2に示された第1の実施の形態のものに加えてさらにオ
ブジェクト移動手段1012を備える。また、モジュー
ル1010が第1の実施の形態のものに加えてさらにオ
ブジェクト移動管理手段1013を備える。
ェクト移動」とは、モジュール内に存在するオブジェク
ト領域自体を通信メッセージに格納して異なるモジュー
ルに送信し、実行環境を変える技術のことをいう。
ジュール制御手段111の命令を受け、リモートアクセ
ス管理手段113に命じてオブジェクトの情報をメッセ
ージに格納して移動させる手段である。
モートアクセス管理手段113の命令を受けて、オブジ
ェクトが移動する直前と直後に起動する。オブジェクト
移動管理手段1013は、オブジェクト移動直前には、
オブジェクトのデータ、メソッドを、通信メッセージに
格納するための形式にし、リモートアクセス管理手段1
13に伝える。一方、オブジェクト移動直後には、オブ
ジェクト移動管理手段1013は、受信メッセージ中に
格納されたオブジェクト情報をもとにして、他のオブジ
ェクトから移動オブジェクトに矛盾なくアクセスできる
ように、ヒープメモリ領域114中にオブジェクト領域
を確保し、再構築する。
は、オブジェクトの実体が移動した後、リモートオブジ
ェクトに変更して、移動先モジュールで生成されるオブ
ジェクトに対するリモート参照を保持し、前記移動元モ
ジュール内にとどまり、実行手段などからのアクセスを
受けた場合、前記実体のあるオブジェクトへ、そのアク
セスを転送する役割を持つ。そのため、以下では、この
リモートオブジェクトを中継オブジェクトと呼ぶ。移動
先のモジュールにおいて、生成されたオブジェクトは、
前記中継オブジェクトからリモート参照を受ける。
は、オブジェクトが移動してきた時に、自らの存在する
モジュール内に、前記移動オブジェクトの中継オブジェ
クトが存在しているか調べ、もし、中継オブジェクトが
存在していれば、中継オブジェクトと移動オブジェクト
の2つのオブジェクト領域を統合して、1つのオブジェ
クトにする。これにより、無駄なメモリ領域の消費を防
止する。
形態の動作を詳細に説明する。
を示す。
段1012により、モジュール1100内に存在してい
るオブジェクト1101がモジュール1110への移動
を命令されると、オブジェクト移動管理手段1013
は、まず、オブジェクト1101に関する情報をヒープ
メモリ領域から読み込み、メッセージに格納できる状態
にして、リモートアクセス管理手段113に伝える。リ
モートアクセス管理手段113は、それを受け、メッセ
ージに格納する(図32、図33のステップL1)。リ
モートアクセス管理手段113は、オブジェクト移動メ
ッセージの作成を完了した後、移動先モジュールに送信
する(図33のステップL2)。その後、リモートアク
セス管理手段113は、前記オブジェクト1101をリ
モートオブジェクトに変更し、中継オブジェクトとして
モジュール1100に残す(ステップL3)。
モジュール1100からのオブジェクト移動メッセージ
を受信する(図32、34のステップM1)。次に、オ
ブジェクト移動管理手段1013は、モジュール111
0内にオブジェクト1101の中継オブジェクトが存在
するか否か調べ(ステップM2)、もし、存在しなけれ
ば(ステップM3)、モジュール1110内にオブジェ
クト領域を確保し(ステップM4)、新たなOIDを割
り当て(ステップM5)、オブジェクト1111とする
(ステップM6)。次に、中継オブジェクト1101が
リモート参照できるようにするために、被参照テーブル
1112内にオブジェクト1111に対応する領域を確
保し(ステップM7)、OID1113にオブジェクト
1111、総参照重み1114に既定値(ここでは
「8」としている)、参照ポインタ1115にオブジェ
クト1111のメモリアドレスを格納する(ステップM
9)。これにより、オブジェクト移動が完了した。
テップM10)、オブジェクト移動管理手段1013
は、中継オブジェクトと前記受信メッセージに格納され
る移動オブジェクト情報とを統合する処理を開始する。
まず、管理手段1013は、被参照テーブルに前記中継
オブジェクトの情報が存在しているか否かを調べ(ステ
ップM11)、もし、存在していれば、参照重み管理手
段118は、前記被参照テーブルの中継オブジェクトの
総参照重みに前記移動オブジェクトの保持する総参照重
みの値を加える(ステップM13)。一方、前記被参照
テーブル中に、前記中継オブジェクトの情報がなけれ
ば、オブジェクト移動管理手段1013は、新たにオブ
ジェクト領域を確保し(ステップM15)、ついで、参
照重み管理手段118は、総参照重みに既定値(ここで
は「8」としている。図37)を格納し(ステップM1
6)、OID、参照ポインタを格納する(ステップM1
7)。
クトの被参照テーブル情報の統合が完了すれば、リモー
トアクセス管理手段113は、中継オブジェクトの参照
テーブルを調べ、そのリモート参照先に参照削除メッセ
ージを作成して、送信する(ステップM18)。そし
て、前記移動オブジェクト情報を格納した後、ローカル
オブジェクトとする(ステップM19)。これによりオ
ブジェクト移動が完了した。
トアクセス管理手段113は、移動オブジェクトを受け
とったモジュールモジュール1110は、移動オブジェ
クトメッセージの送信元モジュール1100に対して、
移動が完了したことを知らせる返信メッセージの作成を
開始する(ステップM20)。リモートアクセス管理手
段113は、この返信メッセージに格納される前記移動
オブジェクトの付加参照重みとして、前記既定値「8」
を格納し(ステップM21)、メッセージをモジュール
1100に返信する(ステップM22、図37)。
段113は、モジュール1100は、モジュール111
0からのオブジェクト移動に対する返信メッセージを受
信する(図32、図35のステップN1)。次に、参照
重み管理手段118は、中継オブジェクト1101の部
分重み1104として前記受信メッセージの移動オブジ
ェクト1111の付加参照重み「8」を格納し、さら
に、OID1103にオブジェクト1111、IPアド
レスにモジュール1110の計算機のIPアドレスを格
納する。以上の処理を完了して初めて、オブジェクト1
101に対する、他のオブジェクトからのアクセスを可
能とする(図38)。
て、移動前のオブジェクト(前記の例では、オブジェク
ト1101)は、もともと存在していたモジュール内に
オブジェクト識別子OIDを引き続いて保持し、もとも
と所有していたデータの実体を持たないが、移動後のオ
ブジェクト(前記の例のオブジェクト1111)へのリ
モート参照を持つ中継オブジェクトとしての役割を担
う。中継オブジェクトは、他のオブジェクトから、参照
要求やメソッド実行などのアクセスを受けると、その要
求をリモート参照先へと転送する。
ブジェクト1111)は、中継オブジェクトとは異なる
モジュールを実行環境として、異なるOIDを所有する
が、中継オブジェクトがもともと所有していたデータを
受け継ぎ、中継オブジェクトにリモート参照される。
施の形態にかかる分散システム1における動作を、第1
の具体例に基づいて説明する。
る。モジュール1200のオブジェクト1210が、モ
ジュール1201、モジュール1202へと順に移動
し、それぞれ、オブジェクト1211、1212が生成
される。その後、モジュール1200において、あらか
じめオブジェクト1210を参照していたオブジェクト
1213がオブジェクト1210に参照要求する場合を
考察する。
00からモジュール1201へと移動する(図39)。
これにより、モジュール1201のオブジェクト移動管
理手段1013は、オブジェクト1211を生成させ、
被参照テーブルの総参照重み1221に既定値(ここで
は「8」と設定している)を設定し、モジュール120
0へ返信メッセージを返送する(図40)。
1からの返送メッセージを受信し、オブジェクト121
0からオブジェクト1211へリモート参照が生成し、
部分参照重み1220に参照重み「8」が格納される。
これで、オブジェクト1210は中継オブジェクトとな
る。そして、オブジェクト1211は、モジュール12
01からモジュール1202へ移動する。(図41)。
201からモジュール1202へのオブジェクト移動メ
ッセージと、逆に、モジュール1202からモジュール
1201への返信メッセージにより、オブジェクト12
12がモジュール1202において生成され、オブジェ
クト1211からオブジェクト1212へのリモート参
照が生成され、オブジェクト1211は、中継オブジェ
クトとなる(図42)。
おいて、オブジェクト1213がオブジェクト1210
に参照要求すると仮定する。オブジェクト1210は、
中継オブジェクトであるので、参照要求メッセージがモ
ジュール1201へ送信される(図43)。(この時、
参照重み管理手段118により、付加参照重み1230
が「0」になったとしている。)
求メッセージを受信したモジュール1201は、オブジ
ェクト1211がやはり中継オブジェクトであることか
ら、新たに参照要求メッセージをモジュール1202へ
送信する(図44)。このメッセージにおける付加参照
重み1231は、受信メッセージの付加参照重み123
0の値「0」に既定値(ここでは、「4」としている)
が加えられた値「4」が転送されている。
ージを受信したモジュール1202は、オブジェクト1
212がローカルであることから、オブジェクト121
2の総参照重み1225に受信した付加参照重み「4」
を加えて「12」とする。そして、参照要求に対する返
り値、オブジェクト1212の情報、さらに、付加参照
重み「4」をメッセージに格納して、モジュール120
1へ返信する(図45)。
2からの返信メッセージを受信し、オブジェクト121
1の参照先が更新されていないことを知り、自らの参照
テーブルの部分参照重み1222は更新しない。前記返
信メッセージの返り値と受信したオブジェクト1212
の情報と、付加参照重みをそのままの値で格納して、モ
ジュール1200へ返送する(図46)。
1からの返信メッセージを受信する。オブジェクト12
10は、参照先のオブジェクト1211と受信メッセー
ジの参照先情報が異なることを確認して、参照先を更新
し、受信した付加参照重みを新たに部分参照重み122
0に格納する。これにより、オブジェクト1210は、
参照先をオブジェクト1211から1212へ更新でき
た。その際に、元のリモート参照先オブジェクト121
1への参照削除要求メッセージをモジュール1201へ
送信する(図47)。
ッセージを受信したモジュール1201は、オブジェク
ト1211の総参照重み1221から受けとった付加参
照重みを減じて、総参照重み1221を更新し、「0」
となる。ここで、ヒープメモリ内の他のオブジェクトか
らも参照されなければ、後に、モジュール1201内の
ヒープメモリ管理手段がオブジェクト1211をゴミと
判別した時に、オブジェクト1211の参照先であるオ
ブジェクト1212への参照が取り外され、モジュール
1202に対してオブジェクト1212への参照削除メ
ッセージを送信する(図48)。
ール1202は、オブジェクト1212の総参照重み1
225から受信した付加参照重みの値を減じて「4」と
する(図49)。
動しても、その移動先のオブジェクト1211、121
2にリモート参照を張り、参照重みを用いて管理でき
る。
いたオブジェクト1213は、オブジェクト1210が
モジュール間を移動しても、その移動先を順に追跡する
ことができ、矛盾なく要求を実行することができた。
された中継オブジェクト1211は、必要がなくなれ
ば、回収することができた。
施の形態にかかる分散システム1における動作を、第2
の具体例に基づいて説明する。ここでも、第1の具体例
と同様の条件が仮定されているものとする。
1が、モジュール1300に存在するオブジェクト13
10にリモート参照されている(図50)。
ル1302に移動し、オブジェクト1311は中継オブ
ジェクトとなり、モジュール1302のオブジェクト1
312をリモート参照する(図51)。
ル1301へ移動する場合を考察する。オブジェクト移
動管理手段は、移動してきたオブジェクト1312の中
継オブジェクト1311がモジュール1301内に存在
することを確認し、2つのオブジェクトを統合する(図
52)。
定値(ここでは、「8」とする)を加えて「16」とす
る。この総参照重み1321は、オブジェクト1310
と中継オブジェクト1312からのリモート参照を管理
している。そして、オブジェクト1311の参照先オブ
ジェクト1312に参照削除要求メッセージを部分参照
重み1322の値「8」を含めて送信する。次に、オブ
ジェクト1311をローカルに変更する(図53)。
ブジェクトでなくなり、移動オブジェクト1312は、
オブジェクト1311に統合され、モジュール1302
内のオブジェクト1312は、オブジェクト1311へ
の中継オブジェクトとなった。
ェクト1312は、総参照重み1323から「8」を減
じ「0」となる。総参照重みが「0」となったので、モ
ジュール1302内でも不要となると中継オブジェクト
1312は、ヒープメモリ手段によって、回収される
(図54)。そして、モジュール1302内のリモート
アクセス手段は、部分参照重み1324をメッセージに
格納した、オブジェクト1311に対する参照削除メッ
セージを参照先であるモジュール1301に送信する
(図55)。
ージを受信したモジュール1301は、総参照重み13
21から「8」を減じる(図56)。このように、モジ
ュール間で連携することにより中継オブジェクト131
2のメモリ領域を回収し、図50と同様の状態になっ
た。
る。
てその実行環境を変えても、中継オブジェクトが、移動
先のオブジェクトへの参照を持ち続け、参照重みによる
第1の実施の形態と同一の方法で矛盾なく管理され、オ
ブジェクトの移動を許す分散システムにおいても有効に
機能する。
動先のモジュールに転送されるので、中継オブジェクト
だけが残り、もとのモジュール内のオブジェクトが参照
していたデータ領域は回収することができ、メモリ領域
を有効に使用することができる。
継オブジェクトのメモリ領域も参照重みの管理により、
不要となれば回収することができ、メモリ資源の有効利
用ができる。
って実現できるので、第1の実施の形態の効果を継承
し、その導入に余計な変更を必要としない。
いて、分散システムの構成は、図1に示す第1の実施の
形態のものと実質的に同一であるが、分散システムを構
成する各計算機の構成が、第1の実施の形態のものと異
なる。
2000の機能構成を示す機能ブロック図である。図5
7に示すように、この実施の形態にかかる計算機200
0では、モジュール2010の実行手段2011が、図
31に示された第2の実施の形態のものに加えてさらに
モジュール移動手段2012を備える。また、モジュー
ル2010が第2の実施の形態のものに加えてさらにモ
ジュール移動管理手段2013を備える。
ール移動」とは、モジュールを通信メッセージに格納し
て異なる実行環境に送信する技術のことをいう。上記の
第2の実施の形態におけるオブジェクト移動が、単一の
オブジェクトのみであったのに対し、モジュール移動に
おいては、モジュール内に存在する全てのオブジェクト
情報、参照テーブル、被参照テーブルなどの管理情報な
らびに、実行手段、リモートアクセス管理手段などのモ
ジュール実行のために必要な情報、これら全ての情報一
式を移動させて実行環境を変え、モジュールが移動後の
環境でも実行を再開することができるという点において
オブジェクト移動と異なる。
ュール制御手段111の命令を受け、モジュール移動を
実行する手段である。この時、モジュール移動実行手段
2012は、ヒープメモリ管理手段115に命じて不要
なメモリ領域を回収した後、リモートアクセス管理手段
113に命じて、モジュール継続実行に必要な情報一式
を通信メッセージに格納させる。
ートアクセス管理手段113の命令を受け、モジュール
が移動する直前と直後に起動する。モジュール移動直前
には、モジュールの実行手段、管理手段、被参照テーブ
ル、参照テーブル、オブジェクトなどのモジュール内の
メモリ領域の中で、モジュールの継続実行に必要な情報
のみをリモートアクセス管理手段113に伝える。ま
た、モジュール移動直後には、モジュールの実行が再開
できるようにするために、リモートアクセス管理手段1
13によって、読み込まれたモジュール移動メッセージ
内の情報を、矛盾なく、データ処理装置2001内に配
置する。
リモート参照されるオブジェクトが存在する場合、移動
元のモジュールは、自らが存在していたデータ処理装置
内に残存するモジュール、すなわち、中継モジュールと
なる。中継モジュールは、移動先モジュール内に存在す
る移動オブジェクトへのリモート参照を持つ中継オブジ
ェクトを少なくとも1つは所有し、中継オブジェクトが
1つもなくなれば、中継モジュール自体も回収される。
中継モジュールは、中継オブジェクトに対する他のモジ
ュールからの参照要求やメソッド要求メッセージを受信
して、前記中継オブジェクトの参照先にメッセージを転
送する役割を担うが、自らでメソッド実行を起こすこと
はない。
めの管理情報、手段情報と共に、オブジェクト移動も伴
うことになるが、本実施の形態におけるモジュール移動
に伴う移動オブジェクトは、実体のあるオブジェクトだ
けに限らず、中継オブジェクトも含まれるという点で、
第2の実施の形態におけるオブジェクト移動とは異な
る。
形態の動作を詳細に説明する。
に示している。
成される際の処理手順を示している。モジュールが異な
る計算機環境への移動を命令されると、モジュール移動
実行手段2012は、まず、モジュール内の全てのデー
タ領域に関して、他の手段からのアクセスを禁じ、ヒー
プメモリ管理手段115に命じて、ヒープメモリ領域1
14の不要なオブジェクトを回収し、リモートアクセス
管理手段113にモジュール実行に必要な情報をメッセ
ージに格納するように要請する。
段113は、オブジェクト移動管理手段1013と共
に、モジュール実行継続に必要なモジュール内の各オブ
ジェクト情報を格納する(図58、図59のステップO
1)。
は、前記オブジェクトが、リモートであるか否かを調べ
る(ステップO2)。もし、ローカルであれば(ステッ
プO3)、ステップO6に処理を移り、一方、リモート
であれば(ステップO4)、前記オブジェクトの付加参
照重みとして、前記オブジェクトの部分参照重みの値を
格納する(ステップO5)。
は、被参照テーブルを調べて、前記オブジェクトが、他
のモジュールから参照されているか否かを調べる(ステ
ップO6)。もし、前記被参照テーブル内に登録されて
いれば(ステップO7)、前記オブジェクトを他のモジ
ュールから既にリモート参照しているオブジェクトが継
続してオブジェクトの実体にアクセスできるようにする
ために、前記オブジェクトをリモートオブジェクト、す
なわち中継オブジェクトとする(ステップO8)。一
方、ステップO6において、前記オブジェクトが被参照
テーブルに登録されていなければ(ステップO9)、中
継オブジェクトを生成する必要はなく、ステップO10
へ処理を移行する。
テップO1からO9の処理を、移動モジュール内の全て
のオブジェクトに対して終了しているか否か調べ(ステ
ップO10)、終了していなければ(ステップO1
1)、同様の操作を繰り返す。一方、終了していれば
(ステップO12)、モジュール移動管理手段2013
は、モジュール実行継続に必要な、前記モジュールのオ
ブジェクト以外の全ての情報(実行手段、管理手段、被
参照テーブル、参照テーブル)を、リモートアクセス管
理手段113に知らせ、それを受けたリモートアクセス
管理手段113は、前記情報一式を通信メッセージに格
納し(ステップO13)、移動先計算機へ送信する(ス
テップO14)。
信した際に実行される処理手順を示している。計算機2
000の通信装置106は、モジュール移動メッセージ
を受信し、もし、前記移動モジュールに相当する中継モ
ジュールがなければ、データ処理装置2001内に、前
記移動モジュールの領域を確保し、前記移動モジュール
のリモートアクセス管理手段113を起動する。リモー
トアクセス管理手段113は、さらにモジュール移動管
理手段2013を起動し、前記移動モジュールのオブジ
ェクト以外の情報(実行手段、管理手段、被参照テーブ
ル、参照テーブル)の領域を確保して、モジュールが実
行を継続できるように矛盾なく配置する(図60のステ
ップP1)。
らの存在するデータ処理装置2001内に、移動オブジ
ェクトに相当する中継オブジェクトが存在するものに関
して、両者の統合を行う。そのために、まず、オブジェ
クト移動管理手段1013は、移動モジュールに相当す
る中継モジュールが存在し、かつ、移動オブジェクトに
相当する中継オブジェクトが存在するか否か調べ(ステ
ップP2)、もし、中継モジュールが存在し、その領域
内に中継オブジェクトも存在すれば(ステップP3)、
ステップP4から、前記移動オブジェクトと前記中継オ
ブジェクトとの領域の統合を開始する。
管理手段1013は、被参照テーブルを用いて、モジュ
ール内の各中継オブジェクトが、他のモジュールからリ
モート参照されているか否かを調べる。もし、前記中継
オブジェクトが被参照テーブルに登録されていれば(ス
テップP5)、前記中継オブジェクトの総参照重みに、
移動オブジェクトに関する総参照重みの値を加えて更新
する(ステップP6)。一方、前記被参照テーブルに中
継オブジェクトの情報がなければ(ステップP7)、オ
ブジェクト移動管理手段1013は、前記被参照テーブ
ルに移動オブジェクト用の領域を確保する(ステップP
8)。さらに、総参照重みに既定値を格納し(ステップ
P9)、OID、参照ポインタを格納して、他のモジュ
ールからのリモート参照ができるように設定する(ステ
ップP10)。次に、リモートアクセス管理手段113
は、不要となった前記中継オブジェクトの持つリモート
参照先へ参照削除メッセージを作成、送信する(ステッ
プP11)。これによって、不要な中継オブジェクトを
順に回収することができる。
は、前記移動オブジェクトがローカルであるか否かを調
べて(ステップP12)、もし、ローカルであれば(ス
テップP13)、統合された中継オブジェクトをリモー
トからローカルに変更する。(ステップP14)。一
方、前記移動オブジェクトがローカルでなければ(ステ
ップP15)、オブジェクト移動管理手段113は、前
記中継オブジェクトの参照テーブルを更新して、参照先
を前記移動オブジェクトの参照先とする(ステップP1
6)。さらに、前記参照テーブルの部分参照重みとし
て、前記移動オブジェクトの持つ部分参照重みを格納す
る(ステップP17)。以上、ステップP4からの処理
によって、前記中継オブジェクトと前記移動オブジェク
トとの統合が完了して、処理をステップP33に移す。
中継オブジェクトのどちらかがなければ(ステップP1
8)、オブジェクト移動管理手段1013は、自らの存
在するモジュール内に、新たに移動オブジェクトのため
の領域を確保して(ステップP19)、OIDを割り当
てる(ステップP20)。次に、オブジェクト移動管理
手段1013は、前記移動オブジェクトが移動モジュー
ル内のローカルオブジェクトか否かを調べ(ステップP
21)、もし、ローカルであれば(ステップP22)、
前記移動オブジェクトのデータを新たに割り当てた前記
オブジェクト領域に格納する(ステップP23)。一
方、前記移動オブジェクトがリモートであれば(ステッ
プP24)、オブジェクト移動管理手段1013は、リ
モートオブジェクトの参照先情報を設定するために、モ
ジュール内の参照テーブル領域に前記移動オブジェクト
の領域を確保して(ステップP25)、移動メッセージ
中の前記移動オブジェクトの参照先情報である、OI
D、IPアドレス、部分参照重みをそのまま格納する
(ステップP26)。
は、前記移動オブジェクトが、他のモジュールからリモ
ート参照されているか否かを確認して(ステップP2
7)、リモート参照を受けていなければ(ステップP2
8)、ステップP33に処理を移す。一方、リモート参
照を受けていれば(ステップP29)、モジュール内の
被参照テーブルに前記移動オブジェクトの領域を確保し
て(ステップP30)、総参照重みとして、既定値を格
納する(ステップP31)。さらに、被参照テーブル内
の前記移動オブジェクト用の領域にOID、オブジェク
ト領域への参照ポインタを格納して、他のモジュールか
らのアクセスが可能となるように設定する(ステップP
32)。
ブジェクトに対して終了したか否かを調べ(ステップP
33)、もし、終了していなければ、さらに繰り返して
処理を行う(ステップP34)。
モートアクセス管理手段113は、返信メッセージの作
成を開始する(ステップP36)。モジュール移動に対
する返信メッセージには、他のモジュールからリモート
参照されるオブジェクトの情報が格納される。このオブ
ジェクトの付加参照重みとして、リモートアクセス管理
手段113は、既定値を返信メッセージに格納する(ス
テップP37)。リモートアクセス管理手段113は、
全てのオブジェクトに対して付加参照重みの格納が完了
したか否かを調べ(ステップP38)、していなければ
処理を繰り返す(ステップP39)。全てのオブジェク
トに対して終了すれば(ステップP40)、返信メッセ
ージを送信する(ステップP41)。
ッセージを受信した際に実行される処理手順を示してい
る。モジュールのリモートアクセス管理手段113は、
前記返信メッセージを受信し、読み込む(ステップQ
1)。リモートアクセス管理手段113は、自らの存在
するモジュールの参照テーブルにの各オブジェクトに相
当する領域に、前記受信メッセージの各オブジェクト情
報のOIDを設定し(ステップQ2)、前記オブジェク
トの付加参照重みを部分参照重みに格納する(ステップ
Q3)。そして、リモートアクセス管理手段113は、
前記受信メッセージに格納される全てのオブジェクトに
関して終了したか否かを調べ(ステップQ4)、終了し
ていなければ(ステップQ5)、さらに繰り返し(ステ
ップQ6)、終了すれば(ステップQ7)、各オブジェ
クトへのアクセスを許可して、返信メッセージの受信処
理を完了する。
施の形態にかかる分散システム1における動作を、具体
例に基づいて説明する。
の動作例を示す。図62は、モジュール2100が計算
機2115へ、移動する直前の状態を示している。モジ
ュール2100内には、モジュール実行に必要な実行手
段、管理手段、ならびに、被参照テーブル2104、参
照テーブル2109、さらに、ヒープメモリ領域114
に3つのオブジェクト2101、2102、2103が
存在している。
からリモート参照を受けており、前記被参照テーブル2
104内に、各種情報、すなわち、OID2105に、
オブジェクト2101、総参照重み2100に「2
0」、参照ポインタにオブジェクト2101のメモリア
ドレスが格納されている。
ェクトであるが、他のモジュールからリモート参照を受
けていない。
ェクトであり、前記参照テーブル2108内に、オブジ
ェクト2103の参照先情報を所有している。すなわ
ち、OID2109としてオブジェクト2112を、部
分参照重み2110として「40」を、IPアドレス2
111としてaddress(モジュール2100以外
の計算機のIPアドレスを示す)を保持している(図6
2)。この状態から、モジュール2100のモジュール
移動管理手段、オブジェクト移動管理手段、リモートア
クセス管理手段によって、モジュール実行が継続するの
に必要な、モジュール内の情報を格納したモジュール移
動メッセージが生成され、モジュール2100が、モジ
ュール2100の中継オブジェクトの存在しない計算機
2115へ前記メッセージが送信される。ここで、オブ
ジェクト2103に関する付加参照重みには、その部分
参照重み「20」が格納される。
115へ移動し、計算機2115のデータ処理装置内
に、新たにモジュール2120が生成し、返信メッセー
ジをモジュール2100に返信する場面を示している。
移動モジュールのモジュール移動管理手段が呼び出さ
れ、新たにモジュール2120の領域を確保する。さら
に、モジュール移動管理手段は、モジュール実行再開に
要する、被参照テーブル、参照テーブル、管理手段、実
行手段を前記モジュール2120内に配置する。また、
オブジェクト移動管理手段によって、モジュール内に各
オブジェクト領域が確保、格納される。
後、モジュール2120内でオブジェクト2120とな
り、中継オブジェクト2101からのリモート参照を受
けるために、被参照テーブル2104のオブジェクト2
121用の領域に、OID2125として、オブジェク
ト2121、総参照重み2126として既定値(ここで
は、「8」と仮定する)、参照ポインタ2127とし
て、オブジェクト2121のメモリアドレスが格納され
る。
後、モジュール2120内のローカルオブジェクト21
22となる。オブジェクト2103は、モジュール移動
後、モジュール2120内のリモートオブジェクト21
23となる。
121の情報と共に、その付加参照重みとして、総参照
重みの既定値「8」が格納され、モジュール2110に
送信される。
ール2121からのモジュール移動に対する返信メッセ
ージを受信し、モジュール移動が完了した場面を示して
いる。参照テーブル2108には、オブジェクト210
1用の領域が確保され、OID2109として、オブジ
ェクト2121を、部分参照重み2110として、受信
した前記メッセージのオブジェクト2121の付加参照
重み「8」を、IPアドレス2111としてモジュール
2120のIPアドレスが格納される。さらに、オブジ
ェクト2101は、新たに参照テーブルへの参照ポイン
タを格納し、オブジェクト2121へのリモート参照を
所有する中継オブジェクトとなる。オブジェクト210
2、2103は、移動が完了した後、モジュール210
0のヒープメモリ管理手段によって、回収される。モジ
ュール2100は、中継オブジェクト2101を所有す
る中継モジュールとなり、中継オブジェクト2102が
回収されれば、自らのメモリ領域も回収される。
施の形態にかかる分散システム1におけるモジュール移
動を含めた動作を、具体例に基づいて説明する。
ート参照を受け、総参照重み2524に「10」を保持
しているオブジェクト2510を所有するモジュール2
500が他の計算機環境に移動する。
モジュール2500となり、移動先の計算機環境でモジ
ュール2501となる。ここで、総参照重みの既定値を
「8」と仮定すると、オブジェクト2510は、中継オ
ブジェクトとなり、部分参照重み2520に「8」を格
納し、一方、オブジェクト2511は、総参照重み25
21に「8」を格納する(図66)。
ュール2502からの参照要求メッセージの返り値とし
て、オブジェクト2511の情報を返信するとすれば、
返信メッセージのオブジェクト2511情報の付加参照
重みには「8」が格納され、モジュール2502に送信
される(図67)。
2502は、自らの部分参照重み2522に受信した付
加参照重み「8」を格納する。オブジェクト2511
は、オブジェクト2510とオブジェクト2511の2
つからリモート参照を受け、総参照重み2521におい
て「16」を保持する。ここで、また、モジュール25
01が移動するとする(図68)。
ュールとなり、その実体は、モジュール2503とな
る。オブジェクト2511は、中継オブジェクトとな
り、モジュール2503内のオブジェクト2513をリ
モート参照し、部分参照重み2522を値「8」で持
つ。オブジェクト2513は、オブジェクト2511か
らリモート参照され総参照重み2533として、値
「8」を所有する。ここで、モジュール2502のオブ
ジェクト2512が参照要求メッセージを参照先のオブ
ジェクト2511に送信するとする。ここで、参照重み
管理手段により付加参照重みが「0」と設定されたとす
る(図69)。
ージを受信したモジュール2501は、中継モジュール
であるので、中継オブジェクト2511の参照先のモジ
ュール2503に対して、参照要求メッセージを転送す
ることになる。ここで、参照重み管理手段により、付加
参照重みが「4」だけ付加されるとする(図70)。
ッセージを受信したモジュール2503は、オブジェク
ト2513の総参照重み2523の値を、受信した付加
参照重み「4」だけ増加させ「12」とする(図7
1)。
ッセージを送信してきたモジュール2501に返信メッ
セージを送信する。ここで、メッセージに格納されるオ
ブジェクト2513の付加参照重みとして、受信メッセ
ージにおける付加参照重み「4」が設定される(図7
2)。
を受信した中継モジュール2501は、オブジェクト2
513のリモート参照先が更新されていないことを確認
する。そして、モジュール2502に対する返信メッセ
ージを作成し、その中に格納されるオブジェクト251
3の付加参照重みを「4」のままで送信する(図7
3)。
ッセージを受信したモジュール2502は、オブジェク
ト2513の情報を受けとり、オブジェクト2152の
参照先が変わったことを確認する。オブジェクト251
2の参照先をオブジェクト2511からオブジェクト2
513へと更新し、部分参照重み2522に受信メッセ
ージのオブジェクト2513の付加参照重み「4」を設
定する。そして、元の参照先オブジェクト2511へ元
の部分参照重み分「8」を付加参照重みとした参照削除
メッセージをモジュール2501に送信する(図7
4)。
ッセージを受信したモジュール2501は、オブジェク
ト2511の総参照重み2522から、付加参照重み
「8」を受けとって、減じて「8」とする。この後、モ
ジュール2503がモジュール2500の存在する計算
機に移動するとする(図75)。
3への中継モジュールであるので、モジュール移動管理
手段により統合される。移動メッセージに含まれるオブ
ジェクト2513の情報と中継オブジェクト2510を
統合して、中継オブジェクト2510は実オブジェクト
となり、一方オブジェクト2513は、中継オブジェク
トとなり、オブジェクト2510をリモート参照する。
これにより、モジュール2500は、中継モジュールか
ら実モジュールと変わる。逆にモジュール2503は、
実モジュールから中継モジュールへと変わる。そして、
オブジェクト2510が元来所有していた中継オブジェ
クト2511へのリモート参照は不要となり、モジュー
ル2501へオブジェクト2511に対する参照削除メ
ッセージ(付加参照重み「8」)を送信する(図7
6)。
ッセージを受信したモジュール2501は、オブジェク
ト2511の総参照重み2521から「8」を減じ
「0」とする。その後、中継オブジェクト2511は、
モジュール2500のヒープメモリ管理手段によって回
収され、その参照先のオブジェクト2513へ、さらな
る参照削除メッセージ(付加参照重み「8」)を送信す
る(図77)。
求メッセージを受信したモジュール2503は、オブジ
ェクト2513の総参照重み2523から「8」を減じ
て「4」とする(図78)。中継モジュール2501中
に存在していた中継オブジェクトが2511以外に何も
なくなれば、中継モジュール2501内の全てのメモリ
領域、並びに、中継モジュール2501のメモリ領域自
体をも回収することができる(図78)。
る。
と、その実体は移動先の計算機上のモジュールとして再
起動するので、もとのモジュールに存在するオブジェク
トのデータ領域や、モジュール実行に要する領域は回収
することができ、メモリ領域を有効に使用することがで
きる。
ても、移動先のモジュールへの参照を持ち続けるので、
本発明の第2の実施の形態と同様に、モジュール自体が
移動を許す分散システムにおいて有効に機能し、矛盾を
生じない。
他のモジュールから参照されなくなれば、その中継オブ
ジェクトに関わる領域を回収することができる。
ジェクトが何1つ存在しなくなれば、中継モジュール自
体の領域を回収することができ、メモリ資源の効率的な
利用が可能である。これにより、中継モジュールが存在
している計算機環境で動作する他の応用プログラムの実
行を妨げない。
の実施の形態について図面を参照して詳細に説明する。
の形態は、自動メモリ管理プログラムを記録した記録媒
体3002を備える。この記録媒体3002は磁気ディ
スク、半導体メモリその他の記録媒体であって良い。
02からデータ処理装置3001に読み込まれ、データ
処理装置3001の動作を制御する。データ処理装置3
001は自動メモリ管理プログラムの制御により以下の
処理、すなわち第1、第2および第3の実施の形態にお
けるデータ処理装置107、1001および2001に
よる処理と同一の処理を実行する。
01に読み込まれた自動メモリ管理プログラムは、デー
タ処理装置3001内に存在する各モジュール内で動作
する。
9の事象が発生すると、それを契機にしてリモートアク
セス管理手段が実行を開始する。
すれば、オブジェクト移動管理手段が実行を開始する。
発生すれば、モジュール移動管理手段が実行を開始す
る。
1、第2、第3および第4の実施の形態において、分散
システム1が有する計算機の数に制限はない。また、計
算機内のモジュールは、複数のモジュールであり得る。
オブジェクトなどのデータ領域の実行環境が変化するシ
ステムにおいても、矛盾なくメモリ管理を行うことがで
きる。
おける通信量を削減することができる。
れる参照重みが枯渇する可能性を削減することができ
る。
発生することを削減することができ、応用プログラムの
高速実行が可能となる。
ステムの構成を示すブロック図である。
である。
プメモリ領域のイメージを示す図である。
フローチャートである。
フローチャートである。
フローチャートである。
フローチャートである。
フローチャートである。
すフローチャートである。
すフローチャートである。
すフローチャートである。
すフローチャートである。
すフローチャートである。
すフローチャートである。
すフローチャートである。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
機能構成を示す機能ブロック図である。
すシーケンスチャートである。
ートである。
ートである。
ートである。
明する図である。
明する図である。
明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
1の具体例を説明する図である。
2の具体例を説明する図である。
2の具体例を説明する図である。
2の具体例を説明する図である。
2の具体例を説明する図である。
2の具体例を説明する図である。
2の具体例を説明する図である。
2の具体例を説明する図である。
機能構成を示す機能ブロック図である。
すシーケンスチャートである。
ートである。
ートである。
ートである。
明する図である。
明する図である。
明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
体例を説明する図である。
機能構成を示す機能ブロック図である。
る。
る。
る。
る。
る。
る。
る。
る。
Claims (29)
- 【請求項1】複数のモジュールを備え、他のモジュール
に存在するオブジェクトを参照する参照元オブジェクト
と前記参照元オブジェクトから参照される参照先オブジ
ェクトとをそれぞれ部分参照重みと総参照重みとによっ
て管理する分散システムであって、 前記複数のモジュールのうちの少なくとも1つのモジュ
ールは、 該モジュール内に存在するオブジェクトに関する情報を
他のモジュールに送信する第1の送信手段と、 他のモジュールから送信された前記オブジェクトに関す
る情報の返信及び部分参照重みを設定するための第1の
付加参照重みを受信する第1の受信手段と、 前記第1の受信手段が受信した前記第1の付加参照重み
を部分参照重みとして設定して、前記オブジェクトを、
他のオブジェクトからの参照要求を前記オブジェクトに
関する情報の送信先に転送するための中継オブジェクト
に変換する第1の中継オブジェクト生成手段と、を備
え、 前記複数のモジュールのうちの少なくとも他の1つのモ
ジュールは、 他のモジュールの第1の送信手段から送信されたオブジ
ェクトに関する情報を受信する第2の受信手段と、 前記第2の受信手段が受信した前記オブジェクトに関す
る情報に基づいて、総参照重みとして所定の値を設定し
て、参照先オブジェクトを生成する参照先オブジェクト
生成手段と、 前記第2の受信手段が受信した前記オブジェクトに関す
る情報に対する返信と共に、前記総参照重みに対応する
値を有する前記第1の付加参照重みを、前記第1の受信
手段に送信する送信手段と、を備えることを特徴とする
分散システム。 - 【請求項2】ネットワークを介して結合された複数の計
算機によって構成され、複数のモジュールを備え、他の
モジュールに存在するオブジェクトを参照する参照元オ
ブジェクトと前記参照元オブジェクトから参照される参
照先オブジェクトとをそれぞれ部分参照重みと総参照重
みとによって管理する分散システムであって、 前記複数の計算機のうちの少なくとも1つの計算機は、 該計算機内に存在するオブジェクトに関する情報を含む
該モジュールに関する情報を前記ネットワークを介して
他の計算機に送信する第1の送信手段と、 他の計算機に生成されたモジュールから送信された前記
モジュールに関する情報に対する返信及び部分参照重み
を設定するための第1の付加参照重みを受信する第1の
受信手段と、 前記第1の受信手段が受信した前記第1の付加参照重み
を部分参照重みとして設定して、該モジュール内のオブ
ジェクトを、他のオブジェクトからの参照要求を前記モ
ジュールに関する情報の送信先に転送するための中継オ
ブジェクトに変換する第1の中継モジュール生成手段
と、を備え、 前記複数の計算機のうちの少なくとも他の1つの計算機
は、 他の計算機の第1の送信手段から送信されたモジュール
に関する情報を受信する第2の受信手段と、 前記第2の受信手段が受信した前記モジュールに関する
情報に基づいて、総参照重みとして所定の値を設定した
参照先オブジェクトを有するモジュールを生成するモジ
ュール生成手段と、 前記第2の受信手段が受信した前記モジュールに関する
情報に対する返信と共に、前記総参照重みに対応する値
を有する前記第1の付加参照重みを、前記第1の受信手
段に受信する第2の送信手段と、を備えることを特徴と
する分散システム。 - 【請求項3】他のモジュールに存在するオブジェクトを
参照する参照元オブジェクトと前記参照元オブジェクト
から参照される参照先オブジェクトをそれぞれ部分参照
重みと総参照重みとによって管理するメモリ管理装置で
あって、 前記参照元オブジェクトが前記参照先オブジェクトを参
照するときに、前記参照元オブジェクトが有する部分参
照重みが所定の範囲にあるかどうかを判別する部分参照
重み判別手段と、 前記部分参照重み判別手段が所定の範囲にないと判別し
たときに、前記参照先オブジェクトへの参照要求と共
に、所定の値を有する第1の付加参照重みを前記参照先
オブジェクトが存在する他のモジュールに送信する第1
の送信手段と、 他のモジュールが有する第1の送信手段から送信された
送信要求及び第1の付加参照重みを受信する第1の受信
手段と、 前記第1の受信手段が受信した前記第1の付加参照重み
に従って、前記参照先オブジェクトが有する総参照重み
を更新する第1の総参照重み更新手段と、 前記第1の受信手段が受信した前記参照要求に対する返
答と共に、前記第1の受信手段が受信した前記第1の付
加参照重みに対応する値を有する第2の付加参照重みを
前記参照要求を送信した他のモジュールに送信する第2
の送信手段と、 他のモジュールが有する第2の送信手段が送信した返答
及び第2の付加参照重みを受信する第2の受信手段と、 前記第2の受信手段が受信した前記第2の付加参照重み
に従って、前記参照元オブジェクトが有する部分参照重
みを更新する部分参照重み更新手段と、を備え、 前記部分参照重み判別手段は、前記部分参照重みが所定
の上限値よりも大きいかどうかを判別する第2の判別手
段をさらに備え、 前記第1の送信手段は、前記第2の判別手段が所定の上
限値よりも小さいと判別したときに、負の値を有する第
1の付加参照重みを、前記参照要求と共に送信し、 前記第1の総参照重み更新手段は、前記第1の受信手段
が受信した負の値を有する第1の付加参照重みを加算す
ることによって、前記参照先オブジェクトが有する総参
照重みを更新する ことを特徴とするメモリ管理装置。 - 【請求項4】前記部分参照重み判別手段は、前記部分参
照重みが所定の下限値よりも小さいかどうかを判別する
第1の判別手段をさらに備え、 前記第1の送信手段は、前記第1の判別手段が所定の下
限値よりも小さいと判別したときに、正の値を有する第
1の付加参照重みを、前記参照要求と共に送信し、 前記第1の総参照重み更新手段は、前記第1の受信手段
が受信した正の値を有する第1の付加参照重みを加算す
ることによって、前記参照先オブジェクトが有する総参
照重みを更新することを特徴とする請求項3に記載のメ
モリ管理装置。 - 【請求項5】前記参照元オブジェクトが不要となったか
どうかを判別するゴミオブジェクト判別手段と、 前記ゴミオブジェクト判別手段が不要と判別したとき
に、前記参照元オブジェクトからの参照を削除するため
の参照削除要求と共に、前記参照元オブジェクトが有す
る部分参照重みに対応する第3の付加参照重みを前記参
照先オブジェクトが存在するモジュールに送信する第3
の送信手段と、 他のモジュールが有する第3の送信手段から送信された
参照削除要求及び第3の付加参照重みを受信する第3の
受信手段と、 前記第3の受信手段が受信した前記第3の付加参照重み
に従って、前記参照先オブジェクトが有する総参照重み
を更新する第2の総参照重み更新手段と、 前記ゴミオブジェクト判別手段が不要と判別したとき
に、前記参照元オブジェクトのメモリ領域を回収する第
1のメモリ領域回収手段と、を備えることを特徴とする
請求項3または4に記載のメモリ管理装置。 - 【請求項6】前記参照先オブジェクトが他のモジュール
に存在する参照元オブジェクトから参照されておらず、
かつ同一のモジュールに存在する他のオブジェクトから
も参照されていないかどうかを判別する参照状態判別手
段と、 前記参照状態判別手段が、前記参照オブジェクトが前記
参照元オブジェクトからも前記他のオブジェクトからも
参照されていないと判別したときに、前記参照先オブジ
ェクトのメモリ領域を回収する第2のメモリ回収手段
と、を備えることを特徴とする請求項5に記載のメモリ
管理装置。 - 【請求項7】他のモジュールに存在するオブジェクトを
参照する参照元オブジェクトと前記参照元オブジェクト
から参照される参照先オブジェクトをそれぞれ部分参照
重みと総参照重みとによって管理するメモリ管理装置で
あって、 自モジュール内に存在するオブジェクトに関する情報を
他のモジュールに送信する第1の送信手段と、 他のモジュールが有する第1の送信手段から送信された
オブジェクトに関する情報を受信する第1の受信手段
と、 前記第1の受信手段が受信した前記オブジェクトに関す
る情報に基づいて、総参照重みとして所定の値を設定し
て、参照先オブジェクトを生成する第1の参照先オブジ
ェクト生成手段と、 前記第1の受信手段が受信した前記オブジェクトに関す
る情報に対する返信と共に、前記総参照重みに対応する
値を有する第1の付加参照重みを、前記オブジェクトに
関する情報を送信したモジュールに送信する第2の送信
手段と、 他のモジュールが有する第2の送信手段から送信された
オブジェクトに関する情報に対する返信及び部分参照重
みを設定するための第1の付加参照重みを受信する第2
の受信手段と、 前記第2の受信手段が受信した前記第1の付加参照重み
を部分参照重みとして設定して、前記オブジェクトを、
他のオブジェクトからの参照要求を前記第1の参照先オ
ブジェクト生成手段によって生成された参照先オブジェ
クトに転送するための中継オブジェクトに変換する第1
の中継オブジェクト生成手段と、を備えることを特徴と
するメモリ管理装置。 - 【請求項8】前記第1の中継オブジェクト生成手段によ
って変換された中継オブジェクトは、オブジェクトの実
体をもたないことを特徴とする請求項7に記載のメモリ
管理装置。 - 【請求項9】前記参照先オブジェクト生成手段によって
生成された前記参照先オブジェクトに関する情報を他の
モジュールに送信する第3の送信手段と、 他のモジュールが有する第3の送信手段から送信された
参照先オブジェクトに関する情報を受信する第3の受信
手段と、 前記第3の受信手段が受信した前記参照先オブジェクト
に関する情報に基づいて、総参照重みとして所定の値を
設定して、参照先オブジェクトを生成する第2の参照先
オブジェクト生成手段と、 前記第3の受信手段が受信した前記参照先オブジェクト
に関する情報に対する返信と共に、前記総参照重みに対
応する値を有する第2の付加参照重みを、前記オブジェ
クトに関する情報を送信したモジュールに送信する第4
の送信手段と、 他のモジュールが有する第4の送信手段から送信された
参照先オブジェクトに関する情報に対する返信及び部分
参照重みを設定するための第2の付加参照重みを受信す
る第4の受信手段と、 前記第4の受信手段が受信した前記第2の付加参照重み
を部分参照重みとして設定して、前記参照先オブジェク
トを、他のオブジェクトからの転送要求を前記第2の参
照先オブジェクト生成手段によって生成された参照先オ
ブジェクトに転送するための中継オブジェクトに変換す
る第2の中継オブジェクト生成手段と、を備えることを
特徴とする請求項7または8に記載のメモリ管理装置。 - 【請求項10】前記第2の中継オブジェクトによって変
換された第2の中継オブジェクトは、オブジェクトの実
体をもたないことを特徴とする請求項9に記載のメモリ
管理装置。 - 【請求項11】前記第1の中継オブジェクト生成手段に
よって生成された中継オブジェクトが他のオブジェクト
からの参照要求を受信したときに、所定の値を有する第
3の付加参照重みを付加して前記参照要求を前記第1の
参照先オブジェクトを有するモジュールに転送する第5
の送信手段と、 他のモジュールの第5の送信手段から転送された参照要
求及び第3の付加参照重みを受信する第5の受信手段
と、 前記第5の受信手段が受信した前記第3の付加参照重み
に従って、前記第1の参照先オブジェクト生成手段が生
成した参照先オブジェクトが有する総参照重みを更新す
る総参照重み更新手段と、 前記第5の受信手段が受信した参照要求に対応する返信
と共に、前記第3の付加参照重みに対応する値を有する
第4の付加参照重みと、前記参照先オブジェクトが存在
するモジュールと特定するための特定情報とを、送信す
る第6の送信手段と、 他のモジュールの第6の送信手段から送信された返信、
第4の付加参照重み及び特定情報を受信する第6の受信
手段と、 前記第6の受信手段が受信した前記第4の付加参照重み
に従って最初に参照要求を発したオブジェクトの部分参
照重みを更新し、さらに該オブジェクトの参照先を前記
特定情報に従って更新する参照先更新手段と、 前記第6の返信手段が受信した前記第4の付加参照重み
に対応する値を有する第5の付加参照重みを、前記中継
オブジェクトからの参照を削除するための参照削除要求
と共に、前記参照先オブジェクトを有するモジュールに
送信する第7の送信手段と、 他のモジュールの第7の送信手段から送信された参照削
除要求及び第5の付加参照重みを受信する第7の受信手
段と、 前記第7の受信手段が受信した前記第5の付加参照重み
に従って、前記参照先オブジェクトの総参照重みを更新
する総参照重み更新手段と、を備えることを特徴とする
請求項7または8に記載のメモリ管理装置。 - 【請求項12】前記中継オブジェクトが他のオブジェク
トから参照されているかどうかを判別する中継判別手段
と、 前記中継判別手段が他のオブジェクトから参照されてい
ないと判別したときに、前記中継オブジェクトのメモリ
領域を回収するメモリ領域回収手段と、を備えることを
特徴とする請求項7乃至11のいずれか1項に記載のメ
モリ管理装置。 - 【請求項13】ネットワークを介して他のメモリ管理装
置と結合され、他のモジュールに存在するオブジェクト
を参照する参照元オブジェクトと前記参照元オブジェク
トから参照される参照先オブジェクトをそれぞれ部分参
照重みと総参照重みとによって管理するメモリ管理装置
であって、 該メモリ管理装置内に存在するオブジェクトに関する情
報を含むモジュールに関する情報を前記ネットワークを
介して他の計算機に送信する第1の送信手段と、 他のメモリ管理装置の第1の送信手段から送信されたモ
ジュールに関する情報を受信する第1の受信手段と、 前記第1の受信手段が受信した前記モジュールに関する
情報に基づいて、総参照重みとして所定の値を設定した
参照先オブジェクトを有するモジュールを生成する第1
のモジュール生成手段と、 前記第1の受信手段が受信した前記モジュールに関する
情報に対する返信と共に、前記総参照重みに対応する値
を有する前記第1の付加参照重みを、前記第1の受信手
段に受信する第2の送信手段と、 他のメモリ管理装置の第2の送信手段から送信されたモ
ジュールに関する情報に対する返信及び部分参照重みを
設定するための第1の付加参照重みを受信する第2の受
信手段と、 前記第2の受信手段が受信した前記第1の付加参照重み
を部分参照重みとして設定して、該モジュール内のオブ
ジェクトを、他のオブジェクトからの参照要求を前記モ
ジュールに関する情報の送信先に転送するための中継オ
ブジェクトに変換して中継モジュールを生成する第1の
中継モジュール生成手段と、を備えることを特徴とする
メモリ管理装置。 - 【請求項14】前記第1の中継モジュール生成手段によ
って変換された中継オブジェクトは、オブジェクトの実
体をもたないことを特徴とする請求項13に記載のメモ
リ管理装置。 - 【請求項15】前記第1のモジュール生成手段によって
生成された、前記参照先オブジェクトに関する情報を含
むモジュールに関する情報を、前記ネットワークを介し
てさらに他の計算機に送信する第3の送信手段と、 他の計算機が有する第3の送信手段から送信された前記
モジュールに関する情報を受信する第3の受信手段と、 前記第3の受信手段が受信した前記モジュールに関する
情報に基づいて、総参照重みとして所定の値を設定した
参照先オブジェクトを有するモジュールを生成する第2
のモジュール生成手段と、 前記第3の受信手段が受信した前記モジュールに関する
情報に対する返信と共に、前記総参照重みに対応する値
を有する第2の付加参照重みを、前記モジュールに関す
る情報を送信したモジュールに送信する第4の送信手段
と、 他の計算機が有する第4の送信手段が送信した前記返信
及び前記第2の付加参照重みを受信する第4の受信手段
と、 前記第4の受信手段が受信した前記第2の付加参照重み
を設定して、前記第1のモジュール生成手段によって生
成されたモジュール内に含まれる前記参照先オブジェク
トを、他のオブジェクトからの転送要求を前記第2のモ
ジュール生成手段によって生成されたモジュール内に含
まれる参照先オブジェクトに転送するための中継オブジ
ェクトに変換して中継モジュールを生成する第2の中継
モジュール生成手段と、を備えることを特徴とする請求
項13または14に記載のメモリ管理装置。 - 【請求項16】前記第2の中継モジュール生成手段によ
って変換された中継オブジェクトは、オブジェクトの実
体をもたないことを特徴とする請求項15に記載のメモ
リ管理装置。 - 【請求項17】中継モジュール内のすべての中継オブジ
ェクトが他のオブジェクトから参照されているかどうか
を判別する中継判別手段と、 前記中継判別手段がすべての中継オブジェクトが他のオ
ブジェクトから参照されていないと判別したときに、前
記中継モジュールのメモリ領域を回収するメモリ領域回
収手段と、を備えることを特徴とする請求項14乃至1
6のいずれか1項に記載のメモリ管理装置。 - 【請求項18】他のモジュールに存在するオブジェクト
を参照する参照元オブジェクトと前記参照元オブジェク
トから参照される参照先オブジェクトをそれぞれ部分参
照重みと総参照重みとによって管理するメモリ管理方法
であって、 自モジュール内に存在するオブジェクトに関する情報を
他のモジュールに送信する第1の送信ステップと、 前記第1の送信ステップで送信されたオブジェクトに関
する情報を受信する第1の受信ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
関する情報に基づいて、総参照重みとして所定の値を設
定して、参照先オブジェクトを生成する参照先オブジェ
クト生成ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
関する情報に対する返信と共に、前記総参照重みに対応
する値を有する第1の付加参照重みを、前記オブジェク
トに関する情報を送信したモジュールに送信する第2の
送信ステップと、 前記第2の送信ステップで送信された前記オブジェクト
に関する情報に対する返信及び部分参照重みを設定する
ための前記第1の付加参照重みを受信する第2の受信ス
テップと、 前記第2の受信ステップで受信した前記第1の付加参照
重みを部分参照重みとして設定して、前記オブジェクト
を、他のオブジェクトからの参照要求を前記第1の参照
先オブジェクト生成手段によって生成された参照先オブ
ジェクトに転送するための中継オブジェクトに変換する
第1の中継オブジェクト生成ステップと、を含むことを
特徴とするメモリ管理方法。 - 【請求項19】前記参照先オブジェクト生成ステップで
生成された前記参照先オブジェクトに関する情報を他の
モジュールに送信する第3の送信ステップと、 前記第3の送信ステップで送信された前記参照先オブジ
ェクトに関する情報を受信する第3の受信ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
クトに関する情報に基づいて、総参照重みとして所定の
値を設定して、参照先オブジェクトを生成する第3の参
照先オブジェクト生成ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
クトに関する情報に対する返信と共に、前記総参照重み
に対応する値を有する第2の付加参照重みを、前記オブ
ジェクトに関する情報を送信したモジュールに送信する
第4の送信ステップと、 前記第4の送信ステップで送信された前記返信及び前記
第2の付加参照重みを受信する第4の受信ステップと、 前記第4の受信ステップで受信した前記第2の付加参照
重みを部分参照重みとして設定して、前記参照先オブジ
ェクトを、他のオブジェクトからの転送要求を前記第2
の参照先オブジェクト生成ステップで生成された参照先
オブジェクトに転送するための中継オブジェクトに変換
する第2の中継オブジェクト生成ステップと、を含むこ
とを特徴とする請求項18に記載のメモリ管理方法。 - 【請求項20】前記第1の中継オブジェクト生成ステッ
プで生成された中継オブジェクトが他のオブジェクトか
らの参照要求を受信したときに、所定の値を有する第3
の付加参照重みに付加して前記参照要求を前記第1の参
照先オブジェクトに転送する第5の送信ステップと、 前記第5の送信ステップで送信された前記参照要求及び
前記第3の付加参照重みを受信する第5の受信ステップ
と、 前記第5の受信ステップで受信した前記第3の付加参照
重みに従って、前記第1の参照先オブジェクト生成手段
が生成した参照先オブジェクトが有する総参照重みを更
新する総参照重み更新手段と、 前記第5の受信ステップで受信した参照要求に対する返
信と共に、前記第3の付加参照重みに対応する値を有す
る第4の付加参照重みと、前記参照先オブジェクトが存
在するモジュールを特定するための特定情報とを、送信
する第6の送信ステップと、 前記第6の送信ステップで送信された前記返信、前記第
4の付加参照重み及び前記特定情報を受信する第6の受
信ステップと、 前記第6の受信ステップで受信した前記付加参照重みに
従って最初に参照要求を発したオブジェクトの部分参照
重みを更新し、さらに該オブジェクトの参照先を前記特
定情報に従って更新する参照先更新ステップと、 前記第6の受信ステップで受信した前記第4の付加参照
重みに対応する値を有する第5の付加参照重みを、前記
参照先オブジェクトを有するモジュールに送信する第7
の送信ステップと、 前記第7の送信ステップで送信された参照削除要求及び
第5の付加参照重みを受信する第7の受信ステップと、 前記第7の受信ステップで受信した前記第5の付加参照
重みに従って、前記参照先オブジェクトの総参照重みを
更新する総参照重み更新ステップと、を含むことを特徴
とする請求項18または19に記載のメモリ管理方法。 - 【請求項21】前記中継オブジェクトが他のオブジェク
トから参照されているかどうかを判別する中継判別ステ
ップと、 前記中継判別ステップで他のオブジェクトから参照され
ていないと判別したときに、前記中継オブジェクトのメ
モリ領域を回収するメモリ領域回収ステップと、を含む
ことを特徴とする請求項18乃至20のいずれか1項に
記載のメモリ管理方法。 - 【請求項22】他のモジュールに存在するオブジェクト
を参照する参照元オブジェクトと前記参照元オブジェク
トから参照される参照先オブジェクトをそれぞれ部分参
照重みと総参照重みとによって管理するメモリ管理方法
であって、 オブジェクトに関する情報を含むモジュールに関する情
報を、該モジュールが存在する計算機とは異なる他の計
算機の送信する第1の送信ステップと、 前記第1の送信ステップで送信されたモジュールに関す
る情報を受信する情報を受信する第1の受信ステップ
と、 前記第1の受信ステップで受信した前記モジュールに関
する情報に基づいて、総参照重みとして所定の値を設定
した参照先オブジェクトを有するモジュールを生成する
モジュール生成ステップと、 前記第1の受信ステップで受信した前記モジュールに関
する情報に対する返信と共に、前記総参照重みに対応す
る値を有する前記第1の付加参照重みを、前記第1の受
信手段に受信する第2の送信ステップと、 前記第2の送信ステップで送信されたモジュールに関す
る情報に対する返信及び部分参照重みを設定するための
第1の付加参照重みを受信する第2の受信ステップと、 前記第2の受信ステップで受信した前記第1の付加参照
重みを部分参照重みとして設定して、該モジュール内の
オブジェクトを、他のオブジェクトからの参照要求を前
記モジュールに関する情報の送信先に転送するための中
継オブジェクトに変換して中継モジュールを生成するす
る第1の中継モジュール生成ステップと、を含むことを
特徴とするメモリ管理方法。 - 【請求項23】前記第1のモジュール生成ステップで生
成された、前記参照先オブジェクトに関する情報を含む
モジュールに関する情報を、前記ネットワークを介して
さらに他の計算機に送信する第3の送信ステップと、 他の計算機が有する第3の送信ステップで送信された前
記モジュールに関する情報を受信する第3の受信ステッ
プと、 前記第3の受信ステップで受信した前記モジュールに関
する情報に基づいて、総参照重みとして所定の値を設定
した参照先オブジェクトを有するモジュールを生成する
第2のモジュール生成ステップと、 前記第3の受信ステップで受信した前記モジュールに関
する情報に対する返信と共に、前記総参照重みに対応す
る値を有する第2の付加参照重みを、前記モジュールに
関する情報を送信したモジュールに送信する第4の送信
ステップと、 他の計算機が有する第4の送信ステップ送信した前記返
信及び前記第2の付加参照重みを受信する第4の受信ス
テップと、 前記第4の受信ステップ受信した前記第2の付加参照重
みを設定して、前記第1のモジュール生成ステップで生
成されたモジュール内に含まれる前記参照先オブジェク
トを、他のオブジェクトからの転送要求を前記第2のモ
ジュール生成ステップで生成されたモジュール内に含ま
れる参照先オブジェクトに転送するための中継オブジェ
クトに変換して中継モジュールを生成する第2の中継モ
ジュール生成ステップと、を含むことを特徴とする請求
項22に記載のメモリ管理方法。 - 【請求項24】他のモジュールに存在するオブジェクト
を参照する参照元オブジェクトと前記参照元オブジェク
トから参照される参照先オブジェクトをそれぞれ部分参
照重みと総参照重みとによって管理するプログラムを記
憶したコンピュータ読み取り可能な記録媒体であって、 自モジュール内に存在するオブジェクトに関する情報を
他のモジュールに送信する第1の送信ステップと、 前記第1の送信ステップで送信されたオブジェクトに関
する情報を受信する第1の受信ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
関する情報に基づいて、総参照重みとして所定の値を設
定して、参照先オブジェクトを生成する参照先オブジェ
クト生成ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
関する情報に対する返信と共に、前記総参照重みに対応
する値を有する第1の付加参照重みを、前記オブジェク
トに関する情報を送信したモジュールに送信する第2の
送信ステップと、 前記第2の送信ステップで送信された前記オブジェクト
に関する情報に対する返信及び部分参照重みを設定する
ための前記第1の付加参照重みを受信する第2の受信ス
テップと、 前記第2の受信ステップで受信した前記第1の付加参照
重みを部分参照重みとして設定して、前記オブジェクト
を参照元オブジェクトに変換する参照元オブジェクト生
成ステップと、を実現するプログラムを記憶することを
特徴とするコンピュータ読み取り可能な記録媒体。 - 【請求項25】前記参照先オブジェクト生成ステップで
生成された前記参照先オブジェクトに関する情報を他の
モジュールに送信する第3の送信ステップと、 前記第3の送信ステップで送信された前記参照先オブジ
ェクトに関する情報を受信する第3の受信ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
クトに関する情報に基づいて、総参照重みとして所定の
値を設定して、参照先オブジェクトを生成する第3の参
照先オブジェクト生成ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
クトに関する情報に対する返信と共に、前記総参照重み
に対応する値を有する第2の付加参照重みを、前記オブ
ジェクトに関する情報を送信したモジュールに送信する
第4の送信ステップと、 前記第4の送信ステップで送信された前記返信及び前記
第2の付加参照重みを受信する第4の受信ステップと、 前記第4の受信ステップで受信した前記第2の付加参照
重みを部分参照重みとして設定して、前記参照先オブジ
ェクトを、他のオブジェクトからの転送要求を前記第2
の参照先オブジェクト生成ステップで生成された参照先
オブジェクトに転送するための中継オブジェクトに変換
する第2の中継オブジェクト生成ステップと、を実現す
るプログラムを記憶することを特徴とする請求項24に
記載のコンピュータ読み取り可能な記録媒体。 - 【請求項26】前記第1の中継オブジェクト生成ステッ
プで生成された中継オブジェクトが他のオブジェクトか
らの参照要求を受信したときに、所定の値を有する第3
の付加参照重みに付加して前記参照要求を前記第1の参
照先オブジェクトに転送する第5の送信ステップと、 前記第5の送信ステップで送信された前記参照要求及び
前記第3の付加参照重みを受信する第5の受信ステップ
と、 前記第5の受信ステップで受信した前記第3の付加参照
重みに従って、前記第1の参照先オブジェクト生成手段
が生成した参照先オブジェクトが有する総参照重みを更
新する総参照重み更新ステップと、 前記第5の受信ステップで受信した参照要求に対する返
信と共に、前記第3の付加参照重みに対応する値を有す
る第4の付加参照重みと、前記参照先オブジェクトが存
在するモジュールを特定するための特定情報とを、送信
する第6の送信ステップと、 前記第6の送信ステップで送信された前記返信、前記第
4の付加参照重み及び前記特定情報を受信する第6の受
信ステップと、 前記第6の受信ステップで受信した前記付加参照重みに
従って最初に参照要求を発したオブジェクトの部分参照
重みを更新し、さらに該オブジェクトの参照先を前記特
定情報に従って更新する参照先更新ステップと、 前記第6の受信ステップで受信した前記第4の付加参照
重みに対応する値を有する第5の付加参照重みを、前記
参照先オブジェクトを有するモジュールに送信する第7
の送信ステップと、 前記第7の送信ステップで送信された参照削除要求及び
第5の付加参照重みを受信する第7の受信ステップと、 前記第7の受信ステップで受信した前記第5の付加参照
重みに従って、前記参照先オブジェクトの総参照重みを
更新する総参照重み更新ステップと、を実現するプログ
ラムを記憶することを特徴とする請求項24または25
に記載のコンピュータ読み取り可能な記録媒体。 - 【請求項27】前記中継オブジェクトが他のオブジェク
トから参照されているかどうかを判別する中継判別ステ
ップと、 前記中継判別ステップで他のオブジェクトから参照され
ていないと判別したときに、前記中継オブジェクトのメ
モリ領域を回収するメモリ領域回収ステップと、を実現
するプログラムを記憶することを特徴とする請求項24
乃至26のいずれか1項に記載のコンピュータ読み取り
可能な記録媒体。 - 【請求項28】他のモジュールに存在するオブジェクト
を参照する参照元オブジェクトと前記参照元オブジェク
トから参照される参照先オブジェクトをそれぞれ部分参
照重みと総参照重みとによって管理するプログラムを記
憶したコンピュータ読み取り可能な記録媒体であって、 オブジェクトに関する情報を含むモジュールに関する情
報を、該モジュールが存在する計算機とは異なる他の計
算機の送信する第1の送信ステップと、 前記第1の送信ステップで送信されたモジュールに関す
る情報を受信する情報を受信する第1の受信ステップ
と、 前記第1の受信ステップで受信した前記モジュールに関
する情報に基づいて、総参照重みとして所定の値を設定
した参照先オブジェクトを有するモジュールを生成する
モジュール生成ステップと、 前記第1の受信ステップで受信した前記モジュールに関
する情報に対する返信と共に、前記総参照重みに対応す
る値を有する前記第1の付加参照重みを、前記第1の受
信手段に受信する第2の送信ステップと、 前記第2の送信ステップで送信されたモジュールに関す
る情報に対する返信及び部分参照重みを設定するための
第1の付加参照重みを受信する第2の受信ステップと、 前記第2の受信ステップで受信した前記第1の付加参照
重みを部分参照重みとして設定して、該モジュール内の
オブジェクトを、他のオブジェクトからの参照要求を前
記モジュールに関する情報の送信先に転送するための中
継オブジェクトに変換して中継モジュールを生成する第
1の中継モジュール生成ステップと、を実現するプログ
ラムを記憶することを特徴とするコンピュータ読み取り
可能な記録媒体。 - 【請求項29】前記第1のモジュール生成ステップで生
成された、前記参照先オブジェクトに関する情報を含む
モジュールに関する情報を、前記ネットワークを介して
さらに他の計算機に送信する第3の送信ステップと、 他の計算機が有する第3の送信ステップで送信された前
記モジュールに関する情報を受信する第3の受信ステッ
プと、 前記第3の受信ステップで受信した前記モジュールに関
する情報に基づいて、総参照重みとして所定の値を設定
した参照先オブジェクトを有するモジュールを生成する
第2のモジュール生成ステップと、 前記第3の受信ステップで受信した前記モジュールに関
する情報に対する返信と共に、前記総参照重みに対応す
る値を有する第2の付加参照重みを、前記モジュールに
関する情報を送信したモジュールに送信する第4の送信
ステップと、 他の計算機が有する第4の送信ステップ送信した前記返
信及び前記第2の付加参照重みを受信する第4の受信ス
テップと、 前記第4の受信ステップ受信した前記第2の付加参照重
みを設定して、前記第1のモジュール生成ステップで生
成されたモジュール内に含まれる前記参照先オブジェク
トを、他のオブジェクトからの転送要求を前記第2のモ
ジュール生成ステップで生成されたモジュール内に含ま
れる参照先オブジェクトに転送するための中継オブジェ
クトに変換して中継モジュールを生成する第2の中継モ
ジュール生成ステップと、を実現するプログラムを記憶
することを特徴とする請求項28に記載のコンピュータ
読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05232598A JP3385957B2 (ja) | 1998-03-04 | 1998-03-04 | 分散システム、メモリ管理装置及び方法、並びに記録媒体 |
US09/261,257 US6324549B1 (en) | 1998-03-04 | 1999-03-03 | Distributed system and memory management device, method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05232598A JP3385957B2 (ja) | 1998-03-04 | 1998-03-04 | 分散システム、メモリ管理装置及び方法、並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11249956A JPH11249956A (ja) | 1999-09-17 |
JP3385957B2 true JP3385957B2 (ja) | 2003-03-10 |
Family
ID=12911649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05232598A Expired - Lifetime JP3385957B2 (ja) | 1998-03-04 | 1998-03-04 | 分散システム、メモリ管理装置及び方法、並びに記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6324549B1 (ja) |
JP (1) | JP3385957B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7464384B2 (en) * | 2002-03-14 | 2008-12-09 | International Business Machines Corporation | Method for inter-object communication |
US7263532B2 (en) * | 2003-09-23 | 2007-08-28 | Microsoft Corporation | Region-based memory management for object-oriented programs |
CN102317939B (zh) * | 2008-12-22 | 2014-05-21 | 谷歌公司 | 用于复制的存储集群的异步分布式垃圾收集 |
US10157051B2 (en) * | 2012-03-02 | 2018-12-18 | International Business Machines Corporation | Upgrading devices in a dispersed storage network |
US10789223B2 (en) | 2016-03-24 | 2020-09-29 | Microsoft Technology Licensing, Llc | Hybrid garbage collection in a distributed storage system |
US10831532B2 (en) * | 2018-10-19 | 2020-11-10 | International Business Machines Corporation | Updating a nested virtualization manager using live migration of virtual machines |
CN115238902A (zh) * | 2021-04-23 | 2022-10-25 | 伊姆西Ip控股有限责任公司 | 用于管理机器学习模型的方法、设备和计算机程序产品 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8529890D0 (en) * | 1985-12-04 | 1986-01-15 | Watson P | Garbage collection in computer system |
US5355483A (en) * | 1991-07-18 | 1994-10-11 | Next Computers | Asynchronous garbage collection |
US5560003A (en) * | 1992-12-21 | 1996-09-24 | Iowa State University Research Foundation, Inc. | System and hardware module for incremental real time garbage collection and memory management |
US5535390A (en) * | 1994-07-22 | 1996-07-09 | Hildebrandt; Thomas H. | Method for reusing temporaries and reclaiming shared memory |
US5832529A (en) * | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6105040A (en) * | 1997-06-30 | 2000-08-15 | Sun Microsystems, Inc. | Method and apparatus for managing stored objects |
-
1998
- 1998-03-04 JP JP05232598A patent/JP3385957B2/ja not_active Expired - Lifetime
-
1999
- 1999-03-03 US US09/261,257 patent/US6324549B1/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
市吉伸行,6,分散ごみ集め,情報処理,社団法人情報処理学会,1994年11月15日,第35巻 第11号,pp1027−1032 |
Also Published As
Publication number | Publication date |
---|---|
US6324549B1 (en) | 2001-11-27 |
JPH11249956A (ja) | 1999-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1078316B1 (en) | Method and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment | |
CN105094997B (zh) | 一种云计算主机节点间物理内存共享方法和系统 | |
US6317773B1 (en) | System and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators | |
JP2002533809A (ja) | 漸進変化を伴うオブジェクトハッシング | |
WO2001082058A2 (en) | Dynamic file system configurations | |
US20130097617A1 (en) | Integration of disparate applications on a network | |
CN104601680B (zh) | 一种资源管理方法及装置 | |
JP3385957B2 (ja) | 分散システム、メモリ管理装置及び方法、並びに記録媒体 | |
CN102917025A (zh) | 一种云计算平台的业务迁移方法 | |
US6138169A (en) | System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN108933844A (zh) | 提供dhcp服务的方法及设备 | |
CN111309440A (zh) | 一种多类型gpu的管理调度的方法和设备 | |
CN104636260B (zh) | 一种用于计费业务的数据管理方法及系统 | |
CN108540408A (zh) | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 | |
Siriweera et al. | Internet of cross-chains: Model-driven cross-chain as a service platform for the internet of everything in smart city | |
CN117435324A (zh) | 基于容器化的任务调度方法 | |
JPH09511858A (ja) | Osiエージェントにおける要求の並列実行 | |
CN102457572A (zh) | 使用异步通信和作用域的模块的透明分布和去耦合 | |
CN107395401B (zh) | 基于网络通信域和资源均衡度的多组件应用云部署方法 | |
WO1997035262A1 (fr) | Procede de generation automatique de programme et procede de commande d'execution | |
CN112583864A (zh) | 一种数据迁移方法及装置 | |
JP2002132503A (ja) | ワークフロー管理システムにおけるデータ連携定義方法およびプロセスデータ管理システム | |
JP3028544B2 (ja) | 分散処理システムの負荷分散方式 | |
CN108376101A (zh) | 一种Unity3D运行时资源管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080110 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090110 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100110 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110110 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110110 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120110 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130110 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130110 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |