JPH0934711A - オブジェクト・ロード方法及びコンピュータ・システム - Google Patents

オブジェクト・ロード方法及びコンピュータ・システム

Info

Publication number
JPH0934711A
JPH0934711A JP7183776A JP18377695A JPH0934711A JP H0934711 A JPH0934711 A JP H0934711A JP 7183776 A JP7183776 A JP 7183776A JP 18377695 A JP18377695 A JP 18377695A JP H0934711 A JPH0934711 A JP H0934711A
Authority
JP
Japan
Prior art keywords
loading
accessed
loaded
main memory
load
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.)
Pending
Application number
JP7183776A
Other languages
English (en)
Inventor
Hiroaki Nakamura
宏明 中村
Tamiya Onodera
民也 小野寺
Mikio Takeuchi
幹雄 竹内
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP7183776A priority Critical patent/JPH0934711A/ja
Priority to US08/666,764 priority patent/US5898875A/en
Publication of JPH0934711A publication Critical patent/JPH0934711A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44—Arrangements for executing specific programs
    • G06F9/445—Program loading or initiating
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44—Arrangements for executing specific programs
    • G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488—Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】プログラムの起動時間を減少させる。 【解決の手段】ロードしようとするオブジェクトが他の
1のオブジェクトからのみアクセスされるオブジェクト
であるかを判定し、判定ステップにより他の1のオブジ
ェクトからのみアクセスされるオブジェクトであると判
定された場合、当該他の1のオブジェクトからのみアク
セスされるオブジェクト及び他の1のオブジェクトから
のみアクセスされるオブジェクトからアクセスされるオ
ブジェクトをロード対象から除去し、ロードされたオブ
ジェクトを管理するリストを更新する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
プログラムのオブジェクトのロード方法に関し、より詳
しくはスモールトーク(Smalltalk)プログラム言語処
理系におけるメソッド・オブジェクトのロード方法に関
する。
【0002】
【従来の技術】スモールトーク・プログラム言語処理系
は、図7のように仮想イメージと仮想マシンから構成さ
れる。仮想イメージとは、データやプログラム、実行コ
ンテクスト等がオブジェクトとして表現されたものであ
って、スモールトーク言語により書かれたプログラムを
コンパイルし実行してできたものである。一方仮想マシ
ンとは、仮想イメージ中の命令を解釈して仮想イメージ
中のデータを操作するようコンピュータ(CPU)に命
令する部分である。
【0003】このような仕組みのシステムでは、仮想イ
メージが開発環境や他のアプリケーション・プログラム
の実行に必要なオブジェクトを含むために、仮想イメー
ジが大きくなりすぎることが問題である。特定のアプリ
ケーション・プログラムだけを実行したい場合でも、仮
想イメージ全体を構成するため起動時間が長く、また仮
想イメージが多くのメモリを消費するためにプログラム
の局所性が悪く、キャッシュ・ミスやページングを頻繁
に引き起こすという問題がある。
【0004】この問題に対し、ある特定のアプリケーシ
ョンのために必要なオブジェクトを抽出して保存してお
き、それを仮想イメージとして利用する方法がある。例
えば、ParcPlace Systems 社のVisualWorksのストリッ
パ、Digitalk 社のVisual Smalltalk のライブラリ・ビ
ルダ、IBM 社のVisualAge の最小実行時イメージ生成機
能などである。これらの特定アプリケーション用に仮想
イメージを予め抽出しておく方法には次のような欠点が
ある。すなわち、(1)メッセージを引き数にとるメッ
セージなどのプログラム自動解析が不可欠な性質を持つ
ため、イメージ抽出に利用者の介在が不可欠であり、そ
の結果間違いが入り込む可能性がある。(2)オブジェ
クト指向言語はプログラムの実行される部分が予め予想
できない性質を持っているので、実際には実行されない
多くの部分を仮想イメージに含めておかなければなら
ず、劇的に仮想イメージを小さくすることはできない。
(3)アプリケーション・プログラムの起動時に、実行
に必要なイメージを全て読み込むので、起動時間が長
い。
【0005】また別の解決方法としては、必要なオブジ
ェクトを必要になるまで主メモリ上にロードするのを遅
延することが考えられる。たとえは、Ted Kaehler and
Glenn Krasner, LOOM-Large Object-Oriented Memory f
or Smalltalk-80 System, Smalltalk-80 Bits of Histo
ry Words of Advice, Addison-Wesley, 1983 がある。
ここに示されたシステムは、物理的な主メモリの容量が
少なく、大規模のアプリケーションを実行するために、
やむを得ずとった方法であり、またオブジェクトにアク
セスが生じた場合には毎回主メモリ上に存在しているか
を検査するため、検査のための負荷が大きいという欠点
がある。また、Antony L.Hosking and J.Eliot B.Moss,
Object Fault Handling for Persistent Programming
Languages: A performance Evaluation, Procedings of
Object Oriented Programming Systems and Language
s, ACM 1993 というものもある。ここにはSmalltalk オ
ブジェクトが必要になったときにメモリ上にロードする
仕組みが紹介されている。ここでも、ロードする仕組み
は先の文献に記載されているものと同様である。
【0006】さらに、IBM TDB vol.37, No.2A,pp257-26
0(94年2月)は、Samlltalk システムにおいてDLL(Di
namic Link Library)を用いる方法を開示している。こ
の方法も実行時にリンクされるようにしているが、予め
仮想イメージから目的のオブジェクトを抽出しておかな
ければならないので、先に示した従来例と同様であり、
且つ以下のような欠点がある。すなわち、(1)抽出作
業が煩雑であること、(2)クラス単位でロードするの
で、仮想イメージを小さくすることができないこと、
(3)リンクの際には、少なくともシンボル・テーブル
全体を読み込む必要があり、時間がかかること。
【0007】
【発明が解決しようとする課題】このように仮想イメー
ジを小さくするために様々な方法が用いられていたが、
どれも十分に小さくすることができず、又は小さくする
ことによる負荷が大きい。
【0008】よって本発明の目的は、利用者が何等の作
業を行うことなく、主メモリへロードするオブジェクト
の数を小さくすることである。
【0009】又他の目的は、主メモリの使用量を減少さ
せ、プログラムの局所性を高めることである。
【0010】さらに他の目的は、プログラムの起動が高
速に行えるようにすることである。
【0011】そして、オブジェクトのロードによる性能
低下を最小限にすることも目的である。
【0012】
【課題を解決するための手段】以上述べた目的を達成す
るため本発明は、二次記憶装置に記憶された複数のオブ
ジェクトによるオブジェクト指向プログラムを主メモリ
にロードし実行するコンピュータ・システムにおいて、
以下のステップを実行するものである。すなわち、
(a)複数のオブジェクトのルート・オブジェクトか
ら、オブジェクトを主メモリにロードするロード・ステ
ップであって、(a1)ロードしようとするオブジェク
トが他の1のオブジェクトからのみアクセスされるオブ
ジェクトであるかを判定する判定ステップと、(a2)
判定ステップにより他の1のオブジェクトからのみアク
セスされるオブジェクトであると判定された場合、当該
他の1のオブジェクトからのみアクセスされるオブジェ
クト及び他の1のオブジェクトからのみアクセスされる
オブジェクトからアクセスされるオブジェクトをロード
対象から除去するステップと、(a3)ロードされたオ
ブジェクトを管理するリストを更新するステップとを含
むロード・ステップとを含む。これにより、プログラム
の起動が高速に実行できる。
【0013】また、(b)先の他の1のオブジェクトか
らのみアクセスされるオブジェクトへのアクセスを検出
するアクセス検出ステップと、(c)リストを検査し、
当該他の1のオブジェクトからのみアクセスされるオブ
ジェクトが既にロードされたかを判定するロード判定ス
テップと、(d)ロード判定ステップによりロードが判
定されなかった場合には、当該他の1のオブジェクトか
らのみアクセスされるオブジェクト及びそのオブジェク
トからアクセスされるオブジェクトをロードするステッ
プと、(e)リストを更新するステップとをさらに含む
ようにすると、利用者は何等の作業を行うことなく主メ
モリへロードされるオブジェクトの数を減少させること
ができる。さらに、ロードによる負荷が少ない。
【0014】また、先のロード・ステップ(a)が、リ
ストを検査して、ロードしようとするオブジェクトが既
にロードされているかを判定するステップと、判定する
ステップ(この段落における)により既にロードされて
いると判断された場合には、当該オブジェクトをロード
対象から除去するロード対象除去ステップとをさらに含
むようにすることも考えられる。
【0015】また、先のステップ(d)が、当該他の1
のオブジェクトからのみアクセスされるオブジェクトを
ロードするステップと、当該他の1のオブジェクトから
のみアクセスされるオブジェクトからアクセスされるオ
ブジェクトのうち、リストにより既にロードされたオブ
ジェクトを判定するステップと、判定するステップによ
り既にロードされていると判断されたオブジェクトをロ
ード対象から除去する第2ロード対象除去ステップとを
含むようにすることも考えられる。
【0016】さらに、先のロード対象除去ステップ及び
先の第2ロード対象除去ステップが、既にロードされて
いるオブジェクトのアクセス元オブジェクトのアクセス
先を主メモリ上のアドレスに変更するステップを含むよ
うにすることも考えられる。
【0017】スモールトークの場合には、他の1のオブ
ジェクトからのみアクセスされるオブジェクトが、さら
にメソッド・オブジェクトであることにより、上述の目
的を十分達成することができる。
【0018】要するに、二次記憶装置に記憶された複数
のオブジェクトによるオブジェクト指向プログラムを主
メモリにロードし実行するコンピュータ・システムにお
いて、複数のオブジェクトのうちメソッド・オブジェク
トと、当該メソッド・オブジェクトからアクセスされる
オブジェクト以外を最初に主メモリにロードし、メソッ
ド・オブジェクトへのアクセスを検出した場合には当該
メソッド・オブジェクト及びそのメソッド・オブジェク
トにアクセスされるオブジェクトを主メモリにロードす
ることを特徴とするものである。
【0019】
【発明の実施の形態】本発明の実施例を以下に示す。ま
ず、図1は本発明の実施例におけるスモールトーク言語
処理システムの一例を示すものである。すなわち、CP
U1、主メモリ3、二次記憶装置であるHDD5、利用
者に処理の結果を表示する表示装置7、入力装置である
キーボード9及びマウス11がバス13にて接続されて
いる。上述したように、オブジェクトはHDD5に記憶
されており、CPU1にて実行されるために主メモリ1
にロードされる。また、仮想マシンに対応する部分もH
DD5や専用のROM又はRAMに記憶されており、主
メモリ1にロードされる。このシステムには、テープ駆
動装置やFDDのような補助記憶装置を追加したり、プ
リンタなどの出力装置をも追加可能である。また、LA
N等のネットワークに接続するようにしてもよい。
【0020】次に、図1で示したシステムの主メモリ3
の構成を図2に示す。仮想マシン23と仮想イメージ2
1が存在しているのは、従来技術での説明と同様であ
る。実際、従来技術でもオブジェクトのロードを行うも
のは存在していたが、本発明ではこのロード・マネージ
ャ25がオブジェクトの主メモリ3へのロードの主たる
役割を果たすので、特に示した。このロード・マネージ
ャ25は、仮想マシン23の一部であるとも考えられ
る。
【0021】以下、このロード・マネージャ25の動作
を説明するが、その前にオブジェクトについて簡単に説
明しておく。オブジェクトは、データとそれにアクセス
する手続きたるメソッドからなる。そして、メッセージ
を送ることによりそのメソッドを実行する。このメソッ
ドを実行するために必要な情報を蓄えるオブジェクトを
コンテクストと言う。コンテクストには、呼び出し先の
コンテクスト、プログラムの入ったメソッド・オブジェ
クト、プログラム・カウンタ、スタック・ポインタとい
う情報等から成る。このメソッド・オブジェクトは、大
きさが比較的大きい。また、メソッド・オブジェクトに
アクセスするのは1つのメソッド辞書オブジェクトのみ
であるという性質を有している。本発明は、メソッド・
オブジェクトのこのような性質を用いて上述した目的を
達成するものである。すなわち、メソッド・オブジェク
トのロードを遅延させれば、プログラム起動時にはロー
ドすべきオブジェクトの数は減少するので、ロード時間
は短縮される。さらに、メソッド・オブジェクトは他の
1のオブジェクトからのみアクセスされるので、メソッ
ド・オブジェクトをロードするか否かの判断は、この他
の1のオブジェクトがアクセスする場合のみ必要とな
る。よって、メッセージが発せられる時に必ず判断しな
ければならない方法より、判断に必要なコストが小さい
のである。なお、メソッド辞書オブジェクトには、メソ
ッドの名前から記憶位置を検索するリストのようなもの
である。
【0022】(1)プログラム起動時 図3及び図4に起動時の動作を示す。まず、プログラム
のルート・オブジェクトからロードを開始する。すなわ
ち、ルート・オブジェクトを二次記憶装置(HDD)5
から主メモリ3にロードする(ステップ33)。ここ
で、主メモリ管理リストを生成する(ステップ35)。
この主メモリ管理リストは、主メモリにロードされたオ
ブジェクトを記録するものであり、主メモリにロードさ
れたオブジェクトの二次記憶装置でのアドレスと主メモ
リでのアドレスを対応させて記憶したものである。この
リストを参照することにより、ロードされたか否かを判
断することができる。そして、このルート・オブジェク
トが、アクセスする先すべてに対して手続きQを行う
(ステップ37)。この手続きQは、図4に示してあ
る。
【0023】この手続きQは、最初にオブジェクトが主
メモリに存在するかを検査する(ステップ43)。この
検査には先の主メモリ管理リストが用いられる。このリ
ストに載せられたオブジェクトであれば、アクセス元の
オブジェクトのポインタを、二次記憶装置内ではなく主
メモリ上のオブジェクトを差すように書き換える(ステ
ップ55)。これに対しオブジェクトが主メモリ上にな
ければ、そのアクセス先のオブジェクトがメソッド・オ
ブジェクトであるかを判断する(ステップ45)。先に
述べたように、メソッド・オブジェクトは1のメソッド
辞書オブジェクトからのみアクセスされるから、このメ
ソッド辞書オブジェクトがアクセス元であることがわか
れば、この判断ステップを省略することができるが、本
発明のポイントは1のオブジェクトからのみアクセスさ
れるオブジェクト以降のオブジェクトを最初にロードし
ない点にあるので、メソッド・オブジェクトか否かを判
断するものとする。そして、メソッド・オブジェクトで
ないと判断されれば、そのオブジェクトは二次記憶装置
から主メモリ3にロードされる(ステップ47)。主メ
モリ3にロードされれば、先に導入した主メモリ管理リ
ストに項目を追加する(ステップ49)。そして、この
オブジェクトに関して、全てのアクセス先にこの手続き
Qを実行する。メソッド・オブジェクトであるとステッ
プ45において判断された場合には、ステップ37(図
3)に戻って次のアクセス先を処理する。
【0024】以上述べた動作を図5の例を用いて説明す
る。図5においては、オブジェクトaがルート・オブジ
ェクトである。最初にこのオブジェクトaをロードする
(ステップ33)。そして、オブジェクトaの二次記憶
装置内のアドレスとロードされた先の主メモリ内におけ
るアドレスが主メモリ管理リストに記入される(ステッ
プ35)。そして、ステップ37において、アクセス先
のオブジェクトbについて処理を行う。最初は、オブジ
ェクトbもロードされていないので、ステップ43から
ステップ45に遷移する。ここでオブジェクトbはメソ
ッド・オブジェクトではないので、二次記憶装置から主
メモリにロードされる(ステップ47)。そして、オブ
ジェクトbについても主メモリ管理リストに追加する
(ステップ49)。
【0025】次に、このオブジェクトbについて手続き
Qを実施する(ステップ51)。オブジェクトbのアク
セス先は、オブジェクトc、オブジェクトf、メソッド
辞書オブジェクトhである。上述のように、オブジェク
トcを主メモリにロードし、主メモリ管理リストに追加
する。そして、このオブジェクトcについて手続きQを
実施する。そうすると、オブジェクトcのアクセス先は
オブジェクトdである。このオブジェクトdについて
も、主メモリにロードし、主メモリ管理リストに追加す
る。このオブジェクトbのアクセス先のオブジェクトc
の系統についてはこれで終了した。
【0026】では、オブジェクトbがアクセスするオブ
ジェクトfに戻る。このオブジェクトfを同様に、主メ
モリにロードし、主メモリ管理リストに追加する。この
オブジェクトfのアクセス先は、オブジェクトe及びオ
ブジェクトgである。オブジェクトe及びオブジェクト
gは、主メモリにロードされ、主メモリ管理リストに追
加される。ところが、オブジェクトeのアクセス先であ
るオブジェクトdは、先のオブジェクトcのアクセス先
であるので、既に主メモリにロード済みである。よっ
て、ステップ55に遷移するので、オブジェクトeのオ
ブジェクトdに対するポインタの指す先を二次記憶装置
のアドレスから主メモリにおけるアドレスに書き換え
る。この書き換えには、主メモリ管理リストを参照すれ
ばよい。先に述べたように、主メモリ管理リストは、二
次記憶装置のアドレスと主メモリのアドレスが対になっ
て記憶されており、この主メモリ管理リストにアクセス
先の二次記憶装置のアドレスが記憶されていれば、それ
から主メモリのアドレスを引き出すことができるので、
ステップ43とステップ55は、主メモリ管理リストの
一連となった参照動作にて実行することができる。
【0027】また、オブジェクトbがアクセスするメソ
ッド辞書オブジェクトhに戻る。このメソッド辞書オブ
ジェクトhを検査すれば、メソッド辞書オブジェクトで
あることは分かるが、メソッド・オブジェクトではない
ということで、主メモリにロードし、主メモリ管理リス
トに追加する。そして、このメソッド辞書オブジェクト
hがアクセスするメソッド・オブジェクトiを検査する
と、ステップ45にて、ロードを行わずメソッド辞書オ
ブジェクトhが次にアクセスするオブジェクトに遷移す
るようになる(図5には存在しない。)。すなわち、メ
ソッド・オブジェクトi以降のオブジェクトであるオブ
ジェクトj,k,l,mについては、ロードされず、よ
って主メモリ管理リストには追加されることはない。
【0028】このようにして図5に示したような状態と
なる。例えば、図5に示したオブジェクトaからmまで
の13個のオブジェクトが実行しようとするプログラム
を構成する場合には、主メモリ内にある8個のオブジェ
クトのみ起動時にロードすれば十分であり、当然起動時
のロード時間は短縮される。また、ロードされないオブ
ジェクトの分だけ仮想イメージ21の大きさは小さくて
も済み、プログラムの主メモリ中での局所性も向上され
る。また、メソッド・オブジェクトは、先の述べたよう
に、大きさが比較的大きいので、より仮想イメージの小
型化ができる。
【0029】また、メソッド・オブジェクトiへのアク
セスはメソッド辞書オブジェクトからのみである。すな
わち、このメソッド・オブジェクトを主メモリにロード
しなければならないかを判断するのは、このメソッド辞
書オブジェクトからのアクセスのみを監視していればよ
いことになり、後の処理が簡単になる。
【0030】(2)メソッド・オブジェクトへのアクセ
ス時 図6にメソッド・オブジェクトにアクセスする場合の動
作を示す。メソッド・オブジェクトへのアクセスを検知
すると、開始ステップ61にてこの動作は開始される。
先に述べたようにスモールトークにおいては、メソッド
・オブジェクトへのアクセスは、1つのメソッド辞書オ
ブジェクトからのみであるから、このメソッド辞書オブ
ジェクトがアクセスされ、このメソッド辞書オブジェク
トの中でも当該メソッド・オブジェクトを指す部分をア
クセスした時に図6の動作を開始するようにすればよ
い。但し、厳密にはメッセージ送信によりメソッド・オ
ブジェクトの探索が行われた場合にもこの動作を開始し
なければならないが、スモールトーク言語処理システム
においては、このメッセージ送信によるメソッド探索の
結果は、メソッド・キャッシュに格納され、キャッシュ
・ミスが生じた場合のみメソッド・オブジェクトのメモ
リ上での有無の検査とロードが行われる。このメソッド
・キャッシュを調整することによりキャッシュ・ミスを
減らすこともできるので、実際メッセージ送信によりこ
の手続きを利用する割合は少なく、本発明では扱わない
こととする。また、メソッド・キャッシュの調整も本発
明とは関係しないのでこれ以上述べない。
【0031】処理が開始されると、当該メソッド・オブ
ジェクトが既に主メモリ上にあるかを検査する(ステッ
プ63)。この検査には主メモリ管理リストを用いる。
既に主メモリ管理リストに記入されていれば、特にロー
ドするオブジェクトはないので、動作を終了する(ステ
ップ71)。これに対し、主メモリ管理リストに載って
いなければ、そのメソッド・オブジェクトを二次記憶装
置(HDD5)から主メモリ3にロードする(ステップ
65)。ロードされれば、主メモリ管理リストに項目を
追加しなければならないので、主メモリ管理リストを更
新する(ステップ67)。そして、そのメソッド・オブ
ジェクトがアクセスする全ての他のオブジェクトについ
て、図4に示す手続きQを実行する。
【0032】この手続きQを行う理由は、メソッド・オ
ブジェクトを1回のロード処理で2つ以上ロードしない
ためである。もし、メソッド・オブジェクトを2個以上
連鎖的にロードすると、1度にロードするオブジェクト
の個数が増加し、ロードによる負荷が他の処理に影響を
及ぼすからであり、又仮想イメージも急速に大きくなる
ことは好ましいことではない。よって、次のメソッド・
オブジェクトをロードしようとするまでのオブジェクト
についてはロードし、その次のメソッド・オブジェクト
以降は、アクセスが生じるまでロードしない。
【0033】スモールトーク言語処理システムにおいて
は、このように新たにメソッド・オブジェクトにアクセ
スしロードするのは、プログラミング・ツールによる対
話的な使用時であるから、性能低下の影響は最小限であ
る。
【0034】以上本発明の一実施例を述べたが、これは
一実施例であり、様々な変更が可能である。例えば、仮
想マシンはソフトウエアであることとして説明したが、
専用のハードウエアにて実施することも可能である。ま
た、本発明のロード・マネージャも、同様の動作を行う
ハードウエアにて実行することもできる。また、以上の
説明はすべて「主メモリにロードする」としてきたが、
主メモリにロード後は、仮想記憶機構を用いることも可
能である。スモールトーク言語処理システムにおける例
を示したが、以上述べたように1のオブジェクトからの
みアクセスされるオブジェクトについて、そのアクセス
を検知してからロードする機構は、他のオブジェクト指
向言語にても応用可能である。上述の例では主メモリ管
理リストを用いたが、このリストの項目は、上述した二
次記憶装置のアドレス及び主メモリにおけるアドレスを
含んでいれば、オブジェクトの名前等を含むようにする
こともできる。
【0035】また、上述したロード・マネージャは、コ
ンピュータ・システムの部品として、フロッピー・ディ
スクやCD−ROM、その他の光学的又は磁気的な記憶
媒体に記憶されたものとすることができる。さらに、二
次記憶装置に記憶された複数のオブジェクトによるオブ
ジェクト指向プログラムを主メモリにロードし実行する
コンピュータ・システムにおいて、オブジェクトをロー
ドするロード・マネージャであって、ロードしようとす
るオブジェクトが他の1のオブジェクトからのみアクセ
スされるオブジェクトであるかを判定し、他の1のオブ
ジェクトからのみアクセスされるオブジェクトである場
合、当該他の1のオブジェクトからのみアクセスされる
オブジェクト及び前記他の1のオブジェクトからのみア
クセスされるオブジェクトからアクセスされるオブジェ
クトをロード対象から除去し、ロードされたオブジェク
トを管理するリストを更新するロード・マネージャ、と
いう形態にて本発明をとらえることもできる。
【0036】またこのロード・マネージャは、他の1の
オブジェクトからのみアクセスされるオブジェクトへの
アクセスを検出し、リストを検査し、当該他の1のオブ
ジェクトからのみアクセスされるオブジェクトが既にロ
ードされたかを判定し、ロードが判定されなかった場合
には、当該他の1のオブジェクトからのみアクセスされ
るオブジェクト及びそのオブジェクトからアクセスされ
るオブジェクトをロードし、リストを更新するようにす
ることも特徴とすることができる。
【0037】
【実施例】発明者が開発中のスモールトーク言語処理シ
ステムに本発明を実施したところ、システムの起動に必
要な時間は1/4になった。あるベンチマーク・プログ
ラムの起動及び実行に必要なオブジェクトは、仮想イメ
ージ全体の1/15に縮小されたが、性能の変化は観測
されなかった。このシステムは、もともと仮想イメージ
が小さいので、より大規模のプログラム実行時にはより
大きな効果を奏すると解する。
【0038】
【効果】以上述べたように、利用者が何等の作業を行う
ことなく、主メモリへロードするオブジェクトの数を小
さくすることができた。
【0039】又、主メモリの使用量を減少させ、プログ
ラムの局所性を高めることもできた。
【0040】さらに、プログラムの起動が高速に行える
ようにすることもできた。
【0041】そして、オブジェクトのロードによる性能
低下を最小限にすることもできた。
【図面の簡単な説明】
【図1】本発明の装置例を示したブロック図である。
【図2】主メモリの構成を示したブロック図である。
【図3】プログラム・ロード時の処理を示すフローチャ
ートである。
【図4】プログラム・ロード時及びメソッド・オブジェ
クト・ロード時の処理を示すフローチャートである。
【図5】オブジェクトの構成の一例を示す図である。
【図6】メソッド・オブジェクト・ロード時の処理を示
すフローチャートである。
【図7】スモールトーク言語処理システムにおける従来
の主メモリの構成を示すブロック図である。
【符号の説明】
1 CPU 3 主メモリ 5 HDD 7 表示装置 9 キーボード 11 マウス 13 バス 21 仮想イメージ 23 仮想マシン 25 ロード・マネージャ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小野寺 民也 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 (72)発明者 竹内 幹雄 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】二次記憶装置に記憶された複数のオブジェ
    クトによるオブジェクト指向プログラムを主メモリにロ
    ードし実行するコンピュータ・システムにおいて、 (a)前記複数のオブジェクトのルート・オブジェクト
    から、オブジェクトを前記主メモリにロードするロード
    ・ステップであって、(a1)ロードしようとするオブ
    ジェクトが他の1のオブジェクトからのみアクセスされ
    るオブジェクトであるかを判定する判定ステップと、
    (a2)前記判定ステップにより他の1のオブジェクト
    からのみアクセスされるオブジェクトであると判定され
    た場合、当該他の1のオブジェクトからのみアクセスさ
    れるオブジェクト及び前記他の1のオブジェクトからの
    みアクセスされるオブジェクトからアクセスされるオブ
    ジェクトをロード対象から除去するステップと、(a
    3)ロードされたオブジェクトを管理するリストを更新
    するステップとを含むロード・ステップと、 を含むオブジェクト・ロード方法。
  2. 【請求項2】(b)前記他の1のオブジェクトからのみ
    アクセスされるオブジェクトへのアクセスを検出するア
    クセス検出ステップと、 (c)前記リストを検査し、当該他の1のオブジェクト
    からのみアクセスされるオブジェクトが既にロードされ
    たかを判定するロード判定ステップと、 (d)前記ロード判定ステップによりロードが判定され
    なかった場合には、当該他の1のオブジェクトからのみ
    アクセスされるオブジェクト及びそのオブジェクトから
    アクセスされるオブジェクトをロードするステップと、 (e)前記リストを更新するステップとをさらに含む請
    求項1記載のオブジェクト・ロード方法。
  3. 【請求項3】前記ロード・ステップ(a)が、 前記リストを検査して、ロードしようとするオブジェク
    トが既にロードされているかを判定するステップと、 前記判定するステップ(本請求項)により既にロードさ
    れていると判断された場合には、当該オブジェクトをロ
    ード対象から除去するロード対象除去ステップとをさら
    に含む請求項1記載のオブジェクト・ロード方法。
  4. 【請求項4】前記ステップ(d)が、 当該他の1のオブジェクトからのみアクセスされるオブ
    ジェクトをロードするステップと、 当該他の1のオブジェクトからのみアクセスされるオブ
    ジェクトからアクセスされるオブジェクトのうち、前記
    リストにより既にロードされたオブジェクトを判定する
    ステップと、 前記判定するステップにより既にロードされていると判
    断されたオブジェクトをロード対象から除去する第2ロ
    ード対象除去ステップとを含む請求項2記載のオブジェ
    クト・ロード方法。
  5. 【請求項5】前記ロード対象除去ステップ及び前記第2
    ロード対象除去ステップが、 前記既にロードされているオブジェクトのアクセス元オ
    ブジェクトのアクセス先を前記主メモリ上のアドレスに
    変更するステップを含む請求項3又は4記載のオブジェ
    クト・ロード方法。
  6. 【請求項6】前記他の1のオブジェクトからのみアクセ
    スされるオブジェクトが、さらにメソッド・オブジェク
    トであることを特徴とする請求項1乃至5記載のオブジ
    ェクト・ロード方法
  7. 【請求項7】前記オブジェクト指向プログラムが、スモ
    ールトーク(Smalltalk)言語によるものであることを
    特徴とする請求項1乃至6記載のオブジェクト・ロード
    方法。
  8. 【請求項8】二次記憶装置に記憶された複数のオブジェ
    クトによるオブジェクト指向プログラムを主メモリにロ
    ードし実行するコンピュータ・システムにおいて、 前記複数のオブジェクトのうちメソッド・オブジェクト
    と、当該メソッド・オブジェクトからアクセスされるオ
    ブジェクト以外を最初に前記主メモリにロードし、前記
    メソッド・オブジェクトへのアクセスを検出した場合に
    は当該メソッド・オブジェクト及びそのメソッド・オブ
    ジェクトにアクセスされるオブジェクトを主メモリにロ
    ードすることを特徴とするコンピュータ・システム。
