修了試験 2025-01-26実施分 基本情報技術者試験 問13
図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。 1回のメモリアクセスは4バイト単位で行い,読取り,書込みがそれぞれ30ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。 ここで,1kバイトは1,000バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。 図:メモリマップ セグメント1|セグメント2|セグメント3|空き 500kバイト|100kバイト|800kバイト|800kバイト

正答4
解説
正解は4です。 動的再配置で空き領域を一つにまとめるときの、メモリアクセス時間を求める問題です。 セグメント2(100kバイト)が解放されると、セグメント1とセグメント3の間に空きができます。 空きを一つにまとめるには、セグメント3(800kバイト)を前に詰めて移動する必要があります。 移動では、データを読み取って新しい位置に書き込むため、読取りと書込みの両方が必要です。 【計算】 移動するデータ量は、800kバイト=800,000バイトです。 1回のアクセスは4バイト単位なので、読取り回数は800,000÷4=200,000回です。 書込み回数も同じく200,000回です。 1回分の読取りと書込みの時間は、30ナノ秒+30ナノ秒=60ナノ秒です。 合計時間は、200,000×60ナノ秒=12,000,000ナノ秒です。 12,000,000ナノ秒=12ミリ秒なので、答えは12.0ミリ秒です。 【選択肢別解説】 1:× 1.5ミリ秒は、解放されたセグメント2の100kバイトを読み書きした場合の値で、移動対象を取り違えています。 実際に移動するのは800kバイトのセグメント3です。 2:× 6.0ミリ秒は、800kバイトの読取りだけ、または書込みだけの時間です。 移動には読取りと書込みの両方が必要なので、その2倍になります。 3:× 7.5ミリ秒は、セグメント1の500kバイトを読み書きした場合の値です。 セグメント1は先頭にあって位置が変わらないので、移動の対象になりません。 4:○ 800kバイトを4バイトずつ200,000回読み書きし、1回60ナノ秒かかるので、合計12.0ミリ秒になります。 【ポイント】 動的再配置の計算では、「移動するのはどのセグメントか」と「読取りと書込みの両方が必要か」を確認します。 1kバイト=1,000バイトなどの単位の約束も、問題文に従って計算します。まとめて解く
修了試験 2025-01-26実施分を通しで解く(60問)→