JP2006018834A - 仮想マシンに配置された再配置可能な実行ファイルをロードするための方法および装置 - Google Patents
仮想マシンに配置された再配置可能な実行ファイルをロードするための方法および装置 Download PDFInfo
- Publication number
- JP2006018834A JP2006018834A JP2005189027A JP2005189027A JP2006018834A JP 2006018834 A JP2006018834 A JP 2006018834A JP 2005189027 A JP2005189027 A JP 2005189027A JP 2005189027 A JP2005189027 A JP 2005189027A JP 2006018834 A JP2006018834 A JP 2006018834A
- Authority
- JP
- Japan
- Prior art keywords
- executable file
- place executable
- pointer
- place
- internal
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】 本発明のシステム(100)は、インプレース実行可能なファイル(104)を仮想マシン(102)にロードすることにより作動する。仮想マシンにおいて、ファイル(104)は、ファイル104内でメモリ位置を示す内部ポインタおよびインプレース実行可能なファイルがロードされるように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスを含む。本システムはファイル(104)が実際にロードされる実際のメモリアドレスを決定する。実際のメモリアドレスおよびターゲットメモリアドレスが異なる場合、本システムはオフセット値を生成し、オフセット値によってファイル(104)内のそれぞれの内部ポインタを調整し、内部ポインタがファイル(104)内の意図する位置を示すことを可能にする。
【選択図】 図1
Description
インプレース実行可能なファイルを仮想マシンにロードする方法であって、
該仮想マシンに該インプレース実行可能なファイルをロードすることであって、該インプレース実行可能なファイルは、該インプレース実行可能なファイル内のメモリ位置を示す内部ポインタと、該インプレース実行可能なファイルがロードするように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスとを含む、ことと、
該インプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定することと、
該実際のメモリアドレスおよび該ターゲットメモリアドレスが異なる場合に、
該実際のメモリアドレスと該ターゲットメモリアドレスとの違いであるオフセット値を生成することと、該オフセット値によって該インプレース実行可能なファイル内のそれぞれの内部ポインタを調整して、該内部ポインタが該インプレース実行可能なファイル内の意図された位置を示すようにすることと
を包含する、方法。
上記ターゲットメモリアドレスが、上記インプレース実行可能なファイルのヘッダに設置される、項目1に記載の方法。
上記インプレース実行可能なファイルが、該インプレース実行可能なファイル内で内部ポインタの位置を識別する再配置テーブルを含む、項目1に記載の方法。
上記再配置テーブルをロードすることは、
上記配置可能ファイルのヘッダから該再配置テーブルを示すポインタを取り出すことと、
該再配置テーブルにアクセスするために該ポインタを用いることと
を包含する、項目3に記載の方法。
それぞれの内部ポインタを調整した後に、上記方法は、上記再配置テーブルに占められる上記メモリを再利用することをさらに包含する、項目3に記載の方法。
それぞれの内部ポインタを調整した後に、上記方法は、
上記インプレース実行可能なファイルを上記再配置テーブルを有さない記憶媒体に(調整された内部ポインタを用いて)書き戻すことと、
再配置がすでに行われたことを示す該インプレース実行可能なファイルヘッダに再配置ビットを設置することとをさらに包含し、
それによって上記配置可能ファイルのその後の実行が、上記記憶媒体からの(調整されたポインタを有する)該インプレース実行可能なファイルにアクセスでき、それによって該ポインタの調整を回避できる、項目3に記載の方法。
上記再配置テーブルがオフセット範囲のリストとして構成され、それぞれのオフセット値が該インプレース実行可能なファイル内の内部ポインタの連続セットの開始アドレスおよび終了アドレスを含む、項目3の方法。
上記再配置テーブルがビットマップとして構成され、それぞれのビットが該インプレース実行可能なファイルにおける1つのワードに対応し、1つのセットビットが該ワードが内部ポインタを含むことを示す、項目3に記載の方法。
上記ビットマップが圧縮されてメモリ消費をさらに減少する、項目8に記載の方法。
上記再配置テーブルがパックリストとして構成され、該パックリストにおけるそれぞれのエントリは、
上記配置可能ファイルにおける内部ポインタの範囲の開始オフセット(先のエントリの開始オフセットに関連する)と、
該開始オフセットで始まる連続して設置された内部ポインタの数と
を含む、項目3に記載の方法。
上記仮想マシンがプラットフォームから独立した仮想マシンである、項目1に記載の方法。
上記仮想マシンがJava(登録商標)仮想マシンである、項目11に記載の方法。
コンピュータによって実行される場合、インプレース実行可能なファイルを仮想マシンにロードする方法をコンピュータに実行させる命令を格納するコンピュータ読み取り可能記憶媒体であって、該方法は、
該仮想マシンに該インプレース実行可能なファイルをロードすることとであって、該インプレース実行可能なファイルは、該インプレース実行可能なファイル内のメモリ位置を示す内部ポインタと、該インプレース実行可能なファイルがロードするように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスとを含む、ことと、
該インプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定することと、
該実際のメモリアドレスと該ターゲットメモリアドレスとが異なる場合に、該実際のメモリアドレスと該ターゲットメモリアドレスとの違いであるオフセット値を生成することと、該オフセット値によって該インプレース実行可能なファイル内のそれぞれの内部ポインタを調整して該内部ポインタが該インプレース実行可能なファイル内の意図された位置を示すようにすることと
を包含する、コンピュータ読み取り可能記憶媒体。
上記ターゲットメモリアドレスが上記インプレース実行可能なファイルのヘッダに設置される、項目13に記載のコンピュータ読み取り可能な記憶媒体。
上記インプレース実行可能なファイルが、該インプレース実行可能なファイル内で内部ポインタの位置を識別する再配置テーブルを含む、項目13に記載のコンピュータ読み取り可能な記憶媒体。
上記再配置テーブルが、
上記インプレース実行可能なファイルヘッダから該再配置テーブルを示すポインタを取り出すことと、
該再配置テーブルにアクセスするために該ポインタを用いることと
を含む、項目15に記載のコンピュータ読み取り可能な記憶媒体。
それぞれの内部ポインタを調整した後に、上記方法は上記再配置テーブルに占められる上記メモリを再要求することをさらに包含する、項目15に記載のコンピュータ読み取り可能な記憶媒体。
それぞれの内部ポインタを調整した後に、上記方法は、
上記インプレース実行可能なファイルを上記再配置テーブルを有さない記憶媒体に(調整された内部ポインタを用いて)書き戻すことと、
再配置がすでに行われたことを示す該インプレース実行可能なファイルヘッダに再配置ビットを設置することとをさらに包含し、
それによって上記配置可能ファイルのその後の実行が、上記記憶媒体からの(調整されたポインタを有する)該インプレース実行可能なファイルにアクセスでき、それによって該ポインタの調整を回避できる、項目15に記載のコンピュータ読み取り可能な記憶媒体。
上記再配置テーブルがオフセット範囲のリストとして構成され、それぞれのオフセット値が該インプレース実行可能なファイル内の内部ポインタの連続セットの開始アドレスおよび終了アドレスを含む、項目15に記載のコンピュータ読み取り可能な記憶媒体。
上記再配置テーブルがビットマップとして構成され、それぞれのビットが該インプレース実行可能なファイルにおける1つのワードに対応し、1つのセットビットが該ワードが内部ポインタを含むことを示す、項目15に記載のコンピュータ読み取り可能な記憶媒体。
上記ビットマップが圧縮されてメモリ消費をさらに減少する、項目20に記載のコンピュータ読み取り可能な記憶媒体。
上記再配置テーブルがパックリストとして構成され、該パックリストにおけるそれぞれのエントリは、
上記配置可能ファイルにおける内部ポインタの範囲の開始オフセット(先のエントリの開始オフセットに関連する)と、
該開始オフセットで始まる連続して設置された内部ポインタの数と
を含む、項目15に記載のコンピュータ読み取り可能な記憶媒体。
上記仮想マシンがプラットフォームから独立した仮想マシンである、項目13に記載のコンピュータ読み取り可能な記憶媒体。
上記仮想マシンがJava(登録商標)仮想マシンである、項目23に記載のコンピュータ読み取り可能な記憶媒体。
インプレース実行可能なファイルを仮想マシンにロードする装置であって、
該仮想マシンに該インプレース実行可能なファイルをロードするように構成されたロードメカニズムであって、該インプレース実行可能なファイルは、該インプレース実行可能なファイル内のメモリ位置を示す内部ポインタと、該インプレース実行可能なファイルがロードするように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスとを含む、ロードメカニズムと、
該インプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定するように構成された決定メカニズムと、
該実際のメモリアドレスと該ターゲットメモリアドレスとが異なる場合に、該実際のメモリアドレスと該ターゲットメモリアドレスとの違いであるオフセット値を生成するように構成されたオフセットメカニズムと、
該実際のメモリアドレスと該ターゲットメモリアドレスとが異なる場合に、該オフセット値によって該インプレース実行可能なファイル内のそれぞれの内部ポインタを調整して該内部ポインタが該インプレース実行可能なファイル内の意図された位置を示すようにするように構成された調整メカニズムと
を備える、装置。
上記ターゲットメモリアドレスが上記インプレース実行可能なファイルのヘッダに設置される、項目25に記載の装置。
上記インプレース実行可能なファイルが、該インプレース実行可能なファイル内で内部ポインタの位置を識別する再配置テーブルを含む、項目25に記載の装置。
上記インプレース実行可能なファイルヘッダから該再配置テーブルを示すポインタを取り出すように構成された取り出す検索メカニズムと、
該再配置テーブルにアクセスするために該ポインタを用いるように構成されたアクセスメカニズムと
をさらに備える、項目27に記載の装置。
それぞれの内部ポインタを調整したあとに、上記再配置テーブルに占められる上記メモリを再要求するように構成されるメモリ再要求メカニズムをさらに備える、項目27に記載の装置。
それぞれの内部ポインタを調整した後に、上記インプレース実行可能なファイルを上記再配置テーブルを有さない記憶媒体に(調整された内部ポインタを用いて)書き戻すように構成された通達メカニズムと、
それぞれの内部ポインタを調整した後に、再配置がすでに行われたことを示す該インプレース実行可能なファイルヘッダに再配置ビットを設置するように構成されたビット設置メカニズムとをさらに備え、
それによって上記配置可能ファイルのその後の実行の間、上記装置が上記記憶媒体からの(調整されたポインタを有する)該インプレース実行可能なファイルにアクセスでき、それによって該ポインタの調整を回避できる、項目27に記載の装置。
上記再配置テーブルがオフセット範囲のリストとして構成され、それぞれおのオフセット値が該インプレース実行可能なファイル内の内部ポインタの連続セットの開始アドレスおよび終了アドレスを含む、項目27に記載の装置。
上記再配置テーブルがビットマップとして構成され、それぞれのビットが該インプレース実行可能なファイルにおける1つのワードに対応し、1つのセットビットが該ワードが内部ポインタを含むことを示す、項目27に記載の装置。
上記ビットマップが圧縮されてメモリ消費をさらに減少する、項目32に記載の装置。
上記再配置テーブルがパックリストとして構成され、該パックリストにおけるそれぞれのエントリは、
上記配置可能ファイルにおける内部ポインタの範囲の開始オフセット(先のエントリの開始オフセットに関連する)と、
該開始オフセットで始まる連続して設置された内部ポインタの数と
を含む、項目27に記載の装置。
上記仮想マシンがプラットフォームから独立した仮想マシンである、項目25に記載の装置。
上記仮想マシンがJava(登録商標)仮想マシンである、項目35に記載の装置。
(要約)
本発明の一実施形態はインプレース実行可能なファイルの仮想マシンへのロードを促進するシステムを提供する。このシステムはインプレース実行可能なファイルを仮想マシンにロードすることにより作動する。仮想マシンにおいて、インプレース実行可能なファイルは、インプレース実行可能なファイル内でメモリ位置を示す内部ポインタおよびインプレース実行可能なファイルがロードされるように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスを含む。それから、本システムはインプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定する。実際のメモリアドレスおよびターゲットメモリアドレスが異なる場合、本システムはオフセット値を発生する。オフセット値は実際のメモリアドレスとターゲットメモリアドレスとの差である。最後に、本システムは、オフセット値によってインプレース実行可能なファイル内のそれぞれの内部ポインタを調整し、内部ポインタがインプレース実行可能なファイル内の意図する位置を示すことができるようにする。
図1は本発明の実施形態に従ったメモリ制限計算装置100を示す。メモリ制限計算装置100はいかなるタイプの計算装置をも含むが、それらに限定されない。計算装置は携帯電話、マイクロプロセッサを基にしたコンピュータシステム、デジタル信号プロセッサ、携帯計算装置、個人用システム手帳、装置制御器、装置内の計算エンジンを含む。メモリ制限計算装置100はJava(登録商標)仮想マシン(JVM)102を含む。Java(登録商標)仮想マシン(JVM)102はインプレース実行可能なファイル(IPEF)104の実行をサポートする。(JAVA(登録商標)、JVM、JAVA VIRTUAL MACHINEという用語はカリフォルニア州サンタクレアにあるSUN Microsystems,Inc.の商標である。)JVM102はいかなるタイプのプラットフォームから独立した仮想マシンであり得るが、Java(登録商標)仮想マシンに限定される意図はないことを留意すべきである。
図2は本発明の実施形態に従ったインプレース実行可能なファイル104を示す。IPEF104は、ヘッダ202、再配置テーブル203、複数の内部ポインタ(IP)204〜212を含む。従来のIPEFにおいて、IPEF内の位置に対するすべての参照はポインタではなくオフセットに基づいている。オフセットを用いることで、IPEFの内容は位置から独立し、IPEFはメモリのいかなる場所にも柔軟にロードされる(そして必要ならば後に別のメモリ位置に再配置される)。
図3は、本発明の実施形態に従ったIPEF104をロードするプロセスを示すフローチャートを表す。システムは、IPEF104をJVM102(ステップ302)にロードする命令を受けることから開始する。この命令に応答して、システムはIPEF104をJVM102にロードして、IPEF104がロードされた(ステップ304)実際のメモリ位置を決定する。システムはまた、IPEF104がロードされるために構成されるターゲットメモリ位置を獲得するためにヘッダ202を検査する(ステップ306)。次に、システムは実際のメモリ位置とターゲットメモリ位置を比較する(ステップ308)。ターゲットメモリ位置が実際のメモリ位置と同じ場合、システムはIPEF104を実行する。
102 Java(登録商標)仮想マシン(JVM)
104 インプレース実行可能なファイル
202 ヘッダ
203 再配置テーブル
Claims (36)
- インプレース実行可能なファイルを仮想マシンにロードする方法であって、
該仮想マシンに該インプレース実行可能なファイルをロードすることであって、該インプレース実行可能なファイルは、該インプレース実行可能なファイル内のメモリ位置を示す内部ポインタと、該インプレース実行可能なファイルがロードするように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスとを含む、ことと、
該インプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定することと、
該実際のメモリアドレスおよび該ターゲットメモリアドレスが異なる場合に、
該実際のメモリアドレスと該ターゲットメモリアドレスとの違いであるオフセット値を生成することと、該オフセット値によって該インプレース実行可能なファイル内のそれぞれの内部ポインタを調整して、該内部ポインタが該インプレース実行可能なファイル内の意図された位置を示すようにすることと
を包含する、方法。 - 前記ターゲットメモリアドレスが、前記インプレース実行可能なファイルのヘッダに設置される、請求項1に記載の方法。
- 前記インプレース実行可能なファイルが、該インプレース実行可能なファイル内で内部ポインタの位置を識別する再配置テーブルを含む、請求項1に記載の方法。
- 前記再配置テーブルをロードすることは、
前記配置可能ファイルのヘッダから該再配置テーブルを示すポインタを取り出すことと、
該再配置テーブルにアクセスするために該ポインタを用いることと
を包含する、請求項3に記載の方法。 - それぞれの内部ポインタを調整した後に、前記方法は、前記再配置テーブルに占められる前記メモリを再利用することをさらに包含する、請求項3に記載の方法。
- それぞれの内部ポインタを調整した後に、前記方法は、
前記インプレース実行可能なファイルを前記再配置テーブルを有さない記憶媒体に(調整された内部ポインタを用いて)書き戻すことと、
再配置がすでに行われたことを示す該インプレース実行可能なファイルヘッダに再配置ビットを設置することとをさらに包含し、
それによって前記配置可能ファイルのその後の実行が、前記記憶媒体からの(調整されたポインタを有する)該インプレース実行可能なファイルにアクセスでき、それによって該ポインタの調整を回避できる、請求項3に記載の方法。 - 前記再配置テーブルがオフセット範囲のリストとして構成され、それぞれのオフセット値が該インプレース実行可能なファイル内の内部ポインタの連続セットの開始アドレスおよび終了アドレスを含む、請求項3の方法。
- 前記再配置テーブルがビットマップとして構成され、それぞれのビットが該インプレース実行可能なファイルにおける1つのワードに対応し、1つのセットビットが該ワードが内部ポインタを含むことを示す、請求項3に記載の方法。
- 前記ビットマップが圧縮されてメモリ消費をさらに減少する、請求項8に記載の方法。
- 前記再配置テーブルがパックリストとして構成され、該パックリストにおけるそれぞれのエントリは、
前記配置可能ファイルにおける内部ポインタの範囲の開始オフセット(先のエントリの開始オフセットに関連する)と、
該開始オフセットで始まる連続して設置された内部ポインタの数と
を含む、請求項3に記載の方法。 - 前記仮想マシンがプラットフォームから独立した仮想マシンである、請求項1に記載の方法。
- 前記仮想マシンがJava(登録商標)仮想マシンである、請求項11に記載の方法。
- コンピュータによって実行される場合、インプレース実行可能なファイルを仮想マシンにロードする方法をコンピュータに実行させる命令を格納するコンピュータ読み取り可能記憶媒体であって、該方法は、
該仮想マシンに該インプレース実行可能なファイルをロードすることとであって、該インプレース実行可能なファイルは、該インプレース実行可能なファイル内のメモリ位置を示す内部ポインタと、該インプレース実行可能なファイルがロードするように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスとを含む、ことと、
該インプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定することと、
該実際のメモリアドレスと該ターゲットメモリアドレスとが異なる場合に、該実際のメモリアドレスと該ターゲットメモリアドレスとの違いであるオフセット値を生成することと、該オフセット値によって該インプレース実行可能なファイル内のそれぞれの内部ポインタを調整して該内部ポインタが該インプレース実行可能なファイル内の意図された位置を示すようにすることと
を包含する、コンピュータ読み取り可能記憶媒体。 - 前記ターゲットメモリアドレスが前記インプレース実行可能なファイルのヘッダに設置される、請求項13に記載のコンピュータ読み取り可能な記憶媒体。
- 前記インプレース実行可能なファイルが、該インプレース実行可能なファイル内で内部ポインタの位置を識別する再配置テーブルを含む、請求項13に記載のコンピュータ読み取り可能な記憶媒体。
- 前記再配置テーブルが、
前記インプレース実行可能なファイルヘッダから該再配置テーブルを示すポインタを取り出すことと、
該再配置テーブルにアクセスするために該ポインタを用いることと
を含む、請求項15に記載のコンピュータ読み取り可能な記憶媒体。 - それぞれの内部ポインタを調整した後に、前記方法は前記再配置テーブルに占められる前記メモリを再要求することをさらに包含する、請求項15に記載のコンピュータ読み取り可能な記憶媒体。
- それぞれの内部ポインタを調整した後に、前記方法は、
前記インプレース実行可能なファイルを前記再配置テーブルを有さない記憶媒体に(調整された内部ポインタを用いて)書き戻すことと、
再配置がすでに行われたことを示す該インプレース実行可能なファイルヘッダに再配置ビットを設置することとをさらに包含し、
それによって前記配置可能ファイルのその後の実行が、前記記憶媒体からの(調整されたポインタを有する)該インプレース実行可能なファイルにアクセスでき、それによって該ポインタの調整を回避できる、請求項15に記載のコンピュータ読み取り可能な記憶媒体。 - 前記再配置テーブルがオフセット範囲のリストとして構成され、それぞれのオフセット値が該インプレース実行可能なファイル内の内部ポインタの連続セットの開始アドレスおよび終了アドレスを含む、請求項15に記載のコンピュータ読み取り可能な記憶媒体。
- 前記再配置テーブルがビットマップとして構成され、それぞれのビットが該インプレース実行可能なファイルにおける1つのワードに対応し、1つのセットビットが該ワードが内部ポインタを含むことを示す、請求項15に記載のコンピュータ読み取り可能な記憶媒体。
- 前記ビットマップが圧縮されてメモリ消費をさらに減少する、請求項20に記載のコンピュータ読み取り可能な記憶媒体。
- 前記再配置テーブルがパックリストとして構成され、該パックリストにおけるそれぞれのエントリは、
前記配置可能ファイルにおける内部ポインタの範囲の開始オフセット(先のエントリの開始オフセットに関連する)と、
該開始オフセットで始まる連続して設置された内部ポインタの数と
を含む、請求項15に記載のコンピュータ読み取り可能な記憶媒体。 - 前記仮想マシンがプラットフォームから独立した仮想マシンである、請求項13に記載のコンピュータ読み取り可能な記憶媒体。
- 前記仮想マシンがJava(登録商標)仮想マシンである、請求項23に記載のコンピュータ読み取り可能な記憶媒体。
- インプレース実行可能なファイルを仮想マシンにロードする装置であって、
該仮想マシンに該インプレース実行可能なファイルをロードするように構成されたロードメカニズムであって、該インプレース実行可能なファイルは、該インプレース実行可能なファイル内のメモリ位置を示す内部ポインタと、該インプレース実行可能なファイルがロードするように構成されるメモリにおいてターゲット位置を特定するターゲットメモリアドレスとを含む、ロードメカニズムと、
該インプレース実行可能なファイルが実際にロードされる実際のメモリアドレスを決定するように構成された決定メカニズムと、
該実際のメモリアドレスと該ターゲットメモリアドレスとが異なる場合に、該実際のメモリアドレスと該ターゲットメモリアドレスとの違いであるオフセット値を生成するように構成されたオフセットメカニズムと、
該実際のメモリアドレスと該ターゲットメモリアドレスとが異なる場合に、該オフセット値によって該インプレース実行可能なファイル内のそれぞれの内部ポインタを調整して該内部ポインタが該インプレース実行可能なファイル内の意図された位置を示すようにするように構成された調整メカニズムと
を備える、装置。 - 前記ターゲットメモリアドレスが前記インプレース実行可能なファイルのヘッダに設置される、請求項25に記載の装置。
- 前記インプレース実行可能なファイルが、該インプレース実行可能なファイル内で内部ポインタの位置を識別する再配置テーブルを含む、請求項25に記載の装置。
- 前記インプレース実行可能なファイルヘッダから該再配置テーブルを示すポインタを取り出すように構成された取り出す検索メカニズムと、
該再配置テーブルにアクセスするために該ポインタを用いるように構成されたアクセスメカニズムと
をさらに備える、請求項27に記載の装置。 - それぞれの内部ポインタを調整したあとに、前記再配置テーブルに占められる前記メモリを再要求するように構成されるメモリ再要求メカニズムをさらに備える、請求項27に記載の装置。
- それぞれの内部ポインタを調整した後に、前記インプレース実行可能なファイルを前記再配置テーブルを有さない記憶媒体に(調整された内部ポインタを用いて)書き戻すように構成された通達メカニズムと、
それぞれの内部ポインタを調整した後に、再配置がすでに行われたことを示す該インプレース実行可能なファイルヘッダに再配置ビットを設置するように構成されたビット設置メカニズムとをさらに備え、
それによって前記配置可能ファイルのその後の実行の間、前記装置が前記記憶媒体からの(調整されたポインタを有する)該インプレース実行可能なファイルにアクセスでき、それによって該ポインタの調整を回避できる、請求項27に記載の装置。 - 前記再配置テーブルがオフセット範囲のリストとして構成され、それぞれおのオフセット値が該インプレース実行可能なファイル内の内部ポインタの連続セットの開始アドレスおよび終了アドレスを含む、請求項27に記載の装置。
- 前記再配置テーブルがビットマップとして構成され、それぞれのビットが該インプレース実行可能なファイルにおける1つのワードに対応し、1つのセットビットが該ワードが内部ポインタを含むことを示す、請求項27に記載の装置。
- 前記ビットマップが圧縮されてメモリ消費をさらに減少する、請求項32に記載の装置。
- 前記再配置テーブルがパックリストとして構成され、該パックリストにおけるそれぞれのエントリは、
前記配置可能ファイルにおける内部ポインタの範囲の開始オフセット(先のエントリの開始オフセットに関連する)と、
該開始オフセットで始まる連続して設置された内部ポインタの数と
を含む、請求項27に記載の装置。 - 前記仮想マシンがプラットフォームから独立した仮想マシンである、請求項25に記載の装置。
- 前記仮想マシンがJava(登録商標)仮想マシンである、請求項35に記載の装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/880,786 US7603665B2 (en) | 2004-06-29 | 2004-06-29 | Method and apparatus for loading relocatable in-place executable files in a virtual machine |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018834A true JP2006018834A (ja) | 2006-01-19 |
Family
ID=35115823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005189027A Pending JP2006018834A (ja) | 2004-06-29 | 2005-06-28 | 仮想マシンに配置された再配置可能な実行ファイルをロードするための方法および装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7603665B2 (ja) |
EP (1) | EP1612667A3 (ja) |
JP (1) | JP2006018834A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135904A (zh) * | 2011-03-11 | 2011-07-27 | 华为技术有限公司 | 一种面向多核目标系统的映射方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8695102B2 (en) | 2006-05-01 | 2014-04-08 | International Business Machines Corporation | Controlling execution of executables between partitions in a multi-partitioned data processing system |
US7577831B2 (en) * | 2006-07-20 | 2009-08-18 | Dell Products L.P. | Relocating of system management interface code within an information handling system |
CN107169348B (zh) * | 2017-05-15 | 2020-07-28 | 东信和平科技股份有限公司 | Java Card虚拟机栈的防错误注入方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581768A (en) | 1995-02-27 | 1996-12-03 | Intel Corporation | Method and apparatus for executing applications in place from write once/seldom memories |
US5799207A (en) * | 1995-03-28 | 1998-08-25 | Industrial Technology Research Institute | Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device |
US7143421B2 (en) * | 1998-09-09 | 2006-11-28 | Microsoft Corporation | Highly componentized system architecture with a demand-loading namespace and programming model |
US7028251B2 (en) * | 2000-03-02 | 2006-04-11 | Iora, Ltd. | System and method for reducing the size of data difference representations |
US6810519B1 (en) * | 2000-09-29 | 2004-10-26 | International Business Machines Corporation | Achieving tight binding for dynamically loaded software modules via intermodule copying |
US6442660B1 (en) * | 2001-03-21 | 2002-08-27 | Sharp Laboratories Of America, Inc. | Dynamic system relocation based on availability of system memory |
US7055145B2 (en) | 2002-10-30 | 2006-05-30 | Intel Corporation | Dynamic management of execute in place applications |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
US7574705B2 (en) * | 2004-06-29 | 2009-08-11 | Sun Microsystems, Inc. | Method and apparatus for efficiently resolving symbolic references in a virtual machine |
-
2004
- 2004-06-29 US US10/880,786 patent/US7603665B2/en active Active
-
2005
- 2005-06-14 EP EP05253679A patent/EP1612667A3/en not_active Withdrawn
- 2005-06-28 JP JP2005189027A patent/JP2006018834A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135904A (zh) * | 2011-03-11 | 2011-07-27 | 华为技术有限公司 | 一种面向多核目标系统的映射方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US7603665B2 (en) | 2009-10-13 |
US20050289285A1 (en) | 2005-12-29 |
EP1612667A3 (en) | 2007-11-07 |
EP1612667A2 (en) | 2006-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1622013B1 (en) | Method and apparatus for resolving symbolic references in a virtual machine | |
US8050663B2 (en) | System and method of providing contents for mobile communication terminal | |
KR100922907B1 (ko) | 동적 코드 갱신을 지원하기 위한 페이징 사용 | |
KR20040004557A (ko) | 임베디드 환경에서 어플리케이션을 로딩 및 실행하는 방법 | |
CN115994122B (zh) | 快速缓存信息的方法、系统、设备及储存介质 | |
US7020874B2 (en) | Techniques for loading class files into virtual machines | |
JP2006018834A (ja) | 仮想マシンに配置された再配置可能な実行ファイルをロードするための方法および装置 | |
US6799185B2 (en) | Frameworks for accessing Java class files | |
KR100310717B1 (ko) | 휴대용 장치에 데이터를 저장하고 그로부터 데이터를검색하는 방법 및 장치 | |
WO2008014635A1 (en) | A method to use global variables for pre-efi initialization modules in efi-based firmware | |
WO2002077805A2 (en) | Loading attribute for partial loading of class files into virtual machines | |
JP2019523480A (ja) | Nandストレージデバイスのためのプリエンプティブ圧縮解除スケジューリング | |
US7328436B2 (en) | Dynamic allocation of internal memory at runtime | |
US7681009B2 (en) | Dynamically updateable and moveable memory zones | |
JP7355876B2 (ja) | プログラム起動方法及び機器、記憶媒体 | |
CN115994348A (zh) | 程序流水线的控制方法、处理装置和存储介质 | |
US20060230190A1 (en) | Method and apparatus for executing application in system having NAND flash memory | |
US20040025009A1 (en) | Method and apparatus for acceleration of multimedia content | |
US7831965B1 (en) | Method and apparatus for facilitating intermediate linking of binary files in a virtual machine | |
CN106991058A (zh) | 预取文件处理方法及装置 | |
US7328432B2 (en) | Proximity-based addressing for supporting in-place execution in virtual machines | |
US7539822B1 (en) | Method and apparatus for facilitating faster execution of code on a memory-constrained computing device | |
US20060288338A1 (en) | Offset threaded code | |
CN114417409A (zh) | 一种防止广告追踪的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070629 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071001 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071019 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071024 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071220 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080519 |