基本情報技術者試験「ガベージコレクション」の問題
プログラム実行環境におけるガベージコレクションの役割として最も適切なものはどれか。
アプログラムのソースコードを実行に先立って機械語へ一括翻訳し、さらに不要な命令を取り除くなどの最適化を施す
イどの参照からも到達できなくなったオブジェクトを検出し、その領域を自動的に解放する
ウ主記憶上のページを補助記憶へ退避して仮想記憶空間を拡張する
エ複数スレッドの実行順序を調停して共有変数の競合を防ぐ
正解
イ.どの参照からも到達できなくなったオブジェクトを検出し、その領域を自動的に解放する
ガベージコレクション(GC)は、プログラムのどの参照からもたどり着けなくなったオブジェクトをごみとみなして自動的に回収しメモリを解放する。明示的な解放忘れによるメモリリークを防ぐため正しい。
?選択肢ごとの解説
ア ×ソースを機械語へ一括翻訳して最適化するのはコンパイラの役割であり、実行時の不要領域回収を行うGCとは別の機能である。
イ ○ガベージコレクション(GC)は、プログラムのどの参照からもたどり着けなくなったオブジェクトをごみとみなして自動的に回収しメモリを解放する。明示的な解放忘れによるメモリリークを防ぐため正しい。
ウ ×ページを補助記憶へ退避して仮想記憶を拡張するのはOSのページングやスワッピングの役割で、オブジェクトの回収とは異なる。
エ ×スレッドの実行順序を調停し競合を防ぐのは同期機構(ミューテックス等)の役割で、メモリ回収を担うGCの機能ではない。
✎くわしく
GCは到達可能性に基づき生存オブジェクトを判定する。代表方式に参照カウント方式とマーク・アンド・スイープ方式があり、前者は循環参照を回収できない弱点、後者は走査中の停止(GCポーズ)が課題となる。世代別GCはこれを緩和する。
✓本番での押さえどころ
試験のコツ
GC=『到達不能オブジェクトの自動回収』。参照カウント(循環に弱い)とマーク&スイープ(停止コスト)の方式名と弱点を併せて覚える。
覚え方
GC=『誰からも指されていない(到達不能)荷物をごみとして片付ける』と参照の有無で判定すると覚える。
よくある誤り
GCを『使用中のメモリも勝手に消す』と誤解する例があるが、回収対象はあくまで到達不能なオブジェクトに限られる。
ソフトウェアの他の問題
OS(オペレーティングシステム)が担う最も中心的な役割を説明したものはどれか。実行状態のタスクが、自らの入出力要求の完了を待つために移る状態はどれか。3つのタスクP1・P2・P3が時刻0に同時に到着し、処理時間はそれぞれ8・4・6である。FCFS(到着順)方式でP1→P2→…4つのタスクが時刻0に同時到着し、処理時間はそれぞれ6・2・8・4である。処理時間の短い順に実行するSJF(ノンプリエンプテ…3つのタスクP1・P2・P3が時刻0にこの順で実行可能列に並ぶ。処理時間はP1=5・P2=3・P3=7で、タイムクウォンタム…4つのタスクPA・PB・PC・PDが時刻0に同時到着する。処理時間はPA=6・PB=2・PC=4・PD=8で、優先度はPB・…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0224