問題タブ [page-tables]

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 に答える
3367 参照

linux - Arm64 Linux ページ テーブル ウォーク

現在、私はいくつかの研究関連プログラムを開発しておりpte、いくつかの特定のアドレスを見つける必要があります。私の開発環境は Juno r1 ボード (CPU は A53 と A57 ) で、arm64 Linux カーネルを実行しています。

次のような典型的なページ テーブル ウォーク コードをいくつか使用します。

ただし、プログラムpteがアドレス (0xffffffc0008b2000) をチェックすると、常に空の が返されますpmd

私の推測ではpgd、最初のステップで間違っていたと思います。私が確認したアドレスはカーネル空間のアドレスであるのに対し、使用すると(ユーザー空間)しか取得できないとティムズ ノーツが言っているのを見たので、 .current->mmpgd of TTBR0pgdpgd of TTBR1

私の質問は次のとおりです。pteカーネル空間アドレスの を取得したい場合、 を使用current->mmして取得できpgdますか?

できない場合、代わりに他に試すことができるものはありますか?

どんな提案でも大歓迎です!ありがとうございました。

サイモン

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

cpu-architecture - 各レベルのページ テーブルの 1 つのエントリでカバーされる仮想メモリの総量は?

次のパラメータは、40 ビットの仮想アドレスと 1G バイトの物理 (メイン) メモリを使用するシステムに適用されます。ワードサイズは 64 ビット (8 バイト) です。アドレスはバイトを指し、バイト境界で整列されます。i ビット アドレスには次の表記を使用します。Ai-1...A2、A1、A0 ここで、Ai-1 はアドレスの最上位ビットで、A0 はアドレスの最下位ビットです。仮想アドレスは V39-V0 で示され、物理アドレスは P29-P0 で示されます。

これは私がこれまでに見つけたものです。

これは 40 ビットの仮想アドレスであり、ページ サイズは 64kB (2^16) であるため、16 ビットはオフセット用であり、40 から 16 を引きます。残りの 24 ビットは仮想ページ番号 (VPN) 用です。VPN は、それぞれ 8 ビットの 3 つのフィールドに分割されます。これで、3 レベルのページ テーブルができました。各テーブルには 2^8 エントリがあり、各テーブルのサイズは です2^8 * 4 bytes = 1024 bytes

ここからどのように進めて、各レベルのページ テーブルの 1 つのエントリによってカバーされる仮想メモリの総量を見つけますか?

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

operating-system - OS メモリ ページングの階層ページ テーブル

現在、OS のメモリ管理について勉強しています。

階層ページテーブル構造で、32 ビットマシンの場合4KB、サイズpage-sizeとサイズ。4Bpage-entry

なぜアドレスはビットに分割されているのですか10-10-12

私は知っています20 - 1212ビットはoffset4kbyteの値です -> 2^12

しかし、なぜ 20 ビットが 10-10 になるのか

11-9や12-8は無理ですか?

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

operating-system - 階層ページ テーブルと逆テーブル

メモリのページ構造について読みましたが、いくつかのポイントを取得できません。

  • ページ テーブル: 私が理解したように、プロセス (Intel i5 など) にはページ テーブルと TLB がクリスタルに統合されていますが、そうではありませんか? ただし、このテーブルには仮想ページのアドレスが含まれていないため、OS は操作メモリにまだ 1 つのページ テーブルを持っている必要があります。そう?

  • 逆テーブル: ページ テーブルがあることは理解しましたが、このテーブルには実際のメモリ ブロックのアドレスが含まれています。そして、私はもう何も得ませんでした。このテーブルは、プロセスまたは OS のどこにあり、操作メモリに提供されますか。ハッシュ関数とは何ですか? 写真から。PID - プロセス ID (何のためのものか)、p - ページ番号 (物理ページか仮想ページか。物理ページの場合、このテーブルは何のためか)。
    反転したページ テーブル

Pls、私に Wiki などを紹介しないでください。私はすでにそれを読みましたが、入手できませんでした。誰かがそれをより明確に説明できますか?