JPH10254709A - メモリ・アドレスに索引付けする方法 - Google Patents

メモリ・アドレスに索引付けする方法

Info

Publication number
JPH10254709A
JPH10254709A JP10034550A JP3455098A JPH10254709A JP H10254709 A JPH10254709 A JP H10254709A JP 10034550 A JP10034550 A JP 10034550A JP 3455098 A JP3455098 A JP 3455098A JP H10254709 A JPH10254709 A JP H10254709A
Authority
JP
Japan
Prior art keywords
page
record
fixup
memory address
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10034550A
Other languages
English (en)
Inventor
Richard Forchin Michael
マイケル・リチャード・フォーチン
Affif Saba Maahaa
マーハー・アフィフ・サバ
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 JPH10254709A publication Critical patent/JPH10254709A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 プログラム・ファイル内のオブジェクトに関
連付けられたメモリ・アドレスに索引付けする方法。従
来技術において、ファイルはファイルがコンピュータ・
システムにロードされた場合にメモリ・アドレスを決定
するのに必要な情報を含んでいる単一のフィックスアッ
プ・レコード部分を有している。 【解決手段】 本発明において、フィックスアップ・レ
コードはプログラム・ファイルに定義されたページ(た
とえば、データまたはテキスト・ページ)内に配置され
ており、フィックスアップ・レコードは連鎖される。す
なわち、所与のフィックスアップ・ファイルは直前のフ
ィックスアップ・レコードに基づいている。このように
して、すべてのフィックスアップ・レコードの集合的な
大きさを小さくすることによって、ファイルの全体的な
大きさが大幅に削減される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は総括的にコンピュー
タ・システムに関し、詳細にいえば、コンピュータ・プ
ログラム・ファイルにおけるメモリ・アドレスの索引付
け方法に関する。
【0002】
【従来の技術】従来のコンピュータ・システム10の基
本構造を図1に示す。コンピュータ・システム10の中
心部は中央演算処理装置(CPU)ないしプロセッサ1
2であり、ユーザ・インタフェース用の入出力(I/
O)装置14(表示装置やキーボード)、コンピュータ
のオペレーティング・システムやユーザ・プログラムを
記憶する永続メモリ装置16(ハード・ディスクやフロ
ッピ・ディスクなど)、およびプログラムの命令を実行
するためにプロセッサ12が使用する一時メモリ装置1
8(ランダム・アクセス・メモリすなわちRAMなど)
を含むいくつかの周辺装置に接続されている。プロセッ
サ12は周辺装置と、バス20や直接チャネル22を含
む各種の手段によって通信を行う。コンピュータ・シス
テム10は、たとえばモデムやプリンタとの接続のため
のシリアル・ポートおよびパラレル・ポートなどの、図
示しない多くの付加的な構成要素を有していることがで
きる。当業者にはさらに、図1のブロック図に示されて
いるものとともに使用される他の構成要素があることが
理解されよう。たとえば、プロセッサ12に接続された
ディスプレイ・アダプタを使用して、表示装置を制御し
たり、メモリ・コントローラを一時メモリ装置18とプ
ロセッサ12の間のインタフェースとして使用すること
ができる。コンピュータ・システム10は、コンピュー
タを最初に起動したときに、周辺装置の1つ(通常は、
永続メモリ装置16)でオペレーティング・システムを
探して、ロードすることが主な目的であるファームウェ
ア24も含んでいる。
【0003】図2をさらに参照すると、ユーザ・プログ
ラムがコンピュータで実行されると、コンピュータのオ
ペレーティング・システム(OS)はまず、メイン・プ
ログラム・ファイル26を一時メモリ18にロードす
る。プログラム・ファイル26はデータまたはテキスト
として記憶されているいくつかのオブジェクト(値)
と、プログラムの実行中に入力されるデータおよびその
他のパラメータを処理する命令を含んでいる。プロセッ
サ12は「論理アドレス」を使用して、ファイル・オブ
ジェクトにアクセスするが、これらの論理アドレスはR
AM18の物理アドレスに対応している。命令およびデ
ータの物理メモリ・アドレスへの「結合」は、再配置可
能なコードを使用してプログラム・ファイルをコンパイ
ルすることによって達成され、ファイルのロード中にO
Sローダによって物理メモリに対して索引付け(リン
ク)される。それ故、メモリ18のアドレス・スペース
がロケーション・ゼロで始まっていても、ユーザ・プロ
グラムの最初のアドレスは必ずしもゼロである必要はな
く、これによりユーザ・プロセスは物理メモリの任意の
部分に常駐することができるようになる。
【0004】所与のファイル内のデータおよび命令は通
常、メモリ18に効率よく収まるような大きさにされた
「ページ」に分割される。プロセスがロードされ、メモ
リから除去されると、メモリ・スペースの自由領域が分
割すなわちフラグメント化される。プロセスをロードす
るのに十分な自由メモリがあることがよくあるが、自由
メモリは連続していない。ページングによって、プロセ
スがこのような不連続メモリ・スペースを占めることが
可能となる。次いで、論理アドレスが2つの部分、すな
わちページ番号とページ・オフセットに分割される。ペ
ージ番号はページ・テーブルで索引付けされており、ペ
ージ・テーブルは物理メモリ内の各ページのベース・ア
ドレスを含んでいて、このベース・アドレスはページ・
オフセットと組み合わせられて、オブジェクトの実物理
メモリ・アドレスを決定する。ページの大きさは特定の
ハードウェア・プラットフォームによって左右され、2
または4キロバイト(KB)の大きさが一般的である。
【0005】プログラムが特に複雑なものである場合、
あるいは大量のデータまたはテキストを必要とする場合
には、プログラムを複数のファイルに分割して、メモリ
・スペースをよりよく利用することが望ましい。このよ
うな手法の1つはダイナミック・リンク・ライブラリ
(DLL)を使用することを含んでいる。特定のユーザ
・プログラムに対して常に最初にロードされるメイン・
プログラム・ファイル26を、「実行可能」ファイルと
呼ぶ。実行可能ファイルは次いで、DLLファイル28
および30内のルーチンを呼び出すことができる。各D
LLルーチン参照に対する実行可能ファイルには、「ス
タブ」が含まれている。ルーチンが呼び出されると、ス
タブは新たにロードされたDLLファイル内のルーチン
のアドレスと置き換えられる。このようにして、特定の
ライブラリ・ルーチンを必要とするすべてのプロセス
は、ライブラリ・コードを1つだけ使用して、ハード・
ディスク16ならびにメイン・メモリ18両方における
ライブラリの複製を排除する。DLLを使用することに
は、ライブラリの更新(たとえば、バグ修正)が容易で
あるなどの他の利点がある。ダイナミック・リンクを行
わないと、ライブラリを参照するすべてのプログラムを
再リンクして、更新されたライブラリを使用することが
必要となるが、実行時までリンキングが遅らせられるた
め、DLLではこれが必要なくなる。
【0006】単一のDLLまたは実行可能ファイル内の
オブジェクトの間での参照は、これらのオブジェクトに
基づいていない限り、リンカ(linker)がこれらのオブ
ジェクトの実行時アドレスを決定できないため、問題を
生じる。その結果、リンカは実行可能ファイル・イメー
ジまたはDLLファイル・イメージ内に内部「フィック
スアップ」レコード32、34、36を置く。この場
合、OSローダはロード時にフィックスアップ・レコー
ドを読み取り、ここのDLLページまたは実行可能ペー
ジがページインされたときに、必要なフィックスアップ
情報を適用することを担う。実行可能ファイルまたはD
LLファイルに基づいている場合、すなわち特定の仮想
アドレスにロードされるとマークされている場合には、
内部フィックスアップをこれらのファイル(LXファイ
ルと呼ぶ)のフィックスアップ部分から除去することが
できる。残念ながら、指定された仮想アドレスが利用で
きない場合(すなわち、他のファイルがすでにそのアド
レスにロードされている場合)、DLLファイルまたは
実行可能ファイルをこのようにロードすることはできな
い。DLLファイルが通常共用アドレスにロードされて
いるため、ごくわずかなDLLファイルだけがベースと
なるに過ぎない。実行可能ファイルを私用仮想アドレス
にロードできるため、多くの実行可能ファイルがベース
とされる。内部フィックスアップに加えて、外部フィッ
クスアップもある。外部フィックスアップは複数のDL
Lもしくは実行可能物にわたる参照に関与する。
【0007】内部フィックスアップはロード時に読み込
まれ、ページ可能カーネル構造体に格納される。LXフ
ァイルのフィックスアップ部分はきわめて大きくなるこ
とがあり、通常20KBないし100KBであるが、7
50KB程度の大きさのフィックスアップ・レコードも
珍しくない。この大きさは必要な永続メモリ・スペース
を大きくし、しかもメモリ管理を複雑とするため、望ま
しくないことは明らかである。ロード時に読み込まれる
ことに加えて、ページ可能フィックスアップ構造体は対
応するページがメモリ中で不在となるたびに索引付けさ
れる。これらの構造体の索引付けにより、ページ不在が
生じ、全体的なシステム作用セットを増加させる。した
がって、きわめて大きいフィックスアップ・レコードを
使用することなく、LXファイル内でメモリ・アドレス
情報に索引付けする方法を考案することが望ましく、ま
た有利である。
【0008】
【発明が解決しようとする課題】したがって、本発明の
目的の1つは、コンピュータ・プログラム・ファイル内
でメモリ・アドレスを索引付けする改善された方法を提
供することである。
【0009】本発明の他の目的は、実行可能ファイルま
たはダイナミック・リンク・ライブラリとともに使用可
能なこのような方法を提供することである。
【0010】本発明のさらに他の目的は、ファイル内の
オブジェクトに関連付けられたフィックスアップ・レコ
ードの大きさを小さくするこのような方法を提供するこ
とである。
【0011】
【課題を解決するための手段】上記の目的は、少なくと
も2つのオブジェクトを含んでいる第1のページをプロ
グラム・ファイル内に定義するステップと、ページ内に
配置された第1のオブジェクトに関連付けられた第1の
メモリ・アドレスを計算するステップと、第1のオブジ
ェクトの第1のメモリ・アドレスを索引付けする第1の
フィックスアップ・レコードをファイルに書き込むステ
ップと、ページ内に配置された第2のオブジェクトに関
連付けられた第2のメモリ・アドレスを計算するステッ
プと、第2のオブジェクトの第2のメモリ・アドレスを
索引付けする第2のフィックスアップ・レコードをペー
ジに書き込むステップとを総括的に備えている、コンピ
ュータ・プログラム・ファイル内のオブジェクトに関連
付けられた複数のメモリ・アドレスを索引付けする方法
で達成される。第2のフィックスアップ・レコードは第
1のフィックスアップ・レコードに基づいて計算され
る。この技法はファイル内の任意の数のページおよびオ
ブジェクトに拡張することができる。たとえば、プログ
ラム・ファイルは少なくとも1つのオブジェクトを有し
ている第2のページを含んでいることができ、またこの
方法は第2のページ内に配置されたオブジェクトと関連
付けられた第3のメモリ・アドレスを計算するステップ
と、第3のメモリ・アドレスを索引付けする第3のフィ
ックスアップ・レコードを第2のページに書き込むステ
ップとをさらに備えていることとなる。この場合、第2
のフィックスアップ・レコードは第1のフィックスアッ
プ・レコードに基づいて計算され、第3のフィックスア
ップ・レコードは第2のフィックスアップ・レコードに
基づいて計算される。すなわち、フィックスアップ・レ
コードは連鎖され、フィックスアップ・レコードの集合
的な大きさを小さくすることにより、ファイルの全体的
な大きさが大幅に削減される。フィックスアップ・レコ
ードはページ・オフセット値およびオブジェクト・オフ
セット値を計算することによって作成される。
【0012】本発明の上記並びに付加的な目的、特徴、
および利点は以下の詳細な説明から明らかとなろう。
【0013】本発明の特性と考えられる新規な特徴を首
記の特許請求の範囲に記載した。しかしながら、本発明
自体、ならびに本発明の好ましい使用の形態、その他の
目的および利点は、例示的な実施の形態の以下の詳細な
説明を添付図面と関連して読んだ場合に最もよく理解さ
れるであろう。
【0014】
【発明の実施の形態】本発明はコンピュータ・システム
で動作するようになされたコンピュータ・プログラム・
ファイル内にメモリ・アドレスを索引付けする方法に関
するものである。コンピュータ・システムのハードウェ
アは図1に示した各種の構成要素を含んでいることがで
きるが、コンピュータ・システムは必ずしも従来のもの
でなくてもよい。すなわち、新しいハードウェア構成要
素を含んでいることも、あるいは既存の構成要素に対す
る新規な相互接続アーキテクチャを有していてもよい。
したがって、本発明を図1を参照して理解することがで
きるであろうが、この参照を限定的な意味に解すべきで
はない。
【0015】図3を参照すると、本発明にしたがって構
成されたコンピュータ・ファイル40の実施の形態の1
つが示されている。ファイル40は実行可能ファイル、
またはダイナミック・リンク・ライブラリなどの他のロ
ード可能(LX)ファイルであり、ファイル40内に定
義されたそれぞれのデータおよびテキスト・ページ5
2、54、56および58内に配置された主フィックス
アップ・レコード42およびその他のフィックスアップ
・レコード44、46、48および50を含む複数のフ
ィックスアップ・レコードを有している。以下で詳細に
説明するように、これらのフィックスアップ・レコード
は、フィックスアップ・レコードに関連付けられたファ
イル・スペースの全体的な量を大幅に削減するような態
様で連続的に作成すなわち連鎖されている。図3に示さ
れているのは4ページだけであるが、各々が関連するフ
ィックスアップ・レコードを有しているもっと多くのペ
ージがあってもよいことを理解されたい。また、ファイ
ルの各ページにフィックスアップ・レコードを設ける必
要はないが、当分野の技術者にはこれを行うことによ
り、フィックスアップ・レコードの大きさを削減する技
法が最適化されることが理解されよう。
【0016】図4は本発明のフィックスアップ・レコー
ド連鎖技法を実施する方法の1つを示す。連鎖の最初の
ロケーションに書き込まれるアドレスは、既存のローダ
・コードを使用した従来の態様で計算される(60)。
しかしながら、この固定アドレスをターゲット・ロケー
ションに書き込む前に、ターゲット・ロケーションから
内容(32ビット)が以下で"X"と呼ばれる一時変数に
読み込まれる(62)。この変数XをAND演算で適切
な値(2つのセグメント−12ビット・セグメントおよ
び32ビット・セグメント−を有する32ビットアドレ
スの場合には、0xFFF00000)と組み合わせる
ことにより、内部連鎖の次のフィックスアップが適用さ
れるページ・オフセットが生じる(64)。この値を取
りいれ、さらにこれを他のAND演算によって他の値
(0x000FFFFF)と組み合わせることにより、
オブジェクト・オフセット値が生じる(66)。この値
は連鎖の第1のアドレスに関して計算された値ととも
に、ページ・オフセット・ロケーションに書き込まれる
(68)。ステップ62ないし68は次いで、連鎖の終
わり(0xFFF)に対応するページ・オフセットが求
められるまで、ページ内の各オブジェクトに対して繰り
返される(70)。
【0017】内部フィックスアップ情報のまとまりを実
際のテキストおよびデータ・ページ内に格納することに
より、4KBのページは同じページ内のどのバイトを修
復する必要があるのかを決定するためにローダが使用す
ることのできる情報を含んでいる。4KBのページ内に
収められているデータの量により、LXファイルのフィ
ックスアップ部分で必要とされるバイト数は70%ない
し90%少なくなる。読み込まれるものが少ないため、
この手法はロード時間を短縮し、また索引のための構造
体の大きさが小さいため、この手法は全体的なシステム
作用セットを小さくする。
【0018】この技法は特定のプロダクト(プログラ
ム)に関連するすべてのDLLファイル、またはDLL
ファイルのサブセットに適用される。たとえば、本発明
をインターナショナル・ビジネス・マシーンズ・コーポ
レーション(IBM)が販売しているWARP(商標)
オペレーティング・システムをブートするのに必要なフ
ァイルに適用した場合、ファイル・サイズの全体的な節
減は2メガバイト(MB)を超える。メモリに読み込ま
れるフィックスアップ・レコードの全体的な節減も2M
Bを超える。さらに、システム応答性テストにおける1
0%の改善、ならびにブート時間の15%〜20%の削
減も認められた。基底化を希望に応じ、任意のDLLフ
ァイル(たとえば、1つまたは2つのシステム・ファイ
ル)に依然与えることができ、また本発明の連鎖技法が
かなりのRAMおよびハード・ディスク・スペースを節
減し、かつ基底化よりも柔軟であるため、他のDLLに
使用することができる。
【0019】本発明を特定の実施の形態を参照して説明
してきたが、この説明は限定的な意味で解釈されること
を意味するものではない。開示した実施の形態の各種の
改変形、ならびに本発明の他の実施の形態が、本発明の
説明を参照すると当分野の技術者に明らかとなろう。し
たがって、首記の特許請求の範囲に規定した本発明の趣
旨および範囲から逸脱することなく、このような改変形
を作成できることが考えられる。
【0020】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0021】(1)コンピュータ・プログラム・ファイ
ル内のオブジェクトに関連付けられた複数のメモリ・ア
ドレスに索引付けする方法であって、少なくとも2つの
オブジェクトを含んでいる第1のページをプログラム・
ファイル内に定義するステップと、ページ内に配置され
た第1のオブジェクトに関連付けられた第1のメモリ・
アドレスを計算するステップと、前記第1のオブジェク
トの前記第1のメモリ・アドレスを索引付けする第1の
フィックスアップ・レコードをファイルに書き込むステ
ップと、ページ内に配置された第2のオブジェクトに関
連付けられた第2のメモリ・アドレスを計算するステッ
プと、前記第2のオブジェクトの前記第2のメモリ・ア
ドレスを索引付けする第2のフィックスアップ・レコー
ドをページに書き込むステップとを備えている方法。 (2)前記第2のフィックスアップ・レコードが前記第
1のフィックスアップ・レコードに基づいて計算され
る、上記(1)に記載の方法。 (3)前記第1のフィックスアップ・レコードがページ
・オフセット値を生成することによって作成される、上
記(1)に記載の方法。 (4)少なくとも1つのオブジェクトを有する第2のペ
ージをプログラム・ファイル内に定義するステップと、
前記第2のページ内に配置されたオブジェクトと関連付
けられた第3のメモリ・アドレスを計算するステップ
と、前記第3のメモリ・アドレスを索引付けする第3の
フィックスアップ・レコードを前記第2のページに書き
込むステップとをさらに備えている上記(1)に記載の
方法。 (5)前記第1のフィックスアップ・レコードがオブジ
ェクト・オフセット値を生成することによって作成され
る、上記(3)に記載の方法。 (6)前記第2のフィックスアップ・レコードが前記第
1のフィックスアップ・レコードに基づいて計算され、
前記第3のフィックスアップ・レコードが前記第2のフ
ィックスアップ・レコードに基づいて計算される上記
(4)に記載の方法。 (7)コンピュータ・プログラム・ファイル内のオブジ
ェクトに関連付けられた複数のメモリ・アドレスに索引
付けする方法であって、ページのうち第1のものが少な
くとも第1と第2のオブジェクトを含んでおり、ページ
のうち第2のものが少なくとも第3と第4のオブジェク
トを含んでいる少なくとも2つのページをプログラム・
ファイル内に定義するステップと、第1のオブジェクト
に関連付けられた第1のメモリ・アドレスを計算するス
テップと、前記第1のメモリ・アドレスを索引付けする
第1のページ・フィックスアップ・レコードをファイル
に書き込むステップと、第2のオブジェクトに関連付け
られた第2のメモリ・アドレスを計算するステップと、
前記第2のメモリ・アドレスを索引付けする前記第1の
ページ・フィックスアップ・レコードを第1のページに
書き込むステップと、第3のオブジェクトに関連付けら
れた第3のメモリ・アドレスを計算するステップと、前
記第3のメモリ・アドレスを索引付けする第2のページ
・フィックスアップ・レコードを第2のページに書き込
むステップと、第4のオブジェクトに関連付けられた第
4のメモリ・アドレスを計算するステップと、前記第4
のメモリ・アドレスを索引付けする第3のページ・フィ
ックスアップ・レコードを第2のページに書き込むステ
ップとを備えている方法。 (8)ページ・フィックスアップ・レコードの各々がそ
れぞれのページ・オフセット値を生成することによって
作成される、上記(7)に記載の方法。 (9)前記第1のページ・フィックスアップ・レコード
が主フィックスアップ・レコードに基づいて計算され、
前記第2のページ・フィックスアップ・レコードが前記
第1のページ・フィックスアップ・レコードに基づいて
計算され、前記第3のページ・フィックスアップ・レコ
ードが前記第2のページ・フィックスアップ・レコード
に基づいて計算される上記(7)に記載の方法。 (10)記録可能媒体と、該記録可能媒体に記録された
プログラム・ファイルであって、該プログラム・ファイ
ルが少なくとも第1のページを有しており、該第1のペ
ージが少なくとも第1および第2のオブジェクトを含ん
でおり、前記プログラム・ファイルが前期第1のオブジ
ェクトに関連付けられた第1のメモリ・アドレスを索引
付けする主フィックスアップ・レコードをさらに有して
おり、前記第1のページが前記第2のオブジェクトに関
連付けられた第2のメモリ・アドレスを索引付けする第
1のページ・フィックスアップ・レコードをさらに有し
ているプログラム・ファイルとを備えている製品。 (11)前記ページ・フィックスアップ・レコードが前
記第1のフィックスアップ・レコードに基づいて計算さ
れる、上記(10)に記載の製品。 (12)前記プログラム・ファイルが第2のページをさ
らに有しており、前記第2のページが少なくとも第3お
よび第4のオブジェクトを有しており、前記第2のペー
ジが前記第3のオブジェクトと関連付けられた第3のメ
モリ・アドレスを索引付けする第2のページ・フィック
スアップ・レコード、および前記第4のオブジェクトに
関連付けられた第4のメモリ・アドレスを索引付けする
第3のページ・フィックスアップ・レコードをさらに有
している上記(10)に記載の製品。 (13)前記第1のページ・フィックスアップ・レコー
ドが前記主フィックスアップ・レコードに基づいて計算
され、前記第2のページ・フィックスアップ・レコード
が前記第1のページ・フィックスアップ・レコードに基
づいて計算され、前記第3のページ・フィックスアップ
・レコードが前記第2のページ・フィックスアップ・レ
コードに基づいて計算される上記(12)に記載の製
品。
【図面の簡単な説明】
【図1】従来のコンピュータ・システムのブロック図で
ある。
【図2】実行可能ファイル、およびフィックスアップ・
レコードを有しているダイナミック・リンク・ライブラ
リをロードする従来技術の方法の図である。
【図3】ファイル内のテキストおよびデータ・ページに
配置された複数のフィックスアップ・レコードを有す
る、本発明にしたがって構成されたコンピュータ・ファ
イルの実施の形態の1つの図である。
【図4】本発明による内部フィックスアップ・レコード
を連鎖する方法を示す流れ図である。
【符号の説明】
40 コンピュータ・ファイル 42 主フィックスアップ・レコード 44 フィックスアップ・レコード 46 フィックスアップ・レコード 48 フィックスアップ・レコード 50 フィックスアップ・レコード 52 データおよびテキスト・ページ 54 データおよびテキスト・ページ 56 データおよびテキスト・ページ 58 データおよびテキスト・ページ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーハー・アフィフ・サバ アメリカ合衆国78664 テキサス州ラウン ド・ロック カウントリー・エール・ドラ イブ 708−ビー

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・プログラム・ファイル内の
    オブジェクトに関連付けられた複数のメモリ・アドレス
    に索引付けする方法であって、 少なくとも2つのオブジェクトを含んでいる第1のペー
    ジをプログラム・ファイル内に定義するステップと、 ページ内に配置された第1のオブジェクトに関連付けら
    れた第1のメモリ・アドレスを計算するステップと、 前記第1のオブジェクトの前記第1のメモリ・アドレス
    を索引付けする第1のフィックスアップ・レコードをフ
    ァイルに書き込むステップと、 ページ内に配置された第2のオブジェクトに関連付けら
    れた第2のメモリ・アドレスを計算するステップと、 前記第2のオブジェクトの前記第2のメモリ・アドレス
    を索引付けする第2のフィックスアップ・レコードをペ
    ージに書き込むステップとを備えている方法。
  2. 【請求項2】前記第2のフィックスアップ・レコードが
    前記第1のフィックスアップ・レコードに基づいて計算
    される、請求項1に記載の方法。
  3. 【請求項3】前記第1のフィックスアップ・レコードが
    ページ・オフセット値を生成することによって作成され
    る、請求項1に記載の方法。
  4. 【請求項4】少なくとも1つのオブジェクトを有する第
    2のページをプログラム・ファイル内に定義するステッ
    プと、 前記第2のページ内に配置されたオブジェクトと関連付
    けられた第3のメモリ・アドレスを計算するステップ
    と、 前記第3のメモリ・アドレスを索引付けする第3のフィ
    ックスアップ・レコードを前記第2のページに書き込む
    ステップとをさらに備えている請求項1に記載の方法。
  5. 【請求項5】前記第1のフィックスアップ・レコードが
    オブジェクト・オフセット値を生成することによって作
    成される、請求項3に記載の方法。
  6. 【請求項6】前記第2のフィックスアップ・レコードが
    前記第1のフィックスアップ・レコードに基づいて計算
    され、前記第3のフィックスアップ・レコードが前記第
    2のフィックスアップ・レコードに基づいて計算される
    請求項4に記載の方法。
  7. 【請求項7】コンピュータ・プログラム・ファイル内の
    オブジェクトに関連付けられた複数のメモリ・アドレス
    に索引付けする方法であって、 ページのうち第1のものが少なくとも第1と第2のオブ
    ジェクトを含んでおり、ページのうち第2のものが少な
    くとも第3と第4のオブジェクトを含んでいる少なくと
    も2つのページをプログラム・ファイル内に定義するス
    テップと、 第1のオブジェクトに関連付けられた第1のメモリ・ア
    ドレスを計算するステップと、 前記第1のメモリ・アドレスを索引付けする第1のペー
    ジ・フィックスアップ・レコードをファイルに書き込む
    ステップと、 第2のオブジェクトに関連付けられた第2のメモリ・ア
    ドレスを計算するステップと、 前記第2のメモリ・アドレスを索引付けする前記第1の
    ページ・フィックスアップ・レコードを第1のページに
    書き込むステップと、 第3のオブジェクトに関連付けられた第3のメモリ・ア
    ドレスを計算するステップと、 前記第3のメモリ・アドレスを索引付けする第2のペー
    ジ・フィックスアップ・レコードを第2のページに書き
    込むステップと、 第4のオブジェクトに関連付けられた第4のメモリ・ア
    ドレスを計算するステップと、 前記第4のメモリ・アドレスを索引付けする第3のペー
    ジ・フィックスアップ・レコードを第2のページに書き
    込むステップとを備えている方法。
  8. 【請求項8】ページ・フィックスアップ・レコードの各
    々がそれぞれのページ・オフセット値を生成することに
    よって作成される、請求項7に記載の方法。
  9. 【請求項9】前記第1のページ・フィックスアップ・レ
    コードが主フィックスアップ・レコードに基づいて計算
    され、 前記第2のページ・フィックスアップ・レコードが前記
    第1のページ・フィックスアップ・レコードに基づいて
    計算され、 前記第3のページ・フィックスアップ・レコードが前記
    第2のページ・フィックスアップ・レコードに基づいて
    計算される請求項7に記載の方法。
  10. 【請求項10】記録可能媒体と、 該記録可能媒体に記録されたプログラム・ファイルであ
    って、該プログラム・ファイルが少なくとも第1のペー
    ジを有しており、該第1のページが少なくとも第1およ
    び第2のオブジェクトを含んでおり、前記プログラム・
    ファイルが前期第1のオブジェクトに関連付けられた第
    1のメモリ・アドレスを索引付けする主フィックスアッ
    プ・レコードをさらに有しており、前記第1のページが
    前記第2のオブジェクトに関連付けられた第2のメモリ
    ・アドレスを索引付けする第1のページ・フィックスア
    ップ・レコードをさらに有しているプログラム・ファイ
    ルとを備えている製品。
  11. 【請求項11】前記ページ・フィックスアップ・レコー
    ドが前記第1のフィックスアップ・レコードに基づいて
    計算される、請求項10に記載の製品。
  12. 【請求項12】前記プログラム・ファイルが第2のペー
    ジをさらに有しており、 前記第2のページが少なくとも第3および第4のオブジ
    ェクトを有しており、 前記第2のページが前記第3のオブジェクトと関連付け
    られた第3のメモリ・アドレスを索引付けする第2のペ
    ージ・フィックスアップ・レコード、および前記第4の
    オブジェクトに関連付けられた第4のメモリ・アドレス
    を索引付けする第3のページ・フィックスアップ・レコ
    ードをさらに有している請求項10に記載の製品。
  13. 【請求項13】前記第1のページ・フィックスアップ・
    レコードが前記主フィックスアップ・レコードに基づい
    て計算され、 前記第2のページ・フィックスアップ・レコードが前記
    第1のページ・フィックスアップ・レコードに基づいて
    計算され、 前記第3のページ・フィックスアップ・レコードが前記
    第2のページ・フィックスアップ・レコードに基づいて
    計算される請求項12に記載の製品。
