JP2000330805A - バーチャル・データ処理エンティティの提供方法、システムおよび記憶媒体 - Google Patents

バーチャル・データ処理エンティティの提供方法、システムおよび記憶媒体

Info

Publication number
JP2000330805A
JP2000330805A JP2000119943A JP2000119943A JP2000330805A JP 2000330805 A JP2000330805 A JP 2000330805A JP 2000119943 A JP2000119943 A JP 2000119943A JP 2000119943 A JP2000119943 A JP 2000119943A JP 2000330805 A JP2000330805 A JP 2000330805A
Authority
JP
Japan
Prior art keywords
heap
dedicated
application program
application
computer
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
JP2000119943A
Other languages
English (en)
Other versions
JP4107630B2 (ja
Inventor
D Aman Jeffrey
ジェフリー・ディー・アマン
R Borudawekaru Rajesh
ラジェシュ・アール・ボルダウェカル
Wayne Brown Michael
マイケル・ウェイン・ブラウン
Nigal Deirenbaagaa Dona
ドナ・ニガル・ディレンバーガー
B Ames Davit
デービット・ビー・エムズ
William Schmidt Donald
ドナルド・ウィリアム・シュミット
Mark Alvin Sehorne
マーク・アルヴィン・セホーン
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
Publication of JP2000330805A publication Critical patent/JP2000330805A/ja
Application granted granted Critical
Publication of JP4107630B2 publication Critical patent/JP4107630B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/44557Code layout in executable memory
    • G06F9/44563Sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 バーチャル・マシン環境において、長期間使
用でき、再使用可能なバーチャル・マシンを提供するこ
と。 【解決手段】 この環境は、共用ヒープを含み、バーチ
ャル・マシンを「作動可能」モードにするために必要な
ランタイム・クラスがそこでロード、リンク、検証、初
期設定およびコンパイルされる。それ以降のバーチャル
・マシンは起動されると、共用ヒープを共同で使用す
る。アプリケーションは、それぞれのアプリケーション
用に排他的に予約されている「専用ヒープ」内にそのオ
ブジェクトを作成する。アプリケーションの実行終了時
に、各専用ヒープが再初期設定される。静的イニシアラ
イザが、各専用ヒープの持続区域内で実行される。この
持続区域はアプリケーションの実行の間にその初期値に
リセットされる。これにより、バーチャル・マシンを終
了させる必要がなくなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バーチャル・デー
タ処理マシンに関し、詳細にはそのようなバーチャル・
データ処理マシンが呼び出し中にその状態を保持できる
ようにし、初期設定およびランタイムのコストを削減
し、ガーベッジの収集およびプロセスの終了を避け、ア
プリケーションのセキュリティ、分離および可用性の向
上をもたらす方法および装置に関する。
【0002】
【従来の技術】バーチャル・マシンは、アプリケーショ
ンをロードおよび実行する目的でプロセス内で作成され
る。周知のように、プロセスは特定のプログラムに割り
振られているリソースを実行時に分離し、複数のプログ
ラムが互いに実行を妨害しないようにする。アプリケー
ション・プログラムの実行終了時に、プロセス全体が破
壊(tear down)される。
【0003】バーチャル・マシン・アプリケーションの
増加にともない、次のアプリケーション・プログラムの
実行ができるようにバーチャル・マシンを維持すること
が望まれるようになっている。これにより、プロセスの
破壊(tear down)および起動の高いコストを節減する
ことができる。例えば、従来の技術によるコンピュータ
・システムは、バーチャル・マシンおよびプロセスを再
確立するために500万行ないし4,000万行のコー
ドの実行を必要とすることがある。長期間使用でき再使
用可能なバーチャル・マシンを使用することによって、
コンピューティング機能の使用に関して費用のかかる、
クラス・リンク、ロード、初期設定のコストも節減され
る。アプリケーションごとのバーチャル・マシン環境の
生成を避けると、システムが管理できるアプリケーショ
ンの量とスループットも増加する。
【0004】現在、バーチャル・マシンは単一プロセス
であり、アプリケーションの完了時に開始し終了する。
存在するバーチャル・マシンの状態を保持する様々な方
法が、従来の技術によって提案されてきた。提案された
1つの解決策は、バーチャル・マシン・プロセスのプー
ルを維持することである。もう1つの方法は、バーチャ
ル・マシンの状態に「チェック・ポイント」を設ける
(すなわち、マシンが設定したすべてのマシン値のコピ
ーを、後で使用できるように維持する)ことである。も
う1つの解決方法は、バーチャル・マシンのプールを維
持し、あるバーチャル・マシン内で作成されたオブジェ
クトを別のバーチャル・マシンの「ヒープ」(すなわち
メモリの割り振られた区域)に送ることである。
【0005】バーチャル・マシンのプールを維持するこ
とは、バーチャル・マシンの初期設定パスの長さを減少
させるものではない。以前に作成されたバーチャル・マ
シンにおけるアプリケーション・プログラムのスケジュ
ーリングによって、クライアント要求のパスの長さは隠
れるが、クラス・リンク、ロード、または初期設定要件
は軽減されず、また各アプリケーションごとにプロセス
を生成(bring up)および破壊(tear down)する必要
もなくならない。
【0006】バーチャル・マシンの状態にチェック・ポ
イントを設け、それを新たなプロセスに適用するには、
ポインタおよびオフセットの再調整が必要となるが、そ
れはパスの長さにおいてコストがかかり、またプロセス
が管理(command)するアドレスの範囲が保証できない
システムでは不可能となりうる。
【0007】同じバーチャル・マシン・プロセスを複数
のアプリケーションに再使用して、バーチャル・マシン
内で続いて実行される各アプリケーションのクリーン・
ヒープおよびメモリの書込み可能区域(すなわち、割り
当てられた整数値で事前定義されたフィールド)は保証
されない。
【0008】バーチャル・マシンのプールを維持し、ア
プリケーション・プログラムを正しいバーチャル・マシ
ンに「機能発送(function shipping)する」、または
正しいオブジェクトを(アプリケーションが実行されて
いる)バーチャル・マシンに送るには、キャッシュ・コ
ヒーレンシ・スキーム(cache coherency scheme)が必
要であり、余分なオーバヘッドと、おそらくはアプリケ
ーションまたはオブジェクトをパスするためのネットワ
ーク・フローが生じる。さらに、このプロシージャは、
各バーチャル・マシンのメモリ・スペースに前のアプリ
ケーションによる値が残っていないことを保証するもの
ではない。
【発明が解決しようとする課題】
【0009】したがって、本発明の一目的は、アプリケ
ーション・プログラムを実行するための、長期間使用で
き、再使用可能で、拡張可能なバーチャル・マシンを提
供することである。
【0010】本発明のもう1つの目的は、前のアプリケ
ーション・プログラムによって設定された動的または静
的なメモリの値が残らないようにするために、バーチャ
ル・マシンを破壊(tear down)し、新たなバーチャル
・マシンを生成(bring up)する必要をなくすることで
ある。
【0011】本発明のもう1つの目的は、バーチャル・
マシンを一度初期設定し、以降のバーチャル・マシン・
プロセス全体でこの初期設定状態を再使用することであ
る。
【0012】本発明の他の目的は、クラスを一度ロー
ド、リンク、検証、コンパイルし、このクラス・データ
を以降のバーチャル・マシン・プロセス全体で再使用す
ることである。
【0013】本発明の他の目的は、クラスの初期設定メ
ソッドを一度起動し、このクラス・データを以降のバー
チャル・マシン・プロセス全体で再使用することであ
る。
【0014】本発明のもう1つの目的は、長期間使用で
きるバーチャル・マシン内で複数のアプリケーションを
実行でき、各アプリケーションを相互に分離させて、バ
ーチャル・マシンの可用性を高めることである。
【0015】本発明のもう1つの目的は、バーチャル・
マシンの状態を専用と共用という別々のヒープに分離
し、これによりアプリケーションの分離、より効率的な
ガーベッジ収集およびバーチャル・マシンのランタイム
の拡張を可能にすることである。
【0016】本発明の他の目的は、バーチャル・マシン
の専用状態でガーベッジ収集の必要をなくすることであ
る。
【課題を解決するための手段】
【0017】複数のアプリケーションを通して持続性を
有することのできるバーチャル・マシンのアーキテクチ
ャは、バーチャル・マシンを「作動可能(ready)」モ
ードにするために必要なランタイム・クラスがロード、
リンク、検証、初期設定およびコンパイルされる共用ヒ
ープを含む。それ以降のバーチャル・マシンは起動さ
れ、必要なシステム・クラスがすでにロードされ初期設
定されている共用ヒープの内容を使用する。アプリケー
ション・クラスは共用ヒープ内にロードされ、それ以降
のアプリケーションは、クラスを再ロード、再リンク、
再検証、再コンパイルするコストなしに、これらのクラ
スを再使用できるようになる。アプリケーション・プロ
グラムはそのオブジェクトを「専用ヒープ」内に生成す
る。アプリケーションの実行終了時に、専用ヒープが再
初期設定される。専用ヒープ上でガーベッジ収集(すな
わち、使用されていないメモリを見つける方法)を行う
必要がない。
【0018】静的イニシアライザとは、専用ヒープの持
続区域に維持される事前定義された値(以降「静的値」
と呼ぶ)を生成するメソッドである。各アプリケーショ
ンの実行ごとに、この持続区域は共通値にリセットされ
ず、その初期値にリセットされる。この動作により、バ
ーチャル・マシン・プロセスを終了する必要がなくな
る。アプリケーションが「誤挙動」した(すなわち、ス
レッド、ファイル・ディスクリプタなど、外部プロセス
に関係するリソースを開くまたは生成する)場合には、
これらのリソースの完全なクリーンアップを確実に行う
ため、バーチャル・マシン・プロセスは終了する。しか
し、共用ヒープは削除されず、それ以降のバーチャル・
マシンによって使用することができる。以降のこれらの
バーチャル・マシンでは、ランタイム初期設定に必要な
あらゆるクラス、または前に使用されたあらゆるアプリ
ケーション・クラスの再ロード、再リンク、再コンパイ
ル、再検証のオーバヘッドが節減される。
【0019】このアーキテクチャは、クラスが一度ロー
ドされると再びロードまたは初期設定する必要がないの
で、長期間使用でき再使用可能なバーチャル・マシンが
得られるという効果を有する。
【発明の実施の形態】
【0020】本発明は、バーチャル・マシンが稼働する
ハードウェアまたはオペレーティング・システムの如何
に関わらず一貫した挙動を示す1組の関数を含むバーチ
ャル・マシンに関するものである。したがって、バーチ
ャル・マシンで実行されるアプリケーションは、オペレ
ーティング・システムまたはプラットフォームの不整
合、あるいは特有の機能を知っている必要はない。共用
関数(すなわちバーチャル・マシンのランタイム)およ
びアプリケーションによってロードされる新たな関数を
共用するために、メモリは、共用ヒープと専用ヒープに
明確に区分される。専用ヒープは1つのアプリケーショ
ンに排他的に割り振られたメモリ区域である。共用ヒー
プは、2つ以上のアプリケーションからアクセスできる
メモリ区域である。
【0021】図1は、従来の技術のバーチャル・マシン
2を示す概略図である。1つのヒープ4があり、すべて
のアプリケーションが同じプロセスで稼働する(すなわ
ち、一時に1つのアプリケーションのみがプロセスで稼
働できる)。この設計の欠点は、プロセス全体を終了し
新たなプロセスを生成(bring up)する以外に、現状で
はヒープを再初期設定するすべがない点である。プロセ
スで稼働しているどのユーザ・スレッド(例えば、プロ
シージャの現在の状態)も、他のユーザ・スレッドまた
は他のユーザ・スレッド・データを破壊したり、または
障害を起こしたりする可能性がある。ランタイム・オブ
ジェクトを割り振るための、シングル・ヒープ4の空き
スペースを回復するためにガーベッジ収集が必要とされ
る。複数のバーチャル・マシンのプロセス間での、クラ
ス・ロードおよびリンクの共用またはアモタイズ(amor
tizatin)はない。複数のバーチャル・マシンのプロセ
ス間でのバーチャル・マシン初期設定の共用またはアモ
タイズもない。
【0022】図2は、本発明を実施するためのコンピュ
ータ・システム10を示すブロック図である。中央演算
処理装置(CPU)12は、バス・システム14を介し
て、システム10の動作全体ならびにディスク・ドライ
ブ16に格納されているデータおよびプログラムとメモ
リ18に格納されているデータおよびプログラムを制御
する。オペレーティング・システム20はCPU12の
動作を制御し、以下で説明する様々なプロシージャを実
行する。
【0023】2つのアプリケーション22および24は
メモリ18内にあり、それぞれに関連するプロセス26
および28も同様である。各プロセスは、専用ヒープと
して使用するためのメモリ18の領域を割り振る。こう
して、アプリケーション22は専用ヒープ30に関連付
けられ、専用ヒープ30は、リセット可能部分32およ
び持続部分34からなる。リセット可能部分32は、ア
プリケーション特有のコードを格納するために使用さ
れ、持続部分34は静的値、すなわちアプリケーション
・プログラムを初期設定状態にするための事前定義され
た値を格納する。同様に、アプリケーション24は、リ
セット可能部分38および持続部分40を含む専用ヒー
プ36に関連付けられる。
【0024】読取り専用部分44および読取り/書込み
部分46を含む共用ヒープ42もまたメモリ18内にあ
る。読取り専用部分44は、アプリケーション特有では
ないコード(例えば、ランタイム・クラス)を格納する
ために使用され、読取り/書込み部分は、競合を避ける
ために適切なロック・プロテクションを使用して、アプ
リケーション22または24が読取りまたは書込みをす
るためのメモリの区域を提供する。専用ヒープ30はア
プリケーション22からのみアクセスでき、専用ヒープ
36はアプリケーション24からのみアクセスできる
が、共用ヒープ42はアプリケーション22および24
の両方からアクセスすることができる。
【0025】以下では、すべての必要なプログラムがメ
モリにロードされ、実行の準備ができているものと仮定
する。ただ、必要に応じて選択的にシステム10にロー
ドすることのできるこのようなプログラムをメモリ装置
47に組み込むことができることを理解されたい。
【0026】図3は、共用ヒープ42、および専用ヒー
プ30、36を有するバーチャル・マシン50および5
2を示している。ランタイム・クラスは共用ヒープ42
にロードおよびリンクされ、したがってバーチャル・マ
シン50および52がそれを使用することができる。こ
れにより、それ以降のバーチャル・マシンのために、初
期設定に必要なシステム・クラスおよびアプリケーショ
ンに必要なクラスを再ロード、再リンク、再検証、およ
び再初期設定する必要がなくなる。専用ヒープ30およ
び36はそれぞれ、バーチャル・マシンにより実行され
るアプリケーション特有のオブジェクト・インスタンス
を格納するために使用される。専用ヒープの分離によ
り、可用性が向上し、異なるアプリケーションによって
生成され使用されるデータ間の分離が可能となる。
【0027】ガーベッジ収集は、専用ヒープで起動する
必要はない。アプリケーションの実行終了時に、関連す
る専用ヒープがその初期状態にリセットされる。アプリ
ケーションの「誤挙動」により、バーチャル・マシンが
終了することもあるが(すなわち、外部リソースに関連
するもの)、共用ヒープ42は引き続きそれ以降のバー
チャル・マシンに使用可能である。これにより、長期間
使用でき再使用可能なバーチャル・マシンの機能が提供
される。
【0028】アプリケーションはさらにプロセスの境界
で相互に分離される。それらのデータが分離された専用
ヒープに格納されるのみならず、静的値およびプロセス
関連リソース(例えば、ファイル・ディスクリプタ、デ
ータベース接続)を保持する書込み可能区域も分離され
る。このプロセス分離により、可用性およびスケーラビ
リティが向上する。
【0029】図4は、バーチャル・マシン50(例)の
専用ヒープ区域30をより詳細に示している。アプリケ
ーションにより生成されるランタイム・オブジェクトは
専用ヒープ30に格納され、また静的初期設定メソッド
により生成されるオブジェクトおよび値も同様である。
専用ヒープ30は、静的初期設定メソッドにより生成さ
れるオブジェクトおよび値を保持する持続区域34と、
アプリケーション・オブジェクト(すなわち、非静的イ
ニシアライザ・コードにより生成されるオブジェクト)
が生成されるリセット可能区域32の2つの領域に分け
られる。
【0030】通常のバーチャル・マシンでは、所与のク
ラスに対する静的イニシアライザ・コードは一度だけ実
行される。静的イニシアライザ・コードは、アプリケー
ション・コードを表しているため、アプリケーション・
プログラムが行えることはほとんど行うことができる。
例えば、他のクラスのメソッドを起動すること、オブジ
ェクトを作成すること、そのクラス(また適切なアクセ
ス権限がある場合には他のクラス)の静的変数を設定す
ることができる。作業要求の実行が開始されると、静的
変数を更新し、あるいは静的変数によって固定(ancho
r)されたオブジェクト・フィールドを更新することも
できる。
【0031】アプリケーション・コードを実行している
他のバーチャル・マシン・インスタンスは、それらがそ
れ自体の専用のバーチャル・マシン内で稼働しており、
他のバーチャル・マシン・インスタンスによる影響を受
けないことを知覚する、この認識(illusion)を保持す
るために、各バーチャル・マシンには、それ自体の静的
値の「コピー」を論理的に与えなければならない。バー
チャル・マシンが静的値を更新した後は、それ自体で使
用するための別の物理的コピーを有さなければならな
い。
【0032】したがって、バーチャル・マシンが(すで
にロードされているクラスに対して)初期設定すると
き、または作業要求の実行が開始され、新たなクラスが
バーチャル・マシン・インスタンスによってロードされ
た後、別の物理的コピーが割り当てられる。したがっ
て、適切と判断されるときに更新を行うために、各バー
チャル・マシンはそれぞれの非最終的静的変数のそれ自
体のコピーを有する。しかし、そのような各静的変数の
「初期」値は、バックアップ・アレイの静的イニシアラ
イザ・ルーチンから戻されるときまず複製され、それに
より、次の作業要求は、「初期」値に設定された静的変
数から開始することができる。
【0033】整数(または類似のフルワード・タイプ)
である静的変数については、これは簡単である。しか
し、静的変数がオブジェクトまたはアレイ参照であるこ
ともあり、その場合には、オブジェクトまたはアレイ自
体に対するデータの初期値を取り込まなければならな
い。静的イニシアライザ・ルーチンによって割り振られ
たオブジェクトまたはアレイが実際に静的変数によって
参照されるかどうかを、ランタイム・ルーチンは知らな
いため、最悪のケースを想定しそれが起こるものと仮定
しなければならない。したがって、静的イニシアライザ
・ルーチンによって割り振られたすべてのオブジェクト
またはアレイは専用ヒープ30内の静的データに対する
持続部分34から割り振られる(スペースがある場
合)。
【0034】静的イニシアライザ・ルーチンの完了時
に、新たな静的データがバックアップ区域にコピーされ
る。各作業要求が完了するとき、このバックアップ区域
が、専用ヒープの持続データ区域内のオブジェクトおよ
びアレイをリフレッシュするために使用される。
【0035】しかしこれによる問題は、アプリケーショ
ン・クラスに関係する静的データのためにどれだけのス
ペースが必要とされるかを前もって知ることができない
ことである。共用ヒープ42内にロードされるシステム
・クラスについてはこれは知ることができることに留意
されたい。その解決策は、バーチャル・マシン・ランタ
イム・ルーチンのための持続記憶域34を使用して、所
与の時点でどれだけの静的データが使用されているかを
追跡することである。
【0036】タスクがその専用ヒープを最初に作成する
ときに、専用ヒープ34に割り振られた記憶域がクリア
され、その記憶域のサイズがバーチャル・マシン生成メ
ソッドに入力として渡される。作業要求によりプロセス
が終了するときは常に、サブシステムがバーチャル・マ
シンを再生成し、持続記憶域のサイズを渡す。アプリケ
ーションがリソース(例えば、スレッド、オープン・フ
ァイル、ストーレッジ)を残している可能性があるとき
には、バーチャル・マシン・ランタイム・プロセスはプ
ロセスを強制的に終了させる。
【0037】専用ヒープ30内の持続区域34により、
静的イニシアライザを再実行する必要がなくなる。専用
ヒープ30内の区域32は非持続性である。非持続区域
32は、アプリケーションの存続時間を越えては必要と
されないアプリケーション・データ・オブジェクトを保
持する。アプリケーションの終了時に、プロセス終了が
必要でない(すなわち、アプリケーションが正しく挙動
している)場合、専用ヒープ30全体が再初期設定され
る。リセット可能区域32は「クリーン」値に設定され
(例えば、=0)、持続区域34は初期静的イニシアラ
イザ値に設定される。この一般的なケースの場合、これ
によりアプリケーションの専用データのためのガーベッ
ジ収集は必要でなくなる。正しく挙動するアプリケーシ
ョンでは、専用ヒープ30の使用により、プロセス終了
の必要がなくなり、前のアプリケーションから残されて
いる値がないことが保証され、各アプリケーションごと
に静的イニシアライザを再実行する必要がなくなる。
【0038】図5は、アプリケーションのバーチャル・
マシン環境を拡張するために使用される専用ヒープ60
を、より詳細に示している。特定のアプリケーション、
プラットフォームまたは機能に適合するように修正され
たシステムまたはアプリケーション・クラスでは、専用
ヒープ60へのそれらのクラスのロード、リンク、検証
およびコンパイルにより、その1つのアプリケーション
のためのバーチャル・マシン環境が拡張される。修正さ
れたクラスを専用ヒープ60に挿入することにより、ラ
ンタイムの調整が可能になる。さらにそれにより、バー
チャル・マシンのランタイム・ルーチン(共用ヒープに
格納されている)を構成するクラスのセットを丸ごと再
構築、再ロード、再リンク、再コンパイルする必要がな
くなる。ただ、1つ(または複数)のクラスを修正し、
専用ヒープに入れるだけでよい。
【0039】図6および図7は、上記の本発明のステッ
プおよび方法を示す流れ図である。
【0040】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0041】(1)コンピュータにおいて、前記コンピ
ュータで実行される複数のアプリケーション・プログラ
ムによって再使用可能なバーチャル・データ処理エンテ
ィティを提供する方法であって、前記複数のアプリケー
ション・プログラムが使用できるように共用ヒープを割
り振るステップであって、前記共用ヒープが、前記複数
のアプリケーション・プログラムによってアクセス可能
なメモリ区域を含むステップと、前記コンピュータのラ
ンタイム・オペレーションを制御するために使用され
る、アプリケーション・プログラムに特有ではないコー
ドを、前記共用ヒープ内に格納するステップと、前記複
数のアプリケーション・プログラムの各アプリケーショ
ン・プログラムに専用ヒープを割り振るステップであっ
て、前記専用ヒープが、それぞれのアプリケーション・
プログラムが排他的に使用するために予約されるメモリ
区域を含むステップと、前記各専用ヒープが関連付けら
れている、それぞれの各アプリケーション・プログラム
のアプリケーション・プログラム特有のデータを、前記
専用ヒープのそれぞれに格納するステップと、アプリケ
ーション・プログラムの実行完了時に、関連する専用ヒ
ープに格納された値を初期状態にリセットし、後で使用
できるように前記共用ヒープの内容を保存し、それによ
り、その再リンク、再検証、再コンバイルまた再ロード
を行う必要なく、前記共用ヒープに格納されたコードを
再使用可能にするステップと、後でアプリケーション・
プログラムが使用できるように、前記バーチャル・マシ
ンを定義するデータを保存するステップとを含む方法。 (2)前記専用ヒープのそれぞれが、静的イニシアライ
ザ値を含む持続部分を含み、初期静的イニシアライザ値
をそこに入力することにより、前記リセットするステッ
プが初期状態を再生成する、上記(1)に記載の方法。 (3)前記専用ヒープのそれぞれが、初期状態が共通値
であるリセット可能部分を含む、上記(2)に記載の方
法。 (4)アプリケーション・データの分離が行えるよう、
アプリケーション・プログラム関連コードを関連する専
用ヒープに格納するように各アプリケーション・プログ
ラムを制御するステップをさらに含む、上記(1)に記
載の方法。 (5)アプリケーションの実行を成功させるために前記
コンピュータのランタイム・オペレーションの修正に必
要とされる、アプリケーション・プログラムに特有では
ないコードを、前記専用ヒープに格納するステップをさ
らに含む、上記(1)に記載の方法。 (6)前記専用ヒープのそれぞれが、初期状態が共通値
であるリセット可能部分を含み、ランタイム・オペレー
ションの修正に必要とされる、前記アプリケーション・
プログラムに特有ではないコードがそこに格納される、
上記(5)に記載の方法。 (7)コンピュータにおいて、前記コンピュータで実行
される複数のアプリケーション・プログラムによって再
使用可能なバーチャル・データ処理エンティティを提供
するための記憶媒体であって、 a)前記複数のアプリケーション・プログラムが使用で
きるよう共用ヒープを割り振るように前記コンピュータ
を制御する手段であって、前記共用ヒープが、前記複数
のアプリケーション・プログラムによってアクセス可能
なメモリ区域を含む手段と、 b)前記コンピュータのランタイム・オペレーションを
制御するために使用される、アプリケーション・プログ
ラムに特有ではないコードを、前記共用ヒープに格納す
るように前記コンピュータを制御する手段と、 c)前記複数のアプリケーション・プログラムのそれぞ
れのアプリケーション・プログラムに専用ヒープを割り
振るように前記コンピュータを制御する手段であって、
前記共用ヒープが、各アプリケーション・プログラムに
よる排他的使用のために予約されたメモリ区域を含む手
段と、 d)前記各専用ヒープが関連付けられているそれぞれの
アプリケーション・プログラムのアプリケーション・プ
ログラム特有のデータを、前記専用ヒープのそれぞれに
格納するように前記コンピュータを制御する手段と、 e)アプリケーション・プログラムの実行完了時に、関
連する専用ヒープに格納された値を初期状態にリセット
し、後で使用できるよう共用ヒープの内容を保存するよ
うに前記コンピュータを制御する手段と、 f)後でアプリケーション・プログラムが使用できるよ
う、前記バーチャル・マシンを定義するデータを保存す
るように前記コンピュータを制御する手段とを含む記憶
媒体。 (8)前記専用ヒープのそれぞれが、静的イニシアライ
ザ値を含む持続部分を含み、前記手段e)が初期静的イ
ニシアライザ値を入力することにより、初期状態を再生
成するように前記コンピュータを制御する、上記(7)
に記載の記憶媒体。 (9)前記専用ヒープのそれぞれが、初期状態が共通値
であるリセット可能部分を含む、上記(8)に記載の記
憶媒体。 (10)g)アプリケーション・データ間の分離が行え
るよう、アプリケーション・プログラム関連コードを関
連する専用ヒープに格納するように、前記コンピュータ
を制御する手段をさらに含む、上記(7)に記載の記憶
媒体。 (11)g)アプリケーションの実行を成功させるため
に、前記コンピュータのランタイム・オペレーションの
修正に必要とされる、アプリケーション・プログラムに
特有ではないコードを前記専用ヒープに格納するように
前記コンピュータを制御する手段をさらに含む、上記
(7)に記載の記憶媒体。 (12)前記専用ヒープのそれぞれが、初期状態が共通
値であるリセット可能部分を含み、ランタイム・オペレ
ーションの修正に必要とされる、前記アプリケーション
・プログラムに特有ではないコードがそこに格納され
る、上記(11)に記載の記憶媒体。 (13)コンピュータにおいて、前記コンピュータで実
行される複数のアプリケーション・プログラムによって
再使用可能なバーチャル・データ処理エンティティを提
供するシステムであって、中央演算処理装置(CP
U)、ランダム・アクセス・メモリ(RAM)、および
前記CPUの動作を制御するための、前記RAMに格納
されたコードを含み、前記複数のアプリケーション・プ
ログラムが使用できるように共用ヒープを割り振る手段
であって、前記共用ヒープが、前記複数のアプリケーシ
ョン・プログラムによってアクセス可能なメモリ区域を
含む手段と、前記コンピュータのランタイム・オペレー
ションを制御するために使用される、アプリケーション
・プログラムに特有ではないコードを、前記共用ヒープ
内に格納する手段と、前記複数のアプリケーション・プ
ログラムの各アプリケーション・プログラムに専用ヒー
プを割り振る手段であって、前記共用ヒープが、各アプ
リケーション・プログラムが排他的に使用するために予
約されたメモリ区域を含む手段と、前記各専用ヒープが
関連付けられているそれぞれのアプリケーション・プロ
グラムのアプリケーション・プログラム特有のデータ
を、前記専用ヒープのそれぞれに格納する手段と、アプ
リケーション・プログラムの実行完了時に、関連する専
用ヒープに格納された値を初期状態にリセットし、後で
使用できるように、前記共用ヒープの内容を保存する手
段と、後でアプリケーション・プログラムが使用できる
ように、前記バーチャル・マシンを定義するデータを保
存する手段とを含むシステム。 (14)前記専用ヒープのそれぞれが、静的イニシアラ
イザ値を含む持続部分を含み、初期静的イニシアライザ
値をそこに入力することにより、前記リセットする手段
が初期状態を再生成する、上記(13)に記載のシステ
ム。 (15)前記専用ヒープのそれぞれが、初期状態が共通
値であるリセット可能部分を含む、上記(14)に記載
のシステム。 (16)アプリケーション・データの分離が行えるよ
う、アプリケーション・プログラム関連コードを関連す
る専用ヒープに格納するように各アプリケーション・プ
ログラムを制御する手段をさらに含む、上記(13)に
記載のシステム。 (17)アプリケーションの実行を成功させるために前
記コンピュータのランタイム・オペレーションの修正に
必要とされる、アプリケーション・プログラムに特有で
はないコードを前記専用ヒープに格納する手段をさらに
含む、上記(13)に記載のシステム。 (18)前記専用ヒープのそれぞれが、初期状態が共通
値であるリセット可能部分を含み、ランタイム・オペレ
ーションの修正に必要とされる、前記アプリケーション
・プログラムに特有ではないコードがそこに格納され
る、上記(17)に記載のシステム。
【図面の簡単な説明】
【図1】従来の技術によるバーチャル・マシンを示す図
である。
【図2】本発明を実施するためのコンピュータ・システ
ムを示すブロック図である。
【図3】プライベートおよび共用ヒープを有する、図2
のシステムによって構成されるバーチャル・マシンを示
す図である。
【図4】クラス初期設定中に生成される値の再使用を説
明するための、専用ヒープをより詳細に示す図である。
【図5】ロード・システムまたは修正されたアプリケー
ション・クラスを説明するための、専用ヒープをより詳
細に示す図である。
【図6】本発明の動作を示す流れ図である。
【図7】本発明の動作を示す流れ図である。
【符号の説明】
10 コンピュータ・システム 12 CPU 14 バス・システム 16 ディスク・ドライブ 18 メモリ 20 オペレーティング・システム 22 アプリケーション 24 アプリケーション 26 プロセス1 28 プロセス2 30 専用ヒープ 32 リセット可能 34 持続 36 専用ヒープ 38 リセット可能 40 持続 42 共用ヒープ 44 読取り専用 46 読取り/書込み 47 メモリ装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェフリー・ディー・アマン アメリカ合衆国12603 ニューヨーク州ポ ーキープシー プレストウィック・コート 40 (72)発明者 ラジェシュ・アール・ボルダウェカル アメリカ合衆国10598 ニューヨーク州ヨ ークタウン・ハイツ ボールドウィン・ロ ード 1870 アパートメント ナンバー41 (72)発明者 マイケル・ウェイン・ブラウン アメリカ合衆国78628 テキサス州ジョー ジタウン リバーダウン・ロード 592 (72)発明者 ドナ・ニガル・ディレンバーガー アメリカ合衆国10598 ニューヨーク州ヨ ークタウン・ハイツ モーニングビュー・ ドライブ 1747 (72)発明者 デービット・ビー・エムズ アメリカ合衆国12603 ニューヨーク州ポ ーキープシー ヴァサー・ロード 29 (72)発明者 ドナルド・ウィリアム・シュミット アメリカ合衆国12484 ニューヨーク州ス トーン・リッジ ヴィンセント・レーン 77 (72)発明者 マーク・アルヴィン・セホーン アメリカ合衆国78681 テキサス州ラウン ド・ロック マウス・トラップ・ドライブ 16808

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】コンピュータにおいて、前記コンピュータ
    で実行される複数のアプリケーション・プログラムによ
    って再使用可能なバーチャル・データ処理エンティティ
    を提供する方法であって、 前記複数のアプリケーション・プログラムが使用できる
    ように共用ヒープを割り振るステップであって、前記共
    用ヒープが、前記複数のアプリケーション・プログラム
    によってアクセス可能なメモリ区域を含むステップと、 前記コンピュータのランタイム・オペレーションを制御
    するために使用される、アプリケーション・プログラム
    に特有ではないコードを、前記共用ヒープ内に格納する
    ステップと、 前記複数のアプリケーション・プログラムの各アプリケ
    ーション・プログラムに専用ヒープを割り振るステップ
    であって、前記専用ヒープが、それぞれのアプリケーシ
    ョン・プログラムが排他的に使用するために予約される
    メモリ区域を含むステップと、 前記各専用ヒープが関連付けられている、それぞれの各
    アプリケーション・プログラムのアプリケーション・プ
    ログラム特有のデータを、前記専用ヒープのそれぞれに
    格納するステップと、 アプリケーション・プログラムの実行完了時に、関連す
    る専用ヒープに格納された値を初期状態にリセットし、
    後で使用できるように前記共用ヒープの内容を保存し、
    それにより、その再リンク、再検証、再コンバイルまた
    再ロードを行う必要なく、前記共用ヒープに格納された
    コードを再使用可能にするステップと、 後でアプリケーション・プログラムが使用できるよう
    に、前記バーチャル・マシンを定義するデータを保存す
    るステップとを含む方法。
  2. 【請求項2】前記専用ヒープのそれぞれが、静的イニシ
    アライザ値を含む持続部分を含み、初期静的イニシアラ
    イザ値をそこに入力することにより、前記リセットする
    ステップが初期状態を再生成する、請求項1に記載の方
    法。
  3. 【請求項3】前記専用ヒープのそれぞれが、初期状態が
    共通値であるリセット可能部分を含む、請求項2に記載
    の方法。
  4. 【請求項4】アプリケーション・データの分離が行える
    よう、アプリケーション・プログラム関連コードを関連
    する専用ヒープに格納するように各アプリケーション・
    プログラムを制御するステップをさらに含む、請求項1
    に記載の方法。
  5. 【請求項5】アプリケーションの実行を成功させるため
    に前記コンピュータのランタイム・オペレーションの修
    正に必要とされる、アプリケーション・プログラムに特
    有ではないコードを、前記専用ヒープに格納するステッ
    プをさらに含む、請求項1に記載の方法。
  6. 【請求項6】前記専用ヒープのそれぞれが、初期状態が
    共通値であるリセット可能部分を含み、ランタイム・オ
    ペレーションの修正に必要とされる、前記アプリケーシ
    ョン・プログラムに特有ではないコードがそこに格納さ
    れる、請求項5に記載の方法。
  7. 【請求項7】コンピュータにおいて、前記コンピュータ
    で実行される複数のアプリケーション・プログラムによ
    って再使用可能なバーチャル・データ処理エンティティ
    を提供するための記憶媒体であって、 a)前記複数のアプリケーション・プログラムが使用で
    きるよう共用ヒープを割り振るように前記コンピュータ
    を制御する手段であって、前記共用ヒープが、前記複数
    のアプリケーション・プログラムによってアクセス可能
    なメモリ区域を含む手段と、 b)前記コンピュータのランタイム・オペレーションを
    制御するために使用される、アプリケーション・プログ
    ラムに特有ではないコードを、前記共用ヒープに格納す
    るように前記コンピュータを制御する手段と、 c)前記複数のアプリケーション・プログラムのそれぞ
    れのアプリケーション・プログラムに専用ヒープを割り
    振るように前記コンピュータを制御する手段であって、
    前記共用ヒープが、各アプリケーション・プログラムに
    よる排他的使用のために予約されたメモリ区域を含む手
    段と、 d)前記各専用ヒープが関連付けられているそれぞれの
    アプリケーション・プログラムのアプリケーション・プ
    ログラム特有のデータを、前記専用ヒープのそれぞれに
    格納するように前記コンピュータを制御する手段と、 e)アプリケーション・プログラムの実行完了時に、関
    連する専用ヒープに格納された値を初期状態にリセット
    し、後で使用できるよう共用ヒープの内容を保存するよ
    うに前記コンピュータを制御する手段と、 f)後でアプリケーション・プログラムが使用できるよ
    う、前記バーチャル・マシンを定義するデータを保存す
    るように前記コンピュータを制御する手段とを含む記憶
    媒体。
  8. 【請求項8】前記専用ヒープのそれぞれが、静的イニシ
    アライザ値を含む持続部分を含み、前記手段e)が初期
    静的イニシアライザ値を入力することにより、初期状態
    を再生成するように前記コンピュータを制御する、請求
    項7に記載の記憶媒体。
  9. 【請求項9】前記専用ヒープのそれぞれが、初期状態が
    共通値であるリセット可能部分を含む、請求項8に記載
    の記憶媒体。
  10. 【請求項10】g)アプリケーション・データ間の分離
    が行えるよう、アプリケーション・プログラム関連コー
    ドを関連する専用ヒープに格納するように、前記コンピ
    ュータを制御する手段をさらに含む、請求項7に記載の
    記憶媒体。
  11. 【請求項11】g)アプリケーションの実行を成功させ
    るために、前記コンピュータのランタイム・オペレーシ
    ョンの修正に必要とされる、アプリケーション・プログ
    ラムに特有ではないコードを前記専用ヒープに格納する
    ように前記コンピュータを制御する手段をさらに含む、
    請求項7に記載の記憶媒体。
  12. 【請求項12】前記専用ヒープのそれぞれが、初期状態
    が共通値であるリセット可能部分を含み、ランタイム・
    オペレーションの修正に必要とされる、前記アプリケー
    ション・プログラムに特有ではないコードがそこに格納
    される、請求項11に記載の記憶媒体。
  13. 【請求項13】コンピュータにおいて、前記コンピュー
    タで実行される複数のアプリケーション・プログラムに
    よって再使用可能なバーチャル・データ処理エンティテ
    ィを提供するシステムであって、中央演算処理装置(C
    PU)、ランダム・アクセス・メモリ(RAM)、およ
    び前記CPUの動作を制御するための、前記RAMに格
    納されたコードを含み、 前記複数のアプリケーション・プログラムが使用できる
    ように共用ヒープを割り振る手段であって、前記共用ヒ
    ープが、前記複数のアプリケーション・プログラムによ
    ってアクセス可能なメモリ区域を含む手段と、 前記コンピュータのランタイム・オペレーションを制御
    するために使用される、アプリケーション・プログラム
    に特有ではないコードを、前記共用ヒープ内に格納する
    手段と、 前記複数のアプリケーション・プログラムの各アプリケ
    ーション・プログラムに専用ヒープを割り振る手段であ
    って、前記共用ヒープが、各アプリケーション・プログ
    ラムが排他的に使用するために予約されたメモリ区域を
    含む手段と、 前記各専用ヒープが関連付けられているそれぞれのアプ
    リケーション・プログラムのアプリケーション・プログ
    ラム特有のデータを、前記専用ヒープのそれぞれに格納
    する手段と、 アプリケーション・プログラムの実行完了時に、関連す
    る専用ヒープに格納された値を初期状態にリセットし、
    後で使用できるように、前記共用ヒープの内容を保存す
    る手段と、 後でアプリケーション・プログラムが使用できるよう
    に、前記バーチャル・マシンを定義するデータを保存す
    る手段とを含むシステム。
  14. 【請求項14】前記専用ヒープのそれぞれが、静的イニ
    シアライザ値を含む持続部分を含み、初期静的イニシア
    ライザ値をそこに入力することにより、前記リセットす
    る手段が初期状態を再生成する、請求項13に記載のシ
    ステム。
  15. 【請求項15】前記専用ヒープのそれぞれが、初期状態
    が共通値であるリセット可能部分を含む、請求項14に
    記載のシステム。
  16. 【請求項16】アプリケーション・データの分離が行え
    るよう、アプリケーション・プログラム関連コードを関
    連する専用ヒープに格納するように各アプリケーション
    ・プログラムを制御する手段をさらに含む、請求項13
    に記載のシステム。
  17. 【請求項17】アプリケーションの実行を成功させるた
    めに前記コンピュータのランタイム・オペレーションの
    修正に必要とされる、アプリケーション・プログラムに
    特有ではないコードを前記専用ヒープに格納する手段を
    さらに含む、請求項13に記載のシステム。
  18. 【請求項18】前記専用ヒープのそれぞれが、初期状態
    が共通値であるリセット可能部分を含み、ランタイム・
    オペレーションの修正に必要とされる、前記アプリケー
    ション・プログラムに特有ではないコードがそこに格納
    される、請求項17に記載のシステム。
