[0565] メモリリーク

平成14年度秋期 基本情報処理技術者試験より
メモリリークに関する記述として,適切なものはどれか。
アプリケーションの同時実行数を増やした場合に,主記憶容量が不足し,処理時間のほとんどがページングに費やされ,極端なスループットの低下を招くことである。
アプリケーションやOSのバグなどが原因で,動作中に確保した主記憶が解放されないことであり,これが発生すると主記憶中の利用できる部分が減少する。
実行時のプログラム領域の大きさに制限があるときに,必要になったモジュールを主記憶に取り込む手法である。
主記憶の内容と補助記憶の内容とを交換する処理のことである。

正解

解説

 メモリリーク(memory leak)とは,OS やアプリケーションプログラムの中で確保したメモリ領域が解放されずに占有されつづけることで,利用可能なメモリ領域が減少する現象です。処理速度の低下,最悪の場合はハングアップなど,異常動作の原因ともなります。

 プログラム中で動的にメモリ領域を確保する場合は,その領域が不要となったタイミングで解放してやる必要がありますが,解放処理の書きモレや,プログラマの意図に反して解放処理のルーチンが実行されなかったりすると,メモリリークが発生してしまいます。小さなメモリ領域の解放モレであっても,長時間に渡って実行されるプログラムであれば,メモリ領域をかなり逼迫させてしまうこともあります。

 メモリリークを発生させないためには,プログラマ側がメモリ解放に細心の注意を払うことが必要となりますが,システム側で自動的に不要になったメモリ領域を回収する機能があります。これをガベージコレクション(garbage collection)といいます。

 以上より,イが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題