JP7183776A 1995-07-20 1995-07-20 オブジェクト・ロード方法及びコンピュータ・システム Pending JPH0934711A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7183776A JPH0934711A (ja) 1995-07-20 1995-07-20 オブジェクト・ロード方法及びコンピュータ・システム
US08/666,764 US5898875A (en) 1995-07-20 1996-06-19 Method and computer system for loading objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7183776A JPH0934711A (ja) 1995-07-20 1995-07-20 オブジェクト・ロード方法及びコンピュータ・システム

Publications (1)

Publication Number Publication Date
JPH0934711A true JPH0934711A (ja) 1997-02-07

Family

ID=16141755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7183776A Pending JPH0934711A (ja) 1995-07-20 1995-07-20 オブジェクト・ロード方法及びコンピュータ・システム

Country Status (2)

Country Link
US (1) US5898875A (ja)
JP (1) JPH0934711A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153321A (ja) * 1997-07-29 1999-02-26 Internatl Business Mach Corp <Ibm> コンピュータ・システム、エージェント送信方法及びエージェント復元方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104963A (en) * 1998-04-03 2000-08-15 Johnson Controls Technology Company Communication system for distributed-object building automation system
US6523168B1 (en) * 1999-07-01 2003-02-18 International Business Machines Corporation Reduction of object creation during string concatenation and like operations that utilize temporary data storage
US6829761B1 (en) * 1999-10-21 2004-12-07 Oracle International Corporation Method and apparatus for managing shared memory in a run-time environment
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
US7219332B2 (en) * 2000-07-07 2007-05-15 Microsoft Corporation Configuring software components(merge) with transformation component using configurable and non-configurable data elements
US6925640B2 (en) * 2001-10-12 2005-08-02 Sun Microsystems, Inc. Method and apparatus for extending a program element in a dynamically typed programming language
US20040015835A1 (en) * 2002-01-24 2004-01-22 Sasank Kotnur Dynamic distribution and integration of computer code objects
US6934940B2 (en) * 2002-01-30 2005-08-23 International Business Machines Corporation Source code transformation-temporary object reduction

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265206A (en) * 1990-10-23 1993-11-23 International Business Machines Corporation System and method for implementing a messenger and object manager in an object oriented programming environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153321A (ja) * 1997-07-29 1999-02-26 Internatl Business Mach Corp <Ibm> コンピュータ・システム、エージェント送信方法及びエージェント復元方法

