ソフトウェア
基本情報技術者試験 科目A免除 修了試験 20240128 実施分 問13
図のメモリマップで,セグメント2が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。1回のメモリアクセスは4バイト単位で行い,読取り,書込みがそれぞれ30ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。ここで,1kバイトは1,000バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。
メモリマップ(左から順に横一列): [セグメント1: 500kバイト] [セグメント2: 100kバイト] [セグメント3: 800kバイト] [空き: 800kバイト]
- ア 1.5
- イ 6.0
- ウ 7.5
- エ 12.0
出典:基本情報技術者試験 科目A免除 修了試験 20240128 実施分 問13
答えと解説を見る
正解:エ
覚える知識
動的再配置に要するメモリアクセス時間の計算
動的再配置の時間は、移動データ量をアクセス単位で割った回数に、読取りと書込みの時間を掛けて求める。
この問題で必要なこと
移動するセグメント3の800kバイトを4バイト単位で読み書きすると200,000回で、(30+30)ns×200,000=12ms。
ひっかけ
読取りだけを数えたり、セグメント1も移動すると考えて6.0や1.5を選ばせる。
この知識の出題:本試験系 1 回・免除試験 3 回(公開問題での観測値)