令和2年度 10月 午前 問16
ソフトウェア
記憶領域を再び利用可能にする機能
記憶領域の動的な割当て及び解放を繰り返すことによって,どこからも利用できない記憶領域が発生することがある。このような記憶領域を再び利用可能にする機能はどれか。
- アガーベジコレクション
- イスタック
- ウヒープ
- エフラグメンテーション
答えと解説を見る
✓ これが正解アガーベジコレクション
解説
参照されなくなった領域を回収して再利用可能に戻す仕組みです。
動的にメモリを割り当てたり解放したりを繰り返すと、どこからも参照されなくなったのに使用済みのまま残ってしまう領域がしだいに増えていきます。設問はこうした領域を再び使える状態に戻す働きを問うており、ですから、参照が絶えたかどうかを検出して回収する動きを持つ仕組みかどうかで見分けます。ガーベジコレクションは、その名の通り不要になった記憶をゴミとして扱い、いまも生きている参照から辿れなくなった領域を見つけて自動で回収し、次の割り当てに使えるように戻す働きを持ちます。Java や Python、C# などのランタイムに標準で組み込まれています。主な方式には参照数を数える方式、生きている参照をマークして残りを掃く方式、生存領域を別空間へ写す方式などがあり、どれも回収の判断と実行を担います。
ほかの選択肢はなぜ違うのか
- イスタック:スタックが挙げられています。これは後入れ先出しの規則で使う領域構造そのものの名前で、押し込みと取り出しの規則を提供する仕組みです。参照が絶えた領域を検出して回収に回す働きを担うものではありません。
- ウヒープ:ヒープが挙げられています。これは実行時に自由な大きさで動的にメモリを割り当てるための領域そのものの名前で、割り当ての舞台にあたります。参照が絶えた領域を見つけて再利用可能に戻す働きの主体ではありません。
- エフラグメンテーション:フラグメンテーションが挙げられています。これは動的な割り当てと解放を繰り返した結果、領域が細切れになって連続の空きが減っていく現象そのものの名前です。問題の原因を表す語であって、再利用に戻す働きの名前ではありません。
出典:令和2年度 10月 応用情報技術者試験 午前 問16
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)