Also Published As

Publication number Publication date
US5898875A (en) 1999-04-27

Similar Documents

Publication Publication Date Title
JP3270216B2 (ja) ファイル名検出方式
US5924098A (en) Method and apparatus for managing a linked-list data structure
US6954922B2 (en) Method apparatus and article of manufacture for time profiling multi-threaded programs
US9405777B2 (en) Registry emulation
US8607197B2 (en) Displaying HTTP session entry and exit points
US8990510B2 (en) Read-copy update system and method
US5261088A (en) Managing locality in space reuse in a shadow written B-tree via interior node free space list
JP3004013B2 (ja) サブル―チン呼び出しおよび復帰動作を実行するための装置および方法
EP1202172A1 (en) Topological, on-the-fly classification of objects into a global set and local sets
US20050086237A1 (en) Shared queues in shared object space
CN111124371A (zh) 一种基于游戏的数据处理方法、装置、设备及存储介质
US20060101420A1 (en) Programming language support for integrating undo and exception handling
US6052530A (en) Dynamic translation system and method for optimally translating computer code
CA2263170C (en) Persistent heap for dynamic picture objects
JP2000039997A (ja) サブクラス及びサブタイプの高速チェックを実現する方法及び装置
US5898875A (en) Method and computer system for loading objects
CN115705294A (zh) 用于获取函数调用信息的方法、装置、电子设备和介质
US7565645B2 (en) Method and apparatus for marking code for data versioning
US8032858B2 (en) Method and system for navigationally displaying HTTP session entry and exit points
US20080109827A1 (en) Method and Apparatus for Allowing Restarted Programs to Use Old Process Identifications and Thread Identifications
US6732355B1 (en) Method and device for generating registration data at compilation to enable trace of stack
US7703082B2 (en) Controlling user intervention in a multi-processing computer system
US7395386B2 (en) Method and apparatus for data versioning and recovery using delta content save and restore management
US9841976B2 (en) Lock free streaming of executable code data
JP2025050428A (ja) 情報処理プログラム、情報処理方法及び情報処理システム