修了試験 2019-07-28実施分 基本情報技術者試験 問18
図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。 1回のメモリアクセスは4バイト単位で行い,読取り,書込みがそれぞれ30ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。 ここで,1kバイトは1,000バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。 メモリマップ:セグメント1(500kバイト)|セグメント2(100kバイト)|セグメント3(800kバイト)|空き(800kバイト)
正答4
解説
正解は4です。 セグメント2が解放されると、セグメント1と3の間に100kバイトの空きができます。 セグメント3を前に詰めれば、空き領域が900kバイトの連続領域になります。 移動するのはセグメント3の800kバイトです。 【計算】 移動するデータ量は800kバイト=800,000バイトです。 4バイト単位でアクセスするので、800,000÷4=200,000回分です。 1回分の移動には、読取り30ナノ秒と書込み30ナノ秒で60ナノ秒かかります。 200,000×60ナノ秒=12,000,000ナノ秒です。 12,000,000ナノ秒=12ミリ秒です。 【選択肢別解説】 1:× 1.5ミリ秒は、解放された100kバイト分の移動として計算した値です。 2:× 6.0ミリ秒は、読取りだけで書込みの時間を含めていない値です。 3:× 7.5ミリ秒は、セグメント3ではなくセグメント1(500kバイト)を移動するとして計算した値です。 4:○ 800kバイトを4バイトずつ読み書きすると、合計12.0ミリ秒です。 【ポイント】 移動の対象は、空きより後ろにあるセグメントだけです。 データの移動には読取りと書込みの両方が必要な点に注意します。まとめて解く
修了試験 2019-07-28実施分を通しで解く(80問)→