基本情報技術者試験 - 令和7年1月修了 - 問13

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

ア1.5
イ6.0
ウ7.5
エ12.0
答え : エ
分野 : テクノロジ系 › コンピュータシステム › ソフトウェア › オペレーティングシステム
同一問題 : 〔令6修1問13〕〔令1修7問18〕〔平29秋問19〕〔平27秋問18〕
解説 :
メモリ上に断片的に散らばった空き領域を1つにまとめる「動的再配置」(メモリコンパクション)を行うときに,どれだけの時間がかかるかを計算する問題です。図のように,メモリはセグメント1(500kバイト),セグメント2(100kバイト),セグメント3(800kバイト),空き(800kバイト)の順に並んでいます。

セグメント2が解放されると,そこは100kバイトの空き領域になりますが,このままではセグメント3の前後に空きが分かれてしまいます。そこで,セグメント2が解放された後ろにあるセグメント3(800kバイト)を,セグメント2があった位置までそのまま前方に移動させることで,空き領域を後ろに1つにまとめます。

移動させるデータ量は800kバイトで,1回のアクセスが4バイト単位,読み取りと書き込みそれぞれ30ナノ秒かかるので,1回の移動あたり60ナノ秒かかります。800kバイトを4バイトずつ移動するので,800,000÷4=200,000回の移動が必要になり,200,000回×60ナノ秒=12,000,000ナノ秒,つまり12ミリ秒となります。以上から,正解は「エ」です。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる