メインコンテンツへ
ソフトウェア計算問題

仮想アドレス空間が32ビット、ページサイズが4KB(2^12バイト)、各ページテーブルエントリが4バイトの場合、ページテーブルのサイズとして最も適切なものはどれか。

ア.4KB
イ.256KB
ウ.1GB
エ.4MB正解

解説

ページテーブルは「仮想ページ番号→物理フレーム番号を全ページ分並べた索引」。32bitアドレス空間を4KBページに分割すると100万超のページが生まれ、それを全部記録するテーブルが意外と大きくなります。

なぜ エ が正解か

エが正解。計算:①ページ数 = 仮想アドレス空間 / ページサイズ = 2^32 / 2^12 = 2^20 = 1,048,576ページ。②テーブルサイズ = ページ数 × エントリサイズ = 2^20 × 4バイト = 4 × 2^20バイト = 2^22バイト = 4MB。これがページテーブルが大きくなりすぎる問題の原因で、多段ページテーブルが発明された背景。

なぜ ア は間違いか

4KBはページサイズそのものであって、ページテーブルのサイズではない。ページ数2^20個×各4バイトを計算すると4MBになる。

なぜ イ は間違いか

256KB = 2^18バイト。これは「ページ数を2^16と誤って計算した(例:32bitアドレスをページサイズ2^16で割る)」場合の誤答。ページサイズ4KB=2^12バイトで割ると2^(32-12)=2^20ページが正しい。

なぜ ウ は間違いか

1GBは「2^32÷4=2^30バイト」などを誤った計算から導出される値。ページ数2^20×エントリ4バイト=2^22バイト=4MBが正しく、1GBは250倍の過大評価。

出典: AI生成問題(学習用)