OSとハードウェア

CPUに特権モード(カーネルモード)とユーザモードを設ける主な目的はどれか。

  1. Aアプリケーションの命令を、カーネルの命令より速く優先して実行できるようにするため
  2. Bアプリケーションがページテーブルや装置を勝手に操作できないよう保護するため
  3. C1つのCPUで同時に2つの命令を実行できるようにするため
答えと解説を見る

正解:B. アプリケーションがページテーブルや装置を勝手に操作できないよう保護するため

ページテーブルの書き換えや入出力装置の操作、割り込みの禁止などをアプリケーションが自由にできると、ほかのプログラムのメモリを壊したりシステム全体を止めたりできてしまいます。そこでCPUは、これらの命令を特権モードでしか実行できないようにし、OSのカーネルだけが使えるようにしています。ユーザモードで実行しようとすると例外になります。速さや同時実行のためのしくみではありません。

  • A. 実行の速さはモードでは変わりません。
  • B. 正しい。危険な操作をカーネルに限定して、システムを保護します。
  • C. 同時に複数の命令を実行するのはスーパースカラなどのしくみです。
この分野を解く 分野ページへ

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

  1. アプリケーションがファイルの読み書きなどをOSに依頼するしくみを何と呼ぶか。
  2. 上のRISC-Vのコードの最後のecall命令が実行されたときに起こることとして正しいものはどれか。
  3. 割り込みと例外の違いとして一般的な説明はどれか。
  4. 次のうち、命令の実行とは無関係に、いつ起こるか決まっていない非同期のものはどれか。
  5. CPUが割り込みを受け付けたときの一般的な処理の流れとして正しいものはどれか。