virtual-address-space

    0

    1答えて

    なぜelfのエントリポイントは0x8048320.ですか?This質問から、そのプロセスをマッピングするためにオペレーティングシステムカーネルが使用する仮想アドレスです。しかし、、プロセスがマップされる仮想アドレス(x86プロセッサー)は0xc0000000(ユーザー領域では3GB、カーネル領域では1GB)です。今0x8048320開始点アドレスの背後にある理論は何ですか?それは0c0000000

    2

    3答えて

    MPI経由で関数ポインタを渡すことは、他のノードに関数呼び出しを指示する方法として安全ですか?誰かが、MPIを介してあらゆる種類のポインタを渡すことは無意味だと言うかもしれませんが、私はそれを検証するためのコードを書きました。ここで //test.cpp #include <cstdio> #include <iostream> #include <mpi.h> #include <cst

    1

    1答えて

    dllで特定の関数のRVAを取得し、そのRVAをdllのベースローディングアドレスに追加して、リモートプロセスメモリ内の関数を見つける必要があります。しかし、私はこのメモリアドレスをリモートプロセスで作成されるスレッドにバッファに渡す必要があります。だから私はアドレスのDWORD表現としてこれを渡す必要があるかどうか疑問に思っていた。私は64ビットWindows上にあるので、もしそうなら、それはD

    0

    1答えて

    共有ライブラリファイルの場合、シンボルの定義のファイルオフセットと仮想アドレスをどのように変換するのですか? ELF文書で 、シンボルテーブル内のシンボルのために、実行可能ファイルと共有オブジェクトファイルで 、st_valueは仮想アドレスを保持しています。これらのファイルのシンボルをダイナミックリンカにとってより便利にするために、セクションオフセット(ファイル解釈)は、セクション番号が無関係な

    4

    1答えて

    IntelとAMDの文書では、64ビットモードでは実際に仮想アドレスに48ビットしか使用できず、48から63のビットはビット47(符号拡張)を複製する必要があります。私が知る限り、すべての現在のCPUはこのように実装されていますが、将来の実装では空き領域を拡張することはできません(これはバイナリ互換性を損なうことはありません)。 有意義なビット数をプログラムで決定する標準的な方法はありますか? (

    0

    1答えて

    仮想インデックス付きの仮想タグ付きキャッシュについては、ここでは仮想アドレスをページ番号とページオフセットに分けています。このページ番号を使用してキャッシュブロックを取得します。キャッシュミスがある場合、TLBを使用して変換をアドレス指定し、メインメモリから適切なキャッシュブロックをフェッチします。 ここでは「インデックスされた」という単語の意味は何ですか?それはキャッシュラインが対処される方法で

    0

    1答えて

    私は、いくつかのdllで64ビットアプリケーションを開発しています。 win32からは、ロードされたdllの のデフォルトベースアドレスが0x10.000.000であり、競合が発生したときに移動しました。 WintellectのJohn Robbinsは、dllを一意のアドレスに設定することを推奨しています。そのため、メモリ使用量は異なる実行で同じでした。 彼は、.net 2.0アプリケーションの

    0

    1答えて

    私はWindowsシステムプログラミングを行っていて、ソースコードレベルでプロセスのページテーブルにアクセスできるかどうか疑問に思っていました。 ここで私は仮想メモリに関連するページテーブルについて知っています。 ユーザーがWindows OS(32ビット)で 'A'プロセスと呼ばれるプロセスを実行しているとします。 まず、OSは、プロセス用に4GBの仮想アドレス空間を作成し、維持します。 (それ

    0

    1答えて

    2次元配列が静的に宣言されると、仮想アドレスの巨大な連続チャンクが生成されます。これらのアドレスは、物理アドレス内の連続したメモリアドレスにマッピングする必要はありません。 1Dアレイでも同じことが起こりますか? 1D配列の個々の要素のアドレスは物理アドレス空間で連続しているのですか、別々の物理ページ上のアドレスにマップできますか?