0

私が VAX/VMS で開発した古き良き/悪しき時代には、「インストールされた共有イメージ」と呼ばれる機能がありました。これにより、実行可能プログラムが多くのユーザーによって同時に実行されると予想される場合、次のように INSTALL ユーティリティを呼び出すことができました。

$ インストール

インストール > ONES_PROGRAM.EXE/SHARE を追加

インストール > 終了

/SHARE フラグには、データからコードを分離する効果があったため、ONES_PROGRAM.EXE の同時ユーザーはすべて (もちろん読み取り専用ベースで) コードを共有しますが、それぞれがデータの独自のコピーを (オンに) 持つことになります。読み取り/書き込みベース)。この手法/機能により、同時ユーザーの数に関係なく、プログラムのコードのコピーを 1 つだけ VAX メモリに常駐させる必要があったため、Mbytes のメモリ (当時は必要でした) を節約できました。

Windows XP にも同様の機能がありますか? コントロール パネルの [プログラム/機能の追加] が同等かどうかわかりません (同等だと思いますが、よくわかりません)。

情報をありがとう

リチャード

ps INSTALL は、興味がある場合に備えて、ライブラリとプログラムも共有します

4

1 に答える 1

1

Windows 仮想メモリ マネージャーは、これを自動的に行います。モジュールを各プロセスで同じアドレスにロードできる限り、コードの物理メモリは、そのモジュールをロードする各プロセス間で共有されます。これは、すべてのモジュール、ライブラリ、および実行可能ファイルに当てはまります。

これは、リンカがコード セグメントを共有可能としてマークすることによって実現されます。そのため、リンカはコード セグメントを共有可能としてマークし、データ セグメントはそれ以外としてマークします。

肝心なのは、これを実現するために明示的に何かを行う必要はないということです。

于 2012-09-24T13:17:39.827 に答える