問題タブ [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.
linux-kernel - カーネル空間とユーザー空間の管理ページ テーブル エントリ (PTE) の違いは?
Linux OS では、ページ テーブルを有効にした後、カーネルはカーネル空間に属する PTE を一度だけマップし、二度と再マップしませんか? このアクションは、プロセスの切り替えが発生するたびに再マッピングする必要があるユーザー空間の PTE とは逆ですか?
そこで、カーネル空間とユーザー空間での PTE の管理の違いを知りたいです。
この質問は、次の質問から拡張された部分です: Page table in Linux kernel space during boot
linux-kernel - Linux カーネル ページ テーブルの更新
Linux x86 ページング。
各プロセスには独自のページ ディレクトリがあります。
ページ テーブル ウォーキングは、CR3 が指すページ ディレクトリから開始します。
すべてのプロセスは、カーネル ページ ディレクトリの内容を共有します
3 つの文が正しいと仮定すると、あるプロセスがカーネル モードに入り、カーネル ページ ディレクトリの内容 (アドレス マッピング、アクセス権など) を更新するとします。
質問。カーネル アドレス空間はプロセス間でグローバルに共有されるため、この更新は他のプロセスのページ ディレクトリと同期する必要がありますよね?
これはどのように管理できますか?
paging - 仮想アドレス空間内のページの方程式
私は解決するために次の問題を与えられました..しかし、私が正しい軌道に乗っているかどうかはわかりません..
2GB の仮想アドレスが 4k ページに分割されている場合、仮想アドレス空間にはいくつのページが存在するでしょうか。
2 31 = 2GB と 2 12が 4k ページ サイズに等しい場合、私はそれを解決しました..
したがって、31 から 12 ビットを取り除くと、2 19ページが残ります。
そうですか、それとも的外れですか?
確認/指示(式)をいただければ幸いです。
operating-system - コンテキスト スイッチで TLB をフラッシュする
これはOSに依存する可能性がありますが、一般的に、ページフォールト(目的のページがメインメモリにない)が発生すると、OSはCPUにディスクからページを読み取るように指示し、OSが別のページにディスパッチするのだろうかと思っていますディスク I/O 中のプロセス? その場合、コンテキスト スイッチで TLB が完全にフラッシュされますよね?
memory - 64 ビット アーキテクチャのページ テーブル サイズ
32 ビットのページ テーブルに関する例をいくつか見てきましたが、ほとんどの場合、4 バイトのページ テーブル エントリを想定しています。64 ビット アーキテクチャも同じように機能するのでしょうか? 2 レベルおよび 3 レベルのページ テーブルを 64 ビット ページ テーブルに実装したい場合、ページ テーブル サイズの範囲の違いは何ですか?
memory - 64 ビット アドレッシングのページ テーブルで 3 レベルのページングを必要とする、設定できる最大のフレーム サイズは?
マルチレベル ページングを行っており、アドレス空間は 64 ビットです。3 レベルのページングが必要な最大のフレーム サイズを見つける必要があります。
特定のフレーム サイズを使用すると、ページ テーブルに一定量のレベルが必要になることがわかりません。
memory - マルチレベルページテーブルはどのようにメモリスペースを節約しますか?
マルチレベル ページ テーブルがどのようにメモリを節約するかを理解しようとしています。私の理解によると、マルチレベル ページ テーブルは合計でシングルレベル ページ テーブルよりも多くのメモリを消費します。
例 : ページ サイズが 64KB で 32 ビット プロセッサのメモリ システムを考えます。ページ テーブルの各エントリは 4 バイトです。
シングルレベル ページ テーブル: ページ オフセットを表すには、16 (2^16 = 64KB) ビットが必要です。したがって、残りの 16 ビットは、ページ テーブルへのインデックス付けに使用されます。そう
*ページ テーブルのサイズ = 2^16(ページ数) * 4 バイト(各ページ テーブル エントリのサイズ) = 2^18 バイト*
マルチレベル ページ テーブル: 2 レベルのページ テーブルの場合、最初の上位 10 ビットを使用して、最初のレベルのページ テーブルにインデックスを付けます。次の 10 ビットは、ページ番号からフレーム番号へのマッピングを持つ第 2 レベルのページ テーブルにインデックスを付けます。残りの 12 ビットは、ページ オフセットを表します。
第 2 レベルのページ テーブルのサイズ = 2^10 (エントリ数) * 4 バイト (各エントリのサイズ) = 4 KB
すべての第 2 レベルのページ テーブルの合計サイズ = 2^10 (第 2 レベルのページ テーブルの数) * 4KB (各第 2 レベルのページ テーブルのサイズ) = 4 MB
第 1 レベルのページ テーブルのサイズ = 2^10 (エントリ数) * (10/8) バイト (各エントリのサイズ) = 1.25 KB
第 1 および第 2 レベルのページ テーブルを格納するために必要な合計メモリ = 4 MB + 1.25 KB
そのため、複数レベルのページ テーブルを格納するには、より多くのメモリが必要です。
この場合、マルチレベル ページ テーブルはメモリ スペースをどのように節約しますか?