ソフトウェア
平成27年度 秋期 基本情報技術者試験 午前 問18
図のメモリマップで,セグメント 2 が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。1 回のメモリアクセスは 4 バイト単位で行い,読取り,書込みがそれぞれ 30 ナノ秒とすると,動的再配置をするのに必要なメモリアクセス時間は合計何ミリ秒か。ここで,1 k バイトは 1,000 バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。
メモリマップ(左から順に横一列):
| セグメント1 | セグメント2 | セグメント3 | 空き |
|---|---|---|---|
| 500 k バイト | 100 k バイト | 800 k バイト | 800 k バイト |
答えを選ぶ
出典:平成27年度 秋期 基本情報技術者試験 午前 問18(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:エ
覚える知識
メモリプール固定長方式と可変長方式の比較
動的再配置は使用中セグメントを移動して空き領域を連続させる処理で、移動量分の読取りと書込みの両方の時間がかかる。
この問題で必要なこと
セグメント3(800k)を移動すると、読取り800kB+書込み800kB。4B単位で200,000回ずつ、各30ns。合計 400,000×30ns=12ms。
ひっかけ
読取りだけの時間(6ms)や移動量の取り違え(セグメント1も含めるなど)を誘う。
この知識の出題:本試験系 3 回・免除試験 3 回(公開問題での観測値)