JP2000119943A 1999-04-30 2000-04-20 バーチャル・データ処理エンティティの提供方法、システムおよび記憶媒体 Expired - Lifetime JP4107630B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/304,160 US6694346B1 (en) 1999-04-30 1999-04-30 Long running, reusable, extendible, virtual machine
US09/304160 1999-04-30

Publications (2)

Publication Number Publication Date
JP2000330805A true JP2000330805A (ja) 2000-11-30
JP4107630B2 JP4107630B2 (ja) 2008-06-25

Family

ID=23175333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000119943A Expired - Lifetime JP4107630B2 (ja) 1999-04-30 2000-04-20 バーチャル・データ処理エンティティの提供方法、システムおよび記憶媒体

Country Status (3)

Country Link
US (1) US6694346B1 (ja)
JP (1) JP4107630B2 (ja)
KR (1) KR100368347B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543236A (ja) * 2006-07-14 2009-12-03 インテル コーポレイション マルチタスク仮想マシンのためのヒープ組織
JP2013058270A (ja) * 2012-12-28 2013-03-28 Intel Corp マルチタスク仮想マシンのためのヒープ組織

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134123B1 (en) * 2000-05-31 2006-11-07 International Business Machines Corporation Virtual machine with reset operation
US6957237B1 (en) * 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
GB0027045D0 (en) * 2000-11-06 2000-12-20 Ibm Computer system with heap reset
US7246135B2 (en) * 2001-01-08 2007-07-17 Intel Corporation Sharing classes between programs
US6978447B1 (en) * 2001-02-28 2005-12-20 Cisco Technology, Inc. Method and system for efficiently interpreting a computer program
GB0115965D0 (en) * 2001-06-29 2001-08-22 Ibm Computer system for detecting object updates
US7093086B1 (en) 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
US7603670B1 (en) 2002-03-28 2009-10-13 Symantec Operating Corporation Virtual machine transfer between computer systems
US7213246B1 (en) 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US6757778B1 (en) 2002-05-07 2004-06-29 Veritas Operating Corporation Storage management system
JP3857259B2 (ja) * 2002-08-14 2006-12-13 日本電信電話株式会社 オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体
US20040123289A1 (en) * 2002-12-20 2004-06-24 Drews Paul C Multi-processing inside a virtual machine
US7051324B2 (en) * 2003-01-16 2006-05-23 International Business Machines Corporation Externalized classloader information for application servers
US7082509B2 (en) * 2003-02-06 2006-07-25 Intel Corporation Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7404067B2 (en) * 2003-09-08 2008-07-22 Intel Corporation Method and apparatus for efficient utilization for prescient instruction prefetch
US7246200B1 (en) 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US7810092B1 (en) 2004-03-02 2010-10-05 Symantec Operating Corporation Central administration and maintenance of workstations using virtual machines, network filesystems, and replication
US20060179428A1 (en) * 2005-02-10 2006-08-10 Kiyokuni Kawachiya Method and system for efficiently starting a JAVA application
DE102005008796A1 (de) * 2005-02-25 2006-08-31 Siemens Ag Mobiles Endgerät für eine Mehrzahl von Applikationen, die verschiedene virtuelle Maschinen voraussetzen und Verfahren zum Aufrufen einer Mehrzahl von Applikationen
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
US7962707B2 (en) * 2005-07-06 2011-06-14 Honeywell International Inc. Apparatus and method for deterministic garbage collection of a heap memory
US7827373B2 (en) * 2005-10-31 2010-11-02 Honeywell International Inc. System and method for managing a short-term heap memory
US8255922B1 (en) * 2006-01-09 2012-08-28 Oracle America, Inc. Mechanism for enabling multiple processes to share physical memory
WO2008017204A1 (en) * 2006-08-01 2008-02-14 Intel Corporation Heap manager for a multitasking virtual machine
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US8046540B2 (en) * 2007-04-26 2011-10-25 Sap Ag Shared closures on demand
US8140978B2 (en) * 2008-01-16 2012-03-20 International Business Machines Corporation System and method for providing information in a virtual world
US8577845B2 (en) * 2008-06-13 2013-11-05 Symantec Operating Corporation Remote, granular restore from full virtual machine backup
US9286080B2 (en) * 2008-07-02 2016-03-15 Hewlett-Packard Development Company, L.P. Memory management for hypervisor loading
US20100011357A1 (en) * 2008-07-13 2010-01-14 International Business Machines Corporation System and method for garbage collection in a virtual machine
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
US7904914B2 (en) * 2008-09-30 2011-03-08 Microsoft Corporation On-the-fly replacement of physical hardware with emulation
TW201027378A (en) * 2009-01-08 2010-07-16 Realtek Semiconductor Corp Virtual platform and related simulation method
US8527761B2 (en) * 2010-05-28 2013-09-03 Dell Products, Lp System and method for fuse enablement of a secure client hosted virtualization in an information handling system
US9075635B1 (en) * 2010-07-26 2015-07-07 Symantec Corporation Systems and methods for merging virtual layers
US9858133B2 (en) 2010-09-20 2018-01-02 Netflix, Inc. Techniques for assessing the resiliency of a distribution computing service provided by a collection of interacting servers
US8495630B2 (en) 2010-11-03 2013-07-23 International Business Machines Corporation Transferring objects between virtual machines
CN102541619B (zh) 2010-12-23 2015-09-16 国际商业机器公司 虚拟机管理装置和方法
US9317324B2 (en) * 2010-12-29 2016-04-19 Apple Inc. Automatic service lifecycle management
KR101894752B1 (ko) 2011-10-27 2018-09-05 삼성전자주식회사 가상 아키텍쳐 생성 장치, 런타임 시스템, 멀티 코어 시스템 및 그 동작 방법
US9813904B2 (en) 2013-08-30 2017-11-07 Dell Products, Lp System and method of secure logon for shared devices
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9805479B2 (en) 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9596280B2 (en) 2013-11-11 2017-03-14 Amazon Technologies, Inc. Multiple stream content presentation
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
US9578074B2 (en) 2013-11-11 2017-02-21 Amazon Technologies, Inc. Adaptive content transmission
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9471360B2 (en) 2014-03-14 2016-10-18 International Business Machines Corporation Returning terminated virtual machines to a pool of available virtual machines to be reused thereby optimizing cloud resource usage and workload deployment time
US10303782B1 (en) 2014-12-29 2019-05-28 Veritas Technologies Llc Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk
DE102015015735A1 (de) * 2015-12-01 2017-06-01 Giesecke & Devrient Gmbh Teilnehmeridentitätsmodul mit mehreren Profilen und Heap-Speicher

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247681A (en) * 1990-12-18 1993-09-21 International Business Machines Corporation Dynamic link libraries system and method
US5375241A (en) * 1992-12-21 1994-12-20 Microsoft Corporation Method and system for dynamic-link library
US6363409B1 (en) * 1995-04-24 2002-03-26 Microsoft Corporation Automatic client/server translation and execution of non-native applications
US6167535A (en) * 1997-12-09 2000-12-26 Sun Microsystems, Inc. Object heap analysis techniques for discovering memory leaks and other run-time information
US5999732A (en) * 1998-03-23 1999-12-07 Sun Microsystems, Inc. Techniques for reducing the cost of dynamic class initialization checks in compiled code
US6332218B1 (en) * 1998-06-30 2001-12-18 Sun Microsystems, Inc. System and method for automatically instantiating classes in a virtual machine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543236A (ja) * 2006-07-14 2009-12-03 インテル コーポレイション マルチタスク仮想マシンのためのヒープ組織
JP2013058270A (ja) * 2012-12-28 2013-03-28 Intel Corp マルチタスク仮想マシンのためのヒープ組織

