エンベデッドシステムスペシャリスト暗記無料で始める

静的メモリ割当てとは?せいてきめもりわりあて

静的メモリ割当てとは、必要な領域をコンパイル時または初期化時に確保しきり、実行中は確保と解放を一切行わない設計方針。断片化も確保失敗も起きず、確保に要する時間が消えるため実行時間の見積りが立つ。代償として、常に最悪ケース分の領域を占有し続けることになる。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

エンベデッドSPを最短で暗記・合格する →

背景

動的確保は、要求量が読めない場面でメモリを無駄なく使うための仕組みだが、返ってくるまでの時間が一定でなく、失敗もありうる。周期の締切りを守ることが要件の系では、この二つの不確かさが致命的になる——確保に何マイクロ秒かかるか分からなければ最悪実行時間を示せず、確保に失敗したときの縮退動作まで設計する羽目になる。不確かさを設計時へ前倒しして消したのが静的割当てで、MISRA Cをはじめ安全側のコーディング規約もmallocとfreeの使用を原則禁止としている。

具体例

タスク制御ブロック、メッセージキュー、通信バッファを配列として静的に定義し、要素数は最悪ケースの同時要求数から逆算する。FreeRTOSのxTaskCreateStaticのような静的生成のAPIを使えば、カーネルオブジェクトもヒープ抜きで作れる。増えた占有量は、バッファ長をプロファイル実測から詰めて取り戻す。

試験での引っ掛け

動的確保を避けても、固定長ブロックを配るメモリプールなら断片化を起こさずに貸し借りできるので、静的割当てと実行時の貸し借りは排他の関係にない。またスタックは静的に見えて実際は実行時に伸びるため、静的割当てを徹底してもスタック使用量の最悪値は別途見積る必要がある。メモリ使用量はむしろ増える方向になる点も、削減策と取り違えやすい。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

エンベデッドSPを最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • 動的確保を避けても、固定長ブロックを配るメモリプールなら断片化を起こさずに貸し借りできるので、静的割当てと実行時の貸し借りは排他の関係にない。