平成29年度 秋期 基本情報技術者試験 午前 問19
テクノロジ/ソフトウェア図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。1回のメモリアクセスは4バイト単位で行い,読取り,書込みがそれぞれ30ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。ここで,1kバイトは1,000バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。 セグメント1:500kバイト,セグメント2:100kバイト,セグメント3:800kバイト,空き:800kバイト (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成29年度 秋期 基本情報技術者試験 午前 問19
- ア1.5
- イ6.0
- ウ7.5
- エ12.0
正解:エ
解説
空いている領域を連続した一つの領域にまとめるには,セグメント3(800kバイト)をセグメント2の空き領域方向へ詰めて移動させる必要があります。800kバイトを4バイト単位で読み書きすると,アクセス回数は800,000÷4=200,000回で,1回のアクセスに読取り30ナノ秒+書込み30ナノ秒=60ナノ秒かかるため,合計時間は200,000×60ナノ秒=12,000,000ナノ秒=12ミリ秒となります。
選択肢ごとの解説
- ア誤り。移動が必要なセグメント3(800kバイト)ではなく,解放されたセグメント2の大きさ(100kバイト)を移動対象と誤って計算すると1.5ミリ秒になります。
- イ誤り。読み込みと書込みの両方が必要であるところを,片道(30ナノ秒)だけの時間として計算すると6.0ミリ秒になります。
- ウ誤り。移動対象をセグメント3(800kバイト)ではなくセグメント1(500kバイト)と誤って計算すると7.5ミリ秒になります。
- エ正しい。セグメント3の800kバイトを4バイト単位で読み書き(合計60ナノ秒/回)して移動すると,合計12.0ミリ秒になります。