令和6年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1

各ソフトウェアモジュールからアクセスできるハードウェアリソースやメモリ領域の範囲を適切に制限するために,4段階の特権レベル(EL0〜3)をもつCPUがある。ELの次の数字が大きいほど高い特権レベルであるとき,各特権レベルにソフトウェアモジュールを適切に割り当てているものはどれか。

解答・解説

正解: イ. | EL0 | ユーザーアプリケーション |
| --- | --- |
| EL1 | OS (Linux kernelなど) |
| EL2 | ハイパーバイザー |
| EL3 | ファームウェア/セキュアモニタ |

CPUの特権レベル(Exception Level:EL)は、システムを安全に動作させるために、各ソフトウェアモジュールがアクセスできるリソースを制限する仕組みです。

本設問のように「数字が大きいほど高い特権レベル」をもつアーキテクチャ(ARMアーキテクチャなど)では、特権レベルに応じて以下のようにソフトウェアが割り当てられます。

  • EL0(最も低い特権レベル): ユーザーアプリケーション
    • 一般的なアプリケーションが動作し、ハードウェアへの直接アクセスは制限されます。
  • EL1: OS (Linux kernelなど)
    • EL0のアプリケーションを管理し、システムリソースを制御します。
  • EL2: ハイパーバイザー
    • 複数のOS(ゲストOS)を仮想化して並行動作させるための管理を行います。
  • EL3(最も高い特権レベル): ファームウェア/セキュアモニタ
    • セキュリティ状態の切り替えや、システム全体の最下層の制御を担います。

したがって、この特権レベルの階層に正しく割り当てているのはイとなります。

各選択肢の解説

  • ア: 特権レベルの低いEL0にファームウェア/セキュアモニタ、最も特権レベルの高いEL3にOSが割り当てられており、特権レベルの順序が逆転しているため誤りです。
  • イ: 正解です。EL0にユーザーアプリケーション、EL1にOS、EL2にハイパーバイザー、EL3にファームウェア/セキュアモニタという、正しい階層構造になっています。
  • ウ: EL1にハイパーバイザー、EL2にOSが割り当てられていますが、ハイパーバイザーは複数のOSを管理するため、OSよりも高い特権レベル(EL2)で動作する必要があります。
  • エ: ファームウェア/セキュアモニタがEL2に、OSがEL3に割り当てられています。ファームウェアやセキュアモニタはシステム全体を管理する最も高い特権レベル(EL3)であるべきであり、順序が誤っています。

Spineチーム