OSとハードウェア
プログラムが、OSが割り当てていないアドレスにアクセスしたときに一般的に起こることはどれか。
- ACPUがそのアドレスのために新しい物理メモリを自動で増設する
- Bアクセスは無視され、プログラムは何事もなく次の命令を続ける
- Cページフォルトが起き、OSが不正なアクセスと判断してプログラムを停止させる
答えと解説を見る
正解:C. ページフォルトが起き、OSが不正なアクセスと判断してプログラムを停止させる
割り当てのないアドレスにアクセスすると、ページテーブルに有効な項目がないためページフォルトが起きます。OSはそのアドレスがプロセスに許された範囲かを調べ、どこにも割り当てていない不正なアクセスなら、プログラムに異常を知らせて停止させます(いわゆるセグメンテーション違反)。これにより、誤ったポインタがほかのプロセスやOSのメモリを壊すのを防げます。物理メモリが自動で増えることも、アクセスが黙って無視されることもありません。
- A. 物理メモリが自動で増えることはありません。
- B. 黙って無視されると、誤りに気づけなくなります。
- C. 正しい。ページフォルトを受けたOSが、不正なアクセスとして停止させます。