共有ライブラリーと共有メモリー

このトピックでは、ライブラリーの共有とメモリー割り当て用に提供されているオペレーティング・システム機能について説明します。

AIX オペレーティング・システムは、 動的にバインドされた共有ライブラリーを作成し使用す るための機能を提供しています。 動的バインドを用いると、ユーザー・コードで参照され 、共有ライブラリーで定義された 外部シンボルを、実行時にローダーによって解決することができます。

共有ライブラリー・コードは、 ディスク上の実行可能イメージにはありません。 共有コードは、共有ライブラリー・セグメントのメモリーに一回ロードさ れ、それを参照するすべてのプロセスによって共有されます。 共有ライブラリーの利点を以下に示します。

  • 共有ライブラリー・コードは 実行可能プログラムに組み込まれていないため、使用するディスク・スペースが少なくてすむ。
  • 共有ライブラリー・コードが ロードされるのは一回だけであるため、使用するメモリーが少ない。
  • 共有ライブラリー・コード が既にメモリー内に置かれていることがあるため、ロード時間が減る可能性がある。
  • 共有ライブラリー・コードが既にメモリー内にあるときは、 ページ・フォールトが発生することがほとんどないため、パフォーマンスが向上する可能性がある。 しかし、1 つから 8 つの命令の共有ライブラリー・ルーチン の呼び出しで、パフォーマンス・コストが低下します。

モジュールの参照に使用できるようにする共有ライブラリー・コード で定義されたシンボルは、-bexpall オプションが使用されない限り、 エクスポート・ファイルを用いて明示的にエクスポートする必要があります。 ファイルの最初の行には、 オプショナルで共有ライブラリーのパス名が入ります。 次の行には、エクスポートされるシンボルが入ります。