Also Published As

Publication number Publication date
US6694346B1 (en) 2004-02-17
JP4107630B2 (ja) 2008-06-25
KR100368347B1 (ko) 2003-01-24
KR20010007028A (ko) 2001-01-26

Similar Documents

Publication Publication Date Title
JP2000330805A (ja) バーチャル・データ処理エンティティの提供方法、システムおよび記憶媒体
JP4783471B2 (ja) クラスが有するメソッドを呼出して実行するコンピュータ・システムが行う方法
US6970991B2 (en) Computer system with virtual memory and paging mechanism
US7484067B1 (en) System and method for ensuring non-interfering garbage collection in a real time multi-threaded environment
US9213562B2 (en) Garbage collection safepoint system using non-blocking asynchronous I/O call to copy data when the garbage collection safepoint is not in progress or is completed
US7934204B2 (en) Partitioning code in program code conversion
Geoffray et al. I-JVM: a Java virtual machine for component isolation in OSGi
US20090024820A1 (en) Memory Allocation For Crash Dump
JPH04268927A (ja) メモリ管理方法
CN107807839B (zh) 一种修改虚拟机内存数据的方法、装置及电子设备
KR20070083569A (ko) 운영체제
JPH05204656A (ja) スレッド固有データ保持方法
US20100058344A1 (en) Accelerating a quiescence process of transactional memory
US20100057740A1 (en) Accelerating a quiescence process of transactional memory
US6094664A (en) Method and apparatus for optimizing the null pointer exception in an object-oriented programming environment with statically typed variables
CA2503184A1 (en) Transitional resolution in a just in time environment
CN110968361A (zh) 隔离沙箱加载方法
Kawachiya et al. Cloneable JVM: a new approach to start isolated java applications faster
JP2005063435A (ja) ソフトウェアフォールトを封じ込める方法およびシステム
EP2080115A1 (en) Automatic native generation
CN114090171A (zh) 虚拟机创建方法、迁移方法及计算机可读介质
US6275985B1 (en) Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support
KR20060035077A (ko) 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법
US5974249A (en) Zero footprint method and apparatus for expanding allocated memory space of a process using a virtual memory area
JP4150518B2 (ja) 未使用のプログラムセクションの不要データを収集するための方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040426

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040426

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20040426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041228

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041228

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050209

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071121

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080218

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20080218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080327

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080331

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

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4107630

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120411

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140411

Year of fee payment: 6

EXPY Cancellation because of completion of term