問題タブ [virtual-address-space]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3405 参照

memory-management - 仮想アドレス指定と物理アドレス指定

多くの本や投稿を読んだとしても、「同じ物理アドレスを指す複数の独立した仮想アドレス」の利点をよく理解していません。

たとえば、同様の質問で、物理アドレス指定と仮想アドレス指定の概念の違い

投稿は、プログラムが互いにクラッシュしないと主張しています、そして

「一般的に、特定の物理ページは1つのアプリケーションの仮想空間にのみマップされます」

さて、http://tldp.org/LDP/tlk/mm/memory.htmlの「共有仮想メモリ」のセクションには、次のように書かれています。

「たとえば、bashコマンドシェルを実行しているシステムに複数のプロセスが存在する可能性があります。各プロセスの仮想アドレス空間に1つずつ、bashのコピーを複数持つのではなく、物理メモリに1つのコピーだけを置き、すべてのプロセスを実行することをお勧めします。 bashで共有してください。」

1つの物理アドレス(シェルプログラムなど)が2つの独立した仮想アドレスにマップされている場合、これがクラッシュしないようにするにはどうすればよいですか?物理アドレスを使用するのと同じではないでしょうか。

仮想アドレス指定は何を提供しますか?これは物理アドレス指定では不可能または便利ではありませんか?仮想メモリが存在しない場合、つまり2つが同じ物理メモリを直接指している場合はどうでしょうか。調整メカニズムを使用することで、それでも機能すると思います。では、なぜこれらのものを「仮想アドレス指定、MMU、仮想メモリ」に煩わせるのでしょうか。

0 投票する
2 に答える
110 参照

windows - [windows]: elf と vas の間のマッピングについて

Virtual Address Space (VAS) に関する wiki から何かを読みました。

私が理解していないことの1つは、それを正しく理解しているかどうかわかりません。はい、これ:

アプリケーションの EXE ファイルは VAS にマップされます。プロセス VAS 内のアドレスは、exe ファイル内のバイトにマップされます。OS がマッピングを管理します。

私のばかげた質問は、「VAS にマップされる」とはどういう意味ですか? exeファイルが物理メモリにロードされるということですか?

0 投票する
2 に答える
659 参照

pointers - MPI + 関数ポインター?

MPI 構成の Beowulf クラスターの複数のノードで同じバイナリ (同じアーキテクチャを意味する) を実行している場合、別のノードに関数を呼び出すように指示する方法として、MPI を介して関数ポインターを渡すことは安全ですか? 同じバイナリ内の同じ関数が、異なるマシンまたは異なるインスタンスで異なる仮想アドレスを持つことができるのは、どのような状況ですか?

0 投票する
3 に答える
1415 参照

c - malloc によって割り当てられたメモリは必ずしも物理的に連続しているとは限りませんか?

malloc によって割り当てられたメモリは複数のページを占有する可能性があり、これらのページは必ずしも隣り合っているとは限りません。これは正しいですか?

0 投票する
2 に答える
24130 参照

linux-kernel - remap_pfn_range はどのようにカーネル メモリをユーザー空間に再マップしますか?

remap_pfn_range関数 (mmapドライバーの呼び出しで使用) を使用して、カーネル メモリをユーザー空間にマップできます。それはどのように行われますか?誰かが正確な手順を説明できますか? カーネル モードは特権モード (PM) ですが、ユーザー空間は非特権モード (NPM) です。PM では CPU はすべてのメモリにアクセスできますが、NPM では一部のメモリが制限されており、CPU からはアクセスできません。がremap_pfn_range呼び出されると、PM のみに制限されていたメモリの範囲がユーザー空間にアクセスできるようになったのはなぜですか?

remap_pfn_rangeコードを見るとpgprot_t struct. これはプロテクション マッピング関連の構造体です。プロテクション マッピングとは 上記の質問に対する答えですか?

0 投票する
1 に答える
272 参照

linux-kernel - copy_to_userはs390でどのように機能しますか?

s390アーキテクチャーでは、仮想カーネルとユーザー・アドレス・スペースが同時に存在することはありませんが、どのように機能しcopy_to_userますか?

0 投票する
3 に答える
15001 参照

c# - exeがLARGEADDRESSAWAREとして設定されているかどうかを確認する方法

ファイルをロードし、ロードされたファイルの作成日、変更日、サイズなどの情報を取得するC#プログラムを開発しています。もう1つ知っておく必要があるのは、ロードされたファイル( )がフラグexecutable.exeにリンクされているかどうかです。LARGEADDRESSAWAREFileInfoクラスはこの情報を提供しません。

LARGEADDRESSAWARE特定のexecutable.exeがフラグ(2 GBを超えるアドレスを処理するため)にリンクされているかどうかをC#で確認する方法を知っている人はいますか?

0 投票する
2 に答える
11537 参照

architecture - 仮想アドレスと仮想アドレス空間について

「プログラムが : のような命令を実行するMOV REG,1000と、メモリ アドレス 1000 の内容が REG にコピーされます。アドレスは、インデックス、ベース レジスタ、セグメント レジスタ、およびその他の方法を使用して生成できます。

これらのプログラム生成アドレスは仮想アドレスと呼ばれ、仮想アドレス空間を形成します。」

誰でも私に説明してもらえますか、それはどういう意味ですか(これらのプログラムで生成されたアドレスは仮想アドレスと呼ばれます) ?

0 投票する
1 に答える
155 参照

windows - ユーザー仮想アドレス空間内のアクセス禁止領域 (0x0 ~ 0xFFFF)

私は Windows Internals に関する本を読んでいましたが、仮想メモリの章では、最初の 64KB アドレス範囲がアクセス不可領域として予約されており、その理由は誤ったポインター参照を避けるためであると述べていました。これが誤ったポインター参照を回避する理由と方法について、誰かが私に説明できますか

0 投票する
2 に答える
1780 参照

windows - exeでの再配置の必要性

exe 内のすべての要素がイメージのベースからの相対オフセットにあるのに、なぜ再配置テーブルが必要なのですか?? つまり、画像がたとえば 0X60000 の正のオフセットによって置き換えられたとしても、新しいベースに相対的な RVA を使用するので、なぜ再配置テーブルがあるのでしょうか??