検索

ホームページ  >  に質問  >  本文

linux - 进程之间是如何共享代码段的?

如果一个程序运行了两个实例,那么有两个进程,这两个进程应该共享代码吧。
但是网上虚拟地址空间的布局中,每个进程都有代码段。那么进程是怎么共享代码的?难道是后来产生的进程的代码段指向前面产生进程的代码段?

高洛峰高洛峰2883日前896

全員に返信(1)返信します

  • 巴扎黑

    巴扎黑2017-04-17 14:44:13

    プログラムが 2 つのインスタンスを実行する場合、残念ながら 2 つのプログラムのコードは共有されません。プログラムの実行中にプログラム コードがメモリにロードされるため、2 番目のプログラムが再度開始されると、システムは共有できなくなります。この判定では、プログラムが元のプログラムのままであるかどうか (プログラムが更新または変更された場合) は判断されないため、プログラム コードは引き続きメモリの別の領域に再ロードされます。

    コードの共有実施形態は、リンク ライブラリ、特に ダイナミック リンク ライブラリにある必要があります。ライブラリは動的にリンクされるように設計されているため、プログラムは実行後にコードが配置されるメモリ アドレスを決定できるため、複数のプログラムが同じコード部分を呼び出すことができます。

    返事
    0
  • キャンセル返事