JP10034550A 1997-03-05 1998-02-17 メモリ・アドレスに索引付けする方法 Pending JPH10254709A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/810,783 US5878263A (en) 1997-03-05 1997-03-05 Internal chaining technique for fixup records
US08/810783 1997-03-05

Publications (1)

Publication Number Publication Date
JPH10254709A true JPH10254709A (ja) 1998-09-25

Family

ID=25204692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10034550A Pending JPH10254709A (ja) 1997-03-05 1998-02-17 メモリ・アドレスに索引付けする方法

Country Status (2)

Country Link
US (1) US5878263A (ja)
JP (1) JPH10254709A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421827B1 (en) * 1997-12-17 2002-07-16 International Business Machines Corporation System and method for detecting and reordering loading patterns
US6530077B1 (en) * 1999-09-15 2003-03-04 Powerquest Corporation Device and method for releasing an in-memory executable image from its dependence on a backing store
US6772141B1 (en) 1999-12-14 2004-08-03 Novell, Inc. Method and apparatus for organizing and using indexes utilizing a search decision table
CA2418670A1 (en) * 2003-02-11 2004-08-11 Ibm Canada Limited - Ibm Canada Limitee Method and system for generating executable code for formatiing and printing complex data structures
US7574705B2 (en) * 2004-06-29 2009-08-11 Sun Microsystems, Inc. Method and apparatus for efficiently resolving symbolic references in a virtual machine
US8671256B2 (en) * 2007-08-27 2014-03-11 International Business Machines Corporation Migrating contents of a memory on a virtual machine
US9274949B2 (en) 2007-08-27 2016-03-01 International Business Machines Corporation Tracking data updates during memory migration
US8661211B2 (en) * 2007-08-27 2014-02-25 International Business Machines Corporation Method for migrating contents of a memory on a virtual machine
US8694990B2 (en) * 2007-08-27 2014-04-08 International Business Machines Corporation Utilizing system configuration information to determine a data migration order

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02272651A (ja) * 1989-04-13 1990-11-07 Nec Corp 領域管理方式
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JPH08502136A (ja) * 1992-10-09 1996-03-05 マイクロソフト コーポレイション タイプライブラリーへインターフェイスする方法及びシステム
JPH08508593A (ja) * 1993-03-25 1996-09-10 タリジェント インコーポレイテッド 異なるロードフォーマットに体するオブジェクト指向ローダシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297291A (en) * 1991-03-07 1994-03-22 Digital Equipment Corporation System for linking program units by binding symbol vector index in the symbol table into calling image to obtain current value of the target image
US5437006A (en) * 1993-01-27 1995-07-25 Microsoft Corporation Spreadsheet command/function capability from a dynamic-link library
CA2102883A1 (en) * 1993-02-26 1994-08-27 James W. Arendt System and method for lazy loading of shared libraries
US5530858A (en) * 1993-04-01 1996-06-25 Intel Corporation Method and apparatus for background processing for PCMCIA card services
US5408665A (en) * 1993-04-30 1995-04-18 Borland International, Inc. System and methods for linking compiled code with extended dictionary support
US5548759A (en) * 1994-07-05 1996-08-20 Microsoft Corporation System for storing executable code within a resource data section of an executable file
US5526485A (en) * 1994-10-13 1996-06-11 Microsoft Corporation Just-in-time debugging system and methods under the windows 3.0 and windows 3.1 operating systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02272651A (ja) * 1989-04-13 1990-11-07 Nec Corp 領域管理方式
JPH08502136A (ja) * 1992-10-09 1996-03-05 マイクロソフト コーポレイション タイプライブラリーへインターフェイスする方法及びシステム
JPH08508593A (ja) * 1993-03-25 1996-09-10 タリジェント インコーポレイテッド 異なるロードフォーマットに体するオブジェクト指向ローダシステム
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構

