2016年11月24日木曜日

[平成28年度春] 午後 問2 解説

[問題文・解答]


平成28年度4月に実施された基本情報技術者試験の午後試験の問題・解答はIPA公式ページからダウンロード出来ます。(以下リンク)

[問題概要]


この問題は、選択問題で問2〜問7のうち4問を選択する必要があります。
出題分野はソフトウェア、問題の題材はリスト構造で管理されているセルとガーベジコレクタです。
プログラムで使用されるメモリ領域上のセルとマークアンドスイープ方式によるガーベジコレクタについて問われます。専門知識が無くても問題文を理解できれば解答可能な問題です。


[設問1]

M:GCの対象となるメモリ領域のセルの数
L:GC開始時のLIVEセルの数

a) P.11中段よりマーキングとはLIVEからのポインタをたどって到達できる全てのLIVEセルのマークビットを1にする処理のことです。従って、マーキングの処理量はLIVEセルの数によって比例するため「ア」のLが正解です。

b) P.11下段の説明よりスイープとはメモリ領域中の全てのセルを順に走査し、マークビットの値に応じてガーベジを判別して供給源に返却する処理です。つまり、スイープではメモリ領域中の全セルをチェックするため、その処理量はメモリ領域中のセル数Mに比例します。従って「ウ」が正解です。

c) スイープによってメモリ領域中の全セル(M個)のうち、プログラムで使用されているLIVEセル(L個)以外のセルがガーベジとして再利用されます。従って、ガーベジの数はM-Lで「オ」が正解となります。

d) Mはメモリ領域が変わらない限り一定です。よって、単位時間当たりに再利用できるようになるセルの数つまりガーベジの数は、Lが大きくなると反比例して小さくなり、メモリ領域の全てのセルがLIVEセルとなるL=M(L/M=1)の時に0となります。よって、「ウ」のグラフが正解です。

[答] a) ア b) ウ c) オ d) ウ

[設問2]


マーキング処理でマークビットを1にする対象はLIVEセルであり、P.10中段より「プログラムが使用している状態のセルをLIVEセル」と呼びます。従って、「イ」が正解です。

[答] イ

上記の解説は問題と解答を元に自分なりの考え方を記述しており、間違っている部分もあるかと思いますので、ご了承願います。また、誤りについては正しい考え方をご指摘・ご教授頂けると助かります。


0 件のコメント:

コメントを投稿