JPH10228379A - 低減されたラン−タイム・メモリ空間要求を有するアーキテクチャ特定コードを実行する方法及びコンピュータ・システム - Google Patents

低減されたラン−タイム・メモリ空間要求を有するアーキテクチャ特定コードを実行する方法及びコンピュータ・システム

Info

Publication number
JPH10228379A
JPH10228379A JP9184276A JP18427697A JPH10228379A JP H10228379 A JPH10228379 A JP H10228379A JP 9184276 A JP9184276 A JP 9184276A JP 18427697 A JP18427697 A JP 18427697A JP H10228379 A JPH10228379 A JP H10228379A
Authority
JP
Japan
Prior art keywords
code
run
architecture
time memory
space
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.)
Granted
Application number
JP9184276A
Other languages
English (en)
Other versions
JP3955358B2 (ja
Inventor
Timothy G Lindholm
ジー リンドホーム ティモシー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10228379A publication Critical patent/JPH10228379A/ja
Application granted granted Critical
Publication of JP3955358B2 publication Critical patent/JP3955358B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 メソッドがメソッドのアーキテクチャ・ニュ
ートラル・コードから生成されたアーキテクチャ特定コ
ードにある場合に、低減されたラン−タイム・メモリ空
間要求でプログラムを実行する。 【解決手段】 ネットワーク通信マネージャ140は、
メソッドのアーキテクチャ・ニュートラル・コードをラ
ン−タイム・メモリの利用可能な空間に圧縮しないでロ
ードする。コード・ジェネレータ144は、メソッドの
圧縮されていないアーキテクチャ特定コードをラン−タ
イム・メモリに生成する。実行コントローラ153は、
メソッドが異なる時間で呼び出されかつ呼び出されない
ようにプログラムの実行を制御する。コード・コンプレ
ッサ146は、空間がラン−タイム・メモリにおいて利
用可能になるように呼び出されていないメソッドの圧縮
可能で圧縮されていないアーキテクチャ特定コードをラ
ン−タイム・メモリに圧縮する。コード・コンプレッサ
は、メソッドの圧縮解除可能なものが呼び出されうるよ
うにメソッドの圧縮解除可能で圧縮されたアーキテクチ
ャ特定コードを圧縮解除する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、低減されたラン−タイ
ム・メモリ空間要求を有するプログラムを実行する方法
及びコンピュータ・システムに関する。特に、本発明
は、アーキテクチャ特定コードのラン−タイム・メモリ
空間要求が低減されるようにネットワークにわたり伝送
されたアーキテクチャ・ニュートラル・コードから生成
されたアーキテクチャ特定コードを実行するネットワー
クにおける方法及びコンピュータ・システムに関する。
【0002】
【従来の技術】コンピュータ・システムは、いま、以後
ANコードを称する、そのコードがアーキテクチャ・ニ
ュートラル(AN)2進フォーマットであるプログラム
の特性を利用すべく構築または構成されている。それゆ
えに、これらのプログラムのANコードは、コンピュー
タ・システムの特定アーキテクチャまたはプラットフォ
ームから独立である。用語アーキテクチャは、一系列の
コンピュータ・モデルのオペレーティング特性を意味す
べくこの文書の目的に対して定義される。特定のアーキ
テクチャの例は、マッキントッシュ・コンピュータ、D
OSまたはWindowsオペレーティング・システム
を用いているIBM PCコンパチブル・コンピュー
タ、Solarisオペレーティング・システムを走ら
せているサン・マイクロシステムズ・コンピュータ、及
びUnixオペレーティング・システムを用いているコ
ンピュータ・システムを含む。
【0003】用語アーキテクチャ特定(AS)は、特定
のコンピュータ・アーキテクチャを有するコンピュータ
・システムでだけの実行のために、以後ASコードと称
する、ある一定のプログラムのコードが2進フォーマッ
トにあるという要求を参照すべくこの文書の目的に対し
て定義される。それゆえに、通常のプログラミング言語
(例えば、C言語)で書かれかつ特定のアーキテクチャ
(例えば、IBMコンパチブルPC)に対してコンパイ
ルされたコードを有するプログラムは、そのアーキテク
チャまたはそのアーキテクチャのエミュレータでだけ走
ることができる。用語アーキテクチャ・ニュートラル
(AN)は、そのコンパイルされたコードを異なるアー
キテクチャを有する種々のコンピュータ・システムで実
行することができるプログラムを参照すべくこの文書の
目的に対して定義される。例えば、特定のアーキテクチ
ャを有するコンピュータ・システムは、Java(サン
・マイクロシステムズの登録商標)バーチャル・マシン
・モジュールで構成することができる。Javaバーチ
ャル・マシン・モジュールは、Javaバーチャル・マ
シンの命令セットに対して、以後、Javaバイトコー
ドと称する、Javaプログラミング言語で書かれかつ
バイトコードにコンパイルされたコードを有するプログ
ラムの実行を可能にする。Javaバイトコードは、コ
ンピュータ・システムの特定のアーキテクチャから独立
である。
【0004】ANコードを有するプログラムの重要な特
徴は、それらの移植性(ポータビリティ)を含む。例え
ば、ANコードのプログラムは、コンピュータ・システ
ムの特定アーキテクチャに係わりなくANコードを実行
すべく構成されたあらゆるコンピュータ・システムで実
行することができるので、これらのプログラムは、一つ
のコンピュータ・システムから別のコンピュータ・シス
テムにネットワークにわたり容易に移送することができ
る。例えば、Javaバイトコードにコンパイルされた
プログラムは、Javaバーチャル・マシン・モジュー
ルを有するあらゆるコンピュータ・システムで実行する
ことができかつHotJava(サン・マイクロシステ
ムズの登録商標)ネットワーク通信マネージャを用いて
一つのコンピュータ・システムから別のコンピュータ・
システムにネットワークにわたり容易に移送することが
できる。
【0005】更に、Javaバイトコードにコンパイル
されたプログラムの移植性に関する別の重要な特徴は、
そのようなプログラムの検証可能性である。特に、Ja
vaバーチャル・マシン・モジュールは、これらのプロ
グラムが所定の完全性基準を満足するということを容易
に検証することができる。そのような完全性基準は、J
avaバイトコードがJavaバーチャル・マシン・モ
ジュールのスタックをオーバフローまたはアンダフロー
することができないということ及びJavaバイトコー
ドの全ての命令は、そのデータ型がそれらの命令に対す
るデータ型制限とマッチするデータだけを利用するとい
うことを保証するスタック及びデータ型使用制限を含
む。結果として、Javaバイトコードのプログラム
は、オブジェクト・ポインタをフォージ(forge) するこ
とができずかつ一般にユーザが使用することの許可を明
示的に認可したもの以外のシステム資源をアクセスする
ことができない。
【0006】これらの理由に対して、コンピュータ・シ
ステムは、ネットワークにわたり受け取られるANコー
ドのプログラムの実行のために構成されている。事実、
ある場合には、プログラムがコンピュータ・システムの
ラン−タイム(即ち、実行−時間)メモリ(例えば、ラ
ンダム・アクセス・メモリ(RAM))に直接ロードさ
れるので、そのようなコンピュータ・システムは、二次
メモリ(例えば、ハード・ディスク)さえも要求しない
であろう。結果として、そのようなコンピュータ・シス
テムのユーザは、現在ソフトウェア・プロダクトの典型
であるソフトウェア購入、設置、構成及びアップグレー
のサイクルから自由される。ANコードのちょうど説明
した特徴は、ネットワークされかつ要求によりANコー
ドでロードされる小さいまたは安いコンピュータ・シス
テムでの使用を特に魅力的にする。例えば、これらの種
類のコンピュータ・システムは、ビデオ・ゲーム、パー
ソナル・ディジタル・アシスタンス(PDAs)、セル
ラ・フォン、または、他の同様なコンピュータ・システ
ムまたはコンピュータ・オペレーティッド・デバイスで
ありうる。
【0007】不運にも、しかしながら、ANコードのプ
ログラムは、ASコードの同じプログラムよりもゆっく
り走る。例えば、Javaバーチャル・マシン・モジュ
ールによって実行されるJavaコードのプログラム
は、一般的にASコードの同等プログラムの2.5から
20倍ゆっくる走る。それゆえに、コンピュータ・シス
テムのユーザは、コンピュータ・システムでの実行のた
めにASコードにネットワークにわたり受け取ったプロ
グラムのANコードを生成する(即ち、変換する)のが
望ましいことを見出しうる。この場合には、コンピュー
タ・システムは、また、プログラムのANコードの受け
取りにより、コンピュータ・システムの特定のアーキテ
クチャでの実行のために対応ASコードにそれを生成す
る、コード・ジェネレータを含みうる。
【0008】ちょうど記述したコンピュータ・システム
では、価格は、非常に重要である。実際には、そのよう
なコンピュータ・システムを構築することにおける最も
重要なコストの一つは、ロードされたプログラムの実行
に対して必要なラン−タイム・メモリの量である。従っ
て、そのような低減が強力な競合し得る利点(効果)を
生成するので、これらのコンピュータ・システムによっ
て要求されるラン−タイム・メモリの量を低減すること
は、非常に重要である。
【0009】
【発明が解決しようとする課題】残念ながら、ANから
生成されたASコードは、オリジナルANコードよりも
かなり大きい。例えば、Javaバイトコードから生成
されたASコードは、一般的に、Javaバイトコード
の大きさの2から5倍である。それゆえに、固定された
量のラン−タイム・メモリは、ANコードよりも実質的
に少ないコンパイルされたASコードを保持することが
できる。しかしながら、先に示したように、ASコード
は、それがそれから生成されるANコードよりも速くか
つ十分な性能を達成するための唯一の方法でありうる。
更に、上記した型のコンピュータ・システムでは、二次
メモリにページすることが可能でないかもしれない。こ
の場合には生成されたASコードは、ラン−タイム・メ
モリキャッシュされかつラン−タイム・メモリにおける
その空間が要求される場合にフラッシュされうる。しか
しながら、フラッシュされたプログラムの実行が継続さ
れるべき場合、オリジナルANコードは、ネットワーク
にわたり再びダウンロードされかつASコードに生成さ
れなければならない。これは、プログラムの実行スピー
ドにかなり影響を及ぼす。更に、二次メモリにページす
ることが可能なコンピュータ・システムにおいてさえ
も、二次メモリからASコードを検索するために必要な
時間は、あまりにも費用が掛かるであろう。
【0010】本発明では、ASコードの圧縮そして圧縮
解除は、ラン−タイム・メモリにおけるASコードの記
憶費用を低減するために用いられる。これは、ASコー
ドをフラッシュしかつそれを再生成することよりも速い
ので、ASコードの実行スピードは、圧縮及び圧縮解除
によってあまり影響を及ぼされない。本発明の目的は、
上記従来の技術における問題点に鑑み、メソッドがメソ
ッドのアーキテクチャ・ニュートラル・コードから生成
されたアーキテクチャ特定コードにある場合に低減され
たラン−タイム・メモリ空間要求でプログラムを実行す
ることができるクライアント・コンピュータ・システム
及び方法を提供することである。
【0011】
【課題を解決するための手段】本発明の上記目的は、ア
ーキテクチャ・ニュートラル・コードのメソッドを有す
るプログラムが設けられているコンピュータ・ネットワ
ークにおいて、メソッドがメソッドのアーキテクチャ・
ニュートラル・コードから生成されたアーキテクチャ特
定コードである場合に低減されたラン−タイム・メモリ
空間要求を有するプログラムを実行するクライアント・
コンピュータ・システムであって:ラン−タイム・メモ
リ;アーキテクチャ・ニュートラル・コードのメソッド
を受け取るネットワーク通信インターフェイス;受け取
った場合にメソッドのアーキテクチャ・ニュートラル・
コードをラン−タイム・メモリの利用可能な空間に圧縮
しないでロードするネットワーク通信マネージャ;メソ
ッドのロードされたアーキテクチャ・ニュートラル・コ
ードからメソッドの圧縮されていないアーキテクチャ特
定コードをラン−タイム・メモリに生成するコード・ジ
ェネレータ;プログラムの実行を制御し、それにより異
なる時間にメソッドが呼び出されかつ呼び出されない、
実行コントローラ;(A)呼び出されていないメソッド
の圧縮可能なものの圧縮されていないアーキテクチャ特
定コードをラン−タイム・メモリに圧縮し、それにより
ラン−タイム・メモリにおいて空間が利用可能になり、
かつ(B)メソッドの圧縮解除可能なもののが呼び出さ
れうるように該メソッドの該圧縮解除可能なものの圧縮
されたアーキテクチャ特定コードをラン−タイム・メモ
リの利用可能な空間に圧縮解除するための、コード・コ
ンプレッサを備えているクライアント・コンピュータ・
システムによって達成される。
【0012】本発明のクライアント・コンピュータ・シ
ステムでは、コード・コンプレッサは、メソッドの圧縮
解除可能なもののが呼び出されるとすぐに該メソッドの
該圧縮解除可能なものの圧縮されたアーキテクチャ特定
コードを圧縮解除するように構成してもよい。本発明の
クライアント・コンピュータ・システムでは、コード・
コンプレッサは、所定の時間間隔後にメソッドの圧縮解
除可能なものの圧縮されたアーキテクチャ特定コードを
圧縮解除するように構成してもよい。本発明のクライア
ント・コンピュータ・システムでは、コード・コンプレ
ッサは、メソッドの圧縮可能なもののがもはや呼び出さ
れないとすぐに該メソッドの該圧縮可能なものの圧縮さ
れていないアーキテクチャ特定コードを圧縮するように
構成してもよい。
【0013】本発明のクライアント・コンピュータ・シ
ステムでは、コード・コンプレッサは、ラン−タイム・
メソッドにおける空間が必要であるが利用可能でない場
合にメソッドの圧縮可能なものの圧縮されていないアー
キテクチャ特定コードを圧縮するように構成してもよ
い。本発明のクライアント・コンピュータ・システムで
は、最も古く呼出されたメソッドから最も新しく呼出さ
れたメソッドまでの順番に現在呼び出されていないメソ
ッドのそれらをリストする最も古く呼び出されたリス
ト;を更に備え、メソッドの圧縮可能なものは、ラン−
タイム・メモリの空間が必要であるが利用可能でない場
合に圧縮されていないアーキテクチャ特定コードを有す
る最も古く呼出されたリストにおける最も古く呼出され
たメソッドであるように構成してもよい。
【0014】本発明のクライアント・コンピュータ・シ
ステムでは、コード・コンプレッサは、ラン−タイム・
メモリが必要であるが利用可能でない場合にメソッドの
フラッシュ可能なものの圧縮されたアーキテクチャ特定
コードを該ラン−タイム・メモリからフラッシュするよ
うに構成してもよい。本発明のクライアント・コンピュ
ータ・システムでは、二次メモリ;(A)ラン−タイム
・メモリの空間が必要であるが利用可能でない場合にメ
ソッドの記憶可能なものの圧縮されたアーキテクチャ特
定コードを二次メモリに記憶し、かつ(B)メソッドの
検索可能なものの圧縮されたアーキテクチャ特定コード
を二次メモリから検索する、コード・コンプレッサ;を
更に備えていてもよい。また、本発明の上記目的は、ア
ーキテクチャ・ニュートラル・コードのメソッドを有す
るプログラムが設けられているコンピュータ・ネットワ
ークにおいて、メソッドがメソッドのアーキテクチャ・
ニュートラル・コードから生成されたアーキテクチャ特
定コードである場合に低減されたラン−タイム・メモリ
空間要求を有するプログラムを実行する方法であって:
ラン−タイム・メモリを供給し;アーキテクチャ・ニュ
ートラル・コードのプログラムを受け取り;プログラム
が受け取られた場合にメソッドのアーキテクチャ・ニュ
ートラル・コードをラン−タイム・メモリの利用可能な
空間に圧縮しないでロードし;メソッドのロードされた
アーキテクチャ・ニュートラル・コードからメソッドの
圧縮されていないアーキテクチャ特定コードをラン−タ
イム・メモリに生成し;プログラムを実行し、それによ
り異なる時間でメソッドが呼び出されかつ呼び出されな
い;呼び出されていないメソッドの圧縮可能なものの圧
縮されていないアーキテクチャ特定コードをラン−タイ
ム・メモリに圧縮し、それによりラン−タイム・メモリ
において空間が利用可能になり;かつメソッドの圧縮解
除可能なもののが呼び出されうるように該メソッドの該
圧縮解除可能なものの圧縮されたアーキテクチャ特定コ
ードをラン−タイム・メモリの利用可能な空間に圧縮解
除する段階を具備する方法によって達成される。
【0015】本発明の方法では、圧縮解除段階は、メソ
ッドの圧縮解除可能なもののが呼び出されるとすぐに該
メソッドの該圧縮解除可能なものの圧縮されたアーキテ
クチャ特定コードを圧縮解除するように構成してもよ
い。本発明の方法では、圧縮解除段階は、所定の時間間
隔後にメソッドの圧縮解除可能なものの圧縮されたアー
キテクチャ特定コードを圧縮解除するように構成しても
よい。本発明の方法では、圧縮段階は、メソッドの圧縮
可能なもののがもはや呼び出されないとすぐに該メソッ
ドの該圧縮可能なものの圧縮されていないアーキテクチ
ャ特定コードを圧縮することを含むように構成してもよ
い。本発明の方法では、圧縮段階は、ラン−タイム・メ
ソッドにおける空間が必要であるが利用可能でない場合
にメソッドの圧縮可能なものの圧縮されていないアーキ
テクチャ特定コードを圧縮するように構成してもよい。
【0016】本発明の方法では、最も古く呼出されたメ
ソッドから最も新しく呼出されたメソッドまでの順番に
現在呼び出されていないメソッドのそれらをリストする
最も古く呼び出されたリストを供給し、メソッドの圧縮
可能なものは、ラン−タイム・メモリの空間が必要であ
るが利用可能でない場合に圧縮されていないアーキテク
チャ特定コードを有する最も古く呼出されたリストにお
ける最も古く呼出されたメソッドであるように構成して
もよい。本発明の方法では、コード・コンプレッサは、
ラン−タイム・メモリが必要であるが利用可能でない場
合にメソッドのフラッシュ可能なものの圧縮されたアー
キテクチャ特定コードを該ラン−タイム・メモリからフ
ラッシュする段階を更に具備するように構成してもよ
い。
【0017】本発明の方法では、二次メモリを供給し;
ラン−タイム・メモリの空間が必要であるが利用可能で
ない場合にメソッドの記憶可能なものの圧縮されたアー
キテクチャ特定コードを二次メモリに記憶し;かつメソ
ッドの検索可能なものの圧縮されたアーキテクチャ特定
コードを二次メモリから検索する、段階を更に具備する
ように構成してもよい。
【0018】
【作用】纏めると、本発明は、アーキテクチャ・ニュー
トラル・コードにおけるメソッドをプログラムに供給す
るクライアント・コンピュータ・システム及びコンピュ
ータ・ネットワークにおける関連メソッドである。クラ
イアント・コンピュータは、メソッドがメソッドのアー
キテクチャ・ニュートラル・コードから生成されたアー
キテクチャ特定コードにある場合に低減されたラン−タ
イム・メモリ空間要求でプログラムを実行することがで
きる。クライアント・コンピュータ・システムは、ラン
−タイム・メモリ、通信インターフェイス、ネットワー
ク通信マネージャ、実行コントローラ、コード・ジェネ
レータ、及びコード・コンプレッサを備えている。
【0019】ネットワーク通信インターフェイスは、ア
ーキテクチャ・ニュートラル・コードのメソッドを受け
取る。ネットワーク通信マネージャは、受け取った場合
にメソッドの圧縮されていないアーキテクチャ・ニュー
トラル・コードをラン−タイム・メモリの利用可能な空
間にロードする。コード・ジェネレータは、次いでラン
−タイム・メモリでメソッドのロードされたアーキテク
チャ・ニュートラル・コードからメソッドの圧縮された
いないアーキテクチャ特定コードを生成する。実行コン
トローラは、メソッドが呼び出されかつ異なるときに呼
び出されないようにプログラムの実行を制御する。コー
ド・コンプレッサは、呼び出されないメソッドの圧縮可
能なもののアーキテクチャ特定コードをメモリにおいて
圧縮する。その結果、空間がラン−タイム・メモリにお
いて利用可能にされる。コード・コンプレッサは、ま
た、メソッドの圧縮解除可能なものが呼び出されうるよ
うにメソッドの圧縮解除可能なもののアーキテクチャ特
定コードをラン−タイム・メモリの利用可能な空間に圧
縮解除する。
【0020】一実施例では、コード・コンプレッサは、
メソッドの圧縮解除可能なものが呼び出されるとすぐに
メソッドの圧縮解除可能なものの圧縮されたアーキテク
チャ特定コードを圧縮解除する。別の実施例では、コー
ド・コンプレッサは、所定の時間間隔の後でメソッドの
圧縮解除可能なものの圧縮されたアーキテクチャ特定コ
ードを圧縮解除する。さらに別の実施例では、コード・
コンプレッサは、メソッドの圧縮可能なものがもはや呼
び出されないとすぐにメソッドの圧縮可能なものの圧縮
されていないアーキテクチャ特定コードを圧縮する。別
の実施例では、コード・コンプレッサは、ラン−タイム
・メモリにおける空間が必要であるが利用可能でない場
合にメソッドの圧縮可能なものの圧縮されていないアー
キテクチャ特定コードを圧縮する。更に、この実施例で
は、クライアント・コンピュータ・システムは、最も古
く呼出されたメソッドから最も新しく呼出されたメソッ
ドの順番に現在呼び出されていないメソッドのそれらを
リストする最も古く呼出されたリストを更に備えうる。
結果として、メソッドの圧縮可能なものは、ラン−タイ
ム・メモリにおける空間が必要であるが利用可能でない
場合に圧縮されていないアーキテクチャ特定コードを有
する最も古く呼出されたリストにおける最も古く呼出さ
れたメソッドである。
【0021】更に別の実施例では、コード・コンプレッ
サは、ラン−タイム・メモリにおける空間が必要である
が利用可能でない場合にメソッドのフラッシュ可能なも
のの圧縮されたアーキテクチャ特定コードをラン−タイ
ム・メモリからフラッシュする。先の実施例に対する代
替として、クライアント・コンピュータ・システムは、
二次メモリを更に備えうる。この場合には、コード・コ
ンプレッサは、ラン−タイム・メモリにおける空間が必
要であるが利用可能でない場合にメソッドの記憶可能な
ものの圧縮されたアーキテクチャ特定コードを二次メモ
リに記憶する。コード・コンプレッサは、その圧縮され
たアーキテクチャ特定コードが圧縮解除されるべきであ
るメソッドの検索可能なものの圧縮されたアーキテクチ
ャ特定コードを二次メモリから検索する。
【0022】本発明の更なる目的及び特徴は、図面を参
照することにより以下の詳細の説明及び特許請求の範囲
からさらに容易に明らかであろう。
【0023】
【実施例】図1を参照すると、本発明によるコンピュー
タ・ネットワーク100が示されている。それは、一つ
以上のクライアント・コンピュータ・システム102、
一つ以上のサーバ・コンピュータ・システム104、及
びネットワーク通信接続106を含む。クライアント・
コンピュータ・システム102は、ネットワーク通信接
続106を介してサーバ・コンピュータ・システム10
4に接続される。ネットワーク通信接続106は、ロー
カルまたはワイド・エリア・ネットワーク、インターネ
ット、またはネットワーク通信接続の他の型でありう
る。各サーバ・コンピュータ・システム104は、中央
処理装置(CPU)110、ユーザ・インターフェイス
112、ネットワーク通信インターフェイス116、及
びメモリ118を含む。ネットワーク通信インターフェ
イスは、各サーバ・コンピュータ・システムがネットワ
ーク通信接続106を介してクライアント・コンピュー
タ・システム102に通信できるようにする。
【0024】各サーバ・コンピュータ・システム104
のメモリ118は、オペレーティング・システム12
0、ネットワーク通信マネージャ122、及びプログラ
ム145を記憶する。オペレーティング・システム及び
通信マネージャは、全てCPU120で走る。オペレー
ティング・システムは、ユーザ・インターフェイス11
2でユーザによって発行されかまたはクライアント・コ
ンピュータ・システム102のユーザからネットワーク
通信接続106を介してネットワーク通信インターフェ
イス116によって受け取られたコマンドに応じてネッ
トワーク通信マネージャの走行を制御しかつ統合する。
プログラム145は、メソッド147を備えている。こ
の文書の目的に対して、プログラムの実行の間に種々の
時間で呼び出されるかまたは呼び出されないプログラム
の離散的フラグメントまたは部分は、メソッドと考えら
れる。
【0025】各サーバ・コンピュータ・システム104
のメソッド147は、クライアント・コンピュータ・シ
ステム102の特定のアーキテクチャ(即ち、プラット
フォーム)から独立したアーキテクチャ・ニュートラル
(AN)言語のANコードを含む。これらのプラットフ
ォームは、特定のプログラミング言語からANコードに
コンパイルされる。好ましい実施例では、これらのプロ
グラムは、Javaプログラミング言語で書かれかつJ
avaバイトコードにコンパイルされる。更に、これら
のプログラムは、オブジェクト指向型メソッドでプログ
ラムされるソフトウェア・プログラムを形成するメソッ
ドを有するオブジェクト・クラスに含まれる。後で詳述
するように、メソッド147は、ネットワーク通信マネ
ージャ122を用いてクライアント・コンピュータ・シ
ステム102にユーザ要求により伝送される。それゆえ
に、これらのメソッドのANコードは、ネットワーク移
動コードと考えられる。
【0026】各クライアント・コンピュータ・システム
102は、ビデオ・ゲーム、パーソナル・ディジタル・
アシスタント(PDA)、セルラ・フォーン、デスクト
ップ・コンピュータ、または他のコンピュータ・システ
ムまたは、少量のラン−タイム・メモリを必要とするコ
ンピュータ動作型デバイスでありうる。更に、各クライ
アント・コンピュータ・システムは、中央処理装置(C
PU)126、ユーザ・インターフェイス128、ネッ
トワーク通信インターフェイス132、リード・オンリ
ー・メモリ(ROM)134、及びラン−タイム(即
ち、run−time)ランダム・アクセス・メモリ
(RAM)136を含む。ネットワーク通信インターフ
ェイスは、クライアント・コンピュータ・システムがネ
ットワーク通信接続106を介してサーバ・コンピュー
タ・システム104と通信できるようにする。
【0027】各クライアント・コンピュータ・システム
102のRAM136は、オペレーティング・システム
138、ネットワーク通信マネージャ140、バーチャ
ル・マシン・モジュール142、コード・ジェネレータ
144、及びROM136から全てロードされたコード
・コンプレッサ146を記憶する。RAMは、また、ダ
ウンロードされたANコードから生成されたアーキテク
チャ特定(AS)コードを含んでいるダウンロードされ
たANコード及び/又はメソッド148を含んでいるメ
ソッド147を有するプログラム145を記憶する。オ
ペレーティング・システム、ネットワーク通信マネージ
ャ、バーチャル・マシン・モジュール、コード・コンパ
イラ、コード・コンプレッサ、及びプログラムは、全て
CPU126で実行される。オペレーティング・システ
ムは、ユーザ・インターフェイス128でユーザによっ
て発行されたコマンドに応じてネットワーク通信マネー
ジャ、バーチャル・マシン・モジュール、コード・コン
パイラ、コード・コンプレッサ、及びプログラムの実行
を制御及び統合する。
【0028】前にほのめかしたように、ANコードを含
んでいるメソッド147は、ユーザ要求によりサーバ・
コンピュータ・システム104から受け取られる。これ
らのメソッドは、好ましい実施例では、HotJava
ネットワーク通信マネージャである、ネットワーク通信
マネージャ140を用いて得られる。ネットワーク通信
マネージャは、次いでこれらのメソッドをRAM136
にロードする。バーチャル・マシン・モジュール142
のコード・ベリファイヤ151は、ロードされたメソッ
ド147のANコードが所定の完全性基準に一致するこ
とを検証する。先に示したように、これは、ロードされ
たメソッドがバーチャル・マシン・モジュールのスタッ
クをオーバフローまたはアンダーフローすることができ
ないということ及び全ての命令は、そのデータ型がそれ
らの命令に対するデータ型制限に一致するデータだけを
利用するということを保証すべくスタック及びデータ型
使用制限を含みうる。好ましい実施例では、バーチャル
・マシン・モジュールは、Javaバーチャル・マシン
・モジュールである。
【0029】ASコードを含んでいるメソッド148
は、サーバ・コンピュータ・システム104から得られ
かつネットワーク通信マネージャ140を用いてRAM
136にロードされたANコードを初めに含んでいた。
しかし、これらのプログラムのオリジナルANコード
は、コード・ジェネレータ144によってASコードに
生成された。ASコードは、クライアント・コンピュー
タの特定アーキテクチャで実行可能である。先に示した
ように、ユーザは、生成されたASコードが対応してい
るANコードよりも速く実行されうるので、ASコード
に生成されたANコードのプログラムを有することを望
むであろう。更に、RAM136に記憶された所定のA
Sコード生成基準150が満足される場合に、ASコー
ドを含んでいるメソッド148は、生成されたそれらの
ANコードを有する。ASコード生成基準は、ユーザ・
インターフェイス128でユーザによって入力され、か
つ後でより完全に説明される。
【0030】バーチャル・マシン・モジュール142の
実行コントローラ153は、メソッド147及び/又は
148の実行を制御する。特に、エクセキュータは、ク
ライアント・コンピュータ・システム102の特定アー
キテクチャでの実行のためにメソッド147のANコー
ドを解釈しかつこれらのメソッドが、特定アーキテクチ
ャでの実行のためにASコードを含んでいるメソッド1
48を呼出すことができるようにする。メソッドの実行
の間に生成された実行149データは、RAM136に
記憶される。更に、ネットワーク通信マネージャ14
0、コード・ジェネレータ144、及び/又はコード・
コンプレッサ146がANコードであるならば、実行コ
ントローラは、同様にそれらの実行も制御する。更に、
クライアント・コンピュータ・システム102のRAM
空間要求を低く保つために、コード・コンプレッサ14
6は、種々の時間でメソッド147及び/又は148の
コードをRAM136で圧縮及び圧縮解除する。それら
がRAM136に記憶されかつユーザ・インターフェイ
ス128でユーザによって入力される所定の圧縮及び圧
縮解除基準152及び154をそれぞれ満足するので、
これは、圧縮可能及び圧縮解除可能であるメソッドに対
して行われる。圧縮及び圧縮解除基準は、後でより完全
に説明される。
【0031】メソッド147及び/又は148の記憶及
び呼出し状態は、メソッド(メソッド)状態データ構造
155で保守される。メソッド状態データ構造は、ネッ
トワーク通信マネージャ140、実行コントローラ15
3、コード・ジェネレータ144、及びコード・コンプ
レッサ146によって更新される。図2は、メソッド1
47及び/又は148をRAM136で圧縮及び圧縮解
除することにおけるクライアント・コンピュータ・シス
テム102のそれぞれのオペレーションの機能ブロック
図を示す。更に、図3及び4は、それぞれ好ましい圧縮
及び圧縮解除メソッド300及び400を示す。図1〜
図3を参照すると、ユーザが、クライアント・コンピュ
ータ・システム14の一つのプログラム145の実行を
要求する場合、ユーザのクライアント・コンピュータ・
システム102は、サーバ・コンピュータ・システムか
ら要求したプログラムの各メソッド147を得る(図3
のステップ302)。これは、ユーザが、サーバ・コン
ピュータ・システムからのプログラムをダウンロードし
かつ実行すべくユーザ・インターフェイス128でコマ
ンドを発行する場合に行われる。応答として、オペレー
ティング・システム120は、そのような要求が行われ
たということを示しているメッセージを生成するネット
ワーク通信マネージャ140を呼出す。ネットワーク通
信インターフェイス132は、次いで、サーバ・コンピ
ュータ・システムにメッセージを伝送する。
【0032】サーバ・コンピュータ・システム104の
ネットワーク通信インターフェイス116は、伝送され
たメッセージを受け取る。それに応じて、サーバ・コン
ピュータ・システムのネットワーク通信マネージャ12
2は、ユーザのクライアント・オペレーション・システ
ム102にメソッドを次いで伝送するネットワーク通信
インターフェイスに要求されたプログラム145のメソ
ッド147を供給する。伝送されたメソッド147は、
ユーザのクライアント・コンピュータ・システム102
のネットワーク通信インターフェイス132によって受
け取られる。それに応じて、ネットワーク通信マネージ
ャ140は、次いで、RAM136において十分な空間
が受け取ったメソッドをロードするために利用可能であ
るかどうかを決定する(図3の意思決定ステップ30
4)。利用可能であれば、次いでネットワーク通信マネ
ージャは、圧縮されていないこれらのメソッドのANコ
ードをRAMの利用可能な空間)にロードする(図3の
ステップ306)。結果として、これらのメソッドは、
他のプログラム45の先にロードされたメソッド147
と一緒にRAMにロードされる。これらのメソッドをロ
ードすることにおいて、ネットワーク通信マネージャ
は、メソッド及これらのメソッドによって占有されたR
AM136におけるメモリ空間に対する対応ポインタを
識別すベくメソッド状態データ構造155のメソッド
(メソッド)記憶状態表200を更新する。更に、ネッ
トワーク通信マネージャは、メソッドのANコードが圧
縮されえいない(U)ことを示すべくメソッド状態表を
更新する。
【0033】ネットワーク通信マネージャ140は、バ
ーチャル・マシン・モジュール142のコード・ベリフ
ァイヤ151を次いで呼出す。応答として、コード・ベ
リファイヤは、ちょうどロードされたメソッド147の
ANコードが、先に説明した所定の完全性基準と一致す
ることを検証する(図3のステップ307)。ネットワ
ーク通信マネージャ140は、ちょうどロードされたメ
ソッド147のいずれかのANコードがASコードにコ
ンパイルされるかどうかを次いで決定する(図3の意思
決定段階308)。これは、ASコード生成基準に基づ
いて行われる。当業者が認識するように、ユーザは、広
範囲のオプションからかつユーザのクライアント・コン
ピュータ・システムに特有な多数の条件に基づきASコ
ード生成基準を選択及び/又は同調させうる。例えば、
ASコード生成基準は、これらのメソッドがロードされ
る場合に全てのダウンロードされたメソッドのANコー
ドがASコードに生成されるべきであるということ、ま
たはそれらがロードされる場合にANコードを有するダ
ウンロードされたメソッドの全てがASコードに生成さ
れたそれらのANコードを有さないということ、または
それらがロードされる場合に特定の大きさまたは型のA
Nコードを有するそれらのダウンロードされたメソッド
だけがASコードに生成されたそられのANコードを有
するということを特定しうる。
【0034】ちょうどロードされたメソッド147のあ
るものがASコードに生成されたそれらのANコードを
有するならば、ネットワーク通信マネージャは、コード
・ジェネレータ144を呼出す。コード・ジェネレータ
は、これらのメソッドのANコードをASコードに生成
するためにRAM136に十分な空間があるかどうかを
決定する(図3の意思決定ステップ310)。あるなら
ば、コード・ジェネレータは、利用可能な空間にこれら
のメソッドのASコードを生成し(図3のステップ31
2)かつ生成されたASコードによって占有された空間
をポイントすべくメソッド記憶状態表200のポインタ
を更新する。結果として、これらのメソッドは、そのA
NコードがASコードに生成された他の先にダウンロー
ドされたメソッドと共に、ASコードを含むメソッド1
48としてRAMに記憶される。
【0035】ちょうどロードされたANコードを含んで
いるメソッド147及び/又はちょうどロードされかつ
ASコードに生成されたASコードを含んでいるメソッ
ド148を有するプログラム145は、次いで、先にロ
ードされたプログラム145と共にエクスキュータの制
御下で実行される(図3のステップ314)。先に示し
たように、実行コントローラは、ユーザのクライアント
・コンピュータ・システム102の特定アーキテクチャ
での実行のためにメソッド147のANコードを解釈し
かつこれらのプログラムが特定アーキテクチャでの実行
のためにASコードを含んでいるメソッド148を呼出
すことができるようにする。それがスリープさせられ
る、等なので、ロードされたメソッド147及び/又は
148のそれぞれは、種々の時間で呼び出されないであ
ろう。プログラム実行コントローラがこれが発生したと
いうことを決定する場合、それは、現在呼び出されてい
ないということを示すためにメソッド状態データ構造1
55の最も古く呼出された(LRI)リスト202にメ
ソッドを加える。LRIリストのメソッドは、最も新た
らしく呼出されたものから最も古く呼出されたものまで
リストされる。
【0036】先に示したように、RAM136の空間要
求を低減するために、所定の圧縮基準152が満足され
る各ロードされたメソッド147及び/又は148のコ
ードは、コード・コンプレッサ146によって圧縮され
る。好ましい実施例では、圧縮基準は、圧縮可能メソッ
ド147または148のコードが(1)RAM136の
空間が必要であるが利用可能でなく、かつ(2)メソッ
ドが、そのコードがまだ圧縮されていないLRIリスト
202のメソッドの最も古く呼び出された、ときに圧縮
されるということを特定する。ネットワーク通信マネー
ジャ140がRAM136の空間がサーバ・コンピュー
タ・システム104によって受け取られた一つ以上のメ
ソッド147をロードするために利用可能ではないとい
うことを決定する場合(図3の意思決定ステップ30
4)、それは、コード・コンプレッサ146を呼出す。
それに応じて、コード・コンプレッサは、十分な空間が
利用可能になるまでLRIリスト202の最も古く呼出
されたメソッドのコードを圧縮する(図3のステップ3
16)。コード・コンプレッサは、また、メソッドの圧
縮されたコードのメモリ空間への対応ポインタを識別し
かつメソッドのコードが圧縮されたということを示すた
めにメソッド記憶状態表200も更新する(C)。次い
でネットワーク通信マネージャは、先に説明したよう
に、利用可能な空間に空間が利用可能にされたメソッド
をロードする(図3のステップ306)。
【0037】コード・コンプレッサ146は、当業者に
よく知られたあらゆる高速データ圧縮技術を使用しう
る。更に、コード・コンプレッサは、メソッド147の
ANコード及びメソッド148のASコードの最適圧縮
に対して個別の圧縮技術を使用しうる。更に、RAMの
空間がちょうどロードされた一つ以上のメソッド147
をコンパイルするためにコード・ジェネレータによって
要求される場合(図3の意思決定ステップ310)、コ
ード・ジェネレータ144は、コード・コンプレッサ1
46を呼出す。ちょうどロードされたメソッドの場合に
おけるように、コード・コンプレッサは、十分な空間が
利用可能になるまでLRIリスト202の最も古く実行
されたメソッドのコードを圧縮し(図3のステップ31
8)、かつそのようにすることにより、メソッドの圧縮
されたコードのメモリ空間への対応ポインタを識別しか
つメソッドのコードが圧縮されたということを示すため
にメソッド記憶状態表200を更新する(C)。コード
・ジェネレータは、次いで、先に説明したように、空間
が利用可能になったメソッドのASコードを利用可能空
間に生成する(図3のステップ312)。
【0038】更に、ロードされたメソッド147及び/
又は148が呼び出されると同時に、それらは、実行デ
ータを生成する。実行コントローラ153が決定するこ
れらのメソッドのいずれかが呼び出されることに対し
(図3の意思決定ステップ320)かつRAM136の
空間が実行データを記憶するために利用可能であること
に対して(ステップ322)、実行コントローラは、R
AMに実行データを記憶する(図3のステップ32
4)。しかしながら、エクセキュータ153が決定する
ロードされたメソッド147及び/又は148のそれぞ
れが実行可能であることに対し(図3の意思決定ステッ
プ320)かつRAM136の空間が利用可能ではない
が実行データを記憶することが必要であることに対して
(意思決定ステップ322)、エクセキュータは、コー
ド・コンプレッサ146を呼出す。RAMにおける空間
が必要であるような先の情況におけるように、コード・
コンプレッサは、十分な空間が利用可能になるまでLR
Iリスト202における最も古く実行されたメソッドの
コードを圧縮する(図3のステップ326)。そして、
先に説明したように、コード・コンプレッサは、メソッ
ドの圧縮されたコードのメモリ空間への対応ポインタを
識別しかつメソッドのコードが圧縮されたということを
示すためにメソッド記憶状態表200を更新する
(C)。次いで、実行コントローラは、先に記述したよ
うに、RAMにおいて利用可能になった空間に実行デー
タを記憶し、かつその実行データが記憶されたメソッド
を有するプログラムの実行が継続される(図3のステッ
プ314)。
【0039】更に、図1、2、及び4を参照すると、R
AM136の空間が利用可能である場合、圧縮されかつ
所定の圧縮解除基準154が満足される各ロードされた
メソッド147及び/又は148は、コード・コンプレ
ッサ146によって圧縮解除される。好ましい実施例で
は、圧縮解除可能なメソッドのコードを圧縮解除するた
めの所定の圧縮解除基準は、メソッドのコードが圧縮さ
れかつメソッドが再び呼び出されるときに圧縮解除され
るということを単に特定する。それゆえに、実行コント
ローラ153がロードされたメソッド147及び/又は
148の一つが呼び出されるということを決定するとき
にはいつでも(図4の意思決定ステップ402)、それ
は、このメソッドのコードが圧縮されるかどうかを決定
する(図4の意思決定ステップ404)。これは、メソ
ッド記憶状態表200から決定される。メソッドのコー
ドが圧縮されないならば、メソッドは、実行コントロー
ラによって呼び出される(図4のステップ406)。そ
れがもはや呼び出されない場合には、そのコードは、先
に説明したメソッドでコード・コンプレッサ146によ
った圧縮されうる。
【0040】しかしながら、呼び出されるメソッド14
7または148のコードが圧縮されるならば、実行コン
トローラは、メソッドのコードを圧縮解除するためにコ
ード・コンプレッサ146を呼出す。コード・コンプレ
ッサは、メソッドのコードを圧縮解除するためにRAM
136において十分な空間が利用可能であるかどうかを
決定する(図4の意思決定ステップ408)。十分な空
間が利用可能ならば、コード・コンプレッサは、利用可
能な空間でメソッドのコードを圧縮解除する(図4のス
テップ410)。そのようにすることで、それは、圧縮
されていないコードのメモリ空間への対応ポインタを識
別しかつメソッドのコードがいま圧縮されていないとい
うことを示すためにメソッド記憶状態表200を更新す
る(U)。
【0041】しかしながら、十分な空間が利用可能でな
いならば、コード・コンプレッサ146は、空間が利用
可能になるまでそのコードがまだ圧縮されていないLR
Iリスト202の最も古く実行されたメソッドのコード
を圧縮する(図4のステップ412)。これは、先に示
したメソッドで行われる。空間が利用可能になった後、
圧縮解除されるべきメソッド147または148のコー
ドは、利用可能な空間でコード・コンプレッサによって
圧縮解除され、そして説明したメソッドで実行コントロ
ーラ153によって呼び出される(図4のステップ41
0及び406)。前記の観点において、本発明は、実行
スピードをセーブすると同時にラン−タイム・メモリ空
間における低減を提供するということが明らかである。
これは、ロードされたメソッド147及び/又は148
を圧縮することによって、それらは、RAMにおける空
間が必要な場合にRAM136からフラッシュされかつ
サーバ・コンピュータ・システム104から再ダウンロ
ードされる必要がなくはないという事実による。更に、
ASコードを含んでいるメソッドの場合には、これらの
メソッドが再ダウンロード及び再発生される必要がない
ので、実行スピードは、さらにセーブされる。しかしな
がら、当業者が認識するように、他の代替実施例は、同
様な利益を供給すべくインプリメントすることができ
る。
【0042】特に、先に説明した圧縮基準152は、R
AM136の空間が必要であったが利用可能でない場合
に圧縮されていないコードを有する最も古く呼出された
メソッド147及び/又は148のコードが圧縮される
であろうということを特定した。しかしながら、圧縮基
準は、広範囲のオプションからかつユーザのクライアン
ト・コンピュータ・システム102に特有な多数の条件
に基づきユーザによって選択されうる。例えば、圧縮基
準は、各メソッドのコードがプログラムもはや呼び出さ
れなくなったならば圧縮されるということを単に特定し
うる。または、それは、ある一定のメソッドのコードが
そのようにするための時間が利用可能なときにはいつで
もものうげに圧縮されるということを特定しうる。先の
いずれかのものの更なる変形として、圧縮基準は、特定
の大きさまたは型のメソッドのコードだけが圧縮される
ということを特定しうる。
【0043】更に、先に示したように、圧縮解除基準1
54は、そのコードが圧縮されたコードであるメソッド
147または148が、メソッドが呼び出されるとすぐ
にそのコードを圧縮解除させるということを特定した。
しかしながら、圧縮解除基準は、所定の時間間隔が期限
切れ(満了)になった後に圧縮されたコードが圧縮解除
されるということを特定できる。この場合には、データ
・コンプレッサは、時間間隔を計時するためのタイマを
含むことができる。一例では、この技術は、メソッドが
この時間間隔に対して圧縮されそしてそれが目覚めさせ
られるときのほんの少し前に圧縮解除されるように既知
の時間間隔に対してスリープさせられているメソッドに
用いることができる。または、別の例では、技術は、そ
れにわたりメソッドが圧縮される時間間隔が データが
メソッドに対して利用可能になる場合を予測するように
選択されるようなデータを待っているメソッドに用いる
ことができる。
【0044】別の実施例では、圧縮基準152は、ま
た、ロードされたメソッド147及び/又は148がR
AM136からフラシュされる場合を特定しているフラ
ッシング基準も含みうる。例えば、フラッシング基準
は、呼び出されないRAMにおいてロードされたメソッ
ドが存在しないならば、圧縮されたコードを有するLR
Iリスト202の最も古く呼出されたメソッドは、フラ
ッシュ可能でありかつ十分な空間が利用可能になるまで
RAM136からフラッシュされるということを示しう
る。その結果、メソッドがRAMからフラッシュされそ
して再び呼び出される場合、ネットワーク通信マネージ
ャは、先に説明したメソッドでメソッドを供給するサー
バ・コンピュータ・システム104からメソッドを再ダ
ウンロードしなければならない。実行コントローラ15
3は、フラシュされたメソッドへの参照を除去すること
によってメソッド記憶状態表200を更新する。
【0045】更に、ちょうど説明した実施例に対する変
形として、ASコード生成基準150は、それらのAN
コードがASコードに生成されたメソッド148のAN
コードが生成されたASコードと共にRAM136に維
持されるべきであるということを特定しうる。これは、
メソッドのASコードがRAMからフラッシュされなけ
ればならない場合にメソッドのANコードがメソッドの
ASコードに再生成することができるように行われる。
これは、サーバ・コンピュータ・システムからメソッド
のANコードを再ダウンロードするために必要な時間を
セーブする。更に、ANコードは、それがASコードへ
の再生成に対して必要になるまでRAMに圧縮すること
ができる。ちょうど説明した実施例の別の変形では、メ
ソッド148のダウンロードされたANコードは、実行
コントローラ153の制御下で初めに実行されるであろ
う。次いで、実行コントローラは、ANコードのラン−
タイム挙動に基づき統計を纏めかつ纏められた統計がA
Sコード生成基準150のある一定のしきい値基準を満
足するならばANコードをASコードに生成するであろ
う。例えば、実行コントローラは、ANコードがランす
る回数の計数を保守しうる。一度この計数がしきい数を
通過したならば、実行コントローラは、ANコードをA
Sコードに生成するためにコード・ジェネレータ144
を呼出すであろう。
【0046】RAM136からロードされたメソッド1
47及び/又は148をフラッシュすることは実行スピ
ードの点で費用が掛かるので、図5及び図6に示すよう
に、二次メモリ500は、さもなければフラッシュされ
るメソッドを記憶するために用いることができる。この
場合には、先に説明した圧縮基準152は、ちょうど説
明したフラッシング基準に類似しかつそれらが二次記憶
基準を満足するので記憶可能であるメソッドを記憶する
ために用いられる二次記憶基準156を含む。しかしな
がら、この場合には、コード・コンプレッサ146は、
二次メモリにおけるこれらのメソッドをポイントするた
めにメソッド記憶状態表200のポインタを更新する。
更に、それらのコードが圧縮され、二次メモリに記憶さ
れ、かつ圧縮解除されるべきであるように検索可能であ
るメソッドに対して、メソッドのコードは、二次メモリ
から検索されそして先に説明したメソッドでRAM13
6において圧縮解除される。
【0047】また、クライアント・コンピュータ・シス
テム102が二次メモリ500を含むような実施例(例
えば、ネットワーク型デスクトップ・コンピュータ)で
は、メソッド147は、サーバ・コンピュータ・システ
ム104から二次メモリにダウンロードすることができ
る。次いで、これらのメソッドは、サーバ・コンピュー
タ・システム104からではなく二次メモリからRAM
136に直接ロードすることができる。更に、そのよう
な実施例では、オペレーティング・システム138、ネ
ットワーク通信マネージャ140、バーチャル・マシン
・モジュール142、及びコード・コンプレッサ146
は、二次メモリに記憶しかつそこからRAMにロードす
ることができる。別の実施例では、オペレーティング・
システム138、ネットワーク通信マネージャ140、
バーチャル・マシン・モジュール142、コード・ジェ
ネレータ144、及びコード・コンプレッサ146は、
サーバ・コンピュータ・システム104の一つからクラ
イアント・コンピュータ・システム102のRAM13
6にダウンロードすることができる。
【0048】これは、サーバ・コンピュータ・システム
のメソッド147に対して先に説明したものと同様なメ
ソッドで行われる。そして、本発明は、2〜3の実施例
を参照して記述されたが、記述は、本発明の説明のため
であり本発明を限定することを企図していない。特許請
求の範囲によって定義されたような本発明の真の精神及
び範疇から逸脱することなく種々の変更が当業者におい
て生起されうる。
【0049】
【発明の効果】本発明のクライアント・コンピュータ・
システムは、アーキテクチャ・ニュートラル・コードの
メソッドを有するプログラムが設けられているコンピュ
ータ・ネットワークにおいて、メソッドがメソッドのア
ーキテクチャ・ニュートラル・コードから生成されたア
ーキテクチャ特定コードである場合に低減されたラン−
タイム・メモリ空間要求を有するプログラムを実行する
クライアント・コンピュータ・システムであって:ラン
−タイム・メモリ;アーキテクチャ・ニュートラル・コ
ードのメソッドを受け取るネットワーク通信インターフ
ェイス;受け取った場合にメソッドのアーキテクチャ・
ニュートラル・コードをラン−タイム・メモリの利用可
能な空間に圧縮しないでロードするネットワーク通信マ
ネージャ;メソッドのロードされたアーキテクチャ・ニ
ュートラル・コードからメソッドの圧縮されていないア
ーキテクチャ特定コードをラン−タイム・メモリに生成
するコード・ジェネレータ;プログラムの実行を制御
し、それにより異なる時間にメソッドが呼び出されかつ
呼び出されない、実行コントローラ;(A)呼び出され
ていないメソッドの圧縮可能なものの圧縮されていない
アーキテクチャ特定コードをラン−タイム・メモリに圧
縮し、それによりラン−タイム・メモリにおいて空間が
利用可能になり、かつ(B)メソッドの圧縮解除可能な
もののが呼び出されうるように該メソッドの該圧縮解除
可能なものの圧縮されたアーキテクチャ特定コードをラ
ン−タイム・メモリの利用可能な空間に圧縮解除するた
めの、コード・コンプレッサを備えているので、メソッ
ドがメソッドのアーキテクチャ・ニュートラル・コード
から生成されたアーキテクチャ特定コードにある場合に
低減されたラン−タイム・メモリ空間要求でプログラム
を実行することができる。
【0050】本発明の方法は、アーキテクチャ・ニュー
トラル・コードのメソッドを有するプログラムが設けら
れているコンピュータ・ネットワークにおいて、メソッ
ドがメソッドのアーキテクチャ・ニュートラル・コード
から生成されたアーキテクチャ特定コードである場合に
低減されたラン−タイム・メモリ空間要求を有するプロ
グラムを実行する方法であって:ラン−タイム・メモリ
を供給し;アーキテクチャ・ニュートラル・コードのプ
ログラムを受け取り;プログラムが受け取られた場合に
メソッドのアーキテクチャ・ニュートラル・コードをラ
ン−タイム・メモリの利用可能な空間に圧縮しないでロ
ードし;メソッドのロードされたアーキテクチャ・ニュ
ートラル・コードからメソッドの圧縮されていないアー
キテクチャ特定コードをラン−タイム・メモリに生成
し;プログラムを実行し、それにより異なる時間でメソ
ッドが呼び出されかつ呼び出されない;呼び出されてい
ないメソッドの圧縮可能なものの圧縮されていないアー
キテクチャ特定コードをラン−タイム・メモリに圧縮
し、それによりラン−タイム・メモリにおいて空間が利
用可能になり;かつメソッドの圧縮解除可能なもののが
呼び出されうるように該メソッドの該圧縮解除可能なも
のの圧縮されたアーキテクチャ特定コードをラン−タイ
ム・メモリの利用可能な空間に圧縮解除する段階を具備
するので、メソッドがメソッドのアーキテクチャ・ニュ
ートラル・コードから生成されたアーキテクチャ特定コ
ードにある場合に低減されたラン−タイム・メモリ空間
要求でプログラムを実行することができる。
【図面の簡単な説明】
【図1】本発明を組み込んだクライアント・コンピュー
タ・システムのブロック図である。
【図2】クライアント・コンピュータ・システムのオペ
レーションの機能ブロック図である。
【図3】クライアント・コンピュータ・システムの圧縮
メソッドのフローチャートである。
【図4】クライアント・コンピュータ・システムの圧縮
解除メソッドのフローチャートである。
【図5】クライアント・コンピュータ・システムの代替
実施例を示す。
【図6】クライアント・コンピュータ・システムの代替
実施例のオペレーションの機能ブロック図を示す。
【符号の説明】
100 コンピュータ・ネットワーク 102 クライアント・コンピュータ・システム 104 サーバ・コンピュータ・システム 106 ネットワーク通信接続 110、126 CPU 112、128 ユーザ・インターフェイス 116 通信インターフェイス 118 120、138 オペレーティング・システム 122、140 ネットワーク通信マネージャ 132 ネットワーク通信インターフェイス 134 ROM 136 RAM 142 バーチャル・マシン・モジュール 145 プログラム 146 コード・コンプレッサ 147 メソッド:ANコード 148 メソッド:ASコード 149 実行データ 150、152、154 基準 151 コード・ベリファイヤ 153 実行コントローラ 155 メソッド状態データ構造

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 アーキテクチャ・ニュートラル・コード
    のメソッドを有するプログラムが設けられているコンピ
    ュータ・ネットワークにおいて、メソッドがメソッドの
    アーキテクチャ・ニュートラル・コードから生成された
    アーキテクチャ特定コードである場合に低減されたラン
    −タイム・メモリ空間要求を有するプログラムを実行す
    るクライアント・コンピュータ・システムであって:ラ
    ン−タイム・メモリ;アーキテクチャ・ニュートラル・
    コードのメソッドを受け取るネットワーク通信インター
    フェイス;受け取った場合に前記メソッドの前記アーキ
    テクチャ・ニュートラル・コードを前記ラン−タイム・
    メモリの利用可能な空間に圧縮しないでロードするネッ
    トワーク通信マネージャ;前記メソッドの前記ロードさ
    れたアーキテクチャ・ニュートラル・コードから前記メ
    ソッドの圧縮されていないアーキテクチャ特定コードを
    前記ラン−タイム・メモリに生成するコード・ジェネレ
    ータ;プログラムの実行を制御し、それにより異なる時
    間に前記メソッドが呼び出されかつ呼び出されない、実
    行コントローラ; (A)呼び出されていない前記メソッドの圧縮可能なも
    のの前記圧縮されていないアーキテクチャ特定コードを
    前記ラン−タイム・メモリに圧縮し、それにより前記ラ
    ン−タイム・メモリにおいて空間が利用可能になり、か
    つ(B)前記メソッドの圧縮解除可能なもののが呼び出
    されうるように該メソッドの該圧縮解除可能なものの前
    記圧縮されたアーキテクチャ特定コードを前記ラン−タ
    イム・メモリの利用可能な空間に圧縮解除するための、
    コード・コンプレッサを備えていることを特徴とするク
    ライアント・コンピュータ・システム。
  2. 【請求項2】 前記コード・コンプレッサは、前記メソ
    ッドの前記圧縮解除可能なもののが呼び出されるとすぐ
    に該メソッドの該圧縮解除可能なものの前記圧縮された
    アーキテクチャ特定コードを圧縮解除することを特徴と
    する請求項1に記載のクライアント・コンピュータ・シ
    ステム。
  3. 【請求項3】 前記コード・コンプレッサは、所定の時
    間間隔後に前記メソッドの前記圧縮解除可能なものの前
    記圧縮されたアーキテクチャ特定コードを圧縮解除する
    ことを特徴とする請求項1に記載のクライアント・コン
    ピュータ・システム。
  4. 【請求項4】 前記コード・コンプレッサは、前記メソ
    ッドの前記圧縮可能なもののがもはや呼び出されないと
    すぐに該メソッドの該圧縮可能なものの前記圧縮されて
    いないアーキテクチャ特定コードを圧縮することを特徴
    とする請求項1、2または3に記載のクライアント・コ
    ンピュータ・システム。
  5. 【請求項5】 前記コード・コンプレッサは、前記ラン
    −タイム・メソッドにおける空間が必要であるが利用可
    能でない場合に前記メソッドの前記圧縮可能なものの前
    記圧縮されていないアーキテクチャ特定コードを圧縮す
    ることを特徴とする請求項1、2または3に記載のクラ
    イアント・コンピュータ・システム。
  6. 【請求項6】 最も古く呼出されたメソッドから最も新
    しく呼出されたメソッドまでの順番に現在呼び出されて
    いない前記メソッドのそれらをリストする最も古く呼び
    出されたリスト;を更に備え、 前記メソッドの前記圧縮可能なものは、前記ラン−タイ
    ム・メモリの空間が必要であるが利用可能でない場合に
    前記圧縮されていないアーキテクチャ特定コードを有す
    る前記最も古く呼出されたリストにおける前記最も古く
    呼出されたメソッドであることを特徴とする請求項1か
    ら請求項5のいずれか一項に記載のクライアント・コン
    ピュータ・システム。
  7. 【請求項7】 前記コード・コンプレッサは、前記ラン
    −タイム・メモリが必要であるが利用可能でない場合に
    前記メソッドのフラッシュ可能なものの前記圧縮された
    アーキテクチャ特定コードを該ラン−タイム・メモリか
    らフラッシュすることを特徴とする請求項1から請求項
    6のいずれか一項に記載のクライアント・コンピュータ
    ・システム。
  8. 【請求項8】 二次メモリ; (A)前記ラン−タイム・メモリの空間が必要であるが
    利用可能でない場合に前記メソッドの記憶可能なものの
    前記圧縮されたアーキテクチャ特定コードを前記二次メ
    モリに記憶し、かつ(B)前記メソッドの前記検索可能
    なものの前記圧縮されたアーキテクチャ特定コードを前
    記二次メモリから検索する、コード・コンプレッサ;を
    更に備えていることを特徴とする請求項1から請求項7
    のいずれか一項に記載のクライアント・コンピュータ・
    システム。
  9. 【請求項9】 アーキテクチャ・ニュートラル・コード
    のメソッドを有するプログラムが設けられているコンピ
    ュータ・ネットワークにおいて、メソッドがメソッドの
    アーキテクチャ・ニュートラル・コードから生成された
    アーキテクチャ特定コードである場合に低減されたラン
    −タイム・メモリ空間要求を有するプログラムを実行す
    る方法であって:ラン−タイム・メモリを供給し;アー
    キテクチャ・ニュートラル・コードのプログラムを受け
    取り;前記プログラムが受け取られた場合に前記メソッ
    ドの前記アーキテクチャ・ニュートラル・コードを前記
    ラン−タイム・メモリの利用可能な空間に圧縮しないで
    ロードし;前記メソッドの前記ロードされたアーキテク
    チャ・ニュートラル・コードから前記メソッドの圧縮さ
    れていないアーキテクチャ特定コードを前記ラン−タイ
    ム・メモリに生成し;前記プログラムを実行し、それに
    より異なる時間で前記メソッドが呼び出されかつ呼び出
    されない;呼び出されていない前記メソッドの圧縮可能
    なものの前記圧縮されていないアーキテクチャ特定コー
    ドを前記ラン−タイム・メモリに圧縮し、それにより前
    記ラン−タイム・メモリにおいて空間が利用可能にな
    り;かつ前記メソッドの圧縮解除可能なもののが呼び出
    されうるように該メソッドの該圧縮解除可能なものの前
    記圧縮されたアーキテクチャ特定コードを前記ラン−タ
    イム・メモリの利用可能な空間に圧縮解除する段階を具
    備することを特徴とする方法。
  10. 【請求項10】 前記圧縮解除段階は、前記メソッドの
    前記圧縮解除可能なもののが呼び出されるとすぐに該メ
    ソッドの該圧縮解除可能なものの前記圧縮されたアーキ
    テクチャ特定コードを圧縮解除することを含むことを特
    徴とする請求項9に記載の方法。
  11. 【請求項11】 前記圧縮解除段階は、所定の時間間隔
    後に前記メソッドの前記圧縮解除可能なものの前記圧縮
    されたアーキテクチャ特定コードを圧縮解除することを
    含むことを特徴とする請求項9に記載の方法。
  12. 【請求項12】 前記圧縮段階は、前記メソッドの前記
    圧縮可能なもののがもはや呼び出されないとすぐに該メ
    ソッドの該圧縮可能なものの前記圧縮されていないアー
    キテクチャ特定コードを圧縮することを含むことを特徴
    とする請求項9、10または11に記載の方法。
  13. 【請求項13】 前記圧縮段階は、前記ラン−タイム・
    メソッドにおける空間が必要であるが利用可能でない場
    合に前記メソッドの前記圧縮可能なものの前記圧縮され
    ていないアーキテクチャ特定コードを圧縮することを特
    徴とする請求項9、10または11に記載のクライアン
    ト・コンピュータ・システム。
  14. 【請求項14】 最も古く呼出されたメソッドから最も
    新しく呼出されたメソッドまでの順番に現在呼び出され
    ていない前記メソッドのそれらをリストする最も古く呼
    び出されたリストを供給し、 前記メソッドの前記圧縮可能なものは、前記ラン−タイ
    ム・メモリの空間が必要であるが利用可能でない場合に
    前記圧縮されていないアーキテクチャ特定コードを有す
    る前記最も古く呼出されたリストにおける前記最も古く
    呼出されたメソッドであることを特徴とする請求項9か
    ら請求項13のいずれか一項に記載の方法。
  15. 【請求項15】 前記コード・コンプレッサは、前記ラ
    ン−タイム・メモリが必要であるが利用可能でない場合
    に前記メソッドのフラッシュ可能なものの前記圧縮され
    たアーキテクチャ特定コードを該ラン−タイム・メモリ
    からフラッシュする段階を更に具備することを特徴とす
    る請求項9から請求項14のいずれか一項に記載の方
    法。
  16. 【請求項16】 二次メモリを供給し;前記ラン−タイ
    ム・メモリの空間が必要であるが利用可能でない場合に
    前記メソッドの記憶可能なものの前記圧縮されたアーキ
    テクチャ特定コードを前記二次メモリに記憶し;かつ前
    記メソッドの前記検索可能なものの前記圧縮されたアー
    キテクチャ特定コードを前記二次メモリから検索する、
    段階を更に具備することを特徴とする請求項9から請求
    項15のいずれか一項に記載の方法。
