JP3314378B2 - 実行可能プログラムに対するメモリ割当を管理するシステムおよび方法 - Google Patents
実行可能プログラムに対するメモリ割当を管理するシステムおよび方法Info
- Publication number
- JP3314378B2 JP3314378B2 JP00572894A JP572894A JP3314378B2 JP 3314378 B2 JP3314378 B2 JP 3314378B2 JP 00572894 A JP00572894 A JP 00572894A JP 572894 A JP572894 A JP 572894A JP 3314378 B2 JP3314378 B2 JP 3314378B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- program
- executable program
- loading
- executable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 24
- 238000001514 detection method Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 5
- QIQXTHQIDYTFRH-UHFFFAOYSA-N octadecanoic acid Chemical compound CCCCCCCCCCCCCCCCCC(O)=O QIQXTHQIDYTFRH-UHFFFAOYSA-N 0.000 claims 1
- 230000008569 process Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 206010024503 Limb reduction defect Diseases 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000009021 linear effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- 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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
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)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は情報処理システムに関
し、特にオペレーティング・システムに関する。更に詳
しくは、本発明はオペレーティング・システムにより実
行可能タスクのロードを制御するシステムに関する。
し、特にオペレーティング・システムに関する。更に詳
しくは、本発明はオペレーティング・システムにより実
行可能タスクのロードを制御するシステムに関する。
【0002】
【従来の技術】コンピュータ・オペレーティング・シス
テムはコンピュータ・システム・コンポーネントの動作
を制御する。オペレーティング・システムの役割の中
に、実行用の他のプログラムのロードがある。他のプロ
グラムは典型的にはアプリケーション・プログラムであ
るが、オペレーティング・システム・コンポーネントも
含まれる。プログラムのロードには、プログラム記憶媒
体上、典型的にはハード・ディスク・ファイル上で要求
プログラムを見い出し、当該プログラムをメモリ内に導
き、それをプロセッサにより実行する用意をすることが
含まれる。
テムはコンピュータ・システム・コンポーネントの動作
を制御する。オペレーティング・システムの役割の中
に、実行用の他のプログラムのロードがある。他のプロ
グラムは典型的にはアプリケーション・プログラムであ
るが、オペレーティング・システム・コンポーネントも
含まれる。プログラムのロードには、プログラム記憶媒
体上、典型的にはハード・ディスク・ファイル上で要求
プログラムを見い出し、当該プログラムをメモリ内に導
き、それをプロセッサにより実行する用意をすることが
含まれる。
【0003】プログラムはプログラム・ソース・コード
のコンパイルまたはアセンブルによって生成される実行
形式で、プログラム記憶領域に記憶される。実行可能形
式はローダによって認識される指定フォーマットを有
し、実行可能コードを処理するために必要な情報を含
む。ローダが実行する処理ステップの1つはアドレス再
配置である。実行可能ファイル内のアドレスは開始アド
レスに関連して表現される。この開始アドレスまたは開
始オフセットは、プログラムがメモリ内にロードされる
まで決定されない。アドレス再配置は相対アドレスを変
更し、それによりこれらのアドレスはシステム内の実際
のアドレス可能記憶位置をさすようになる。アドレスが
指定されると、プログラムは実行の準備が整う。
のコンパイルまたはアセンブルによって生成される実行
形式で、プログラム記憶領域に記憶される。実行可能形
式はローダによって認識される指定フォーマットを有
し、実行可能コードを処理するために必要な情報を含
む。ローダが実行する処理ステップの1つはアドレス再
配置である。実行可能ファイル内のアドレスは開始アド
レスに関連して表現される。この開始アドレスまたは開
始オフセットは、プログラムがメモリ内にロードされる
まで決定されない。アドレス再配置は相対アドレスを変
更し、それによりこれらのアドレスはシステム内の実際
のアドレス可能記憶位置をさすようになる。アドレスが
指定されると、プログラムは実行の準備が整う。
【0004】システム・ユーザ要求が拡大し、システム
の能力が増すにつれ、コンピュータ・プログラムは益々
複雑化しつつある。IBM PS/2コンピュータ・システム
(PS/2はIBMの登録商標)などのマイクロコンピュー
タ・システムの向上された能力が1例として挙げられ
る。向上されたプロセッサ能力及び機能は、複雑な文書
処理、スプレッド・シート、データベース、及び他の事
務及び科学アプリケーションの開発を可能としてきた。
しかしながら、複雑なアプリケーションは著しく大きな
実行可能ファイルを生じる。
の能力が増すにつれ、コンピュータ・プログラムは益々
複雑化しつつある。IBM PS/2コンピュータ・システム
(PS/2はIBMの登録商標)などのマイクロコンピュー
タ・システムの向上された能力が1例として挙げられ
る。向上されたプロセッサ能力及び機能は、複雑な文書
処理、スプレッド・シート、データベース、及び他の事
務及び科学アプリケーションの開発を可能としてきた。
しかしながら、複雑なアプリケーションは著しく大きな
実行可能ファイルを生じる。
【0005】大きな実行可能ファイルの生成は、アプリ
ケーションまたはシステムの1部が変更される時、アプ
リケーションまたはシステムを作成または訂正するため
に要求されるコスト及び時間を増加させる。この問題に
対する1つの解答が、アプリケーションまたはシステム
を動的にロード可能なセグメントに分割することであっ
た。これらのセグメントのリンク(アドレス再配置)は
実行時まで延期される。各セグメントはコードの特定の
部分を含むように定義され、好適に定義されたインタフ
ェースに応答するように作成される。特定のセグメント
・オブジェクトをアクセスする他のセグメント内のプロ
グラムは、そのインタフェースが一定な限り、変更また
は再コンパイルされる必要がない。これはオペレーティ
ング・システム及びアプリケーション・プログラムの開
発及び保守において、より高い柔軟性を提供する。
ケーションまたはシステムの1部が変更される時、アプ
リケーションまたはシステムを作成または訂正するため
に要求されるコスト及び時間を増加させる。この問題に
対する1つの解答が、アプリケーションまたはシステム
を動的にロード可能なセグメントに分割することであっ
た。これらのセグメントのリンク(アドレス再配置)は
実行時まで延期される。各セグメントはコードの特定の
部分を含むように定義され、好適に定義されたインタフ
ェースに応答するように作成される。特定のセグメント
・オブジェクトをアクセスする他のセグメント内のプロ
グラムは、そのインタフェースが一定な限り、変更また
は再コンパイルされる必要がない。これはオペレーティ
ング・システム及びアプリケーション・プログラムの開
発及び保守において、より高い柔軟性を提供する。
【0006】ダイナミック・リンクの概念はIBM OS/2オ
ペレーティング・システム製品(OS/2はIBMの登録商
標)で実施された。OS/2ダイナミック・リンク・ライブ
ラリ(またはDLL)が、オペレーティング・システム
またはアプリケーション・プログラムに定義された関数
を提供するために、動的にリンクされる。DLLとのイ
ンタフェースは指定されたライブラリ・インタフェース
である。ダイナミック・リンク・ライブラリを使用する
プログラムは、そのプログラムに対するライブラリ・イ
ンタフェース呼出しを含む。コンパイラはこれらの外部
ライブラリ呼出しの各々を追跡し、実行可能ファイルの
セクションにそれらを含む。現行のシステムでは、OS/2
ローダが実行可能プログラム(典型的には .EXE拡張子
を有するファイルとして記憶される)をロードする時、
ローダは全てのダイナミック・リンク・ライブラリ参照
を見い出すためにファイルを走査する。参照される各ラ
イブラリ関数が次に動的にロードされる。ローダはこれ
らのライブラリの各々をチェックし、それらが他のライ
ブラリ関数を呼出すか否かを判断する。このチェック及
びロード処理は、全てのダイナミック・リンク参照が解
析されるまで、再帰的に継続される。
ペレーティング・システム製品(OS/2はIBMの登録商
標)で実施された。OS/2ダイナミック・リンク・ライブ
ラリ(またはDLL)が、オペレーティング・システム
またはアプリケーション・プログラムに定義された関数
を提供するために、動的にリンクされる。DLLとのイ
ンタフェースは指定されたライブラリ・インタフェース
である。ダイナミック・リンク・ライブラリを使用する
プログラムは、そのプログラムに対するライブラリ・イ
ンタフェース呼出しを含む。コンパイラはこれらの外部
ライブラリ呼出しの各々を追跡し、実行可能ファイルの
セクションにそれらを含む。現行のシステムでは、OS/2
ローダが実行可能プログラム(典型的には .EXE拡張子
を有するファイルとして記憶される)をロードする時、
ローダは全てのダイナミック・リンク・ライブラリ参照
を見い出すためにファイルを走査する。参照される各ラ
イブラリ関数が次に動的にロードされる。ローダはこれ
らのライブラリの各々をチェックし、それらが他のライ
ブラリ関数を呼出すか否かを判断する。このチェック及
びロード処理は、全てのダイナミック・リンク参照が解
析されるまで、再帰的に継続される。
【0007】現行のOS/2オペレーティング・システム
は、タスクによって参照される各ライブラリに、メモリ
・アドレス及びユーザ・メモリ空間を割当てる。共通に
使用されるDLLは頻繁に他のDLLを参照し、これら
は更に他のDLLを参照する。その結果、DLLの長い
連鎖が割当てられ、各タスクにマップされる。これらの
多くのDLLはエラーまたは他の例外状態を扱うために
指定され、稀にしか使用されない。これはロードされた
大きなメモリがほとんどの時間、不要であることを意味
する。大きなメモリ割当てはまたシステムのオーバヘッ
ドを増す。なぜなら、メモリ・マネージャがページング
・システム内に置換する領域を決定する時、この大きな
割当てられたメモリを通じてシフトしなければならない
からである。
は、タスクによって参照される各ライブラリに、メモリ
・アドレス及びユーザ・メモリ空間を割当てる。共通に
使用されるDLLは頻繁に他のDLLを参照し、これら
は更に他のDLLを参照する。その結果、DLLの長い
連鎖が割当てられ、各タスクにマップされる。これらの
多くのDLLはエラーまたは他の例外状態を扱うために
指定され、稀にしか使用されない。これはロードされた
大きなメモリがほとんどの時間、不要であることを意味
する。大きなメモリ割当てはまたシステムのオーバヘッ
ドを増す。なぜなら、メモリ・マネージャがページング
・システム内に置換する領域を決定する時、この大きな
割当てられたメモリを通じてシフトしなければならない
からである。
【0008】カーネギ・メロン(Carnegie Mellon) 大
学により開発されたMachオペレーティング・システ
ムなどのマイクロカーネル・システムでは、別の問題が
存在する。Machマイクロカーネルはプロセス間通信
にカーネル・ポート識別子を割当てる。Machカーネ
ルはカーネル・ポート識別子を各DLL、またはより効
率的に各DLLオブジェクトに割当てる。未参照のポー
トの割当ては効率的なポート解決を妨げる。
学により開発されたMachオペレーティング・システ
ムなどのマイクロカーネル・システムでは、別の問題が
存在する。Machマイクロカーネルはプロセス間通信
にカーネル・ポート識別子を割当てる。Machカーネ
ルはカーネル・ポート識別子を各DLL、またはより効
率的に各DLLオブジェクトに割当てる。未参照のポー
トの割当ては効率的なポート解決を妨げる。
【0009】動的なサブルーチン・ロード技法が以前に
提案されているが、各々は欠点を有した。IBM Technica
l Disclosure Bulletin、pp.5535-5537(1986年5
月発行)には、"Transparent Dynamic Subroutine Load
er" が記載されている。ここで提案される技法は、メイ
ン・ルーチンとリンクされる特殊目的の動的ローダを要
求する。ローダはサブルーチン参照のテーブルを保持
し、サブルーチンが呼ばれるとそれらをロードする。こ
のアプローチはオペレーティング・システムにとって不
可欠ではなく、タスク間の共用をサポートしない。トラ
ッキング及びローディングが特定のタスクにのみ適用さ
れる。動的ローダ・プログラムのメイン・プログラムへ
のリンク要求も透過性を制限する。
提案されているが、各々は欠点を有した。IBM Technica
l Disclosure Bulletin、pp.5535-5537(1986年5
月発行)には、"Transparent Dynamic Subroutine Load
er" が記載されている。ここで提案される技法は、メイ
ン・ルーチンとリンクされる特殊目的の動的ローダを要
求する。ローダはサブルーチン参照のテーブルを保持
し、サブルーチンが呼ばれるとそれらをロードする。こ
のアプローチはオペレーティング・システムにとって不
可欠ではなく、タスク間の共用をサポートしない。トラ
ッキング及びローディングが特定のタスクにのみ適用さ
れる。動的ローダ・プログラムのメイン・プログラムへ
のリンク要求も透過性を制限する。
【0010】多少異なるアプローチが、IBM Technical
Disclosure Bulletin、pp.3521 (1987年1月発
行)記載の"Execution Time Loading Using Self Modif
yingStubs"に提案されている。このアプローチでは各メ
イン・プログラムにサブルーチン・スタブが追加される
ことを要求する。サブルーチンが最初に参照される時、
ライブラリのコピーがロードされ、ロードされたライブ
ラリのコピーに分岐するためにスタブが変更される。こ
のアプローチは特殊なコーディング技法、及びプログラ
ムのフローに対する実行時間の変更を要求する欠点を有
する。
Disclosure Bulletin、pp.3521 (1987年1月発
行)記載の"Execution Time Loading Using Self Modif
yingStubs"に提案されている。このアプローチでは各メ
イン・プログラムにサブルーチン・スタブが追加される
ことを要求する。サブルーチンが最初に参照される時、
ライブラリのコピーがロードされ、ロードされたライブ
ラリのコピーに分岐するためにスタブが変更される。こ
のアプローチは特殊なコーディング技法、及びプログラ
ムのフローに対する実行時間の変更を要求する欠点を有
する。
【0011】最後に、IBM Technical Disclosure Bulle
tin、pp.209-210(1991年11月発行)記載の"Dyn
amic Link Library Mechanism in DOS Environment" で
は、DOS環境においてライブラリ・ルーチンのリスト
を管理する"terminate andstay resident"(TSR)ル
ーチンが提案されている。このルーチンは、メイン・ル
ーチンに挿入される特殊な結合呼出しにより生成され
る"ソフト割込み"に応答する。割込みが受信されると、
TSRルーチンがテーブルをチェックし、関数が以前に
ロードされたか否かを判断し、否定の場合、その関数が
ロードされ、テーブルが更新される。制御は次に当該関
数に移行する。このアプローチは動的ライブラリを管理
するために特殊な割込みルーチンを要求する欠点を有す
る。メイン・プログラム内に特殊な割込み呼出しを挿入
する要求は、また一般のアプリケーションをも制限す
る。
tin、pp.209-210(1991年11月発行)記載の"Dyn
amic Link Library Mechanism in DOS Environment" で
は、DOS環境においてライブラリ・ルーチンのリスト
を管理する"terminate andstay resident"(TSR)ル
ーチンが提案されている。このルーチンは、メイン・ル
ーチンに挿入される特殊な結合呼出しにより生成され
る"ソフト割込み"に応答する。割込みが受信されると、
TSRルーチンがテーブルをチェックし、関数が以前に
ロードされたか否かを判断し、否定の場合、その関数が
ロードされ、テーブルが更新される。制御は次に当該関
数に移行する。このアプローチは動的ライブラリを管理
するために特殊な割込みルーチンを要求する欠点を有す
る。メイン・プログラム内に特殊な割込み呼出しを挿入
する要求は、また一般のアプリケーションをも制限す
る。
【0012】
【発明が解決しようとする課題】提示された技術的な問
題は、実行可能ライブラリ・オブジェクトが実行要求さ
れる時にだけ、これらのオブジェクトを動的にロードす
る機構を提供することである。この問題の解決は、アプ
リケーション開発者及び実行プログラムにとって透過的
となるべきである。すなわち、ライブラリ関数がメイン
・プログラムにリンクされる場合と差異ないように見え
なければならない。
題は、実行可能ライブラリ・オブジェクトが実行要求さ
れる時にだけ、これらのオブジェクトを動的にロードす
る機構を提供することである。この問題の解決は、アプ
リケーション開発者及び実行プログラムにとって透過的
となるべきである。すなわち、ライブラリ関数がメイン
・プログラムにリンクされる場合と差異ないように見え
なければならない。
【0013】
【課題を解決するための手段】本発明はライブラリ・オ
ブジェクトが実行のために要求される時にだけ、それら
を動的にロードするシステムを目的とする。このシステ
ムは未参照のオブジェクトのロードを、参照が行われる
まで遅延させる手段を含む。本発明はこの機能をシステ
ム・ローダ及び実行処理の1部として組込み、メイン実
行可能プログラムの変更は要求しない。
ブジェクトが実行のために要求される時にだけ、それら
を動的にロードするシステムを目的とする。このシステ
ムは未参照のオブジェクトのロードを、参照が行われる
まで遅延させる手段を含む。本発明はこの機能をシステ
ム・ローダ及び実行処理の1部として組込み、メイン実
行可能プログラムの変更は要求しない。
【0014】本発明はメモリの実行可能プログラムへの
割当てを管理するシステムを含み、このシステムは、1
次実行可能プログラムをメモリにロードするための要求
を受信する手段、1次実行可能プログラムにより参照さ
れる2次実行可能プログラムを決定する手段、プログラ
ムをメモリにロードすることなく、メモリ・スロット
(領域)を2次実行可能プログラムに割当てる手段、割
当てられロードされていないあるスロットへの参照を検
出する手段、参照が検出される時の検出信号の生成を検
出する手段、検出信号に応答して、スロットを割当てら
れた実行可能プログラムをメモリにロードする手段を含
む。
割当てを管理するシステムを含み、このシステムは、1
次実行可能プログラムをメモリにロードするための要求
を受信する手段、1次実行可能プログラムにより参照さ
れる2次実行可能プログラムを決定する手段、プログラ
ムをメモリにロードすることなく、メモリ・スロット
(領域)を2次実行可能プログラムに割当てる手段、割
当てられロードされていないあるスロットへの参照を検
出する手段、参照が検出される時の検出信号の生成を検
出する手段、検出信号に応答して、スロットを割当てら
れた実行可能プログラムをメモリにロードする手段を含
む。
【0015】本発明の上述の目的、機能、及び利点が、
添付の図面により表される後述の実施例により明らかに
され、ここで同一参照番号は本発明の同一のパーツを表
す。
添付の図面により表される後述の実施例により明らかに
され、ここで同一参照番号は本発明の同一のパーツを表
す。
【0016】
【実施例】本発明は情報処理システムに関連して使用さ
れる。こうしたシステムの例が図1の100に示され
る。このシステムは処理ユニットまたはCPU102を
有し、これはシステム・バス103により様々なシステ
ム・コンポーネントに相互接続される。これらのコンポ
ーネントにはハード・ディスク記憶装置104、ランダ
ム・アクセス・メモリ(RAM)106、ネットワーク
・インタフェース108、入出力インタフェース110
などが含まれるが、これらに限るものではない。入出力
インタフェースはキーボード114、ポインティング装
置116からの入力を調整し、表示装置112への出力
を制御する。ディスケット・ドライブ、テープ・ドライ
ブまたはCD−ROMドライブなどの永久記憶装置を更
にこうしたシステムに接続することができる。
れる。こうしたシステムの例が図1の100に示され
る。このシステムは処理ユニットまたはCPU102を
有し、これはシステム・バス103により様々なシステ
ム・コンポーネントに相互接続される。これらのコンポ
ーネントにはハード・ディスク記憶装置104、ランダ
ム・アクセス・メモリ(RAM)106、ネットワーク
・インタフェース108、入出力インタフェース110
などが含まれるが、これらに限るものではない。入出力
インタフェースはキーボード114、ポインティング装
置116からの入力を調整し、表示装置112への出力
を制御する。ディスケット・ドライブ、テープ・ドライ
ブまたはCD−ROMドライブなどの永久記憶装置を更
にこうしたシステムに接続することができる。
【0017】現行のシステムが動作する情報処理システ
ムは、好適にはIBM PS/2コンピュータ・システムであ
る。しかしながら、ここで開示されるシステム及び方法
はこうしたシステムに限るものではなく、他のマイクロ
コンピュータ・システム、IBMRISC System/6000ワーク
ステーション(RISC System/6000はIBMの登録商標)
などのワークステーション・システム、またはIBM ES/9
000 コンピュータ・システム(ES/9000はIBMの登録
商標)上においても動作可能である。
ムは、好適にはIBM PS/2コンピュータ・システムであ
る。しかしながら、ここで開示されるシステム及び方法
はこうしたシステムに限るものではなく、他のマイクロ
コンピュータ・システム、IBMRISC System/6000ワーク
ステーション(RISC System/6000はIBMの登録商標)
などのワークステーション・システム、またはIBM ES/9
000 コンピュータ・システム(ES/9000はIBMの登録
商標)上においても動作可能である。
【0018】本発明の実施例はダイナミック・リンク・
ライブラリ(DLL)をサポートするシステムにおいて
実施される。これらのライブラリは、ライブラリ内の各
オブジェクトがロード時に再配置可能である、すなわち
各オブジェクトがローダにより任意のアドレスに割当て
られる特性を有する。
ライブラリ(DLL)をサポートするシステムにおいて
実施される。これらのライブラリは、ライブラリ内の各
オブジェクトがロード時に再配置可能である、すなわち
各オブジェクトがローダにより任意のアドレスに割当て
られる特性を有する。
【0019】各実行可能モジュールは永久記憶装置(例
えばハード・ディスク上)に、指定されるフォーマット
で記憶される。実施例ではメイン実行可能ファイル及び
全てのダイナミック・リンク・ライブラリが、"LX (Lin
ear Executable Module)" フォーマットに従い記憶され
る。記憶フォーマットは全てのフォーマットがローダに
より認識可能である限り、メイン実行及びダイナミック
・リンク・ライブラリの間で、またはダイナミック・リ
ンク・ライブラリ内においても異なることが可能であ
る。
えばハード・ディスク上)に、指定されるフォーマット
で記憶される。実施例ではメイン実行可能ファイル及び
全てのダイナミック・リンク・ライブラリが、"LX (Lin
ear Executable Module)" フォーマットに従い記憶され
る。記憶フォーマットは全てのフォーマットがローダに
より認識可能である限り、メイン実行及びダイナミック
・リンク・ライブラリの間で、またはダイナミック・リ
ンク・ライブラリ内においても異なることが可能であ
る。
【0020】実行可能モジュールの例が図2の202に
示される。メイン実行可能モジュールは、関数を実行す
るためにオペレーティング・システムまたは直接ユーザ
により呼出されるプログラムである。ユーザ呼出しの例
は、オペレーティング・システム・コマンド・プロンプ
ト位置における、ユーザによるプログラム名の入力であ
る。例えば、MYPROGMの入力により、MYPROGM.EXEがロ
ードされて実行される。
示される。メイン実行可能モジュールは、関数を実行す
るためにオペレーティング・システムまたは直接ユーザ
により呼出されるプログラムである。ユーザ呼出しの例
は、オペレーティング・システム・コマンド・プロンプ
ト位置における、ユーザによるプログラム名の入力であ
る。例えば、MYPROGMの入力により、MYPROGM.EXEがロ
ードされて実行される。
【0021】実行可能モジュール・ヘッダは、プログラ
ムをロード及び実行するために要求される様々な情報を
含む。これらにはモジュール名、バージョン・レベル、
CPUまたはオペレーティング・システム依存性、モジ
ュールのサイズ、アドレス再配置のために必要なアドレ
ス再配置(fixup )情報、及び実行に際し搬入されるD
LLモジュールに対する搬入モジュール参照が含まれ
る。
ムをロード及び実行するために要求される様々な情報を
含む。これらにはモジュール名、バージョン・レベル、
CPUまたはオペレーティング・システム依存性、モジ
ュールのサイズ、アドレス再配置のために必要なアドレ
ス再配置(fixup )情報、及び実行に際し搬入されるD
LLモジュールに対する搬入モジュール参照が含まれ
る。
【0022】メイン実行可能プログラムはインポート・
モジュール・リストを通じて、ダイナミック・リンク・
ライブラリを参照する。DLL参照はシステム開発者に
より挿入される明示的なプログラム呼出しのために発生
するか、またはコンパイルの間にコンパイラにより挿入
される。図2に示されるように、モジュール202はD
LL204及び206内のオブジェクトに対する参照を
含む。モジュール204はモジュール208、210及
び212に対する参照を含み、モジュール206はモジ
ュール212及び214に対する参照を含む。
モジュール・リストを通じて、ダイナミック・リンク・
ライブラリを参照する。DLL参照はシステム開発者に
より挿入される明示的なプログラム呼出しのために発生
するか、またはコンパイルの間にコンパイラにより挿入
される。図2に示されるように、モジュール202はD
LL204及び206内のオブジェクトに対する参照を
含む。モジュール204はモジュール208、210及
び212に対する参照を含み、モジュール206はモジ
ュール212及び214に対する参照を含む。
【0023】各ダイナミック・リンク・ライブラリ(D
LL)は、テキスト、共用データ、及びインスタンス・
データを含む多数のオブジェクトに分割される。実行可
能オブジェクトは、オブジェクトの生成時に選択される
オプションに依存して、いくつかのまたは単一のルーチ
ンを含む。各オブジェクトはロード時に再配置される。
すなわち、ロード時に任意のアドレスに割当てられる。
各オブジェクトは更に、コンピュータ・システムの仮想
メモリ・マネージャ内で使用されるページのサイズに対
応して、ページに分割される。各ページは関連する "ア
ドレス再配置ストリーム(fixup stream)" を有し、こ
れはモジュールのロード時に変更されなければならない
アドレスを識別し符号化する。これらの変更は局所アド
レス再配置と外部アドレス再配置に分かれ、前者では局
所アドレスがオブジェクトの開始アドレスによりオフセ
ットされ、後者ではアドレスが他のオブジェクトまたは
他のダイナミック・リンク・ライブラリのアドレスにも
とづきオフセットされる。
LL)は、テキスト、共用データ、及びインスタンス・
データを含む多数のオブジェクトに分割される。実行可
能オブジェクトは、オブジェクトの生成時に選択される
オプションに依存して、いくつかのまたは単一のルーチ
ンを含む。各オブジェクトはロード時に再配置される。
すなわち、ロード時に任意のアドレスに割当てられる。
各オブジェクトは更に、コンピュータ・システムの仮想
メモリ・マネージャ内で使用されるページのサイズに対
応して、ページに分割される。各ページは関連する "ア
ドレス再配置ストリーム(fixup stream)" を有し、こ
れはモジュールのロード時に変更されなければならない
アドレスを識別し符号化する。これらの変更は局所アド
レス再配置と外部アドレス再配置に分かれ、前者では局
所アドレスがオブジェクトの開始アドレスによりオフセ
ットされ、後者ではアドレスが他のオブジェクトまたは
他のダイナミック・リンク・ライブラリのアドレスにも
とづきオフセットされる。
【0024】本発明の実施例はOS/2オペレーティング・
システムの性質を有するMachマイクロカーネル基本
システムを使用して実施される。このシステムの主な機
能コンポーネントが図3に示される。ユーザ302はユ
ーザ空間で実行されるプログラムである。これはアプリ
ケーションまたはシステム・ユーティリティ・プログラ
ムである。OS/2サーバ304はOS/2のオペレーティング
・システム機構を含み、これはOS/2ユーザ・インタフェ
ースを提供し、マイクロカーネル306に対して必要な
マイクロカーネル・サービス要求を生成する。ファイル
・サーバ308はディスク・ファイルまたは他の記憶媒
体を管理する。
システムの性質を有するMachマイクロカーネル基本
システムを使用して実施される。このシステムの主な機
能コンポーネントが図3に示される。ユーザ302はユ
ーザ空間で実行されるプログラムである。これはアプリ
ケーションまたはシステム・ユーティリティ・プログラ
ムである。OS/2サーバ304はOS/2のオペレーティング
・システム機構を含み、これはOS/2ユーザ・インタフェ
ースを提供し、マイクロカーネル306に対して必要な
マイクロカーネル・サービス要求を生成する。ファイル
・サーバ308はディスク・ファイルまたは他の記憶媒
体を管理する。
【0025】OS/2サーバ304は本発明に関わる3つの
コンポーネントを含む。タスキング310は要求動作を
実行するための実行タスクを確立する。ローダ312は
ファイル・サーバ308から実行可能モジュールを要求
するための関数を実行し、実行可能モジュールを取り決
め、それらをメモリ内にロードする。メモリ・マネージ
ャ314はマイクロカーネル・メモリ管理機構を使用し
て、メモリ資源を管理する。マイクロカーネルは仮想
(VM)メモリ・システム316を有する。仮想メモリ
・システムはVMページのメモリ・オブジェクトへの割
当てを管理し、メモリ・ページ不在を検出する。ページ
不在はタスクに割当てられているが、現在メモリ内に存
在しないメモリ・ページを要求するタスクにより引起こ
される。不在の扱いとしては、未使用または最近使用さ
れていないページをページ・アウトし、要求ページをペ
ージ・インすることが要求される。
コンポーネントを含む。タスキング310は要求動作を
実行するための実行タスクを確立する。ローダ312は
ファイル・サーバ308から実行可能モジュールを要求
するための関数を実行し、実行可能モジュールを取り決
め、それらをメモリ内にロードする。メモリ・マネージ
ャ314はマイクロカーネル・メモリ管理機構を使用し
て、メモリ資源を管理する。マイクロカーネルは仮想
(VM)メモリ・システム316を有する。仮想メモリ
・システムはVMページのメモリ・オブジェクトへの割
当てを管理し、メモリ・ページ不在を検出する。ページ
不在はタスクに割当てられているが、現在メモリ内に存
在しないメモリ・ページを要求するタスクにより引起こ
される。不在の扱いとしては、未使用または最近使用さ
れていないページをページ・アウトし、要求ページをペ
ージ・インすることが要求される。
【0026】本発明の動的ローディング処理の動作につ
いて、図3及び図4を参照しながら説明する。処理は実
行可能プログラム初期化のためのユーザ空間要求により
開始される(402)。これはタスキング310に実行
されるタスクを生成させ、そのタスクを仮想メモリ・シ
ステム316に登録させる。タスキングは次にローダ3
12に .EXEファイルのメモリ・ロードを開始させる
(404)。ローダはファイル・サーバ308を通じて
.EXEファイルをアクセスする。
いて、図3及び図4を参照しながら説明する。処理は実
行可能プログラム初期化のためのユーザ空間要求により
開始される(402)。これはタスキング310に実行
されるタスクを生成させ、そのタスクを仮想メモリ・シ
ステム316に登録させる。タスキングは次にローダ3
12に .EXEファイルのメモリ・ロードを開始させる
(404)。ローダはファイル・サーバ308を通じて
.EXEファイルをアクセスする。
【0027】ローダは初期実行可能コードのロードを開
始する(406)。ローダは .EXEヘッダをフェッチ
し、モジュールに対応するモジュール・テーブル・エン
トリ(MTE)を生成する。モジュール・テーブル・エ
ントリがVM316に登録される。ローダは .EXEファ
イルにより参照されるDLLのリストを作成する。各.
DLL オブジェクトに対し、ローダはMTEがそのDLL
オブジェクトに対応して存在するか否かを判断し、否定
の場合、ファイル・サーバを用いてDLLをアクセス
し、DLLオブジェクトに対応するMTEをロードし生
成する。MTEはVMに登録される。
始する(406)。ローダは .EXEヘッダをフェッチ
し、モジュールに対応するモジュール・テーブル・エン
トリ(MTE)を生成する。モジュール・テーブル・エ
ントリがVM316に登録される。ローダは .EXEファ
イルにより参照されるDLLのリストを作成する。各.
DLL オブジェクトに対し、ローダはMTEがそのDLL
オブジェクトに対応して存在するか否かを判断し、否定
の場合、ファイル・サーバを用いてDLLをアクセス
し、DLLオブジェクトに対応するMTEをロードし生
成する。MTEはVMに登録される。
【0028】タスクの実行が次に開始される(40
8)。ローディング処理は .EXE及び参照される .DLL
に関連するデータの各ページをユーザの仮想メモリ空間
にマップする。しかし、物理ページは参照されるまでロ
ードされない。ロードされない仮想メモリ・ページの参
照はページ不在を引起こす(410)。メモリ・オブジ
ェクト・ページ不在を処理するために外部ページャ(pa
ger) が提供される。このページャはユーザ・メモリに
要求ページをロードする。ページが1度ロードされる
と、デフォルトのマイクロカーネル・ページャが続くロ
ーディングまたはアンローディングを処理する。
8)。ローディング処理は .EXE及び参照される .DLL
に関連するデータの各ページをユーザの仮想メモリ空間
にマップする。しかし、物理ページは参照されるまでロ
ードされない。ロードされない仮想メモリ・ページの参
照はページ不在を引起こす(410)。メモリ・オブジ
ェクト・ページ不在を処理するために外部ページャ(pa
ger) が提供される。このページャはユーザ・メモリに
要求ページをロードする。ページが1度ロードされる
と、デフォルトのマイクロカーネル・ページャが続くロ
ーディングまたはアンローディングを処理する。
【0029】ページ不在の場合(410)、マイクロカ
ーネルVM316はオブジェクト名、ページ、及びMT
Eを決定する。有効ページに対し、外部ページャはロー
ダにページをアドレス再配置させ、ロードするように命
じる(416及び418)。アドレス再配置処理は任意
の別の外部オブジェクトすなわち他のDLLオブジェク
トを検出し、そのオブジェクトがメモリを割当てられて
いるか否かを判断する(420)。否定の場合、適切な
サイズのメモリ・スロットが要求され(422)、ペー
ジがユーザ・アドレス空間にマップされる(424)。
ーネルVM316はオブジェクト名、ページ、及びMT
Eを決定する。有効ページに対し、外部ページャはロー
ダにページをアドレス再配置させ、ロードするように命
じる(416及び418)。アドレス再配置処理は任意
の別の外部オブジェクトすなわち他のDLLオブジェク
トを検出し、そのオブジェクトがメモリを割当てられて
いるか否かを判断する(420)。否定の場合、適切な
サイズのメモリ・スロットが要求され(422)、ペー
ジがユーザ・アドレス空間にマップされる(424)。
【0030】実施例はタスクが特定のメモリ領域を共用
可能な共用メモリ・システムにおいて実施される。別の
ユーザ・タスクがあるユーザに既に割当てられているペ
ージを参照する時(414)、カーネルはその第2のユ
ーザ・タスクにカーネル・キャッシュからそのページの
コピーを提供し、ローダがページのアドレス再配置を行
う必要性を回避する。この共用は、第2のユーザのため
に再度そのページの読出し及びアドレス再配置を行うオ
ーバヘッドを回避する。第2のユーザが共用ページ上の
オブジェクトを参照する時、メモリ保護不在が発生す
る。アドレス再配置が成されていないために、共用ペー
ジからのオブジェクトはユーザ空間にはロードされず、
固定ページのコピーだけが実行される。サーバはオブジ
ェクトを第2のユーザのアドレス空間にマップすること
により不在を処理し(430)、ユーザ・タスクを再ス
タートする。
可能な共用メモリ・システムにおいて実施される。別の
ユーザ・タスクがあるユーザに既に割当てられているペ
ージを参照する時(414)、カーネルはその第2のユ
ーザ・タスクにカーネル・キャッシュからそのページの
コピーを提供し、ローダがページのアドレス再配置を行
う必要性を回避する。この共用は、第2のユーザのため
に再度そのページの読出し及びアドレス再配置を行うオ
ーバヘッドを回避する。第2のユーザが共用ページ上の
オブジェクトを参照する時、メモリ保護不在が発生す
る。アドレス再配置が成されていないために、共用ペー
ジからのオブジェクトはユーザ空間にはロードされず、
固定ページのコピーだけが実行される。サーバはオブジ
ェクトを第2のユーザのアドレス空間にマップすること
により不在を処理し(430)、ユーザ・タスクを再ス
タートする。
【0031】上述の処理はライブラリ・オブジェクト要
求の評価(evaluation)を遅延させるか、レイジ(lazy)
にする。ローダはライブラリ・オブジェクトが使用され
ようとするまで、そのロードを延期する。.EXE ファイ
ル内の全てのDLLオブジェクト参照は初期にロードさ
れる。なぜならば、初期実行がこれらのオブジェクトの
いずれをも含むことができるからである。各DLLオブ
ジェクトが参照される時、そのオブジェクトにより参照
される次のレベルのDLLオブジェクトが処理される。
求の評価(evaluation)を遅延させるか、レイジ(lazy)
にする。ローダはライブラリ・オブジェクトが使用され
ようとするまで、そのロードを延期する。.EXE ファイ
ル内の全てのDLLオブジェクト参照は初期にロードさ
れる。なぜならば、初期実行がこれらのオブジェクトの
いずれをも含むことができるからである。各DLLオブ
ジェクトが参照される時、そのオブジェクトにより参照
される次のレベルのDLLオブジェクトが処理される。
【0032】以下のように発明を開示する。 (1)実行可能プログラムに対するメモリの割当てを管
理するシステムであって、(i)1次実行可能プログラ
ムをメモリにロードするための要求を受信する手段と、
(ii)上記1次実行可能プログラムにより参照される
2次実行可能プログラムを決定する手段と、(iii)
上記2次実行プログラムをメモリにロードすることな
く、該プログラムにメモリ・スロットを割当てる手段
と、(iv)上記割当てられてロードされてないあるス
ロットに対する参照を検出する手段であって、該参照が
検出される時の検出信号の生成を検出する手段と、
(v)上記検出信号に応答して、上記スロットを割当て
られた実行可能プログラムをメモリにロードする手段
と、を含むシステム。 (2)実行可能プログラムをロードする上記手段が、
(a)上記実行可能プログラムを記憶装置からコピーす
る手段と、(b)上記実行可能プログラム内のアドレス
参照を再配置する手段と、(c)上記実行可能プログラ
ムにより参照される実行可能プログラムを決定する手段
と、(d)上記参照される実行可能プログラムをメモリ
にロードすることなく、該プログラムにメモリ・スロッ
トを割当てる手段と、を含む、(1)記載のシステム。 (3)上記検出手段がページ不在検出システムである、
(2)記載のシステム。 (4)上記ロード手段が外部ページャである、(1)記
載のシステム。 (5)上記ロード手段が外部ページャである、(3)記
載のシステム。
理するシステムであって、(i)1次実行可能プログラ
ムをメモリにロードするための要求を受信する手段と、
(ii)上記1次実行可能プログラムにより参照される
2次実行可能プログラムを決定する手段と、(iii)
上記2次実行プログラムをメモリにロードすることな
く、該プログラムにメモリ・スロットを割当てる手段
と、(iv)上記割当てられてロードされてないあるス
ロットに対する参照を検出する手段であって、該参照が
検出される時の検出信号の生成を検出する手段と、
(v)上記検出信号に応答して、上記スロットを割当て
られた実行可能プログラムをメモリにロードする手段
と、を含むシステム。 (2)実行可能プログラムをロードする上記手段が、
(a)上記実行可能プログラムを記憶装置からコピーす
る手段と、(b)上記実行可能プログラム内のアドレス
参照を再配置する手段と、(c)上記実行可能プログラ
ムにより参照される実行可能プログラムを決定する手段
と、(d)上記参照される実行可能プログラムをメモリ
にロードすることなく、該プログラムにメモリ・スロッ
トを割当てる手段と、を含む、(1)記載のシステム。 (3)上記検出手段がページ不在検出システムである、
(2)記載のシステム。 (4)上記ロード手段が外部ページャである、(1)記
載のシステム。 (5)上記ロード手段が外部ページャである、(3)記
載のシステム。
【0033】(6)実行可能ルーチンを動的にロードす
る方法であって、(i)メイン実行可能ルーチンをメモ
リにロードするための要求を受信するステップと、(i
i)上記メイン実行可能ルーチンにより参照される全て
のルーチンのリストを作成するステップと、(iii)
上記ルーチンをロードすることなく、該ルーチンにメモ
リ・ロケーションを割当てるステップと、(iv)ある
上記割当てられたメモリ・ロケーションに対する参照を
検出し、検出信号を生成するステップと、(v)上記検
出信号に応答して、上記ルーチンを上記割当てられたメ
モリ・ロケーションにロードするステップと、を含む方
法。 (7)上記ロード・ステップが、(a)上記ルーチンを
記憶装置からコピーするステップと、(b)上記ルーチ
ン内のアドレス参照を再配置するステップと、(c)上
記ロード・ルーチンにより参照されるルーチンのリスト
を作成するステップと、(d)上記参照されるルーチン
をメモリにロードすることなく、該ルーチンにメモリ・
ロケーションを割当てるステップと、を含む、(6)記
載の方法。 (8)上記検出ステップがメモリ・ページ不在参照を検
出するステップを含む、(6)記載の方法。 (9)上記ロード・ステップが該ロード・ステップを実
行するために、制御を外部ページャに渡すステップを含
む、(6)記載の方法。
る方法であって、(i)メイン実行可能ルーチンをメモ
リにロードするための要求を受信するステップと、(i
i)上記メイン実行可能ルーチンにより参照される全て
のルーチンのリストを作成するステップと、(iii)
上記ルーチンをロードすることなく、該ルーチンにメモ
リ・ロケーションを割当てるステップと、(iv)ある
上記割当てられたメモリ・ロケーションに対する参照を
検出し、検出信号を生成するステップと、(v)上記検
出信号に応答して、上記ルーチンを上記割当てられたメ
モリ・ロケーションにロードするステップと、を含む方
法。 (7)上記ロード・ステップが、(a)上記ルーチンを
記憶装置からコピーするステップと、(b)上記ルーチ
ン内のアドレス参照を再配置するステップと、(c)上
記ロード・ルーチンにより参照されるルーチンのリスト
を作成するステップと、(d)上記参照されるルーチン
をメモリにロードすることなく、該ルーチンにメモリ・
ロケーションを割当てるステップと、を含む、(6)記
載の方法。 (8)上記検出ステップがメモリ・ページ不在参照を検
出するステップを含む、(6)記載の方法。 (9)上記ロード・ステップが該ロード・ステップを実
行するために、制御を外部ページャに渡すステップを含
む、(6)記載の方法。
【0034】(10)実行可能ルーチンをメモリに動的
にロードするための、コンピュータ・プログラム論理が
記録されるコンピュータ読出し可能媒体を有するコンピ
ュータ・システムであって、(i)1次実行可能ルーチ
ンをメモリにロードするための要求を受信する手段と、
(ii)上記1次実行可能ルーチンにより参照される2
次実行可能ルーチンを決定する手段と、(iii)上記
2次実行ルーチンをメモリにロードすることなく、該ル
ーチンにメモリ・スロットを割当てる手段と、(iv)
上記割当てられてロードされてないあるスロットに対す
る参照を検出する手段であって、該参照が検出される時
の検出信号の生成を検出する手段と、(v)上記検出信
号に応答して、上記スロットを割当てられた上記実行可
能ルーチンをメモリにロードする手段と、を含むコンピ
ュータ・システム。 (11)実行可能ルーチンをロードする上記手段が、
(a)上記実行可能ルーチンを記憶装置からコピーする
手段と、(b)上記実行可能ルーチン内のアドレス参照
を再配置する手段と、(c)上記実行可能ルーチンによ
り参照される実行可能ルーチンを決定する手段と、
(d)上記参照される実行可能ルーチンをメモリにロー
ドすることなく、該ルーチンにメモリ・スロットを割当
てる手段と、を含む、(10)記載のコンピュータ・シ
ステム。 (12)上記検出手段がページ不在検出システムであ
る、(11)記載のコンピュータ・システム。 (13)上記ロード手段が外部ページャである、(1
0)記載のコンピュータ・システム。 (14)上記ロード手段が外部ページャである、(1
2)記載のコンピュータ・システム。
にロードするための、コンピュータ・プログラム論理が
記録されるコンピュータ読出し可能媒体を有するコンピ
ュータ・システムであって、(i)1次実行可能ルーチ
ンをメモリにロードするための要求を受信する手段と、
(ii)上記1次実行可能ルーチンにより参照される2
次実行可能ルーチンを決定する手段と、(iii)上記
2次実行ルーチンをメモリにロードすることなく、該ル
ーチンにメモリ・スロットを割当てる手段と、(iv)
上記割当てられてロードされてないあるスロットに対す
る参照を検出する手段であって、該参照が検出される時
の検出信号の生成を検出する手段と、(v)上記検出信
号に応答して、上記スロットを割当てられた上記実行可
能ルーチンをメモリにロードする手段と、を含むコンピ
ュータ・システム。 (11)実行可能ルーチンをロードする上記手段が、
(a)上記実行可能ルーチンを記憶装置からコピーする
手段と、(b)上記実行可能ルーチン内のアドレス参照
を再配置する手段と、(c)上記実行可能ルーチンによ
り参照される実行可能ルーチンを決定する手段と、
(d)上記参照される実行可能ルーチンをメモリにロー
ドすることなく、該ルーチンにメモリ・スロットを割当
てる手段と、を含む、(10)記載のコンピュータ・シ
ステム。 (12)上記検出手段がページ不在検出システムであ
る、(11)記載のコンピュータ・システム。 (13)上記ロード手段が外部ページャである、(1
0)記載のコンピュータ・システム。 (14)上記ロード手段が外部ページャである、(1
2)記載のコンピュータ・システム。
【0035】
【発明の効果】以上説明したように、本発明はメモリ割
当てを制限し、参照オブジェクトにより要求されるメモ
リ割当てにロードする利点を有する。これはまた、割当
てられなければならないMachポート及びメモリ・ペ
ージの数を制限し、それにより全体的なシステムのオー
バヘッドを低減する。
当てを制限し、参照オブジェクトにより要求されるメモ
リ割当てにロードする利点を有する。これはまた、割当
てられなければならないMachポート及びメモリ・ペ
ージの数を制限し、それにより全体的なシステムのオー
バヘッドを低減する。
【0036】実施例はMachマイクロカーネルに関連
して示された。しかしながら、当業者には理解されるよ
うに、レイジ・ローディング処理はこのタイプのオペレ
ーティング・システムに限るものではない。ここで述べ
られる処理は他のオペレーティング・システム、特に仮
想メモリ管理をサポートするシステムに適用可能であ
る。
して示された。しかしながら、当業者には理解されるよ
うに、レイジ・ローディング処理はこのタイプのオペレ
ーティング・システムに限るものではない。ここで述べ
られる処理は他のオペレーティング・システム、特に仮
想メモリ管理をサポートするシステムに適用可能であ
る。
【図1】本発明で使用される情報処理システムを表すブ
ロック図である。
ロック図である。
【図2】実行可能オブジェクトの構造及び相関を示す図
である。
である。
【図3】本発明の実施例のコンポーネントを示すブロッ
ク図である。
ク図である。
【図4】本発明の処理ステップを表す流れ図である。
102 CPU 104 ハード・ディスク記憶装置 106 ランダム・アクセス・メモリ(RAM) 204、206 DLL 302 ユーザ 304 OS/2サーバ 308 ファイル・サーバ 310 タスキング 312 ローダ 314 メモリ・マネージャ 316 仮想メモリ・システム(VM)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームス・ウェンデル・アレンド アメリカ合衆国78681、テキサス州ラウ ンド・ロック、ブラックジャック・ドラ イブ 1501 (72)発明者 ポール・プラシド・ジアンガーラ アメリカ合衆国33434、フロリダ州ボ カ・ラトン、ノース・ウエスト・フォー ティース・ストリート 2591 (72)発明者 ラビンドラナス・カシナス・マニクンダ ラム アメリカ合衆国78728、テキサス州オー スティン、ウッド・チェイス・トレイル 2406 (72)発明者 ドナルド・ロバート・パジェット アメリカ合衆国78731、テキサス州オー スティン、キャット・クリーク・トレイ ル 6604 (72)発明者 ジェームス・マイケル・ペラン アメリカ合衆国78731、テキサス州オー スティン、ナンバー136、ドライ・クリ ーク・ドライブ 3839 (56)参考文献 特開 昭60−252973(JP,A) 特開 平1−258029(JP,A) 特開 平4−170643(JP,A) 特開 昭64−88742(JP,A) 特開 平1−286024(JP,A) J.I.クランツ,外著「OS/2− 特徴・機能・アプリケーション」1989, 10月 近代科学社発行 P.228〜237 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00
Claims (6)
- 【請求項1】実行可能プログラムに対するメモリ割当を
管理するシステムであって、 前記システムは、 (i)1次実行可能プログラムをメモリにロードするた
めの要求を受信し、ロードする手段と、 (ii)前記1次実行可能プログラムにより参照される2
次実行可能プログラムのリストを作成する手段と、 (iii)前記2次実行可能プログラムを参照されるまで
メモリにロードすることなく、該プログラムにメモリ・
スロットを割当てる手段と、 (iv)前記2次実行可能プログラムに割当てられたメモ
リ・スロットに対する参照を検出する手段と、 (v)前記検出に応答して、前記メモリ・スロットを割
当てられた前記2次実行可能プログラムをメモリにロー
ドする手段と、 を含み、前記2次 実行可能プログラムをメモリにロードする手段
は、 (a)前記2次実行可能プログラムを記憶装置からコピ
ーする手段と、 (b)前記2次実行可能プログラム内のアドレス参照を
再配置する手段と、 (c)前記2次実行可能プログラムにより参照される実
行可能プログラムのリストを作成し、決定する手段と、 (d)前記参照される実行可能プログラムを参照される
までメモリにロードすることなく、該プログラムにメモ
リ・スロットを割当てる手段と、 を含み、前記参照される実行可能プログラムは、前記2次実行可
能プログラムをメモリにロードする手段によってロード
すること、 を特徴とするシステム。 - 【請求項2】前記検出する手段がページ不在検出システ
ムである、請求項1記載のシステム。 - 【請求項3】前記2次実行可能プログラムをメモリにロ
ードする手段が外部ページャである、請求項1記載のシ
ステム。 - 【請求項4】実行可能プログラムに対するメモリ割当を
管理する方法であって、 前記方法は、 (i)1次実行可能プログラムをメモリにロードするた
めの要求を受信し、ロードするステップと、 (ii)前記1次実行可能プログラムにより参照される2
次実行可能プログラムのリストを作成するステップと、 (iii)前記2次実行可能プログラムを参照されるまで
メモリにロードすることなく、該プログラムにメモリ・
スロットを割当てるステップと、 (iv)前記2次実行可能プログラムに割当てられたメモ
リ・スロットに対する参照を検出するステップと、 (v)前記検出に応答して、前記メモリ・スロットを割
当てられた前記2次実行可能プログラムをメモリにロー
ドするステップと、 を含み、 前記2次実行可能プログラムをメモリにロードするステ
ップは、 (a)前記2次実行可能プログラムを記憶装置からコピ
ーするステップと、 (b)前記2次実行可能プログラム内のアドレス参照を
再配置するステップと、 (c)前記2次実行可能プログラムにより参照される実
行可能プログラムのリストを作成し、決定するステップ
と、 (d)前記参照される実行可能プログラムを参照される
までメモリにロードすることなく、該プログラムにメモ
リ・スロットを割当てるステップと、 を含み、 前記参照される実行可能プログラムは、前記2次実行可
能プログラムをメモリにロードするステップによってロ
ードすること、 を特徴とする方法。 - 【請求項5】前記検出するステップがメモリ・ページ不
在参照を検出するステップである、請求項4記載の方
法。 - 【請求項6】前記2次実行可能プログラムをメモリにロ
ードするステップが該ロードを実行するために、制御を
外部ページャに渡すステップを含む、請求項4記載の方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2364393A | 1993-02-26 | 1993-02-26 | |
US023643 | 1993-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06250924A JPH06250924A (ja) | 1994-09-09 |
JP3314378B2 true JP3314378B2 (ja) | 2002-08-12 |
Family
ID=21816373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00572894A Expired - Fee Related JP3314378B2 (ja) | 1993-02-26 | 1994-01-24 | 実行可能プログラムに対するメモリ割当を管理するシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5708811A (ja) |
EP (1) | EP0613084A1 (ja) |
JP (1) | JP3314378B2 (ja) |
KR (1) | KR0152461B1 (ja) |
CN (1) | CN1042862C (ja) |
BR (1) | BR9400603A (ja) |
CA (1) | CA2102883A1 (ja) |
Families Citing this family (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US7188352B2 (en) * | 1995-07-11 | 2007-03-06 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US8661477B2 (en) * | 1994-10-12 | 2014-02-25 | Touchtunes Music Corporation | System for distributing and selecting audio and video information and method implemented by said system |
US7424731B1 (en) | 1994-10-12 | 2008-09-09 | Touchtunes Music Corporation | Home digital audiovisual information recording and playback system |
WO1996012255A1 (fr) | 1994-10-12 | 1996-04-25 | Technical Maintenance Corporation | Systeme de reproduction audio-visuelle numerique intelligent |
US6466992B2 (en) | 1994-12-07 | 2002-10-15 | Next Computer, Inc. | Method for providing stand-in objects |
FR2753868A1 (fr) * | 1996-09-25 | 1998-03-27 | Technical Maintenance Corp | Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede |
US5960204A (en) * | 1996-10-28 | 1999-09-28 | J.D. Edwards World Source Company | System and method for installing applications on a computer on an as needed basis |
US6363436B1 (en) * | 1997-01-27 | 2002-03-26 | International Business Machines Corporation | Method and system for loading libraries into embedded systems |
US5878263A (en) * | 1997-03-05 | 1999-03-02 | International Business Machines Corporation | Internal chaining technique for fixup records |
US6385567B1 (en) * | 1997-07-31 | 2002-05-07 | Microsoft Corporation | Program-module substitution in a program loader for multiple-platform emulation |
JPH1185526A (ja) * | 1997-09-12 | 1999-03-30 | Hitachi Ltd | プログラムロード方法 |
FR2769165B1 (fr) * | 1997-09-26 | 2002-11-29 | Technical Maintenance Corp | Systeme sans fil a transmission numerique pour haut-parleurs |
US6292843B1 (en) * | 1998-01-16 | 2001-09-18 | International Business Machines Corporation | Quick loading of run time dynamic link library for OS/2 |
US6185733B1 (en) * | 1998-01-20 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for remote object code inclusion |
US6074432A (en) * | 1998-03-19 | 2000-06-13 | Xilinx, Inc. | Method for generating a software class compatible with two or more interpreters |
US6158047A (en) * | 1998-07-08 | 2000-12-05 | Hewlett-Packard Company | Client/server system for fast, user transparent and memory efficient computer language translation |
FR2781582B1 (fr) * | 1998-07-21 | 2001-01-12 | Technical Maintenance Corp | Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels |
FR2781591B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Systeme de reproduction audiovisuelle |
US8028318B2 (en) | 1999-07-21 | 2011-09-27 | Touchtunes Music Corporation | Remote control unit for activating and deactivating means for payment and for displaying payment status |
FR2781580B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent |
GB2340266B (en) * | 1998-07-31 | 2003-03-12 | Sony Uk Ltd | Data processing |
US6430569B1 (en) * | 1998-08-14 | 2002-08-06 | Sun Microsystems, Inc. | Methods and apparatus for type safe, lazy, user-defined class loading |
US8434099B2 (en) * | 1998-09-09 | 2013-04-30 | Microsoft Corporation | Efficient linking and loading for late binding and platform retargeting |
US7409694B2 (en) * | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
US6486897B1 (en) * | 1998-09-29 | 2002-11-26 | Apple Computer, Inc. | Multi-repository display system using separate presentation, adaptation and access layers |
US6314566B1 (en) * | 1998-09-29 | 2001-11-06 | Apple Computer, Inc. | Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries |
US8726330B2 (en) | 1999-02-22 | 2014-05-13 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US6308184B1 (en) * | 1999-04-09 | 2001-10-23 | Hewlett-Packard Company | Delayed unloading of a dynamically loadable file |
AU2004200283B2 (en) * | 1999-05-27 | 2006-11-02 | Sun Microsystems, Inc. | Module-by-module verification |
US6618769B1 (en) * | 1999-05-27 | 2003-09-09 | Sun Microsystems, Inc. | Module-by-module verification |
US6601114B1 (en) * | 1999-05-27 | 2003-07-29 | Sun Microsystems, Inc. | Fully lazy linking with module-by-module verification |
US6763397B1 (en) | 1999-05-27 | 2004-07-13 | Sun Microsystems, Inc. | Fully lazy linking |
US6766521B1 (en) * | 1999-05-27 | 2004-07-20 | Sun Microsystems, Inc. | Dataflow algorithm for symbolic computation of lowest upper bound type |
US7539973B2 (en) * | 1999-06-01 | 2009-05-26 | Bruce Hodge | Object type-declaration prefix syntax |
US6973560B1 (en) | 1999-07-16 | 2005-12-06 | Lamarck, Inc. | Fault tolerant and combinatorial software environment system, method and medium |
FR2796482B1 (fr) | 1999-07-16 | 2002-09-06 | Touchtunes Music Corp | Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles |
US6634019B1 (en) | 1999-07-16 | 2003-10-14 | Lamarck, Inc. | Toggling software characteristics in a fault tolerant and combinatorial software environment system, method and medium |
US6609246B1 (en) * | 1999-12-07 | 2003-08-19 | Bull Hn Information Systems Inc. | Integrated development environment for high speed transaction processing WWW applications on heterogeneous computer systems |
FR2805377B1 (fr) | 2000-02-23 | 2003-09-12 | Touchtunes Music Corp | Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede |
FR2805072B1 (fr) | 2000-02-16 | 2002-04-05 | Touchtunes Music Corp | Procede d'ajustement du volume sonore d'un enregistrement sonore numerique |
FR2805060B1 (fr) | 2000-02-16 | 2005-04-08 | Touchtunes Music Corp | Procede de reception de fichiers lors d'un telechargement |
FR2808906B1 (fr) | 2000-05-10 | 2005-02-11 | Touchtunes Music Corp | Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles |
FR2811175B1 (fr) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles |
FR2811114B1 (fr) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement |
US6498937B1 (en) | 2000-07-14 | 2002-12-24 | Trw Inc. | Asymmetric bandwidth wireless communication techniques |
KR100752067B1 (ko) * | 2000-07-25 | 2007-08-28 | 메크로비젼 코오포레이션 | 동적으로 연결 가능한 실행 가능 이미지들의 진정성을증명하는 시스템 및 방법 |
FR2814085B1 (fr) | 2000-09-15 | 2005-02-11 | Touchtunes Music Corp | Procede de divertissement base sur les jeux concours a choix multiples |
FR2820221B1 (fr) * | 2001-02-01 | 2004-08-20 | Cimai Technology | Procede et systeme pour gerer des executables a bibliotheques partagees |
US6960291B2 (en) * | 2001-06-19 | 2005-11-01 | Exxonmobil Research And Engineering Company | Naphtha desulfurization method |
DE10130115A1 (de) * | 2001-06-20 | 2003-01-02 | Oliver H Wesling | Verfahren zur beschleunigten, gesicherten und bedarfsorientierten Übertragung und Ferninstallation von Daten auf mobilen und stationären Computersystemen zum Zwecke der Datenreduktion und peerorientierten individuellen Beschaffung |
DE50104035D1 (de) * | 2001-12-10 | 2004-11-11 | Aladdin Knowledge Systems Gmbh | Verfahren zum Ausführen eines Programms auf einem Computer |
US7533101B2 (en) * | 2002-03-04 | 2009-05-12 | Microsoft Corporation | Extensible loader |
US7346780B2 (en) | 2002-04-03 | 2008-03-18 | Microsoft Corporation | Integrity ordainment and ascertainment of computer-executable instructions |
US7228426B2 (en) * | 2002-04-03 | 2007-06-05 | Microsoft Corporation | Integrity ordainment and ascertainment of computer-executable instructions with consideration for execution context |
US7117507B2 (en) * | 2002-06-03 | 2006-10-03 | Sumisho Computer Systems Corporation | Software atomization |
US20030226929A1 (en) * | 2002-06-06 | 2003-12-11 | Robert Knizner | Holding device for spare string trimmer line spools with slotted inner cavities |
US7281017B2 (en) * | 2002-06-21 | 2007-10-09 | Sumisho Computer Systems Corporation | Views for software atomization |
US7165075B2 (en) * | 2002-07-20 | 2007-01-16 | Microsoft Corporation | Object graph faulting and trimming in an object-relational database system |
US11029823B2 (en) | 2002-09-16 | 2021-06-08 | Touchtunes Music Corporation | Jukebox with customizable avatar |
US8103589B2 (en) | 2002-09-16 | 2012-01-24 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8151304B2 (en) * | 2002-09-16 | 2012-04-03 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US10373420B2 (en) * | 2002-09-16 | 2019-08-06 | Touchtunes Music Corporation | Digital downloading jukebox with enhanced communication features |
US9646339B2 (en) | 2002-09-16 | 2017-05-09 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8332895B2 (en) * | 2002-09-16 | 2012-12-11 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US12100258B2 (en) | 2002-09-16 | 2024-09-24 | Touchtunes Music Company, Llc | Digital downloading jukebox with enhanced communication features |
US7822687B2 (en) | 2002-09-16 | 2010-10-26 | Francois Brillon | Jukebox with customizable avatar |
US8584175B2 (en) | 2002-09-16 | 2013-11-12 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US8090943B1 (en) * | 2003-04-28 | 2012-01-03 | Teradata Us, Inc. | Preventing unauthorized access of routines in a library |
KR100617698B1 (ko) * | 2004-06-07 | 2006-08-28 | 삼성전자주식회사 | 기능별 데이터 저장을 위한 바이너리 파일 생성 장치 및방법과 그 방법이 저장된 컴퓨터 판독 가능한 저장 매체 |
US8117607B2 (en) * | 2004-08-18 | 2012-02-14 | International Business Machines Corporation | Administration of kernel extensions |
US8196098B2 (en) * | 2006-01-03 | 2012-06-05 | International Business Machines Corporation | System and method for executing temporary processing agents |
US7971182B1 (en) | 2006-05-09 | 2011-06-28 | Vmware, Inc. | Application environment specifications for provisioning application specific runtime environments using undefined symbols |
KR100790053B1 (ko) * | 2006-06-05 | 2008-01-02 | 주식회사 대우일렉트로닉스 | 마스터 장치의 번들 처리 장치 및 방법 |
CN101187899B (zh) * | 2006-11-17 | 2010-05-12 | 中兴通讯股份有限公司 | 嵌入式系统存储空间的优化方法 |
US20080163185A1 (en) * | 2006-12-29 | 2008-07-03 | Rto Software, Inc. | Delay-load optimizer |
US9330529B2 (en) * | 2007-01-17 | 2016-05-03 | Touchtunes Music Corporation | Game terminal configured for interaction with jukebox device systems including same, and/or associated methods |
US9171419B2 (en) | 2007-01-17 | 2015-10-27 | Touchtunes Music Corporation | Coin operated entertainment system |
KR100866627B1 (ko) * | 2007-01-29 | 2008-11-03 | 삼성전자주식회사 | 컨트롤 플로우를 이용한 페이지 프리로드 방법 및 그시스템 |
US9953481B2 (en) * | 2007-03-26 | 2018-04-24 | Touchtunes Music Corporation | Jukebox with associated video server |
US7900217B2 (en) * | 2007-03-29 | 2011-03-01 | Microsoft Corporation | Dynamic DLL cycle resolution |
US8707283B2 (en) * | 2007-03-29 | 2014-04-22 | Microsoft Corporation | Parallel DLL tree initialization |
US7971047B1 (en) | 2007-09-10 | 2011-06-28 | Vmware, Inc. | Operating system environment and installation |
US8001083B1 (en) | 2007-05-09 | 2011-08-16 | Vmware, Inc. | Repository including version management |
US8577937B1 (en) | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US9015180B1 (en) | 2007-05-09 | 2015-04-21 | Vmware, Inc. | Repository including file identification |
US8219987B1 (en) | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US8347263B1 (en) | 2007-05-09 | 2013-01-01 | Vmware, Inc. | Repository including installation metadata for executable applications |
US11262996B2 (en) | 2007-05-09 | 2022-03-01 | Vmware, Inc. | Repository including exclusion list |
US10290006B2 (en) * | 2008-08-15 | 2019-05-14 | Touchtunes Music Corporation | Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations |
US8332887B2 (en) | 2008-01-10 | 2012-12-11 | Touchtunes Music Corporation | System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server |
GB2456019A (en) * | 2007-12-31 | 2009-07-01 | Symbian Software Ltd | Loading dynamic link libraries in response to an event |
GB2461499A (en) * | 2008-05-30 | 2010-01-06 | Symbian Software Ltd | Loading software stored in two areas into RAM, the software in a first area is loaded whole and from a second it is demand paged loaded. |
GB2460462A (en) * | 2008-05-30 | 2009-12-02 | Symbian Software Ltd | Method for loading software components into RAM by modifying the software part to be loaded based on the memory location to be used. |
WO2010005569A1 (en) | 2008-07-09 | 2010-01-14 | Touchtunes Music Corporation | Digital downloading jukebox with revenue-enhancing features |
CN101645019A (zh) * | 2008-08-04 | 2010-02-10 | 优诺威讯国际有限公司 | 虚拟操作系统创建方法 |
US8370932B2 (en) * | 2008-09-23 | 2013-02-05 | Webroot Inc. | Method and apparatus for detecting malware in network traffic |
CN101727345B (zh) * | 2008-10-29 | 2013-09-04 | 国际商业机器公司 | 控制动态链接库dll加载状态的方法和系统 |
EP2409273A4 (en) | 2009-03-18 | 2016-05-11 | Touchtunes Music Corp | ENTERTAINMENT SERVER AND RELATED SOCIAL NETWORK SERVICES |
US12112093B2 (en) | 2009-03-18 | 2024-10-08 | Touchtunes Music Company, Llc | Entertainment server and associated social networking services |
US9292166B2 (en) | 2009-03-18 | 2016-03-22 | Touchtunes Music Corporation | Digital jukebox device with improved karaoke-related user interfaces, and associated methods |
US10564804B2 (en) | 2009-03-18 | 2020-02-18 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US10719149B2 (en) | 2009-03-18 | 2020-07-21 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US8171141B1 (en) | 2009-04-02 | 2012-05-01 | Vmware, Inc. | Provisioning system including stack manager |
JP5338452B2 (ja) * | 2009-04-24 | 2013-11-13 | 日本電気株式会社 | メモリ管理システム、メモリ管理方法及びプログラム |
CN105336349A (zh) | 2010-01-26 | 2016-02-17 | 踏途音乐公司 | 具有改进的用户界面的数字点播设备和相关方法 |
US8793809B2 (en) | 2011-04-25 | 2014-07-29 | Apple Inc. | Unified tracking data management |
GB2522772B (en) | 2011-09-18 | 2016-01-13 | Touchtunes Music Corp | Digital jukebox device with karaoke and/or photo booth features, and associated methods |
US11151224B2 (en) | 2012-01-09 | 2021-10-19 | Touchtunes Music Corporation | Systems and/or methods for monitoring audio inputs to jukebox devices |
CN103414838B (zh) | 2013-06-20 | 2015-12-23 | 威海华菱光电股份有限公司 | 图像扫描装置及其控制方法 |
WO2015070070A1 (en) | 2013-11-07 | 2015-05-14 | Touchtunes Music Corporation | Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices |
TWI722981B (zh) | 2014-03-25 | 2021-04-01 | 美商觸控調諧音樂公司 | 具改良使用者介面的數位點唱機裝置及相關聯方法 |
US9348625B2 (en) | 2014-05-23 | 2016-05-24 | Google Inc. | Application access to native and bundled libraries |
US10528735B2 (en) * | 2014-11-17 | 2020-01-07 | Morphisec Information Security 2014 Ltd. | Malicious code protection for computer systems based on process modification |
US11200070B2 (en) | 2018-08-03 | 2021-12-14 | International Business Machines Corporation | Dynamic-link library usage based on memory size |
US10983926B2 (en) | 2018-08-29 | 2021-04-20 | Red Hat, Inc. | Efficient userspace driver isolation for virtual machines |
US10754796B2 (en) * | 2018-08-29 | 2020-08-25 | Red Hat, Inc. | Efficient user space driver isolation by CPU page table switching |
US11662987B2 (en) * | 2021-08-06 | 2023-05-30 | International Business Machines Corporation | Logically splitting object code into modules with lazy loading of content |
US20230305890A1 (en) * | 2022-03-22 | 2023-09-28 | Nvidia Corporation | Application programming interface to identify location of program portions |
US20230305883A1 (en) * | 2022-03-22 | 2023-09-28 | Nvidia Corporation | Application programming interface to perform selective loading |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60252973A (ja) * | 1984-05-30 | 1985-12-13 | Fujitsu Ltd | ダイナミツクロ−デイング制御方式 |
US5291601A (en) * | 1989-06-01 | 1994-03-01 | Hewlett-Packard Company | Shared libraries implemented with linking program loader |
US5247678A (en) * | 1989-10-12 | 1993-09-21 | Texas Instruments Incorporated | Load time linker for software used with a multiprocessor system |
JPH0418638A (ja) * | 1990-05-11 | 1992-01-22 | Fujitsu Ltd | 静的メモリ割当て処理方法 |
US5241623A (en) * | 1990-09-27 | 1993-08-31 | General Electric Company | Method and system for delineation of structure and linkages between knowledge base modules |
US5291593A (en) * | 1990-10-24 | 1994-03-01 | International Business Machines Corp. | System for persistent and delayed allocation object reference in an object oriented environment |
US5247681A (en) * | 1990-12-18 | 1993-09-21 | International Business Machines Corporation | Dynamic link libraries system and method |
IL97894A0 (en) * | 1991-04-17 | 1992-06-21 | Ibm | Multi-processor computer system |
GB2261753B (en) * | 1991-11-19 | 1995-07-12 | Intel Corp | Multi-mode microprocessor with electrical pin for selective re-initialization of processor state |
US5359721A (en) * | 1991-12-18 | 1994-10-25 | Sun Microsystems, Inc. | Non-supervisor mode cross address space dynamic linking |
US5303392A (en) * | 1992-02-27 | 1994-04-12 | Sun Microsystems, Inc. | Accessing current symbol definitions in a dynamically configurable operating system |
-
1993
- 1993-11-10 CA CA002102883A patent/CA2102883A1/en not_active Abandoned
-
1994
- 1994-01-24 JP JP00572894A patent/JP3314378B2/ja not_active Expired - Fee Related
- 1994-02-10 EP EP94300983A patent/EP0613084A1/en not_active Withdrawn
- 1994-02-17 BR BR9400603A patent/BR9400603A/pt active Search and Examination
- 1994-02-24 KR KR1019940003597A patent/KR0152461B1/ko not_active IP Right Cessation
- 1994-02-24 CN CN94102158A patent/CN1042862C/zh not_active Expired - Fee Related
-
1995
- 1995-02-21 US US08/391,300 patent/US5708811A/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
J.I.クランツ,外著「OS/2−特徴・機能・アプリケーション」1989,10月 近代科学社発行 P.228〜237 |
Also Published As
Publication number | Publication date |
---|---|
CN1042862C (zh) | 1999-04-07 |
CN1101142A (zh) | 1995-04-05 |
EP0613084A1 (en) | 1994-08-31 |
KR0152461B1 (ko) | 1998-10-15 |
BR9400603A (pt) | 1994-09-27 |
CA2102883A1 (en) | 1994-08-27 |
KR940020238A (ko) | 1994-09-15 |
JPH06250924A (ja) | 1994-09-09 |
US5708811A (en) | 1998-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3314378B2 (ja) | 実行可能プログラムに対するメモリ割当を管理するシステムおよび方法 | |
US7380276B2 (en) | Processor extensions and software verification to support type-safe language environments running with untrusted code | |
US5761680A (en) | Coherent film system access during defragmentation operations on a storage medium | |
US5375241A (en) | Method and system for dynamic-link library | |
US7409694B2 (en) | Highly componentized system architecture with loadable virtual memory manager | |
US7143421B2 (en) | Highly componentized system architecture with a demand-loading namespace and programming model | |
US5634058A (en) | Dynamically configurable kernel | |
Yokote et al. | A Reflective Architecture for an Object-Oriented Distributed Operating System. | |
US8434099B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
US5774722A (en) | Method for efficient external reference resolution in dynamically linked shared code libraries in single address space operating systems | |
US7260815B1 (en) | Method and apparatus for managing registers in a binary translator | |
US7565665B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
JP4608580B2 (ja) | ソフトウェア・モジュールを実行する方法及び計算システム | |
US6728963B1 (en) | Highly componentized system architecture with a loadable interprocess communication manager | |
US5539899A (en) | System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage | |
US4970639A (en) | Virtual machine architecture independent program loader | |
US7162626B2 (en) | Use of common language infrastructure for sharing drivers and executable content across execution environments | |
US7558724B2 (en) | Operation region describing a virtual device | |
KR20000057010A (ko) | 바이트코드 실행 프로세스, 방법 및 데이터 처리 시스템과그를 구현한 컴퓨터 프로그램 제품 | |
JP2004070944A (ja) | アプリケーション向けにオペレーティングシステム機能を拡張するシステムおよび方法 | |
US20030018909A1 (en) | Method and apparatus for enforcing security policies in Java applications | |
US20090133042A1 (en) | Efficient linking and loading for late binding and platform retargeting | |
US8200938B2 (en) | Computer system and method providing a memory buffer for use with native and platform-independent software code | |
US6324688B1 (en) | Method and apparatus for optimizing execution of Java programs | |
US7426720B1 (en) | System and method for dynamic preloading of classes through memory space cloning of a master runtime system process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |