ソフトウェア

基本情報技術者試験ガベージコレクション」の問題

テクノロジ系ソフトウェア難易度:normal
プログラム実行環境におけるガベージコレクションの役割として最も適切なものはどれか。
プログラムのソースコードを実行に先立って機械語へ一括翻訳し、さらに不要な命令を取り除くなどの最適化を施す
どの参照からも到達できなくなったオブジェクトを検出し、その領域を自動的に解放する
主記憶上のページを補助記憶へ退避して仮想記憶空間を拡張する
複数スレッドの実行順序を調停して共有変数の競合を防ぐ
正解
どの参照からも到達できなくなったオブジェクトを検出し、その領域を自動的に解放する

ガベージコレクション(GC)は、プログラムのどの参照からもたどり着けなくなったオブジェクトをごみとみなして自動的に回収しメモリを解放する。明示的な解放忘れによるメモリリークを防ぐため正しい。

?選択肢ごとの解説

ア ×ソースを機械語へ一括翻訳して最適化するのはコンパイラの役割であり、実行時の不要領域回収を行うGCとは別の機能である。
イ ○ガベージコレクション(GC)は、プログラムのどの参照からもたどり着けなくなったオブジェクトをごみとみなして自動的に回収しメモリを解放する。明示的な解放忘れによるメモリリークを防ぐため正しい。
ウ ×ページを補助記憶へ退避して仮想記憶を拡張するのはOSのページングやスワッピングの役割で、オブジェクトの回収とは異なる。
エ ×スレッドの実行順序を調停し競合を防ぐのは同期機構(ミューテックス等)の役割で、メモリ回収を担うGCの機能ではない。

くわしく

GCは到達可能性に基づき生存オブジェクトを判定する。代表方式に参照カウント方式とマーク・アンド・スイープ方式があり、前者は循環参照を回収できない弱点、後者は走査中の停止(GCポーズ)が課題となる。世代別GCはこれを緩和する。

本番での押さえどころ

試験のコツ

GC=『到達不能オブジェクトの自動回収』。参照カウント(循環に弱い)とマーク&スイープ(停止コスト)の方式名と弱点を併せて覚える。

覚え方

GC=『誰からも指されていない(到達不能)荷物をごみとして片付ける』と参照の有無で判定すると覚える。

よくある誤り

GCを『使用中のメモリも勝手に消す』と誤解する例があるが、回収対象はあくまで到達不能なオブジェクトに限られる。

ソフトウェアの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0224

【基本情報技術者試験】ガベージコレクションの問題 — 解答・解説|ukamiru 過去問