【PD-S教科書】3-1 組込みソフトウェア設計を基礎から徹底解説|リアルタイム制御・競合制御と排他・省電力・RTOS・テスト環境【シラバス案Ver0.2対応】

PD-S教科書 3-1 組込みソフトウェア設計 プロフェッショナルデジタルスキル(システム)
本記事について:PD(システム)試験(仮称)科目B「シラバス(案 Ver0.2)」(IPA・2026年7月31日更新)を根拠に解説する教科書記事です。科目B(技能)の内容はVer0.1から変更ありません(当サイトでVer0.1とVer0.2の全文を突合して確認)。Ver0.2では新たに科目A-2(専門知識)の出題範囲の細目が公開されました。試験名は仮称、科目A-1(共通知識)・試験時間・出題数・配点・合格基準は未公表、内容は検討段階の「案」で今後変更の可能性があります。(最終更新:2026年7月31日/出典:IPA公式

この記事は、PD-S(システム)試験(仮称)科目B 第3章「フィジカルコンピューティングに関すること」の1節目、小項目3-1「IoTを含む組込みシステム,制御システムのソフトウェア設計(リアルタイム処理など)」の教科書です。1-5で組込みシステムの全体アーキテクチャ(HW/SW分割まで)を決めました。本節はその続き——ソフトウェアに割り当てられた部分を、実際にどう設計するかです。鍵になるのが小項目名にもあるリアルタイム処理。「速い」ことではなく「間に合うことを保証する」という、業務システムにはない設計原理を、競合制御・省電力・テスト環境まで含めて前提知識ゼロから解説します。

この節の全体像 — 設計する→組み込む→テストする

技能1設計する — ソフトウェア要件を分析して機能仕様を策定し、実装のためにタスク分割を行い、リアルタイム制御・競合制御・省電力制御など組込みソフトに求められる設計を行う。
技能2組み込む — 選定されたOS・ミドルウェアを理解し、システムに組み込むための設計を行う。
技能3テストする — ソフトウェアをテストするための環境を構築し、テストを実施して結果を評価する。
技能1に列挙されたリアルタイム制御・競合制御・省電力制御の3つが、この節の学習の柱です。いずれも「組込みならでは」の設計原理で、業務システム畑の受験者が最初につまずくポイント。逆にここを固めれば第3章は見通しが立ちます。

技能1:組込みソフトウェアの設計 — 3つの制御をおさえる

シラバス案・技能の例①
システムのソフトウェア要件を分析し,機能仕様を策定した上で,実装のためにタスク分割を行い,リアルタイム制御,競合制御,省電力制御など,組込みソフトウェアに求められる設計を行うスキル

前提:タスク分割 — 並行して動く仕事に分ける

組込みシステムは、複数の仕事を同時並行でこなします。エアコンなら「温度を測る」「制御を計算する」「表示を更新する」「リモコン信号を受ける」——これらをタスクという実行単位に分割し、それぞれの起動周期(100ミリ秒ごとに温度を測る等)と優先度を設計するのがタスク分割です。どう分けるかで、後述のリアルタイム性も競合の起きやすさも決まる、組込みソフト設計の土台です。

図1:組込みソフトウェア設計の3つの制御(シラバス案・技能の例①の柱)

組込みソフトウェア設計の3つの制御。リアルタイム制御(期限までに処理を保証・優先度とスケジューリング)、競合制御(共有資源への同時アクセスを排他制御で守る)、省電力制御(スリープと間欠動作で電池を長持ちさせる)

柱①:リアルタイム制御 — 「速い」ではなく「間に合うことを保証する」

リアルタイム処理:処理を決められた期限(デッドライン)までに完了することを保証する処理。ポイントは平均的な速さではなく、最悪の場合でも間に合うか。「普段は1ミリ秒で終わるが、まれに1秒かかる」処理は、どんなに平均が速くてもリアルタイムとしては失格。

リアルタイム性には厳しさの段階があります。

  • ハードリアルタイム:期限を1回でも破ると人命・設備に関わる致命的な結果になるもの。例:自動車のエアバッグ展開、ブレーキ制御。
  • ソフトリアルタイム:期限を破ると品質は落ちるが致命的ではないもの。例:動画再生のコマ落ち、表示の更新遅れ。

これを支える仕組みが、1-5でも登場したRTOS(リアルタイムOS)です。RTOSは優先度の高いタスクを最優先で実行する(低優先タスクの実行中でも、高優先タスクが起きれば即座に切り替える)スケジューリングによって、重要な処理の期限を守りやすくします。また、センサーやボタンなどの外部の出来事に即座に反応する仕組み(割込み)——実行中の処理を一時中断して緊急の処理を先に行う——も、リアルタイム制御の基本部品です。

「リアルタイム=高速」は誤答の定番です。正しくは「期限内完了の保証」。ハード/ソフトの区別は「破ったときの結果の重大さ」で仕分けます。エアバッグと動画再生の対比で覚えてください。

柱②:競合制御 — 共有するものを壊さない

タスクが並行して動くと、同じデータや装置(共有資源)に同時にアクセスする場面が生まれます。例えば「温度データを書き込むタスク」と「温度データを読んで表示するタスク」が同時に動くと、書き換え途中の中途半端な値を読んでしまうことがあります。

排他制御:共有資源を使うとき「使用中」の札(ロック)を立て、他のタスクを待たせる仕組み。1つずつ順番に使わせることでデータの整合性を守る。
デッドロック:タスクAが資源1を持って資源2を待ち、タスクBが資源2を持って資源1を待つ——互いに相手の解放を待って永遠に止まる状態。排他制御の副作用として起きる代表的な事故。資源を確保する順序を全タスクで統一する等の設計で予防する。

柱③:省電力制御 — 電池で何年も動かす

IoTセンサー端末の多くは電池や小さな電源で動くため、消費電力がソフトウェア設計の制約になります。基本戦略は「働いていない時間は寝る」:処理のないあいだプロセッサを低消費電力のスリープ状態にし、周期タイマーや外部イベント(割込み)で起こす間欠動作です。「1時間に1回だけ起きて温度を測り、送信してまた眠る」設計なら、常時稼働の何十分の一の電力で動かせます。無線送信は特に電力を食うため、送信の回数・データ量を減らす工夫(まとめ送り、変化があったときだけ送る)も定番です。

技能2:OS・ミドルウェアを理解し、組み込む(技能2)

シラバス案・技能の例②
システムを実装するために選定された,OS,ミドルウェアなどを理解し,システムに組み込むための設計を行うスキル

1-5(技能2)でOS・ミドルウェアの評価・選定を行いました。本節の技能2はその続きで、選定済みの部品を自分のシステムに正しく載せる設計です。具体的には:

  • OSの設定と資源割り当て:RTOSのタスク数・優先度・メモリの割り当てを、タスク分割の設計に合わせて構成する。
  • デバイスドライバ:センサーやアクチュエーターなどのハードウェアをOSから使えるようにする接続部分のソフトウェア。ハードウェア担当(3-2)とのインタフェース仕様の合意が品質を左右する。
  • ミドルウェアの統合:通信プロトコル処理・ファイルシステム・暗号処理などの既製部品を組み合わせる。自作せず実績ある部品を使うのが品質・工数の定石だが、部品のメモリ使用量・応答特性が自システムの制約(リアルタイム性・省電力)に収まるかの確認が「理解し,組み込む」の中身。

技能3:テスト環境の構築と評価(技能3)

シラバス案・技能の例③
システムのソフトウェアをテストするために必要な環境を構築し,テストを実施して結果を評価するスキル

組込みソフトのテストには、業務システムにない事情が2つあります。

図2:クロス開発とテスト環境 — 開発する場所と動く場所が違う

クロス開発とテスト環境の図。開発PCでプログラムを作成しビルドし、ターゲット実機(組込み機器)に書き込んで動かす。実機での確認とあわせて、シミュレータでセンサー入力や異常条件を再現してテストする

  • クロス開発:プログラムを書く場所(開発PC)と、動く場所(ターゲットの組込み機器)が別のコンピュータ。開発PC上でターゲット用のプログラムを作り、実機に書き込んで動かす。実機は画面もキーボードもないことが多く、動作を観察する手段(ログ出力・デバッグ用接続)をあらかじめ設計に織り込む必要がある。
  • 実機とシミュレータの使い分け:実機テストは最終確認として不可欠だが、「センサーが高温を検知した」「電池残量が尽きかけた」のような条件を実機で再現するのは大変。そこで、ハードウェアの挙動をソフトウェアで模擬するシミュレータを使い、異常系・境界条件を網羅的に流す。シミュレータで広く、実機で深く、が定石。

「結果を評価する」まで含めて技能です。リアルタイム性の評価なら「最悪応答時間が期限内か」、省電力の評価なら「想定電池寿命を満たす消費電流か」——設計時に決めた数値目標と突き合わせて合否を判定します(テスト設計の一般論は第4章 4-2で扱います)。

混同しやすい概念の整理

紛らわしいペア 違いの核心
リアルタイム ⇔ 高速 リアルタイム=期限内完了の保証(最悪ケースで判定)。高速=平均が速いだけで保証はない。速くてもまれに遅れるならリアルタイム失格
ハードリアルタイム ⇔ ソフトリアルタイム 期限を破ったときの結果が致命的(人命・設備)か、品質低下で済むか。エアバッグ ⇔ 動画のコマ落ち
排他制御 ⇔ デッドロック 排他制御=共有資源を守る仕組み。デッドロック=その仕組みの使い方を誤って互いに待ち合って停止する事故。確保順序の統一などで予防
割込み ⇔ ポーリング 割込み=出来事が起きたら知らせてくる(即応・省電力)。ポーリング=こちらから定期的に見に行く(単純だが無駄が出る)。省電力設計では割込み起床が定石
実機テスト ⇔ シミュレータ 実機=最終確認・実環境の忠実さ。シミュレータ=異常系・境界条件の再現性と網羅性。「シミュレータで広く、実機で深く」

確認クイズ(4問)

この節の理解度チェックです(当サイト独自の予想問題。公式の出題ではありません)。

問1|リアルタイム処理

リアルタイム処理の説明として、最も適切なものはどれか。




解説:リアルタイム=期限(デッドライン)内の完了保証です(ウ)。判定は平均ではなく最悪ケースで行います。アの「平均が速い」は保証がないので不正解——ここがこの概念の最大のひっかけです。

問2|ハードとソフト

ハードリアルタイムに分類されるものとして、最も適切なものはどれか。




解説:期限を破ると人命に関わるアがハードリアルタイムです。イ・エは品質低下で済む(ソフトリアルタイム寄り)、ウはそもそもリアルタイム性の要求が緩いバッチ処理。「破ったときの結果の重大さ」で仕分けます。

問3|競合制御

並行動作する2つのタスクが同じデータ領域を読み書きする。設計上の対処として最も適切なものはどれか。




解説:共有資源は排他制御で守り、あわせてデッドロックの予防(確保順序の統一など)まで設計するのが正解(エ)。アは「まれにしか起きない」バグを仕込む典型思考(まれに起きるから怖い)、イは対症療法、ウは並行性の利点を全部捨てる過剰対応です。

問4|省電力設計

電池駆動のIoT温度センサー端末(1時間に1回測定・送信すればよい)の省電力設計として、最も適切なものはどれか。




解説:要件(1時間に1回)に対して働かない時間は眠る間欠動作(イ)が省電力の定石です。ア・ウは要件を超える常時稼働で電池を浪費、エは特に電力を食う無線を常時維持しており効果が薄い。「要件の頻度まで活動を落とす」が判断軸です。

まとめ:小項目3-1で身につけること

  • 技能3つ=設計する(タスク分割+3つの制御)→組み込む(OS・ミドルウェア)→テストする(環境構築と評価)
  • タスク分割が土台:並行する仕事を実行単位に分け、周期と優先度を設計する。
  • リアルタイム制御=期限内完了の保証(速さではない・最悪ケースで判定)。ハード(致命的)/ソフト(品質低下)の区別、RTOSの優先度スケジューリングと割込みが道具。
  • 競合制御:共有資源は排他制御で守り、副作用のデッドロックは確保順序の統一などで予防する。
  • 省電力制御:スリープと間欠動作、無線送信の削減。「要件の頻度まで活動を落とす」。
  • テストはクロス開発が前提。シミュレータで異常系を網羅し実機で最終確認、結果は設計時の数値目標と突き合わせて評価する。

関連記事・次に読む

« 第3章「フィジカルコンピューティング」の章ハブへ戻る

出典(一次情報)

  • IPA「プロフェッショナルデジタルスキル(システム)試験(仮称)科目B シラバス(案 Ver0.2)」大項目3・小項目3-1(2026年7月31日更新)[link]。本文中の「技能の例」引用は同シラバス案からの原文引用です。
  • IPA「情報処理技術者試験・情報処理安全確保支援士試験 出題範囲等の改定案 Ver.1.0」(2026年3月)

※試験名は仮称、内容は検討段階の案です。試験の形式・時間・配点・合格基準は未公表のため本記事では扱いません。技術解説(リアルタイム処理、排他制御、省電力設計、クロス開発など)は一般に確立した知識に基づく当サイトの解説で、シラバスの記載そのものではありません。確認クイズは当サイト独自の予想問題です。正式シラバス公開時に内容を更新します。

Copied title and URL