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
Application number
JP05232598A
Other languages
English (en)
Other versions
JPH11249956A (ja
Inventor
秀仁 五味
悟 藤田
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP05232598A priority Critical patent/JP3385957B2/ja
Priority to US09/261,257 priority patent/US6324549B1/en
Publication of JPH11249956A publication Critical patent/JPH11249956A/ja
Application granted granted Critical
Publication of JP3385957B2 publication Critical patent/JP3385957B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage 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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散システム、メ
モリ管理装置及び方法、並びに記録媒体に関し、特に分
散コンピューティングのためのメモリ管理に関するもの
である。
【0002】
【従来の技術】分散コンピューティングのための自動メ
モリ管理装置及びメモリ管理方法は、分散システムにお
いて自動メモリ管理、ガーベージコレクションを単一の
メモリ空間のみにとどまらず、複数のメモリ空間におい
て実現するという目的のために考案された。
【0003】例えば、1987年6月発行のSprin
ger Verlag、LN CS259の第176〜
187項の「Distributed Garbage
Collection Using Referen
ce Counting」と題されたBevan, D.
I.による論文に示されるように、重み付き参照カウ
ント法を用いた自動メモリ管理装置は、異なるメモリ空
間のオブジェクトの参照、すなわちリモート参照を行う
オブジェクトに、「参照重み」なる数値を付加すること
によってメモリを管理していた。
【0004】オブジェクトへのリモート参照を持ったオ
ブジェクトが生成される場合には、リモート参照を受け
る被参照オブジェクトは、総参照重みというオブジェク
トに固有の数値の初期値(2のべき乗)を設定し、リモ
ート参照をする参照オブジェクトは、部分参照重みとい
う被参照オブジェクトへのリモート参照に固有の数値を
設定する。これにより、リモート参照が「生成」され
る。
【0005】例えば、図80において、総参照重みの初
期値を「64」とすると、被参照オブジェクト11は、
総参照重み「64」を所有し、被参照オブジェクト11
をリモート参照する参照オブジェクト10は、被参照オ
ブジェクト11に対する部分参照重み「64」を所有す
る。
【0006】オブジェクトへのリモート参照をする参照
オブジェクトが、第3のオブジェクトに被参照オブジェ
クトの情報を通信メッセージにより与える場合には、参
照オブジェクトは、自らの所有していた部分参照重みを
半減させ、半分を新たな部分参照重みとして更新する。
参照オブジェクトは、残り半分の参照重みを第3のオブ
ジェクトへの通信メッセージに含める。
【0007】第3のオブジェクトは、その通信メッセー
ジに含まれている参照重みを受け取って、受けとった参
照重みを自らの部分参照重みとして格納する。これによ
り、参照オブジェクトは、被参照オブジェクトへの参照
を行うことができ、リモート参照は、参照オブジェクト
から第3のオブジェクトへ「分配」されたこととなる。
【0008】リモート参照の「分配」は、参照を「分
配」してもらう第3のオブジェクトが、重みを分配する
参照オブジェクトと被参照オブジェクトのメモリ空間と
は異なるメモリ空間に存在するという点に、リモート参
照の「生成」とは差異がある。また、リモート参照の
「分配」において、総参照重みは不変であるので、総参
照重みは、参照オブジェクトが所有する部分重みの和
と、分散システム上に流れる全ての通信メッセージに含
まれるオブジェクトに関する参照重みの和に常に等しく
なっている。
【0009】例えば、図80の状態から参照オブジェク
ト10が被参照オブジェクト11の情報をオブジェクト
12へ受け渡す場合、図81に示すように、参照オブジ
ェクト10は、所有していた部分参照重み「64」を半
減させ、「32」とする。参照オブジェクト10は、減
じた重み「32」を通信メッセージに含めてオブジェク
ト12へ送信する。この通信メッセージを受けとったオ
ブジェクト12は、図82に示すように、自己の部分参
照重みを「32」とし、参照オブジェクトとなる。
【0010】参照オブジェクトが自らの存在するメモリ
空間上で不要となった場合には、所有する部分参照重み
の情報を含めた参照削除メッセージを被参照オブジェク
トに対して送信する。これが、リモート参照の「削除」
である。これにより、不要なメモリ領域を回収し、再利
用できる。
【0011】例えば、図83において、部分参照重み
「32」を所有している参照オブジェクト10が不要と
判別されると、その参照先である被参照オブジェクト1
1に対して、参照重み「32」を含めた参照削除メッセ
ージを送信する。その参照削除メッセージを受信した被
参照オブジェクト11は、図84に示すように、受けと
った参照重み「32」を総参照重みから減じて更新す
る。
【0012】被参照オブジェクトは、所有する総参照重
みが「0」になったときに、他のメモリ空間から参照す
るオブジェクトがなくなったと判断できる。さらに、そ
の自らの存在するメモリ領域からの参照もなければ、そ
の被参照オブジェクトの領域を回収することができる。
【0013】部分参照重みが「1」となった参照オブジ
ェクトは、リモート参照を「分配」することができな
い。この場合には、当該参照オブジェクトは、新たに間
接リモート参照する間接オブジェクトを生成し、生成し
た間接オブジェクトに間接的にリモート参照をさせる。
【0014】例えば、図85において、部分参照重みが
「1」となった参照オブジェクト20がオブジェクト2
2へリモート参照を「分配」する場合、参照オブジェク
ト20は、図86に示すように、間接オブジェクト23
を生成する。間接オブジェクト34は、参照オブジェク
ト20の部分参照重み「1」を継承する。間接オブジェ
クト23は、被参照オブジェクト21への参照を保持
し、総参照重み「64」を格納する。参照オブジェクト
20は、被参照オブジェクト21から間接オブジェクト
23に対してのリモート参照に更新し、部分参照重み
「64」とする。
【0015】参照オブジェクト20は、オブジェクト2
2へ重み「32」を含めたメッセージを送信することに
より参照重みを分配する。この参照重みを受けとったオ
ブジェクト22は、図87に示すように、部分参照重み
「32」として間接オブジェクト23へのリモート参照
を行うことができる。
【0016】
【発明が解決しようとする課題】しかしながら、上記従
来例の自動メモリ管理装置(以下、従来技術という)
は、次のような問題点があった。
【0017】第1の問題点は、従来技術は、オブジェク
トなどのデータ領域自体が計算機間を移動する場合に、
メモリ管理が不可能なことである。
【0018】近年、ネットワーク上のある実行環境から
異なる実行環境へと、オブジェクトの実行環境を移動さ
せ、またオブジェクトの実行を再開する、いわゆるエー
ジェントと呼ばれる技術が研究されている。
【0019】エージェント技術においては、オブジェク
トのデータ領域自体、またエージェントの占めるメモリ
領域自体が実行環境を変更する、すなわち、移動する。
【0020】このようにエージェントやそれに伴ってオ
ブジェクト領域が移動する分散システムにおいて、オブ
ジェクトが移動しても、そのオブジェクトを移動前から
参照していたオブジェクトが継続して移動したオブジェ
クトを参照できるための自動メモリ管理が必要である。
【0021】しかし、従来技術では、オブジェクトなど
のデータ領域は、生成されたメモリ空間上に駐在するこ
とが前提となっていた。このため、従来技術は、移動オ
ブジェクトの存在自体を考慮しておらず、メモリ管理が
不可能であった。
【0022】第2の問題点は、従来技術においては、ネ
ットワークにおける通信量が増大することである。
【0023】インターネットのように広範囲なネットワ
ークで構築される分散システムにおいて、オブジェクト
が異なる計算機のデータ領域を遠隔地の計算機から参照
する頻度が増加している。この傾向は、第1の問題点で
述べたようなエージェント移動、オブジェクト移動技術
により、さらに増している。
【0024】また、エージェント移動、オブジェクト移
動により、保持しているデータの参照先に、実際にはデ
ータの実体が存在せず、さらなる参照先をたどって初め
てデータの実体を参照できるという状況が頻繁に発生す
る。
【0025】遠隔地の計算機上のデータ領域を参照する
ためには、参照要求の通信メッセージを参照先の計算機
に送信し、要求データを返送してもらうことが必要とな
る。このため、オブジェクトがデータの実体を参照する
ために、多段階な通信のやりとりが発生してしまう。
【0026】多段階な通信を防ぐためには、参照先をで
きる限り直接の参照先に更新すればよい。しかし、従来
技術では、参照先の更新のために必要となる通信量を削
減することが困難であった。
【0027】第3の問題点は、従来技術では、オブジェ
クトを管理するために用いられる参照重みが枯渇するこ
と(参照重みの値が小さくなり、他のオブジェクトに分
配できなくなることをいう。以下、同じ)である。
【0028】その理由は、従来技術では、同じオブジェ
クトに対する参照が増加すると、参照重みは参照が削除
されない限り減るばかりで、返却されないからである。
【0029】第4の問題点は、従来技術では、個々の計
算機におけるメモリ不足が発生することである。
【0030】従来技術では、参照重みが枯渇した際に間
接オブジェクトが生成される。重みの枯渇する頻度が高
い場合には、メモリ上に間接オブジェクトが多く生成さ
れることになり、メモリ不足が発生する。
【0031】第5の問題点は、従来技術では、応用プロ
グラムの高速実行が妨げられたり、あるいは、応用プロ
グラムが停止されてしまうことである。
【0032】その理由は、第4の問題点と同様に、参照
重みが枯渇した際に間接オブジェクトが生成されるが、
間接オブジェクトが多く生成されると、参照オブジェク
トと間接オブジェクトとの間のメッセージの送受信が多
くなるからである。
【0033】本発明の目的は、オブジェクトなどのデー
タ領域の実行環境の移動を許す分散システムにおいて
も、移動を許さない分散システムと同様に、矛盾なく動
作するメモリ管理装置及び方法を提供することにある。
【0034】本発明の他の目的は、ネットワーク上にお
けるメモリ管理のための通信量を削減できるメモリ管理
装置及び方法を提供することにある。
【0035】本発明のさらに他の目的は、オブジェクト
を管理するために用いる参照重みが枯渇する可能性を削
減できるメモリ管理装置及び方法を提供することにあ
る。
【0036】本発明のさらに他の目的は、個々の計算機
においてメモリが不足することを削減できるメモリ管理
装置及び方法を提供することにある。
【0037】本発明のさらに他の目的は、上記のような
メモリ管理を実現することが可能な複数の計算機をネッ
トワークで結合した分散システムを提供することにあ
る。
【0038】本発明のさらに他の目的は、上記のような
メモリ管理を実現するプログラムを記憶したコンピュー
タ読み取り可能な記録媒体を提供することにある。
【0039】
【0040】
【0041】
【課題を解決するための手段】 上記目的を達成するた
め、本発明の第の観点にかかる分散システムは、複数
のモジュールを備え、他のモジュールに存在するオブジ
ェクトを参照する参照元オブジェクトと前記参照元オブ
ジェクトから参照される参照先オブジェクトとをそれぞ
れ部分参照重みと総参照重みとによって管理する分散シ
ステムであって、前記複数のモジュールのうちの少なく
とも1つのモジュールは、該モジュール内に存在するオ
ブジェクトに関する情報を他のモジュールに送信する第
1の送信手段と、他のモジュールから送信された前記オ
ブジェクトに関する情報の返信及び部分参照重みを設定
するための第1の付加参照重みを受信する第1の受信手
段と、前記第1の受信手段が受信した前記第1の付加参
照重みを部分参照重みとして設定して、前記オブジェク
トを、他のオブジェクトからの参照要求を前記オブジェ
クトに関する情報の送信先に転送するための中継オブジ
ェクトに変換する第1の中継オブジェクト生成手段と、
を備え、前記複数のモジュールのうちの少なくとも他の
1つのモジュールは、他のモジュールの第1の送信手段
から送信されたオブジェクトに関する情報を受信する第
2の受信手段と、前記第2の受信手段が受信した前記オ
ブジェクトに関する情報に基づいて、総参照重みとして
所定の値を設定して、参照先オブジェクトを生成する参
照先オブジェクト生成手段と、前記第2の受信手段が受
信した前記オブジェクトに関する情報に対する返信と共
に、前記総参照重みに対応する値を有する前記第1の付
加参照重みを、前記第1の受信手段に送信する送信手段
と、を備えることを特徴とする。
【0042】上記目的を達成するため、本発明の第
観点にかかる分散システムは、ネットワークを介して結
合された複数の計算機によって構成され、複数のモジュ
ールを備え、他のモジュールに存在するオブジェクトを
参照する参照元オブジェクトと前記参照元オブジェクト
から参照される参照先オブジェクトとをそれぞれ部分参
照重みと総参照重みとによって管理する分散システムで
あって、前記複数の計算機のうちの少なくとも1つの計
算機は、該計算機内に存在するオブジェクトに関する情
報を含む該モジュールに関する情報を前記ネットワーク
を介して他の計算機に送信する第1の送信手段と、他の
計算機に生成されたモジュールから送信された前記モジ
ュールに関する情報に対する返信及び部分参照重みを設
定するための第1の付加参照重みを受信する第1の受信
手段と、前記第1の受信手段が受信した前記第1の付加
参照重みを部分参照重みとして設定して、該モジュール
内のオブジェクトを、他のオブジェクトからの参照要求
を前記モジュールに関する情報の送信先に転送するため
の中継オブジェクトに変換する第1の中継モジュール生
成手段と、を備え、前記複数の計算機のうちの少なくと
も他の1つの計算機は、他の計算機の第1の送信手段か
ら送信されたモジュールに関する情報を受信する第2の
受信手段と、前記第2の受信手段が受信した前記モジュ
ールに関する情報に基づいて、総参照重みとして所定の
値を設定した参照先オブジェクトを有するモジュールを
生成するモジュール生成手段と、前記第2の受信手段が
受信した前記モジュールに関する情報に対する返信と共
に、前記総参照重みに対応する値を有する前記第1の付
加参照重みを、前記第1の受信手段に受信する第2の送
信手段と、を備えることを特徴とする。
【0043】上記目的を達成するため、本発明の第
観点にかかるメモリ管理装置は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理装置であって、前記参照元オブジェクトが
前記参照先オブジェクトを参照するときに、前記参照元
オブジェクトが有する部分参照重みが所定の範囲にある
かどうかを判別する部分参照重み判別手段と、前記部分
参照重み判別手段が所定の範囲にないと判別したとき
に、前記参照先オブジェクトへの参照要求と共に、所定
の値を有する第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の付加参照重みを加算することによって、前記参照先
オブジェクトが有する総参照重みを更新することを特徴
とする。
【0044】上記メモリ管理装置は、前記部分参照重み
判別手段は、前記部分参照重みが所定の下限値よりも小
さいかどうかを判別する第1の判別手段をさらに備えて
もよい。この場合、前記第1の送信手段は、前記第1の
判別手段が所定の下限値よりも小さいと判別したとき
に、正の値を有する第1の付加参照重みを、前記参照要
求と共に送信し、前記第1の総参照重み更新手段は、前
記第1の受信手段が受信した正の値を有する第1の付加
参照重みを加算することによって、前記参照先オブジェ
クトが有する総参照重みを更新するものとすることがで
きる。
【0045】
【0046】上記メモリ管理装置は、さらに、前記参照
元オブジェクトが不要となったかどうかを判別するゴミ
オブジェクト判別手段と、前記ゴミオブジェクト判別手
段が不要と判別したときに、前記参照元オブジェクトか
らの参照を削除するための参照削除要求と共に、前記参
照元オブジェクトが有する部分参照重みに対応する第3
の付加参照重みを前記参照先オブジェクトが存在するモ
ジュールに送信する第3の送信手段と、他のモジュール
が有する第3の送信手段から送信された参照削除要求及
び第3の付加参照重みを受信する第3の受信手段と、前
記第3の受信手段が受信した前記第3の付加参照重みに
従って、前記参照先オブジェクトが有する総参照重みを
更新する第2の総参照重み更新手段と、前記ゴミオブジ
ェクト判別手段が不要と判別したときに、前記参照元オ
ブジェクトのメモリ領域を回収する第1のメモリ領域回
収手段と、を備えるものとすることができる。
【0047】この場合、上記メモリ管理装置は、さら
に、前記参照先オブジェクトが他のモジュールに存在す
る参照元オブジェクトから参照されておらず、かつ同一
のモジュールに存在する他のオブジェクトからも参照さ
れていないかどうかを判別する参照状態判別手段と、前
記参照状態判別手段が、前記参照オブジェクトが前記参
照元オブジェクトからも前記他のオブジェクトからも参
照されていないと判別したときに、前記参照先オブジェ
クトのメモリ領域を回収する第2のメモリ回収手段と、
を備えてもよい。
【0048】上記目的を達成するため、本発明の第
観点にかかるメモリ管理装置は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理装置であって、自モジュール内に存在する
オブジェクトに関する情報を他のモジュールに送信する
第1の送信手段と、他のモジュールが有する第1の送信
手段から送信されたオブジェクトに関する情報を受信す
る第1の受信手段と、前記第1の受信手段が受信した前
記オブジェクトに関する情報に基づいて、総参照重みと
して所定の値を設定して、参照先オブジェクトを生成す
る第1の参照先オブジェクト生成手段と、前記第1の受
信手段が受信した前記オブジェクトに関する情報に対す
る返信と共に、前記総参照重みに対応する値を有する第
1の付加参照重みを、前記オブジェクトに関する情報を
送信したモジュールに送信する第2の送信手段と、他の
モジュールが有する第2の送信手段から送信されたオブ
ジェクトに関する情報に対する返信及び部分参照重みを
設定するための第1の付加参照重みを受信する第2の受
信手段と、前記第2の受信手段が受信した前記第1の付
加参照重みを部分参照重みとして設定して、前記オブジ
ェクトを、他のオブジェクトからの参照要求を前記第1
の参照先オブジェクト生成手段によって生成された参照
先オブジェクトに転送するための中継オブジェクトに変
換する第1の中継オブジェクト生成手段と、を備えるこ
とを特徴とする。
【0049】この場合、前記第1の中継オブジェクト生
成手段によって変換された中継オブジェクトは、オブジ
ェクトの実体をもたなくてもよい。
【0050】上記メモリ管理装置は、さらに、前記参照
先オブジェクト生成手段によって生成された前記参照先
オブジェクトに関する情報を他のモジュールに送信する
第3の送信手段と、他のモジュールが有する第3の送信
手段から送信された参照先オブジェクトに関する情報を
受信する第3の受信手段と、前記第3の受信手段が受信
した前記参照先オブジェクトに関する情報に基づいて、
総参照重みとして所定の値を設定して、参照先オブジェ
クトを生成する第2の参照先オブジェクト生成手段と、
前記第3の受信手段が受信した前記参照先オブジェクト
に関する情報に対する返信と共に、前記総参照重みに対
応する値を有する第2の付加参照重みを、前記オブジェ
クトに関する情報を送信したモジュールに送信する第4
の送信手段と、他のモジュールが有する第4の送信手段
から送信された参照先オブジェクトに関する情報に対す
る返信及び部分参照重みを設定するための第2の付加参
照重みを受信する第4の受信手段と、前記第4の受信手
段が受信した前記第2の付加参照重みを部分参照重みと
して設定して、前記参照先オブジェクトを、他のオブジ
ェクトからの転送要求を前記第2の参照先オブジェクト
生成手段によって生成された参照先オブジェクトに転送
するための中継オブジェクトに変換する第2の中継オブ
ジェクト生成手段と、を備えるものとすることができ
る。
【0051】この場合、前記第2の中継オブジェクトに
よって変換された第2の中継オブジェクトは、オブジェ
クトの実体をもたなくてもよい。
【0052】上記メモリ管理装置は、さらに、前記第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の付加参照重みに従って、前記参照先オブジェク
トの総参照重みを更新する総参照重み更新手段と、を備
えるものとすることができる。
【0053】この場合、上記メモリ管理装置は、さら
に、前記中継オブジェクトが他のオブジェクトから参照
されているかどうかを判別する中継判別手段と、前記中
継判別手段が他のオブジェクトから参照されていないと
判別したときに、前記中継オブジェクトのメモリ領域を
回収するメモリ領域回収手段と、を備えるものとするこ
とができる。
【0054】上記目的を達成するため、本発明の第
観点にかかるメモリ管理装置は、ネットワークを介して
他のメモリ管理装置と結合され、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理装置であって、該メモリ管理装置内に存在
するオブジェクトに関する情報を含むモジュールに関す
る情報を前記ネットワークを介して他の計算機に送信す
る第1の送信手段と、他のメモリ管理装置の第1の送信
手段から送信されたモジュールに関する情報を受信する
第1の受信手段と、前記第1の受信手段が受信した前記
モジュールに関する情報に基づいて、総参照重みとして
所定の値を設定した参照先オブジェクトを有するモジュ
ールを生成する第1のモジュール生成手段と、前記第1
の受信手段が受信した前記モジュールに関する情報に対
する返信と共に、前記総参照重みに対応する値を有する
前記第1の付加参照重みを、前記第1の受信手段に受信
する第2の送信手段と、他のメモリ管理装置の第2の送
信手段から送信されたモジュールに関する情報に対する
返信及び部分参照重みを設定するための第1の付加参照
重みを受信する第2の受信手段と、前記第2の受信手段
が受信した前記第1の付加参照重みを部分参照重みとし
て設定して、該モジュール内のオブジェクトを、他のオ
ブジェクトからの参照要求を前記モジュールに関する情
報の送信先に転送するための中継オブジェクトに変換し
て中継モジュールを生成する第1の中継モジュール生成
手段と、を備えることを特徴とする。
【0055】この場合、前記第1の中継モジュール生成
手段によって変換された中継オブジェクトは、オブジェ
クトの実体をもたなくてもよい。
【0056】上記メモリ管理装置は、さらに、前記第1
のモジュール生成手段によって生成された、前記参照先
オブジェクトに関する情報を含むモジュールに関する情
報を、前記ネットワークを介してさらに他の計算機に送
信する第3の送信手段と、他の計算機が有する第3の送
信手段から送信された前記モジュールに関する情報を受
信する第3の受信手段と、前記第3の受信手段が受信し
た前記モジュールに関する情報に基づいて、総参照重み
として所定の値を設定した参照先オブジェクトを有する
モジュールを生成する第2のモジュール生成手段と、前
記第3の受信手段が受信した前記モジュールに関する情
報に対する返信と共に、前記総参照重みに対応する値を
有する第2の付加参照重みを、前記モジュールに関する
情報を送信したモジュールに送信する第4の送信手段
と、他の計算機が有する第4の送信手段が送信した前記
返信及び前記第2の付加参照重みを受信する第4の受信
手段と、前記第4の受信手段が受信した前記第2の付加
参照重みを設定して、前記第1のモジュール生成手段に
よって生成されたモジュール内に含まれる前記参照先オ
ブジェクトを、他のオブジェクトからの転送要求を前記
第2のモジュール生成手段によって生成されたモジュー
ル内に含まれる参照先オブジェクトに転送するための中
継オブジェクトに変換して中継モジュールを生成する第
2の中継モジュール生成手段と、を備えてもよい。
【0057】この場合、前記第2の中継モジュール生成
手段によって変換された中継オブジェクトは、オブジェ
クトの実体をもたなくてもよい。
【0058】上記メモリ管理装置は、さらに、中継モジ
ュール内のすべての中継オブジェクトが他のオブジェク
トから参照されているかどうかを判別する中継判別手段
と、前記中継判別手段がすべての中継オブジェクトが他
のオブジェクトから参照されていないと判別したとき
に、前記中継モジュールのメモリ領域を回収するメモリ
領域回収手段と、を備えるものとすることができる。
【0059】
【0060】
【0061】上記目的を達成するため、本発明の第
観点にかかるメモリ管理方法は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理方法であって、自モジュール内に存在する
オブジェクトに関する情報を他のモジュールに送信する
第1の送信ステップと、前記第1の送信ステップで送信
されたオブジェクトに関する情報を受信する第1の受信
ステップと、前記第1の受信ステップで受信した前記オ
ブジェクトに関する情報に基づいて、総参照重みとして
所定の値を設定して、参照先オブジェクトを生成する参
照先オブジェクト生成ステップと、前記第1の受信ステ
ップで受信した前記オブジェクトに関する情報に対する
返信と共に、前記総参照重みに対応する値を有する第1
の付加参照重みを、前記オブジェクトに関する情報を送
信したモジュールに送信する第2の送信ステップと、前
記第2の送信ステップで送信された前記オブジェクトに
関する情報に対する返信及び部分参照重みを設定するた
めの前記第1の付加参照重みを受信する第2の受信ステ
ップと、前記第2の受信ステップで受信した前記第1の
付加参照重みを部分参照重みとして設定して、前記オブ
ジェクトを、他のオブジェクトからの参照要求を前記第
1の参照先オブジェクト生成手段によって生成された参
照先オブジェクトに転送するための中継オブジェクトに
変換する第1の中継オブジェクト生成ステップと、を含
むことを特徴とする。
【0062】上記メモリ管理方法は、前記参照先オブジ
ェクト生成ステップで生成された前記参照先オブジェク
トに関する情報を他のモジュールに送信する第3の送信
ステップと、前記第3の送信ステップで送信された前記
参照先オブジェクトに関する情報を受信する第3の受信
ステップと、前記第3の受信ステップで受信した前記参
照先オブジェクトに関する情報に基づいて、総参照重み
として所定の値を設定して、参照先オブジェクトを生成
する第3の参照先オブジェクト生成ステップと、前記第
3の受信ステップで受信した前記参照先オブジェクトに
関する情報に対する返信と共に、前記総参照重みに対応
する値を有する第2の付加参照重みを、前記オブジェク
トに関する情報を送信したモジュールに送信する第4の
送信ステップと、前記第4の送信ステップで送信された
前記返信及び前記第2の付加参照重みを受信する第4の
受信ステップと、前記第4の受信ステップで受信した前
記第2の付加参照重みを部分参照重みとして設定して、
前記参照先オブジェクトを、他のオブジェクトからの転
送要求を前記第2の参照先オブジェクト生成ステップで
生成された参照先オブジェクトに転送するための中継オ
ブジェクトに変換する第2の中継オブジェクト生成ステ
ップと、をさらに含むものとすることができる。
【0063】上記メモリ管理方法は、また、前記第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
の付加参照重みに従って、前記参照先オブジェクトの総
参照重みを更新する総参照重み更新ステップと、を含む
ものとすることもできる。
【0064】そして、上記メモリ管理方法は、さらに、
前記中継オブジェクトが他のオブジェクトから参照され
ているかどうかを判別する中継判別ステップと、前記中
継判別ステップで他のオブジェクトから参照されていな
いと判別したときに、前記中継オブジェクトのメモリ領
域を回収するメモリ領域回収ステップと、を含むものと
してもよい。
【0065】上記目的を達成するため、本発明の第
観点にかかるメモリ管理方法は、他のモジュールに存在
するオブジェクトを参照する参照元オブジェクトと前記
参照元オブジェクトから参照される参照先オブジェクト
をそれぞれ部分参照重みと総参照重みとによって管理す
るメモリ管理方法であって、オブジェクトに関する情報
を含むモジュールに関する情報を、該モジュールが存在
する計算機とは異なる他の計算機の送信する第1の送信
ステップと、前記第1の送信ステップで送信されたモジ
ュールに関する情報を受信する情報を受信する第1の受
信ステップと、前記第1の受信ステップで受信した前記
モジュールに関する情報に基づいて、総参照重みとして
所定の値を設定した参照先オブジェクトを有するモジュ
ールを生成するモジュール生成ステップと、前記第1の
受信ステップで受信した前記モジュールに関する情報に
対する返信と共に、前記総参照重みに対応する値を有す
る前記第1の付加参照重みを、前記第1の受信手段に受
信する第2の送信ステップと、前記第2の送信ステップ
で送信されたモジュールに関する情報に対する返信及び
部分参照重みを設定するための第1の付加参照重みを受
信する第2の受信ステップと、前記第2の受信ステップ
で受信した前記第1の付加参照重みを部分参照重みとし
て設定して、該モジュール内のオブジェクトを、他のオ
ブジェクトからの参照要求を前記モジュールに関する情
報の送信先に転送するための中継オブジェクトに変換し
て中継モジュールを生成するする第1の中継モジュール
生成ステップと、を含むことを特徴とする。
【0066】上記メモリ管理方法は、さらに、前記第1
のモジュール生成ステップで生成された、前記参照先オ
ブジェクトに関する情報を含むモジュールに関する情報
を、前記ネットワークを介してさらに他の計算機に送信
する第3の送信ステップと、他の計算機が有する第3の
送信ステップで送信された前記モジュールに関する情報
を受信する第3の受信ステップと、前記第3の受信ステ
ップで受信した前記モジュールに関する情報に基づい
て、総参照重みとして所定の値を設定した参照先オブジ
ェクトを有するモジュールを生成する第2のモジュール
生成ステップと、前記第3の受信ステップで受信した前
記モジュールに関する情報に対する返信と共に、前記総
参照重みに対応する値を有する第2の付加参照重みを、
前記モジュールに関する情報を送信したモジュールに送
信する第4の送信ステップと、他の計算機が有する第4
の送信ステップ送信した前記返信及び前記第2の付加参
照重みを受信する第4の受信ステップと、前記第4の受
信ステップ受信した前記第2の付加参照重みを設定し
て、前記第1のモジュール生成ステップで生成されたモ
ジュール内に含まれる前記参照先オブジェクトを、他の
オブジェクトからの転送要求を前記第2のモジュール生
成ステップで生成されたモジュール内に含まれる参照先
オブジェクトに転送するための中継オブジェクトに変換
して中継モジュールを生成する第2の中継モジュール生
成ステップと、を含むものとすることができる。
【0067】
【0068】
【0069】上記目的を達成するため、本発明の第
観点にかかる記録媒体は、他のモジュールに存在するオ
ブジェクトを参照する参照元オブジェクトと前記参照元
オブジェクトから参照される参照先オブジェクトをそれ
ぞれ部分参照重みと総参照重みとによって管理するプロ
グラムを記憶したコンピュータ読み取り可能な記録媒体
であって、自モジュール内に存在するオブジェクトに関
する情報を他のモジュールに送信する第1の送信ステッ
プと、前記第1の送信ステップで送信されたオブジェク
トに関する情報を受信する第1の受信ステップと、前記
第1の受信ステップで受信した前記オブジェクトに関す
る情報に基づいて、総参照重みとして所定の値を設定し
て、参照先オブジェクトを生成する参照先オブジェクト
生成ステップと、前記第1の受信ステップで受信した前
記オブジェクトに関する情報に対する返信と共に、前記
総参照重みに対応する値を有する第1の付加参照重み
を、前記オブジェクトに関する情報を送信したモジュー
ルに送信する第2の送信ステップと、前記第2の送信ス
テップで送信された前記オブジェクトに関する情報に対
する返信及び部分参照重みを設定するための前記第1の
付加参照重みを受信する第2の受信ステップと、前記第
2の受信ステップで受信した前記第1の付加参照重みを
部分参照重みとして設定して、前記オブジェクトを参照
元オブジェクトに変換する参照元オブジェクト生成ステ
ップと、を実現するプログラムを記憶することを特徴と
する。
【0070】上記記録媒体は、前記参照先オブジェクト
生成ステップで生成された前記参照先オブジェクトに関
する情報を他のモジュールに送信する第3の送信ステッ
プと、前記第3の送信ステップで送信された前記参照先
オブジェクトに関する情報を受信する第3の受信ステッ
プと、前記第3の受信ステップで受信した前記参照先オ
ブジェクトに関する情報に基づいて、総参照重みとして
所定の値を設定して、参照先オブジェクトを生成する第
3の参照先オブジェクト生成ステップと、前記第3の受
信ステップで受信した前記参照先オブジェクトに関する
情報に対する返信と共に、前記総参照重みに対応する値
を有する第2の付加参照重みを、前記オブジェクトに関
する情報を送信したモジュールに送信する第4の送信ス
テップと、前記第4の送信ステップで送信された前記返
信及び前記第2の付加参照重みを受信する第4の受信ス
テップと、前記第4の受信ステップで受信した前記第2
の付加参照重みを部分参照重みとして設定して、前記参
照先オブジェクトを、他のオブジェクトからの転送要求
を前記第2の参照先オブジェクト生成ステップで生成さ
れた参照先オブジェクトに転送するための中継オブジェ
クトに変換する第2の中継オブジェクト生成ステップ
と、を実現するプログラムをさらに記憶するものとする
ことができる。
【0071】上記記録媒体は、また、前記第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の付
加参照重みに従って、前記参照先オブジェクトの総参照
重みを更新する総参照重み更新ステップと、を実現する
プログラムを記憶するものとすることもできる。
【0072】そして、上記記録媒体は、さらに、前記中
継オブジェクトが他のオブジェクトから参照されている
かどうかを判別する中継判別ステップと、前記中継判別
ステップで他のオブジェクトから参照されていないと判
別したときに、前記中継オブジェクトのメモリ領域を回
収するメモリ領域回収ステップと、を実現するプログラ
ムを記憶するものとすることもできる。
【0073】上記目的を達成するため、本発明の第
観点にかかる記録媒体は、他のモジュールに存在するオ
ブジェクトを参照する参照元オブジェクトと前記参照元
オブジェクトから参照される参照先オブジェクトをそれ
ぞれ部分参照重みと総参照重みとによって管理するプロ
グラムを記憶したコンピュータ読み取り可能な記録媒体
であって、オブジェクトに関する情報を含むモジュール
に関する情報を、該モジュールが存在する計算機とは異
なる他の計算機の送信する第1の送信ステップと、前記
第1の送信ステップで送信されたモジュールに関する情
報を受信する情報を受信する第1の受信ステップと、前
記第1の受信ステップで受信した前記モジュールに関す
る情報に基づいて、総参照重みとして所定の値を設定し
た参照先オブジェクトを有するモジュールを生成するモ
ジュール生成ステップと、前記第1の受信ステップで受
信した前記モジュールに関する情報に対する返信と共
に、前記総参照重みに対応する値を有する前記第1の付
加参照重みを、前記第1の受信手段に受信する第2の送
信ステップと、前記第2の送信ステップで送信されたモ
ジュールに関する情報に対する返信及び部分参照重みを
設定するための第1の付加参照重みを受信する第2の受
信ステップと、前記第2の受信ステップで受信した前記
第1の付加参照重みを部分参照重みとして設定して、該
モジュール内のオブジェクトを、他のオブジェクトから
の参照要求を前記モジュールに関する情報の送信先に転
送するための中継オブジェクトに変換して中継モジュー
ルを生成する第1の中継モジュール生成ステップと、を
実現するプログラムを記憶することを特徴とする。
【0074】上記記録媒体は、さらに、前記第1のモジ
ュール生成ステップで生成された、前記参照先オブジェ
クトに関する情報を含むモジュールに関する情報を、前
記ネットワークを介してさらに他の計算機に送信する第
3の送信ステップと、他の計算機が有する第3の送信ス
テップで送信された前記モジュールに関する情報を受信
する第3の受信ステップと、前記第3の受信ステップで
受信した前記モジュールに関する情報に基づいて、総参
照重みとして所定の値を設定した参照先オブジェクトを
有するモジュールを生成する第2のモジュール生成ステ
ップと、前記第3の受信ステップで受信した前記モジュ
ールに関する情報に対する返信と共に、前記総参照重み
に対応する値を有する第2の付加参照重みを、前記モジ
ュールに関する情報を送信したモジュールに送信する第
4の送信ステップと、他の計算機が有する第4の送信ス
テップ送信した前記返信及び前記第2の付加参照重みを
受信する第4の受信ステップと、前記第4の受信ステッ
プ受信した前記第2の付加参照重みを設定して、前記第
1のモジュール生成ステップで生成されたモジュール内
に含まれる前記参照先オブジェクトを、他のオブジェク
トからの転送要求を前記第2のモジュール生成ステップ
で生成されたモジュール内に含まれる参照先オブジェク
トに転送するための中継オブジェクトに変換して中継モ
ジュールを生成する第2の中継モジュール生成ステップ
と、を実現するプログラムを記憶するものとすることが
できる。
【0075】
【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について、説明する。
【0076】[第1の実施の形態]図1は、この実施の
形態に適用されている分散システムの構成を示すブロッ
ク図である。図1を参照すると、この分散システム1
は、分散環境下に存在する計算機100、101、10
2、103が通信回線104を経由してネットワークで
結合されて構成されている。
【0077】図2は、図1の計算機100の機能構成を
示す機能ブロック図である。計算機101〜103も、
同様の機能構成を有している。図2に示すように、計算
機100は、中央制御装置(CPU)105、通信装置
106とプログラム制御により動作するモジュール11
0を備えている。
【0078】中央制御装置105は、実行手段112が
実行する演算を実際に行う装置である。
【0079】通信装置106は、通信回線104に接続
されており、これを経由してネットワーク上の計算機1
01〜103に対する通信メッセージの送信、受信が行
われる。計算機同士の通信は、互いの計算機が同じ通信
プロトコルを用いることにより成立する。通信装置10
6による通信メッセージの送信、受信により、計算機1
00は、他の計算機101〜103上に存在するオブジ
ェクトを参照したり、または他の計算機101〜103
から内部に存在するオブジェクトから参照されることが
できる。
【0080】データ処理装置107は、少なくとも1つ
のモジュール100から成る装置である。データ処理装
置107は、中央制御装置105とは別個に設けられた
サブプロセッサとメモリによって構成しても、実際には
中央制御装置105がメモリ上のプログラムを実行する
ものとして構成するものとしてもよい。
【0081】モジュール110は、モジュール制御手段
111、実行手段112、リモートアクセス管理手段1
13、ヒープメモリ領域114、ヒープメモリ管理手段
115、被参照テーブル116、参照テーブル117及
び参照重み管理手段118から構成される。
【0082】モジュール制御手段111は、モジュール
100の個々の実行手段112を順次動作させるための
制御をする。
【0083】実行手段112は、メソッド実行手段12
0とオブジェクト参照実行手段121とから成り、モジ
ュール制御手段111から伝達された応用プログラムの
個々の実行を中央制御装置105と連携して行う。実行
手段112が他の計算機101〜103に対して実行要
求をしたり、逆に他の計算機101〜103から実行要
求されたりする場合には、リモートアクセス管理手段1
13が連携して実行される。
【0084】メソッド実行手段120は、メソッドを実
行する手段であり、メソッド実行場所が自らのモジュー
ル110上ならば直ちに実行し、リモートであるならリ
モートアクセス管理手段113にメソッド実行要求通信
メッセージを作成させ、通信装置106から通信回線1
04を経由して実行に指定されたモジュールに送信す
る。
【0085】メソッド実行手段120は、その実行中に
オブジェクトを参照する時、オブジェクト参照実行手段
121が起動させる。オブジェクト参照実行手段121
は、参照すべきオブジェクトがヒープメモリ領域114
内に存在するか否かを調べる。もし存在すれば、オブジ
ェクト参照手段121は、そのままヒープメモリ領域1
14中のオブジェクトを参照する。存在しなければ、オ
ブジェクト参照手段121は、リモートアクセス管理手
段113にオブジェクト参照要求メッセージを作成さ
せ、通信装置106を通して、参照先のモジュールに対
して通信させる。
【0086】リモートアクセス管理手段113は、他の
モジュールとの通信メッセージの送受信を管理する。リ
モートアクセス管理手段113は、全てのオブジェクト
の情報のやりとりするために、送受信するメッセージの
型に応じて「参照重み」なる値をそのメッセージに付加
することにより管理する。
【0087】リモートアクセス管理手段113は、実行
手段112からの要求を受け、必要なデータを元にあら
かじめ定められた規格に従って通信メッセージを作成
し、通信装置106に伝達する。リモートアクセス管理
手段113は、通信メッセージを作成する際に、オブジ
ェクトに関する情報に加えて、参照重み管理手段118
の支援を受けて参照重みを設定する。
【0088】リモートアクセス管理手段113は、受信
した実行要求メッセージを他のモジュールに転送する場
合には、参照重み管理手段118の支援の下にその受信
メッセージに含まれる要求重みに適切な参照重みを与
え、再度、その参照重みを与えた実行要求メッセージを
作成して転送する。
【0089】リモートアクセス管理手段113は、ま
た、通信装置106が受信した通信メッセージをあらか
じめ定められた規格に従って読みとり、実行手段112
に伝達する。
【0090】ヒープメモリ領域114は、モジュール1
10が他のモジュールとは独立に所有するメモリ領域で
あり、この領域内にオブジェクトを記憶するための領域
(オブジェクト領域)が割り当てられる。
【0091】ヒープメモリ管理手段115は、ヒープメ
モリ領域114を管理する。すなわち、ヒープメモリ管
理手段115は、実行手段112からの要求によって必
要となったオブジェクトを記憶するための領域をヒープ
メモリ領域114内に確保し、また、不要となったオブ
ジェクト(ゴミオブジェクト)のメモリ領域を識別して
回収し、再利用する(ガーベージコレクション)。
【0092】ヒープメモリ管理手段115は、また、他
のモジュールのオブジェクトに対してリモート参照して
いるオブジェクトが不要になったと判別すると、リモー
トアクセス管理手段113に命じて参照先のモジュール
に参照削除メッセージを生成させる。
【0093】被参照テーブル116は、他のモジュール
内のオブジェクトからリモート参照されるモジュール1
10内のオブジェクトに関する情報が格納されるテーブ
ルである。被参照テーブル116は、後述するように、
ヒープメモリ領域114内に格納されるものすることが
とできる。
【0094】参照テーブル117は、モジュール110
内のオブジェクトが他のモジュールに存在するオブジェ
クトをリモート参照している場合に、その参照先のオブ
ジェクトに関する情報が格納されるテーブルである。参
照テーブル115は、後述するように、ヒープメモリ領
域114内に格納されるものとすることができる。
【0095】参照重み管理手段118は、オブジェクト
の所有する被参照テーブル116、参照テーブル117
の参照重みの管理をし、枯渇や余剰を防ぐ手段である。
【0096】図3は、モジュール110が実行されてい
る時のヒープメモリ領域114のイメージを示す図であ
る。
【0097】ヒープメモリ領域114中には、複数のオ
ブジェクトが存在する。
【0098】オブジェクト130は、データ131とメ
ソッド132とを備え、ヒープメモリ領域114内に確
保されるメモリ領域の最小単位となる。オブジェクト1
30は、分散システム1上で唯一のものであり、オブジ
ェクト130の存在する計算機100のネットワーク上
のIPアドレスとオブジェクト識別子OIDとによって
一意に識別される。
【0099】メソッド132は、スタック、局所変数、
大域変数などの実行環境を整備し、実際の実行を可能と
する情報からなり、メソッド132の参照によってメソ
ッド実行手段120が生成、実行される。
【0100】参照ポインタ133は、参照テーブル11
7の領域を指すポインタである。
【0101】被参照テーブル116は、他のモジュール
内のオブジェクトからモジュール110内のオブジェク
トがリモート参照されている場合、オブジェクト130
の情報、具体的には、OID134、総参照重み13
5、参照ポインタ136を格納する。
【0102】参照テーブル117は、モジュール内10
0のオブジェクト130が他のモジュール内のオブジェ
クトをリモート参照している場合に、オブジェクト13
0領域内の参照ポインタ133からたどられるテーブル
である。参照テーブル117には、リモート参照してい
るオブジェクトのOID137と参照オブジェクトの部
分参照重み138とそのオブジェクトが存在する計算機
のネットワーク上のIPアドレス139とが格納されて
いる。
【0103】総参照重み135は、オブジェクトに固有
の重みであり、これによって、分散システム1上でオブ
ジェクトを参照しているオブジェクトが管理される。
【0104】参照ポインタ136は、ヒープメモリ領域
114中のオブジェクト130領域を指すポインタであ
る。
【0105】部分参照重み138は、他のモジュール内
のオブジェクトをリモート参照しているオブジェクト
が、その参照先オブジェクトに対して所有する参照重み
であり、総参照重み135と同様に、分散システム1上
のオブジェクトを管理するために用いられる。
【0106】図4は、この実施の形態において通信回線
104上を流れる通信メッセージの形式をを示す図であ
る。図4に示すように、通信メッセージ160は、宛先
部150、型部151、オブジェクト部155、その他
の部分から成る。
【0107】宛先部150は、通信メッセージのヘッダ
に相当するもので、メッセージの送信先の宛先(IPア
ドレスなど)を格納する。
【0108】型部151は、通信メッセージがどのよう
な種類のメッセージであるか(参照要求であるか、メソ
ッド要求の返信であるかなど)を定める型情報を格納す
る。
【0109】オブジェクト部155は、各オブジェクト
の情報を格納する部分であり、具体的には、参照重み部
152、OID部153、フラグ部154、その他のデ
ータから構成される。
【0110】参照重み部152は、通信メッセージ16
0内の各オブジェクトに付加される付加参照重みを格納
する。付加参照重みは、オブジェクトの管理情報として
用いられる。通信メッセージ160の受信側のモジュー
ルは、通信メッセージの型部151によって定まる通信
メッセージの種類に依存した方法で、付加参照重みを取
り扱う。例えば、通信メッセージ160が参照削除メッ
セージであれば、付加参照重みは、参照削除を要求され
たオブジェクトが自らの総参照重みから減らすべき参照
重みを意味する。
【0111】OID部153は、オブジェクト識別子O
IDを格納する。
【0112】フラグ部154は、フラグを格納する。フ
ラグは、オブジェクト部155に相当するオブジェクト
が、モジュール内に存在したものである(ローカル)
か、モジュール外のオブジェクトを参照するオブジェク
ト(リモート)であるかを識別するための識別子であ
る。
【0113】オブジェクト部155には、その他には、
オブジェクトの所有するデータ、リモートオブジェクト
であれば、その参照先のオブジェクトの情報などが格納
される。
【0114】以下、この実施の形態における計算機10
0の動作について、説明する。なお、この実施の形態で
は、計算機101〜103も、計算機100と同様に動
作する。
【0115】図5は、リモートアクセス管理手段113
の動作を示すフローチャートである。リモートアクセス
管理手段113は、実行手段112の実行中に何らかの
事象が発生すると(ステップS1)、発生した事象がど
のような事象であったかどうかを判別する(ステップS
2)。実行手段112の実行中に発生する事象には、以
下のものが挙げられる。
【0116】1.ヒープメモリ管理手段115によるゴ
ミリモートオブジェクトの発見 2.他のモジュールからの参照削除メッセージの受信 3.リモートオブジェクトへの参照要求の発生 4.他のモジュールからのオブジェクト参照要求メッセ
ージの受信 5.リモートオブジェクトに対するメソッドの実行 6.他のモジュールからのメソッド実行要求メッセージ
の受信 7.他のモジュールからの返信メッセージの受信 8.部分参照重みの枯渇 9.参照重み補充要求メッセージの受信
【0117】リモートアクセス管理手段113は、ステ
ップS2で判別した事象の種別に応じて、次のような処
理をそれぞれ実行し、或いは他の手段に実行させる。以
下、リモートアクセス管理手段113が実行する、或い
は他の手段に実行させる処理について、発生した事象毎
に分けて説明する。
【0118】図6は、発生した事象が「1.ヒープメモ
リ管理手段115によるゴミリモートオブジェクトの発
見」であると判別された場合に実行される処理を示すフ
ローチャートである。
【0119】モジュールの実行手段112によるプログ
ラム実行中に、ヒープメモリ管理手段115が、別のモ
ジュールのオブジェクトをリモート参照するのみで、実
体をもたないオブジェクト(リモートオブジェクト)を
不要なゴミオブジェクトとして判別すると、その旨がリ
モートアクセス管理手段113に知らされる。(ステッ
プA1)。
【0120】リモートアクセス管理手段113は、リモ
ートオブジェクト領域の参照ポインタを通じてオブジェ
クトの参照テーブルの情報を調べ、参照先オブジェクト
の存在するモジュールへ送信すべき参照削除メッセージ
の作成を開始する(ステップA2)。
【0121】さらに、リモートアクセス管理手段113
は、前記通信メッセージにおける前記オブジェクトの参
照先オブジェクトの情報として、前記参照テーブル11
7のOID、IPアドレスなどの情報を格納する。さら
に、リモートアクセス管理手段113は、参照重み管理
手段118を呼び出して、参照重み部に格納すべき付加
参照重みの値を決定させる。
【0122】参照重み管理手段118は、前記参照テー
ブルの部分参照重みの値をリモートアクセス管理手段1
13に伝え、リモートアクセス管理手段113は、参照
重み管理手段118から伝えられた値を付加参照重みと
してメッセージに格納する(ステップA3)。
【0123】そして、リモートアクセス管理手段113
は、前記参照先オブジェクトを所有するモジュールに対
して、ステップA2、A3で生成した参照削除メッセー
ジを通信装置106を通して送信する(ステップA
4)。
【0124】メッセージへのリモートオブジェクトの情
報の格納が完了した後、ヒープメモリ管理手段115に
より、不要となったヒープメモリ領域114中の前記リ
モートオブジェクト領域は回収され、前記参照テーブル
領域中の前記リモートオブジェクトに関する領域は再利
用されることになる(ステップA5)。
【0125】図7は、発生した事象が「2.他のモジュ
ールからの参照削除メッセージの受信」であると判別さ
れた場合に実行される処理を示すフローチャートであ
る。
【0126】リモート参照されるオブジェクトを所有す
るモジュールが、前記オブジェクトをリモート参照する
モジュールからの、前記オブジェクトに対する参照削除
メッセージを通信装置106から受信すると(ステップ
B1)、リモートアクセス管理手段113が起動する。
【0127】リモートアクセス管理手段113は、受信
した参照削除メッセージに含まれているオブジェクトの
OIDと付加参照重みを読み込み、読み込んだOIDの
オブジェクトに対応する被参照テーブル116の領域を
調べる。リモートアクセス管理手段113は、被参照テ
ーブル116の総参照重みから、付加参照重みの値分を
減じ、減じた結果を新たな総参照重みとして格納する
(ステップB2)。
【0128】さらに、リモートアクセス管理手段113
は、前記オブジェクトの総参照重みが「0」であるか否
かを調べる(ステップB3)。総参照重みが「0」でな
ければ、このフローチャートの処理を終了する。
【0129】もし、総参照重みが「0」であれば(ステ
ップB5)、リモートアクセス管理手段113は、他の
モジュールに存在するオブジェクトから、何一つとして
リモート参照されなくなったとみなし、オブジェクトへ
の参照ポインタを取り外し(ステップB6)、被参照テ
ーブル内のそのオブジェクトの領域をクリアして、再利
用できるようにする(ステップB7)。ヒープメモリ領
域114内において、前記オブジェクトを参照するロー
カルオブジェクトが何一つなくなれば、その後、ヒープ
メモリ管理手段115によって、前記オブジェクト領域
は回収される。
【0130】図8は、発生した事象が「3.リモートオ
ブジェクトへの参照要求の発生」であると判別された場
合に実行される処理を示すフローチャートである。
【0131】モジュールのオブジェクト参照実行手段1
21が、リモートオブジェクトに対して参照要求をする
場合、リモートアクセス管理手段113が呼び出され
る。
【0132】リモートアクセス管理手段113は、リモ
ートオブジェクトが直接参照するリモート参照先オブジ
ェクト(ここでは、対象オブジェクトと呼ぶ)の存在す
るモジュールに対する参照要求メッセージの作成を開始
する(ステップC1)。
【0133】次に、リモートアクセス管理手段113
は、前記対象オブジェクトに付加する、付加参照重みの
値を決定するために、参照重み管理手段118を呼び出
す。
【0134】参照重み管理手段118は、部分参照重み
の均衡化をはかるため、多ければ、参照先へ参照重みを
返却し、少なければ、参照重みの補充要求するように、
参照重みを制御する。参照重み管理手段118は、前記
メッセージ中に格納する前記対象オブジェクトの部分参
照重みと、あらかじめ定められた下限値とを比較する
(ステップC2)。
【0135】もし、前記部分参照重みよりの方が前記下
限値より小さければ(ステップC3)、参照重み管理手
段118は、正の既定値をリモートアクセス管理手段1
13に知らせる。リモートアクセス管理手段113は、
知らされた正の既定値を付加参照重みとしてメッセージ
に格納する(ステップC4)。付加参照重みが正の場合
は、オブジェクトへの参照要求メッセージに、付加参照
重み分の参照重みの補充要求が多重化される。
【0136】ステップC2において前記部分参照重みが
前記下限値以上であれば(ステップC5)、参照重み管
理手段118は、さらに、あらかじめ定められた上限値
とを比較する(ステップC6)。
【0137】もし、部分参照重みが上限値より大きいな
らば(ステップC7)、参照重み管理手段118は、部
分参照重みに負の既定値を加えて更新する(ステップC
8)。そして、参照重み管理手段118は、対象オブジ
ェクトへの付加参照重みとして、前記負の既定値をリモ
ートアクセス手段113に知らせる。リモートアクセス
手段113は、知らされた負の既定値を付加参照重みと
してメッセージに格納する(ステップC9)。負の付加
参照重みは、参照重みの返却要求を意味する。すなわ
ち、参照要求と同時に、参照重みの返却を、単一のメッ
セージ送信によって行う。
【0138】一方、ステップC6において、前記部分参
照重みが上限値以下ならば(ステップC11)、参照重
み管理手段118は、付加参照重みにすべき値として
「0」をリモートアクセス制御手段113に知らせる。
リモートアクセス制御手段113は、知らされた「0」
を付加参照重みとしてメッセージに格納して(ステップ
C12)、前記対象オブジェクトのリモート参照先へ送
信する(ステップC10)。
【0139】図9は、発生した事象が「4.他のモジュ
ールからのオブジェクト参照要求メッセージの受信」で
あると判別された場合に実行される処理を示すフローチ
ャートである。
【0140】通信装置106が他のモジュールからのオ
ブジェクト参照要求メッセージを受信すると、リモート
アクセス管理手段113が呼び出される。リモートアク
セス管理手段113は、メッセージの型を読みとり、参
照要求であることを知る(ステップD1)。
【0141】次に、リモートアクセス管理手段113
は、参照重み管理手段118を呼び出す。参照重み管理
手段118は、前記受信メッセージに格納されている参
照要求をされたオブジェクト(ここでは、対象オブジェ
クトと呼ぶ)の付加参照重みを調べる(ステップD
2)。
【0142】もし、付加参照重みが「0」より大きけれ
ば(ステップD3)、前記付加参照重みの値分の参照重
み補充要求がされたことになり、参照重み管理手段11
8は、後に返信メッセージ、あるいは、さらに転送する
参照要求メッセージを作成する時に使用するために、参
照重み補充要求分を表す変数reqを用意し、これに前記
受信メッセージの前記対象オブジェクトの付加参照重み
を格納する(ステップD4)。
【0143】一方、前記付加参照重みが「0」以下であ
れば(ステップD5)、前記対象オブジェクトの総参照
重みに前記付加参照重みの値分を加えて、更新する(ス
テップD6)。すなわち、前記付加参照重みが「0」よ
り小さければ、参照重みは返却される。次に、参照重み
管理手段118は、後の返信メッセージ、あるいは、さ
らに転送する参照要求メッセージ作成時に使用するため
に、変数reqを用意して、これに「0」を格納する(ス
テップD7)。
【0144】参照重み管理手段118から付加参照重み
要求分を知らされたリモートアクセス管理手段113
は、前記対象オブジェクトがローカルかリモートかを調
べる(ステップD8)。
【0145】もし、リモートであれば(ステップD
9)、前記対象オブジェクトのリモート参照先オブジェ
クトに対して、参照要求を転送するために、新たな参照
要求メッセージを作成を開始する(ステップD10)。
その新たなメッセージに格納される、前記対象オブジェ
クトの参照先オブジェクトに付加する付加参照重みとし
て、変数reqの値と既定値を加えた値を格納し(ステッ
プD11)、参照要求メッセージを送信する(ステップ
D18)。
【0146】ステップD8において、前記対象オブジェ
クトがローカルであれば(ステップD12)、リモート
アクセス管理手段113は、参照重み管理手段118を
呼び出して、前記対象オブジェクトの総参照重みに変数
reqの値を加えて更新させる(ステップD13)。さら
に、リモートアクセス管理手段113は、オブジェクト
参照実行手段121を呼び出して、要求された参照を求
める処理を実行させた後、その結果を返信する返信メッ
セージの作成を開始する(ステップD14)。
【0147】次に、リモートアクセス管理手段113
は、前記返信メッセージにおいて前記対象オブジェクト
の最新の情報と共に付加される付加参照重みに、変数re
qの値を格納する(ステップD15)。
【0148】次に、参照重み管理手段118は、先にオ
ブジェクト参照実行手段121が得た、参照要求に対す
る結果となる参照のオブジェクト(ここでは、返値オブ
ジェクトと呼ぶ)の総参照重みの更新をする。さらに、
もし、前記返値オブジェクトが被参照テーブルになけれ
ば、参照重み管理手段118は、確保して新たに登録し
た後に、既定値分の参照重みを加える(ステップD1
6)。
【0149】最後に、リモートアクセス管理手段113
は、前記返信メッセージにおける前記返値オブジェクト
の付加参照重みとして、既定値を格納し(ステップD1
7)、返信メッセージを完成し、参照要求をしたオブジ
ェクトが存在するモジュールに送信する(ステップD1
8)。
【0150】図10は、発生した事象が「5.リモート
オブジェクトに対するメソッドの実行」であると判別さ
れた場合に実行される処理を示すフローチャートであ
る。
【0151】モジュールのメソッド実行手段120が、
リモートオブジェクトに対してメソッド実行呼び出しを
行った場合、リモートアクセス管理手段113によるメ
ソッド実行要求メッセージの作成が開始される。リモー
トアクセス管理手段113は、メソッド実行要求を表す
あらかじめ定められた規格通りにメッセージを作成す
る。
【0152】まず、リモートアクセス管理手段113と
参照重み管理手段118は、前記呼び出しを受けたリモ
ートオブジェクト(以下では、対象オブジェクトと呼
ぶ)の情報を前記実行要求メッセージに格納するための
処理を行う。メソッド実行呼び出しを受ける対象オブジ
ェクトに対する処理は、参照要求を受ける対象オブジェ
クトに対する処理と本質的には同様であり、広い意味で
は、メソッド実行は、参照要求に含めて考えることもで
きる。(後述するステップE1〜E10の処理は、リモ
ートオブジェクトへの参照要求メッセージでの操作と実
質、同様である。)
【0153】参照重み管理手段118は、前記対象オブ
ジェクトの部分参照重みが、あらかじめ定められた下限
値より小さいか否かを調べ(ステップE1)、もし、前
記下限値より小さければ(ステップE2)、リモートア
クセス管理手段113は、対象オブジェクトの付加参照
重みに、正の既定値を格納する(ステップE3)。
【0154】一方、参照重み管理手段118は、前記対
象オブジェクトの部分参照重みが、前記下限値以上であ
れば(ステップE4)、余剰の部分参照重みを返却する
ために、前記対象オブジェクトの部分参照重みが、あら
かじめ定められた上限値より大きいか否かを調べる。
(ステップE5)。
【0155】もし、部分参照重みが既定値以下であれば
(ステップE9)、参照重み管理手段118は値「0」
をリモートアクセス管理手段113に知らせ、リモート
アクセス管理手段113は、前記対象オブジェクトの付
加参照重みに「0」を格納する(ステップE10)。一
方、前記部分参照重みが既定値より大きければ(ステッ
プE6)、参照重み管理手段118は、リモートアクセ
ス管理手段113に負の既定値を知らせ、それを受けた
リモートアクセス管理手段113は、前記部分参照重み
に負の既定値を加えて更新し(ステップE7)、前記付
加参照重みに負の既定値を格納する(ステップE8)。
【0156】次に、リモートアクセス管理手段113
は、呼び出された前記メソッドの引数となるオブジェク
ト群(以下では、引数オブジェクトと呼ぶ)が存在する
場合に、前記実行要求メッセージに前記引数オブジェク
トの情報を格納する処理を行う。まず、リモートアクセ
ス手段113は、前記引数オブジェクトがモジュール内
に存在するか(ローカル)か、あるいは、モジュール外
に存在するか(リモート)かを調べる(ステップE1
1)。
【0157】もし、前記引数オブジェクトがリモートで
あれば(ステップE12)、リモートアクセス管理手段
113は、そのリモート参照先が前記対象オブジェクト
の参照先と同一か否かを調べる(ステップE13)。も
し、同一であれば(ステップE14)、前記引数オブジ
ェクトに付加する付加参照重みとして、「0」を格納す
る(ステップE15)。
【0158】一方、ステップE11において前記引数オ
ブジェクトと対象オブジェクトの参照先が異なれば(ス
テップE16)、リモートアクセス管理手段113は、
参照重み管理手段118を呼び出し、参照重みの分配を
させる。参照重み管理手段118は、前記引数オブジェ
クトの部分参照重みの値を調べる(ステップE17)。
【0159】もし、前記部分参照重みが「1」より小さ
いならば(ステップE19)、リモートアクセス管理手
段113は、後述する図15のステップJに移り(ステ
ップE20)、参照重み補充要求メッセージを作成し
て、リモート参照先へ送信、返信メッセージを受信し、
部分参照重みを補充する(ステップE21)。
【0160】一方、ステップE17において前記部分参
照重みが1より大きいならば(ステップE18)、参照
重み管理手段118は、何もせずに次の処理へ移る。そ
して、参照重み管理手段118は、部分参照重みを分割
して更新する(ステップE22)。リモートアクセス管
理手段113は、前記引数オブジェクトの付加参照重み
として、ステップE22において、減少した参照重み分
を格納する(ステップE23)。
【0161】ステップE11において、もし、前記引数
オブジェクトがローカルであれば(ステップE24)、
参照重み管理手段118は、前記引数オブジェクトの総
参照重みに既定値を加えて更新する(ステップE2
5)。リモートアクセス管理手段113は、前記引数オ
ブジェクトの付加参照重みとして、既定値を格納する
(ステップE26)。
【0162】リモートアクセス管理手段113は、前記
メソッドにおける全ての引数オブジェクトに対して、付
加参照重みの格納が終了したか否かを調べる(ステップ
E27)。
【0163】もし、終了していなければ(ステップE2
8)、ステップE11に戻り、同様の処理を繰り返す。
一方、終了していれば(ステップE29)、前記メソッ
ド実行要求メッセージの作成を完了し、送信する(ステ
ップE30)。
【0164】図11は、発生した事象が「6.他のモジ
ュールからのメソッド実行要求メッセージの受信」であ
ると判別された場合に実行される処理を示すフローチャ
ートである。メソッド実行を呼び出された対象オブジェ
クトに対する処理は、参照要求を受けた対象オブジェク
トに対する処理と本質的には同じである。
【0165】まず、通信装置106が他のモジュールか
らのメッセージを受信し、メッセージに含まれている情
報を読みとると、リモートアクセス管理手段113が呼
び出される(ステップF1)。
【0166】リモートアクセス管理手段113は、受信
したメッセージに格納されているメソッドを呼び出され
たオブジェクト(ここでは、対象オブジェクトと呼ぶ)
の付加参照重みの値を調べる(ステップF2)。
【0167】もし、前記付加参照重みが「0」以下なら
ば(ステップF5)、リモートアクセス管理手段113
は、参照重み管理手段118を呼び出し、前記対象オブ
ジェクトの総参照重みに前記付加参照重みを加えて更新
させる(ステップF6)。そして、参照重み管理手段1
18は、後に、前記対象オブジェクトに関する参照重み
の処理を行うために、参照重み要求分を示す変数reqを
用意し、これに「0」を格納する(ステップF7)。
【0168】一方、ステップF2において前記対象オブ
ジェクトの付加参照重みが「0」より大きければ(ステ
ップF3)、リモートアクセス管理手段113は、参照
重み補充要求を受けて、参照重み要求分を示す変数req
を用意し、前記付加参照重みを格納する(ステップF
4)。
【0169】次に、リモートアクセス管理手段113
は、前記対象オブジェクトがローカルであるか否かを調
べる(ステップF8)。もし、リモートであれば(ステ
ップF9)、リモートアクセス管理手段113は、前記
対象オブジェクトのリモート参照先オブジェクトに対し
てさらなるメソッド要求を転送するために、メソッド要
求メッセージの作成を開始する(ステップF10)。
【0170】そして、リモートアクセス管理手段113
は、前記メソッド実行要求メッセージにおける対象オブ
ジェクトの参照先オブジェクトに付加する付加参照重み
として、変数reqの値と既定値の和を格納する(ステッ
プF11)。ここにおける変数reqは、受信したメソッ
ド実行要求メッセージによって要求された参照重みを表
す。
【0171】さらに、リモートアクセス管理手段113
は、転送すべき前記メソッド実行要求メッセージに、メ
ソッドの引数となる引数オブジェクトの情報を格納する
処理を行う。この時、リモートアクセス管理手段113
は、前記受信メッセージにおける前記引数オブジェクト
の付加参照重みの値を調べる(ステップF12)。
【0172】もし、前記付加参照重みの値が「0」と異
なれば(ステップF13)、リモートアクセス管理手段
113は、前記引数オブジェクトの付加参照重みに、受
信メッセージにおける前記引数オブジェクトの付加参照
重みを格納する(ステップF14)。
【0173】一方、前記受信メッセージにおける前記引
数オブジェクトの付加参照重みの値が「0」と等しけれ
ば(ステップF15)、図11のステップHに処理を移
す。
【0174】リモートアクセス管理手段113は、前記
引数オブジェクトが、ローカルであるか否かを調べる
(図13のステップH1)。もし、ローカルであれば
(ステップH2)、参照重み管理手段118を呼び出し
て、前記引数オブジェクトの総参照重みに既定値を加え
て更新させ(ステップH3)、転送するメソッド要求メ
ッセージの前記引数オブジェクトの付加参照重みに既定
値を加える(ステップH4)。
【0175】ステップH1において前記引数オブジェク
トがリモートであった場合(ステップH5)、リモート
アクセス管理手段113は、前記対象オブジェクトとリ
モート参照先が同じか否かを調べる(ステップH6)。
【0176】もし同じであれば(ステップH15)、リ
モートアクセス管理手段113は、前記引数オブジェク
トの付加参照重みに「0」を格納する(ステップH1
6)。一方、前記対象オブジェクトとリモート参照先が
異なれば(ステップH7)、リモートアクセス管理手段
113は、参照重み管理手段118を呼び出して、参照
重みを分配する処理を実行させる。
【0177】参照重み管理手段118は、前記引数オブ
ジェクトの部分参照重みが「1」より大きいか調べる
(ステップH8)。もし、前記部分参照重みが「1」以
下であれば(ステップH10)、リモートアクセス手段
113は、リモート参照先に対して参照重み補充要求メ
ッセージを作成して送信し(ステップH13、図15の
ステップJ)。返信メッセージを受信して、部分参照重
みの補充を行う(ステップH14)。
【0178】もし、ステップH8において前記部分参照
重みが1より大きければ(ステップH9)、参照重み管
理手段118は、ステップH11へ処理を移し、前記部
分参照重みを分割し(ステップH11)、リモートアク
セス管理手段113は、前記引数オブジェクトの付加参
照重みに、前記部分参照重みの減少分を格納する(ステ
ップH12)。
【0179】以上の引数オブジェクトの付加参照重みの
設定をした後、リモートアクセス管理手段113は、全
ての引数オブジェクトにおいて処理が終了したか否かを
調べる(ステップF17)。
【0180】もし、まだ終了していなければ、ステップ
F17に戻り、全ての引数オブジェクトの処理を完了す
るまで繰り返す(ステップF19)。全ての引数オブジ
ェクトの処理を完了すれば(ステップF18)、リモー
トアクセス管理手段113は、作成した前記メソッド実
行要求メッセージを前記対象オブジェクトのリモート参
照先のモジュールへ送信する(ステップF31)。
【0181】ステップF8において、前記メソッドの対
象オブジェクトがローカルであれば(ステップF2
0)、このモジュール内で、メソッド実行手段120に
より、前記メソッドの実行が開始される。その際に、前
記メソッドの引数となる引数オブジェクトの参照重みが
更新される。
【0182】リモートアクセス管理手段113は、前記
引数オブジェクトの付加参照重みを調べ(ステップF2
1)、もし、「0」であれば(ステップF22)、ステ
ップF25に処理を移し、「0」でなければ(ステップ
F23)、前記引数オブジェクトの部分参照重みの更新
を行うために、ステップG(図12)に処理を移す。
【0183】リモートアクセス管理手段113は、ステ
ップGにおいて、まず、被参照テーブル116中に前記
引数オブジェクトが登録されているか否かを調べる(ス
テップG1)。
【0184】もし登録されていれば(ステップG2)、
リモートアクセス管理手段113は、参照重み管理手段
118を呼び出して、前記引数オブジェクトの総参照重
みから、前記付加参照重みの値を減じて更新させる(ス
テップG3)。これにより、リモート参照されるオブジ
ェクトが自らに対して、リモート参照を生成することを
防ぐ。
【0185】一方、ステップG1において前記引数オブ
ジェクトが被参照テーブル116中に登録されていなけ
れば(ステップG4)、リモートアクセス管理手段11
3は、前記引数オブジェクトに対してリモート参照する
リモートオブジェクトがヒープメモリ領域114内に存
在するか否かを調べる(ステップG5)。
【0186】もし、前記引数オブジェクトが存在しなけ
れば(ステップG6)、リモートアクセス管理手段11
3は、ヒープメモリ管理手段115を呼び出し、リモー
トオブジェクト領域を新たに確保し、リモートオブジェ
クトを生成させる(ステップG7)。さらに、リモート
アクセス管理手段113は、前記引数オブジェクトのO
ID、IPアドレスなどの値を設定し(ステップG1
2)、参照重み管理手段118を呼び出して、受信した
前記付加参照重みを部分参照重みに格納させる(ステッ
プG13)。
【0187】一方、ステップG5において前記引数オブ
ジェクトが既にリモートとして存在すれば(ステップG
8)、リモートアクセス管理手段113は、前記引数オ
ブジェクトの参照先情報が変わっているかどうか調べる
(ステップG9)。
【0188】もし不変であれば(ステップG14)、参
照重み管理手段118は、前記引数オブジェクトの部分
参照重みに前記受信メッセージの前記引数オブジェクト
の付加参照重みを加えて更新する(ステップG15)。
一方、前記引数オブジェクトの参照先情報が変わってい
れば(ステップG10)、リモートオブジェクトが保持
していた参照先に対する参照削除メッセージを作成し
て、送信する(ステップG11)。次に、参照重み管理
手段118は、OID、IPアドレスを格納し(ステッ
プG12)、前記部分参照重みを受信メッセージの前記
引数オブジェクトの付加参照重みとして格納する(ステ
ップG13)。
【0189】リモートアクセス管理手段113は、ステ
ップF21からステップF24の処理を全ての引数オブ
ジェクトに対して処理を終了したか否かを調べる(ステ
ップF25)。もし、終了していなければ(ステップF
26)、全てを終了するまで繰り返す。
【0190】終了していれば(ステップF27)、参照
重み管理手段118は、前記対象オブジェクト情報の総
参照重みに変数reqの値を加えて更新する(ステップF
28)。次に、リモートアクセス管理手段113は、前
記メソッドを実行した結果を格納した返信メッセージの
作成を開始し(ステップF29)、前記対象オブジェク
トの付加参照重みとして、変数reqの値を格納する(ス
テップF30)。そして、メッセージ作成を完了し、返
信メッセージを送信する(ステップF31)。
【0191】図14は、発生した事象が「7.他のモジ
ュールからの返信メッセージの受信」であると判別され
た場合に実行される処理を示すフローチャートである。
【0192】まず、通信装置106がメッセージを受信
すると、リモートアクセス管理手段113は、メッセー
ジに格納される型を読み込み、返信であることを確認す
る(ステップI1)。
【0193】そして、リモートアクセス管理手段113
は、前記メッセージ中に格納される、前記返信メッセー
ジの元のメッセージを送信したオブジェクト(ここで、
対象オブジェクトと呼ぶ)の最新情報と、モジュール内
の前記対象オブジェクト情報を比較して、同一か否かを
調べる(ステップI2)。
【0194】もし、更新されていなければ(ステップI
3)、リモートアクセス管理手段113は、自らの存在
するモジュール内の前記対象オブジェクト情報を更新す
る必要はなく、後に、さらなる返信メッセージの転送す
る際の、前記対象オブジェクトの付加参照重みの格納処
理のために用いる変数weightを用意し、これに前記受信
メッセージの前記対象オブジェクトに付加された付加参
照重みを格納する(ステップI4)。
【0195】一方、ステップI2において前記対象オブ
ジェクトが更新されていれば(ステップI5)、リモー
トアクセス管理手段113は、所有しているリモート参
照先の情報は無意味となったので、図6のステップAに
移り、参照削除メッセージを作成して、送信する(ステ
ップI6)。
【0196】そして、リモートアクセス管理手段113
は、参照重み管理手段118を呼び出して、前記対象オ
ブジェクトの部分参照重みに、新たな部分参照重みとし
て既定値を格納させ(ステップI7)、前記対象オブジ
ェクトのIPアドレスなどの最新情報を格納させる(ス
テップI8)。さらに、後の処理のために、変数weight
を用意し、これに、前記対象オブジェクトの付加参照重
みから既定値を減じた値を格納する(ステップI9)。
【0197】次に、リモートアクセス管理手段113
は、自らの存在するモジュールが、最初にメッセージを
送信した元であるか否かを調べる(ステップI10)。
もし、自らの存在するモジュールが要求元であれば(ス
テップI11)、返信をそれ以上に転送する必要はな
く、処理は終了する。
【0198】一方、自らの存在するモジュールが要求元
ではなく、受信した要求メッセージをさらに転送してい
たならば、リモートアクセス管理手段113は、返信メ
ッセージを、また、逆方向に前記要求メッセージを送信
してきた相手モジュールに返送することになる。リモー
トアクセス管理手段113は、さらなる返信の転送を行
うためのメッセージの作成を開始する(ステップI1
2)。
【0199】リモートアクセス管理手段113は、返信
メッセージにおける前記対象オブジェクトの付加参照重
みとして、以前の処理で確保された変数weightの値を格
納する(ステップI13)。
【0200】次に、リモートアクセス管理手段113
は、メッセージの型を調べ(ステップI14)、もし、
オブジェクト参照要求メッセージに対する返信以外のも
のであったなら(ステップI15)、ここで作成を完了
し、前記メッセージを送信する(ステップI18)。
【0201】一方、参照要求メッセージであれば(ステ
ップI16)、リモートアクセス管理手段113は、返
り値としての参照(この参照先のオブジェクトを、ここ
では返値オブジェクトと呼ぶ)を前記メッセージに格納
し、前記返値オブジェクトの付加参照重みとして、前記
受信した返信メッセージの前記返値オブジェクトの付加
参照重みの値をそのまま格納し(ステップI17)、作
成した前記返信メッセージを送信する(ステップI1
8)。
【0202】図15は、発生した事象が「8.部分参照
重みの枯渇」であると判別された場合に実行される処理
を示すフローチャートである。
【0203】参照重み管理手段118が、リモートオブ
ジェクトがリモート参照を分配する際に、そのオブジェ
クトの部分参照重みの値が1以下のため、参照重みを分
割することができなくなった場合に、リモートアクセス
管理手段113は、前記リモートオブジェクトのリモー
ト参照先に対して、参照重み補充要求をするために、メ
ッセージの作成を開始する(ステップJ1)。
【0204】リモートアクセス管理手段113は、その
参照重み補充要求メッセージに格納される前記リモート
オブジェクトの参照先オブジェクト情報への付加参照重
みとして、規定値を格納して(ステップJ2)、作成し
た前記メッセージを送信する(ステップJ3)。
【0205】図16は、発生した事象が「9.参照重み
補充要求メッセージの受信」であると判別された場合に
実行される処理を示すフローチャートである。
【0206】通信装置106がメッセージを受信する
と、リモートアクセス管理手段113は、前記メッセー
ジを読みとり、参照重み補充要求であることを確認する
(ステップK1)。
【0207】次に、参照重み管理手段118は、参照重
みを要求されているオブジェクトの総参照重みを、前記
受信メッセージの前記オブジェクトの付加参照重み分だ
け増加させ、更新する(ステップK2)。
【0208】次に、リモートアクセス管理手段113
は、参照重み補充要求に対する返信メッセージを作成を
開始し(ステップK3)、そのメッセージ中に格納する
前記オブジェクトの付加参照重みに前記受信メッセージ
における前記オブジェクトの付加参照重みの値をそのま
ま格納し(ステップK4)、作成した前記メッセージを
送信する(ステップK5)。
【0209】以下、図17〜図30を参照して、この実
施の形態にかかる分散システム1における動作を、具体
例に基づいて説明する。
【0210】モジュール180は、モジュール170か
らの参照要求メッセージを受信し、オブジェクト181
の情報を返信すると仮定する。
【0211】モジュール180は、被参照テーブル18
2にオブジェクト181に関する領域を確保して、OI
D183にオブジェクト181、総参照重み184に参
照重みの既定値(ここでは、「8」とする。)、参照ポ
インタ185にオブジェクト181のヒープメモリ領域
でのメモリアドレスを格納する。
【0212】そして、モジュール180は、返信メッセ
ージにオブジェクト181のOID、モジュール180
のIPアドレス、参照重み「8」を付加参照重みとして
格納して、モジュール170に返送する(図17)。
【0213】モジュール170は、返信メッセージを受
信して、まず、リモートオブジェクト171をヒープメ
モリ領域に確保する。そして、受信した返信メッセージ
をもとに、参照テーブル172内にオブジェクト171
用の領域を確保し、OID173にオブジェクト「18
1」、IPアドレス175にモジュール180の計算機
のIPアドレス、部分参照重み174に受信した付加参
照重み「8」を格納する。そして、オブジェクト171
の参照ポインタ176にテーブル172のオブジェクト
171の領域のメモリアドレスを格納し、オブジェクト
181へのリモート参照を生成する(図18)。
【0214】その後、図18の状態から別のモジュール
190からモジュール170に対してメソッド実行要求
メッセージが送信され、モジュール170がオブジェク
ト171の情報を返信メッセージに含めて返信すると仮
定する。
【0215】モジュール170は、メソッドを実行し
て、オブジェクト171のOID173の値「181」
をメッセージに格納する。そして、モジュール170
は、部分参照重み174を半減させて、「4」を新たな
部分参照重み174として再格納し、残りの参照重み
「4」を付加参照重みとして返信メッセージを作成し、
モジュール190に返信メッセージを送信する(図1
9)。
【0216】返信メッセージを受信したモジュール19
0は、リモートオブジェクト191をヒープメモリ領域
に確保し、自らの参照テーブル192内にオブジェクト
191の領域を確保する。そして、モジュール190
は、受信した返信メッセージに含まれていたオブジェク
ト181に関する情報より、OID193にオブジェク
ト180、部分参照重み194に受信した付加参照重み
「4」、IPアドレスにモジュール180のIPアドレ
スを格納する。これにより、モジュール170は、自ら
が所有していたモジュール180のオブジェクト181
に関する参照重みを、モジュール190のオブジェクト
191に分配した(図20)。
【0217】また、オブジェクト181は、2つのリモ
ートオブジェクト171、191からリモート参照され
ていることになるが、オブジェクト171、191がそ
れぞれ所有する部分参照重みの和は、オブジェクト18
1が所有する総参照重みに等しく、総参照重み184に
よって、オブジェクト181の全てのリモート参照が管
理されている。
【0218】この後、モジュール190のヒープメモリ
管理手段が、オブジェクト191をゴミオブジェクトと
判別したとすると、モジュール190のリモートアクセ
ス管理手段は、オブジェクト191の参照先であるモジ
ュール180に対して、部分参照重み194の値「4」
とOID193の値「181」を参照削除メッセージに
格納して送信する。そして、モジュール190のヒープ
メモリ管理手段は、オブジェクト191の領域を回収
し、参照テーブル192上のオブジェクト191の領域
をクリアする(図21)。
【0219】参照削除メッセージを受信したモジュール
180のリモートアクセス管理手段は、受信メッセージ
のOIDを調べ、被参照テーブル182の総参照重み1
84の値から「4」を減じて「4」とする(図22)。
【0220】さらに、メソッド実行中に、モジュール1
70がオブジェクト171を通して、オブジェクト18
1に参照要求メッセージを送信すると仮定する。ここに
おいて、図8のステップC2における部分参照重みの下
限値を「5」と仮定すると、モジュール170の参照重
み管理手段は、既定値(ここでは「8」と仮定する)
を、オブジェクト181の付加参照重みに格納した参照
要求メッセージをモジュール180に送信する(図2
3)。
【0221】モジュール170からの参照要求メッセー
ジを受信したモジュール180は、被参照テーブル18
2中に、オブジェクト181の領域が存在することを確
認して、受信したメッセージ中に含まれる付加参照重み
「8」を総参照重み184に加えて新たに「12」を格
納する。そして、要求された参照重み分を参照要求メッ
セージに対する返信メッセージの付加参照重みとして
「8」を格納して返信する(図24)。
【0222】モジュール170は、返信メッセージを受
信して、その付加参照重み「8」を自らの部分参照重み
174に加えて更新し、「12」とする(図25)。
【0223】ここで、参照重み管理手段があらかじめ設
定する部分参照重みの上限値(図8のステップC6)を
「40」、その際に付加参照重みに格納される負の既定
値を「−20」と仮定する。その後、オブジェクト17
1の部分参照重み、オブジェクト181の総参照重みが
増加し、それぞれ「50」になり、次にオブジェクト1
71がモジュール180に対して参照要求メッセージを
送信する場合を考察する(図26)。
【0224】オブジェクト171の部分参照重みが上限
値を越えたので、モジュール170の参照重み管理手段
は、参照要求メッセージに付加参照重みとして「−2
0」を、モジュール180に送信する(図27)。
【0225】メッセージを受信したモジュール180
は、受信した付加参照重みを総参照重み184に加え
る。すなわち、モジュール180は、総参照重み184
の値「50」から参照重み「20」を減じて「30」と
する(図28)。
【0226】その後、モジュール170のヒープメモリ
管理手段は、オブジェクト171をゴミオブジェクトと
判別したとすると、参照削除メッセージをモジュール1
80に送信する。オブジェクト171はヒープメモリ管
理手段によって回収され、参照テーブル172のオブジ
ェクト171の領域もクリアされる(図29)。
【0227】参照削除メッセージを受信したモジュール
180は、受信メッセージのOIDに従って被参照テー
ブル182の総参照重み184から「30」を減じる。
総参照み184が「0」となったので、参照テーブル1
82中のオブジェクト181の領域はクリアされる。そ
の後、オブジェクト181の領域は、もし、モジュール
180内の他のオブジェクトからも参照されなくなれ
ば、ヒープメモリ管理手段によって回収される(図3
0)。
【0228】以下、本実施の形態の効果について説明す
る。
【0229】本実施の形態では、参照重み管理手段11
8がオブジェクトの情報がやりとりされる際に付加する
付加参照重みを、オブジェクトの部分参照重みの値に応
じて動的に定めている。これにより、部分参照重みが不
足しそうな場合、参照要求メッセージやメソッド要求メ
ッセージに付加させて、参照重みの補充を要求し、返信
メッセージから要求した参照重みを受けとり、参照重み
を増加させることができる。
【0230】これにより、部分参照重みが枯渇する可能
性が少なくなり、参照を分配することができる。しか
も、重みを増加させるために、余分な通信を発生させて
いない。部分参照重みが増え過ぎた場合も同様で、付加
参照重みに負の値を設定することにより、参照重みを返
却することができ、総参照重みが増加し過ぎることをも
防いでいる。
【0231】これに伴って、間接オブジェクトを生成す
る機会を削減できる。
【0232】また、リモート参照しているオブジェクト
の情報を得るために送信する参照要求メッセージや、メ
ソッド要求メッセージに、オブジェクトの情報に加えて
付加参照重みを含めるだけで、オブジェクトの参照先を
常に最新のものに更新することができる。しかも、参照
先を更新するのに、余分な通信を発生させていない。こ
れにより、間接的なリモート参照による多段階の通信
や、メッセージを転送することになるモジュールの仲介
を削減している。
【0233】また、それらのモジュールへの不要な通信
接続を削減することができ、実行速度が向上し、ネット
ワーク上の負荷も削減することができる。
【0234】さらに、参照を転送するためだけに存在し
ている余分なメモリ領域を削減することができる。
【0235】[第2の実施の形態]この実施の形態にお
いて、分散システムの構成は、図1に示す第1の実施の
形態のものと実質的に同一であるが、分散システムを構
成する各計算機の構成が、第1の実施の形態のものと異
なる。
【0236】図31は、この実施の形態にかかる計算機
1000の機能構成を示す機能ブロック図である。図3
1に示すように、この実施の形態にかかる計算機100
0では、モジュール1010の実行手段1011が、図
2に示された第1の実施の形態のものに加えてさらにオ
ブジェクト移動手段1012を備える。また、モジュー
ル1010が第1の実施の形態のものに加えてさらにオ
ブジェクト移動管理手段1013を備える。
【0237】なお、以下の説明に表されている「オブジ
ェクト移動」とは、モジュール内に存在するオブジェク
ト領域自体を通信メッセージに格納して異なるモジュー
ルに送信し、実行環境を変える技術のことをいう。
【0238】オブジェクト移動実行手段1012は、モ
ジュール制御手段111の命令を受け、リモートアクセ
ス管理手段113に命じてオブジェクトの情報をメッセ
ージに格納して移動させる手段である。
【0239】オブジェクト移動管理手段1013は、リ
モートアクセス管理手段113の命令を受けて、オブジ
ェクトが移動する直前と直後に起動する。オブジェクト
移動管理手段1013は、オブジェクト移動直前には、
オブジェクトのデータ、メソッドを、通信メッセージに
格納するための形式にし、リモートアクセス管理手段1
13に伝える。一方、オブジェクト移動直後には、オブ
ジェクト移動管理手段1013は、受信メッセージ中に
格納されたオブジェクト情報をもとにして、他のオブジ
ェクトから移動オブジェクトに矛盾なくアクセスできる
ように、ヒープメモリ領域114中にオブジェクト領域
を確保し、再構築する。
【0240】移動元モジュールにおけるオブジェクト
は、オブジェクトの実体が移動した後、リモートオブジ
ェクトに変更して、移動先モジュールで生成されるオブ
ジェクトに対するリモート参照を保持し、前記移動元モ
ジュール内にとどまり、実行手段などからのアクセスを
受けた場合、前記実体のあるオブジェクトへ、そのアク
セスを転送する役割を持つ。そのため、以下では、この
リモートオブジェクトを中継オブジェクトと呼ぶ。移動
先のモジュールにおいて、生成されたオブジェクトは、
前記中継オブジェクトからリモート参照を受ける。
【0241】また、オブジェクト移動管理手段1013
は、オブジェクトが移動してきた時に、自らの存在する
モジュール内に、前記移動オブジェクトの中継オブジェ
クトが存在しているか調べ、もし、中継オブジェクトが
存在していれば、中継オブジェクトと移動オブジェクト
の2つのオブジェクト領域を統合して、1つのオブジェ
クトにする。これにより、無駄なメモリ領域の消費を防
止する。
【0242】以下、図32〜38を参照して、本実施の
形態の動作を詳細に説明する。
【0243】図32は、オブジェクト移動の一連の手順
を示す。
【0244】図36において、オブジェクト移動実行手
段1012により、モジュール1100内に存在してい
るオブジェクト1101がモジュール1110への移動
を命令されると、オブジェクト移動管理手段1013
は、まず、オブジェクト1101に関する情報をヒープ
メモリ領域から読み込み、メッセージに格納できる状態
にして、リモートアクセス管理手段113に伝える。リ
モートアクセス管理手段113は、それを受け、メッセ
ージに格納する(図32、図33のステップL1)。リ
モートアクセス管理手段113は、オブジェクト移動メ
ッセージの作成を完了した後、移動先モジュールに送信
する(図33のステップL2)。その後、リモートアク
セス管理手段113は、前記オブジェクト1101をリ
モートオブジェクトに変更し、中継オブジェクトとして
モジュール1100に残す(ステップL3)。
【0245】図37において、モジュール1110は、
モジュール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)。これにより、オブジェクト移動が完了した。
【0246】一方、中継オブジェクトが存在すれば(ス
テップM10)、オブジェクト移動管理手段1013
は、中継オブジェクトと前記受信メッセージに格納され
る移動オブジェクト情報とを統合する処理を開始する。
まず、管理手段1013は、被参照テーブルに前記中継
オブジェクトの情報が存在しているか否かを調べ(ステ
ップM11)、もし、存在していれば、参照重み管理手
段118は、前記被参照テーブルの中継オブジェクトの
総参照重みに前記移動オブジェクトの保持する総参照重
みの値を加える(ステップM13)。一方、前記被参照
テーブル中に、前記中継オブジェクトの情報がなけれ
ば、オブジェクト移動管理手段1013は、新たにオブ
ジェクト領域を確保し(ステップM15)、ついで、参
照重み管理手段118は、総参照重みに既定値(ここで
は「8」としている。図37)を格納し(ステップM1
6)、OID、参照ポインタを格納する(ステップM1
7)。
【0247】前記中継オブジェクトと前記移動オブジェ
クトの被参照テーブル情報の統合が完了すれば、リモー
トアクセス管理手段113は、中継オブジェクトの参照
テーブルを調べ、そのリモート参照先に参照削除メッセ
ージを作成して、送信する(ステップM18)。そし
て、前記移動オブジェクト情報を格納した後、ローカル
オブジェクトとする(ステップM19)。これによりオ
ブジェクト移動が完了した。
【0248】オブジェクトの移動が完了すれば、リモー
トアクセス管理手段113は、移動オブジェクトを受け
とったモジュールモジュール1110は、移動オブジェ
クトメッセージの送信元モジュール1100に対して、
移動が完了したことを知らせる返信メッセージの作成を
開始する(ステップM20)。リモートアクセス管理手
段113は、この返信メッセージに格納される前記移動
オブジェクトの付加参照重みとして、前記既定値「8」
を格納し(ステップM21)、メッセージをモジュール
1100に返信する(ステップM22、図37)。
【0249】図38において、リモートアクセス管理手
段113は、モジュール1100は、モジュール111
0からのオブジェクト移動に対する返信メッセージを受
信する(図32、図35のステップN1)。次に、参照
重み管理手段118は、中継オブジェクト1101の部
分重み1104として前記受信メッセージの移動オブジ
ェクト1111の付加参照重み「8」を格納し、さら
に、OID1103にオブジェクト1111、IPアド
レスにモジュール1110の計算機のIPアドレスを格
納する。以上の処理を完了して初めて、オブジェクト1
101に対する、他のオブジェクトからのアクセスを可
能とする(図38)。
【0250】このように「オブジェクトの移動」におい
て、移動前のオブジェクト(前記の例では、オブジェク
ト1101)は、もともと存在していたモジュール内に
オブジェクト識別子OIDを引き続いて保持し、もとも
と所有していたデータの実体を持たないが、移動後のオ
ブジェクト(前記の例のオブジェクト1111)へのリ
モート参照を持つ中継オブジェクトとしての役割を担
う。中継オブジェクトは、他のオブジェクトから、参照
要求やメソッド実行などのアクセスを受けると、その要
求をリモート参照先へと転送する。
【0251】移動後のオブジェクト(前記の例では、オ
ブジェクト1111)は、中継オブジェクトとは異なる
モジュールを実行環境として、異なるOIDを所有する
が、中継オブジェクトがもともと所有していたデータを
受け継ぎ、中継オブジェクトにリモート参照される。
【0252】以下、図39〜図49を参照して、この実
施の形態にかかる分散システム1における動作を、第1
の具体例に基づいて説明する。
【0253】まず、第1の実施例における仮定を説明す
る。モジュール1200のオブジェクト1210が、モ
ジュール1201、モジュール1202へと順に移動
し、それぞれ、オブジェクト1211、1212が生成
される。その後、モジュール1200において、あらか
じめオブジェクト1210を参照していたオブジェクト
1213がオブジェクト1210に参照要求する場合を
考察する。
【0254】オブジェクト1210が、モジュール12
00からモジュール1201へと移動する(図39)。
これにより、モジュール1201のオブジェクト移動管
理手段1013は、オブジェクト1211を生成させ、
被参照テーブルの総参照重み1221に既定値(ここで
は「8」と設定している)を設定し、モジュール120
0へ返信メッセージを返送する(図40)。
【0255】モジュール1200は、モジュール120
1からの返送メッセージを受信し、オブジェクト121
0からオブジェクト1211へリモート参照が生成し、
部分参照重み1220に参照重み「8」が格納される。
これで、オブジェクト1210は中継オブジェクトとな
る。そして、オブジェクト1211は、モジュール12
01からモジュール1202へ移動する。(図41)。
【0256】上記の手続きと同様にして、モジュール1
201からモジュール1202へのオブジェクト移動メ
ッセージと、逆に、モジュール1202からモジュール
1201への返信メッセージにより、オブジェクト12
12がモジュール1202において生成され、オブジェ
クト1211からオブジェクト1212へのリモート参
照が生成され、オブジェクト1211は、中継オブジェ
クトとなる(図42)。
【0257】図42の状態より、モジュール1200に
おいて、オブジェクト1213がオブジェクト1210
に参照要求すると仮定する。オブジェクト1210は、
中継オブジェクトであるので、参照要求メッセージがモ
ジュール1201へ送信される(図43)。(この時、
参照重み管理手段118により、付加参照重み1230
が「0」になったとしている。)
【0258】ついで、モジュール1200からの参照要
求メッセージを受信したモジュール1201は、オブジ
ェクト1211がやはり中継オブジェクトであることか
ら、新たに参照要求メッセージをモジュール1202へ
送信する(図44)。このメッセージにおける付加参照
重み1231は、受信メッセージの付加参照重み123
0の値「0」に既定値(ここでは、「4」としている)
が加えられた値「4」が転送されている。
【0259】モジュール1201からの参照要求メッセ
ージを受信したモジュール1202は、オブジェクト1
212がローカルであることから、オブジェクト121
2の総参照重み1225に受信した付加参照重み「4」
を加えて「12」とする。そして、参照要求に対する返
り値、オブジェクト1212の情報、さらに、付加参照
重み「4」をメッセージに格納して、モジュール120
1へ返信する(図45)。
【0260】モジュール1201は、モジュール120
2からの返信メッセージを受信し、オブジェクト121
1の参照先が更新されていないことを知り、自らの参照
テーブルの部分参照重み1222は更新しない。前記返
信メッセージの返り値と受信したオブジェクト1212
の情報と、付加参照重みをそのままの値で格納して、モ
ジュール1200へ返送する(図46)。
【0261】モジュール1200は、モジュール120
1からの返信メッセージを受信する。オブジェクト12
10は、参照先のオブジェクト1211と受信メッセー
ジの参照先情報が異なることを確認して、参照先を更新
し、受信した付加参照重みを新たに部分参照重み122
0に格納する。これにより、オブジェクト1210は、
参照先をオブジェクト1211から1212へ更新でき
た。その際に、元のリモート参照先オブジェクト121
1への参照削除要求メッセージをモジュール1201へ
送信する(図47)。
【0262】モジュール1200からの参照削除要求メ
ッセージを受信したモジュール1201は、オブジェク
ト1211の総参照重み1221から受けとった付加参
照重みを減じて、総参照重み1221を更新し、「0」
となる。ここで、ヒープメモリ内の他のオブジェクトか
らも参照されなければ、後に、モジュール1201内の
ヒープメモリ管理手段がオブジェクト1211をゴミと
判別した時に、オブジェクト1211の参照先であるオ
ブジェクト1212への参照が取り外され、モジュール
1202に対してオブジェクト1212への参照削除メ
ッセージを送信する(図48)。
【0263】参照削除要求メッセージを受信したモジュ
ール1202は、オブジェクト1212の総参照重み1
225から受信した付加参照重みの値を減じて「4」と
する(図49)。
【0264】以上のように、オブジェクト1210が移
動しても、その移動先のオブジェクト1211、121
2にリモート参照を張り、参照重みを用いて管理でき
る。
【0265】もともとオブジェクト1200を参照して
いたオブジェクト1213は、オブジェクト1210が
モジュール間を移動しても、その移動先を順に追跡する
ことができ、矛盾なく要求を実行することができた。
【0266】オブジェクトが移動することによって確保
された中継オブジェクト1211は、必要がなくなれ
ば、回収することができた。
【0267】以下、図50〜図56を参照して、この実
施の形態にかかる分散システム1における動作を、第2
の具体例に基づいて説明する。ここでも、第1の具体例
と同様の条件が仮定されているものとする。
【0268】モジュール1301のオブジェクト131
1が、モジュール1300に存在するオブジェクト13
10にリモート参照されている(図50)。
【0269】ここで、オブジェクト1311がモジュー
ル1302に移動し、オブジェクト1311は中継オブ
ジェクトとなり、モジュール1302のオブジェクト1
312をリモート参照する(図51)。
【0270】さらに、オブジェクト1312がモジュー
ル1301へ移動する場合を考察する。オブジェクト移
動管理手段は、移動してきたオブジェクト1312の中
継オブジェクト1311がモジュール1301内に存在
することを確認し、2つのオブジェクトを統合する(図
52)。
【0271】まず、総参照重み1321に参照重みの既
定値(ここでは、「8」とする)を加えて「16」とす
る。この総参照重み1321は、オブジェクト1310
と中継オブジェクト1312からのリモート参照を管理
している。そして、オブジェクト1311の参照先オブ
ジェクト1312に参照削除要求メッセージを部分参照
重み1322の値「8」を含めて送信する。次に、オブ
ジェクト1311をローカルに変更する(図53)。
【0272】これで、オブジェクト1311は、中継オ
ブジェクトでなくなり、移動オブジェクト1312は、
オブジェクト1311に統合され、モジュール1302
内のオブジェクト1312は、オブジェクト1311へ
の中継オブジェクトとなった。
【0273】参照削除メッセージを受信した中継オブジ
ェクト1312は、総参照重み1323から「8」を減
じ「0」となる。総参照重みが「0」となったので、モ
ジュール1302内でも不要となると中継オブジェクト
1312は、ヒープメモリ手段によって、回収される
(図54)。そして、モジュール1302内のリモート
アクセス手段は、部分参照重み1324をメッセージに
格納した、オブジェクト1311に対する参照削除メッ
セージを参照先であるモジュール1301に送信する
(図55)。
【0274】モジュール1302からの参照削除メッセ
ージを受信したモジュール1301は、総参照重み13
21から「8」を減じる(図56)。このように、モジ
ュール間で連携することにより中継オブジェクト131
2のメモリ領域を回収し、図50と同様の状態になっ
た。
【0275】次に、本実施の形態の効果について説明す
る。
【0276】本実施の形態では、オブジェクトが移動し
てその実行環境を変えても、中継オブジェクトが、移動
先のオブジェクトへの参照を持ち続け、参照重みによる
第1の実施の形態と同一の方法で矛盾なく管理され、オ
ブジェクトの移動を許す分散システムにおいても有効に
機能する。
【0277】オブジェクトが移動すると、その実体は移
動先のモジュールに転送されるので、中継オブジェクト
だけが残り、もとのモジュール内のオブジェクトが参照
していたデータ領域は回収することができ、メモリ領域
を有効に使用することができる。
【0278】移動先オブジェクトへの参照を保持する中
継オブジェクトのメモリ領域も参照重みの管理により、
不要となれば回収することができ、メモリ資源の有効利
用ができる。
【0279】また、第1の実施の形態と同様の装置によ
って実現できるので、第1の実施の形態の効果を継承
し、その導入に余計な変更を必要としない。
【0280】[第3の実施の形態]この実施の形態にお
いて、分散システムの構成は、図1に示す第1の実施の
形態のものと実質的に同一であるが、分散システムを構
成する各計算機の構成が、第1の実施の形態のものと異
なる。
【0281】図57は、この実施の形態にかかる計算機
2000の機能構成を示す機能ブロック図である。図5
7に示すように、この実施の形態にかかる計算機200
0では、モジュール2010の実行手段2011が、図
31に示された第2の実施の形態のものに加えてさらに
モジュール移動手段2012を備える。また、モジュー
ル2010が第2の実施の形態のものに加えてさらにモ
ジュール移動管理手段2013を備える。
【0282】なお、以下の説明に表されている「モジュ
ール移動」とは、モジュールを通信メッセージに格納し
て異なる実行環境に送信する技術のことをいう。上記の
第2の実施の形態におけるオブジェクト移動が、単一の
オブジェクトのみであったのに対し、モジュール移動に
おいては、モジュール内に存在する全てのオブジェクト
情報、参照テーブル、被参照テーブルなどの管理情報な
らびに、実行手段、リモートアクセス管理手段などのモ
ジュール実行のために必要な情報、これら全ての情報一
式を移動させて実行環境を変え、モジュールが移動後の
環境でも実行を再開することができるという点において
オブジェクト移動と異なる。
【0283】モジュール移動実行手段2012は、モジ
ュール制御手段111の命令を受け、モジュール移動を
実行する手段である。この時、モジュール移動実行手段
2012は、ヒープメモリ管理手段115に命じて不要
なメモリ領域を回収した後、リモートアクセス管理手段
113に命じて、モジュール継続実行に必要な情報一式
を通信メッセージに格納させる。
【0284】モジュール移動管理手段2013は、リモ
ートアクセス管理手段113の命令を受け、モジュール
が移動する直前と直後に起動する。モジュール移動直前
には、モジュールの実行手段、管理手段、被参照テーブ
ル、参照テーブル、オブジェクトなどのモジュール内の
メモリ領域の中で、モジュールの継続実行に必要な情報
のみをリモートアクセス管理手段113に伝える。ま
た、モジュール移動直後には、モジュールの実行が再開
できるようにするために、リモートアクセス管理手段1
13によって、読み込まれたモジュール移動メッセージ
内の情報を、矛盾なく、データ処理装置2001内に配
置する。
【0285】移動モジュール内に、他のモジュールから
リモート参照されるオブジェクトが存在する場合、移動
元のモジュールは、自らが存在していたデータ処理装置
内に残存するモジュール、すなわち、中継モジュールと
なる。中継モジュールは、移動先モジュール内に存在す
る移動オブジェクトへのリモート参照を持つ中継オブジ
ェクトを少なくとも1つは所有し、中継オブジェクトが
1つもなくなれば、中継モジュール自体も回収される。
中継モジュールは、中継オブジェクトに対する他のモジ
ュールからの参照要求やメソッド要求メッセージを受信
して、前記中継オブジェクトの参照先にメッセージを転
送する役割を担うが、自らでメソッド実行を起こすこと
はない。
【0286】モジュール移動では、モジュール実行のた
めの管理情報、手段情報と共に、オブジェクト移動も伴
うことになるが、本実施の形態におけるモジュール移動
に伴う移動オブジェクトは、実体のあるオブジェクトだ
けに限らず、中継オブジェクトも含まれるという点で、
第2の実施の形態におけるオブジェクト移動とは異な
る。
【0287】以下、図58〜64を参照して、本実施の
形態の動作を詳細に説明する。
【0288】図58は、モジュール移動時の一連の手順
に示している。
【0289】図56は、モジュール移動メッセージが生
成される際の処理手順を示している。モジュールが異な
る計算機環境への移動を命令されると、モジュール移動
実行手段2012は、まず、モジュール内の全てのデー
タ領域に関して、他の手段からのアクセスを禁じ、ヒー
プメモリ管理手段115に命じて、ヒープメモリ領域1
14の不要なオブジェクトを回収し、リモートアクセス
管理手段113にモジュール実行に必要な情報をメッセ
ージに格納するように要請する。
【0290】図56において、リモートアクセス管理手
段113は、オブジェクト移動管理手段1013と共
に、モジュール実行継続に必要なモジュール内の各オブ
ジェクト情報を格納する(図58、図59のステップO
1)。
【0291】まず、リモートアクセス管理手段213
は、前記オブジェクトが、リモートであるか否かを調べ
る(ステップO2)。もし、ローカルであれば(ステッ
プO3)、ステップO6に処理を移り、一方、リモート
であれば(ステップO4)、前記オブジェクトの付加参
照重みとして、前記オブジェクトの部分参照重みの値を
格納する(ステップO5)。
【0292】次に、オブジェクト移動管理手段1013
は、被参照テーブルを調べて、前記オブジェクトが、他
のモジュールから参照されているか否かを調べる(ステ
ップO6)。もし、前記被参照テーブル内に登録されて
いれば(ステップO7)、前記オブジェクトを他のモジ
ュールから既にリモート参照しているオブジェクトが継
続してオブジェクトの実体にアクセスできるようにする
ために、前記オブジェクトをリモートオブジェクト、す
なわち中継オブジェクトとする(ステップO8)。一
方、ステップO6において、前記オブジェクトが被参照
テーブルに登録されていなければ(ステップO9)、中
継オブジェクトを生成する必要はなく、ステップO10
へ処理を移行する。
【0293】オブジェクト移動管理手段1013は、ス
テップO1からO9の処理を、移動モジュール内の全て
のオブジェクトに対して終了しているか否か調べ(ステ
ップO10)、終了していなければ(ステップO1
1)、同様の操作を繰り返す。一方、終了していれば
(ステップO12)、モジュール移動管理手段2013
は、モジュール実行継続に必要な、前記モジュールのオ
ブジェクト以外の全ての情報(実行手段、管理手段、被
参照テーブル、参照テーブル)を、リモートアクセス管
理手段113に知らせ、それを受けたリモートアクセス
管理手段113は、前記情報一式を通信メッセージに格
納し(ステップO13)、移動先計算機へ送信する(ス
テップO14)。
【0294】図60は、モジュール移動メッセージを受
信した際に実行される処理手順を示している。計算機2
000の通信装置106は、モジュール移動メッセージ
を受信し、もし、前記移動モジュールに相当する中継モ
ジュールがなければ、データ処理装置2001内に、前
記移動モジュールの領域を確保し、前記移動モジュール
のリモートアクセス管理手段113を起動する。リモー
トアクセス管理手段113は、さらにモジュール移動管
理手段2013を起動し、前記移動モジュールのオブジ
ェクト以外の情報(実行手段、管理手段、被参照テーブ
ル、参照テーブル)の領域を確保して、モジュールが実
行を継続できるように矛盾なく配置する(図60のステ
ップP1)。
【0295】オブジェクト移動管理手段1013は、自
らの存在するデータ処理装置2001内に、移動オブジ
ェクトに相当する中継オブジェクトが存在するものに関
して、両者の統合を行う。そのために、まず、オブジェ
クト移動管理手段1013は、移動モジュールに相当す
る中継モジュールが存在し、かつ、移動オブジェクトに
相当する中継オブジェクトが存在するか否か調べ(ステ
ップP2)、もし、中継モジュールが存在し、その領域
内に中継オブジェクトも存在すれば(ステップP3)、
ステップP4から、前記移動オブジェクトと前記中継オ
ブジェクトとの領域の統合を開始する。
【0296】ステップP4において、オブジェクト移動
管理手段1013は、被参照テーブルを用いて、モジュ
ール内の各中継オブジェクトが、他のモジュールからリ
モート参照されているか否かを調べる。もし、前記中継
オブジェクトが被参照テーブルに登録されていれば(ス
テップP5)、前記中継オブジェクトの総参照重みに、
移動オブジェクトに関する総参照重みの値を加えて更新
する(ステップP6)。一方、前記被参照テーブルに中
継オブジェクトの情報がなければ(ステップP7)、オ
ブジェクト移動管理手段1013は、前記被参照テーブ
ルに移動オブジェクト用の領域を確保する(ステップP
8)。さらに、総参照重みに既定値を格納し(ステップ
P9)、OID、参照ポインタを格納して、他のモジュ
ールからのリモート参照ができるように設定する(ステ
ップP10)。次に、リモートアクセス管理手段113
は、不要となった前記中継オブジェクトの持つリモート
参照先へ参照削除メッセージを作成、送信する(ステッ
プP11)。これによって、不要な中継オブジェクトを
順に回収することができる。
【0297】次に、オブジェクト移動管理手段113
は、前記移動オブジェクトがローカルであるか否かを調
べて(ステップP12)、もし、ローカルであれば(ス
テップP13)、統合された中継オブジェクトをリモー
トからローカルに変更する。(ステップP14)。一
方、前記移動オブジェクトがローカルでなければ(ステ
ップP15)、オブジェクト移動管理手段113は、前
記中継オブジェクトの参照テーブルを更新して、参照先
を前記移動オブジェクトの参照先とする(ステップP1
6)。さらに、前記参照テーブルの部分参照重みとし
て、前記移動オブジェクトの持つ部分参照重みを格納す
る(ステップP17)。以上、ステップP4からの処理
によって、前記中継オブジェクトと前記移動オブジェク
トとの統合が完了して、処理をステップP33に移す。
【0298】ステップP2において、中継モジュールと
中継オブジェクトのどちらかがなければ(ステップP1
8)、オブジェクト移動管理手段1013は、自らの存
在するモジュール内に、新たに移動オブジェクトのため
の領域を確保して(ステップP19)、OIDを割り当
てる(ステップP20)。次に、オブジェクト移動管理
手段1013は、前記移動オブジェクトが移動モジュー
ル内のローカルオブジェクトか否かを調べ(ステップP
21)、もし、ローカルであれば(ステップP22)、
前記移動オブジェクトのデータを新たに割り当てた前記
オブジェクト領域に格納する(ステップP23)。一
方、前記移動オブジェクトがリモートであれば(ステッ
プP24)、オブジェクト移動管理手段1013は、リ
モートオブジェクトの参照先情報を設定するために、モ
ジュール内の参照テーブル領域に前記移動オブジェクト
の領域を確保して(ステップP25)、移動メッセージ
中の前記移動オブジェクトの参照先情報である、OI
D、IPアドレス、部分参照重みをそのまま格納する
(ステップP26)。
【0299】次に、オブジェクト移動管理手段1013
は、前記移動オブジェクトが、他のモジュールからリモ
ート参照されているか否かを確認して(ステップP2
7)、リモート参照を受けていなければ(ステップP2
8)、ステップP33に処理を移す。一方、リモート参
照を受けていれば(ステップP29)、モジュール内の
被参照テーブルに前記移動オブジェクトの領域を確保し
て(ステップP30)、総参照重みとして、既定値を格
納する(ステップP31)。さらに、被参照テーブル内
の前記移動オブジェクト用の領域にOID、オブジェク
ト領域への参照ポインタを格納して、他のモジュールか
らのアクセスが可能となるように設定する(ステップP
32)。
【0300】以上の操作を移動モジュール内の全てのオ
ブジェクトに対して終了したか否かを調べ(ステップP
33)、もし、終了していなければ、さらに繰り返して
処理を行う(ステップP34)。
【0301】もし、終了すれば(ステップP35)、リ
モートアクセス管理手段113は、返信メッセージの作
成を開始する(ステップP36)。モジュール移動に対
する返信メッセージには、他のモジュールからリモート
参照されるオブジェクトの情報が格納される。このオブ
ジェクトの付加参照重みとして、リモートアクセス管理
手段113は、既定値を返信メッセージに格納する(ス
テップP37)。リモートアクセス管理手段113は、
全てのオブジェクトに対して付加参照重みの格納が完了
したか否かを調べ(ステップP38)、していなければ
処理を繰り返す(ステップP39)。全てのオブジェク
トに対して終了すれば(ステップP40)、返信メッセ
ージを送信する(ステップP41)。
【0302】図61は、モジュール移動に関する返信メ
ッセージを受信した際に実行される処理手順を示してい
る。モジュールのリモートアクセス管理手段113は、
前記返信メッセージを受信し、読み込む(ステップQ
1)。リモートアクセス管理手段113は、自らの存在
するモジュールの参照テーブルにの各オブジェクトに相
当する領域に、前記受信メッセージの各オブジェクト情
報のOIDを設定し(ステップQ2)、前記オブジェク
トの付加参照重みを部分参照重みに格納する(ステップ
Q3)。そして、リモートアクセス管理手段113は、
前記受信メッセージに格納される全てのオブジェクトに
関して終了したか否かを調べ(ステップQ4)、終了し
ていなければ(ステップQ5)、さらに繰り返し(ステ
ップQ6)、終了すれば(ステップQ7)、各オブジェ
クトへのアクセスを許可して、返信メッセージの受信処
理を完了する。
【0303】以下、図62〜図79を参照して、この実
施の形態にかかる分散システム1における動作を、具体
例に基づいて説明する。
【0304】図62〜図64において、モジュール移動
の動作例を示す。図62は、モジュール2100が計算
機2115へ、移動する直前の状態を示している。モジ
ュール2100内には、モジュール実行に必要な実行手
段、管理手段、ならびに、被参照テーブル2104、参
照テーブル2109、さらに、ヒープメモリ領域114
に3つのオブジェクト2101、2102、2103が
存在している。
【0305】オブジェクト2101は、他のモジュール
からリモート参照を受けており、前記被参照テーブル2
104内に、各種情報、すなわち、OID2105に、
オブジェクト2101、総参照重み2100に「2
0」、参照ポインタにオブジェクト2101のメモリア
ドレスが格納されている。
【0306】オブジェクト2102は、ローカルオブジ
ェクトであるが、他のモジュールからリモート参照を受
けていない。
【0307】オブジェクト2103は、リモートオブジ
ェクトであり、前記参照テーブル2108内に、オブジ
ェクト2103の参照先情報を所有している。すなわ
ち、OID2109としてオブジェクト2112を、部
分参照重み2110として「40」を、IPアドレス2
111としてaddress(モジュール2100以外
の計算機のIPアドレスを示す)を保持している(図6
2)。この状態から、モジュール2100のモジュール
移動管理手段、オブジェクト移動管理手段、リモートア
クセス管理手段によって、モジュール実行が継続するの
に必要な、モジュール内の情報を格納したモジュール移
動メッセージが生成され、モジュール2100が、モジ
ュール2100の中継オブジェクトの存在しない計算機
2115へ前記メッセージが送信される。ここで、オブ
ジェクト2103に関する付加参照重みには、その部分
参照重み「20」が格納される。
【0308】図63は、モジュール2100が計算機2
115へ移動し、計算機2115のデータ処理装置内
に、新たにモジュール2120が生成し、返信メッセー
ジをモジュール2100に返信する場面を示している。
【0309】前記計算機2115の通信装置によって、
移動モジュールのモジュール移動管理手段が呼び出さ
れ、新たにモジュール2120の領域を確保する。さら
に、モジュール移動管理手段は、モジュール実行再開に
要する、被参照テーブル、参照テーブル、管理手段、実
行手段を前記モジュール2120内に配置する。また、
オブジェクト移動管理手段によって、モジュール内に各
オブジェクト領域が確保、格納される。
【0310】オブジェクト2101は、モジュール移動
後、モジュール2120内でオブジェクト2120とな
り、中継オブジェクト2101からのリモート参照を受
けるために、被参照テーブル2104のオブジェクト2
121用の領域に、OID2125として、オブジェク
ト2121、総参照重み2126として既定値(ここで
は、「8」と仮定する)、参照ポインタ2127とし
て、オブジェクト2121のメモリアドレスが格納され
る。
【0311】オブジェクト2102は、モジュール移動
後、モジュール2120内のローカルオブジェクト21
22となる。オブジェクト2103は、モジュール移動
後、モジュール2120内のリモートオブジェクト21
23となる。
【0312】返信メッセージにおいて、オブジェクト2
121の情報と共に、その付加参照重みとして、総参照
重みの既定値「8」が格納され、モジュール2110に
送信される。
【0313】図64は、モジュール2100が、モジュ
ール2121からのモジュール移動に対する返信メッセ
ージを受信し、モジュール移動が完了した場面を示して
いる。参照テーブル2108には、オブジェクト210
1用の領域が確保され、OID2109として、オブジ
ェクト2121を、部分参照重み2110として、受信
した前記メッセージのオブジェクト2121の付加参照
重み「8」を、IPアドレス2111としてモジュール
2120のIPアドレスが格納される。さらに、オブジ
ェクト2101は、新たに参照テーブルへの参照ポイン
タを格納し、オブジェクト2121へのリモート参照を
所有する中継オブジェクトとなる。オブジェクト210
2、2103は、移動が完了した後、モジュール210
0のヒープメモリ管理手段によって、回収される。モジ
ュール2100は、中継オブジェクト2101を所有す
る中継モジュールとなり、中継オブジェクト2102が
回収されれば、自らのメモリ領域も回収される。
【0314】以下、図65〜図78を参照して、この実
施の形態にかかる分散システム1におけるモジュール移
動を含めた動作を、具体例に基づいて説明する。
【0315】図65において、他のモジュールからリモ
ート参照を受け、総参照重み2524に「10」を保持
しているオブジェクト2510を所有するモジュール2
500が他の計算機環境に移動する。
【0316】モジュール2500は、移動した後、中継
モジュール2500となり、移動先の計算機環境でモジ
ュール2501となる。ここで、総参照重みの既定値を
「8」と仮定すると、オブジェクト2510は、中継オ
ブジェクトとなり、部分参照重み2520に「8」を格
納し、一方、オブジェクト2511は、総参照重み25
21に「8」を格納する(図66)。
【0317】その後、モジュール2501は、別のモジ
ュール2502からの参照要求メッセージの返り値とし
て、オブジェクト2511の情報を返信するとすれば、
返信メッセージのオブジェクト2511情報の付加参照
重みには「8」が格納され、モジュール2502に送信
される(図67)。
【0318】前記返信メッセージを受信したモジュール
2502は、自らの部分参照重み2522に受信した付
加参照重み「8」を格納する。オブジェクト2511
は、オブジェクト2510とオブジェクト2511の2
つからリモート参照を受け、総参照重み2521におい
て「16」を保持する。ここで、また、モジュール25
01が移動するとする(図68)。
【0319】モジュール2501は、移動後に中継モジ
ュールとなり、その実体は、モジュール2503とな
る。オブジェクト2511は、中継オブジェクトとな
り、モジュール2503内のオブジェクト2513をリ
モート参照し、部分参照重み2522を値「8」で持
つ。オブジェクト2513は、オブジェクト2511か
らリモート参照され総参照重み2533として、値
「8」を所有する。ここで、モジュール2502のオブ
ジェクト2512が参照要求メッセージを参照先のオブ
ジェクト2511に送信するとする。ここで、参照重み
管理手段により付加参照重みが「0」と設定されたとす
る(図69)。
【0320】モジュール2502からの参照要求メッセ
ージを受信したモジュール2501は、中継モジュール
であるので、中継オブジェクト2511の参照先のモジ
ュール2503に対して、参照要求メッセージを転送す
ることになる。ここで、参照重み管理手段により、付加
参照重みが「4」だけ付加されるとする(図70)。
【0321】中継モジュール2501からの参照要求メ
ッセージを受信したモジュール2503は、オブジェク
ト2513の総参照重み2523の値を、受信した付加
参照重み「4」だけ増加させ「12」とする(図7
1)。
【0322】次に、モジュール2503は、参照要求メ
ッセージを送信してきたモジュール2501に返信メッ
セージを送信する。ここで、メッセージに格納されるオ
ブジェクト2513の付加参照重みとして、受信メッセ
ージにおける付加参照重み「4」が設定される(図7
2)。
【0323】モジュール2503からの返信メッセージ
を受信した中継モジュール2501は、オブジェクト2
513のリモート参照先が更新されていないことを確認
する。そして、モジュール2502に対する返信メッセ
ージを作成し、その中に格納されるオブジェクト251
3の付加参照重みを「4」のままで送信する(図7
3)。
【0324】中継モジュール2501からの参照要求メ
ッセージを受信したモジュール2502は、オブジェク
ト2513の情報を受けとり、オブジェクト2152の
参照先が変わったことを確認する。オブジェクト251
2の参照先をオブジェクト2511からオブジェクト2
513へと更新し、部分参照重み2522に受信メッセ
ージのオブジェクト2513の付加参照重み「4」を設
定する。そして、元の参照先オブジェクト2511へ元
の部分参照重み分「8」を付加参照重みとした参照削除
メッセージをモジュール2501に送信する(図7
4)。
【0325】モジュール2502からの参照削除要求メ
ッセージを受信したモジュール2501は、オブジェク
ト2511の総参照重み2522から、付加参照重み
「8」を受けとって、減じて「8」とする。この後、モ
ジュール2503がモジュール2500の存在する計算
機に移動するとする(図75)。
【0326】モジュール2500は、モジュール250
3への中継モジュールであるので、モジュール移動管理
手段により統合される。移動メッセージに含まれるオブ
ジェクト2513の情報と中継オブジェクト2510を
統合して、中継オブジェクト2510は実オブジェクト
となり、一方オブジェクト2513は、中継オブジェク
トとなり、オブジェクト2510をリモート参照する。
これにより、モジュール2500は、中継モジュールか
ら実モジュールと変わる。逆にモジュール2503は、
実モジュールから中継モジュールへと変わる。そして、
オブジェクト2510が元来所有していた中継オブジェ
クト2511へのリモート参照は不要となり、モジュー
ル2501へオブジェクト2511に対する参照削除メ
ッセージ(付加参照重み「8」)を送信する(図7
6)。
【0327】モジュール2500からの参照削除要求メ
ッセージを受信したモジュール2501は、オブジェク
ト2511の総参照重み2521から「8」を減じ
「0」とする。その後、中継オブジェクト2511は、
モジュール2500のヒープメモリ管理手段によって回
収され、その参照先のオブジェクト2513へ、さらな
る参照削除メッセージ(付加参照重み「8」)を送信す
る(図77)。
【0328】中継モジュール2501からの参照削除要
求メッセージを受信したモジュール2503は、オブジ
ェクト2513の総参照重み2523から「8」を減じ
て「4」とする(図78)。中継モジュール2501中
に存在していた中継オブジェクトが2511以外に何も
なくなれば、中継モジュール2501内の全てのメモリ
領域、並びに、中継モジュール2501のメモリ領域自
体をも回収することができる(図78)。
【0329】次に、本実施の形態の効果について説明す
る。
【0330】本実施の形態では、モジュールが移動する
と、その実体は移動先の計算機上のモジュールとして再
起動するので、もとのモジュールに存在するオブジェク
トのデータ領域や、モジュール実行に要する領域は回収
することができ、メモリ領域を有効に使用することがで
きる。
【0331】モジュールが移動してその実行環境を変え
ても、移動先のモジュールへの参照を持ち続けるので、
本発明の第2の実施の形態と同様に、モジュール自体が
移動を許す分散システムにおいて有効に機能し、矛盾を
生じない。
【0332】中継モジュール内の中継オブジェクトが、
他のモジュールから参照されなくなれば、その中継オブ
ジェクトに関わる領域を回収することができる。
【0333】それに伴い、中継モジュール内に中継オブ
ジェクトが何1つ存在しなくなれば、中継モジュール自
体の領域を回収することができ、メモリ資源の効率的な
利用が可能である。これにより、中継モジュールが存在
している計算機環境で動作する他の応用プログラムの実
行を妨げない。
【0334】[第4の実施の形態]次に、本発明の第4
の実施の形態について図面を参照して詳細に説明する。
【0335】図79を参照すると、本発明の第4の実施
の形態は、自動メモリ管理プログラムを記録した記録媒
体3002を備える。この記録媒体3002は磁気ディ
スク、半導体メモリその他の記録媒体であって良い。
【0336】自動メモリ管理プログラムは記録媒体30
02からデータ処理装置3001に読み込まれ、データ
処理装置3001の動作を制御する。データ処理装置3
001は自動メモリ管理プログラムの制御により以下の
処理、すなわち第1、第2および第3の実施の形態にお
けるデータ処理装置107、1001および2001に
よる処理と同一の処理を実行する。
【0337】記録媒体3002からデータ処理装置30
01に読み込まれた自動メモリ管理プログラムは、デー
タ処理装置3001内に存在する各モジュール内で動作
する。
【0338】モジュールの実行中に、図6における1〜
9の事象が発生すると、それを契機にしてリモートアク
セス管理手段が実行を開始する。
【0339】また、オブジェクト移動手段の実行が発生
すれば、オブジェクト移動管理手段が実行を開始する。
【0340】さらにまた、モジュール移動手段の実行が
発生すれば、モジュール移動管理手段が実行を開始す
る。
【0341】[実施の形態の変形]なお、本発明の第
1、第2、第3および第4の実施の形態において、分散
システム1が有する計算機の数に制限はない。また、計
算機内のモジュールは、複数のモジュールであり得る。
【0342】
【発明の効果】以上説明したように、本発明によれば、
オブジェクトなどのデータ領域の実行環境が変化するシ
ステムにおいても、矛盾なくメモリ管理を行うことがで
きる。
【0343】また、メモリ管理に伴うネットワーク上に
おける通信量を削減することができる。
【0344】また、オブジェクトの管理のために用いら
れる参照重みが枯渇する可能性を削減することができ
る。
【0345】また、個々の計算機においてメモリ不足が
発生することを削減することができ、応用プログラムの
高速実行が可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に適用される分散シ
ステムの構成を示すブロック図である。
【図2】図1の計算機の機能構成を示す機能ブロック図
である。
【図3】図2のモジュールが実行されているときのヒー
プメモリ領域のイメージを示す図である。
【図4】通信メッセージの形式を示す図である。
【図5】本発明の第1の実施の形態における動作を示す
フローチャートである。
【図6】本発明の第1の実施の形態における動作を示す
フローチャートである。
【図7】本発明の第1の実施の形態における動作を示す
フローチャートである。
【図8】本発明の第1の実施の形態における動作を示す
フローチャートである。
【図9】本発明の第1の実施の形態における動作を示す
フローチャートである。
【図10】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図11】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図12】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図13】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図14】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図15】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図16】本発明の第1の実施の形態における動作を示
すフローチャートである。
【図17】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図18】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図19】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図20】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図21】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図22】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図23】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図24】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図25】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図26】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図27】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図28】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図29】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図30】本発明の第1の実施の形態における動作の具
体例を説明する図である。
【図31】本発明の第2の実施の形態にかかる計算機の
機能構成を示す機能ブロック図である。
【図32】本発明の第2の実施の形態における動作を示
すシーケンスチャートである。
【図33】図32のステップLの動作を示すフローチャ
ートである。
【図34】図32のステップMの動作を示すフローチャ
ートである。
【図35】図32のステップNの動作を示すフローチャ
ートである。
【図36】本発明の第2の実施の形態における動作を説
明する図である。
【図37】本発明の第2の実施の形態における動作を説
明する図である。
【図38】本発明の第2の実施の形態における動作を説
明する図である。
【図39】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図40】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図41】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図42】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図43】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図44】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図45】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図46】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図47】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図48】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図49】本発明の第2の実施の形態における動作の第
1の具体例を説明する図である。
【図50】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図51】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図52】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図53】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図54】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図55】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図56】本発明の第2の実施の形態における動作の第
2の具体例を説明する図である。
【図57】本発明の第3の実施の形態にかかる計算機の
機能構成を示す機能ブロック図である。
【図58】本発明の第2の実施の形態における動作を示
すシーケンスチャートである。
【図59】図58のステップOの動作を示すフローチャ
ートである。
【図60】図58のステップPの動作を示すフローチャ
ートである。
【図61】図58のステップQの動作を示すフローチャ
ートである。
【図62】本発明の第3の実施の形態にかかる動作を説
明する図である。
【図63】本発明の第3の実施の形態にかかる動作を説
明する図である。
【図64】本発明の第3の実施の形態にかかる動作を説
明する図である。
【図65】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図66】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図67】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図68】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図69】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図70】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図71】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図72】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図73】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図74】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図75】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図76】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図77】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図78】本発明の第3の実施の形態における動作の具
体例を説明する図である。
【図79】本発明の第4の実施の形態にかかる計算機の
機能構成を示す機能ブロック図である。
【図80】従来例における動作の具体例を示す図であ
る。
【図81】従来例における動作の具体例を示す図であ
る。
【図82】従来例における動作の具体例を示す図であ
る。
【図83】従来例における動作の具体例を示す図であ
る。
【図84】従来例における動作の具体例を示す図であ
る。
【図85】従来例における動作の具体例を示す図であ
る。
【図86】従来例における動作の具体例を示す図であ
る。
【図87】従来例における動作の具体例を示す図であ
る。
【符号の説明】
1 分散システム 100 計算機 101 計算機 102 計算機 103 計算機 104 通信回線 105 中央制御装置 106 通信装置 107 データ処理装置 110 モジュール 111 モジュール制御手段 112 実行手段 113 リモートアクセス管理手段 114 ヒープメモリ領域 115 ヒープメモリ管理手段 116 被参照テーブル 117 参照テーブル 118 参照重み管理手段 120 メソッド実行手段 121 オブジェクト参照実行手段 130 オブジェクト 131 データ 132 メソッド 133 参照ポインタ 134 OID 135 総参照重み 136 参照ポインタ 137 OID 138 部分参照重み 139 IPアドレス 150 宛先部 151 型部 152 参照重み部 153 OID部 154 フラグ部 155 オブジェクト部 160 通信メッセージ 170 モジュール 171 オブジェクト 172 参照テーブル 173 OID 174 部分参照重み 175 IPアドレス 176 参照ポインタ 180 モジュール 181 オブジェクト 182 被参照テーブル 183 OID 184 総参照重み 185 参照ポインタ 190 モジュール 191 オブジェクト 192 部分参照重み 193 OID 194 部分参照重み 195 IPアドレス 196 参照ポインタ 1000 計算機 1001 データ処理装置 1010 モジュール 1011 実行手段 1012 オブジェクト移動実行手段 1013 オブジェクト移動管理手段 1100 モジュール 1101 オブジェクト 1102 参照テーブル 1103 OID 1104 部分参照重み 1105 IPアドレス 1110 モジュール 1111 オブジェクト 1112 被参照テーブル 1113 OID 1114 総参照重み 1115 参照ポインタ 1200 モジュール 1201 モジュール 1202 モジュール 1210 オブジェクト 1211 オブジェクト 1212 オブジェクト 1213 オブジェクト 1220 部分参照重み 1221 総参照重み 1222 部分参照重み 1225 総参照重み 1230 参照要求メッセージ 1231 参照要求メッセージ 1300 モジュール 1301 モジュール 1302 モジュール 1310 オブジェクト 1311 オブジェクト 1312 オブジェクト 1320 部分参照重み 1321 総参照重み 1322 部分参照重み 1323 総参照重み 1324 部分参照重み 2000 計算機 2001 データ処理装置 2010 モジュール 2011 実行手段 2012 モジュール移動実行手段 2013 モジュール移動管理手段 2100 モジュール 2101 オブジェクト 2102 オブジェクト 2103 参照テーブル 2104 OID 2105 部分参照重み 2106 IPアドレス 2110 モジュール 2111 オブジェクト 2112 オブジェクト 2113 被参照テーブル 2114 OID 2115 部分参照重み 2116 参照ポインタ 2500 モジュール 2501 モジュール 2502 モジュール 2503 モジュール 2510 オブジェクト 2511 オブジェクト 2512 オブジェクト 2513 オブジェクト 2520 部分参照重み 2521 総参照重み 2522 部分参照重み 2523 総参照重み 2524 部分参照重み 2525 部分参照重み 3000 計算機 3001 データ処理装置 3002 記憶媒体
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−75947(JP,A) 市吉伸行,6,分散ごみ集め,情報処 理,社団法人情報処理学会,1994年11月 15日,第35巻 第11号,pp1027−1032 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/06

