IT・情報処理 / 情報処理技術者(IPA)

エンベデッドシステムスペシャリスト試験の例題・出題範囲・重要用語

IPA ES — ハード/RTOS/リアルタイム制御/組込みSW設計/品質・安全

出題範囲

  • リアルタイムOS/スケジューリング
  • 品質/信頼性/安全規格
  • ハードウェア/回路基礎
  • 組込みSW設計/ドライバ
  • 制御/リアルタイム設計
  • デバドラ/IO制御/通信(UART/I2C/SPI/CAN等)
  • 組込みHW(MCU/MPU/バス/周辺)
  • 安全規格/信頼性/テスト/妥当性確認
  • RTOS(タスク/割込み/同期/スケジューリング)
  • 性能/電力/最適化/計測
  • リアルタイム設計/パターン/時相解析

例題に挑戦

スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。

例題1

優先度継承プロトコル(Priority Inheritance Protocol)に関する記述として、適切なものはどれか。

  1. 実行待ち状態のタスクのうち、デッドラインが最も近いものの優先度を動的に高くするスケジューリングを行う。
  2. 低優先度タスクが共有リソースを保持している間、そのリソースを待っている高優先度タスクの優先度まで、低優先度タスクの優先度を引き上げる。
  3. タスクがリソースを獲得した時点で、そのタスクの優先度をあらかじめ設定されたリソースの上限優先度まで引き上げる。
  4. 共有リソースにアクセスするすべてのタスクの優先度を、システム内の最高優先度まで一律に引き上げる。
  5. 低優先度タスクが共有リソースを使用している間は、すべての割り込みを禁止することで優先度逆転を防ぐ。
解答と解説を見る

正解: 低優先度タスクが共有リソースを保持している間、そのリソースを待っている高優先度タスクの優先度まで、低優先度タスクの優先度を引き上げる。

正解は「低優先度タスクが共有リソースを保持している間、そのリソースを待っている高優先度タスクの優先度まで、低優先度タスクの優先度を引き上げる。」です。優先度継承プロトコルは、優先度逆転現象を解決するための手法です。低優先度タスクがロックしているリソースを高優先度タスクが要求した際、低優先度タスクの優先度を一時的に高優先度タスクと同じレベルまで引き上げることで、中間の優先度を持つタスクによる割り込み(横取り)を防ぎ、リソースを速やかに解放させます。

例題2

ウォッチドッグタイマに関する記述のうち、誤っているものはどれか。

  1. 低消費電力モード(スリープモード)中であっても、常にメインクロックで動作し続けなければならない。
  2. CPUの暴走などの異常を検出し、システムをリセットまたは例外処理へ移行させるためのハードウェア機構である。
  3. ハードウェア構成によっては、マイクロコントローラの外部回路として独立して実装される場合がある。
  4. システムの正常稼働中、メインプログラムはタイマがタイムアウトする前に定期的にカウンタをクリアする必要がある。
  5. プログラムが無限ループに陥った場合でも、タイマがタイムアウトすることでシステムのハングアップを検知できる。
解答と解説を見る

正解: 低消費電力モード(スリープモード)中であっても、常にメインクロックで動作し続けなければならない。

正解は「低消費電力モード(スリープモード)中であっても、常にメインクロックで動作し続けなければならない。」です。ウォッチドッグタイマ(WDT)は異常監視のための機構ですが、低消費電力モード(スリープモード)では電力を抑えるためにメインクロックを停止させることが一般的です。その際、WDT自体を一時停止させるか、あるいは専用の独立した低速クロックで動作させるように設計されます。したがって、常にメインクロックで動作しなければならないという記述は誤りです。

重要用語

タスク
リアルタイムOS(RTOS)において、並行して実行される最小の実行単位です。一般的なOSのプロセスやスレッドに相当し、それぞれが独自のスタックやレジスタ情報を保持します。RTOSは複数のタスクを切り替えて実行することで、マルチタスク環境を実現します。各タスクには実行順序を制御するための優先度が割り当てられ、スケジューラによって管理されます。
プリエンプティブ・スケジューリング
実行中のタスクよりも優先度の高いタスクが実行可能になった際、OSが強制的に実行権を奪い、高優先度のタスクに割り当てる方式です。リアルタイム性が求められるシステムで一般的であり、緊急性の高い処理を即座に開始できる利点があります。この際、中断されたタスクの状態を保存し、後で再開できるようにコンテキストスイッチが発生します。
コンテキストスイッチ
CPUが実行するタスクを切り替える際、現在実行中のタスクの状態(レジスタ、プログラムカウンタ、スタックポインタなど)を保存し、次に実行するタスクの状態を復元する処理です。RTOSにおいてタスク間の遷移を円滑に行うために不可欠な仕組みですが、処理には一定のCPU時間を要するため、オーバーヘッドとしてシステムの応答性に影響を与えます。
セマフォ
複数のタスク間で共有リソースの排他制御や、タスク間の同期を行うための仕組みです。カウンティングセマフォは複数の資源数を管理し、バイナリセマフォは0か1の値でリソースの空き状況を管理します。P操作(Wait)で資源を獲得し、V操作(Signal)で資源を解放します。ただし、優先度逆転などの問題が発生する可能性があるため設計には注意が必要です。
ミューテックス
共有リソースへのアクセスを一つのタスクのみに制限する「相互排除」のための仕組みです。バイナリセマフォと似ていますが、ロックしたタスク(所有者)のみがアンロックできるという所有権の概念があります。また、リアルタイムシステム向けのミューテックスには、優先度逆転を防ぐための優先度継承プロトコルなどの機能が実装されていることが多いです。
優先度逆転
低優先度タスクが保持するリソースを高優先度タスクが待機している際、そのリソースに関係のない中優先度タスクが実行されることで、高優先度タスクの実行が妨げられる現象です。これにより、高優先度タスクの応答時間が設計上の想定を超えて遅延し、リアルタイム性が失われる重大な不具合を引き起こします。解決には優先度継承等の対策が必要です。
優先度継承プロトコル
優先度逆転問題を解決する手法です。高優先度タスクが要求しているリソースを低優先度タスクが保持している間、その低優先度タスクの優先度を一時的に高優先度タスクと同じレベルまで引き上げます。これにより、中優先度タスクによる割り込みを防ぎ、低優先度タスクが速やかにリソースを解放できるようにして、高優先度タスクの待ち時間を最小限に抑えます。
イベントフラグ
特定のイベントが発生したことを、ビット情報の変化によってタスクに通知する同期機構です。タスクは特定のビットがセットされるまで待ち状態に入ることができ、複数のイベントの組み合わせ(AND待ちやOR待ち)による実行開始条件を設定することが可能です。セマフォによる数値管理とは異なり、事象の発生を条件としてタスクを制御する場合に有効です。

エンベデッドシステムスペシャリスト試験の対策はアプリで

AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。

IT・情報処理の他の資格