SkillStack
テクノロジ系17 / 25問

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

組込みシステムにおける、ソフトウェアのメモリ安全性(Memory Safety)を考慮した事例として、適切なものはどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

ソフトウェアのメモリ安全性とは、プログラムが許可されたメモリ領域だけを、正しい範囲と寿命の中で利用できる性質です。配列の範囲外への書込みによるバッファオーバーフロー、解放済み領域へのアクセス、不正なポインタ操作、確保した領域を解放しないメモリリークなどを防ぐことが中心となります。メモリ保護機能を備えたプログラム言語では、境界検査、型検査、所有権管理、ガベージコレクションなどによって、これらの問題を実行前又は実行時に抑制できます。したがって、ウが適切です。

アの説明は誤りです。処理の多重化によるエラー検出は、宇宙線などによる一時的なハードウェア故障への耐性を高めるフォールトトレランスの事例です。プログラムによる不正なメモリアクセスの防止ではありません。

イの説明は誤りです。誤り訂正符号を備えたECCメモリによる検出及び訂正は、ビット反転などの物理的なメモリエラーへの対策です。これはハードウェアの信頼性を高める仕組みであり、ソフトウェアのメモリ安全性とは異なります。

エの説明は誤りです。必要量の算出と空き領域の確保は、メモリ容量不足を防ぐための資源設計です。容量が十分でも、範囲外アクセス、二重解放、解放後使用などは発生し得ます。

【ポイント】 メモリ安全性は、メモリ素子の故障対策ではなく、プログラムのアクセス方法の安全性に着目します。 バッファオーバーフロー、解放後使用、二重解放、メモリリークを代表例として整理します。 容量設計、ECC、冗長化とは目的が異なることを押さえます。

出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問17
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める