9

Libc共有ライブラリがメモリにロードされ、プロセス間で共有される方法を理解したいですか? メモリにロードされ、すべてのプロセス間で共有される1つのlibcインスタンスがありますか、それともプロセスごとにメモリ内の各libcインスタンスですか。libc がプロセス間でどのように共有されているかは不明です。

ありがとうアディティア

4

1 に答える 1

5

libc の 1 つのインスタンスは、すべてのプロセス間で共有されます。「共有ライブラリと動的読み込みに関する裏話」の記事を参照してください。

具体的には、ライブラリはほとんどが実行可能な命令で構成されており、このコードは通常自己変更しないため、オペレーティング システムは、プロセス間で共有される読み取り専用メモリ領域にライブラリ コードを配置するように調整できます (ページ共有やその他の仮想メモリ技術を使用)。そのため、何百ものプログラムが実行されていて、各プログラムに同じライブラリが含まれている場合、オペレーティング システムは、ライブラリの命令の単一の共有コピーを物理メモリにロードできます。これにより、メモリ使用量が削減され、システム パフォーマンスが向上します。

「共有ライブラリの分析」の記事も参照してください。

于 2011-04-21T22:43:52.180 に答える