Also Published As

Publication number Publication date
US5878263A (en) 1999-03-02

Similar Documents

Publication Publication Date Title
US7519806B2 (en) Virtual partition for recording and restoring computer data files
US5303392A (en) Accessing current symbol definitions in a dynamically configurable operating system
CN100501678C (zh) 在多引导系统中控制存储访问
US6279109B1 (en) Computing system and operating method for booting and running a graphical user interface (GUI) with r/w hard drive partition unavailable
US8001359B2 (en) Mapping an N-bit application ported from an M-bit application to an N-bit architecture
US5291601A (en) Shared libraries implemented with linking program loader
US6976221B2 (en) System and method for flexible software linking
US5701477A (en) Method and apparatus for master boot record shadowing
KR100518584B1 (ko) 공유 라이브러리 시스템 및 상기 시스템 구축 방법
US5355498A (en) Method and apparatus for booting a computer system without loading a device driver into memory
US6996706B1 (en) Booting an operating system or running other pre-boot code from a file stored under a different operating system
US6052778A (en) Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs
US20030233534A1 (en) Enhanced computer start-up methods
US6665735B1 (en) Method of changing a dynamic link library function efficiently and a computer system for executing the same
US6934833B2 (en) Operating system selector and data storage drive
JPH06250924A (ja) 共用ライブラリの動的ロードのためのシステム及び方法
KR102051086B1 (ko) 파일저장 기능을 지원하는 부팅 디스크
US5553286A (en) System and method for preparing a computer program for execution
JPH06324849A (ja) オペレーティング・システム環境の起動方法およびシステム
WO1992007319A1 (en) System for multiple access hard disk partitioning
JPH10260842A (ja) 動的ブート・ファイルシステムの選択
US20050044292A1 (en) Method and apparatus to retain system control when a buffer overflow attack occurs
JP3917612B2 (ja) 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
CN111258666A (zh) 计算机文件的读取方法、装置、计算机系统及存储介质
JPH10254709A (ja) メモリ・アドレスに索引付けする方法

Legal Events

Date Code Title Description
A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040611