JP18427697A 1996-06-05 1997-06-05 低減されたラン−タイム・メモリ空間要求を有するアーキテクチャ特定コードを実行する方法及びコンピュータ・システム Expired - Lifetime JP3955358B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/658500 1996-06-05
US08/658,500 US5794049A (en) 1996-06-05 1996-06-05 Computer system and method for executing architecture specific code with reduced run-time memory space requirements

Publications (2)

Publication Number Publication Date
JPH10228379A true JPH10228379A (ja) 1998-08-25
JP3955358B2 JP3955358B2 (ja) 2007-08-08

Family

ID=24641494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18427697A Expired - Lifetime JP3955358B2 (ja) 1996-06-05 1997-06-05 低減されたラン−タイム・メモリ空間要求を有するアーキテクチャ特定コードを実行する方法及びコンピュータ・システム

Country Status (8)

Country Link
US (1) US5794049A (ja)
EP (1) EP0811910B1 (ja)
JP (1) JP3955358B2 (ja)
KR (1) KR100528844B1 (ja)
CN (1) CN1122228C (ja)
DE (1) DE69724516T2 (ja)
SG (1) SG74591A1 (ja)
TW (1) TW332881B (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226665B1 (en) * 1996-09-19 2001-05-01 Microsoft Corporation Application execution environment for a small device with partial program loading by a resident operating system
DE69714752C5 (de) * 1996-10-25 2015-08-13 Gemalto Sa Verwendung einer hohen programmiersprache in einem mikrokontroller
US6758755B2 (en) * 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
DE69804708T2 (de) * 1997-03-29 2002-11-14 Imec Vzw Verfahren und Gerät für Grössenoptimierung von Speichereinheiten
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US6092147A (en) 1997-04-15 2000-07-18 Sun Microsystems, Inc. Virtual machine with securely distributed bytecode verification
US6453334B1 (en) * 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
KR100254200B1 (ko) 1997-11-20 2000-04-15 윤종용 보코더의 기능 추가를 위한 데이터 다운로드 방법
US6292935B1 (en) * 1998-05-29 2001-09-18 Intel Corporation Method for fast translation of java byte codes into efficient native processor code
US6212632B1 (en) 1998-07-31 2001-04-03 Flashpoint Technology, Inc. Method and system for efficiently reducing the RAM footprint of software executing on an embedded computer system
US6425003B1 (en) * 1999-01-22 2002-07-23 Cisco Technology, Inc. Method and apparatus for DNS resolution
GB9921720D0 (en) * 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
US6363523B1 (en) * 1999-11-12 2002-03-26 Sun Microsystems, Inc. Optimization of N-base typed arithmetic expressions
US7010786B2 (en) 1999-11-12 2006-03-07 Sun Microsystems, Inc. Predictive arithmetic overflow detection
US8453133B2 (en) * 1999-11-12 2013-05-28 Oracle America, Inc. Optimization of N-base typed arithmetic instructions via rework
US7207037B2 (en) * 1999-11-12 2007-04-17 Sun Microsystems, Inc. Overflow sensitive arithmetic instruction optimization using chaining
US7107581B2 (en) 1999-11-12 2006-09-12 Sun Microsystems, Inc. Overflow predictive arithmetic instruction optimization using chaining
US6549995B1 (en) * 2000-01-06 2003-04-15 International Business Machines Corporation Compressor system memory organization and method for low latency access to uncompressed memory regions
US6684388B1 (en) * 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US7080120B2 (en) * 2001-01-19 2006-07-18 Digital Orchid, Inc. System and method for collaborative processing of distributed applications
US7155381B2 (en) * 2001-03-12 2006-12-26 Sun Microsystems, Inc. Module for developing wireless device applications using an integrated emulator
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
JP2002318696A (ja) * 2001-04-23 2002-10-31 Mitsubishi Electric Corp プログラム実行装置および方法
EP2267625A3 (en) * 2004-04-19 2015-08-05 Lumension Security S.A. On-line centralized and local authorization of executable files
WO2005099340A2 (en) * 2004-04-19 2005-10-27 Securewave S.A. On-line centralized and local authorization of executable files
US7149990B2 (en) * 2004-11-06 2006-12-12 Hewlett-Packard Development Company, L.P. Architecture specific code
US7389391B2 (en) * 2005-04-29 2008-06-17 Mediatek, Inc. Memory disposition methods and systems
EP1963966A4 (en) * 2005-12-24 2009-12-30 Intel Corp METHOD AND DEVICE FOR EFFICIENT ARRANGING OF PORTABLE EXECUTABLE (PE) PICTURES
US8239861B2 (en) * 2008-02-07 2012-08-07 Arm Limited Software-based unloading and reloading of an inactive function to reduce memory usage of a data processing task performed using a virtual machine
US20110029761A1 (en) * 2009-08-03 2011-02-03 Chih-Ta Star Sung Method and apparatus of reducing CPU chip size
CN103907327B (zh) * 2011-11-03 2016-12-14 瑞典爱立信有限公司 电信网络中的不显眼内容压缩
CN108762766A (zh) * 2018-06-08 2018-11-06 山东超越数控电子股份有限公司 一种飞腾1500a平台下银河麒麟系统支持万兆网卡的方法
CN112181504A (zh) * 2020-09-23 2021-01-05 深圳市奋达智能技术有限公司 一种操作系统的调用方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359713A (en) * 1989-06-01 1994-10-25 Legato Systems, Inc. Method and apparatus for enhancing synchronous I/O in a computer system with a non-volatile memory and using an acceleration device driver in a computer operating system
EP0416767A3 (en) * 1989-09-08 1992-04-29 Digital Equipment Corporation Position independent code location system
WO1991019244A1 (en) * 1990-06-04 1991-12-12 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
US5339419A (en) * 1990-06-25 1994-08-16 Hewlett-Packard Company ANDF compiler using the HPcode-plus compiler intermediate language
US5276881A (en) * 1990-06-25 1994-01-04 Hewlett-Packard Company ANDF producer using the HPcode-Plus compiler intermediate language
US5280613A (en) * 1990-06-25 1994-01-18 Hewlett-Packard Company ANDF installer using the HPcode-Plus compiler intermediate language
JPH04105129A (ja) * 1990-08-24 1992-04-07 Nec Corp プログラム実行方式
US5432937A (en) * 1993-08-20 1995-07-11 Next Computer, Inc. Method and apparatus for architecture independent executable files
US5375242A (en) * 1993-09-29 1994-12-20 Hewlett-Packard Company Compiler architecture for cross-module optimization
GB2284492B (en) * 1993-12-06 1998-05-13 Graeme Roy Smith Improvements to computer control units
JPH07182169A (ja) * 1993-12-24 1995-07-21 Toshiba Corp 並列処理型コンピュータ
AU1447295A (en) * 1993-12-30 1995-08-01 Connectix Corporation Virtual memory management system and method using data compression
JPH07248921A (ja) * 1994-03-09 1995-09-26 Hitachi Ltd 並列プロセッサシステムのイニシャルプログラムロード方法
US5577230A (en) * 1994-08-10 1996-11-19 At&T Corp. Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
US5701476A (en) * 1994-11-29 1997-12-23 Intel Corporation Method and apparatus for dynamically loading a driver routine in a computer memory
US5590331A (en) * 1994-12-23 1996-12-31 Sun Microsystems, Inc. Method and apparatus for generating platform-standard object files containing machine-independent code
US5692047A (en) * 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
JP6657382B2 (ja) * 2016-04-15 2020-03-04 京セラ株式会社 半導体装置

Also Published As

Publication number Publication date
CN1174359A (zh) 1998-02-25
EP0811910A3 (en) 1999-03-10
JP3955358B2 (ja) 2007-08-08
KR980004025A (ko) 1998-03-30
DE69724516T2 (de) 2004-04-22
TW332881B (en) 1998-06-01
DE69724516D1 (de) 2003-10-09
SG74591A1 (en) 2000-08-22
CN1122228C (zh) 2003-09-24
EP0811910B1 (en) 2003-09-03
EP0811910A2 (en) 1997-12-10
KR100528844B1 (ko) 2006-01-27
US5794049A (en) 1998-08-11

Similar Documents

Publication Publication Date Title
JP3955358B2 (ja) 低減されたラン−タイム・メモリ空間要求を有するアーキテクチャ特定コードを実行する方法及びコンピュータ・システム
JP3210606B2 (ja) 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム
KR100453723B1 (ko) 감소된런-타임메모리공간의요구를가지고실행쓰레드들을실행하기위한컴퓨터시스템및방법
CN101719073B (zh) 一种基于智能客户端的按需下载实现方法
US7356680B2 (en) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
US6807559B1 (en) System and method for applet management
US7506310B2 (en) Method and system for caching managed code for efficient execution on resource-constrained devices
JP2003157170A (ja) プログラムバイナリをデコードおよび実行する方法
JPH07121352A (ja) 演算処理装置
EP1535149A2 (en) Method and apparatus for downloading executable code in a non-disruptive manner
EP1378822A1 (en) Data processing system and data processing method, information processing device and information processing method, and storage medium
CN112783558B (zh) 一种加快Linux内核启动的自解压阶段的方法
US6256714B1 (en) Computer system with efficient memory usage for managing multiple application programs
US7114153B2 (en) Method and apparatus for continuation-passing in a virtual machine
US7191443B2 (en) Digital device, task management method and program therefor
CN113031988B (zh) 应用程序更新方法、装置、设备和存储介质
KR100583544B1 (ko) 모바일 디바이스의 메모리 확장을 위한 자원관리시스템
JP2003256219A (ja) 組込み機器におけるプログラム実行方法
CN117707551A (zh) 一种目标软件包的安装方法及装置
KR101691656B1 (ko) 연산 수단과 그를 이용한 부팅 방법
CN116932078A (zh) 一种插件首次冷启动优化方法及装置
CN116661844A (zh) 配置文件处理方法、应用程序更新方法、装置、服务器
CN112631637A (zh) 基于rtos的ota升级方法、系统、设备及存储介质
CN117472455A (zh) 基于嵌入式设备的开机方法及装置
CN118034754A (zh) 固件的升级方法、装置和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term