インタビューの質問のオペレーティングシステム:ダイナミックリンクライブラリと静的にリンクされたライブラリとの違い

  ダイナミックリンクライブラリは、いくつかのルーチンをカプセル化し、リソースを共有することができる他のアプリケーションプログラムのモジュールで共有することができるされています。拡張ダイナミックリンクライブラリのファイル名は、SYSとFONがDRVすることができる、一般的DLLであり、実行可能(EXE)は、ダイナミック・リンク・ライブラリに含まれているが、実行可能なコードは、単独で実行することができないことを除いて、非常に類似しており、そしてアプリケーションは、直接的または間接的に呼び出されなければなりません。

  ダイナミックリンクライブラリは静的に相対的な用語をリンクされています。いわゆる静的リンクは、関数または手順を指すは、実行可能ファイルへのリンクを起動および実行可能ファイルの一部となることができます。つまり、プログラムの実行可能ファイル内のコードの関数や手続きでは、ファイルは、時間を実行するために必要なすべてのコードが含まれています。複数のプログラムが同じ関数を呼び出すと、メモリは貴重なメモリリソースを無駄に、この機能の複数のコピーになります。機能コードは、ダイナミックリンクは、アプリケーションに実行可能ファイルにコピーされていないが、追加された機能は、記述情報(多くの場合、いくつかの再配置情報)と呼ばれる場合にのみ呼び出されます。唯一のアプリケーションがメモリにロードされたときに、アプリケーションおよび対応するダイナミックリンクライブラリとのリンクを確立する前に、関係の管理下にオペレーティングシステムを実行して起動します。呼び出された関数は、接続、機能コードに対応するダイナミックリンクライブラリを実行するために転送する前に、オペレーティング・システムによって生成された再配置情報に基づいて、ダイナミックリンクライブラリで実行する場合。

  一般に、アプリケーションは、メモリマップファイルによって実現されるダイナミックリンクライブラリの単一のコピーを確実にするために、ダイナミックリンクライブラリ、Win32のメモリシステムを使用する場合。DLLは、最初のグローバルスタックのWin32システムに転送し、このダイナミックリンクライブラリプロセスのアドレス空間を呼び出すためにマッピングされています。Win32のシステムでは、各プロセスが独自の32ビットのリニアアドレス空間を有する、ダイナミック・リンク・ライブラリは、複数のプロセスが呼び出された場合、各々がダイナミックリンクライブラリのマップを受け取ることになります。

おすすめ

転載: www.cnblogs.com/yichengming/p/11457223.html