組込みシステムにおける、ソフトウェアのメモリ安全性(Memory Safety)を考慮した事例として、適切なものはどれか。
| ア | 宇宙線によって引き起こされるメモリのエラーを回避するために、ソフトウェアの処理を多重化してエラーを検出することによって、安全な動作を行う。 |
| イ | エラーの検出及び訂正が可能なメモリを使用することによって、エラーの発生と訂正をソフトウェアから隠蔽して、ソフトウェアの動作の健全性を確保する。 |
| ウ | バッファオーバーフロー、メモリリークなどの潜在的なセキュリティ上の問題を回避するために、メモリの保護機能を備えたプログラム言語を使用する。 |
| エ | ヒープ及びスタックメモリの必要量を性的解析ツールで算出し、十分な空きメモリ領域を確保することによって、メモリ不足が発生しないようにする。 |
答え ウ
【解説】
| ア | 宇宙線によって引き起こされるメモリのエラーを回避するために、ソフトウェアの処理を多重化してエラーを検出することによって、安全な動作を行うのは、CPUコアを2つ使ったのデュアルコアロックステップ(Dual Core Lock Step、DCLS)です。(×) |
| イ | エラーの検出及び訂正が可能なメモリを使用することによって、エラーの発生と訂正をソフトウェアから隠蔽して、ソフトウェアの動作の健全性を確保するのは、ECCメモリ(Error-correcting code memory)です。(×) |
| ウ | バッファオーバーフロー、メモリリークなどの潜在的なセキュリティ上の問題を回避するために、メモリの保護機能を備えたプログラム言語を使用するのは、メモリ安全性です。(〇) |
| エ | ヒープ及びスタックメモリの必要量を性的解析ツールで算出し、十分な空きメモリ領域を確保することによって、メモリ不足が発生しないようにするのは、ソフトウェアのメモリ設計です。(×) |
【キーワード】
・メモリ安全性