マルチレベル ページ テーブルがどのようにメモリを節約するかを理解しようとしています。私の理解によると、マルチレベル ページ テーブルは合計でシングルレベル ページ テーブルよりも多くのメモリを消費します。
例 : ページ サイズが 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
そのため、複数レベルのページ テーブルを格納するには、より多くのメモリが必要です。
この場合、マルチレベル ページ テーブルはメモリ スペースをどのように節約しますか?