Claims (29)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のモジュールを備え、他のモジュール
    に存在するオブジェクトを参照する参照元オブジェクト
    と前記参照元オブジェクトから参照される参照先オブジ
    ェクトとをそれぞれ部分参照重みと総参照重みとによっ
    て管理する分散システムであって、 前記複数のモジュールのうちの少なくとも1つのモジュ
    ールは、 該モジュール内に存在するオブジェクトに関する情報を
    他のモジュールに送信する第1の送信手段と、 他のモジュールから送信された前記オブジェクトに関す
    る情報の返信及び部分参照重みを設定するための第1の
    付加参照重みを受信する第1の受信手段と、 前記第1の受信手段が受信した前記第1の付加参照重み
    を部分参照重みとして設定して、前記オブジェクトを、
    他のオブジェクトからの参照要求を前記オブジェクトに
    関する情報の送信先に転送するための中継オブジェクト
    に変換する第1の中継オブジェクト生成手段と、を備
    え、 前記複数のモジュールのうちの少なくとも他の1つのモ
    ジュールは、 他のモジュールの第1の送信手段から送信されたオブジ
    ェクトに関する情報を受信する第2の受信手段と、 前記第2の受信手段が受信した前記オブジェクトに関す
    る情報に基づいて、総参照重みとして所定の値を設定し
    て、参照先オブジェクトを生成する参照先オブジェクト
    生成手段と、 前記第2の受信手段が受信した前記オブジェクトに関す
    る情報に対する返信と共に、前記総参照重みに対応する
    値を有する前記第1の付加参照重みを、前記第1の受信
    手段に送信する送信手段と、を備えることを特徴とする
    分散システム。
  2. 【請求項2】ネットワークを介して結合された複数の計
    算機によって構成され、複数のモジュールを備え、他の
    モジュールに存在するオブジェクトを参照する参照元オ
    ブジェクトと前記参照元オブジェクトから参照される参
    照先オブジェクトとをそれぞれ部分参照重みと総参照重
    みとによって管理する分散システムであって、 前記複数の計算機のうちの少なくとも1つの計算機は、 該計算機内に存在するオブジェクトに関する情報を含む
    該モジュールに関する情報を前記ネットワークを介して
    他の計算機に送信する第1の送信手段と、 他の計算機に生成されたモジュールから送信された前記
    モジュールに関する情報に対する返信及び部分参照重み
    を設定するための第1の付加参照重みを受信する第1の
    受信手段と、 前記第1の受信手段が受信した前記第1の付加参照重み
    を部分参照重みとして設定して、該モジュール内のオブ
    ジェクトを、他のオブジェクトからの参照要求を前記モ
    ジュールに関する情報の送信先に転送するための中継オ
    ブジェクトに変換する第1の中継モジュール生成手段
    と、を備え、 前記複数の計算機のうちの少なくとも他の1つの計算機
    は、 他の計算機の第1の送信手段から送信されたモジュール
    に関する情報を受信する第2の受信手段と、 前記第2の受信手段が受信した前記モジュールに関する
    情報に基づいて、総参照重みとして所定の値を設定した
    参照先オブジェクトを有するモジュールを生成するモジ
    ュール生成手段と、 前記第2の受信手段が受信した前記モジュールに関する
    情報に対する返信と共に、前記総参照重みに対応する値
    を有する前記第1の付加参照重みを、前記第1の受信手
    段に受信する第2の送信手段と、を備えることを特徴と
    する分散システム。
  3. 【請求項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. 【請求項4】前記部分参照重み判別手段は、前記部分参
    照重みが所定の下限値よりも小さいかどうかを判別する
    第1の判別手段をさらに備え、 前記第1の送信手段は、前記第1の判別手段が所定の下
    限値よりも小さいと判別したときに、正の値を有する第
    1の付加参照重みを、前記参照要求と共に送信し、 前記第1の総参照重み更新手段は、前記第1の受信手段
    が受信した正の値を有する第1の付加参照重みを加算す
    ることによって、前記参照先オブジェクトが有する総参
    照重みを更新することを特徴とする請求項に記載のメ
    モリ管理装置。
  5. 【請求項5】前記参照元オブジェクトが不要となったか
    どうかを判別するゴミオブジェクト判別手段と、 前記ゴミオブジェクト判別手段が不要と判別したとき
    に、前記参照元オブジェクトからの参照を削除するため
    の参照削除要求と共に、前記参照元オブジェクトが有す
    る部分参照重みに対応する第3の付加参照重みを前記参
    照先オブジェクトが存在するモジュールに送信する第3
    の送信手段と、 他のモジュールが有する第3の送信手段から送信された
    参照削除要求及び第3の付加参照重みを受信する第3の
    受信手段と、 前記第3の受信手段が受信した前記第3の付加参照重み
    に従って、前記参照先オブジェクトが有する総参照重み
    を更新する第2の総参照重み更新手段と、 前記ゴミオブジェクト判別手段が不要と判別したとき
    に、前記参照元オブジェクトのメモリ領域を回収する第
    1のメモリ領域回収手段と、を備えることを特徴とする
    請求項3または4に記載のメモリ管理装置。
  6. 【請求項6】前記参照先オブジェクトが他のモジュール
    に存在する参照元オブジェクトから参照されておらず、
    かつ同一のモジュールに存在する他のオブジェクトから
    も参照されていないかどうかを判別する参照状態判別手
    段と、 前記参照状態判別手段が、前記参照オブジェクトが前記
    参照元オブジェクトからも前記他のオブジェクトからも
    参照されていないと判別したときに、前記参照先オブジ
    ェクトのメモリ領域を回収する第2のメモリ回収手段
    と、を備えることを特徴とする請求項に記載のメモリ
    管理装置。
  7. 【請求項7】他のモジュールに存在するオブジェクトを
    参照する参照元オブジェクトと前記参照元オブジェクト
    から参照される参照先オブジェクトをそれぞれ部分参照
    重みと総参照重みとによって管理するメモリ管理装置で
    あって、 自モジュール内に存在するオブジェクトに関する情報を
    他のモジュールに送信する第1の送信手段と、 他のモジュールが有する第1の送信手段から送信された
    オブジェクトに関する情報を受信する第1の受信手段
    と、 前記第1の受信手段が受信した前記オブジェクトに関す
    る情報に基づいて、総参照重みとして所定の値を設定し
    て、参照先オブジェクトを生成する第1の参照先オブジ
    ェクト生成手段と、 前記第1の受信手段が受信した前記オブジェクトに関す
    る情報に対する返信と共に、前記総参照重みに対応する
    値を有する第1の付加参照重みを、前記オブジェクトに
    関する情報を送信したモジュールに送信する第2の送信
    手段と、 他のモジュールが有する第2の送信手段から送信された
    オブジェクトに関する情報に対する返信及び部分参照重
    みを設定するための第1の付加参照重みを受信する第2
    の受信手段と、 前記第2の受信手段が受信した前記第1の付加参照重み
    を部分参照重みとして設定して、前記オブジェクトを、
    他のオブジェクトからの参照要求を前記第1の参照先オ
    ブジェクト生成手段によって生成された参照先オブジェ
    クトに転送するための中継オブジェクトに変換する第1
    の中継オブジェクト生成手段と、を備えることを特徴と
    するメモリ管理装置。
  8. 【請求項8】前記第1の中継オブジェクト生成手段によ
    って変換された中継オブジェクトは、オブジェクトの実
    体をもたないことを特徴とする請求項に記載のメモリ
    管理装置。
  9. 【請求項9】前記参照先オブジェクト生成手段によって
    生成された前記参照先オブジェクトに関する情報を他の
    モジュールに送信する第3の送信手段と、 他のモジュールが有する第3の送信手段から送信された
    参照先オブジェクトに関する情報を受信する第3の受信
    手段と、 前記第3の受信手段が受信した前記参照先オブジェクト
    に関する情報に基づいて、総参照重みとして所定の値を
    設定して、参照先オブジェクトを生成する第2の参照先
    オブジェクト生成手段と、 前記第3の受信手段が受信した前記参照先オブジェクト
    に関する情報に対する返信と共に、前記総参照重みに対
    応する値を有する第2の付加参照重みを、前記オブジェ
    クトに関する情報を送信したモジュールに送信する第4
    の送信手段と、 他のモジュールが有する第4の送信手段から送信された
    参照先オブジェクトに関する情報に対する返信及び部分
    参照重みを設定するための第2の付加参照重みを受信す
    る第4の受信手段と、 前記第4の受信手段が受信した前記第2の付加参照重み
    を部分参照重みとして設定して、前記参照先オブジェク
    トを、他のオブジェクトからの転送要求を前記第2の参
    照先オブジェクト生成手段によって生成された参照先オ
    ブジェクトに転送するための中継オブジェクトに変換す
    る第2の中継オブジェクト生成手段と、を備えることを
    特徴とする請求項またはに記載のメモリ管理装置。
  10. 【請求項10】前記第2の中継オブジェクトによって変
    換された第2の中継オブジェクトは、オブジェクトの実
    体をもたないことを特徴とする請求項に記載のメモリ
    管理装置。
  11. 【請求項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の付加参照重み
    に従って、前記参照先オブジェクトの総参照重みを更新
    する総参照重み更新手段と、を備えることを特徴とする
    請求項またはに記載のメモリ管理装置。
  12. 【請求項12】前記中継オブジェクトが他のオブジェク
    トから参照されているかどうかを判別する中継判別手段
    と、 前記中継判別手段が他のオブジェクトから参照されてい
    ないと判別したときに、前記中継オブジェクトのメモリ
    領域を回収するメモリ領域回収手段と、を備えることを
    特徴とする請求項乃至11のいずれか1項に記載のメ
    モリ管理装置。
  13. 【請求項13】ネットワークを介して他のメモリ管理装
    置と結合され、他のモジュールに存在するオブジェクト
    を参照する参照元オブジェクトと前記参照元オブジェク
    トから参照される参照先オブジェクトをそれぞれ部分参
    照重みと総参照重みとによって管理するメモリ管理装置
    であって、 該メモリ管理装置内に存在するオブジェクトに関する情
    報を含むモジュールに関する情報を前記ネットワークを
    介して他の計算機に送信する第1の送信手段と、 他のメモリ管理装置の第1の送信手段から送信されたモ
    ジュールに関する情報を受信する第1の受信手段と、 前記第1の受信手段が受信した前記モジュールに関する
    情報に基づいて、総参照重みとして所定の値を設定した
    参照先オブジェクトを有するモジュールを生成する第1
    のモジュール生成手段と、 前記第1の受信手段が受信した前記モジュールに関する
    情報に対する返信と共に、前記総参照重みに対応する値
    を有する前記第1の付加参照重みを、前記第1の受信手
    段に受信する第2の送信手段と、 他のメモリ管理装置の第2の送信手段から送信されたモ
    ジュールに関する情報に対する返信及び部分参照重みを
    設定するための第1の付加参照重みを受信する第2の受
    信手段と、 前記第2の受信手段が受信した前記第1の付加参照重み
    を部分参照重みとして設定して、該モジュール内のオブ
    ジェクトを、他のオブジェクトからの参照要求を前記モ
    ジュールに関する情報の送信先に転送するための中継オ
    ブジェクトに変換して中継モジュールを生成する第1の
    中継モジュール生成手段と、を備えることを特徴とする
    メモリ管理装置。
  14. 【請求項14】前記第1の中継モジュール生成手段によ
    って変換された中継オブジェクトは、オブジェクトの実
    体をもたないことを特徴とする請求項13に記載のメモ
    リ管理装置。
  15. 【請求項15】前記第1のモジュール生成手段によって
    生成された、前記参照先オブジェクトに関する情報を含
    むモジュールに関する情報を、前記ネットワークを介し
    てさらに他の計算機に送信する第3の送信手段と、 他の計算機が有する第3の送信手段から送信された前記
    モジュールに関する情報を受信する第3の受信手段と、 前記第3の受信手段が受信した前記モジュールに関する
    情報に基づいて、総参照重みとして所定の値を設定した
    参照先オブジェクトを有するモジュールを生成する第2
    のモジュール生成手段と、 前記第3の受信手段が受信した前記モジュールに関する
    情報に対する返信と共に、前記総参照重みに対応する値
    を有する第2の付加参照重みを、前記モジュールに関す
    る情報を送信したモジュールに送信する第4の送信手段
    と、 他の計算機が有する第4の送信手段が送信した前記返信
    及び前記第2の付加参照重みを受信する第4の受信手段
    と、 前記第4の受信手段が受信した前記第2の付加参照重み
    を設定して、前記第1のモジュール生成手段によって生
    成されたモジュール内に含まれる前記参照先オブジェク
    トを、他のオブジェクトからの転送要求を前記第2のモ
    ジュール生成手段によって生成されたモジュール内に含
    まれる参照先オブジェクトに転送するための中継オブジ
    ェクトに変換して中継モジュールを生成する第2の中継
    モジュール生成手段と、を備えることを特徴とする請求
    13または14に記載のメモリ管理装置。
  16. 【請求項16】前記第2の中継モジュール生成手段によ
    って変換された中継オブジェクトは、オブジェクトの実
    体をもたないことを特徴とする請求項15に記載のメモ
    リ管理装置。
  17. 【請求項17】中継モジュール内のすべての中継オブジ
    ェクトが他のオブジェクトから参照されているかどうか
    を判別する中継判別手段と、 前記中継判別手段がすべての中継オブジェクトが他のオ
    ブジェクトから参照されていないと判別したときに、前
    記中継モジュールのメモリ領域を回収するメモリ領域回
    収手段と、を備えることを特徴とする請求項14乃至
    のいずれか1項に記載のメモリ管理装置。
  18. 【請求項18】他のモジュールに存在するオブジェクト
    を参照する参照元オブジェクトと前記参照元オブジェク
    トから参照される参照先オブジェクトをそれぞれ部分参
    照重みと総参照重みとによって管理するメモリ管理方法
    であって、 自モジュール内に存在するオブジェクトに関する情報を
    他のモジュールに送信する第1の送信ステップと、 前記第1の送信ステップで送信されたオブジェクトに関
    する情報を受信する第1の受信ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
    関する情報に基づいて、総参照重みとして所定の値を設
    定して、参照先オブジェクトを生成する参照先オブジェ
    クト生成ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
    関する情報に対する返信と共に、前記総参照重みに対応
    する値を有する第1の付加参照重みを、前記オブジェク
    トに関する情報を送信したモジュールに送信する第2の
    送信ステップと、 前記第2の送信ステップで送信された前記オブジェクト
    に関する情報に対する返信及び部分参照重みを設定する
    ための前記第1の付加参照重みを受信する第2の受信ス
    テップと、 前記第2の受信ステップで受信した前記第1の付加参照
    重みを部分参照重みとして設定して、前記オブジェクト
    を、他のオブジェクトからの参照要求を前記第1の参照
    先オブジェクト生成手段によって生成された参照先オブ
    ジェクトに転送するための中継オブジェクトに変換する
    第1の中継オブジェクト生成ステップと、を含むことを
    特徴とするメモリ管理方法。
  19. 【請求項19】前記参照先オブジェクト生成ステップで
    生成された前記参照先オブジェクトに関する情報を他の
    モジュールに送信する第3の送信ステップと、 前記第3の送信ステップで送信された前記参照先オブジ
    ェクトに関する情報を受信する第3の受信ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
    クトに関する情報に基づいて、総参照重みとして所定の
    値を設定して、参照先オブジェクトを生成する第3の参
    照先オブジェクト生成ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
    クトに関する情報に対する返信と共に、前記総参照重み
    に対応する値を有する第2の付加参照重みを、前記オブ
    ジェクトに関する情報を送信したモジュールに送信する
    第4の送信ステップと、 前記第4の送信ステップで送信された前記返信及び前記
    第2の付加参照重みを受信する第4の受信ステップと、 前記第4の受信ステップで受信した前記第2の付加参照
    重みを部分参照重みとして設定して、前記参照先オブジ
    ェクトを、他のオブジェクトからの転送要求を前記第2
    の参照先オブジェクト生成ステップで生成された参照先
    オブジェクトに転送するための中継オブジェクトに変換
    する第2の中継オブジェクト生成ステップと、を含むこ
    とを特徴とする請求項18に記載のメモリ管理方法。
  20. 【請求項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. 【請求項21】前記中継オブジェクトが他のオブジェク
    トから参照されているかどうかを判別する中継判別ステ
    ップと、 前記中継判別ステップで他のオブジェクトから参照され
    ていないと判別したときに、前記中継オブジェクトのメ
    モリ領域を回収するメモリ領域回収ステップと、を含む
    ことを特徴とする請求項18乃至20のいずれか1項に
    記載のメモリ管理方法。
  22. 【請求項22】他のモジュールに存在するオブジェクト
    を参照する参照元オブジェクトと前記参照元オブジェク
    トから参照される参照先オブジェクトをそれぞれ部分参
    照重みと総参照重みとによって管理するメモリ管理方法
    であって、 オブジェクトに関する情報を含むモジュールに関する情
    報を、該モジュールが存在する計算機とは異なる他の計
    算機の送信する第1の送信ステップと、 前記第1の送信ステップで送信されたモジュールに関す
    る情報を受信する情報を受信する第1の受信ステップ
    と、 前記第1の受信ステップで受信した前記モジュールに関
    する情報に基づいて、総参照重みとして所定の値を設定
    した参照先オブジェクトを有するモジュールを生成する
    モジュール生成ステップと、 前記第1の受信ステップで受信した前記モジュールに関
    する情報に対する返信と共に、前記総参照重みに対応す
    る値を有する前記第1の付加参照重みを、前記第1の受
    信手段に受信する第2の送信ステップと、 前記第2の送信ステップで送信されたモジュールに関す
    る情報に対する返信及び部分参照重みを設定するための
    第1の付加参照重みを受信する第2の受信ステップと、 前記第2の受信ステップで受信した前記第1の付加参照
    重みを部分参照重みとして設定して、該モジュール内の
    オブジェクトを、他のオブジェクトからの参照要求を前
    記モジュールに関する情報の送信先に転送するための中
    継オブジェクトに変換して中継モジュールを生成するす
    る第1の中継モジュール生成ステップと、を含むことを
    特徴とするメモリ管理方法。
  23. 【請求項23】前記第1のモジュール生成ステップで生
    成された、前記参照先オブジェクトに関する情報を含む
    モジュールに関する情報を、前記ネットワークを介して
    さらに他の計算機に送信する第3の送信ステップと、 他の計算機が有する第3の送信ステップで送信された前
    記モジュールに関する情報を受信する第3の受信ステッ
    プと、 前記第3の受信ステップで受信した前記モジュールに関
    する情報に基づいて、総参照重みとして所定の値を設定
    した参照先オブジェクトを有するモジュールを生成する
    第2のモジュール生成ステップと、 前記第3の受信ステップで受信した前記モジュールに関
    する情報に対する返信と共に、前記総参照重みに対応す
    る値を有する第2の付加参照重みを、前記モジュールに
    関する情報を送信したモジュールに送信する第4の送信
    ステップと、 他の計算機が有する第4の送信ステップ送信した前記返
    信及び前記第2の付加参照重みを受信する第4の受信ス
    テップと、 前記第4の受信ステップ受信した前記第2の付加参照重
    みを設定して、前記第1のモジュール生成ステップで生
    成されたモジュール内に含まれる前記参照先オブジェク
    トを、他のオブジェクトからの転送要求を前記第2のモ
    ジュール生成ステップで生成されたモジュール内に含ま
    れる参照先オブジェクトに転送するための中継オブジェ
    クトに変換して中継モジュールを生成する第2の中継モ
    ジュール生成ステップと、を含むことを特徴とする請求
    22に記載のメモリ管理方法。
  24. 【請求項24】他のモジュールに存在するオブジェクト
    を参照する参照元オブジェクトと前記参照元オブジェク
    トから参照される参照先オブジェクトをそれぞれ部分参
    照重みと総参照重みとによって管理するプログラムを記
    憶したコンピュータ読み取り可能な記録媒体であって、 自モジュール内に存在するオブジェクトに関する情報を
    他のモジュールに送信する第1の送信ステップと、 前記第1の送信ステップで送信されたオブジェクトに関
    する情報を受信する第1の受信ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
    関する情報に基づいて、総参照重みとして所定の値を設
    定して、参照先オブジェクトを生成する参照先オブジェ
    クト生成ステップと、 前記第1の受信ステップで受信した前記オブジェクトに
    関する情報に対する返信と共に、前記総参照重みに対応
    する値を有する第1の付加参照重みを、前記オブジェク
    トに関する情報を送信したモジュールに送信する第2の
    送信ステップと、 前記第2の送信ステップで送信された前記オブジェクト
    に関する情報に対する返信及び部分参照重みを設定する
    ための前記第1の付加参照重みを受信する第2の受信ス
    テップと、 前記第2の受信ステップで受信した前記第1の付加参照
    重みを部分参照重みとして設定して、前記オブジェクト
    を参照元オブジェクトに変換する参照元オブジェクト生
    成ステップと、を実現するプログラムを記憶することを
    特徴とするコンピュータ読み取り可能な記録媒体。
  25. 【請求項25】前記参照先オブジェクト生成ステップで
    生成された前記参照先オブジェクトに関する情報を他の
    モジュールに送信する第3の送信ステップと、 前記第3の送信ステップで送信された前記参照先オブジ
    ェクトに関する情報を受信する第3の受信ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
    クトに関する情報に基づいて、総参照重みとして所定の
    値を設定して、参照先オブジェクトを生成する第3の参
    照先オブジェクト生成ステップと、 前記第3の受信ステップで受信した前記参照先オブジェ
    クトに関する情報に対する返信と共に、前記総参照重み
    に対応する値を有する第2の付加参照重みを、前記オブ
    ジェクトに関する情報を送信したモジュールに送信する
    第4の送信ステップと、 前記第4の送信ステップで送信された前記返信及び前記
    第2の付加参照重みを受信する第4の受信ステップと、 前記第4の受信ステップで受信した前記第2の付加参照
    重みを部分参照重みとして設定して、前記参照先オブジ
    ェクトを、他のオブジェクトからの転送要求を前記第2
    の参照先オブジェクト生成ステップで生成された参照先
    オブジェクトに転送するための中継オブジェクトに変換
    する第2の中継オブジェクト生成ステップと、を実現す
    るプログラムを記憶することを特徴とする請求項24
    記載のコンピュータ読み取り可能な記録媒体。
  26. 【請求項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. 【請求項27】前記中継オブジェクトが他のオブジェク
    トから参照されているかどうかを判別する中継判別ステ
    ップと、 前記中継判別ステップで他のオブジェクトから参照され
    ていないと判別したときに、前記中継オブジェクトのメ
    モリ領域を回収するメモリ領域回収ステップと、を実現
    するプログラムを記憶することを特徴とする請求項24
    乃至26のいずれか1項に記載のコンピュータ読み取り
    可能な記録媒体。
  28. 【請求項28】他のモジュールに存在するオブジェクト
    を参照する参照元オブジェクトと前記参照元オブジェク
    トから参照される参照先オブジェクトをそれぞれ部分参
    照重みと総参照重みとによって管理するプログラムを記
    憶したコンピュータ読み取り可能な記録媒体であって、 オブジェクトに関する情報を含むモジュールに関する情
    報を、該モジュールが存在する計算機とは異なる他の計
    算機の送信する第1の送信ステップと、 前記第1の送信ステップで送信されたモジュールに関す
    る情報を受信する情報を受信する第1の受信ステップ
    と、 前記第1の受信ステップで受信した前記モジュールに関
    する情報に基づいて、総参照重みとして所定の値を設定
    した参照先オブジェクトを有するモジュールを生成する
    モジュール生成ステップと、 前記第1の受信ステップで受信した前記モジュールに関
    する情報に対する返信と共に、前記総参照重みに対応す
    る値を有する前記第1の付加参照重みを、前記第1の受
    信手段に受信する第2の送信ステップと、 前記第2の送信ステップで送信されたモジュールに関す
    る情報に対する返信及び部分参照重みを設定するための
    第1の付加参照重みを受信する第2の受信ステップと、 前記第2の受信ステップで受信した前記第1の付加参照
    重みを部分参照重みとして設定して、該モジュール内の
    オブジェクトを、他のオブジェクトからの参照要求を前
    記モジュールに関する情報の送信先に転送するための中
    継オブジェクトに変換して中継モジュールを生成する第
    1の中継モジュール生成ステップと、を実現するプログ
    ラムを記憶することを特徴とするコンピュータ読み取り
    可能な記録媒体。
  29. 【請求項29】前記第1のモジュール生成ステップで生
    成された、前記参照先オブジェクトに関する情報を含む
    モジュールに関する情報を、前記ネットワークを介して
    さらに他の計算機に送信する第3の送信ステップと、 他の計算機が有する第3の送信ステップで送信された前
    記モジュールに関する情報を受信する第3の受信ステッ
    プと、 前記第3の受信ステップで受信した前記モジュールに関
    する情報に基づいて、総参照重みとして所定の値を設定
    した参照先オブジェクトを有するモジュールを生成する
    第2のモジュール生成ステップと、 前記第3の受信ステップで受信した前記モジュールに関
    する情報に対する返信と共に、前記総参照重みに対応す
    る値を有する第2の付加参照重みを、前記モジュールに
    関する情報を送信したモジュールに送信する第4の送信
    ステップと、 他の計算機が有する第4の送信ステップ送信した前記返
    信及び前記第2の付加参照重みを受信する第4の受信ス
    テップと、 前記第4の受信ステップ受信した前記第2の付加参照重
    みを設定して、前記第1のモジュール生成ステップで生
    成されたモジュール内に含まれる前記参照先オブジェク
    トを、他のオブジェクトからの転送要求を前記第2のモ
    ジュール生成ステップで生成されたモジュール内に含ま
    れる参照先オブジェクトに転送するための中継オブジェ
    クトに変換して中継モジュールを生成する第2の中継モ
    ジュール生成ステップと、を実現するプログラムを記憶
    することを特徴とする請求項28に記載のコンピュータ
    読み取り可能な記録媒体。
JP05232598A 1998-03-04 1998-03-04 分散システム、メモリ管理装置及び方法、並びに記録媒体 Expired - Lifetime JP3385957B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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