ソフトウェア
平成29年度 秋期 基本情報技術者試験 午前 問19
図のメモリマップで,セグメント 2 が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。1 回のメモリアクセスは 4 バイト単位で行い,読取り,書込みがそれぞれ 30 ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。ここで,1 k バイトは 1,000 バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。
メモリマップ(左から右へ横一列): | セグメント 1 (500k バイト) | セグメント 2 (100k バイト) | セグメント 3 (800k バイト) | 空き (800k バイト) |
答えを選ぶ
出典:平成29年度 秋期 基本情報技術者試験 午前 問19(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:エ
覚える知識
動的再配置に要するメモリアクセス時間の計算
動的再配置(メモリコンパクション)は、分散した空き領域を集めるために使用中のセグメントを移動する処理で、移動量に応じて読み書き時間を要する。
この問題で必要なこと
移動が必要なのはセグメント3(800kバイト)。4バイト単位で読取り30ns+書込み30nsなので、800,000/4×60ns=12msとなる。
ひっかけ
読取りか書込みのどちらか片方だけを数えると6.0msになるほか、セグメント1も移動対象に含めてしまう誤りが起こる。
この知識の出題:本試験系 1 回・免除試験 3 回(公開問題での観測値)。頻出知識ランキング535位(全1,254件中)。