ソフトウェア

基本情報技術者試験 科目A免除 修了試験 20250126 実施分 問13

図のメモリマップで,セグメント 2 が解放されたとき,セグメントを移動(動的再配置)し,分散する空き領域を集めて一つの連続領域にしたい。1 回のメモリアクセスは 4 バイト単位で行い,読取り,書込みがそれぞれ 30 ナノ秒とすると,動的再配置をするために必要なメモリアクセス時間は合計何ミリ秒か。ここで,1 k バイトは 1,000 バイトとし,動的再配置に要する時間以外のオーバヘッドは考慮しないものとする。
メモリマップ(左から順に): [セグメント 1: 500 k バイト] [セグメント 2: 100 k バイト(解放)] [セグメント 3: 800 k バイト] [空き: 800 k バイト]
  • ア 1.5
  • イ 6.0
  • ウ 7.5
  • エ 12.0

出典:基本情報技術者試験 科目A免除 修了試験 20250126 実施分 問13

答えと解説を見る

正解:エ

覚える知識

動的再配置に要するメモリアクセス時間の計算

動的再配置(コンパクション)は断片化した空き領域を一つにまとめるため使用中セグメントを移動する処理である。

この問題で必要なこと

移動対象はセグメント3(800k)で、読取り+書込み=60ns/4バイト。800,000/4=200,000回×60ns=12,000,000ns=12.0ms。

ひっかけ

読取りまたは書込みの片方だけで計算する、移動量を誤る(セグメント1や空き領域を含める)ことを誘う。

この知識の出題:本試験系 1 回・免除試験 3 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「主記憶の割当てと断片化・解放」で学ぶ

同じ知識の過去問