SAシステムアーキテクト試験 午前Ⅰ

平成25年度秋期 システムアーキテクト 午前Ⅰ 問7

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

記憶領域の動的な割当て及び解放を繰り返すことによって,どこからも利用できない記憶領域が発生することがある。このような記憶領域を再び利用可能にする機能はどれか。

選択肢

  1. ア
    ガーベジコレクション
  2. イ
    スタック
  3. ウ
    ヒープ
  4. エ
    フラグメンテーション
解き方のヒントを見る

記憶領域の再利用を考える視点

この問題では、使い終えた記憶領域を再利用する仕組みを、処理の流れと管理上の目的から整理し、個別の方式名や細かな実装知識に引きずられず考えることが大切です。まず対象の役割を切り分けてください。

この問題で問われていること

一つの視点として、記憶領域が不要になった後に、誰がどのタイミングで利用可能な状態を管理するのかに注目し、仕組みの目的と処理の境界を問題文の説明と照らし合わせてください。

視点

再利用機能を検討するときは、領域の使用状況、管理の主体、再び使える状態になるまでの流れを分けて捉えると、用語の印象だけで判断しにくくなります。

確認ポイント

  • 記憶領域の状態変化を、使用中かどうかという観点で追う
  • 再利用を管理する主体と、その責任範囲を確認する
  • 説明されている処理の目的が、資源の再活用とどう結び付くかを整理する
正解と解説を見る

正解

ア

解説

動的な記憶管理では、不要になった領域を回収して再利用できるようにする仕組みが必要です。ガーベジコレクションは、どこからも参照されなくなった領域を検出して回収する機能です。

理由

動的な割当てと解放を繰り返すと、プログラムから参照されなくなった記憶領域が残ることがあります。ガーベジコレクションは、そのような領域を回収して、再び割当て可能な状態にする機能です。

比較

スタックとヒープは記憶領域の種類を表す用語であり、フラグメンテーションは空き領域が分散する状態を表します。したがって、不要領域を回収する機能を表す用語とは区別されます。

選択肢ア(正解)

これは正解だよ。動的に確保した領域のうち、どこからも参照されなくなった領域を検出して回収し、再び割当て可能にする仕組みである。設問の「どこからも利用できない記憶領域」に対応する。

選択肢イ

これは不正解だよ。スタックは、関数呼出しに伴う局所変数や復帰情報などを、後入れ先出しで管理する記憶領域である。不要領域を検出して回収し、再利用可能にする機能そのものではない。

選択肢ウ

これは不正解だよ。ヒープは、プログラムが必要な大きさの記憶領域を動的に確保・解放するための領域を指す。回収対象が生じる場所には関係するが、不要領域を自動回収する機能の名称ではない。

選択肢エ

これは不正解だよ。フラグメンテーションは、領域の確保と解放の繰返しなどで、空き領域が分散して大きな連続領域を使いにくくなる状態や現象である。不要領域を回収する機能ではない。

学習のポイント

機能名・記憶領域名・状態名を区別し、動的メモリ管理の用語を整理する。

出典:独立行政法人 情報処理推進機構(IPA)平成25年度秋期 システムアーキテクト試験 午前Ⅰ 問7(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針