応用情報技術者 2021年 春期 午前2 問18
問題文
プログラム実行時の主記憶管理に関する記述として、適切なものはどれか。
選択肢
ア:主記憶の空き領域を結合して一つの連続した領域にすることを、可変区画方式という。
イ:プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを、ガーベジコレクションという。(正解)
ウ:プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを、動的リンキングという。
エ:プログラムの実行中に必要になった時点でモジュールをロードすることを、動的再配置という。
プログラム実行時の主記憶管理に関する記述【午前2 解説】
要点まとめ
- 結論:プログラムが使わなくなったヒープ領域を回収し再利用する仕組みは「ガーベジコレクション」である。
- 根拠:ガーベジコレクションは不要になったメモリ領域を自動的に検出し解放する技術で、主にヒープ領域に適用される。
- 差がつくポイント:用語の正確な意味を理解し、可変区画方式や動的リンキング、動的再配置との違いを明確に区別することが重要。
正解の理由
選択肢イは「プログラムが使用しなくなったヒープ領域を回収して再度使用可能にすることを、ガーベジコレクションという」と述べています。これは正確な定義です。ガーベジコレクションは主に動的に確保されたメモリ(ヒープ領域)を対象に、不要になったメモリを自動的に解放し、メモリリークを防ぐ技術です。
よくある誤解
「可変区画方式」は空き領域の結合ではなく、主記憶を可変長の区画に分割して管理する方式です。動的リンキングはモジュールの結合時に関する用語で、実行中のメモリ移動とは異なります。
解法ステップ
- 各選択肢の用語の意味を正確に理解する。
- 「ガーベジコレクション」がヒープ領域の不要メモリ回収であることを確認。
- 他の選択肢の用語と意味を比較し、誤りを見つける。
- 正しい用語と説明が一致する選択肢を選ぶ。
選択肢別の誤答解説
- ア:可変区画方式は主記憶を可変長区画に分割して管理する方式で、空き領域の結合を指すものではありません。
- イ:正解。ガーベジコレクションは不要なヒープ領域を自動回収し再利用可能にします。
- ウ:動的リンキングは実行時にモジュールを結合する技術で、主記憶内での格納位置移動とは異なります。
- エ:動的再配置はプログラムの実行中にアドレス変換を行う技術で、モジュールのロードタイミングとは異なります。
補足コラム
ガーベジコレクションはJavaやC#などの言語で標準的に採用されており、プログラマがメモリ解放を明示的に行わなくてもよい利点があります。一方、C言語などでは手動でメモリ管理を行うため、メモリリークのリスクが高まります。
FAQ
Q: ガーベジコレクションはどの領域のメモリを対象にしていますか?
A: 主にヒープ領域の動的に確保されたメモリを対象にしています。
A: 主にヒープ領域の動的に確保されたメモリを対象にしています。
Q: 動的リンキングと動的再配置の違いは何ですか?
A: 動的リンキングは実行時にモジュールを結合すること、動的再配置は実行中にプログラムのアドレスを変換することを指します。
A: 動的リンキングは実行時にモジュールを結合すること、動的再配置は実行中にプログラムのアドレスを変換することを指します。
関連キーワード: ガーベジコレクション、ヒープ領域、主記憶管理、可変区画方式、動的リンキング、動的再配置

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

