OSとハードウェア

プログラムが、OSが割り当てていないアドレスにアクセスしたときに一般的に起こることはどれか。

  1. ACPUがそのアドレスのために新しい物理メモリを自動で増設する
  2. Bアクセスは無視され、プログラムは何事もなく次の命令を続ける
  3. Cページフォルトが起き、OSが不正なアクセスと判断してプログラムを停止させる
答えと解説を見る

正解:C. ページフォルトが起き、OSが不正なアクセスと判断してプログラムを停止させる

割り当てのないアドレスにアクセスすると、ページテーブルに有効な項目がないためページフォルトが起きます。OSはそのアドレスがプロセスに許された範囲かを調べ、どこにも割り当てていない不正なアクセスなら、プログラムに異常を知らせて停止させます(いわゆるセグメンテーション違反)。これにより、誤ったポインタがほかのプロセスやOSのメモリを壊すのを防げます。物理メモリが自動で増えることも、アクセスが黙って無視されることもありません。

  • A. 物理メモリが自動で増えることはありません。
  • B. 黙って無視されると、誤りに気づけなくなります。
  • C. 正しい。ページフォルトを受けたOSが、不正なアクセスとして停止させます。
この分野を解く 分野ページへ

OSとハードウェアのほかの問題

  1. ファイルをメモリに対応づける(mmapのような)しくみで、ファイルの内容を読むときに起こることの説明として正しいものはどれか。
  2. 小さなデータを1バイトずつ書き出すときに、毎回システムコールを呼ぶより、ユーザ空間のバッファにためてからまとめて書き出す方が速くなる主な理由はどれか。
  3. CPUに特権モード(カーネルモード)とユーザモードを設ける主な目的はどれか。
  4. アプリケーションがファイルの読み書きなどをOSに依頼するしくみを何と呼ぶか。
  5. 上のRISC-Vのコードの最後のecall命令が実行されたときに起こることとして正しいものはどれか。